]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - arch/powerpc/cpu/ppc4xx/start.S
drivers, block: remove sil680 driver
[people/ms/u-boot.git] / arch / powerpc / cpu / ppc4xx / start.S
index 11b55d5a56e4ba44ebe527eacae162cbe5a818a5..7633abc1a16bc24bc146d185b5e1e16fd06da40b 100644 (file)
 #endif
 
 /*
- * Unless otherwise overriden, enable two 128MB cachable instruction regions
+ * Unless otherwise overridden, enable two 128MB cachable instruction regions
  * at CONFIG_SYS_SDRAM_BASE and another 128MB cacheable instruction region covering
  * NOR flash at CONFIG_SYS_FLASH_BASE. Disable all cacheable data regions.
  */
@@ -664,8 +664,7 @@ _start:
     defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
     defined(CONFIG_460SX)
        mtdcr   L2_CACHE_CFG,r0         /* Ensure L2 Cache is off */
-#elif defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
-      defined(CONFIG_APM821XX)
+#elif defined(CONFIG_460EX) || defined(CONFIG_460GT)
        lis     r1, 0x0000
        ori     r1,r1,0x0008            /* Set L2_CACHE_CFG[RDBW]=1 */
        mtdcr   L2_CACHE_CFG,r1
@@ -694,7 +693,7 @@ _start:
        ori     r1,r1, 0x0980           /* fourth 64k */
        mtdcr   ISRAM0_SB3CR,r1
 #elif defined(CONFIG_440SPE) || defined(CONFIG_460EX) || \
-      defined(CONFIG_460GT) || defined(CONFIG_APM821XX)
+      defined(CONFIG_460GT)
        lis     r1,0x0000               /* BAS = X_0000_0000 */
        ori     r1,r1,0x0984            /* first 64k */
        mtdcr   ISRAM0_SB0CR,r1
@@ -707,8 +706,7 @@ _start:
        lis     r1, 0x0003
        ori     r1,r1, 0x0984           /* fourth 64k */
        mtdcr   ISRAM0_SB3CR,r1
-#if defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
-    defined(CONFIG_APM821XX)
+#if defined(CONFIG_460EX) || defined(CONFIG_460GT)
        lis     r2,0x7fff
        ori     r2,r2,0xffff
        mfdcr   r1,ISRAM1_DPC
@@ -745,8 +743,16 @@ _start:
        /*----------------------------------------------------------------*/
        /* Setup the stack in internal SRAM */
        /*----------------------------------------------------------------*/
-       lis     r1,CONFIG_SYS_INIT_RAM_ADDR@h
-       ori     r1,r1,CONFIG_SYS_INIT_SP_OFFSET@l
+       lis     r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@h
+       ori     r1, r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@l
+       /*
+        * Reserve space for globals and store address for initialization
+        * with board_init_f_init_reserve() in r14
+        */
+       mr      r3, r1
+       bl      board_init_f_alloc_reserve
+       mr      r1, r3
+       mr      r14, r3
        li      r0,0
        stwu    r0,-4(r1)
        stwu    r0,-4(r1)               /* Terminate call chain */
@@ -762,6 +768,10 @@ _start:
 #endif
 
        bl      cpu_init_f      /* run low-level CPU init code     (from Flash) */
+       /* address for globals was stored in r14 */
+       mr      r3, r14
+       bl      board_init_f_init_reserve
+       li      r3, 0
        bl      board_init_f
        /* NOTREACHED - board_init_f() does not return */
 
@@ -825,8 +835,16 @@ _start:
         * for their primordial stack, setup stack here directly after the
         * SDRAM is initialized in ext_bus_cntlr_init.
         */
-       lis     r1, CONFIG_SYS_INIT_RAM_ADDR@h
-       ori     r1,r1,CONFIG_SYS_INIT_SP_OFFSET /* set up the stack in SDRAM */
+       lis     r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@h
+       ori     r1, r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@l
+       /*
+        * Reserve space for globals and store address for initialization
+        * with board_init_f_init_reserve() in r14
+        */
+       mr      r3, r1
+       bl      board_init_f_alloc_reserve
+       mr      r1, r3
+       mr      r14, r3
 
        li      r0, 0                   /* Make room for stack frame header and */
        stwu    r0, -4(r1)              /* clear final stack frame so that      */
@@ -966,8 +984,16 @@ _start:
         * Load the initial stack pointer and data area and convert the size,
         * in bytes, to the number of words to initialize to a known value.
         */
-       lis     r1, CONFIG_SYS_INIT_RAM_ADDR@h
-       ori     r1, r1, CONFIG_SYS_INIT_SP_OFFSET@l
+       lis     r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@h
+       ori     r1, r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@l
+       /*
+        * Reserve space for globals and store address for initialization
+        * with board_init_f_init_reserve() in r14
+        */
+       mr      r3, r1
+       bl      board_init_f_alloc_reserve
+       mr      r1, r3
+       mr      r14, r3
 
        lis     r4, (CONFIG_SYS_INIT_RAM_SIZE >> 2)@h
        ori     r4, r4, (CONFIG_SYS_INIT_RAM_SIZE >> 2)@l
@@ -987,6 +1013,7 @@ _start:
         * Make room for stack frame header and clear final stack frame so
         * that stack backtraces terminate cleanly.
         */
+       li      r0, 0
        stwu    r0, -4(r1)
        stwu    r0, -4(r1)
 
@@ -1005,10 +1032,16 @@ _start:
        /*
         * Stack in OCM.
         */
-
-       /* Set up Stack at top of OCM */
-       lis     r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)@h
-       ori     r1, r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)@l
+       lis     r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@h
+       ori     r1, r1, (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)@l
+       /*
+        * Reserve space for globals and store address for initialization
+        * with board_init_f_init_reserve() in r14
+        */
+       mr      r3, r1
+       bl      board_init_f_alloc_reserve
+       mr      r1, r3
+       mr      r14, r3
 
        /* Set up a zeroized stack frame so that backtrace works right */
        li      r0, 0
@@ -1029,7 +1062,10 @@ _start:
        GET_GOT                 /* initialize GOT access                        */
 
        bl      cpu_init_f      /* run low-level CPU init code     (from Flash) */
-
+       /* address for globals was stored in r14 */
+       mr      r3, r14
+       bl      board_init_f_init_reserve
+       li      r3, 0
        bl      board_init_f    /* run first part of init code (from Flash)     */
        /* NOTREACHED - board_init_f() does not return */
 
@@ -1781,49 +1817,11 @@ ppc405ep_init:
 ..no_pllset:
 #endif /* CONFIG_BUBINGA */
 
-#ifdef CONFIG_TAIHU
-       mfdcr   r4, CPC0_BOOT
-       andi.   r5, r4, CPC0_BOOT_SEP@l
-       bne     strap_1                 /* serial eeprom present */
-       addis   r5,0,CPLD_REG0_ADDR@h
-       ori     r5,r5,CPLD_REG0_ADDR@l
-       andi.   r5, r5, 0x10
-       bne     _pci_66mhz
-#endif /* CONFIG_TAIHU */
-
-#if defined(CONFIG_ZEUS)
-       mfdcr   r4, CPC0_BOOT
-       andi.   r5, r4, CPC0_BOOT_SEP@l
-       bne     strap_1                 /* serial eeprom present */
-       lis     r3,0x0000
-       addi    r3,r3,0x3030
-       lis     r4,0x8042
-       addi    r4,r4,0x223e
-       b       1f
-strap_1:
-       mfdcr   r3, CPC0_PLLMR0
-       mfdcr   r4, CPC0_PLLMR1
-       b       1f
-#endif
-
        addis   r3,0,PLLMR0_DEFAULT@h   /* PLLMR0 default value */
        ori     r3,r3,PLLMR0_DEFAULT@l  /* */
        addis   r4,0,PLLMR1_DEFAULT@h   /* PLLMR1 default value */
        ori     r4,r4,PLLMR1_DEFAULT@l  /* */
 
-#ifdef CONFIG_TAIHU
-       b       1f
-_pci_66mhz:
-       addis   r3,0,PLLMR0_DEFAULT_PCI66@h
-       ori     r3,r3,PLLMR0_DEFAULT_PCI66@l
-       addis   r4,0,PLLMR1_DEFAULT_PCI66@h
-       ori     r4,r4,PLLMR1_DEFAULT_PCI66@l
-       b       1f
-strap_1:
-       mfdcr   r3, CPC0_PLLMR0
-       mfdcr   r4, CPC0_PLLMR1
-#endif /* CONFIG_TAIHU */
-
 1:
        b       pll_write               /* Write the CPC0_PLLMR with new value */