On Mar 25, 2010, at 11:30 AM, Dave Liu wrote: > The BAT of system memory is setting as 2GB block, however > the mpc8610hpcd is shipping with 512MB DDR2 memory, there will > be a hole in the 2GB memory space, no any physical memory cover > the hole. It will cause PPC speculative data access to the hole, > the result is machine check. > > There are two options to resolve the issue, one is changing the > block size to 512MB, another one is setting the G bit to DBAT. > but the mpc8610hpcd memory is DIMM-based, the size is variable. > so the second option is the best. > > The issue is seen by Timur Tabi with the latest u-boot tree when > boot up the Linux kernel. > > Report-by: Timur Tabi <b04...@freescale.com> > Signed-off-by: Dave Liu <dave...@freescale.com> > --- > include/configs/MPC8610HPCD.h | 9 +++++++-- > 1 files changed, 7 insertions(+), 2 deletions(-)
Acked-by: Kumar Gala <ga...@kernel.crashing.org> Wolfgang, can you pick this up for v2010.03 - k > > diff --git a/include/configs/MPC8610HPCD.h b/include/configs/MPC8610HPCD.h > index 1d2d659..629c971 100644 > --- a/include/configs/MPC8610HPCD.h > +++ b/include/configs/MPC8610HPCD.h > @@ -338,10 +338,15 @@ > #endif /* CONFIG_PCI */ > > /* > - * BAT0 2G Cacheable, non-guarded > + * BAT0 2G Cacheable, guarded for data side. it will avoid > + * speculative data access to the memory hole when > + * the board use the DIMM memory size < 2GB, such as > + * 512MB. If you need better performance in u-boot, > + * use the matching memory size to BAT. > + * > * 0x0000_0000 2G DDR > */ > -#define CONFIG_SYS_DBAT0L (BATL_PP_RW | BATL_MEMCOHERENCE) > +#define CONFIG_SYS_DBAT0L (BATL_PP_RW | BATL_MEMCOHERENCE | > BATL_GUARDEDSTORAGE) > #define CONFIG_SYS_DBAT0U (BATU_BL_2G | BATU_VS | BATU_VP) > #define CONFIG_SYS_IBAT0L (BATL_PP_RW | BATL_MEMCOHERENCE ) > #define CONFIG_SYS_IBAT0U CONFIG_SYS_DBAT0U > -- > 1.6.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot