Fix writing sector 0 as the first write.
This was the FS issue I saw when debugging wifi and only happens when the first write is to sector 0. It causes issues because it blanks all of sector 0 after the first block. Fixes #3133
This commit is contained in:
parent
bccfb8b4cd
commit
87c78be8f4
|
@ -43,10 +43,16 @@
|
||||||
|
|
||||||
STATIC const esp_partition_t * _partition;
|
STATIC const esp_partition_t * _partition;
|
||||||
|
|
||||||
|
// TODO: Split the caching out of supervisor/shared/external_flash so we can use it.
|
||||||
|
#define SECTOR_SIZE 4096
|
||||||
|
STATIC uint8_t _cache[SECTOR_SIZE];
|
||||||
|
STATIC uint32_t _cache_lba;
|
||||||
|
|
||||||
void supervisor_flash_init(void) {
|
void supervisor_flash_init(void) {
|
||||||
_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA,
|
_partition = esp_partition_find_first(ESP_PARTITION_TYPE_DATA,
|
||||||
ESP_PARTITION_SUBTYPE_DATA_FAT,
|
ESP_PARTITION_SUBTYPE_DATA_FAT,
|
||||||
NULL);
|
NULL);
|
||||||
|
_cache_lba = 0xffffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t supervisor_flash_get_block_size(void) {
|
uint32_t supervisor_flash_get_block_size(void) {
|
||||||
|
@ -61,11 +67,6 @@ void port_internal_flash_flush(void) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Split the caching out of supervisor/shared/external_flash so we can use it.
|
|
||||||
#define SECTOR_SIZE 4096
|
|
||||||
STATIC uint8_t _cache[SECTOR_SIZE];
|
|
||||||
STATIC uint32_t _cache_lba;
|
|
||||||
|
|
||||||
mp_uint_t supervisor_flash_read_blocks(uint8_t *dest, uint32_t block, uint32_t num_blocks) {
|
mp_uint_t supervisor_flash_read_blocks(uint8_t *dest, uint32_t block, uint32_t num_blocks) {
|
||||||
esp_partition_read(_partition,
|
esp_partition_read(_partition,
|
||||||
block * FILESYSTEM_BLOCK_SIZE,
|
block * FILESYSTEM_BLOCK_SIZE,
|
||||||
|
|
Loading…
Reference in New Issue