Relocatable kernel for ppc44x

Scott Wood scottwood at freescale.com
Thu Jun 16 05:47:09 EST 2011


On Wed, 15 Jun 2011 20:11:55 +1000
Benjamin Herrenschmidt <benh at kernel.crashing.org> wrote:

> On Wed, 2011-06-15 at 11:43 +0530, Suzuki Poulose wrote:
> > On 06/14/11 17:34, Michal Simek wrote:
> > > Hi,
> > >
> > > have someone tried to support RELOCATABLE kernel on ppc44x?
> > As Josh, mentioned, I will be working on this. In fact I was trying a couple of
> > patches towards this on PPC440x. But, I am stuck in debugging the hang that I am
> > experiencing with the changes. I am setting up a RISCWatch processor probe to
> > debug the same.
> > 
> > Here is some information that I wanted to share :
> > 
> > The PPC440X currently uses 256M TLB entries to pin the lowmem. When we go for a
> > relocatable kernel we have to :
> > 
> > 1) Restrict the kernel load address to be 256M aligned
> 
> Wait a minute ... :-)
> 
> There's a difference between having the kernel run from any address and
> mapping the linear mapping not starting at 0.
> 
> Those are completely orthogonal.
> 
> I don't see why off hand you are changing the way the TLB is used. The
> only possible change needed is to make sure the initial bolted entry set
> by the asm code properly covers the kernel in whatever it's "current"
> location is. The rest is a matter of fixing up the relocations...

Changing where the linear mapping points to is useful for AMP configurations
where you're supposed to be considering your memory to be a subset of the
real memory.  This is implemented on e500 as CONFIG_RELOCATABLE, though
it should have been called something different since it's not really
building a relocatable kernel (unlike what 64-bit does with
CONFIG_RELOCATABLE).

-Scott



More information about the Linuxppc-dev mailing list