[U-Boot] U-Boot configuration and latter Linux MMU init failures
Jerry Van Baren
gerald.vanbaren at ge.com
Wed Sep 24 14:23:00 CEST 2008
Remi Lefevre wrote:
> Hi,
>
> From your experience, can some incomplete/incorrect U-Boot configuration
> lead to MMU init failures inside Linux ?
>
> Particularly, my Linux kernel fails during the first Data Cache Block Store
> instruction (dcbst) of the MMU init and I ask myself if this cannot be linked
> to my cache initialization inside U-Boot (HID0 for my MPC8270 board).
>
> See http://ozlabs.org/pipermail/linuxppc-embedded/2008-September/031398.html
> for more details.
>
> Regards,
> Rémi
Hi Rémi,
I don't have much advice, sorry.
The linux MMU setup code is the #1 most delicate operation in starting
linux. It is extremely easy to get something wrong and extremely hard
to debug (as you found out).
Questions that may help:
1) Are you enabling dcache? icache? in u-boot?
2) Does linux boot if you don't enable dcache/icache?
3) (really 1a) How are you setting up and/or using cache that is
different from other 82xx boards?
4) (really 1b?) How are you using DBATs (and IBATs)? Is it compatible
with linux's start up code? Is linux changing your DBATs, for instance,
causing memory (un)mapping side effects? IIRC (been a while, may have
changed), linux uses 3 of the 4 DBATs during start up.
Interestingly enough, dcbst is a *data* cache store, run in the *icache*
flush routine. I assume this is intended to flush out any instructions
that are stuck in the dcache due to writes (self modifying code and/or
loaded/copied code). I would *speculate* that the address of the stuff
in your dcache no longer points to valid memory.
HTH,
gvb
More information about the U-Boot
mailing list