004-plat-nxp-restore-ls1012afrdm-support.patch 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. From 8c6a66feb721f18c930c7df03d1fbb7304107af6 Mon Sep 17 00:00:00 2001
  2. From: Wojciech Dubowik <[email protected]>
  3. Date: Thu, 20 Apr 2023 16:21:25 +0200
  4. Subject: [PATCH] tfa-layerscape: Restore ls1012afrdm support
  5. Signed-off-by: Wojciech Dubowik <[email protected]>
  6. ---
  7. plat/nxp/soc-ls1012a/ls1012afrdm/ddr_init.c | 34 +++++++
  8. plat/nxp/soc-ls1012a/ls1012afrdm/plat_def.h | 92 +++++++++++++++++++
  9. plat/nxp/soc-ls1012a/ls1012afrdm/platform.mk | 25 +++++
  10. .../soc-ls1012a/ls1012afrdm/platform_def.h | 13 +++
  11. plat/nxp/soc-ls1012a/ls1012afrdm/policy.h | 16 ++++
  12. 5 files changed, 180 insertions(+)
  13. create mode 100644 plat/nxp/soc-ls1012a/ls1012afrdm/ddr_init.c
  14. create mode 100644 plat/nxp/soc-ls1012a/ls1012afrdm/plat_def.h
  15. create mode 100644 plat/nxp/soc-ls1012a/ls1012afrdm/platform.mk
  16. create mode 100644 plat/nxp/soc-ls1012a/ls1012afrdm/platform_def.h
  17. create mode 100644 plat/nxp/soc-ls1012a/ls1012afrdm/policy.h
  18. diff --git a/plat/nxp/soc-ls1012a/ls1012afrdm/ddr_init.c b/plat/nxp/soc-ls1012a/ls1012afrdm/ddr_init.c
  19. new file mode 100644
  20. index 000000000..8cb518540
  21. --- /dev/null
  22. +++ b/plat/nxp/soc-ls1012a/ls1012afrdm/ddr_init.c
  23. @@ -0,0 +1,34 @@
  24. +/*
  25. + * Copyright 2018-2022 NXP
  26. + *
  27. + * SPDX-License-Identifier: BSD-3-Clause
  28. + */
  29. +
  30. +#include <common/debug.h>
  31. +#include <fsl_mmdc.h>
  32. +
  33. +#include <platform_def.h>
  34. +
  35. +long long init_ddr(void)
  36. +{
  37. + static const struct fsl_mmdc_info mparam = {
  38. + .mdctl = U(0x04180000),
  39. + .mdpdc = U(0x00030035),
  40. + .mdotc = U(0x12554000),
  41. + .mdcfg0 = U(0xbabf7954),
  42. + .mdcfg1 = U(0xdb328f64),
  43. + .mdcfg2 = U(0x01ff00db),
  44. + .mdmisc = U(0x00001680),
  45. + .mdref = U(0x0f3c8000),
  46. + .mdrwd = U(0x00002000),
  47. + .mdor = U(0x00bf1023),
  48. + .mdasp = U(0x0000003f),
  49. + .mpodtctrl = U(0x0000022a),
  50. + .mpzqhwctrl = U(0xa1390003),
  51. + };
  52. +
  53. + mmdc_init(&mparam, NXP_DDR_ADDR);
  54. + NOTICE("DDR Init Done\n");
  55. +
  56. + return NXP_DRAM0_SIZE;
  57. +}
  58. diff --git a/plat/nxp/soc-ls1012a/ls1012afrdm/plat_def.h b/plat/nxp/soc-ls1012a/ls1012afrdm/plat_def.h
  59. new file mode 100644
  60. index 000000000..eb745a0a3
  61. --- /dev/null
  62. +++ b/plat/nxp/soc-ls1012a/ls1012afrdm/plat_def.h
  63. @@ -0,0 +1,92 @@
  64. +/*
  65. + * Copyright 2022 NXP
  66. + *
  67. + * SPDX-License-Identifier: BSD-3-Clause
  68. + */
  69. +
  70. +#ifndef PLAT_DEF_H
  71. +#define PLAT_DEF_H
  72. +
  73. +#include <arch.h>
  74. +/*
  75. + * Required without TBBR.
  76. + * To include the defines for DDR PHY
  77. + * Images.
  78. + */
  79. +#include <tbbr_img_def.h>
  80. +
  81. +#include <policy.h>
  82. +#include <soc.h>
  83. +
  84. +/* DDR Related definition */
  85. +#define PLAT_DEF_DRAM0_SIZE 0x20000000 /* 512 MB */
  86. +
  87. +#define NXP_SYSCLK_FREQ 125000000
  88. +#define NXP_DDRCLK_FREQ 100000000
  89. +
  90. +/* UART related definition */
  91. +#define NXP_CONSOLE_ADDR NXP_UART_ADDR
  92. +#define NXP_CONSOLE_BAUDRATE 115200
  93. +
  94. +#define NXP_SPD_EEPROM0 0x51
  95. +
  96. +/* Size of cacheable stacks */
  97. +#if defined(IMAGE_BL2)
  98. +#if defined(TRUSTED_BOARD_BOOT)
  99. +#define PLATFORM_STACK_SIZE 0x2000
  100. +#else
  101. +#define PLATFORM_STACK_SIZE 0x1000
  102. +#endif
  103. +#elif defined(IMAGE_BL31)
  104. +#define PLATFORM_STACK_SIZE 0x1000
  105. +#endif
  106. +
  107. +/* SD block buffer */
  108. +#define NXP_SD_BLOCK_BUF_SIZE (0x00100000)
  109. +#define NXP_SD_BLOCK_BUF_ADDR ULL(0x80000000)
  110. +
  111. +#define BL2_LIMIT (NXP_OCRAM_ADDR + NXP_OCRAM_SIZE)
  112. +
  113. +/* IO defines as needed by IO driver framework */
  114. +#define MAX_IO_DEVICES 3
  115. +#define MAX_IO_BLOCK_DEVICES 1
  116. +#define MAX_IO_HANDLES 4
  117. +
  118. +/*
  119. + * FIP image defines - Offset at which FIP Image would be present
  120. + * Image would include Bl31 , Bl33 and Bl32 (optional)
  121. + */
  122. +#ifdef POLICY_FUSE_PROVISION
  123. +#define MAX_FIP_DEVICES 2
  124. +#endif
  125. +
  126. +#ifndef MAX_FIP_DEVICES
  127. +#define MAX_FIP_DEVICES 1
  128. +#endif
  129. +
  130. +#ifdef PLAT_FIP_OFFSET
  131. +#undef PLAT_FIP_OFFSET
  132. +#endif
  133. +#ifdef PLAT_FIP_MAX_SIZE
  134. +#undef PLAT_FIP_MAX_SIZE
  135. +#endif
  136. +#define PLAT_FIP_OFFSET 0x60000
  137. +#define PLAT_FIP_MAX_SIZE 0x170000
  138. +
  139. +/*
  140. + * ID of the secure physical generic timer interrupt used by the BL32.
  141. + */
  142. +#define BL32_IRQ_SEC_PHY_TIMER 29
  143. +
  144. +/*
  145. + * Define properties of Group 1 Secure and Group 0 interrupts as per GICv3
  146. + * terminology. On a GICv2 system or mode, the lists will be merged and treated
  147. + * as Group 0 interrupts.
  148. + */
  149. +#define PLAT_LS_G1S_IRQ_PROPS(grp) \
  150. + INTR_PROP_DESC(BL32_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, grp, \
  151. + GIC_INTR_CFG_LEVEL)
  152. +
  153. +#define PLAT_LS_G0_IRQ_PROPS(grp)
  154. +
  155. +#endif
  156. diff --git a/plat/nxp/soc-ls1012a/ls1012afrdm/platform.mk b/plat/nxp/soc-ls1012a/ls1012afrdm/platform.mk
  157. new file mode 100644
  158. index 000000000..270e92420
  159. --- /dev/null
  160. +++ b/plat/nxp/soc-ls1012a/ls1012afrdm/platform.mk
  161. @@ -0,0 +1,25 @@
  162. +#
  163. +# Copyright 2018-2022 NXP
  164. +#
  165. +# SPDX-License-Identifier: BSD-3-Clause
  166. +#
  167. +
  168. +# board-specific build parameters
  169. +BOOT_MODE := qspi
  170. +BOARD := ls1012afrdm
  171. +
  172. +# DDR Compilation Configs
  173. +DDRC_NUM_CS := 1
  174. +
  175. +# On-Board Flash Details
  176. +QSPI_FLASH_SZ := 0x4000000
  177. +
  178. +BL2_SOURCES += ${BOARD_PATH}/ddr_init.c
  179. +
  180. +SUPPORTED_BOOT_MODE := qspi
  181. +
  182. +# Adding platform board build info
  183. +include plat/nxp/common/plat_make_helper/plat_common_def.mk
  184. +
  185. +# Adding SoC build info
  186. +include plat/nxp/soc-ls1012a/soc.mk
  187. diff --git a/plat/nxp/soc-ls1012a/ls1012afrdm/platform_def.h b/plat/nxp/soc-ls1012a/ls1012afrdm/platform_def.h
  188. new file mode 100644
  189. index 000000000..7daf1c02c
  190. --- /dev/null
  191. +++ b/plat/nxp/soc-ls1012a/ls1012afrdm/platform_def.h
  192. @@ -0,0 +1,13 @@
  193. +/*
  194. + * Copyright 2022 NXP
  195. + *
  196. + * SPDX-License-Identifier: BSD-3-Clause
  197. + */
  198. +
  199. +#ifndef PLATFORM_DEF_H
  200. +#define PLATFORM_DEF_H
  201. +
  202. +#include <plat_def.h>
  203. +#include <plat_default_def.h>
  204. +
  205. +#endif /* PLATFORM_DEF_H */
  206. diff --git a/plat/nxp/soc-ls1012a/ls1012afrdm/policy.h b/plat/nxp/soc-ls1012a/ls1012afrdm/policy.h
  207. new file mode 100644
  208. index 000000000..a782d01c7
  209. --- /dev/null
  210. +++ b/plat/nxp/soc-ls1012a/ls1012afrdm/policy.h
  211. @@ -0,0 +1,16 @@
  212. +/*
  213. + * Copyright 2018-2022 NXP
  214. + *
  215. + * SPDX-License-Identifier: BSD-3-Clause
  216. + */
  217. +
  218. +#ifndef POLICY_H
  219. +#define POLICY_H
  220. +
  221. +/*
  222. + * Set this to 0x0 to leave the default SMMU page size in sACR
  223. + * Set this to 0x1 to change the SMMU page size to 64K
  224. + */
  225. +#define POLICY_SMMU_PAGESZ_64K 0x0
  226. +
  227. +#endif /* POLICY_H */
  228. --
  229. 2.34.1