Skip to content
Snippets Groups Projects
Commit fc8fdc76 authored by Simon Glass's avatar Simon Glass Committed by Tom Rini
Browse files

arm: spl: Avoid setting up a duplicate global data structure


This is already set up in crt0.S. We don't need a new structure and don't
really want one in the 'data' section of the image, since it will be empty
and crt0.S's changes will be ignored.

As an interim measure, remove it only if CONFIG_DM is not defined. This
allows us to press ahead with driver model in SPL and allow the stragglers
to catch up.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
parent 24a6bc01
No related branches found
No related tags found
No related merge requests found
...@@ -37,6 +37,8 @@ void spl_board_load_image(void); ...@@ -37,6 +37,8 @@ void spl_board_load_image(void);
/* Linker symbols. */ /* Linker symbols. */
extern char __bss_start[], __bss_end[]; extern char __bss_start[], __bss_end[];
#ifndef CONFIG_DM
extern gd_t gdata; extern gd_t gdata;
#endif
#endif #endif
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <image.h> #include <image.h>
#include <linux/compiler.h> #include <linux/compiler.h>
#ifndef CONFIG_DM
/* Pointer to as well as the global data structure for SPL */ /* Pointer to as well as the global data structure for SPL */
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
...@@ -21,6 +22,7 @@ DECLARE_GLOBAL_DATA_PTR; ...@@ -21,6 +22,7 @@ DECLARE_GLOBAL_DATA_PTR;
* pafches that rely on it. The global_data area is set up in crt0.S. * pafches that rely on it. The global_data area is set up in crt0.S.
*/ */
gd_t gdata __attribute__ ((section(".data"))); gd_t gdata __attribute__ ((section(".data")));
#endif
/* /*
* In the context of SPL, board_init_f must ensure that any clocks/etc for * In the context of SPL, board_init_f must ensure that any clocks/etc for
...@@ -33,8 +35,10 @@ void __weak board_init_f(ulong dummy) ...@@ -33,8 +35,10 @@ void __weak board_init_f(ulong dummy)
/* Clear the BSS. */ /* Clear the BSS. */
memset(__bss_start, 0, __bss_end - __bss_start); memset(__bss_start, 0, __bss_end - __bss_start);
#ifndef CONFIG_DM
/* TODO: Remove settings of the global data pointer here */ /* TODO: Remove settings of the global data pointer here */
gd = &gdata; gd = &gdata;
#endif
board_init_r(NULL, 0); board_init_r(NULL, 0);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment