From 98877c3c0efacb5c61068280b6441a61e2dc3a24 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Mon, 22 Nov 2010 20:26:46 +0900 Subject: S5P: smdkc100: fix for relocation Signed-off-by: Minkyu Kang Signed-off-by: Kyungmin Park --- board/samsung/smdkc100/smdkc100.c | 10 +++++++--- include/configs/smdkc100.h | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/board/samsung/smdkc100/smdkc100.c b/board/samsung/smdkc100/smdkc100.c index 31e8d9e..d3189f6 100644 --- a/board/samsung/smdkc100/smdkc100.c +++ b/board/samsung/smdkc100/smdkc100.c @@ -65,13 +65,17 @@ int board_init(void) int dram_init(void) { - gd->bd->bi_dram[0].start = PHYS_SDRAM_1; - gd->bd->bi_dram[0].size = get_ram_size((long *)PHYS_SDRAM_1, - PHYS_SDRAM_1_SIZE); + gd->ram_size = get_ram_size((long *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE); return 0; } +void dram_init_banksize(void) +{ + gd->bd->bi_dram[0].start = PHYS_SDRAM_1; + gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; +} + #ifdef CONFIG_DISPLAY_BOARDINFO int checkboard(void) { diff --git a/include/configs/smdkc100.h b/include/configs/smdkc100.h index e36b262..fb8b43c 100644 --- a/include/configs/smdkc100.h +++ b/include/configs/smdkc100.h @@ -231,6 +231,8 @@ #define CONFIG_DOS_PARTITION 1 +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000) + /* * Ethernet Contoller driver */ -- cgit v1.1 From 177feff303538c6cf8caaeb34e5243ca95563e1c Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Mon, 22 Nov 2010 20:27:44 +0900 Subject: S5P: goni: fix for relocation Signed-off-by: Minkyu Kang Signed-off-by: Kyungmin Park --- board/samsung/goni/goni.c | 10 ++++++++-- include/configs/s5p_goni.h | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/board/samsung/goni/goni.c b/board/samsung/goni/goni.c index 0b09eba..581935d 100644 --- a/board/samsung/goni/goni.c +++ b/board/samsung/goni/goni.c @@ -43,14 +43,20 @@ int board_init(void) int dram_init(void) { + gd->ram_size = PHYS_SDRAM_1_SIZE + PHYS_SDRAM_2_SIZE + + PHYS_SDRAM_3_SIZE; + + return 0; +} + +void dram_init_banksize(void) +{ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; gd->bd->bi_dram[1].start = PHYS_SDRAM_2; gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE; gd->bd->bi_dram[2].start = PHYS_SDRAM_3; gd->bd->bi_dram[2].size = PHYS_SDRAM_3_SIZE; - - return 0; } #ifdef CONFIG_DISPLAY_BOARDINFO diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h index 541aec0..f53e798 100644 --- a/include/configs/s5p_goni.h +++ b/include/configs/s5p_goni.h @@ -217,4 +217,6 @@ #define CONFIG_DOS_PARTITION 1 +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000) + #endif /* __CONFIG_H */ -- cgit v1.1 From d3b0d628b08ab999a99c4ee30eaac1406a5d7056 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Fri, 19 Nov 2010 17:00:26 +0900 Subject: ARMV7: S5P: timer: get the count_value from register when call udelay Because of count_value is set to tcnb4 register, should be get from this register when call udelay function. Signed-off-by: Minkyu Kang --- arch/arm/cpu/armv7/s5p-common/timer.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm/cpu/armv7/s5p-common/timer.c b/arch/arm/cpu/armv7/s5p-common/timer.c index 0490650..651fd5d 100644 --- a/arch/arm/cpu/armv7/s5p-common/timer.c +++ b/arch/arm/cpu/armv7/s5p-common/timer.c @@ -65,15 +65,12 @@ int timer_init(void) writel((PRESCALER_1 & 0xff) << 8, &timer->tcfg0); writel((MUX_DIV_2 & 0xf) << MUX4_DIV_SHIFT, &timer->tcfg1); - if (count_value == 0) { - /* reset initial value */ - /* count_value = 2085937.5(HZ) (per 1 sec)*/ - count_value = get_pwm_clk() / ((PRESCALER_1 + 1) * - (MUX_DIV_2 + 1)); - - /* count_value / 100 = 20859.375(HZ) (per 10 msec) */ - count_value = count_value / 100; - } + /* count_value = 2085937.5(HZ) (per 1 sec)*/ + count_value = get_pwm_clk() / ((PRESCALER_1 + 1) * + (MUX_DIV_2 + 1)); + + /* count_value / 100 = 20859.375(HZ) (per 10 msec) */ + count_value = count_value / 100; /* set count value */ writel(count_value, &timer->tcntb4); @@ -114,8 +111,11 @@ void set_timer(unsigned long t) /* delay x useconds */ void __udelay(unsigned long usec) { + struct s5p_timer *const timer = s5p_get_base_timer(); unsigned long tmo, tmp; + count_value = readl(&timer->tcntb4); + if (usec >= 1000) { /* * if "big" number, spread normalization -- cgit v1.1