http://cholla.mmto.org/esp32/bootrom/ 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: * ROM0 - 0x4000 0000 to 0x4006 ffff (448k = 7 * 64k) * ROM1 - 0x3ff9 0000 to 0x3ff9 ffff (64k) 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. See my notes below on disassembling the bootrom. * A lightning course in esp32 assembly * Reading the bootrom. * Disassembling the bootrom * Chip startup Here are some links to related topics: * ESP-IDF: bootloader and startup Case studies Here are some instructive vignettes from the disassembled code. * ets_delay_us - delay for some number of microseconds --------------------------------------------------------------------- Feedback? Questions? Drop me a line! Tom's Computer Info / tom@mmto.org