sa6.c 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. /*
  2. * Copyright (c) 2015-2023, Renesas Electronics Corporation. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #include <stdint.h>
  7. #define RCAR_SA6_TYPE_HYPERFLASH (0)
  8. #define RCAR_SA6_TYPE_EMMC (1)
  9. #if (RCAR_SA6_TYPE == RCAR_SA6_TYPE_HYPERFLASH)
  10. /* Number of content cert for Non-secure Target Program(BL33x) */
  11. #define RCAR_IMAGE_NUM (0x00000001U)
  12. /* Source address on flash for BL31 */
  13. #define RCAR_BL31SRC_ADDRESS (0x001C0000U)
  14. /* Reserved */
  15. #define RCAR_BL31_PARTITION (0x00000000U)
  16. /* Source address on flash for BL32 */
  17. #define RCAR_BL32SRC_ADDRESS (0x00200000U)
  18. /* Reserved */
  19. #define RCAR_BL32_PARTITION (0x00000000U)
  20. /* Source address on flash for BL33 */
  21. #define RCAR_BL33SRC_ADDRESS (0x00640000U)
  22. /* Reserved */
  23. #define RCAR_BL33_PARTITION (0x00000000U)
  24. #define RCAR_BL332SRC_ADDRESS (0x00000000U)
  25. /* Reserved */
  26. #define RCAR_BL332_PARTITION (0x00000000U)
  27. #define RCAR_BL333SRC_ADDRESS (0x00000000U)
  28. /* Reserved */
  29. #define RCAR_BL333_PARTITION (0x00000000U)
  30. #define RCAR_BL334SRC_ADDRESS (0x00000000U)
  31. /* Reserved */
  32. #define RCAR_BL334_PARTITION (0x00000000U)
  33. #define RCAR_BL335SRC_ADDRESS (0x00000000U)
  34. /* Reserved */
  35. #define RCAR_BL335_PARTITION (0x00000000U)
  36. #define RCAR_BL336SRC_ADDRESS (0x00000000U)
  37. /* Reserved */
  38. #define RCAR_BL336_PARTITION (0x00000000U)
  39. #define RCAR_BL337SRC_ADDRESS (0x00000000U)
  40. /* Reserved */
  41. #define RCAR_BL337_PARTITION (0x00000000U)
  42. #define RCAR_BL338SRC_ADDRESS (0x00000000U)
  43. /* Reserved */
  44. #define RCAR_BL338_PARTITION (0x00000000U)
  45. #else /* RCAR_SA6_TYPE == RCAR_SA6_TYPE_HYPERFLASH */
  46. /* Number of content cert for Non-secure Target Program(BL33x) */
  47. #define RCAR_IMAGE_NUM (0x00000001U)
  48. /* Source address on eMMC for BL31 */
  49. #define RCAR_BL31SRC_ADDRESS (0x00040000U)
  50. /* Source partition on eMMC for BL31 */
  51. #define RCAR_BL31_PARTITION (0x00000001U)
  52. /* Source address on eMMC for BL32 */
  53. #define RCAR_BL32SRC_ADDRESS (0x00200000U)
  54. /* Source partition on eMMC for BL32 */
  55. #define RCAR_BL32_PARTITION (0x00000001U)
  56. /* Source address on eMMC for BL33 */
  57. #define RCAR_BL33SRC_ADDRESS (0x00000000U)
  58. /* Source partition on eMMC for BL33 */
  59. #define RCAR_BL33_PARTITION (0x00000002U)
  60. /* Reserved */
  61. #define RCAR_BL332SRC_ADDRESS (0x00000000U)
  62. #define RCAR_BL332_PARTITION (0x00000000U)
  63. /* Reserved */
  64. #define RCAR_BL333SRC_ADDRESS (0x00000000U)
  65. #define RCAR_BL333_PARTITION (0x00000000U)
  66. /* Reserved */
  67. #define RCAR_BL334SRC_ADDRESS (0x00000000U)
  68. #define RCAR_BL334_PARTITION (0x00000000U)
  69. /* Reserved */
  70. #define RCAR_BL335SRC_ADDRESS (0x00000000U)
  71. #define RCAR_BL335_PARTITION (0x00000000U)
  72. /* Reserved */
  73. #define RCAR_BL336SRC_ADDRESS (0x00000000U)
  74. #define RCAR_BL336_PARTITION (0x00000000U)
  75. /* Reserved */
  76. #define RCAR_BL337SRC_ADDRESS (0x00000000U)
  77. #define RCAR_BL337_PARTITION (0x00000000U)
  78. /* Reserved */
  79. #define RCAR_BL338SRC_ADDRESS (0x00000000U)
  80. #define RCAR_BL338_PARTITION (0x00000000U)
  81. #endif /* RCAR_SA6_TYPE == RCAR_SA6_TYPE_HYPERFLASH */
  82. /* Destination address for BL31 */
  83. #define RCAR_BL31DST_ADDRESS (0x44000000U)
  84. #define RCAR_BL31DST_ADDRESSH (0x00000000U)
  85. /* Destination size for BL31 */
  86. #define RCAR_BL31DST_SIZE (0x0000F800U)
  87. /* Destination address for BL32 */
  88. #define RCAR_BL32DST_ADDRESS (0x44100000U)
  89. #define RCAR_BL32DST_ADDRESSH (0x00000000U)
  90. /* Destination size for BL32 */
  91. #define RCAR_BL32DST_SIZE (0x00080000U)
  92. /* Destination address for BL33 */
  93. #define RCAR_BL33DST_ADDRESS (0x50000000U)
  94. #define RCAR_BL33DST_ADDRESSH (0x00000000U)
  95. /* Destination size for BL33 */
  96. #define RCAR_BL33DST_SIZE (0x00040000U)
  97. /* Reserved */
  98. #define RCAR_BL332DST_ADDRESS (0x00000000U)
  99. #define RCAR_BL332DST_ADDRESSH (0x00000000U)
  100. #define RCAR_BL332DST_SIZE (0x00000000U)
  101. /* Reserved */
  102. #define RCAR_BL333DST_ADDRESS (0x00000000U)
  103. #define RCAR_BL333DST_ADDRESSH (0x00000000U)
  104. #define RCAR_BL333DST_SIZE (0x00000000U)
  105. /* Reserved */
  106. #define RCAR_BL334DST_ADDRESS (0x00000000U)
  107. #define RCAR_BL334DST_ADDRESSH (0x00000000U)
  108. #define RCAR_BL334DST_SIZE (0x00000000U)
  109. /* Reserved */
  110. #define RCAR_BL335DST_ADDRESS (0x00000000U)
  111. #define RCAR_BL335DST_ADDRESSH (0x00000000U)
  112. #define RCAR_BL335DST_SIZE (0x00000000U)
  113. /* Reserved */
  114. #define RCAR_BL336DST_ADDRESS (0x00000000U)
  115. #define RCAR_BL336DST_ADDRESSH (0x00000000U)
  116. #define RCAR_BL336DST_SIZE (0x00000000U)
  117. /* Reserved */
  118. #define RCAR_BL337DST_ADDRESS (0x00000000U)
  119. #define RCAR_BL337DST_ADDRESSH (0x00000000U)
  120. #define RCAR_BL337DST_SIZE (0x00000000U)
  121. /* Reserved */
  122. #define RCAR_BL338DST_ADDRESS (0x00000000U)
  123. #define RCAR_BL338DST_ADDRESSH (0x00000000U)
  124. #define RCAR_BL338DST_SIZE (0x00000000U)
  125. /* SA6 */
  126. const uint64_t __attribute__ ((section (".sa6_image_num"))) image_num = RCAR_IMAGE_NUM;
  127. const uint64_t __attribute__ ((section (".sa6_bl31src_addr"))) bl31src_addr = RCAR_BL31SRC_ADDRESS;
  128. const uint64_t __attribute__ ((section (".sa6_bl31partition"))) bl31partition = RCAR_BL31_PARTITION;
  129. const uint64_t __attribute__ ((section (".sa6_bl32src_addr"))) bl32src_addr = RCAR_BL32SRC_ADDRESS;
  130. const uint64_t __attribute__ ((section (".sa6_bl32partition"))) bl32partition = RCAR_BL32_PARTITION;
  131. const uint64_t __attribute__ ((section (".sa6_bl33src_addr"))) bl33src_addr = RCAR_BL33SRC_ADDRESS;
  132. const uint64_t __attribute__ ((section (".sa6_bl33partition"))) bl33partition = RCAR_BL33_PARTITION;
  133. const uint64_t __attribute__ ((section (".sa6_bl332src_addr"))) bl332src_addr = RCAR_BL332SRC_ADDRESS;
  134. const uint64_t __attribute__ ((section (".sa6_bl332partition")))bl332partition = RCAR_BL332_PARTITION;
  135. const uint64_t __attribute__ ((section (".sa6_bl333src_addr"))) bl333src_addr = RCAR_BL333SRC_ADDRESS;
  136. const uint64_t __attribute__ ((section (".sa6_bl333partition")))bl333partition = RCAR_BL333_PARTITION;
  137. const uint64_t __attribute__ ((section (".sa6_bl334src_addr"))) bl334src_addr = RCAR_BL334SRC_ADDRESS;
  138. const uint64_t __attribute__ ((section (".sa6_bl334partition")))bl334partition = RCAR_BL334_PARTITION;
  139. const uint64_t __attribute__ ((section (".sa6_bl335src_addr"))) bl335src_addr = RCAR_BL335SRC_ADDRESS;
  140. const uint64_t __attribute__ ((section (".sa6_bl335partition")))bl335partition = RCAR_BL335_PARTITION;
  141. const uint64_t __attribute__ ((section (".sa6_bl336src_addr"))) bl336src_addr = RCAR_BL336SRC_ADDRESS;
  142. const uint64_t __attribute__ ((section (".sa6_bl336partition")))bl336partition = RCAR_BL336_PARTITION;
  143. const uint64_t __attribute__ ((section (".sa6_bl337src_addr"))) bl337src_addr = RCAR_BL337SRC_ADDRESS;
  144. const uint64_t __attribute__ ((section (".sa6_bl337partition")))bl337partition = RCAR_BL337_PARTITION;
  145. const uint64_t __attribute__ ((section (".sa6_bl338src_addr"))) bl338src_addr = RCAR_BL338SRC_ADDRESS;
  146. const uint64_t __attribute__ ((section (".sa6_bl338partition")))bl338partition = RCAR_BL338_PARTITION;
  147. const uint32_t __attribute__ ((section (".sa6_bl31dst_addr"))) bl31dst_addr = RCAR_BL31DST_ADDRESS;
  148. const uint32_t __attribute__ ((section (".sa6_bl31dst_addrh"))) bl31dst_addrh = RCAR_BL31DST_ADDRESSH;
  149. const uint32_t __attribute__ ((section (".sa6_bl31dst_size"))) bl31dst_size = RCAR_BL31DST_SIZE;
  150. const uint32_t __attribute__ ((section (".sa6_bl32dst_addr"))) bl32dst_addr = RCAR_BL32DST_ADDRESS;
  151. const uint32_t __attribute__ ((section (".sa6_bl32dst_addrh"))) bl32dst_addrh = RCAR_BL32DST_ADDRESSH;
  152. const uint32_t __attribute__ ((section (".sa6_bl32dst_size"))) bl32dst_size = RCAR_BL32DST_SIZE;
  153. const uint32_t __attribute__ ((section (".sa6_bl33dst_addr"))) bl33dst_addr = RCAR_BL33DST_ADDRESS;
  154. const uint32_t __attribute__ ((section (".sa6_bl33dst_addrh"))) bl33dst_addrh = RCAR_BL33DST_ADDRESSH;
  155. const uint32_t __attribute__ ((section (".sa6_bl33dst_size"))) bl33dst_size = RCAR_BL33DST_SIZE;
  156. const uint32_t __attribute__ ((section (".sa6_bl332dst_addr"))) bl332dst_addr = RCAR_BL332DST_ADDRESS;
  157. const uint32_t __attribute__ ((section (".sa6_bl332dst_addrh")))bl332dst_addrh = RCAR_BL332DST_ADDRESSH;
  158. const uint32_t __attribute__ ((section (".sa6_bl332dst_size"))) bl332dst_size = RCAR_BL332DST_SIZE;
  159. const uint32_t __attribute__ ((section (".sa6_bl333dst_addr"))) bl333dst_addr = RCAR_BL333DST_ADDRESS;
  160. const uint32_t __attribute__ ((section (".sa6_bl333dst_addrh")))bl333dst_addrh = RCAR_BL333DST_ADDRESSH;
  161. const uint32_t __attribute__ ((section (".sa6_bl333dst_size"))) bl333dst_size = RCAR_BL333DST_SIZE;
  162. const uint32_t __attribute__ ((section (".sa6_bl334dst_addr"))) bl334dst_addr = RCAR_BL334DST_ADDRESS;
  163. const uint32_t __attribute__ ((section (".sa6_bl334dst_addrh")))bl334dst_addrh = RCAR_BL334DST_ADDRESSH;
  164. const uint32_t __attribute__ ((section (".sa6_bl334dst_size"))) bl334dst_size = RCAR_BL334DST_SIZE;
  165. const uint32_t __attribute__ ((section (".sa6_bl335dst_addr"))) bl335dst_addr = RCAR_BL335DST_ADDRESS;
  166. const uint32_t __attribute__ ((section (".sa6_bl335dst_addrh")))bl335dst_addrh = RCAR_BL335DST_ADDRESSH;
  167. const uint32_t __attribute__ ((section (".sa6_bl335dst_size"))) bl335dst_size = RCAR_BL335DST_SIZE;
  168. const uint32_t __attribute__ ((section (".sa6_bl336dst_addr"))) bl336dst_addr = RCAR_BL336DST_ADDRESS;
  169. const uint32_t __attribute__ ((section (".sa6_bl336dst_addrh")))bl336dst_addrh = RCAR_BL336DST_ADDRESSH;
  170. const uint32_t __attribute__ ((section (".sa6_bl336dst_size"))) bl336dst_size = RCAR_BL336DST_SIZE;
  171. const uint32_t __attribute__ ((section (".sa6_bl337dst_addr"))) bl337dst_addr = RCAR_BL337DST_ADDRESS;
  172. const uint32_t __attribute__ ((section (".sa6_bl337dst_addrh")))bl337dst_addrh = RCAR_BL337DST_ADDRESSH;
  173. const uint32_t __attribute__ ((section (".sa6_bl337dst_size"))) bl337dst_size = RCAR_BL337DST_SIZE;
  174. const uint32_t __attribute__ ((section (".sa6_bl338dst_addr"))) bl338dst_addr = RCAR_BL338DST_ADDRESS;
  175. const uint32_t __attribute__ ((section (".sa6_bl338dst_addrh")))bl338dst_addrh = RCAR_BL338DST_ADDRESSH;
  176. const uint32_t __attribute__ ((section (".sa6_bl338dst_size"))) bl338dst_size = RCAR_BL338DST_SIZE;