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