diff options
author | Ye Li <ye.li@nxp.com> | 2019-06-25 02:51:42 -0700 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2019-06-25 18:55:30 -0700 |
commit | c36ae6a623b075192b20d93f9e3fe966961d86f4 (patch) | |
tree | 90bf6f70c72590130b84c33fe074f8a84b3eda18 /board | |
parent | 53cc1a63d672882cb8c71af61321051f4dcbe091 (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.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8mm_val/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8mn_evk/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8mq_aiy/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8mq_arm2/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8mq_evk/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8mq_phanbell/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8qm_arm2/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8qm_mek/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8qxp_arm2/spl.c | 7 | ||||
-rw-r--r-- | board/freescale/imx8qxp_mek/spl.c | 7 |
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); } |