[PATCH v5] kexec-tools: mips: Pass initrd parameter via cmdline
Simon Horman
horms at kernel.org
Fri Jun 24 07:47:53 PDT 2022
On Fri, Jun 24, 2022 at 05:32:19PM +0800, Hui Li wrote:
> Under loongson platform, use command:
> kexec -l vmlinux... --append="root=UUID=28e1..." --initrd=...
> kexec -e
> quick restart failed like this:
>
> ********************************************************************
> [ 3.420791] VFS: Cannot open root device "UUID=6462a8a4-02fb-49..."
> [ 3.431262] Please append a correct "root=" boot option; ...
> ...
> ...
> ...
> [ 3.543175] 0801 4194304 sda1 554e69cc-01
> [ 3.543175]
> [ 3.549494] 0802 62914560 sda2 554e69cc-02
> [ 3.549495]
> [ 3.555818] 0803 8388608 sda3 554e69cc-03
> [ 3.555819]
> [ 3.562139] 0804 174553229 sda4 554e69cc-04
> [ 3.562139]
> [ 3.568463] 0b00 1048575 sr0
> [ 3.568464] driver: sr
> [ 3.574524] Kernel panic - not syncing: VFS: Unable to mount root fs...
> [ 3.582750] ---[ end Kernel panic - not syncing: VFS:...
> *******************************************************************
>
> The kernel cannot parse the UUID, the UUID is parsed in the initrd.
> For compatibility with previous platforms, loongson platform obtain
> initrd parameter through cmdline in kernel, the kernel supports use
> cmdline to parse initrd. But under the mips architecture, kexec-tools
> pass the initrd through DTB.
>
> Made the following modifications:
>
> (1) in kexec/arch/mips/kexec-elf-mips.c
> Add patch_initrd_info(), at runtime to distinguish different cpu,
> only for loongson cpu, add initrd parameter to cmdline.
>
> (2) in kexec/arch/mips/crashdump-mips.c
> Because loongson uses a different page_offset, it should be modified
> to ensure that crashdump functionality is correct and reliable.
>
> (3) in kexec/arch/mips/crashdump-mips.h
> Added platform-specific page_offset macro definition.
>
> Signed-off-by: Hui Li <lihui at loongson.cn>
Sorry, I seem to see a compile failure with this version:
$ make
...
mipsel-linux-gnu-gcc -g -O2 -fno-strict-aliasing -Wall -Wstrict-prototypes -I../../include -I../../util_lib/include -Iinclude/ -I../../kexec/libfdt -I../../kexec/arch/mips/include -c -MD -o kexec/arch/mips/kexec-elf-mips.o ../../kexec/arch/mips/kexec-elf-mips.c
../../kexec/arch/mips/kexec-elf-mips.c: In function ‘patch_initrd_info’:
../../kexec/arch/mips/kexec-elf-mips.c:102:20: error: ‘LOONGSON_PAGE_OFFSET’ undeclared (first use in this function)
102 | page_offset = LOONGSON_PAGE_OFFSET;
| ^~~~~~~~~~~~~~~~~~~~
../../kexec/arch/mips/kexec-elf-mips.c:102:20: note: each undeclared identifier is reported only once for each function it appears in
Ref: https://github.com/horms/kexec-tools/runs/7043602833?check_suite_focus=true
More information about the kexec
mailing list