OMAP: use {read,write}l to access timer registers
[oweals/u-boot.git] / cpu / arm925t / cpu.c
index c55fbc7959f46a4a00a6b324f8c75888b5bc92c1..b9f09318ad52cb2189b46db763a527052bef0f73 100644 (file)
 #include <command.h>
 #include <arm925t.h>
 
+#ifdef CONFIG_USE_IRQ
+DECLARE_GLOBAL_DATA_PTR;
+#endif
+
 /* read co-processor 15, register #1 (control register) */
 static unsigned long read_p15_c1 (void)
 {
@@ -88,17 +92,13 @@ static void cp_delay (void)
 int cpu_init (void)
 {
        /*
-        * setup up stack if necessary
+        * setup up stacks if necessary
         */
 #ifdef CONFIG_USE_IRQ
-       IRQ_STACK_START = _armboot_end +
-                       CONFIG_STACKSIZE + CONFIG_STACKSIZE_IRQ - 4;
-       FIQ_STACK_START = IRQ_STACK_START + CONFIG_STACKSIZE_FIQ;
-       _armboot_real_end = FIQ_STACK_START + 4;
-#else
-       _armboot_real_end = _armboot_end + CONFIG_STACKSIZE;
-#endif /* CONFIG_USE_IRQ */
-       return (0);
+       IRQ_STACK_START = _armboot_start - CONFIG_SYS_MALLOC_LEN - CONFIG_SYS_GBL_DATA_SIZE - 4;
+       FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;
+#endif
+       return 0;
 }
 
 int cleanup_before_linux (void)
@@ -127,8 +127,6 @@ int cleanup_before_linux (void)
 
 int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
-       extern void reset_cpu (ulong addr);
-
        disable_interrupts ();
        reset_cpu (0);
        /*NOTREACHED*/