From: Simon Glass <sjg@chromium.org>
To: U-Boot Mailing List <u-boot@lists.denx.de>
Cc: "Tom Rini" <trini@konsulko.com>, "Simon Glass" <sjg@chromium.org>,
"Bin Meng" <bmeng.cn@gmail.com>,
"Heinrich Schuchardt" <xypron.glpk@gmx.de>,
"Ilias Apalodimas" <ilias.apalodimas@linaro.org>,
"Marek Behún" <kabel@kernel.org>
Subject: [PATCH 43/45] vbe: Add docs and a test for the VBE command
Date: Sun, 25 Sep 2022 09:02:46 -0600 [thread overview]
Message-ID: <20220925150248.2524421-44-sjg@chromium.org> (raw)
In-Reply-To: <20220925150248.2524421-1-sjg@chromium.org>
After further development this seems to be useful for debugging and
testing. Add documentation and a test.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
doc/usage/cmd/vbe.rst | 90 +++++++++++++++++++++++++++++++++++++++++++
doc/usage/index.rst | 1 +
test/boot/Makefile | 1 +
test/boot/vbe.c | 69 +++++++++++++++++++++++++++++++++
4 files changed, 161 insertions(+)
create mode 100644 doc/usage/cmd/vbe.rst
create mode 100644 test/boot/vbe.c
diff --git a/doc/usage/cmd/vbe.rst b/doc/usage/cmd/vbe.rst
new file mode 100644
index 00000000000..2b5cdd7d411
--- /dev/null
+++ b/doc/usage/cmd/vbe.rst
@@ -0,0 +1,90 @@
+vbe command
+===========
+
+Synopsis
+--------
+
+::
+
+ vbe list
+ vbe select <name_or_id>
+
+Description
+-----------
+
+The vbe command provides a way to interact with :doc:`../../develop/vbe`. It has
+subcommands for different purposes.
+
+vbe list
+~~~~~~~~
+
+Lists the available VBE bootmeths. These are a subset of all bootmeths, as
+accessed via the :doc:`bootmeth`.
+
+The fields are as follows:
+
+#:
+ Shows the bootmeth sequence number, Use the `bootmeth list` command to see
+ all available bootmeths.
+
+Sel:
+ Indicates the selected bootmeth with an asterisk (`*`).
+
+Device:
+ Name of VBE device, which is taken from the name of its device tree node.
+
+Driver:
+ Name of the VBE driver
+
+Description:
+ Description of the VBE driver
+
+
+vbe select
+~~~~~~~~~~
+
+Allows a particular bootmeth to be selected. Either a sequence number or a
+device name can be provided.
+
+Without any arguments, any selected device is deselected.
+
+
+Examples
+--------
+
+This shows listing and selecting devices::
+
+ => vbe list
+ # Sel Device Driver Description
+ --- --- -------------- -------------- -----------
+ 2 firmware0 vbe_simple VBE simple
+ --- --- -------------- -------------- -----------
+ => vbe sel 2
+ => vbe list
+ # Sel Device Driver Description
+ --- --- -------------- -------------- -----------
+ 2 * firmware0 vbe_simple VBE simple
+ --- --- -------------- -------------- -----------
+ => vbe sel
+ => vbe list
+ # Sel Device Driver Description
+ --- --- -------------- -------------- -----------
+ 2 firmware0 vbe_simple VBE simple
+ --- --- -------------- -------------- -----------
+
+This shows selecting a VBE device by its name::
+
+ => vbe sel firmware0
+ => vbe list
+ # Sel Device Driver Description
+ --- --- -------------- -------------- -----------
+ 2 * firmware0 vbe_simple VBE simple
+ --- --- -------------- -------------- -----------
+ =>
+
+
+Return value
+------------
+
+The return value $? is set to 0 (true) on success, or 1 (failure) if something
+goes wrong, such as failing to find the bootmeth with `vbe select`.
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index 73966c6e012..62c898c3575 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -68,6 +68,7 @@ Shell commands
cmd/size
cmd/true
cmd/ums
+ cmd/vbe
cmd/wdt
Booting OS
diff --git a/test/boot/Makefile b/test/boot/Makefile
index d724629d3b0..167629a03ee 100644
--- a/test/boot/Makefile
+++ b/test/boot/Makefile
@@ -9,3 +9,4 @@ ifdef CONFIG_OF_LIVE
obj-$(CONFIG_BOOTMETH_VBE_SIMPLE) += vbe_simple.o
endif
obj-$(CONFIG_BOOTMETH_VBE) += vbe_fixup.o
+obj-$(CONFIG_CMD_VBE) += vbe.o
diff --git a/test/boot/vbe.c b/test/boot/vbe.c
new file mode 100644
index 00000000000..9653ac5d94b
--- /dev/null
+++ b/test/boot/vbe.c
@@ -0,0 +1,69 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Test for `vbe` command
+ *
+ * Copyright 2022 Google LLC
+ * Written by Simon Glass <sjg@chromium.org>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <vbe.h>
+#include <test/suites.h>
+#include <test/ut.h>
+#include "bootstd_common.h"
+
+/* Check 'vbe list' command */
+static int vbe_cmd_list(struct unit_test_state *uts)
+{
+ console_record_reset_enable();
+ ut_assertok(run_command("vbe list", 0));
+ ut_assert_nextline(" # Sel Device Driver Description");
+ ut_assert_nextlinen("---");
+ ut_assert_nextline(" 2 firmware0 vbe_simple VBE simple");
+ ut_assert_nextlinen("---");
+ ut_assert_console_end();
+
+ return 0;
+}
+BOOTSTD_TEST(vbe_cmd_list, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
+
+/* Check 'vbe select' command */
+static int vbe_cmd_select(struct unit_test_state *uts)
+{
+ /* select a device */
+ console_record_reset_enable();
+ ut_assertok(run_command("vbe select 2", 0));
+ ut_assert_console_end();
+
+ ut_assertok(run_command("vbe list", 0));
+ ut_assert_nextline(" # Sel Device Driver Description");
+ ut_assert_nextlinen("---");
+ ut_assert_nextline(" 2 * firmware0 vbe_simple VBE simple");
+ ut_assert_nextlinen("---");
+ ut_assert_console_end();
+
+ /* deselect it */
+ ut_assertok(run_command("vbe select", 0));
+ ut_assert_console_end();
+ ut_assertok(run_command("vbe list", 0));
+ ut_assert_nextline(" # Sel Device Driver Description");
+ ut_assert_nextlinen("---");
+ ut_assert_nextline(" 2 firmware0 vbe_simple VBE simple");
+ ut_assert_nextlinen("---");
+ ut_assert_console_end();
+
+ /* select a device by name */
+ console_record_reset_enable();
+ ut_assertok(run_command("vbe select firmware0", 0));
+ ut_assert_console_end();
+ ut_assertok(run_command("vbe list", 0));
+ ut_assert_nextline(" # Sel Device Driver Description");
+ ut_assert_nextlinen("---");
+ ut_assert_nextline(" 2 * firmware0 vbe_simple VBE simple");
+ ut_assert_nextlinen("---");
+ ut_assert_console_end();
+
+ return 0;
+}
+BOOTSTD_TEST(vbe_cmd_select, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
--
2.37.3.998.g577e59143f-goog
next prev parent reply other threads:[~2022-09-25 15:11 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-25 15:02 [PATCH 00/45] vbe: Implement the full firmware flow Simon Glass
2022-09-25 15:02 ` [PATCH 01/45] Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE Simon Glass
2022-09-25 15:02 ` [PATCH 02/45] disk: Drop debug messages in part_efi Simon Glass
2022-09-26 6:11 ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 03/45] bloblist: Drop debugging Simon Glass
2022-09-25 15:02 ` [PATCH 04/45] rsa: Avoid warning in padding_pss_verify() Simon Glass
2022-09-26 6:23 ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 05/45] spl: Use binman suffix allow symbols of any SPL etype Simon Glass
2022-09-25 15:02 ` [PATCH 06/45] spl: Split up the board_init_r() function Simon Glass
2022-09-25 15:02 ` [PATCH 07/45] spl: Refactor controls for console output Simon Glass
2022-09-29 15:16 ` Tom Rini
2022-09-25 15:02 ` [PATCH 08/45] spl: Add a separate silence option for SPL Simon Glass
2022-09-25 15:02 ` [PATCH 09/45] CI: Install pyelftools for builds Simon Glass
2022-09-26 6:29 ` Heinrich Schuchardt
2022-09-28 10:20 ` Simon Glass
2022-09-29 15:05 ` Tom Rini
2022-09-29 23:55 ` Simon Glass
2022-09-30 12:56 ` Tom Rini
2022-09-30 13:28 ` Simon Glass
2022-09-25 15:02 ` [PATCH 10/45] binman: Allow obtaining a symbol value Simon Glass
2022-09-25 15:02 ` [PATCH 11/45] binman: Split out looking up a symbol into a function Simon Glass
2022-09-25 15:02 ` [PATCH 12/45] binman: Handle writing ELF symbols in the Entry class Simon Glass
2022-09-25 15:02 ` [PATCH 13/45] binman: Support writing symbols into ELF files Simon Glass
2022-09-25 15:02 ` [PATCH 14/45] dm: blk: Add udevice functions Simon Glass
2022-09-26 0:17 ` AKASHI Takahiro
2022-09-28 10:20 ` Simon Glass
2022-09-29 0:51 ` AKASHI Takahiro
2022-09-29 2:35 ` Simon Glass
2022-09-30 1:54 ` AKASHI Takahiro
2022-09-25 15:02 ` [PATCH 15/45] dm: usb: Update the test to cover reading and writing Simon Glass
2022-09-25 15:02 ` [PATCH 16/45] dm: blk: mmc: Tidy up some Makefile rules for SPL Simon Glass
2022-09-25 15:02 ` [PATCH 17/45] dm: mmc: Allow sandbox emulator to build without writes Simon Glass
2022-09-25 15:02 ` [PATCH 18/45] sandbox: Drop message about writing sandbox state Simon Glass
2022-09-26 6:31 ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 19/45] sandbox: Generalise SPL booting Simon Glass
2022-09-25 15:02 ` [PATCH 20/45] sandbox: Add a way to specify the sandbox executable Simon Glass
2022-09-26 6:49 ` Heinrich Schuchardt
2022-11-07 23:35 ` Simon Glass
2022-09-25 15:02 ` [PATCH 21/45] bootstd: Add a way to set up a bootflow Simon Glass
2022-09-25 15:02 ` [PATCH 22/45] image: Move comment for fit_conf_find_compat() Simon Glass
2022-09-26 6:54 ` Heinrich Schuchardt
2022-09-25 15:02 ` [PATCH 23/45] test: Report skippped tests Simon Glass
2022-09-25 15:02 ` [PATCH 24/45] test: Update tests to use the skip feature Simon Glass
2022-09-25 15:02 ` [PATCH 25/45] test: Support tests which can only be run manually Simon Glass
2022-09-26 6:56 ` Heinrich Schuchardt
2022-09-28 10:20 ` Simon Glass
2022-09-25 15:02 ` [PATCH 26/45] image: Add the concept of a phase to FIT Simon Glass
2022-09-25 15:02 ` [PATCH 27/45] image: Allow loading a FIT config for a particular phase Simon Glass
2022-09-25 15:02 ` [PATCH 28/45] image: Correct strncpy() warning with image_set_name() Simon Glass
2022-09-25 15:02 ` [PATCH 29/45] vbe: Rename vbe_fixup to vbe_request Simon Glass
2022-09-25 15:02 ` [PATCH 30/45] vbe: Use a warning for a failed requests Simon Glass
2022-09-25 15:02 ` [PATCH 31/45] spl: Allow multiple loaders of the same type Simon Glass
2022-09-30 16:28 ` Tom Rini
2022-09-30 16:37 ` Simon Glass
2022-09-30 16:39 ` Tom Rini
2022-09-30 16:45 ` Simon Glass
2022-09-30 16:50 ` Tom Rini
2022-09-30 16:55 ` Simon Glass
2022-09-25 15:02 ` [PATCH 32/45] sandbox: Support obtaining the next phase from an image Simon Glass
2022-09-25 15:02 ` [PATCH 33/45] vbe: Support selecting operations by SPL phase Simon Glass
2022-09-25 15:02 ` [PATCH 34/45] vbe: Support reading the next SPL phase via VBE Simon Glass
2022-09-25 15:02 ` [PATCH 35/45] vbe: Move OS implementation into a separate file Simon Glass
2022-09-25 15:02 ` [PATCH 36/45] vbe: Drop the U-Boot prefix from the version Simon Glass
2022-09-25 15:02 ` [PATCH 37/45] vbe: Add Kconfig options for VPL Simon Glass
2022-09-25 15:02 ` [PATCH 38/45] vbe: Add info about the VBE device to the fwupd node Simon Glass
2022-09-25 15:02 ` [PATCH 39/45] sandbox: Add a binman image for VPL Simon Glass
2022-09-25 15:02 ` [PATCH 40/45] vbe: Correct pylint warnings in test_vbe Simon Glass
2022-09-25 15:02 ` [PATCH 41/45] vbe: Use a manual test Simon Glass
2022-09-25 15:02 ` [PATCH 42/45] vbe: Record which phases loaded using VBE Simon Glass
2022-09-25 15:02 ` Simon Glass [this message]
2022-09-25 15:02 ` [PATCH 44/45] vbe: Add a subcommand to show the VBE state Simon Glass
2022-09-25 15:02 ` [PATCH 45/45] vbe: Add a test for the VBE flow into U-Boot proper Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220925150248.2524421-44-sjg@chromium.org \
--to=sjg@chromium.org \
--cc=bmeng.cn@gmail.com \
--cc=ilias.apalodimas@linaro.org \
--cc=kabel@kernel.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=xypron.glpk@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).