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
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