On Nov 4, 2019, at 11:42 PM, Ashish Singhal <ashishsingha@nvidia.com> wrote:

Hi Andrew,
 
I have a use case where I install Load File protocol on a handle and want to expose that as a boot option through platform boot manager driver as I need it to have a custom description and custom option data along with it. This is the reason I submitted this patch so that someone can keep using edk2 uefi boot manager library and not expose a boot option if desired using this new protocol. In my use case, I use the load file protocol to be able to load kernel packaged in a proprietary manner for my platform and want to use custom optional data to provide kernel command line and custom description to identify the boot option.
 
Please suggest the best way for this and I would make necessary changes at my end.
 

Ashish,

Can you just have the BDS add the boot variable with the extra info you need? That way it would be handled in the BM lib as an existing nvram variable? You could also edit any existing variables that point to your Load File to make sure they follow the rules you care about? 

It is legal from an UEFI spec point of view for a platform to edit the nvram boot variables based on platform boot policy. 

Thanks,

Andrew Fish


Thanks
Ashish
 
From: afish@apple.com <afish@apple.com> 
Sent: Monday, November 4, 2019 10:22 PM
To: Ashish Singhal <ashishsingha@nvidia.com>
Cc: devel@edk2.groups.io; Ni, Ray <ray.ni@intel.com>; Laszlo Ersek <lersek@redhat.com>; Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>; Mike Kinney <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
 
Ashish,
 
Just to be clear on your definition of enumerate. In this case it means the Boot Manager lib that is just one of may implementations a platform could use to manage its boot options. 3rd party code, or an OS boot loader could try to boot your handle since by definition of the UEFI spec it is a bootable device. 
 
The simple answer is if you don't want your device to boot in normal cases, then don't add a Load File Protocol to your handle? What problem are you trying to solve?
 
gBS->LoadImage () supports an optional Source Buffer so you can just add a custom protocol and call your protocol to get a memory buffer and then just pass that buffer into gBS->LoadImage ()?
 
Thanks,
 
Andrew Fish


On Nov 4, 2019, at 11:06 PM, Ashish Singhal <ashishsingha@nvidia.com> wrote:
 
Hello Andrew,
 
On my platform, I am installing Load File protocol on a handle which I do not want to be auto enumerated by boot manager. In order to achieve this, I submitted this match on edk2 side and have installed gEdkiiSkipBmAutoEnumerateProtocolGuid on the same handle to achieve this on platform side. If there is a different way to achieve what I am trying to do, please let me know and I would be happy to adopt that.
 
Thanks
Ashish
 
From: afish@apple.com <afish@apple.com> 
Sent: Monday, November 4, 2019 10:01 PM
To: devel@edk2.groups.io; Ashish Singhal <ashishsingha@nvidia.com>
Cc: Ni, Ray <ray.ni@intel.com>; Laszlo Ersek <lersek@redhat.com>; Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>; Mike Kinney <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
 
On Nov 4, 2019, at 9:24 PM, Ashish Singhal <ashishsingha@nvidia.com> wrote:
 
Hi Ray,

I did not see any example with which one can tell BDS not to enumerate a boot option. Can you please point me to an example where a protocol (Block IO, Simple FS or Load File) does not get enumerated as a boot option?


 
Ashish,
 
Are you asking for example code, or reasons that you would not want to enumerate something as bootable? 
 
Most likely if you want to have a platform policy to add gEdkiiSkipBmAutoEnumerateProtocolGuid you are going to need an EFI Driver Model driver to add it to the handle based on some platform policy. This is the only way you can filter based on things getting connected at different times during boot. 
 
Thanks,
 
Andrew Fish
 



Thanks
Ashish

-----Original Message-----
From: Ni, Ray <
ray.ni@intel.com> 
Sent: Monday, November 4, 2019 7:42 PM
To: Laszlo Ersek <
lersek@redhat.com>; devel@edk2.groups.io; Ashish Singhal <ashishsingha@nvidia.com>; Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>
Cc: Kinney, Michael D <
michael.d.kinney@intel.com>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

+ Mike

With the UEFI driver model, if a device is not needed by booting, it can skip the connecting.
Then I do not see a need of the new protocol.

Thanks,
Ray



-----Original Message-----
From: Laszlo Ersek <lersek@redhat.com>
Sent: Thursday, October 31, 2019 6:15 PM
To: devel@edk2.groups.io; ashishsingha@nvidia.com; Wang, Jian J 
<jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Ni, Ray 
<ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM 
enumeration

+Ray, +Zhichao

(although, the actual patch seems to be missing from the posting)

Thanks
Laszlo

On 10/30/19 04:47, Ashish Singhal wrote:


Right now, any and every handle with a BlockIO or SimpleFileSystem 
or LoadFile protocol installed on the system is used to enumerate BM 
automatically. There may be cases where on a platform, some of these 
are not desirable to be enumerated automatically. This patch adds 
support for skipping this automatic enumeration if on the same 
handle, a new protocol defined as EdkiiSkipBmAutoEnumerate is found 
to be
installed.



Ashish Singhal (1):
 MdeModulePkg/UefiBootManagerLib: Support skipping BM enumeration

.../Include/Protocol/SkipBmAutoEnumerate.h         | 25 ++++++++++++++
MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c   | 40
+++++++++++++++++++++-


.../Library/UefiBootManagerLib/InternalBm.h        |  1 +
.../UefiBootManagerLib/UefiBootManagerLib.inf      |  1 +
MdeModulePkg/MdeModulePkg.dec                      |  3 ++
5 files changed, 69 insertions(+), 1 deletion(-)  create mode 
100644 MdeModulePkg/Include/Protocol/SkipBmAutoEnumerate.h



-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------