Question regarding the kexec support for FSL Book E

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Thanks a lot for the response. Please

On 04/07/11 13:53, Sebastian Andrzej Siewior wrote:
> 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 ?
>
The above should have been relocate_new_kernel(), loaded into 0-2GB virtual address ?
> 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.
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()" ?


Thanks
Suzuki



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux