[U-Boot] [PATCH] [ARM] Move machine specific code to board at s3c64xx

Kyungmin Park kmpark at infradead.org
Thu Oct 23 09:47:00 CEST 2008


On Thu, Oct 23, 2008 at 4:39 PM, Guennadi Liakhovetski <lg at denx.de> wrote:
> On Wed, 22 Oct 2008, Kyungmin Park wrote:
>
>> Move machine specific code to smdk6400.
>> Some board use OneNAND instead of NAND.
>>
>> Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
>> ---
>> diff --git a/board/samsung/smdk6400/lowlevel_init.S b/board/samsung/smdk6400/lowlevel_init.S
>> index e0119a7..53d9125 100644
>> --- a/board/samsung/smdk6400/lowlevel_init.S
>> +++ b/board/samsung/smdk6400/lowlevel_init.S
>> @@ -104,6 +104,13 @@ lowlevel_init:
>>       bl nand_asm_init
>>  #endif
>>
>> +     /* Memory subsystem address 0x7e00f120 */
>> +     ldr     r0, =ELFIN_MEM_SYS_CFG
>> +
>> +     /* Xm0CSn2 = NFCON CS0, Xm0CSn3 = NFCON CS1 */
>> +     mov     r1, #0xd
>> +     str     r1, [r0]
>> +
>
> Hm, no, I don't quite agree. In principle, yes, this configuration can be
> considered platform-specific and moving it this way of course works. But:
>
> 1. The patch comment is not correct. This code doesn't select between NAND
>   and OneNAND. It selects between (one of) NANDs and SROMs.

Yes I just move to platform since it's board specific.

>
> 2. While at it, we could fix the value being written to the MEM_SYS_CFG
>   register too. Currently it writes 0xd =
>
>  (1 << 0) - ignored, default 0, so, better set it to 0
> | (0 << 1) - set Xm0CSn[2] to OneNANDC CS0 or NFCON CS0
> | (1 << 2) - ignored, default 0, so, better set it to 0
> | (1 << 3) - set Xm0CSn[3] to SROMC CS3
>
> So, we should just write an 8 in it:
>
> +       mov     r1, #0x8
> +       str     r1, [r0]
>
> 3. The comment in the code doesn't look right. According to the above it
>   should read
>
> +       /* Xm0CSn[2] = OneNANDC CS0 or NFCON CS0, Xm0CSn[3] = SROMC CS3 */

Right, and also add OneNAND & NFCON is depends on XNANDSEL.

As you know mem_ctrl_asm_init is common code and other boards can use
it without board specific codes.

In OneNAND board, it should be set as 0x1002

>
> The only thing that confuses me, is why the author, belonging to the
> manufacturer of the chip, hasn't done this. Maybe the documentation is
> wrong?
>

Maybe he missed it. Document is right.

Thank you,
Kyungmin Park


More information about the U-Boot mailing list