From patchwork Mon Dec 8 02:32:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 839 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=1765161202; bh=uO/BhDZkCf7PBcdGTYxiPWX//6o8Cw1l2GN4pw/6hN0=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=mvDpAKbxDIrfO5WIfXyd997UagGVtTDCniPwU9TW1hm0qCSon+lbLGajBJPYeDsvy tCNvMubO6C2eZB+o/vAYrX7q8KRUGaDgMY7y0lTNqk5UYPZ74SqeE+Xkwy7z3e35ZW RmAAxd16q2aW+lsBgWREPR5UgMzgYDv31YTlnmuIBiPr2kNWgZNiT++zZ5PfVknTJG LnM3ZS1080JRtGPSzizuUTz78QM29kG1rqkg+CLJ660aP3alSXuztJXkq42KAccu0A qqP2FWPA+A0tp6LNej7gZ3JULXS1ilIH8TvdzHA3o/nUQ42rNgs9W41JGgidQplA5Z uSLAWEoyhdPQg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 3ED76689C2 for ; Sun, 7 Dec 2025 19:33:22 -0700 (MST) 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 o4b4almXZICp for ; Sun, 7 Dec 2025 19:33:22 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765161202; bh=uO/BhDZkCf7PBcdGTYxiPWX//6o8Cw1l2GN4pw/6hN0=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=mvDpAKbxDIrfO5WIfXyd997UagGVtTDCniPwU9TW1hm0qCSon+lbLGajBJPYeDsvy tCNvMubO6C2eZB+o/vAYrX7q8KRUGaDgMY7y0lTNqk5UYPZ74SqeE+Xkwy7z3e35ZW RmAAxd16q2aW+lsBgWREPR5UgMzgYDv31YTlnmuIBiPr2kNWgZNiT++zZ5PfVknTJG LnM3ZS1080JRtGPSzizuUTz78QM29kG1rqkg+CLJ660aP3alSXuztJXkq42KAccu0A qqP2FWPA+A0tp6LNej7gZ3JULXS1ilIH8TvdzHA3o/nUQ42rNgs9W41JGgidQplA5Z uSLAWEoyhdPQg== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 2A0A568930 for ; Sun, 7 Dec 2025 19:33:22 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765161198; bh=C+T+AIW8kgnZ6xfgWaFHu4lqEHKlhijKuk1nCYFwXZ0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ur270JyZF8vcZPLq1vSuJSZvZ042Xtak8i0qECRUEkDb2cWPzN960bUTg3X8cROue LBPHAe/sx1eJOfW5EcLX2lSjW/ILOe3VTe4RwAr6LRkS3fBhpUPNU1lho/fiEeHSGq Xd1FSRX1Cl8I1+aBbQzY9tN4qibkqFZqVHJgJvcZSVtY7q2WcXxXlWhreWxLnN/6zY ZccLQWonNDUr3H8XznJSc1QJ1d+Ho8N8CFtqJqGP9X63Ra5pcH4/HjxnVHlgXdT5tO JPjIO1HxcR78SvBqLHYBKkFmXWZWtcRK2iFeKMl7TQcsqPiyOUq0/YCRHTghjtMiP6 jFg0VWdGHXdwQ== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id DE42F6883E; Sun, 7 Dec 2025 19:33:18 -0700 (MST) 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 ICo-icpqkqMO; Sun, 7 Dec 2025 19:33:18 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1765161194; bh=nQmlmvfAJXSf5ZY34prD/XoAjYsve8wb9GEGjsAURo0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CFuD/t8h/wPPwtKLa5oY+jfo+VqPiwqYA/+evhyEg8TsO28sRtjnzKxdBOV3CleCl reFcQR6bbg9u0MwnAIMuEs+TkKM7cnpLgt+uabteZ93zKtBxDiwPn1IKKOYP2cvgby 3asPpwjgAzSxITuuXZxZ6Dnd4QVbfKcm7vqbyj3hpBn8dMfK+gt1VLIZ1Pvg0Zu6bj iLBCXo02WAYRNLL8YWlmiw/MLUgHMBWfkFfpmSfCASpNPSpTFvdGsfpKtK2SCDCW2q IacTH8oNHeXEP+RzmaEFXtcsYnLhiUL7XIsy2CpZ1E9BTBC3j1L4KFBXnuwJSoRzFY eMo2ixh/pzo5Q== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 845CA68900; Sun, 7 Dec 2025 19:33:14 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Sun, 7 Dec 2025 19:32:09 -0700 Message-ID: <20251208023229.3929910-7-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251208023229.3929910-1-sjg@u-boot.org> References: <20251208023229.3929910-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: Z6QZYGQQMPZLXFK5UFPWV5HPQEPDPU2L X-Message-ID-Hash: Z6QZYGQQMPZLXFK5UFPWV5HPQEPDPU2L 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 06/19] bootctl: Allow switching between logos 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 bootctl tests are currently disabled due to some image incompatibilities: the multi UI uses one image and the simple UI uses a different one. Update the logic to switch between these logos when the layout changes. For now, use the U-Boot logo in both cases. Signed-off-by: Simon Glass --- boot/bootctl/multi_ui.c | 4 ++++ boot/bootctl/simple_ui.c | 7 +++++-- boot/bootflow_menu.c | 11 ++++++++++- include/bootctl.dtsi | 3 +++ test/boot/bootctl/bootctl.c | 4 ++-- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/boot/bootctl/multi_ui.c b/boot/bootctl/multi_ui.c index 975f9a1b91c..f663bcdac61 100644 --- a/boot/bootctl/multi_ui.c +++ b/boot/bootctl/multi_ui.c @@ -215,6 +215,10 @@ static int multiboot_ui_set_props(struct udevice *dev, struct scene *scn, scene_obj_set_hide(scn, OBJ_AUTOBOOT, !lpriv->opt_autoboot); if (upriv->logo) { + ret = scene_img_set_data(scn, OBJ_U_BOOT_LOGO, upriv->logo, + upriv->logo_size); + if (ret) + return log_msg_ret("log", ret); ret = scene_obj_set_pos(scn, OBJ_U_BOOT_LOGO, 1045, 10); if (ret) return log_msg_ret("lop", ret); diff --git a/boot/bootctl/simple_ui.c b/boot/bootctl/simple_ui.c index 58860138a33..34f46f04838 100644 --- a/boot/bootctl/simple_ui.c +++ b/boot/bootctl/simple_ui.c @@ -92,8 +92,11 @@ static int simple_ui_show(struct udevice *dev) abuf_printf(buf, "Boot control"); if (upriv->logo) { - ret = scene_img_set_data(scn, OBJ_U_BOOT_LOGO, - upriv->logo, upriv->logo_size); + const void *logo; + int size; + + logo = video_get_u_boot_logo(&size); + ret = scene_img_set_data(scn, OBJ_U_BOOT_LOGO, logo, size); if (ret) return log_msg_ret("log", ret); ret = scene_obj_set_pos(scn, OBJ_U_BOOT_LOGO, 1135, 10); diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c index 1b740c8d16b..909694f6e7b 100644 --- a/boot/bootflow_menu.c +++ b/boot/bootflow_menu.c @@ -80,9 +80,18 @@ int bootflow_menu_set_props(struct expo *exp, struct scene *scn, bool has_logo, 1366, 60); ret |= scene_obj_set_halign(scn, OBJ_MENU_TITLE, SCENEOA_CENTRE); - if (has_logo) + if (has_logo) { + const void *logo; + int size; + ret |= scene_obj_set_pos(scn, OBJ_U_BOOT_LOGO, 1165, 100); + logo = video_get_u_boot_logo(&size); + ret |= scene_img_set_data(scn, OBJ_U_BOOT_LOGO, logo, size); + if (ret) + return log_msg_ret("log", ret); + } + ret |= scene_obj_set_bbox(scn, OBJ_PROMPT1A, 0, 590, 1366, 590 + 40); ret |= scene_obj_set_bbox(scn, OBJ_PROMPT1B, 0, 620, diff --git a/include/bootctl.dtsi b/include/bootctl.dtsi index 05032a924e1..4070fa32c5f 100644 --- a/include/bootctl.dtsi +++ b/include/bootctl.dtsi @@ -120,6 +120,9 @@ "bootctl,ui"; graphical = "if-available"; textual = "if-available"; +#ifdef CANONICAL_LOGO + logo = /incbin/("/home/sglass/u/boot/bootctl/canonical.bmp"); +#endif }; ui-simple { diff --git a/test/boot/bootctl/bootctl.c b/test/boot/bootctl/bootctl.c index ab9aa28a668..532a73d6336 100644 --- a/test/boot/bootctl/bootctl.c +++ b/test/boot/bootctl/bootctl.c @@ -396,7 +396,7 @@ static int check_multiboot_ui(struct unit_test_state *uts, ut_assertok(bc_ui_add(ui_dev, &info[0])); ut_assertok(bc_ui_add(ui_dev, &info[1])); ut_assertok(bc_ui_render(ui_dev)); - ut_asserteq(16645, video_compress_fb(uts, vid_dev, false)); + ut_asserteq(13702, video_compress_fb(uts, vid_dev, false)); /* dump after render - buf2 is golden for multiboot_ui */ uc_priv = dev_get_uclass_priv(ui_dev); @@ -435,7 +435,7 @@ static int check_multiboot_ui(struct unit_test_state *uts, /* switch back to multiboot UI style and check against buf2 */ ut_assertok(bc_ui_switch_layout(ui_dev)); ut_assertok(bc_ui_render(ui_dev)); - ut_asserteq(16645, video_compress_fb(uts, vid_dev, false)); + ut_asserteq(13702, video_compress_fb(uts, vid_dev, false)); /* dump after switch back to multiboot - buf4 should match buf2 */ ut_assertok(membuf_new(&buf4, 4096));