rom_layout.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #pragma once
  7. #include <stdint.h>
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #define SUPPORT_BTDM 1
  12. #define SUPPORT_BTBB 1
  13. #define SUPPORT_WIFI 1
  14. #define SUPPORT_USB_DWCOTG 0
  15. #define SUPPORT_COEXIST 1
  16. #define SUPPORT_MBEDTLS 1
  17. /* Structure and functions for returning ROM global layout
  18. *
  19. * This is for address symbols defined in the linker script, which may change during ECOs.
  20. */
  21. typedef struct {
  22. void *dram0_stack_shared_mem_start;
  23. void *dram0_rtos_reserved_start;
  24. void *stack_sentry;
  25. void *stack;
  26. void *stack_sentry_app;
  27. void *stack_app;
  28. /* BTDM data */
  29. #if SUPPORT_BTDM
  30. void *data_start_btdm;
  31. void *data_end_btdm;
  32. void *bss_start_btdm;
  33. void *bss_end_btdm;
  34. void *data_start_btdm_rom;
  35. void *data_end_btdm_rom;
  36. void *data_start_interface_btdm;
  37. void *data_end_interface_btdm;
  38. void *bss_start_interface_btdm;
  39. void *bss_end_interface_btdm;
  40. #endif
  41. #if SUPPORT_BTBB
  42. void *dram_start_btbbrom;
  43. void *dram_end_btbbrom;
  44. #endif
  45. /* Other DRAM ranges */
  46. #if SUPPORT_BTDM || SUPPORT_WIFI
  47. void *dram_start_phyrom;
  48. void *dram_end_phyrom;
  49. #endif
  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. #if SUPPORT_USB_DWCOTG
  71. void *dram_start_usb_dwcotg_rom;
  72. void *dram_end_usb_dwcotg_rom;
  73. #else
  74. //Two reserved members are defined here, so the structure will not be broken,
  75. //please keep in mind that there is no memory can be released between
  76. //dram_start_usb_reserved_rom ~ dram_end_usb_reserved_rom.
  77. void *dram_start_usb_reserved_rom;
  78. void *dram_end_usb_reserved_rom;
  79. #endif
  80. void *dram_start_uart_rom;
  81. void *dram_end_uart_rom;
  82. #if SUPPORT_MBEDTLS
  83. void *dram_start_mbedtls_rom;
  84. void *dram_end_mbedtls_rom;
  85. #endif
  86. } ets_rom_layout_t;
  87. extern const ets_rom_layout_t * const ets_rom_layout_p;
  88. #ifdef __cplusplus
  89. }
  90. #endif