From nobody Mon Jul 29 16:38:35 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WXkZM4M2Zz5RYv7; Mon, 29 Jul 2024 16:38:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WXkZM2czmz4FLN; Mon, 29 Jul 2024 16:38:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1722271115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=224s56vQiJu0JlOQ8amzkK8d76s+6TXlm9ZdoYRHCk0=; b=H6rekOrpafAFLF2yFQ7k6SVhO+Ap5OqbqlRxQsbtuhy/9CZ4oHpTUJ/XE/zlpQ5Wdk0NrF yI2s1NIXx7tf+zH8pVeHSwJuz3uAwPLmyGKN2GOUuhDQcdycDI6aVtOzZwBaUMzN1vBkUT Nl2kdHNBTB6J//ptVU3JAibGczo/uKImKRGgNPzgl1zFzoQCTYD0n+6QokUBi4WMDHasU2 OHh36tKrJgsW9HTBDoLy+vjgcun2EO7xihCyUArRMEV8zJzXuIh6MrLHsydHVWLzOhhh3X zWUKPZicu3aSU2z405LWDVwv7On1fzJXG64WIrOT0sL/swqeVNsZtGLilbDPUQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1722271115; a=rsa-sha256; cv=none; b=MI2xAdtsDVMK+FKQgpKkiZeFksrBQsMK4iqYdlnt86Bt7SC2E0IC3JcBskLFlhMuJ+LkKy R/7uBCSOcbpt2iMefXEfQPrNtzlV7R7HgHaZibrrBHST0GxocwKe1cwVXAJsBb/BVXLNgl 8i7LgmbJ3Nbsob6cZP2TuDPPmsyuk3s0zc0hrXFIGFzUJdipssSBM+/STMUc1R/JEvJEvg aeZWeYMZS52x5DySL5Vl7OfhUN8k06Uz5VkagZd/YQy1BRLLjQ77791z9hEVxCpBk5fDpi JUg8WNWZ6hzYEmOAVnpaoucKdqnq5t9JH/UorC52D67DGL4G0Z52OsVWGpjPTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1722271115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=224s56vQiJu0JlOQ8amzkK8d76s+6TXlm9ZdoYRHCk0=; b=ZZSa37Ny+yPW1/gCleZy9kE7u7ta9ZnmtlLf528OmYFiRY6d7M2RTnm7gmO+Heeul1knGA VyWcFuk0Zp5XcR15ZFfE734EeC8fIpicS4tQjv9qu26lsBuvHqPswhxp5h5V97tWTJ0chc xskBP98KcEKH1t7YsUc6flSzkY2fsZAcYphoG0qWhDRtZu9utYH8Opit/uZruyVXIjtgrw v/cmkpQb+SaF1AAdItyE1sqXkv0O60kEcB5lD2c7fCEDM/vkln7bYBvQ+dvKz7jqGSPxqx llDHugdlccFrSKj8AZeO3YWtcOQ22U8wAKxTGHqJi56oozSz9X48wqYaGAk8SQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WXkZM21zWzhjG; Mon, 29 Jul 2024 16:38:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 46TGcZDF005074; Mon, 29 Jul 2024 16:38:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 46TGcZjn005071; Mon, 29 Jul 2024 16:38:35 GMT (envelope-from git) Date: Mon, 29 Jul 2024 16:38:35 GMT Message-Id: <202407291638.46TGcZjn005071@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Emmanuel Vadot Subject: git: 82829e49e627 - stable/14 - vt: splash: Use splash screen passed from loader List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: manu X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 82829e49e627c17041c7c0dddde58f1f3481e982 Auto-Submitted: auto-generated The branch stable/14 has been updated by manu: URL: https://cgit.FreeBSD.org/src/commit/?id=82829e49e627c17041c7c0dddde58f1f3481e982 commit 82829e49e627c17041c7c0dddde58f1f3481e982 Author: Emmanuel Vadot AuthorDate: 2024-07-09 12:38:41 +0000 Commit: Emmanuel Vadot CommitDate: 2024-07-29 16:37:44 +0000 vt: splash: Use splash screen passed from loader If loader(8) gives use a splash screen to use using the MODINFOMD_SPLASH type, use it if RB_MUTE is set to "YES". By design only argb data will be displayed. Differential Revision: https://reviews.freebsd.org/D45931 Reviewed by: imp, tsoome Sponsored by: Beckhoff Automation GmbH & Co. KG (cherry picked from commit f6e8b0e85081681100bf9cd74423be02233204bc) --- sys/dev/vt/vt_core.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c index 797af56e5e1d..e27f74b03a0f 100644 --- a/sys/dev/vt/vt_core.c +++ b/sys/dev/vt/vt_core.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -1658,18 +1659,33 @@ vtterm_done(struct terminal *tm) static void vtterm_splash(struct vt_device *vd) { + caddr_t kmdp; + struct splash_info *si; + uintptr_t image; vt_axis_t top, left; - /* Display a nice boot splash. */ + kmdp = preload_search_by_type("elf kernel"); + if (kmdp == NULL) + kmdp = preload_search_by_type("elf64 kernel"); + si = MD_FETCH(kmdp, MODINFOMD_SPLASH, struct splash_info *); if (!(vd->vd_flags & VDF_TEXTMODE) && (boothowto & RB_MUTE)) { - top = (vd->vd_height - vt_logo_height) / 2; - left = (vd->vd_width - vt_logo_width) / 2; - switch (vt_logo_depth) { - case 1: - /* XXX: Unhardcode colors! */ + if (si == NULL) { + top = (vd->vd_height - vt_logo_height) / 2; + left = (vd->vd_width - vt_logo_width) / 2; vd->vd_driver->vd_bitblt_bmp(vd, vd->vd_curwindow, vt_logo_image, NULL, vt_logo_width, vt_logo_height, left, top, TC_WHITE, TC_BLACK); + } else { + if (si->si_depth != 4) + return; + printf("SPLASH: width: %d height: %d depth: %d\n", si->si_width, si->si_height, si->si_depth); + image = (uintptr_t)si + sizeof(struct splash_info); + image = roundup2(image, 8); + top = (vd->vd_height - si->si_height) / 2; + left = (vd->vd_width - si->si_width) / 2; + vd->vd_driver->vd_bitblt_argb(vd, vd->vd_curwindow, + (unsigned char *)image, si->si_width, si->si_height, + left, top); } vd->vd_flags |= VDF_SPLASH; }