summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2019-06-25 02:51:42 -0700
committerYe Li <ye.li@nxp.com>2019-06-25 18:55:30 -0700
commitc36ae6a623b075192b20d93f9e3fe966961d86f4 (patch)
tree90bf6f70c72590130b84c33fe074f8a84b3eda18 /board
parent53cc1a63d672882cb8c71af61321051f4dcbe091 (diff)
MLK-22105-3 imx8/imx8m: spl: Move bss clean up before arch_cpu_init
Since rng_init is used arch_cpu_init, we have to clean up BSS section before it. Also remove the unnecessary memset to global data, because board_init_f_init_reserve already memset it. If we memset it in board_init_f, the gd->malloc_base is reset to 0 and will cause early malloc problem when CONFIG_MALLOC_F_ADDR is not set. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'board')
-rw-r--r--board/freescale/imx8mm_evk/spl.c7
-rw-r--r--board/freescale/imx8mm_val/spl.c7
-rw-r--r--board/freescale/imx8mn_evk/spl.c7
-rw-r--r--board/freescale/imx8mq_aiy/spl.c7
-rw-r--r--board/freescale/imx8mq_arm2/spl.c7
-rw-r--r--board/freescale/imx8mq_evk/spl.c7
-rw-r--r--board/freescale/imx8mq_phanbell/spl.c7
-rw-r--r--board/freescale/imx8qm_arm2/spl.c7
-rw-r--r--board/freescale/imx8qm_mek/spl.c7
-rw-r--r--board/freescale/imx8qxp_arm2/spl.c7
-rw-r--r--board/freescale/imx8qxp_mek/spl.c7
11 files changed, 22 insertions, 55 deletions
diff --git a/board/freescale/imx8mm_evk/spl.c b/board/freescale/imx8mm_evk/spl.c
index 10f00a50d2..ceba5eeb22 100644
--- a/board/freescale/imx8mm_evk/spl.c
+++ b/board/freescale/imx8mm_evk/spl.c
@@ -221,8 +221,8 @@ void board_init_f(ulong dummy)
{
int ret;
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -232,9 +232,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
ret = spl_init();
if (ret) {
debug("spl_init() failed: %d\n", ret);
diff --git a/board/freescale/imx8mm_val/spl.c b/board/freescale/imx8mm_val/spl.c
index 8d187deef1..f14946da8f 100644
--- a/board/freescale/imx8mm_val/spl.c
+++ b/board/freescale/imx8mm_val/spl.c
@@ -231,8 +231,8 @@ int board_fit_config_name_match(const char *name)
void board_init_f(ulong dummy)
{
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -242,8 +242,5 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
board_init_r(NULL, 0);
}
diff --git a/board/freescale/imx8mn_evk/spl.c b/board/freescale/imx8mn_evk/spl.c
index 835053f5f2..17daed91f6 100644
--- a/board/freescale/imx8mn_evk/spl.c
+++ b/board/freescale/imx8mn_evk/spl.c
@@ -203,8 +203,8 @@ void board_init_f(ulong dummy)
{
int ret;
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -214,9 +214,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
ret = spl_init();
if (ret) {
debug("spl_init() failed: %d\n", ret);
diff --git a/board/freescale/imx8mq_aiy/spl.c b/board/freescale/imx8mq_aiy/spl.c
index 0b2c88f8e0..b299278a17 100644
--- a/board/freescale/imx8mq_aiy/spl.c
+++ b/board/freescale/imx8mq_aiy/spl.c
@@ -233,8 +233,8 @@ void board_init_f(ulong dummy)
{
int ret;
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -246,9 +246,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
ret = spl_init();
if (ret) {
debug("spl_init() failed: %d\n", ret);
diff --git a/board/freescale/imx8mq_arm2/spl.c b/board/freescale/imx8mq_arm2/spl.c
index acf35be9a7..a1bf18dde8 100644
--- a/board/freescale/imx8mq_arm2/spl.c
+++ b/board/freescale/imx8mq_arm2/spl.c
@@ -221,8 +221,8 @@ void board_init_f(ulong dummy)
{
int ret;
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -234,9 +234,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
ret = spl_init();
if (ret) {
debug("spl_init() failed: %d\n", ret);
diff --git a/board/freescale/imx8mq_evk/spl.c b/board/freescale/imx8mq_evk/spl.c
index 841329f6a5..2175cbfc66 100644
--- a/board/freescale/imx8mq_evk/spl.c
+++ b/board/freescale/imx8mq_evk/spl.c
@@ -219,8 +219,8 @@ void board_init_f(ulong dummy)
{
int ret;
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -232,9 +232,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
ret = spl_init();
if (ret) {
debug("spl_init() failed: %d\n", ret);
diff --git a/board/freescale/imx8mq_phanbell/spl.c b/board/freescale/imx8mq_phanbell/spl.c
index 75ecb93b14..53dd61a7d8 100644
--- a/board/freescale/imx8mq_phanbell/spl.c
+++ b/board/freescale/imx8mq_phanbell/spl.c
@@ -212,8 +212,8 @@ void board_init_f(ulong dummy)
{
int ret;
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -225,9 +225,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
ret = spl_init();
if (ret) {
debug("spl_init() failed: %d\n", ret);
diff --git a/board/freescale/imx8qm_arm2/spl.c b/board/freescale/imx8qm_arm2/spl.c
index cb25483c10..2005b0cf1c 100644
--- a/board/freescale/imx8qm_arm2/spl.c
+++ b/board/freescale/imx8qm_arm2/spl.c
@@ -224,8 +224,8 @@ void spl_board_init(void)
void board_init_f(ulong dummy)
{
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -235,9 +235,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
board_init_r(NULL, 0);
}
diff --git a/board/freescale/imx8qm_mek/spl.c b/board/freescale/imx8qm_mek/spl.c
index 74366abe91..7eab9a9980 100644
--- a/board/freescale/imx8qm_mek/spl.c
+++ b/board/freescale/imx8qm_mek/spl.c
@@ -219,8 +219,8 @@ int board_fit_config_name_match(const char *name)
void board_init_f(ulong dummy)
{
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -230,9 +230,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
board_init_r(NULL, 0);
}
diff --git a/board/freescale/imx8qxp_arm2/spl.c b/board/freescale/imx8qxp_arm2/spl.c
index e9cb7eb532..c1a77a86e2 100644
--- a/board/freescale/imx8qxp_arm2/spl.c
+++ b/board/freescale/imx8qxp_arm2/spl.c
@@ -208,8 +208,8 @@ void spl_board_prepare_for_boot(void)
void board_init_f(ulong dummy)
{
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -219,9 +219,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
board_init_r(NULL, 0);
}
diff --git a/board/freescale/imx8qxp_mek/spl.c b/board/freescale/imx8qxp_mek/spl.c
index a8c8829972..eb8fbcc252 100644
--- a/board/freescale/imx8qxp_mek/spl.c
+++ b/board/freescale/imx8qxp_mek/spl.c
@@ -215,8 +215,8 @@ int board_fit_config_name_match(const char *name)
void board_init_f(ulong dummy)
{
- /* Clear global data */
- memset((void *)gd, 0, sizeof(gd_t));
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
arch_cpu_init();
@@ -226,9 +226,6 @@ void board_init_f(ulong dummy)
preloader_console_init();
- /* Clear the BSS. */
- memset(__bss_start, 0, __bss_end - __bss_start);
-
board_init_r(NULL, 0);
}