Skip to content

Commit

Permalink
spi_flash: Fix some issue when flash get encrypted
Browse files Browse the repository at this point in the history
  • Loading branch information
mythbuster5 committed Feb 8, 2023
1 parent 0be5fcd commit 300ea80
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 19 deletions.
6 changes: 3 additions & 3 deletions esptool/targets/stub_flasher/stub_flasher_32s3.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"entry": 1077381688,
"text": "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",
"entry": 1077381816,
"text": "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",
"text_start": 1077379072,
"data": "ZCvKP+KNN0DHjjdAlpM3QFKPN0DnjjdAUo83QLGPN0B+kDdA8ZA3QJmQN0BtjTdAFJA3QHCQN0DUjzdAE5E3QP6PN0ATkTdAtY43QBKPN0BSjzdAsY83QM2ON0CujTdA1JE3QE6TN0CKjDdAdZM3QIqMN0CKjDdAiow3QIqMN0CKjDdAiow3QIqMN0CKjDdAbpE3QIqMN0BpkjdATpM3QAQInwAAAAAAIAggAQQIBQAAAAAAIAgQAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAICgAAQQIEgAAAAAAIAAAESAoDAAQAQAA",
"data": "ZCvKP2qON0BLjzdAGpQ3QNaPN0BrjzdA1o83QDWQN0ACkTdAc5E3QB2RN0D1jTdAmJA3QPSQN0BYkDdAlpE3QIKQN0CWkTdAOY83QJaPN0DWjzdANZA3QFGPN0A2jjdAVJI3QNGTN0ASjTdA+ZM3QBKNN0ASjTdAEo03QBKNN0ASjTdAEo03QBKNN0ASjTdA75E3QBKNN0DpkjdA0ZM3QAQInwAAAAAAAAAYAQQIBQAAAAAAAAAIAQQIBgAAAAAAAAAAAQQIIQAAAAAAIAAAEQQI3AAAAAAAIAAAEQQIDAAAAAAAIAAAAQQIEgAAAAAAIAAAESAoDAAQAQAA",
"data_start": 1070279676
}
16 changes: 9 additions & 7 deletions flasher_stub/include/rom_functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,10 @@ typedef enum {
#define CMD_RDID 0x9F
#define CMD_RDSR 0x05
#define CMD_WREN 0x06
#define CMD_SECTOR_ERASE 0x20
#define CMD_SECTOR_ERASE_4B 0x21
#define CMD_FSTRD4B 0x0C
#define CMD_LARGE_BLOCK_ERASE 0xD8
#define CMD_LARGE_BLOCK_ERASE_4B 0xDC
#define CMD_PROGRAM_PAGE_4B 0x12

Expand All @@ -216,9 +218,9 @@ typedef enum {
.cmd_bit_len = 8, \
.cmd = CMD_RDID, \
.addr = 0, \
.addr_bit_len = 32, \
.dummy_bit_len = 4*2, \
.data_bit_len = 32, \
.addr_bit_len = 0, \
.dummy_bit_len = 0, \
.data_bit_len = 24, \
.cs_sel = 0x1, \
.is_pe = 0, \
}, \
Expand All @@ -227,9 +229,9 @@ typedef enum {
.cmd_bit_len = 8, \
.cmd = CMD_RDSR, \
.addr = 0, \
.addr_bit_len = 32, \
.dummy_bit_len = 4*2, \
.data_bit_len = 16, \
.addr_bit_len = 0, \
.dummy_bit_len = 0, \
.data_bit_len = 8, \
.cs_sel = 0x1, \
.is_pe = 0, \
}, \
Expand Down Expand Up @@ -272,7 +274,7 @@ typedef enum {
.cmd = CMD_FSTRD4B, \
.addr = 0, \
.addr_bit_len = 32, \
.dummy_bit_len = 20*2, \
.dummy_bit_len = 0, \
.data_bit_len = 0, \
.cs_sel = 0x1, \
.is_pe = 0, \
Expand Down
12 changes: 7 additions & 5 deletions flasher_stub/stub_flasher.c
Original file line number Diff line number Diff line change
Expand Up @@ -486,11 +486,13 @@ void stub_main()
spi_flash_attach(spiconfig, 0);
#endif
#if ESP32S3 && !ESP32S3BETA2
// OPI calls are used only for octal chips. However, driver is initialized in all cases in order to avoid
// potentional misterious errors originating from ROM assertions.
static const esp_rom_opiflash_def_t flash_driver = OPIFLASH_DRIVER();
esp_rom_opiflash_legacy_driver_init(&flash_driver);
esp_rom_opiflash_wait_idle();
// Initialize OPI flash driver only when flash is detected octal. Otherwise, we don't need to
// initialize such a driver
if (ets_efuse_flash_octal_mode()) {
static const esp_rom_opiflash_def_t flash_driver = OPIFLASH_DRIVER();
esp_rom_opiflash_legacy_driver_init(&flash_driver);
esp_rom_opiflash_wait_idle();
}
#endif //ESP32S3 && !ESP32S3BETA2
SPIParamCfg(0, FLASH_MAX_SIZE, FLASH_BLOCK_SIZE, FLASH_SECTOR_SIZE,
FLASH_PAGE_SIZE, FLASH_STATUS_MASK);
Expand Down
40 changes: 36 additions & 4 deletions flasher_stub/stub_write_flash.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,10 +267,42 @@ static void start_next_erase(void)
spi_wait_ready();
#if defined(ESP32S3) && !defined(ESP32S3BETA2)
if (ets_efuse_flash_octal_mode()) {
if (block_erase)
esp_rom_opiflash_erase_block_64k(fs.next_erase_sector / SECTORS_PER_BLOCK);
else
esp_rom_opiflash_erase_sector(fs.next_erase_sector);
if (block_erase) {
if (fs.next_erase_sector * FLASH_SECTOR_SIZE < (1 << 24)) {
esp_rom_opiflash_wait_idle();
esp_rom_opiflash_wren();

esp_rom_opiflash_exec_cmd(1, SPI_FLASH_SLOWRD_MODE,
CMD_LARGE_BLOCK_ERASE, 8,
fs.next_erase_sector * FLASH_SECTOR_SIZE, 24,
0,
NULL, 0,
NULL, 0,
1,
true);
esp_rom_opiflash_wait_idle();
} else {
esp_rom_opiflash_erase_block_64k(fs.next_erase_sector / SECTORS_PER_BLOCK);
}
}
else {
if (fs.next_erase_sector * FLASH_SECTOR_SIZE < (1 << 24)) {
esp_rom_opiflash_wait_idle();
esp_rom_opiflash_wren();

esp_rom_opiflash_exec_cmd(1, SPI_FLASH_SLOWRD_MODE,
CMD_SECTOR_ERASE, 8,
fs.next_erase_sector * FLASH_SECTOR_SIZE, 24,
0,
NULL, 0,
NULL, 0,
1,
true);
esp_rom_opiflash_wait_idle();
} else {
esp_rom_opiflash_erase_sector(fs.next_erase_sector);
}
}
} else {
uint32_t addr = fs.next_erase_sector * FLASH_SECTOR_SIZE;
uint32_t command = block_erase ? SPI_FLASH_BE : SPI_FLASH_SE; /* block erase, 64KB : sector erase, 4KB */
Expand Down

0 comments on commit 300ea80

Please sign in to comment.