arm: spl: Avoid setting up a duplicate global data structure
authorSimon Glass <sjg@chromium.org>
Tue, 3 Mar 2015 15:02:58 +0000 (08:02 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 4 Mar 2015 19:55:04 +0000 (14:55 -0500)
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: Simon Glass <sjg@chromium.org>
arch/arm/include/asm/spl.h
arch/arm/lib/spl.c

index 17b6f544da79e024a6fb25e9c1405bac420663f4..6db405d7d92c25f5435c85244ef9f5e601190927 100644 (file)
@@ -37,6 +37,8 @@ void spl_board_load_image(void);
 /* Linker symbols. */
 extern char __bss_start[], __bss_end[];
 
+#ifndef CONFIG_DM
 extern gd_t gdata;
+#endif
 
 #endif
index c41850aaeee533a927042d54abd0202f41b2d561..bd8c7d2ede0c589aaf7526252dc92e95d2f8dc98 100644 (file)
@@ -13,6 +13,7 @@
 #include <image.h>
 #include <linux/compiler.h>
 
+#ifndef CONFIG_DM
 /* Pointer to as well as the global data structure for SPL */
 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.
  */
 gd_t gdata __attribute__ ((section(".data")));
+#endif
 
 /*
  * 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)
        /* Clear the BSS. */
        memset(__bss_start, 0, __bss_end - __bss_start);
 
+#ifndef CONFIG_DM
        /* TODO: Remove settings of the global data pointer here */
        gd = &gdata;
+#endif
 
        board_init_r(NULL, 0);
 }