
Hi Heinrich,
On Tue, 21 Dec 2021 at 00:37, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 12/18/21 19:28, Simon Glass wrote:
If the 'bootm' command is not enabled then this code is not available and this causes a link error. Fix it.
Note that for the EFI app, there is no indication of missing code. It just hangs!
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
arch/x86/lib/zimage.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c index 7ce02226ef9..9cc04490307 100644 --- a/arch/x86/lib/zimage.c +++ b/arch/x86/lib/zimage.c @@ -365,11 +365,14 @@ int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot, strcpy(cmd_line, (char *)cmdline_force); else build_command_line(cmd_line, auto_boot);
ret = bootm_process_cmdline(cmd_line, max_size, BOOTM_CL_ALL);
if (ret) {
printf("Cmdline setup failed (max_size=%x, bootproto=%x, err=%d)\n",
max_size, bootproto, ret);
return ret;
if (IS_ENABLED(CONFIG_CMD_BOOTM)) {
For zImages we have command bootz. Why would you disable this if CONFIG_CMD_BOOTZ=y?
Well, without the 'bootm' command, this bootm_process_cmdline() functoin does not exist. So it just hangs. One thing we need to fix is that it should give a build error when a function is missing, not just hang. But in any case, this would prevent a build error if that worked. So we still need this change.
The module is called zimage.c. Is this code used when booting via bootm at all?
Yes, see:
arch/x86/lib/bootm.c:static int boot_prep_linux(bootm_headers_t *images)
Regards, Simon
Best regards
Heinrich
ret = bootm_process_cmdline(cmd_line, max_size,
BOOTM_CL_ALL);
if (ret) {
printf("Cmdline setup failed (max_size=%x, bootproto=%x, err=%d)\n",
max_size, bootproto, ret);
return ret;
} } printf("Kernel command line: \""); puts(cmd_line);