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