[U-Boot] gunzip fails sometimes on MPC8343
André Schwarz
andre.schwarz at matrix-vision.de
Wed Sep 30 10:21:30 CEST 2009
Scott,
after uploading a new kernel with different size than our usual one I
now get either machine check during gunzip or gunzip fails with -3 on my
MPC8343 based MVBLM7 board.
Looks like you have already identified this problem in the past ...
Having a look a at my board config (MVBLM7.h) "git blame" tells me you
have already added BATL_GUARDEDSTORAGE to the IBAT6 entry.
I wonder if the BATL_MEMCOHERENCE makes any difference, since it is not
present on MPC8313ERDB.
When using an uncompressed kernel everything works fine - the issue is
clearly related to gunzip/inflate.
Any hints ?
Regards,
André
[snip]
>
> The root cause of this has been found, did you see this:
>
> It's a CPU memory cache problem (I could have known).
>
> details:
> Scott Wood wrote:
> > This board currently sets DBAT6 to cover all of the final 256MiB of
> > address space; however, not all of this space is covered by a device. In
> > particular, flash sits at 0xfe000000-0xfe7fffff, and nothing is mapped
> > at the far end of the address space.
> >
> > In zlib, there is a loop that references p[-1] if p is non-NULL. Under
> > some circumstances, this leads to the CPU speculatively loading from
> > 0xfffffff8 if p is NULL. This leads to a machine check.
> >
> > Signed-off-by: Scott Wood <scottwood at freescale.com>
> > ---
> > Note that there are likely other board with the same issue.
> >
> > include/configs/MPC8313ERDB.h | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/include/configs/MPC8313ERDB.h b/include/configs/MPC8313ERDB.h
> > index 0ef4eba..21aedee 100644
> > --- a/include/configs/MPC8313ERDB.h
> > +++ b/include/configs/MPC8313ERDB.h
> > @@ -544,7 +544,7 @@
> > #define CONFIG_SYS_IBAT5U (CONFIG_SYS_IMMR | BATU_BL_256M | BATU_VS | BATU_VP)
> >
> > /* SDRAM @ 0xF0000000, stack in DCACHE 0xFDF00000 & FLASH @ 0xFE000000 */
> > -#define CONFIG_SYS_IBAT6L (0xF0000000 | BATL_PP_10)
> > +#define CONFIG_SYS_IBAT6L (0xF0000000 | BATL_PP_10 | BATL_GUARDEDSTORAGE)
> > #define CONFIG_SYS_IBAT6U (0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP)
> >
> > #define CONFIG_SYS_IBAT7L (0)
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Hans-Joachim Reich
More information about the U-Boot
mailing list