From nobody Tue May 7 06:38:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60286+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60286+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1590509660; cv=none; d=zohomail.com; s=zohoarc; b=Ke4yqMcN5RV3jYCA7AstoQHqGx9ggjr462nHgT6Lf8bJFtqCr6zCSnqvuR1glwkszs5bhqOiCOID8K04gjV+zFRbrZJJwU6d2O4n/4NX4CQZlqtSteSq5HwBS2WCR/lcDKjuAyU8y4OVid660aTb4+XL5dIl1l8PwoX4XBk9i+Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590509660; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=8dWJPJ82eELLgzJjCpdTlAmgd89eJZJ5qKnDOCVKVqE=; b=cXSGerbeHa1Iz7AJ++WuHTrnGI3cyaq1hFYFSH/NRPb2H9//sc5wbbYbyxSqriEcRTEXzUI9Ig2bDWpiKnnGMbWaz1+/gPH051vlCJ4Ap+ri5cFtPyvqcwT+YgCIAGsVL/mg4YkH1zCz2IMuQmE3oxe5DqbgagAVbFHMgAd3XDI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60286+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1590509660770456.5096055146531; Tue, 26 May 2020 09:14:20 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id o30QYY1788612xdOJFl7KhhU; Tue, 26 May 2020 09:14:20 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.54177.1590509659313696079 for ; Tue, 26 May 2020 09:14:19 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C6EFA30E; Tue, 26 May 2020 09:14:17 -0700 (PDT) X-Received: from e123331-lin.nice.arm.com (unknown [10.37.8.89]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BCCCC3F7C3; Tue, 26 May 2020 09:14:16 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: jon@solid-run.com, Ard Biesheuvel Subject: [edk2-devel] [PATCH 1/5] ArmPkg/PlatformBootManagerLib: register 's' as UEFI Shell hotkey Date: Tue, 26 May 2020 18:13:55 +0200 Message-Id: <20200526161359.4810-2-ard.biesheuvel@arm.com> In-Reply-To: <20200526161359.4810-1-ard.biesheuvel@arm.com> References: <20200526161359.4810-1-ard.biesheuvel@arm.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ard.biesheuvel@arm.com X-Gm-Message-State: osRoDCKAOV9DuZ09VBMxLNkSx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1590509660; bh=wKUHQxUSuWcXdxUzpkg+9Q5LYONrZiFUyN4KV+hzfvg=; h=Cc:Date:From:Reply-To:Subject:To; b=o6h1klx6lVK4QbhemlLmwUDh1wNkG38mixWkrdfsNYO9VZroQ5WuXGK7z9V4rIGC+8w Pnt0cVq1bfxszQ3TccTUx9TpV87qPzpankQ9MG6WWMtGBfVDHKq/PBHJFPLfXTf8bJSMm 2leYuhyds0oL/quvRzDE0/bn39QkZv/G320= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" In preparation of hiding the UEFI Shell boot option as an ordinary boot option, make sure we can invoke it directly using the 's' hotkey. Without ConnectAll() having been called, this results in a shell that may have no block devices or other things connected, so don't advertise the 's' in the console string that is printed at boot - for novice users, we will go through the UiApp which connects everything first. For advanced use, having the ability to invoke the UEFI shell without any devices connected may be an advantage, so let's keep this behavior as is for now. Signed-off-by: Ard Biesheuvel Reviewed-by: Laszlo Ersek --- ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmPkg/Li= brary/PlatformBootManagerLib/PlatformBm.c index 4aca1382b042..23c925bbdb9c 100644 --- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c +++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c @@ -357,7 +357,8 @@ VOID PlatformRegisterFvBootOption ( CONST EFI_GUID *FileGuid, CHAR16 *Description, - UINT32 Attributes + UINT32 Attributes, + EFI_INPUT_KEY *Key ) { EFI_STATUS Status; @@ -409,6 +410,9 @@ PlatformRegisterFvBootOption ( if (OptionIndex =3D=3D -1) { Status =3D EfiBootManagerAddLoadOptionVariable (&NewOption, MAX_UINTN); ASSERT_EFI_ERROR (Status); + Status =3D EfiBootManagerAddKeyOptionVariable (NULL, + (UINT16)NewOption.OptionNumber, 0, Key, NULL); + ASSERT (Status =3D=3D EFI_SUCCESS || Status =3D=3D EFI_ALREADY_STARTED= ); } EfiBootManagerFreeLoadOption (&NewOption); EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount); @@ -721,6 +725,7 @@ PlatformBootManagerAfterConsole ( UINTN FirmwareVerLength; UINTN PosX; UINTN PosY; + EFI_INPUT_KEY Key; =20 FirmwareVerLength =3D StrLen (PcdGetPtr (PcdFirmwareVersionString)); =20 @@ -770,8 +775,10 @@ PlatformBootManagerAfterConsole ( // // Register UEFI Shell // + Key.ScanCode =3D SCAN_NULL; + Key.UnicodeChar =3D L's'; PlatformRegisterFvBootOption ( - &gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE + &gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE, &Key ); } =20 --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60286): https://edk2.groups.io/g/devel/message/60286 Mute This Topic: https://groups.io/mt/74481032/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Tue May 7 06:38:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60287+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60287+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1590509661; cv=none; d=zohomail.com; s=zohoarc; b=XXtLXZSPAav2+R0QeBQiHsAGTUYPLH+bs7iGKmOBWkbp9KI7TDYM4sktS906QJ840Dtp9JGV85kISj0eyPM3JVKEgAYnPs65KhHMAuUGkZQqzUt+5QslintggO9fior2usqTk55oVru2mgdnzpS4lIEaoEPTyGcl5v2rnun9em8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590509661; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=IK+SxvWSCz37jUVdtz/CPBC57o4RjMzYnxQ5DFt23r8=; b=l+9OOt/ndsZpjgRCRAvc9Xig+Oql0ydmaRpx8EOiBeG3h1EBPnDgMHCE60POjQUDnmBrYsdSDdrLHVyYfkNihI6RdAJ6gL+3cLaosHfj2r2y9hZ6onXtnSnWp6BCl6b4j8dFszHYYVHWXEZaNNKaq+P5Ts4Z0BfSV00x7fHz5aQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60287+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1590509661383448.957239486357; Tue, 26 May 2020 09:14:21 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id aJSIYY1788612x9CfPsy2u0H; Tue, 26 May 2020 09:14:21 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.53824.1590509660006877711 for ; Tue, 26 May 2020 09:14:20 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A556755D; Tue, 26 May 2020 09:14:19 -0700 (PDT) X-Received: from e123331-lin.nice.arm.com (unknown [10.37.8.89]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 64D143F7C3; Tue, 26 May 2020 09:14:17 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: jon@solid-run.com, Ard Biesheuvel Subject: [edk2-devel] [PATCH 2/5] ArmPkg/PlatformBootManagerLib: fall back to the UiApp on boot failure Date: Tue, 26 May 2020 18:13:56 +0200 Message-Id: <20200526161359.4810-3-ard.biesheuvel@arm.com> In-Reply-To: <20200526161359.4810-1-ard.biesheuvel@arm.com> References: <20200526161359.4810-1-ard.biesheuvel@arm.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ard.biesheuvel@arm.com X-Gm-Message-State: mEkVztVc7L8N4jp4J88ty1b9x1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1590509661; bh=wEeUZqImJV41idhOCD8WXTuv1OFvYaSKuO5cJGWPLWQ=; h=Cc:Date:From:Reply-To:Subject:To; b=KlGwXEzf5QQjJEJQpFPlKkTBrSFx6wJFiUdVLlNlezOatLs8akkK5vAAEWqOe63ctkk DH6qyM7trizX3njZMCrmesHu8gzQsKmLwr89CGLpsV33mktvhkboK6zm6Y1PiCdfYwkY8 WLIrtlNgbMbuZzEvTruIy+Sxu9kdLBLaxLA= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" As a last resort, drop into the UiApp application when no active boot options could be started. Doing so will connect all devices, and so it will allow the user to enter the Boot Manager submenu and pick a network or removable disk option. With the right UiApp library added in, the UiApp also gives access to the UEFI Shell. Signed-off-by: Ard Biesheuvel Reviewed-by: Laszlo Ersek --- ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmPkg/Li= brary/PlatformBootManagerLib/PlatformBm.c index 23c925bbdb9c..f91f7cd09ca1 100644 --- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c +++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c @@ -830,5 +830,19 @@ PlatformBootManagerUnableToBoot ( VOID ) { - return; + EFI_STATUS Status; + EFI_BOOT_MANAGER_LOAD_OPTION BootManagerMenu; + + // + // BootManagerMenu doesn't contain the correct information when return s= tatus + // is EFI_NOT_FOUND. + // + Status =3D EfiBootManagerGetBootManagerMenu (&BootManagerMenu); + if (EFI_ERROR (Status)) { + return; + } + + for (;;) { + EfiBootManagerBoot (&BootManagerMenu); + } } --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60287): https://edk2.groups.io/g/devel/message/60287 Mute This Topic: https://groups.io/mt/74481034/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Tue May 7 06:38:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60289+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60289+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1590509664; cv=none; d=zohomail.com; s=zohoarc; b=Dwc242ClWS778B+hDwi1/EuCfdChzgLWN6XYjBHc7ZwlboqUL24K3bklJVrUKNATDiDFhL/+HkordOZ3EMiunrt8htVTdN0Z/n4kTRnaMkFhq38s2J1LLbEWA1DoHm1QGjpNSXQssE5ioR+nl02ubKx+1R9FuBBKDjsooAxAVto= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590509664; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=1aJ38hpdWhTqneodS42tqwtODHbuI4XHMbCK2/xET5s=; b=Is556zNlzeF+qtpYF8NKNNlEvg1Npx2WTFjCY6JbS3skuim/5ucXK3UognNqc+/x97jDZmWl8iYtBW1ydHJxvxXn3pT4J0dvXc117I33zjKOIcU4aFeCJykFoNALKyQx7iiBNOkvdKV6uPmf7NKoL3lVOR2OluYqa11w/zi8LWs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60289+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1590509664466228.27481997812174; Tue, 26 May 2020 09:14:24 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id qAqZYY1788612xrJditTrgxd; Tue, 26 May 2020 09:14:24 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.54178.1590509662476694034 for ; Tue, 26 May 2020 09:14:22 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C56B455D; Tue, 26 May 2020 09:14:21 -0700 (PDT) X-Received: from e123331-lin.nice.arm.com (unknown [10.37.8.89]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4D42D3F7C3; Tue, 26 May 2020 09:14:19 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: jon@solid-run.com, Ard Biesheuvel Subject: [edk2-devel] [PATCH 3/5] ArmPkg/PlatformBootManagerLib: hide UEFI Shell as a regular boot option Date: Tue, 26 May 2020 18:13:57 +0200 Message-Id: <20200526161359.4810-4-ard.biesheuvel@arm.com> In-Reply-To: <20200526161359.4810-1-ard.biesheuvel@arm.com> References: <20200526161359.4810-1-ard.biesheuvel@arm.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ard.biesheuvel@arm.com X-Gm-Message-State: 7PVtHcxAIy9h2AgEdKn0qgt8x1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1590509664; bh=PIw5o3EEP0Al01zmJEez++lbAgI0Kgpu4BGjrZSFRjQ=; h=Cc:Date:From:Reply-To:Subject:To; b=IXcl1eJoJHpA3BrJ6UFuZ58WLM6w8qfqZxbNC77JOPjBe5p6mMgszDr8okkWTG8pi6X 3GgCkj+ygR8VlEbjg52VRjkKOhnzFE6TqlLvATaFZmbegP1FkoVA0tFQ/Qbu7Z45++zSS WbFA34PaDR/SU75BMwLwJUL0dR3mRdHnYXY= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Without ConnectAll() being called on the boot path, the UEFI shell will be entered with no block devices or anything else connected, and so for the novice user, this is not a very accommodating environment. Now that we have made the UiApp the last resort when on boot failure, and made the UEFI Shell accessible directly via the 's hotkey if you really need it, let's hide it as an ordinary boot option. Signed-off-by: Ard Biesheuvel Reviewed-by: Laszlo Ersek --- ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmPkg/Li= brary/PlatformBootManagerLib/PlatformBm.c index f91f7cd09ca1..b465f9ff388f 100644 --- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c +++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c @@ -778,7 +778,7 @@ PlatformBootManagerAfterConsole ( Key.ScanCode =3D SCAN_NULL; Key.UnicodeChar =3D L's'; PlatformRegisterFvBootOption ( - &gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE, &Key + &gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_HIDDEN, &Key ); } =20 --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60289): https://edk2.groups.io/g/devel/message/60289 Mute This Topic: https://groups.io/mt/74481037/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Tue May 7 06:38:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60290+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60290+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1590509665; cv=none; d=zohomail.com; s=zohoarc; b=h1OwgOk3GwPq3cjNbondXgfZbqA4MrxW5GKXy7G4thTMpMpkvjFzpWdVVYM/AMMCG7kGoNVNcgdO8x/jgs5kkeY/oGbZ6ka6oD4ZVSLuAGls0nkQjTTbVb7EP3D6yi+K9LZop2t2qSp68tp51sTEnEqc4wvYytgpONnT4ZzV+mA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590509665; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=GqW38zvEaCjWPGckTeCIACkh9PQZrS1OygLaBkIBS+Q=; b=IDMvhiL9oeGulnewFBe76mNOlmQ5PujfGkZRSLzO5DXm5NCmzweeKl2wSwOAuJFxxFJW6uAqkSbLGb0pBeOUlzqbKb0ZhhHnHc1WKe5CxCCayQvCvP1S9BKaWsPPKvIEHTAo4QuKuDM6uytWqIE5wkASLr9qrXAoF+mBu9z+O0M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60290+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 159050966524295.3613492701993; Tue, 26 May 2020 09:14:25 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id URPBYY1788612xy5IeANxFgW; Tue, 26 May 2020 09:14:24 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.53828.1590509663678771056 for ; Tue, 26 May 2020 09:14:23 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5316055D; Tue, 26 May 2020 09:14:23 -0700 (PDT) X-Received: from e123331-lin.nice.arm.com (unknown [10.37.8.89]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 30F403F52E; Tue, 26 May 2020 09:14:21 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: jon@solid-run.com, Ard Biesheuvel Subject: [edk2-devel] [PATCH 4/5] ArmPkg/PlatformBootManagerLib: don't connect all devices on each boot Date: Tue, 26 May 2020 18:13:58 +0200 Message-Id: <20200526161359.4810-5-ard.biesheuvel@arm.com> In-Reply-To: <20200526161359.4810-1-ard.biesheuvel@arm.com> References: <20200526161359.4810-1-ard.biesheuvel@arm.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ard.biesheuvel@arm.com X-Gm-Message-State: 6G4d82OOm8ZLt6FHV6KAsGYAx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1590509664; bh=GvE8knaRuZCJgO+THwSSwdzEf3EP8m5a6WBomKGZaYs=; h=Cc:Date:From:Reply-To:Subject:To; b=tNkPmcPQU+G5TFLZyFqk39eXWMh9VYegM/LME7P2CS/UzdxmH767+GY8/eBATweU4n4 7WBy4NM1XAAKoWITGGmyG8GRt0Mmj1dwszg7OhBlHdcnzZ+f0X3yy6IxVthRpG8+O6cYo uqEIXt88ekcZtXRKSiJFbnPrIeqKHONlo9U= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" In order to avoid boot delays from devices such as network controllers that may not even be involved in booting at all, drop the call to EfiBootManagerConnectAll () from the boot path. It will be called by UiApp, so when going through the menu, all devices will be connected as usual, but for the default boot, it is really not necessary so let's get rid of this. Enumerating all possible boot options and creating Boot#### variables for them is equally unnecessary in the default case, and also happens automatically in UiApp, so drop that as well. Signed-off-by: Ard Biesheuvel Reviewed-by: Laszlo Ersek --- ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmPkg/Li= brary/PlatformBootManagerLib/PlatformBm.c index b465f9ff388f..618072405a50 100644 --- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c +++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c @@ -753,11 +753,6 @@ PlatformBootManagerAfterConsole ( } } =20 - // - // Connect the rest of the devices. - // - EfiBootManagerConnectAll (); - // // On ARM, there is currently no reason to use the phased capsule // update approach where some capsules are dispatched before EndOfDxe @@ -767,11 +762,6 @@ PlatformBootManagerAfterConsole ( // HandleCapsules (); =20 - // - // Enumerate all possible boot options. - // - EfiBootManagerRefreshAllBootOption (); - // // Register UEFI Shell // --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60290): https://edk2.groups.io/g/devel/message/60290 Mute This Topic: https://groups.io/mt/74481039/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Tue May 7 06:38:10 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+60291+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60291+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1590509666; cv=none; d=zohomail.com; s=zohoarc; b=KBDv9sS2wfk4aH1XiyRi3Q/QnBjnroWB+hZ7zUTOpfT1vt0uFjJAy3Bgfy5jQL6hRF9L2nszEcBj2NGJoQG1xN1i1s8D7OoBgILIrprvomhhO5eJlmBxGdoHG3PLKUcrZ+wcffy052o4Kzvb+qpaDM+zHqHDikpSUIiRGHrMGXk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1590509666; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=6wKbKZ250KaA7dtphrSRRHk+PTzWjkX3CkEy5Ah/9rA=; b=MBn21lli0LubetHCrqAG1E6/82TWwmiPfasZGcS3Za6W4Ua1mEL5f9sFn4uOkZlgmXWYTmmWrZvjlaH00O4mLMmYvx7RdPdVci3OOvFtmDzepUwfkxntkS1UqhjOdfq7ryCmsDMgHdc2/lC1dl6ekWHVQO1TBOZcwSGzbuq4Ltg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+60291+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1590509666560156.13536020499157; Tue, 26 May 2020 09:14:26 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 6Ai8YY1788612xfgnTHOEY7d; Tue, 26 May 2020 09:14:26 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.54396.1590509665355581364 for ; Tue, 26 May 2020 09:14:25 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F214055D; Tue, 26 May 2020 09:14:24 -0700 (PDT) X-Received: from e123331-lin.nice.arm.com (unknown [10.37.8.89]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B3C683F52E; Tue, 26 May 2020 09:14:23 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: jon@solid-run.com, Ard Biesheuvel Subject: [edk2-devel] [PATCH 5/5] ShellPkg: add BootManager library to add UEFI Shell menu option Date: Tue, 26 May 2020 18:13:59 +0200 Message-Id: <20200526161359.4810-6-ard.biesheuvel@arm.com> In-Reply-To: <20200526161359.4810-1-ard.biesheuvel@arm.com> References: <20200526161359.4810-1-ard.biesheuvel@arm.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ard.biesheuvel@arm.com X-Gm-Message-State: oiHXtECHIMHn5g7BgvdFeSJlx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1590509666; bh=V6i7GIWt674+SkO1eSwEtL2dSrfdNl3xBA2Is8yekcQ=; h=Cc:Date:From:Reply-To:Subject:To; b=JkTI05A1vXZSVXt8D44M8pJ4czZlrGGnaATjslIj6KPdN9NerbXni1WXkbM2mVDYcV9 3prU13EvTXdPoClk19CR8lUM8EKx0Z7sXz0yACHSl+0fcqvmjKaBnl9NcbiKOVWxEjBxS N/DwWU2R+I1ne3Eu12n7H+f7jfr9rX0CZlA= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add a plug-in library for UiApp that creates a 'UEFI Shell' menu option at the root level which gives access to a form that allows the UEFI Shell to be launched. This gives the PlatformBootManagerLib implementation of the platform more flexibility in the way it handles boot options pointing to the UEFI Shell, which will typically be invoked with only the boot path connected on fast boots. This library may be incorporated to a platform build by adding a NULL resolution to the section of the UiApp.inf {} block in the platform .DSC Signed-off-by: Ard Biesheuvel --- ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.inf | 45 ++++ ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.h | 44 ++++ ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.c | 258 +++++++= +++++++++++++ ShellPkg/Library/ShellBootManagerLib/ShellBmStrings.uni | 17 ++ ShellPkg/Library/ShellBootManagerLib/ShellBmVfr.Vfr | 37 +++ 5 files changed, 401 insertions(+) diff --git a/ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.inf b= /ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.inf new file mode 100644 index 000000000000..d8b56268c08f --- /dev/null +++ b/ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.inf @@ -0,0 +1,45 @@ +## @file +# +# Boot Maintenance Manager Library to add a 'UEFI Shell' option to UiApp +# +# Copyright (c) 2020, Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 1.27 + BASE_NAME =3D ShellBootManagerLib + FILE_GUID =3D f84d949a-1ffd-447e-903d-5def3c34040b + MODULE_TYPE =3D DXE_DRIVER + VERSION_STRING =3D 1.0 + LIBRARY_CLASS =3D NULL|DXE_DRIVER UEFI_APPLICATION + CONSTRUCTOR =3D ShellBootManagerLibConstructor + DESTRUCTOR =3D ShellBootManagerLibDestructor + +[Sources] + ShellBootManagerLib.c + ShellBootManagerLib.h + ShellBmVfr.Vfr + ShellBmStrings.uni + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + ShellPkg/ShellPkg.dec + +[LibraryClasses] + DebugLib + DevicePathLib + DxeServicesLib + HiiLib + MemoryAllocationLib + UefiBootServicesTableLib + +[Guids] + gEfiIfrFrontPageGuid ## CONSUMES ## GUID + gUefiShellFileGuid ## CONSUMES ## GUID + +[Protocols] + gEfiHiiConfigAccessProtocolGuid ## PRODUCES + gEfiDevicePathProtocolGuid ## PRODUCES diff --git a/ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.h b/S= hellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.h new file mode 100644 index 000000000000..e9cdfb6a8a64 --- /dev/null +++ b/ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.h @@ -0,0 +1,44 @@ +/** @file + + Boot Maintenance Manager Library to add a 'UEFI Shell' option to UiApp + + Copyright (c) 2020, Arm Ltd. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include + +#include +#include + +extern UINT8 ShellBmVfrBin[]; + +#define FORMSET_GUID { 0x54335e64, 0x4ebc, 0x4f7d, { 0x8a, 0x9a, 0x94, 0x= 10, 0xf5, 0x53, 0xae, 0x9d } } + +/// +/// HII specific Vendor Device Path definition. +/// +#pragma pack(1) +typedef struct { + VENDOR_DEVICE_PATH VendorDevicePath; + EFI_DEVICE_PATH_PROTOCOL End; +} HII_VENDOR_DEVICE_PATH; +#pragma pack() + +#define SHELL_BM_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('S', 'B', 'C', 'D') + +typedef struct { + UINTN Signature; + + // + // HII relative handles + // + EFI_HII_HANDLE HiiHandle; + EFI_HANDLE DriverHandle; + + // + // Produced protocols + // + EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; +} SHELL_BM_CALLBACK_DATA; diff --git a/ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.c b/S= hellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.c new file mode 100644 index 000000000000..195f50601dc0 --- /dev/null +++ b/ShellPkg/Library/ShellBootManagerLib/ShellBootManagerLib.c @@ -0,0 +1,258 @@ +/** @file + + Boot Maintenance Manager Library to add a 'UEFI Shell' option to UiApp + + Copyright (c) 2020, Arm Ltd. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include + +#include +#include +#include +#include +#include +#include + +#include "ShellBootManagerLib.h" + +STATIC CONST EFI_GUID mFormsetGuid =3D FORMSET_GUID; +STATIC EFI_DEVICE_PATH_PROTOCOL *mShellFileDevicePath; + +STATIC HII_VENDOR_DEVICE_PATH mShellBmHiiVendorDevicePath =3D { + { + { + HARDWARE_DEVICE_PATH, + HW_VENDOR_DP, + { + (UINT8) (sizeof (VENDOR_DEVICE_PATH)), + (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) + } + }, + // + // File GUID: f84d949a-1ffd-447e-903d-5def3c34040b + // + { 0xf84d949a, 0x1ffd, 0x447e, { 0x90, 0x3d, 0x5d, 0xef, 0x3c, 0x34, 0x= 04, 0x0b } } + }, + { + END_DEVICE_PATH_TYPE, + END_ENTIRE_DEVICE_PATH_SUBTYPE, + { + (UINT8) (END_DEVICE_PATH_LENGTH), + (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8) + } + } +}; + +/** + This function allows a caller to extract the current configuration for o= ne + or more named elements from the target driver. + + + @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. + @param Request A null-terminated Unicode string in format. + @param Progress On return, points to a character in the Request s= tring. + Points to the string's null terminator if request= was successful. + Points to the most recent '&' before the first fa= iling name/value + pair (or the beginning of the string if the failu= re is in the + first name/value pair) if the request was not suc= cessful. + @param Results A null-terminated Unicode string in format which + has all values filled in for the names in the Req= uest string. + String to be allocated by the called function. + + @retval EFI_SUCCESS The Results is filled with the requested= values. + @retval EFI_OUT_OF_RESOURCES Not enough memory to store the results. + @retval EFI_INVALID_PARAMETER Request is illegal syntax, or unknown na= me. + @retval EFI_NOT_FOUND Routing data doesn't match any storage i= n this driver. + +**/ +STATIC +EFI_STATUS +EFIAPI +ShellBmExtractConfig ( + IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, + IN CONST EFI_STRING Request, + OUT EFI_STRING *Progress, + OUT EFI_STRING *Results + ) +{ + if (Progress =3D=3D NULL || Results =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + *Progress =3D Request; + return EFI_NOT_FOUND; +} + +/** + This function processes the results of changes in configuration. + + + @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. + @param Configuration A null-terminated Unicode string in = format. + @param Progress A pointer to a string filled in with the offset o= f the most + recent '&' before the first failing name/value pa= ir (or the + beginning of the string if the failure is in the = first + name/value pair) or the terminating NULL if all w= as successful. + + @retval EFI_SUCCESS The Results is processed successfully. + @retval EFI_INVALID_PARAMETER Configuration is NULL. + @retval EFI_NOT_FOUND Routing data doesn't match any storage i= n this driver. + +**/ +STATIC +EFI_STATUS +EFIAPI +ShellBmRouteConfig ( + IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, + IN CONST EFI_STRING Configuration, + OUT EFI_STRING *Progress + ) +{ + if (Configuration =3D=3D NULL || Progress =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + + *Progress =3D Configuration; + + return EFI_NOT_FOUND; +} + +/** + This function processes the results of changes in configuration. + + + @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. + @param Action Specifies the type of action taken by the browser. + @param QuestionId A unique value which is sent to the original expo= rting driver + so that it can identify the type of data to expec= t. + @param Type The type of value for the question. + @param Value A pointer to the data being sent to the original = exporting driver. + @param ActionRequest On return, points to the action requested by the = callback function. + + @retval EFI_SUCCESS The callback successfully handled the act= ion. + @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold t= he variable and its data. + @retval EFI_DEVICE_ERROR The variable could not be saved. + @retval EFI_UNSUPPORTED The specified Action is not supported by = the callback. + +**/ +STATIC +EFI_STATUS +EFIAPI +ShellBmHiiCallback ( + IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, + IN EFI_BROWSER_ACTION Action, + IN EFI_QUESTION_ID QuestionId, + IN UINT8 Type, + IN EFI_IFR_TYPE_VALUE *Value, + OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest + ) +{ + EFI_HANDLE ImageHandle; + EFI_STATUS Status; + + if (Action !=3D EFI_BROWSER_ACTION_CHANGED) { + return EFI_SUCCESS; + } + + Status =3D gBS->LoadImage (TRUE, gImageHandle, mShellFileDevicePath, NUL= L, 0, + &ImageHandle); + ASSERT_EFI_ERROR (Status); + + // + // Clear the screen before. + // + gST->ConOut->SetAttribute (gST->ConOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EF= I_BLACK)); + gST->ConOut->ClearScreen (gST->ConOut); + + Status =3D gBS->StartImage (ImageHandle, NULL, NULL); + ASSERT_EFI_ERROR (Status); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_WARN, "%a: UEFI Shell returned with status %r\n", + __FUNCTION__, Status)); + } + return EFI_SUCCESS; +} + +STATIC SHELL_BM_CALLBACK_DATA mShellBmPrivate =3D { + SHELL_BM_CALLBACK_DATA_SIGNATURE, + NULL, + NULL, + { + ShellBmExtractConfig, + ShellBmRouteConfig, + ShellBmHiiCallback + } +}; + +EFI_STATUS +EFIAPI +ShellBootManagerLibConstructor ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + + Status =3D GetFileDevicePathFromAnyFv (&gUefiShellFileGuid, EFI_SECTION_= PE32, + 0, &mShellFileDevicePath); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_WARN, "%a: failed to locate UEFI shell by GUID %g - %r\n= ", + __FUNCTION__, &gUefiShellFileGuid, Status)); + return EFI_SUCCESS; + } + + // + // Install Device Path Protocol and Config Access protocol to driver han= dle + // + mShellBmPrivate.DriverHandle =3D NULL; + Status =3D gBS->InstallMultipleProtocolInterfaces ( + &mShellBmPrivate.DriverHandle, + &gEfiDevicePathProtocolGuid, + &mShellBmHiiVendorDevicePath, + &gEfiHiiConfigAccessProtocolGuid, + &mShellBmPrivate.ConfigAccess, + NULL + ); + ASSERT_EFI_ERROR (Status); + + // + // Publish our HII data + // + mShellBmPrivate.HiiHandle =3D HiiAddPackages ( + &mFormsetGuid, + mShellBmPrivate.DriverHandle, + ShellBmVfrBin, + ShellBootManagerLibStrings, + NULL + ); + ASSERT (mShellBmPrivate.HiiHandle !=3D NULL); + + return EFI_SUCCESS; +} + +EFI_STATUS +EFIAPI +ShellBootManagerLibDestructor ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + + Status =3D gBS->UninstallMultipleProtocolInterfaces ( + mShellBmPrivate.DriverHandle, + &gEfiDevicePathProtocolGuid, + &mShellBmHiiVendorDevicePath, + &gEfiHiiConfigAccessProtocolGuid, + &mShellBmPrivate.ConfigAccess, + NULL + ); + ASSERT_EFI_ERROR (Status); + + HiiRemovePackages (mShellBmPrivate.HiiHandle); + + FreePool (mShellFileDevicePath); + return EFI_SUCCESS; +} diff --git a/ShellPkg/Library/ShellBootManagerLib/ShellBmStrings.uni b/Shel= lPkg/Library/ShellBootManagerLib/ShellBmStrings.uni new file mode 100644 index 000000000000..6e1962b6d0ec --- /dev/null +++ b/ShellPkg/Library/ShellBootManagerLib/ShellBmStrings.uni @@ -0,0 +1,17 @@ +///** @file +// +// Copyright (c) 2020, Arm Ltd. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// --*/ + +/=3D# +#langdef en-US "English" + +#string STR_SHELL_BM_BANNER #language en-US "UEFI Shell" +#string STR_SHELL_BM_HELP #language en-US "This selection wi= ll take you to the UEFI Shell" +#string STR_SHELL_BM_BANNER_FORM_TITLE #language en-US "UEFI Shell Menu" +#string STR_SHELL_BM_ENTER_SHELL #language en-US "Enter the UEFI Sh= ell" +#string STR_SHELL_BM_ENTER_SHELL_HELP #language en-US "Select this optio= n to enter the UEFI Shell" +#string STR_LAST_STRING #language en-US "" diff --git a/ShellPkg/Library/ShellBootManagerLib/ShellBmVfr.Vfr b/ShellPkg= /Library/ShellBootManagerLib/ShellBmVfr.Vfr new file mode 100644 index 000000000000..bdff98c7c07a --- /dev/null +++ b/ShellPkg/Library/ShellBootManagerLib/ShellBmVfr.Vfr @@ -0,0 +1,37 @@ +///** @file +// +// UEFI Shell Boot Manager formset. +// +// Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.
+// Copyright (c) 2020, Arm Ltd. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +//**/ + +#define FORMSET_GUID { 0x54335e64, 0x4ebc, 0x4f7d, 0x8a, 0x9a, 0x94, 0x10= , 0xf5, 0x53, 0xae, 0x9d } + +#define BOOT_MANAGER_FORM_ID 0x1000 + +formset + guid =3D FORMSET_GUID, + title =3D STRING_TOKEN(STR_SHELL_BM_BANNER), + help =3D STRING_TOKEN(STR_SHELL_BM_HELP), + classguid =3D gEfiIfrFrontPageGuid, + + form formid =3D BOOT_MANAGER_FORM_ID, + title =3D STRING_TOKEN(STR_SHELL_BM_BANNER); + + subtitle text =3D STRING_TOKEN(STR_LAST_STRING); + subtitle text =3D STRING_TOKEN(STR_SHELL_BM_BANNER_FORM_TITLE); + subtitle text =3D STRING_TOKEN(STR_LAST_STRING); + + text + help =3D STRING_TOKEN(STR_SHELL_BM_ENTER_SHELL_HELP), + text =3D STRING_TOKEN(STR_SHELL_BM_ENTER_SHELL), + flags =3D INTERACTIVE, + key =3D 0x1; + + endform; + +endformset; --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60291): https://edk2.groups.io/g/devel/message/60291 Mute This Topic: https://groups.io/mt/74481040/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-