pxe_utils: Fix arguments to x86 zboot
authorZhaofeng Li <hello@zhaofeng.li>
Wed, 20 Oct 2021 07:18:14 +0000 (00:18 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 1 Nov 2021 01:50:55 +0000 (09:50 +0800)
commit23f3e399de58712620b10210246831facea550fe
tree0abf854484a116785d2e3fae2f6efe578968c349
parent7a0eecb2bd818faa8fe4f64c5db95d019be701bd
pxe_utils: Fix arguments to x86 zboot

bootm and zboot accept different arguments:

> bootm [addr [arg ...]]
>    - boot application image stored in memory
>        passing arguments 'arg ...'; when booting a Linux kernel,
>        'arg' can be the address of an initrd image

> zboot [addr] [size] [initrd addr] [initrd size] [setup] [cmdline]
>       addr -        The optional starting address of the bzimage.
>                     If not set it defaults to the environment
>                     variable "fileaddr".
>       size -        The optional size of the bzimage. Defaults to
>                     zero.
>       initrd addr - The address of the initrd image to use, if any.
>       initrd size - The size of the initrd image to use, if any.

In the zboot flow, the current code will reuse the bootm args and attempt
to pass the initrd arg (argv[2]) as the kernel size (should be argv[3]).
zboot also expects the initrd address and size to be separate arguments.

Let's untangle them and have separate argv/argc locals.

Signed-off-by: Zhaofeng Li <hello@zhaofeng.li>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/pxe_utils.c