From patchwork Sat Oct 18 08:40:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 42 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1760776898; bh=FGY8HFY9OAqh1sYRjlGO4iko+U7VQrrfPYYwxwFH4f4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=ayKwfM/cyz+NylUsadYAuZNoc1ztm6YfwolnztU2pmjecX//+TfEg9y9BKxcDtRmU BDAIT5laS492c5H2AUvw4U7AWVXMr+lK9zS7VJluTde28lFr20q6kg6RGWhPgIQcGS n6RiLd05uW38r8lMS4UpdRnQchYHY1bOEyxLL0bm5guspqJaa02u+SyrJQu0HWyLkQ PHr2CZTmfcImZWj3EtXCHtOzSThcUyvf3bzwMUHHfWx4/wF0TUM/oB5J+rioNFwEXE s8Sc/Fzx71BM4fG5RtZ/cOz5qQkELfY/5kTu7WG83GWQvm6JJ9LDs87pR0i5K5rlgw pIwJfBNCtcZJA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 21A7E681BE for ; Sat, 18 Oct 2025 02:41:38 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id Y0mAEJSzhyMR for ; Sat, 18 Oct 2025 02:41:38 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1760776898; bh=FGY8HFY9OAqh1sYRjlGO4iko+U7VQrrfPYYwxwFH4f4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=ayKwfM/cyz+NylUsadYAuZNoc1ztm6YfwolnztU2pmjecX//+TfEg9y9BKxcDtRmU BDAIT5laS492c5H2AUvw4U7AWVXMr+lK9zS7VJluTde28lFr20q6kg6RGWhPgIQcGS n6RiLd05uW38r8lMS4UpdRnQchYHY1bOEyxLL0bm5guspqJaa02u+SyrJQu0HWyLkQ PHr2CZTmfcImZWj3EtXCHtOzSThcUyvf3bzwMUHHfWx4/wF0TUM/oB5J+rioNFwEXE s8Sc/Fzx71BM4fG5RtZ/cOz5qQkELfY/5kTu7WG83GWQvm6JJ9LDs87pR0i5K5rlgw pIwJfBNCtcZJA== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 112FB68109 for ; Sat, 18 Oct 2025 02:41:38 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1760776893; bh=eVxEbwHpGy6sHsb9PsxpaTxXQxx2XVHVTDPLCskkyk8=; h=From:To:Cc:Subject:Date:From; b=A6Jq1Xd8P3VnKiib8sHMJ3/PO9xK21IvHSw29+IHHETk/NQHTvF4DfElPIFT5Zleu HyiYji2NKUebepg9S6NWdZpjPZoB8DJhFsGH/6ymqSzepOVl5o3n4UIayk3cPtWYfv jf3YRVmJJtNsRVZzfRbtOPnlideWAdnOxVH+R656Am27YAZFkemQNgDj9g1fjJ8j0K XXxWWOAHXeKXmywBpHyJOwErIRUYBXSbbAdTj1Lpe0O/62oquaw4KajNwP+lakK98p dBc2G2QKhajYx0Quw6q+5luO6qD/gmK/v6FK0vt35+DIaKb8G3K1fGIg42Zgt8PbVv nl+H9C84LMcCQ== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id E64F5681BE; Sat, 18 Oct 2025 02:41:33 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id jt5tD-JnqLL9; Sat, 18 Oct 2025 02:41:33 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1760776893; bh=oBFVSUVON+I/wrDHYSjQ0EiV6C/LCF3K4F3Bt8tP5CI=; h=From:To:Cc:Subject:Date:From; b=XBeKQkDXo2JpjPOWmO+/n2zZAMIeRJzWIwuquDCHFKf7CC/7FPuVN/Jvxt1+Qf6bL dNjIt4LQDGMFeS+bKLmLEumLBErR+cfqqpf3fHqZNjc8kA7QQGyvqmf9rFJ3i7CtsM SUZsVd8hLk/JkbVSP4WBfCXs9PqixdnKKoV6MTi9VvIyBm+/CyAvTZIY4gxlfcKJd4 O1cymu0ziy/pS2FKwrdHQH1e3eB7YX3wfjwHppQ4OsNQAb5raAeC+xwu/zdVYDnD53 yXN/WoP5iPnaLcZbYG94oZ6Uyg3ch+gVfcsXQfCqqI5wdWNdReH1CZ7OD6BeWmLiSR e406Guca4nXRQ== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 4959568109; Sat, 18 Oct 2025 02:41:33 -0600 (MDT) From: Simon Glass To: U-Boot Concept Date: Sat, 18 Oct 2025 02:40:45 -0600 Message-ID: <20251018084117.1798704-1-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Message-ID-Hash: CWLA4CLS2QIUQIXHZ7ENZBGHOCKPQIHH X-Message-ID-Hash: CWLA4CLS2QIUQIXHZ7ENZBGHOCKPQIHH X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Simon Glass X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 00/24] bootctl: Expand bootctl to include a new UI List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass The current bootctl UI is fairly basic, just supporting a keyboard menu with text. Now that expo supports a mouse, add a more interesting UI, with more graphical elements. Provide a way to switch between this and the simple UI. This series also includes some small test improvements, along with a patch to remove a blob from a bloblist. Simon Glass (24): test/py: Make test_bind_unbind_with_uclass() independent test/py: Mark a few more tests as slow bloblist: Add a name for the EFI log bloblist: Provide a way to remove a blob tpm: Correct address handling in tcg2_platform_get_log() scripts: build-efi: Use a locally built OVMF image boot: test: Add another Ubuntu image on mmc11 boot: Allow switching back to another layout test: Correct an incomplete sentence in prep_mmc_bootdev() sandbox: Enable Ubuntu fonts bootctl: Plumb in the feature bootctl: Create a common struct for the BOOTCTL_UI uclass bootctl: Avoid hanging on failure bootctl: Provide an option to slow the display refresh bootctl: Respect the autoboot option bootctl: Re-apply the theme when showing the UI bootctl: Bring in some additional images bootctl: Add an option to switch the layout bootctl: Provide a multi-themed UI bootctl: Disable autoboot bootctl: Add a test for the multi UI efi: x86: Provide settings for bootctl efi: x86: Enable required Kconfig options for bootctl efi: x86: Use only serial for input .gitignore | 2 + arch/sandbox/dts/test.dts | 9 + arch/x86/dts/efi-x86_app.dts | 14 + board/efi/efi-x86_app/efi-x86_app.env | 1 + boot/Kconfig | 4 +- boot/Makefile | 2 + boot/bootctl/Makefile | 1 + boot/bootctl/bootctl-uclass.c | 2 + boot/bootctl/bootctl.c | 3 +- boot/bootctl/logic.c | 3 +- boot/bootctl/multi_ui.c | 588 ++++++++++++++++++++++++++ boot/bootctl/simple_ui.c | 111 ++--- boot/bootctl/util.c | 15 + boot/bootflow_menu.c | 2 + cmd/Makefile | 1 + common/bloblist.c | 33 ++ configs/efi-x86_app64_defconfig | 11 +- configs/sandbox_defconfig | 2 + drivers/video/images/Makefile | 5 + drivers/video/images/canonical.bmp | Bin 0 -> 14258 bytes drivers/video/images/help.bmp | Bin 0 -> 1782 bytes drivers/video/images/multipass.bmp | Bin 0 -> 4378 bytes drivers/video/images/settings.bmp | Bin 0 -> 1782 bytes drivers/video/images/tick.bmp | Bin 0 -> 822 bytes include/bloblist.h | 12 + include/bootctl.dtsi | 11 +- include/bootctl/logic.h | 2 + include/bootctl/ui.h | 43 ++ include/tpm_tcg2.h | 4 +- lib/tpm_tcg2.c | 21 +- scripts/build-efi | 2 +- test/boot/bootctl/bootctl.c | 181 +++++++- test/boot/bootflow.c | 2 +- test/cmd/font.c | 5 + test/common/bloblist.c | 64 +++ test/dm/video.c | 7 +- test/py/tests/test_bind.py | 5 + test/py/tests/test_fit_auto_signed.py | 1 + test/py/tests/test_make_dep.py | 3 + test/py/tests/test_ut.py | 3 +- 40 files changed, 1084 insertions(+), 91 deletions(-) create mode 100644 boot/bootctl/multi_ui.c create mode 100644 drivers/video/images/canonical.bmp create mode 100644 drivers/video/images/help.bmp create mode 100644 drivers/video/images/multipass.bmp create mode 100644 drivers/video/images/settings.bmp create mode 100644 drivers/video/images/tick.bmp