From: Kyungmin Park Date: Thu, 18 Jun 2009 00:04:09 +0000 (+0900) Subject: [S5PC100] Auto configuration memory bank X-Git-Tag: s5pc110_universal_support~171 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bf21d3e51153c9376108a4573e824f89a7ad82cd;p=kernel%2Fu-boot.git [S5PC100] Auto configuration memory bank Signed-off-by: Kyungmin Park --- diff --git a/cpu/arm_cortexa8/s5pc100/mem_setup.S b/cpu/arm_cortexa8/s5pc100/mem_setup.S index efc2371..7b426e9 100644 --- a/cpu/arm_cortexa8/s5pc100/mem_setup.S +++ b/cpu/arm_cortexa8/s5pc100/mem_setup.S @@ -1,10 +1,11 @@ /* * Originates from Samsung's u-boot 1.1.6 port to S5PC1xx * - * Copyright (C) 2009 - * Inki Dae, SAMSUNG Electronics, - * Heungjun Kim, SAMSUNG Electronics, - * Minkyu Kang, SAMSUNG Electronics, + * Copyright (C) 2009 Samsung Electrnoics + * Inki Dae + * Heungjun Kim + * Minkyu Kang + * Kyungmin Park * * See file CREDITS for list of people who contributed to this * project. @@ -66,7 +67,15 @@ mem_ctrl_asm_init: str r1, [r6, #0x004] @ S5P_MEMCONTROL /* - * Bank0: Mobile DDR + * Note: + * If Bank0 has OneDRAM we place it at 0x2800'0000 + * So finally Bank1 should address start at at 0x2000'0000 + */ + mov r4, #0x0 + +swap_memory: + /* + * Bank0 * 0x20 -> 0x20000000 * 0xf8 -> 0x27FFFFFF * [15:12] 0: Linear @@ -75,14 +84,13 @@ mem_ctrl_asm_init: * [ 3:0 ] 2: 4 banks */ ldr r1, =0x20f80222 -#ifdef CONFIG_S5PC1XX_SWAP_MEMORY_BANK - /* Bank0: OneDRAM is located at 0x28000000 */ - orr r1, r1, #0x08000000 -#endif + /* if r4 is 1, swap the bank */ + cmp r4, #0x1 + orreq r1, r1, #0x08000000 str r1, [r6, #0x008] @ S5P_MEMCONFIG0 /* - * Bank1: OneDRAM + * Bank1 * 0x28 -> 0x28000000 * 0xf8 -> 0x2fFFFFFF * [15:12] 0: Linear @@ -91,10 +99,9 @@ mem_ctrl_asm_init: * [ 3:0 ] 2: 4 banks */ ldr r1, =0x28f80222 -#ifdef CONFIG_S5PC1XX_SWAP_MEMORY_BANK - /* Bank1: Mobile DDR is located at 0x20000000 */ - bic r1, r1, #0x08000000 -#endif + /* if r4 is 1, swap the bank */ + cmp r4, #0x1 + biceq r1, r1, #0x08000000 str r1, [r6, #0x00c] @ S5P_MEMCONFIG1 ldr r1, =0x20000000 @@ -171,6 +178,20 @@ mem_ctrl_asm_init: ldr r1, =0xff212100 str r1, [r6, #0x004] @ S5P_MEMCONTROL + + /* Try to test memory area */ + cmp r4, #0x1 + beq 1f + + mov r4, #0x1 + ldr r1, =0x27ffff00 + str r4, [r1] + str r4, [r1, #0x4] @ dummy write + ldr r0, [r1] + cmp r0, r4 + bne swap_memory + +1: mov pc, lr .ltorg