[RFC PATCH 2/4] of: Add a common kexec FDT setup function

Thiago Jung Bauermann bauerman at linux.ibm.com
Fri Dec 11 21:17:02 EST 2020


Lakshmi Ramasubramanian <nramas at linux.microsoft.com> writes:

> On 12/11/20 2:10 PM, Rob Herring wrote:
>
> Hi Rob,
>
>> Both arm64 and powerpc do essentially the same FDT /chosen setup for
>> kexec. We can simply combine everything each arch does. The differences
>> are either omissions that arm64 should have or additional properties
>> that will be ignored.
>> The differences relative to the arm64 version:
>> - If /chosen doesn't exist, it will be created (should never happen).
>> - Any old dtb and initrd reserved memory will be released.
>> - The new initrd and elfcorehdr are marked reserved.
>> - "linux,booted-from-kexec" is set.
>> The differences relative to the powerpc version:
>> - "kaslr-seed" and "rng-seed" may be set.
>> - "linux,elfcorehdr" is set.
>> - Any existing "linux,usable-memory-range" is removed.
>> Signed-off-by: Rob Herring <robh at kernel.org>
>> ---
>> This could be taken a step further and do the allocation of the new
>> FDT. The difference is arm64 uses vmalloc and powerpc uses kmalloc. The
>> arm64 version also retries with a bigger allocation. That seems
>> unnecessary.
>> ---
>>   drivers/of/Makefile |   1 +
>>   drivers/of/kexec.c  | 228 ++++++++++++++++++++++++++++++++++++++++++++
>>   include/linux/of.h  |   5 +
>>   3 files changed, 234 insertions(+)
>>   create mode 100644 drivers/of/kexec.c
>> diff --git a/drivers/of/Makefile b/drivers/of/Makefile
>> index 6e1e5212f058..8ce11955afde 100644
>> --- a/drivers/of/Makefile
>> +++ b/drivers/of/Makefile
>> @@ -13,5 +13,6 @@ obj-$(CONFIG_OF_RESERVED_MEM) += of_reserved_mem.o
>>   obj-$(CONFIG_OF_RESOLVE)  += resolver.o
>>   obj-$(CONFIG_OF_OVERLAY) += overlay.o
>>   obj-$(CONFIG_OF_NUMA) += of_numa.o
>> +obj-$(CONFIG_KEXEC_FILE) += kexec.o
>
> For the functions moved from powerpc & arm64 to "drivers/of/kexec.c" in this
> patch, compiling kexec.c when CONFIG_KEXEC_FILE is enabled is fine. But when
> more functions (such as remove_ima_buffer()) are moved to this file, Makefile
> needs to be updated for other ima kexec related CONFIGs.

IMA kexec is only available if CONFIG_KEXEC_FILE is enabled, so I don't
understand what problem you are seeing.

-- 
Thiago Jung Bauermann
IBM Linux Technology Center



More information about the linux-arm-kernel mailing list