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