From: Dongying_Xu@us.alphanetworks.com [mailto:Dongying_Xu@us.alphanetworks.com]
Sent: Monday, March 05, 2007 3:08 PM
To: Fowley, Douglas G (GE Infra, Energy)
Cc: u-boot-users@lists.sourceforge.net
Subject: Re: [U-Boot-Users] mpc8343 could not boot on u-boot-1.2.0


Hi Doug,

Are you using linux kernel?  When you comment out 'enable address translation', can you successfully boot with linux kernel?    When I comment out those line, it did help to boot until u-boot console shows up, but it failed to continue boot up with linux kernel.  To make linux kernel working, I have to keep following old 1.1.3 version code in, which will cause another problem.  Did you have similar problem?

Thank you and best regards
dongy


un_setup_stack_in_data_cache:
        blr
        mr r14, r4
        mr r15, r5


        lis r4, (CFG_INIT_RAM_ADDR & 0xFFFE0000)@h
        mtspr        DBAT0U, r4
        ori r4, r4, 0x0002
        mtspr        DBAT0L, r4
        isync

        /* un lock all the D-cache */
        mfspr        r4, HID0
        lis r5, (~(HID0_DLOCK))@h
        ori        r5, r5, (~(HID0_DLOCK))@l
        and r4, r4, r5
        sync
        mtspr        HID0 , r4

        /* Re - Allocate Initial RAM in data cache.*/
        li  r0, 0
        lis        r4, (CFG_INIT_RAM_ADDR)@h
        ori        r4, r4, (CFG_INIT_RAM_ADDR)@l
        li        r5, 128*8 /* 128*8*32=32Kb */
        mtctr        r5
1:
        dcbz        r0, r4
        addi        r4, r4, 32
        bdnz        1b
        isync

        mflr r16
        bl dcache_disable
        mtlr r16

        blr 
 
Hi Dongy,
 
I do not use Linux; I run QNX Neutrino.  But I did have a similar problem
running QNX when I switched to U-Boot 1.1.4 and beyond.  U-Boot began
leaving the data cache enabled with that version.  Note that the last part
of 1.1.3 snippet that you still use (above) disables the data cache.
 
I fixed it for QNX by adding "CFG_COMMAND_CACHE" to
"CONFIG_COMMANDS" in my board header file in include/configs, and
adding "dcache off; " to the appropriate spot in the bootcmd environment
variable.  In my case,
 
    #define CONFIG_BOOTCOMMAND "tftp ${loadaddr} ${ifsfile}; " \
        "dcache off; " \
        "go ${loadaddr}"
 
Since my disable address translation trick got your U-Boot up and
running, I suggest trying my data cache hack for Linux and reporting
back.
 
Regards,
 
Doug