bootstd: Fix relative path use in extlinux bootmeth
authorJonas Karlman <jonas@kwiboo.se>
Fri, 9 Jun 2023 14:59:01 +0000 (14:59 +0000)
committerTom Rini <trini@konsulko.com>
Wed, 14 Jun 2023 16:56:10 +0000 (12:56 -0400)
commita7e4dffcd8c582bf4344548270d2fc7ac6c0f9ec
treedc6f0d8b1bd5db8d9928e61ae1574f34fefc483c
parentbcb1d269a4b9870033baced22b8225c089aa005a
bootstd: Fix relative path use in extlinux bootmeth

Using relative path in a /boot/extlinux/extlinux.conf file fails to load
linux kernel.

Using a /boot/extlinux/extlinux.conf file:

  LABEL test
    LINUX ../linux/Image

Result in following error:

  Retrieving file: ../linux/Image
  Skipping test for failure retrieving kernel
  Boot failed (err=-14)

However, using sysboot cmd successfully load kernel using same file:

  sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf

  Retrieving file: /boot/extlinux/../linux/Image

Fix relative path using bootmeth extlinux by supplying bootfile path
instead of subdir path in the call to pxe_setup_ctx, same as done in the
sysboot command.

Fixes: 31aefaf89a5b ("bootstd: Add an implementation of distro boot")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
boot/bootmeth_extlinux.c