After connecting to the bootloader, esptool (and others) read register 0x40001000 (named CHIP_DETECT_MAGIC_REG_ADDR in esptool.py) to determine which chip they've connected to.
Each chip contains a different identifier:
Code: Select all
8266 : 0xfff0c101
ESP32: 0x00f01d83
S2 : 0x000007c6
S3 : 0x9
C3 : 0x6921506f, 0x1b31506f
C2 : 0x6f51306f
I've search through the ESP32 and 8266 Technical Reference and Datasheets and have come up empty (or more likely overlooked something) Since I've been able to scrounge together most of the other register locations, fuses, etc. I'm hoping that I've missed some magical document that would make my live easy
Or am I correct that the CHIP DETECT register and MAGIC values are not documented outside of source code?