[U-Boot] [PATCH] arm, davinci: make arch_cpu_init() in da850_lowlevel.c weak

Christian Riesch christian.riesch at omicron.at
Wed Nov 9 11:18:15 CET 2011


Hi Wolfgang,

On Wed, Nov 9, 2011 at 11:12 AM, Wolfgang Denk <wd at denx.de> wrote:
> In message <1320830586-19124-1-git-send-email-christian.riesch at omicron.at> you wrote:
>> This patch allows replacing arch_cpu_init() if a custom initialization
>> is required.
>>
>> Signed-off-by: Christian Riesch <christian.riesch at omicron.at>
>> Cc: Sandeep Paulraj <s-paulraj at ti.com>
>> Cc: Heiko Schocher <hs at denx.de>
>> ---
>>  arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c |    1 +
>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c
>> index 327ff97..fe142dc 100644
>> --- a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c
>> +++ b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c
>> @@ -263,6 +263,7 @@ void nand_boot(void)
>>  #if defined(CONFIG_NAND_SPL)
>>  void board_init_f(ulong bootflag)
>>  #else
>> +__attribute__ ((weak))
>>  int arch_cpu_init(void)
>>  #endif
>
> Stop please.
>
> This whole code is crap and needs to be changed.
>
>
> 281         asm("mrc        p15, 0, r0, c1, c0, 0");
> 282         /* clear bits 13, 9:8 (--V- --RS) */
> 283         asm("bic        r0, r0, #0x00002300");
> 284         /* clear bits 7, 2:0 (B--- -CAM) */
> 285         asm("bic        r0, r0, #0x00000087");
> 286         /* set bit 2 (A) Align */
> 287         asm("orr        r0, r0, #0x00000002");
> 288         /* set bit 12 (I) I-Cache */
> 289         asm("orr        r0, r0, #0x00001000");
> 290         asm("mcr        p15, 0, r0, c1, c0, 0");
>
> What is #0x00002300? #0x00000087? #0x00000002? #0x00001000?
>
> 293         writel(0x83e70b13, &davinci_syscfg_regs->kick0);
> 294         writel(0x95a4f1e0, &davinci_syscfg_regs->kick1);
>
> What is 0x83e70b13? 0x95a4f1e0?
>
> 296         dv_maskbits(&davinci_syscfg_regs->suspsrc,
> 297                 ((1 << 27) | (1 << 22) | (1 << 20) | (1 << 5) | (1 << 16)));
>
> What is ((1 << 27) | (1 << 22) | (1 << 20) | (1 << 5) | (1 << 16))) ?
>
> 336         /*
> 337          * Fix Power and Emulation Management Register
> 338          * see sprufw3a.pdf page 37 Table 24
> 339          */
> 340         writel(readl((CONFIG_SYS_NS16550_COM1 + 0x30)) | 0x00006001,
> 341                 (CONFIG_SYS_NS16550_COM1 + 0x30));
>
> What is CONFIG_SYS_NS16550_COM1 + 0x30 ???? don't we have proper
> NS16550 register definitions?  And what is 0x00006001 ??
>
>
> All this needs a _thorough_ cleanup before I'm willing to accept this
> for mainline.

This is already in mainline, see

commit 310ae55efe14aa7923b16c718cbdb22ec364b18b
Author: Heiko Schocher <hs at denx.de>
Date:   Wed Sep 14 19:59:38 2011 +0000

    arm, davinci, am1808: add lowlevel functions for booting from NOR

Regards, Christian

>
>
> Heiko, Christian: please negotiate who performs which part of the
> cleanup. But I expect that with proper symbolic names instead of the
> hardwired constants the need for a wek function will go away.
>
> Albert, please make sure to block this current code. I do not want to
> see this in mainline as is.
>
>
> Thanks.
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> Another megabytes the dust.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>


More information about the U-Boot mailing list