1 /* 2 * SPDX-FileCopyrightText: 2022-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 0 16 #define SUPPORT_BTBB 0 17 #define SUPPORT_WIFI 1 18 #define SUPPORT_USB_DWCOTG 0 19 #define SUPPORT_COEXIST 1 20 #define SUPPORT_MBEDTLS 0 21 22 /* Structure and functions for returning ROM global layout 23 * 24 * This is for address symbols defined in the linker script, which may change during ECOs. 25 */ 26 typedef struct { 27 void *dram0_stack_shared_mem_start; 28 void *dram0_rtos_reserved_start; 29 void *stack_sentry; 30 void *stack; 31 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_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 #if SUPPORT_BTBB 45 void *dram_start_btbbrom; 46 void *dram_end_btbbrom; 47 #endif 48 49 #if SUPPORT_BTDM || SUPPORT_WIFI 50 void *dram_start_phyrom; 51 void *dram_end_phyrom; 52 #endif 53 54 #if SUPPORT_WIFI 55 void *dram_start_net80211; 56 void *dram_end_net80211; 57 void *data_start_interface_net80211; 58 void *data_end_interface_net80211; 59 void *bss_start_interface_net80211; 60 void *bss_end_interface_net80211; 61 void *dram_start_pp; 62 void *dram_end_pp; 63 void *data_start_interface_pp; 64 void *data_end_interface_pp; 65 void *bss_start_interface_pp; 66 void *bss_end_interface_pp; 67 #endif 68 69 #if SUPPORT_COEXIST 70 void *dram_start_coexist; 71 void *dram_end_coexist; 72 void *data_start_interface_coexist; 73 void *data_end_interface_coexist; 74 void *bss_start_interface_coexist; 75 void *bss_end_interface_coexist; 76 #endif 77 78 #if SUPPORT_MBEDTLS 79 void *dram_start_mbedtls_rom; 80 void *dram_end_mbedtls_rom; 81 #endif 82 83 #if SUPPORT_USB_DWCOTG 84 void *dram_start_usb_dwcotg_rom; 85 void *dram_end_usb_dwcotg_rom; 86 #else 87 //Two reserved members are defined here, so the structure will not be broken, 88 //please keep in mind that there is no memory can be released between 89 //dram_start_usb_reserved_rom ~ dram_end_usb_reserved_rom. 90 void *dram_start_usb_reserved_rom; 91 void *dram_end_usb_reserved_rom; 92 #endif 93 94 void *dram_start_uart_rom; 95 void *dram_end_uart_rom; 96 } ets_rom_layout_t; 97 98 extern const ets_rom_layout_t *const ets_rom_layout_p; 99 100 #ifdef __cplusplus 101 } 102 #endif 103