]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'next' of git://git.denx.de/u-boot-nios
authorWolfgang Denk <wd@denx.de>
Tue, 7 Sep 2010 19:46:14 +0000 (21:46 +0200)
committerWolfgang Denk <wd@denx.de>
Tue, 7 Sep 2010 19:46:14 +0000 (21:46 +0200)
arch/nios2/cpu/cpu.c
arch/nios2/include/asm/system.h
arch/nios2/lib/bootm.c

index 6379534a0b5c59175332a11b317fbd5f35fec39d..d9c654477d99569f23d031338dc693ee2cf7ed5d 100644 (file)
@@ -40,11 +40,10 @@ int checkcpu (void)
        return (0);
 }
 
-
-int do_reset (void)
+int do_reset(void)
 {
-       void (*rst)(void) = (void(*)(void))CONFIG_SYS_RESET_ADDR;
-       disable_interrupts ();
-       rst();
-       return(0);
+       disable_interrupts();
+       /* indirect call to go beyond 256MB limitation of toolchain */
+       nios2_callr(CONFIG_SYS_RESET_ADDR);
+       return 0;
 }
index bb03ca5316a31aea95a035e09b5632cdbec3ac38..086d92bb0c946526e5b0606c1e090932b19569d1 100644 (file)
@@ -56,4 +56,9 @@
        ((flags & NIOS2_STATUS_PIE_MSK) == 0x0);        \
 })
 
+/* indirect call to go beyond 256MB limitation of toolchain */
+#define nios2_callr(addr) __asm__ __volatile__ (       \
+       "callr  %0"                                     \
+       : : "r" (addr))
+
 #endif /* __ASM_NIOS2_SYSTEM_H */
index e25a1137f18a18a9c9d2d62e96950a1d8b350355..40a4d15027a0639d2b4afa8feac40ee621a234ae 100644 (file)
@@ -42,7 +42,7 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima
        if (boot_get_fdt(flag, argc, argv, images, &of_flat_tree, &of_size))
                return 1;
 #endif
-       if (!of_flat_tree)
+       if (!of_flat_tree && argc > 3)
                of_flat_tree = (char *)simple_strtoul(argv[3], NULL, 16);
        if (of_flat_tree)
                initrd_end = (ulong)of_flat_tree;