[PATCH v18 03/11] of: Add a common kexec FDT setup function
nramas at linux.microsoft.com
Sun Feb 21 20:35:59 EST 2021
On 2/21/21 5:32 PM, Guenter Roeck wrote:
> On Sat, Feb 13, 2021 at 08:10:41AM -0800, Lakshmi Ramasubramanian wrote:
>> From: Rob Herring <robh at kernel.org>
>> Both arm64 and powerpc do essentially the same FDT /chosen setup for
>> kexec. The differences are either omissions that arm64 should have
>> or additional properties that will be ignored. The setup code can be
>> combined and shared by both powerpc and arm64.
>> 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.
>> Combine the code for setting up the /chosen node in the FDT and updating
>> the memory reservation for kexec, for powerpc and arm64, in
>> of_kexec_alloc_and_setup_fdt() and move it to "drivers/of/kexec.c".
>> Signed-off-by: Rob Herring <robh at kernel.org>
>> Signed-off-by: Lakshmi Ramasubramanian <nramas at linux.microsoft.com>
> drivers/of/kexec.c: In function 'of_kexec_alloc_and_setup_fdt':
> drivers/of/kexec.c:378:10: error: 'const struct kimage' has no member named 'arch'
> 378 | image->arch.elf_load_addr,
> | ^~
> drivers/of/kexec.c:379:10: error: 'const struct kimage' has no member named 'arch'
> 379 | image->arch.elf_headers_sz);
> | ^~
> drivers/of/kexec.c:387:35: error: 'const struct kimage' has no member named 'arch'
> 387 | ret = fdt_add_mem_rsv(fdt, image->arch.elf_load_addr,
> | ^~
> drivers/of/kexec.c:388:16: error: 'const struct kimage' has no member named 'arch'
> 388 | image->arch.elf_headers_sz);
> | ^~
I have posted a new patch set (link given below) that fixes the above
build break. Could you please try that?
More information about the linux-arm-kernel