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
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec