1 /* 2 * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #pragma once 8 9 #include <stdint.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #define SUPPORT_BTDM 1 16 #define SUPPORT_WIFI 1 17 #define SUPPORT_USB_DWCOTG 0 18 19 /* Structure and functions for returning ROM global layout 20 * 21 * This is for address symbols defined in the linker script, which may change during ECOs. 22 */ 23 typedef struct { 24 void *dram0_stack_shared_mem_start; 25 void *dram0_rtos_reserved_start; 26 void *stack_sentry; 27 void *stack; 28 void *stack_sentry_app; 29 void *stack_app; 30 31 /* BTDM data */ 32 #if SUPPORT_BTDM 33 void *data_start_btdm; 34 void *data_end_btdm; 35 void *bss_start_btdm; 36 void *bss_end_btdm; 37 void *data_start_btdm_rom; 38 void *data_end_btdm_rom; 39 void *data_start_interface_btdm; 40 void *data_end_interface_btdm; 41 void *bss_start_interface_btdm; 42 void *bss_end_interface_btdm; 43 #endif 44 45 /* Other DRAM ranges */ 46 #if SUPPORT_BTDM || SUPPORT_WIFI 47 void *dram_start_phyrom; 48 void *dram_end_phyrom; 49 #endif 50 51 #if SUPPORT_WIFI 52 void *dram_start_coexist; 53 void *dram_end_coexist; 54 void *dram_start_net80211; 55 void *dram_end_net80211; 56 void *dram_start_pp; 57 void *dram_end_pp; 58 void *data_start_interface_coexist; 59 void *data_end_interface_coexist; 60 void *bss_start_interface_coexist; 61 void *bss_end_interface_coexist; 62 void *data_start_interface_net80211; 63 void *data_end_interface_net80211; 64 void *bss_start_interface_net80211; 65 void *bss_end_interface_net80211; 66 void *data_start_interface_pp; 67 void *data_end_interface_pp; 68 void *bss_start_interface_pp; 69 void *bss_end_interface_pp; 70 #endif 71 72 #if SUPPORT_USB_DWCOTG 73 void *dram_start_usb_dwcotg_rom; 74 void *dram_end_usb_dwcotg_rom; 75 #else 76 //Two reserved members are defined here, so the structure will not be broken, 77 //please keep in mind that there is no memory can be released between 78 //dram_start_usb_reserved_rom ~ dram_end_usb_reserved_rom. 79 void *dram_start_usb_reserved_rom; 80 void *dram_end_usb_reserved_rom; 81 #endif 82 83 void *dram_start_uart_rom; 84 void *dram_end_uart_rom; 85 } ets_rom_layout_t; 86 87 extern const ets_rom_layout_t * const ets_rom_layout_p; 88 89 #ifdef __cplusplus 90 } 91 #endif 92