[U-Boot-Users] [PATCH] ppc4xx: Don't use last 256 bytes of SDRAM, workaround for 440EPx CHIP 11 errata

Stefan Roese sr at denx.de
Thu Mar 20 14:57:37 CET 2008


On Thursday 20 March 2008, Wolfgang Denk wrote:
> At the cost of an #ifdef, this could be added to the memory
> reservation code in "lib_ppc/board.c", i. e. somewhere after
>
>  ...
>  427          * Reserve memory at end of RAM for (top down in that order):
>  428          *  - kernel log buffer
>  429          *  - protected RAM
>  430          *  - LCD framebuffer
>  431          *  - monitor code
>  432          *  - board info struct
>  433          */
>  434         len = (ulong)&_end - CFG_MONITOR_BASE;
>  435
>  436         addr = CFG_SDRAM_BASE + get_effective_memsize();

OK. I'll add it here with an additional #ifdef here. How about something like 
this:

	len = (ulong)&_end - CFG_MONITOR_BASE;

+#ifdef CONFIG_MEM_TOP_HIDE
+	/*
+	 * Subtract specified amount of memory to hide so that it won't
+	 * get "touched" at all by U-Boot. By fixing up gd->ram_size
+	 * the Linux kernel should now get passed the now "corrected"
+	 * memory size and won't touch it either. This should work
+	 * for arch/ppc and arch/powerpc. Only Linux board ports in
+	 * arch/powerpc with bootwrapper support, that recalculate the
+	 * memory size from the SDRAM controller setup will have to
+	 * get fixed.
+	 */
+	gd->ram_size -= CONFIG_MEM_TOP_HIDE;
+#endif

	addr = CFG_SDRAM_BASE + get_effective_memsize();

Or even better this somewhere above:

#ifndef CONFIG_MEM_TOP_HIDE
#define CONFIG_MEM_TOP_HIDE	0
#endif

and we can drop the #ifdef completely.

> Of course you need to make sure that  the  linux  kernel  understands
> this changed behaviour / shifted addresses, too.

Right. By fixing up gd->ram_size in the new patch version above, this should 
get handled for arch/ppc and arch/powerpc kernel versions. So no need 
for 'mem=xxx' in the bootargs anymore. Or did I miss something here?

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================




More information about the U-Boot mailing list