s5pc110: universal: support new relocation code
authorMinkyu Kang <mk7.kang@samsung.com>
Mon, 4 Oct 2010 10:57:21 +0000 (19:57 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Mon, 4 Oct 2010 10:57:21 +0000 (19:57 +0900)
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
board/samsung/universal_c110/universal.c
include/configs/s5pc1xx_universal.h

index d6a0ca8..e8fd232 100644 (file)
@@ -306,6 +306,8 @@ void i2c_init_board(void)
        if (cpu_is_s5pc100())
                return;
 
+       gpio = (struct s5pc110_gpio *)samsung_get_base_gpio();
+
        num_bus = ARRAY_SIZE(i2c_gpio);
 
        if (mach_is_aquila()) {
@@ -354,8 +356,7 @@ void i2c_init_board(void)
        /* Reset on fsa9480 early */
        check_micro_usb(1);
        /* Reset on max17040 early */
-       if (battery_soc == 0)
-               check_battery(1);
+       check_battery(1);
 }
 
 #ifdef CONFIG_MISC_INIT_R
@@ -712,16 +713,6 @@ static void check_hw_revision(void)
        } else {
                gd->bd->bi_arch_number = board;
        }
-
-       /* Architecture Common settings */
-       if (cpu_is_s5pc110()) {
-               setenv("mtdparts", MTDPARTS_DEFAULT_4KB);
-       } else {
-               setenv("bootk", "onenand read 0x30007FC0 0x60000 0x300000; "
-                               "bootm 0x30007FC0");
-               setenv("updatek", "onenand erase 0x60000 0x300000; "
-                                 "onenand write 0x31008000 0x60000 0x300000");
-       }
 }
 
 static void show_hw_revision(void)
@@ -2495,6 +2486,16 @@ static void setup_meminfo(void)
 
 int misc_init_r(void)
 {
+       /* Architecture Common settings */
+       if (cpu_is_s5pc110()) {
+               setenv("mtdparts", MTDPARTS_DEFAULT_4KB);
+       } else {
+               setenv("bootk", "onenand read 0x30007FC0 0x60000 0x300000; "
+                               "bootm 0x30007FC0");
+               setenv("updatek", "onenand erase 0x60000 0x300000; "
+                               "onenand write 0x31008000 0x60000 0x300000");
+       }
+
 #ifdef CONFIG_LCD
        /* It should be located at first */
        lcd_is_enabled = 0;
@@ -2587,6 +2588,12 @@ int board_init(void)
 
 int dram_init(void)
 {
+       gd->ram_size = PHYS_SDRAM_1_SIZE;
+       return 0;
+}
+
+void dram_init_banksize(void)
+{
        unsigned int base, memconfig0, size;
        unsigned int memconfig1, sz = 0;
        int mem_3g = 0;
@@ -2598,6 +2605,9 @@ int dram_init(void)
                gd->bd->bi_dram[1].start = S5PC100_PHYS_SDRAM_2;
                size = 128;
        } else {
+               gd->bd->bi_arch_number = MACH_TYPE_AQUILA;
+               check_hw_revision();
+
                /* In S5PC110, we can't swap the DMC0/1 */
                gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
                gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
@@ -2651,7 +2661,8 @@ int dram_init(void)
         */
        gd->bd->bi_dram[1].size = (size + sz) << 20;
 
-       return 0;
+       /* Set the memory size correctly */
+       gd->ram_size = gd->bd->bi_dram[0].size + gd->bd->bi_dram[1].size;
 }
 
 /* Used for sleep test */
index 48b4497..ece91dc 100644 (file)
@@ -38,7 +38,6 @@
 #define CONFIG_UNIVERSAL       1       /* working with Universal */
 #define CONFIG_MACH_AQUILA     1       /* working with Aquila */
 #define CONFIG_MACH_GONI       1       /* working with Goni */
-#define CONFIG_RECOVERY                1       /* working with recovery block */
 
 #include <asm/arch/cpu.h>              /* get chip and board defs */
 
 #define CONFIG_SYS_MEMTEST_START       CONFIG_SYS_SDRAM_BASE   /* memtest works on           */
 #define CONFIG_SYS_MEMTEST_END         (CONFIG_SYS_SDRAM_BASE + 0x5000000)
 
-#define CONFIG_SYS_LOAD_ADDR           (CONFIG_SYS_SDRAM_BASE + 0x4000000)
-#define CONFIG_SYS_BOOT_ADDR           (CONFIG_SYS_SDRAM_BASE + 0x4800000)
+#define CONFIG_SYS_LOAD_ADDR           (CONFIG_SYS_SDRAM_BASE + 0x4800000)
 
 #define CONFIG_SYS_HZ                  1000
 
 #define CONFIG_RECOVERY_BOOT_BLOCKS    4
 
 #define CONFIG_ENV_IS_IN_ONENAND       1
-#define CONFIG_ENV_SIZE                        (256 << 10)     /* 256 KiB, 0x40000 */
+#define CONFIG_ENV_SIZE                        4096
 #define CONFIG_ENV_ADDR                        (1 << 20)       /* 1 MB, 0x100000 */
 
 #define CONFIG_RECOVERY_SIZE           (768 << 10)     /* 768 KiB, 0xC0000 */
 #define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE (250*250*4)
 #endif
 
+#define CONFIG_SYS_SP_ADDR     (CONFIG_SYS_LOAD_ADDR - 0x1000000)
+#define CONFIG_SYS_INIT_SP_ADDR        (CONFIG_SYS_SP_ADDR - CONFIG_SYS_GBL_DATA_SIZE)
+
 #endif /* __CONFIG_H */