bank_switch.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. #ifndef BANK_SWITCH_H
  2. #define BANK_SWITCH_H
  3. #ifdef CONFIG_CODE_BANK_ENABLE
  4. #define _BANK_ENTRY(num) __attribute__((section(".bank.code."#num))) __attribute__((banknum(num)))
  5. #define __BANK_ENTRY(num) _BANK_ENTRY(num)
  6. #define _BANK_NUM(num) __attribute__((section(".bank.code."#num))) __attribute__((banknum(num)))
  7. #define __BANK_NUM(num) _BANK_NUM(num)
  8. #define __BANK_COMMON() __attribute__((section(".common")))
  9. #else
  10. #define __BANK_ENTRY(num)
  11. #define __BANK_NUM(num)
  12. #endif
  13. #ifdef CONFIG_BANK_COMM
  14. #define __BANK_EDR_RX __BANK_COMMON()
  15. #define __BANK_EDR_TX __BANK_COMMON()
  16. #define __BANK_TWS_LINK __BANK_COMMON()
  17. #define __BANK_EDR_FRAME __BANK_COMMON()
  18. #else
  19. #define __BANK_EDR_RX
  20. #define __BANK_EDR_TX
  21. #define __BANK_TWS_LINK
  22. #define __BANK_EDR_FRAME
  23. #endif
  24. #ifdef CONFIG_BANK_NUM_INIT
  25. #define __BANK_INIT_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_INIT)
  26. #define __BANK_INIT __BANK_NUM(CONFIG_BANK_NUM_INIT)
  27. #else
  28. #define __BANK_INIT_ENTRY
  29. #define __BANK_INIT
  30. #endif
  31. #ifdef CONFIG_BANK_NUM_RF
  32. #define __BANK_RF_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_RF)
  33. #define __BANK_RF __BANK_NUM(CONFIG_BANK_NUM_RF)
  34. #else
  35. #define __BANK_RF_ENTRY
  36. #define __BANK_RF
  37. #endif
  38. #ifdef CONFIG_BANK_NUM_RF_TRIM
  39. #define __BANK_RF_TRIM __BANK_NUM(CONFIG_BANK_NUM_RF_TRIM)
  40. #else
  41. #define __BANK_RF_TRIM
  42. #endif
  43. #ifdef CONFIG_BANK_NUM_DUT
  44. #define __BANK_DUT_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_DUT)
  45. #define __BANK_DUT __BANK_NUM(CONFIG_BANK_NUM_DUT)
  46. #else
  47. #define __BANK_DUT_ENTRY
  48. #define __BANK_DUT
  49. #endif
  50. #ifdef CONFIG_BANK_NUM_ECDH
  51. #define __BANK_ECDH_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_ECDH)
  52. #define __BANK_ECDH __BANK_NUM(CONFIG_BANK_NUM_ECDH)
  53. #else
  54. #define __BANK_ECDH_ENTRY
  55. #define __BANK_ECDH
  56. #endif
  57. #ifdef CONFIG_BANK_NUM_ENC
  58. #define __BANK_ENC_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_ENC)
  59. #define __BANK_ENC __BANK_NUM(CONFIG_BANK_NUM_ENC)
  60. #else
  61. #define __BANK_ENC_ENTRY
  62. #define __BANK_ENC
  63. #endif
  64. #ifdef CONFIG_BANK_NUM_A2DP
  65. #define __BANK_A2DP_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_A2DP)
  66. #define __BANK_A2DP __BANK_NUM(CONFIG_BANK_NUM_A2DP)
  67. #else
  68. #define __BANK_A2DP_ENTRY
  69. #define __BANK_A2DP
  70. #endif
  71. #ifdef CONFIG_BANK_NUM_AVCTP
  72. #define __BANK_AVCTP_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_AVCTP)
  73. #define __BANK_AVCTP __BANK_NUM(CONFIG_BANK_NUM_AVCTP)
  74. #else
  75. #define __BANK_AVCTP_ENTRY
  76. #define __BANK_AVCTP
  77. #endif
  78. #ifdef CONFIG_BANK_NUM_RFCOMM
  79. #define __BANK_RFCOMM_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_RFCOMM)
  80. #define __BANK_RFCOMM __BANK_NUM(CONFIG_BANK_NUM_RFCOMM)
  81. #else
  82. #define __BANK_RFCOMM_ENTRY
  83. #define __BANK_RFCOMM
  84. #endif
  85. #ifdef CONFIG_BANK_NUM_SDP
  86. #define __BANK_SDP_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_SDP)
  87. #define __BANK_SDP __BANK_NUM(CONFIG_BANK_NUM_SDP)
  88. #else
  89. #define __BANK_SDP_ENTRY
  90. #define __BANK_SDP
  91. #endif
  92. #ifdef CONFIG_BANK_NUM_BT_HID
  93. #define __BANK_BT_HID_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_BT_HID)
  94. #define __BANK_BT_HID __BANK_NUM(CONFIG_BANK_NUM_BT_HID)
  95. #else
  96. #define __BANK_BT_HID_ENTRY
  97. #define __BANK_BT_HID
  98. #endif
  99. #ifdef CONFIG_BANK_NUM_BLE
  100. #define __BANK_BLE_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_BLE)
  101. #define __BANK_BLE __BANK_NUM(CONFIG_BANK_NUM_BLE)
  102. #else
  103. #define __BANK_BLE_ENTRY
  104. #define __BANK_BLE
  105. #endif
  106. #ifdef CONFIG_BANK_NUM_TWS_BLE
  107. #define __BANK_TWS_BLE_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_TWS_BLE)
  108. #define __BANK_TWS_BLE __BANK_NUM(CONFIG_BANK_NUM_TWS_BLE)
  109. #else
  110. #define __BANK_TWS_BLE_ENTRY
  111. #define __BANK_TWS_BLE
  112. #endif
  113. #ifdef CONFIG_BANK_NUM_TONE
  114. #define __BANK_TONE_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_TONE)
  115. #define __BANK_TONE __BANK_NUM(CONFIG_BANK_NUM_TONE)
  116. #else
  117. #define __BANK_TONE_ENTRY
  118. #define __BANK_TONE
  119. #endif
  120. #ifdef CONFIG_BANK_NUM_LMP_SLAVE
  121. #define __BANK_LMP_SLAVE_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_LMP_SLAVE)
  122. #define __BANK_LMP_SLAVE __BANK_NUM(CONFIG_BANK_NUM_LMP_SLAVE)
  123. #else
  124. #define __BANK_LMP_SLAVE_ENTRY
  125. #define __BANK_LMP_SLAVE
  126. #endif
  127. #ifdef CONFIG_BANK_NUM_LMP_MASTER
  128. #define __BANK_LMP_MASTER_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_LMP_MASTER)
  129. #define __BANK_LMP_MASTER __BANK_NUM(CONFIG_BANK_NUM_LMP_MASTER)
  130. #else
  131. #define __BANK_LMP_MASTER_ENTRY
  132. #define __BANK_LMP_MASTER
  133. #endif
  134. #ifdef CONFIG_BANK_NUM_CLOCK
  135. #define __BANK_CLOCK_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_CLOCK)
  136. #define __BANK_CLOCK __BANK_NUM(CONFIG_BANK_NUM_CLOCK)
  137. #else
  138. #define __BANK_CLOCK_ENTRY
  139. #define __BANK_CLOCK
  140. #endif
  141. #ifdef CONFIG_BANK_NUM_HCRP
  142. #define __BANK_HCRP_ENTRY __BANK_ENTRY(CONFIG_BANK_NUM_HCRP)
  143. #define __BANK_HCRP __BANK_NUM(CONFIG_BANK_NUM_HCRP)
  144. #else
  145. #define __BANK_HCRP_ENTRY
  146. #define __BANK_HCRP
  147. #endif
  148. void load_overlay_code(int num);
  149. void bank_syscall_entry(void);
  150. void load_common_code(void);
  151. #endif