May 16, 2018
The ESP32 bootrom
I got a lot of enjoyment and insight from reading out and disassembling (and studying)
the ESP8266 bootrom, so it seemed like a good project for the ESP32 as well.
I put this project on github:
Github: my esp32 disassembly
On the ESP32, the bootrom is much bigger (7*64k) than on the ESP8266:
The above map is correct and differs from what is published in the manuals.
The entire ROM is seen as a continuous 448k starting at 0x40000000.
There is also a 64k window that accesses the last 64k of this same image
at address 0x3ff90000. This smaller window is presented to the data bus,
while the big "full" window is presented to the instruction bus.
This is a Harvard architecture chip and this is therefore relevant.
- ROM0 - 0x4000 0000 to 0x4006 ffff (448k = 7 * 64k)
- ROM1 - 0x3ff9 0000 to 0x3ff9 ffff (64k)
See my notes below on disassembling the bootrom.
Here are some links to related topics:
Here are some instructive vignettes from the disassembled code.
Drop me a line!
Tom's Computer Info / firstname.lastname@example.org