diff options
author | Simon Glass <sjg@chromium.org> | 2023-05-10 16:34:26 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-05-13 09:52:32 -0400 |
commit | c8894348454aef103a29e5afbfe45c0959b9d45b (patch) | |
tree | ad0e08049b5acf510ab6f56fe9d30cd1188c47e2 | |
parent | d8d40bc392d1ce60660e479a73970666e6a8a7be (diff) | |
download | u-boot-c8894348454aef103a29e5afbfe45c0959b9d45b.tar.gz |
bootstd: Tidy up reporting of errors
In a few cases the error handling is not quite right. Make sure we
return the actual error in distro_efi_read_bootflow_file() rather than
-EINVAL. Return -IO when a file cannot be read. Also show the error name
if available.
This does not change operation, but does make it easier to diagnose
problems.
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | boot/bootmeth-uclass.c | 2 | ||||
-rw-r--r-- | boot/bootmeth_efi.c | 2 | ||||
-rw-r--r-- | cmd/bootflow.c | 2 | ||||
-rw-r--r-- | test/boot/bootflow.c | 10 |
4 files changed, 8 insertions, 8 deletions
diff --git a/boot/bootmeth-uclass.c b/boot/bootmeth-uclass.c index 2aee1e0f0c..3b3e0614da 100644 --- a/boot/bootmeth-uclass.c +++ b/boot/bootmeth-uclass.c @@ -319,7 +319,7 @@ static int alloc_file(const char *fname, uint size, void **bufp) return log_msg_ret("read", ret); } if (size != bytes_read) - return log_msg_ret("bread", -EINVAL); + return log_msg_ret("bread", -EIO); buf[size] = '\0'; *bufp = buf; diff --git a/boot/bootmeth_efi.c b/boot/bootmeth_efi.c index 6f70f2229b..af31fbfc85 100644 --- a/boot/bootmeth_efi.c +++ b/boot/bootmeth_efi.c @@ -235,7 +235,7 @@ static int distro_efi_read_bootflow_file(struct udevice *dev, ret = efiload_read_file(desc, bflow); if (ret) - return log_msg_ret("read", -EINVAL); + return log_msg_ret("read", ret); fdt_addr = env_get_hex("fdt_addr_r", 0); diff --git a/cmd/bootflow.c b/cmd/bootflow.c index 6cc58e48c7..5c61286a2a 100644 --- a/cmd/bootflow.c +++ b/cmd/bootflow.c @@ -55,7 +55,7 @@ static void report_bootflow_err(struct bootflow *bflow, int err) break; } - printf(", err=%d\n", err); + printf(", err=%dE\n", err); } /** diff --git a/test/boot/bootflow.c b/test/boot/bootflow.c index fd0e1d6243..bb53bab0c0 100644 --- a/test/boot/bootflow.c +++ b/test/boot/bootflow.c @@ -168,21 +168,21 @@ static int bootflow_cmd_scan_e(struct unit_test_state *uts) ut_assert_nextlinen("---"); ut_assert_nextline("Scanning bootdev 'mmc2.bootdev':"); ut_assert_nextline(" 0 syslinux media mmc 0 mmc2.bootdev.whole <NULL>"); - ut_assert_nextline(" ** No partition found, err=-93"); + ut_assert_nextline(" ** No partition found, err=-93: Protocol not supported"); ut_assert_nextline(" 1 efi media mmc 0 mmc2.bootdev.whole <NULL>"); - ut_assert_nextline(" ** No partition found, err=-93"); + ut_assert_nextline(" ** No partition found, err=-93: Protocol not supported"); ut_assert_nextline("Scanning bootdev 'mmc1.bootdev':"); ut_assert_nextline(" 2 syslinux media mmc 0 mmc1.bootdev.whole <NULL>"); - ut_assert_nextline(" ** No partition found, err=-2"); + ut_assert_nextline(" ** No partition found, err=-2: No such file or directory"); ut_assert_nextline(" 3 efi media mmc 0 mmc1.bootdev.whole <NULL>"); - ut_assert_nextline(" ** No partition found, err=-2"); + ut_assert_nextline(" ** No partition found, err=-2: No such file or directory"); ut_assert_nextline(" 4 syslinux ready mmc 1 mmc1.bootdev.part_1 /extlinux/extlinux.conf"); ut_assert_nextline(" 5 efi fs mmc 1 mmc1.bootdev.part_1 efi/boot/bootsbox.efi"); ut_assert_skip_to_line("Scanning bootdev 'mmc0.bootdev':"); ut_assert_skip_to_line(" 3f efi media mmc 0 mmc0.bootdev.whole <NULL>"); - ut_assert_nextline(" ** No partition found, err=-93"); + ut_assert_nextline(" ** No partition found, err=-93: Protocol not supported"); ut_assert_nextline("No more bootdevs"); ut_assert_nextlinen("---"); ut_assert_nextline("(64 bootflows, 1 valid)"); |