spi: cadence_qspi: get sram size from device tree
[oweals/u-boot.git] / arch / arm / lib / spl.c
index 583bdb3ac26a6bcc88b2de2f37ffccf9467a50f3..bd8c7d2ede0c589aaf7526252dc92e95d2f8dc98 100644 (file)
 #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;
+
+/*
+ * WARNING: This is going away very soon. Don't use it and don't submit
+ * 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
@@ -25,14 +32,13 @@ gd_t gdata __attribute__ ((section(".data")));
  */
 void __weak board_init_f(ulong dummy)
 {
-       /* Set the stack pointer. */
-       asm volatile("mov sp, %0\n" : : "r"(CONFIG_SPL_STACK));
-
        /* Clear the BSS. */
        memset(__bss_start, 0, __bss_end - __bss_start);
 
-       /* Set global data pointer. */
+#ifndef CONFIG_DM
+       /* TODO: Remove settings of the global data pointer here */
        gd = &gdata;
+#endif
 
        board_init_r(NULL, 0);
 }
@@ -45,12 +51,17 @@ void __weak board_init_f(ulong dummy)
 #ifdef CONFIG_SPL_OS_BOOT
 void __noreturn jump_to_image_linux(void *arg)
 {
+       unsigned long machid = 0xffffffff;
+#ifdef CONFIG_MACH_TYPE
+       machid = CONFIG_MACH_TYPE;
+#endif
+
        debug("Entering kernel arg pointer: 0x%p\n", arg);
        typedef void (*image_entry_arg_t)(int, int, void *)
                __attribute__ ((noreturn));
        image_entry_arg_t image_entry =
                (image_entry_arg_t) spl_image.entry_point;
        cleanup_before_linux();
-       image_entry(0, CONFIG_MACH_TYPE, arg);
+       image_entry(0, machid, arg);
 }
 #endif