Question regarding the kexec support for FSL Book E

Sebastian Andrzej Siewior bigeasy at linutronix.de
Thu Apr 7 04:23:01 EDT 2011


Suzuki Poulose wrote:
> Hi Sebastian,
Hi,

> I am working on the Kexec support for PPC44x based boards. I was going 
> through
> the patchset that you have posted for FSL Book E. I was not able to 
> understand
> some parts of the setup code. If you have some time, could you please 
> help me by
> answering the questions below :
> 
> Here is what I understood from the code walk through :
> 
> In relocate_kernel :, we try to setup a 1:1 mapping for 0-2GB of memory 
> so that
> the code could run with the MMU switched on. We leave a temparory 
> mapping in
> place and create the mapping for 0-2GiB.
> 
> Q1: Does the temparory mapping cover the code which sets up the mapping 
> ? i.e,
> the code in fsl_booke_entry_mapping.S ?

Yes, it does. Please keep in mind that relocate_new_kernel is kmalloc()
into a separate page while running. This is not just the case for
FSL-BookE but for all arches.

> Q2: Does the relocate kernel also get loaded within the 0-2GB memory ? 

Yes. We don't have a mapping >2GiB.

> If so,
> won't we have multiple mappings for the code we are executing, unless we 
> were
> mapped 1:1 by the primary kernel ?

The primary kernel maps 0-2GiB 1:1. We jump to relocate_new_kernel() which
is somewhere within 0..2GiB and not part of the original kernel image.
This code has a page list of the new kernel. It copies the new kernel to
its final position and overwrites the old kernel. This is not a problem as
you remember relocate_new_kernel() is no longer part of the old image.

Once the image is copied, we jump to purgatory and then to the new kernel.

> Thanks
> Suzuki Poulose
> Linux Technology Center
> IBM India

Sebastian



More information about the kexec mailing list