Question regarding the kexec support for FSL Book E

McClintock Matthew-B29882 B29882 at freescale.com
Thu Apr 7 11:19:12 EDT 2011


On Thu, Apr 7, 2011 at 6:08 AM, Suzuki Poulose <suzuki at in.ibm.com> wrote:
> So the 0-2GiB 1:1 mapping, could create a 1:1 entry for the
> relocate_new_kernel()'s physical address(which is again somewhere in
> 0..2GiB) too.
> But the virtual address for relocate_new_kernel() could be different (not
> necessarily 1:1, as mapped by the primary kernel). So we will have one
> mapping setup
> by the primary kernel and the other by the 1:1 mapping.
> This is the case of "multiple mappings", I was referring to above.
>
> How is this case taken care of ? Is it via the temporary mapping ? What is
> the virtual
>  address used by temporary mapping for the "relocate_new_kernel()" ?

When you load the new kexec image with kexec -l, I believe we make
sure we are in the first 2gb of memory. Then when you kexec, all the
TLB's are torn down and we setup a 1:1 virtual:physical mapping for
the first 2GB of memory. Then some assembly copies kernel from the
stored location to the destination and we boot the new kernel.

-M



More information about the kexec mailing list