[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