1 /* 2 * SPDX-FileCopyrightText: 2020-2022 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_BTBB 1 17 #define SUPPORT_WIFI 1 18 #define SUPPORT_USB_DWCOTG 0 19 #define SUPPORT_COEXIST 1 20 #define SUPPORT_MBEDTLS 1 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 void *stack_sentry_app; 32 void *stack_app; 33 34 /* BTDM data */ 35 #if SUPPORT_BTDM 36 void *data_start_btdm; 37 void *data_end_btdm; 38 void *bss_start_btdm; 39 void *bss_end_btdm; 40 void *data_start_btdm_rom; 41 void *data_end_btdm_rom; 42 void *data_start_interface_btdm; 43 void *data_end_interface_btdm; 44 void *bss_start_interface_btdm; 45 void *bss_end_interface_btdm; 46 #endif 47 48 #if SUPPORT_BTBB 49 void *dram_start_btbbrom; 50 void *dram_end_btbbrom; 51 #endif 52 53 /* Other DRAM ranges */ 54 #if SUPPORT_BTDM || SUPPORT_WIFI 55 void *dram_start_phyrom; 56 void *dram_end_phyrom; 57 #endif 58 59 #if SUPPORT_WIFI 60 void *dram_start_coexist; 61 void *dram_end_coexist; 62 void *dram_start_net80211; 63 void *dram_end_net80211; 64 void *dram_start_pp; 65 void *dram_end_pp; 66 void *data_start_interface_coexist; 67 void *data_end_interface_coexist; 68 void *bss_start_interface_coexist; 69 void *bss_end_interface_coexist; 70 void *data_start_interface_net80211; 71 void *data_end_interface_net80211; 72 void *bss_start_interface_net80211; 73 void *bss_end_interface_net80211; 74 void *data_start_interface_pp; 75 void *data_end_interface_pp; 76 void *bss_start_interface_pp; 77 void *bss_end_interface_pp; 78 #endif 79 80 #if SUPPORT_USB_DWCOTG 81 void *dram_start_usb_dwcotg_rom; 82 void *dram_end_usb_dwcotg_rom; 83 #else 84 //Two reserved members are defined here, so the structure will not be broken, 85 //please keep in mind that there is no memory can be released between 86 //dram_start_usb_reserved_rom ~ dram_end_usb_reserved_rom. 87 void *dram_start_usb_reserved_rom; 88 void *dram_end_usb_reserved_rom; 89 #endif 90 91 void *dram_start_uart_rom; 92 void *dram_end_uart_rom; 93 94 #if SUPPORT_MBEDTLS 95 void *dram_start_mbedtls_rom; 96 void *dram_end_mbedtls_rom; 97 #endif 98 } ets_rom_layout_t; 99 100 extern const ets_rom_layout_t * const ets_rom_layout_p; 101 102 #ifdef __cplusplus 103 } 104 #endif 105