]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/arm/mach-uniphier/ph1-ld4/sbc_init.c
karo: cleanup after merge of v2015.10-rc2
[karo-tx-uboot.git] / arch / arm / mach-uniphier / ph1-ld4 / sbc_init.c
index cc74907f6a6139c8c77e03473af4fa942ee7aced..8e25792b501e97e9b4df17ea23c992aa3f3dbd8e 100644 (file)
@@ -18,33 +18,32 @@ void sbc_init(void)
        tmp &= 0xfffffcff;
        writel(tmp, PC0CTRL);
 
-       /* XECS1: sub/boot memory (boot swap = off/on) */
-       writel(SBCTRL0_SAVEPIN_MEM_VALUE, SBCTRL10);
-       writel(SBCTRL1_SAVEPIN_MEM_VALUE, SBCTRL11);
-       writel(SBCTRL2_SAVEPIN_MEM_VALUE, SBCTRL12);
-       writel(SBCTRL4_SAVEPIN_MEM_VALUE, SBCTRL14);
+       /*
+        * Only CS1 is connected to support card.
+        * BKSZ[1:0] should be set to "01".
+        */
+       writel(SBCTRL0_SAVEPIN_PERI_VALUE, SBCTRL10);
+       writel(SBCTRL1_SAVEPIN_PERI_VALUE, SBCTRL11);
+       writel(SBCTRL2_SAVEPIN_PERI_VALUE, SBCTRL12);
+       writel(SBCTRL4_SAVEPIN_PERI_VALUE, SBCTRL14);
 
-#if !defined(CONFIG_SPL_BUILD)
-       /* XECS0: boot/sub memory (boot swap = off/on) */
-       writel(SBCTRL0_SAVEPIN_MEM_VALUE, SBCTRL00);
-       writel(SBCTRL1_SAVEPIN_MEM_VALUE, SBCTRL01);
-       writel(SBCTRL2_SAVEPIN_MEM_VALUE, SBCTRL02);
-       writel(SBCTRL4_SAVEPIN_MEM_VALUE, SBCTRL04);
-#endif
-       /* XECS3: peripherals */
-       writel(SBCTRL0_SAVEPIN_PERI_VALUE, SBCTRL30);
-       writel(SBCTRL1_SAVEPIN_PERI_VALUE, SBCTRL31);
-       writel(SBCTRL2_SAVEPIN_PERI_VALUE, SBCTRL32);
-       writel(SBCTRL4_SAVEPIN_PERI_VALUE, SBCTRL34);
-
-       /* base address regsiters */
-       writel(0x0000bc01, SBBASE0);
-       writel(0x0400bc01, SBBASE1);
-       writel(0x0800bf01, SBBASE3);
-
-#if !defined(CONFIG_SPL_BUILD)
-       /* enable access to sub memory when boot swap is on */
-       sg_set_pinsel(155, 1); /* PORT24 -> XECS0 */
-#endif
-       sg_set_pinsel(156, 1); /* PORT25 -> XECS3 */
+       if (boot_is_swapped()) {
+               /*
+                * Boot Swap On: boot from external NOR/SRAM
+                * 0x02000000-0x03ffffff is a mirror of 0x00000000-0x01ffffff.
+                *
+                * 0x00000000-0x01efffff, 0x02000000-0x03efffff: memory bank
+                * 0x01f00000-0x01ffffff, 0x03f00000-0x03ffffff: peripherals
+                */
+               writel(0x0000bc01, SBBASE0);
+       } else {
+               /*
+                * Boot Swap Off: boot from mask ROM
+                * 0x00000000-0x01ffffff: mask ROM
+                * 0x02000000-0x03efffff: memory bank (31MB)
+                * 0x03f00000-0x03ffffff: peripherals (1MB)
+                */
+               writel(0x0000be01, SBBASE0); /* dummy */
+               writel(0x0200be01, SBBASE1);
+       }
 }