diff --git a/components/bootloader/subproject/main/ld/esp32c2/bootloader.ld b/components/bootloader/subproject/main/ld/esp32c2/bootloader.ld index 02fe63f46f..5891c91546 100644 --- a/components/bootloader/subproject/main/ld/esp32c2/bootloader.ld +++ b/components/bootloader/subproject/main/ld/esp32c2/bootloader.ld @@ -209,17 +209,34 @@ SECTIONS /** * Appendix: Memory Usage of ROM bootloader * - * +--------+--------------+------+ 0x3FCC_B0B0 - * | ^ | - * | | | - * | | data/bss | - * | | | - * | v | - * +------------------------------+ 0x3FCD_C9C0 - * | ^ | - * | | | - * | | stack | - * | | | - * | v | - * +------------------------------+ 0x3FCD_E9C0 + * 0x3fccb264 ------------------> _dram0_0_start + * | | + * | | + * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h + * | | + * | | + * 0x3fcdcb70 ------------------> __stack_sentry + * | | + * | | 2. Startup pro cpu stack (freed when IDF app is running) + * | | + * 0x3fcdeb70 ------------------> __stack (pro cpu) + * | | + * | | + * | | 3. Shared memory only used in startup code or nonos/early boot* + * | | (can be freed when IDF runs) + * | | + * | | + * 0x3fcdf4bc ------------------> _dram0_rtos_reserved_start + * | | + * | | + * | | 4. Shared memory used in startup code and when IDF runs + * | | + * | | + * 0x3fcdfa70 ------------------> _dram0_rtos_reserved_end + * | | + * 0x3fcdfa74 ------------------> _data_start_interface + * | | + * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) + * | | + * 0x3fce0000 ------------------> _data_end_interface */ diff --git a/components/bootloader/subproject/main/ld/esp32c3/bootloader.ld b/components/bootloader/subproject/main/ld/esp32c3/bootloader.ld index c6889d394b..742e4c0618 100644 --- a/components/bootloader/subproject/main/ld/esp32c3/bootloader.ld +++ b/components/bootloader/subproject/main/ld/esp32c3/bootloader.ld @@ -210,17 +210,34 @@ SECTIONS /** * Appendix: Memory Usage of ROM bootloader * - * +--------+--------------+------+ 0x3FCC_AE00 - * | ^ | - * | | | - * | | data/bss | - * | | | - * | v | - * +------------------------------+ 0x3FCD_C710 - * | ^ | - * | | | - * | | stack | - * | | | - * | v | - * +------------------------------+ 0x3FCD_E710 + * 0x3fccae00 ------------------> _dram0_0_start + * | | + * | | + * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h + * | | + * | | + * 0x3fcdc710 ------------------> __stack_sentry + * | | + * | | 2. Startup pro cpu stack (freed when IDF app is running) + * | | + * 0x3fcde710 ------------------> __stack (pro cpu) + * | | + * | | + * | | 3. Shared memory only used in startup code or nonos/early boot* + * | | (can be freed when IDF runs) + * | | + * | | + * 0x3fcdf060 ------------------> _dram0_rtos_reserved_start + * | | + * | | + * | | 4. Shared memory used in startup code and when IDF runs + * | | + * | | + * 0x3fcdf664 ------------------> _dram0_rtos_reserved_end + * | | + * 0x3fcdf830 ------------------> _data_start_interface + * | | + * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) + * | | + * 0x3fce0000 ------------------> _data_end_interface */ diff --git a/components/bootloader/subproject/main/ld/esp32h2/bootloader.ld b/components/bootloader/subproject/main/ld/esp32h2/bootloader.ld index 9810da9d30..5a7c5098a6 100644 --- a/components/bootloader/subproject/main/ld/esp32h2/bootloader.ld +++ b/components/bootloader/subproject/main/ld/esp32h2/bootloader.ld @@ -207,17 +207,34 @@ SECTIONS /** * Appendix: Memory Usage of ROM bootloader * - * +--------+--------------+------+ 0x3FCC_B900 - * | ^ | - * | | | - * | | data/bss | - * | | | - * | v | - * +------------------------------+ 0x3FCD_D210 - * | ^ | - * | | | - * | | stack | - * | | | - * | v | - * +------------------------------+ 0x3FCD_F210 + * 0x3fccb81c ------------------> _dram0_0_start + * | | + * | | + * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h + * | | + * | | + * 0x3fcdd120 ------------------> __stack_sentry + * | | + * | | 2. Startup pro cpu stack (freed when IDF app is running) + * | | + * 0x3fcdf120 ------------------> __stack (pro cpu) + * | | + * | | + * | | 3. Shared memory only used in startup code or nonos/early boot* + * | | (can be freed when IDF runs) + * | | + * | | + * 0x3fcdfa6c ------------------> _dram0_rtos_reserved_start + * | | + * | | + * | | 4. Shared memory used in startup code and when IDF runs + * | | + * | | + * 0x3fcdfe40 ------------------> _dram0_rtos_reserved_end + * | | + * 0x3fcdfe4c ------------------> _data_start_interface + * | | + * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) + * | | + * 0x3fce0000 ------------------> _data_end_interface */ diff --git a/components/bootloader/subproject/main/ld/esp32s3/bootloader.ld b/components/bootloader/subproject/main/ld/esp32s3/bootloader.ld index d5b0b52a6b..9f6e17b2b9 100644 --- a/components/bootloader/subproject/main/ld/esp32s3/bootloader.ld +++ b/components/bootloader/subproject/main/ld/esp32s3/bootloader.ld @@ -233,3 +233,42 @@ SECTIONS } } + +/** + * Appendix: Memory Usage of ROM bootloader + * + * 0x3fcd7e00 ------------------> _dram0_0_start + * | | + * | | + * | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h + * | | + * | | + * 0x3fce9710 ------------------> __stack_sentry + * | | + * | | 2. Startup pro cpu stack (freed when IDF app is running) + * | | + * 0x3fceb710 ------------------> __stack (pro cpu) + * | | + * | | Startup app cpu stack + * | | + * 0x3fced710 ------------------> __stack_app (app cpu) + * | | + * | | + * | | 3. Shared memory only used in startup code or nonos/early boot* + * | | (can be freed when IDF runs) + * | | + * | | + * 0x3fceee34 ------------------> _dram0_rtos_reserved_start + * | | + * | | + * | | 4. Shared memory used in startup code and when IDF runs + * | | + * | | + * 0x3fcef770 ------------------> _dram0_rtos_reserved_end + * | | + * 0x3fcef81c ------------------> _data_start_interface + * | | + * | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible) + * | | + * 0x3fcf0000 ------------------> _data_end_interface + */