Secure Boot V1 on ESP32 Rev1 OR Rev3
Posted: Tue Mar 26, 2024 7:47 pm
Hi,
I have several ESP32 devices, some of them being REV1 and some of them REV3.
For REV3 chips I have implemented secure boot V2 and they are working as expected.
For REV1 chips I have to use Secure boot v1 since it is the only choice. However independent of chips being REV1 or REV3 I could not get secureboot V1 runnig. The devices I tried on are in a bootloop continuously printing
Here is security config: This is my partition config with offset moved to 0x10000 (same as I did in rev3 chips, secure boot v2) I test a simple arduino blink to check if the board is fine.
Then
Last command gives a bootloader command which I copy and paste to flash the bootloader. Also I can see that the key is used for signing.. etc from the logs.
Then without touching the board
Again I see that the binaries are signed looking at the console. The flash completes successfully but as I said the device is in boot loop as I said earlier and never successfully boots.
Further insights:
with command
I get
with command
I get
CAn you please help?
I have several ESP32 devices, some of them being REV1 and some of them REV3.
For REV3 chips I have implemented secure boot V2 and they are working as expected.
For REV1 chips I have to use Secure boot v1 since it is the only choice. However independent of chips being REV1 or REV3 I could not get secureboot V1 runnig. The devices I tried on are in a bootloop continuously printing
Steps I followed:entry 0x40080614
ets Jul 29 2019 12:21:46
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff00b8,len:2600
load:0x40078000,len:22352
load:0x40080400,len:3824
0x40080400: _init at ??:?
Here is security config: This is my partition config with offset moved to 0x10000 (same as I did in rev3 chips, secure boot v2) I test a simple arduino blink to check if the board is fine.
Then
Code: Select all
idf.py fullclean
idf.py bootloader
Then without touching the board
Code: Select all
idf.py build flash monitor
Further insights:
with command
Code: Select all
espefuse.py --port COM10 summary
with command
Code: Select all
espefuse.py dump -p COM10
The exact same happens with REV1 as well although here it is a REV3 chip.Detecting chip type... ESP32
BLOCK0 ( ) [0 ] read_regs: 00020100 1b604b8c 009fe05a 0000a200 00000632 00100000 00000054
BLOCK1 (flash_encryption) [1 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
BLOCK2 (secure_boot_v1 s) [2 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
BLOCK3 ( ) [3 ] read_regs: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
EFUSE_REG_DEC_STATUS 0x00000000
CAn you please help?