[PATCH 05/10] powerpc: Add crash kernel support for 85xx

Dale Farnsworth dale at farnsworth.org
Sat Dec 15 04:23:15 EST 2007


On Fri, Dec 14, 2007 at 10:48:58AM -0600, Kumar Gala wrote:
> On Nov 22, 2007, at 9:46 AM, Dale Farnsworth wrote:
> 
> > Add the ability to build a ppc_85xx kernel to run at a physical
> > address of 32MB.
> >
> > Signed-off-by: Dale Farnsworth <dale at farnsworth.org>
> > ---
> > arch/powerpc/Kconfig                 |    2 +-
> > arch/powerpc/kernel/head_fsl_booke.S |   23 ++++++++++++++++++-----
> > arch/powerpc/mm/fsl_booke_mmu.c      |    6 +++---
> > 3 files changed, 22 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> > index 805b4d1..d405298 100644
> > --- a/arch/powerpc/Kconfig
> > +++ b/arch/powerpc/Kconfig
> > @@ -253,7 +253,7 @@ config KEXEC
> >
> > config CRASH_DUMP
> > 	bool "Build a kdump crash kernel (EXPERIMENTAL)"
> > -	depends on PPC_MULTIPLATFORM && EXPERIMENTAL
> > +	depends on (PPC_MULTIPLATFORM || PPC_85xx) && EXPERIMENTAL
> > 	help
> > 	  Build a kernel suitable for use as a kdump capture kernel.
> > 	  The kernel will be linked at a different address than normal, and
> > diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/ 
> > kernel/head_fsl_booke.S
> > index 4b98227..1c9685f 100644
> > --- a/arch/powerpc/kernel/head_fsl_booke.S
> > +++ b/arch/powerpc/kernel/head_fsl_booke.S
> > @@ -41,6 +41,12 @@
> > #include <asm/asm-offsets.h>
> > #include "head_booke.h"
> >
> > +#ifdef CONFIG_CRASH_DUMP
> > +#define INITIAL_BOOKE_PAGESZ (BOOKE_PAGESZ_64M)
> > +#else
> > +#define INITIAL_BOOKE_PAGESZ (BOOKE_PAGESZ_16M)
> > +#endif
> 
> I'm ok with bumping the first page to 64M in all cases.

OK, I'll make that change in the next rev.  Thanks.

<snip>

> The rest looks good.  Does this mean we can boot a e500 kernel at a
> non-zero physical address?  (can we run or is the non-zero phy just
> for a short period of init time).

Yes, with this series of patches, we can boot and run with a classic ppc
or e500 kernel at 32MB physical (0xc2000000 virtual).  Note that on
classic, we still need memory at phys 0 for the exception vectors.
On e500 IIRC, we don't use the vectors at phys 0, but we still write
the trampoline vectors there.  I just didn't bother making that conditional.

I'll post an updated series soon, with hopes of getting it into 2.6.25

-Dale



More information about the Linuxppc-dev mailing list