Re: [edk2-discuss] [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-12-18 Thread Ni, Ray
Sunny,
Thanks for your comments.

Thanks,
Ray

> -Original Message-
> From: Wang, Sunny (HPS SW) 
> Sent: Wednesday, December 18, 2019 11:54 AM
> To: disc...@edk2.groups.io; ashishsin...@nvidia.com; Jeff Brasen 
> ; Ni, Ray ;
> devel@edk2.groups.io; Laszlo Ersek ; af...@apple.com
> Cc: Wang, Jian J ; Wu, Hao A ; 
> Gao, Zhichao ;
> Kinney, Michael D ; Wang, Sunny (HPS SW) 
> 
> Subject: RE: [edk2-discuss] [edk2-devel] [PATCH] Support skipping automatic 
> BM enumeration
> 
> Sorry for the delay. Somehow I didn't catch the follow-up email. Thanks for 
> checking my comments, Ray and Ashish.
> Yeah, agree. 2.b is better. I will review the code change.
> 
> Regards,
> Sunny Wang
> 
> -Original Message-
> From: disc...@edk2.groups.io [mailto:disc...@edk2.groups.io] On Behalf Of 
> Ashish Singhal
> Sent: Wednesday, December 18, 2019 4:16 AM
> To: Jeff Brasen ; Ni, Ray ; 
> devel@edk2.groups.io; Laszlo Ersek
> ; af...@apple.com; disc...@edk2.groups.io
> Cc: Wang, Jian J ; Wu, Hao A ; 
> Gao, Zhichao ;
> Kinney, Michael D 
> Subject: Re: [edk2-discuss] [edk2-devel] [PATCH] Support skipping automatic 
> BM enumeration
> 
> I have submitted a patch based on 2.b as suggested by Ray. I am open to 
> making changes in the structure of the protocol
> functions as well as the verbal description. Please let me know what you all 
> think about it.
> 
> Thanks
> Ashish
> 
> From: Jeff Brasen 
> Sent: Thursday, December 12, 2019 10:52 AM
> To: Ni, Ray ; devel@edk2.groups.io ; 
> Laszlo Ersek ;
> af...@apple.com ; disc...@edk2.groups.io 
> 
> Cc: Ashish Singhal ; Wang, Jian J 
> ; Wu, Hao A ;
> Gao, Zhichao ; Kinney, Michael D 
> 
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
> 
> Thanks for the summary Ray, for the problem summary only thing I would add 
> would be that platform also wants to
> create/modify boot options when full enumeration is requested as well.
> 
> For solutions I prefer option 2 as we don't have to put the same logic 
> everywhere of how to modify the default
> enumerated list. And if we do that 2b makes more sense as then we don't have 
> to modify all of the existing platforms.
> 
> I see two things the platform would need to do.
> 
>   1.  Update list created in BmEnumerateBootOptions
>   2.  Delete any no longer valid platform created boot options
> 
> 
> Thanks,
> 
> Jeff
> 
> 
> From: Ni, Ray 
> Sent: Wednesday, December 11, 2019 7:00 AM
> To: Jeff Brasen ; devel@edk2.groups.io 
> ; Laszlo Ersek ;
> af...@apple.com ; disc...@edk2.groups.io 
> 
> Cc: Ashish Singhal ; Wang, Jian J 
> ; Wu, Hao A ;
> Gao, Zhichao ; Kinney, Michael D 
> 
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
> 
> External email: Use caution opening links or attachments
> 
> 
> Jeff,
> 
> Tom from AMD booked the meeting for SEV discussion months ago. I am afraid 
> there is no time for this discussion.
> 
> Let's try to resolve it in mails.
> 
> 
> 
> Firstly, let me rephase the problem and your proposed solutions here 
> (subjective + verb + objective). Sunny's input is also
> included. Hope Mike K and others can provide inputs.
> 
> Personally, I agree with 2.b. It helps us to gradually migrate the 
> PlatformBootManagerLib to PlatformBootManager
> protocol. Protocol with Revision field helps to reduce the impact to old 
> platforms with new APIs added.
> 
> 
> 
> **Problem:
> 
>Platform requires certain BlockIo/SimpleFileSystem/LoadFile 
> instances don't cause Boot created. It's a need
> of platform customization.
> 
> 
> 
> **Details:
> 
>Boot for BlockIo/SimpleFileSystem/LoadFile are created by 
> API EfiBootMangerRefreshAllBootOptions(). There
> are 2 places that call this API:
> 
>   1.  Platform Boot Manager calls the API (usually in the full configuration 
> boot path)
>   2.  UiApp calls the API when entering "Boot Manager" page and "Boot 
> Maintenance Manager" page.
> 
> 
> 
> Platform can change Platform Boot Manager to remove the unneeded Boot in 
> case #1.
> 
> But platform has no way to remove the Boot created in case #2 .
> 
> 
> 
> **Potential solutions:
> 
>   1.  Update UiApp
>  *   Define a new PCD and a new event group.
> 
> If PCD is TRUE, UiApp signals the event. Event callback creates the Boot. 
> Otherwise,
> EfiBootManagerRefreshAllBootOptions() is called.
> 
>  *   Add a new PlatformBootManagerLib API (implemented by platform).
> 
> UiApp

Re: [edk2-discuss] [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-12-17 Thread Wang, Sunny (HPS SW)
Sorry for the delay. Somehow I didn't catch the follow-up email. Thanks for 
checking my comments, Ray and Ashish. 
Yeah, agree. 2.b is better. I will review the code change. 

Regards,
Sunny Wang

-Original Message-
From: disc...@edk2.groups.io [mailto:disc...@edk2.groups.io] On Behalf Of 
Ashish Singhal
Sent: Wednesday, December 18, 2019 4:16 AM
To: Jeff Brasen ; Ni, Ray ; 
devel@edk2.groups.io; Laszlo Ersek ; af...@apple.com; 
disc...@edk2.groups.io
Cc: Wang, Jian J ; Wu, Hao A ; Gao, 
Zhichao ; Kinney, Michael D 
Subject: Re: [edk2-discuss] [edk2-devel] [PATCH] Support skipping automatic BM 
enumeration

I have submitted a patch based on 2.b as suggested by Ray. I am open to making 
changes in the structure of the protocol functions as well as the verbal 
description. Please let me know what you all think about it.

Thanks
Ashish

From: Jeff Brasen 
Sent: Thursday, December 12, 2019 10:52 AM
To: Ni, Ray ; devel@edk2.groups.io ; 
Laszlo Ersek ; af...@apple.com ; 
disc...@edk2.groups.io 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Thanks for the summary Ray, for the problem summary only thing I would add 
would be that platform also wants to create/modify boot options when full 
enumeration is requested as well.

For solutions I prefer option 2 as we don't have to put the same logic 
everywhere of how to modify the default enumerated list. And if we do that 2b 
makes more sense as then we don't have to modify all of the existing platforms.

I see two things the platform would need to do.

  1.  Update list created in BmEnumerateBootOptions
  2.  Delete any no longer valid platform created boot options


Thanks,

Jeff


From: Ni, Ray 
Sent: Wednesday, December 11, 2019 7:00 AM
To: Jeff Brasen ; devel@edk2.groups.io 
; Laszlo Ersek ; af...@apple.com 
; disc...@edk2.groups.io 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

External email: Use caution opening links or attachments


Jeff,

Tom from AMD booked the meeting for SEV discussion months ago. I am afraid 
there is no time for this discussion.

Let's try to resolve it in mails.



Firstly, let me rephase the problem and your proposed solutions here 
(subjective + verb + objective). Sunny's input is also included. Hope Mike K 
and others can provide inputs.

Personally, I agree with 2.b. It helps us to gradually migrate the 
PlatformBootManagerLib to PlatformBootManager protocol. Protocol with Revision 
field helps to reduce the impact to old platforms with new APIs added.



**Problem:

   Platform requires certain BlockIo/SimpleFileSystem/LoadFile 
instances don't cause Boot created. It's a need of platform customization.



**Details:

   Boot for BlockIo/SimpleFileSystem/LoadFile are created by 
API EfiBootMangerRefreshAllBootOptions(). There are 2 places that call this API:

  1.  Platform Boot Manager calls the API (usually in the full configuration 
boot path)
  2.  UiApp calls the API when entering "Boot Manager" page and "Boot 
Maintenance Manager" page.



Platform can change Platform Boot Manager to remove the unneeded Boot in 
case #1.

But platform has no way to remove the Boot created in case #2 .



**Potential solutions:

  1.  Update UiApp
 *   Define a new PCD and a new event group.

If PCD is TRUE, UiApp signals the event. Event callback creates the Boot. 
Otherwise, EfiBootManagerRefreshAllBootOptions() is called.

 *   Add a new PlatformBootManagerLib API (implemented by platform).

UiApp calls the new API instead of EfiBootManagerRefreshAllBootOption. (need to 
coordinate rollout with updates to all platforms).

 *   Add a new protocol (implemented by platform).

UiApp calls the new protocol if it exists otherwise calls 
EfiBootManagerRefreshAllBootOption.



  1.  Update EfiBootManagerRefreshAllBootOptions()
 *   Add a new library class (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new library class.

 *   Add a new PlatformBootManager protocol (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new protocol if it exists.



Thanks,

Ray



From: Jeff Brasen 
Sent: Wednesday, December 11, 2019 4:46 AM
To: Ni, Ray ; devel@edk2.groups.io; Laszlo Ersek 
; af...@apple.com; disc...@edk2.groups.io
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Can we discuss this at the design meeting this week (12/12)?



Thanks,

Jeff



From: Jeff Brasen
Sent: Thursday, November 14, 2019 10:04 AM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io&l

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-12-17 Thread Ashish Singhal
I have submitted a patch based on 2.b as suggested by Ray. I am open to making 
changes in the structure of the protocol functions as well as the verbal 
description. Please let me know what you all think about it.

Thanks
Ashish

From: Jeff Brasen 
Sent: Thursday, December 12, 2019 10:52 AM
To: Ni, Ray ; devel@edk2.groups.io ; 
Laszlo Ersek ; af...@apple.com ; 
disc...@edk2.groups.io 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Thanks for the summary Ray, for the problem summary only thing I would add 
would be that platform also wants to create/modify boot options when full 
enumeration is requested as well.

For solutions I prefer option 2 as we don't have to put the same logic 
everywhere of how to modify the default enumerated list. And if we do that 2b 
makes more sense as then we don't have to modify all of the existing platforms.

I see two things the platform would need to do.

  1.  Update list created in BmEnumerateBootOptions
  2.  Delete any no longer valid platform created boot options


Thanks,

Jeff


From: Ni, Ray 
Sent: Wednesday, December 11, 2019 7:00 AM
To: Jeff Brasen ; devel@edk2.groups.io 
; Laszlo Ersek ; af...@apple.com 
; disc...@edk2.groups.io 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

External email: Use caution opening links or attachments


Jeff,

Tom from AMD booked the meeting for SEV discussion months ago. I am afraid 
there is no time for this discussion.

Let’s try to resolve it in mails.



Firstly, let me rephase the problem and your proposed solutions here 
(subjective + verb + objective). Sunny’s input is also included. Hope Mike K 
and others can provide inputs.

Personally, I agree with 2.b. It helps us to gradually migrate the 
PlatformBootManagerLib to PlatformBootManager protocol. Protocol with Revision 
field helps to reduce the impact to old platforms with new APIs added.



**Problem:

   Platform requires certain BlockIo/SimpleFileSystem/LoadFile 
instances don’t cause Boot created. It’s a need of platform customization.



**Details:

   Boot for BlockIo/SimpleFileSystem/LoadFile are created by 
API EfiBootMangerRefreshAllBootOptions(). There are 2 places that call this API:

  1.  Platform Boot Manager calls the API (usually in the full configuration 
boot path)
  2.  UiApp calls the API when entering “Boot Manager” page and “Boot 
Maintenance Manager” page.



Platform can change Platform Boot Manager to remove the unneeded Boot in 
case #1.

But platform has no way to remove the Boot created in case #2 .



**Potential solutions:

  1.  Update UiApp
 *   Define a new PCD and a new event group.

If PCD is TRUE, UiApp signals the event. Event callback creates the Boot. 
Otherwise, EfiBootManagerRefreshAllBootOptions() is called.

 *   Add a new PlatformBootManagerLib API (implemented by platform).

UiApp calls the new API instead of EfiBootManagerRefreshAllBootOption. (need to 
coordinate rollout with updates to all platforms).

 *   Add a new protocol (implemented by platform).

UiApp calls the new protocol if it exists otherwise calls 
EfiBootManagerRefreshAllBootOption.



  1.  Update EfiBootManagerRefreshAllBootOptions()
 *   Add a new library class (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new library class.

 *   Add a new PlatformBootManager protocol (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new protocol if it exists.



Thanks,

Ray



From: Jeff Brasen 
Sent: Wednesday, December 11, 2019 4:46 AM
To: Ni, Ray ; devel@edk2.groups.io; Laszlo Ersek 
; af...@apple.com; disc...@edk2.groups.io
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Can we discuss this at the design meeting this week (12/12)?



Thanks,

Jeff



From: Jeff Brasen
Sent: Thursday, November 14, 2019 10:04 AM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Yes, I think that would be good.



Summarizing everything in this thread



Problem: Platform need

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-12-12 Thread Jeff Brasen
Thanks for the summary Ray, for the problem summary only thing I would add 
would be that platform also wants to create/modify boot options when full 
enumeration is requested as well.

For solutions I prefer option 2 as we don't have to put the same logic 
everywhere of how to modify the default enumerated list. And if we do that 2b 
makes more sense as then we don't have to modify all of the existing platforms.

I see two things the platform would need to do.

  1.  Update list created in BmEnumerateBootOptions
  2.  Delete any no longer valid platform created boot options


Thanks,

Jeff


From: Ni, Ray 
Sent: Wednesday, December 11, 2019 7:00 AM
To: Jeff Brasen ; devel@edk2.groups.io 
; Laszlo Ersek ; af...@apple.com 
; disc...@edk2.groups.io 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

External email: Use caution opening links or attachments


Jeff,

Tom from AMD booked the meeting for SEV discussion months ago. I am afraid 
there is no time for this discussion.

Let’s try to resolve it in mails.



Firstly, let me rephase the problem and your proposed solutions here 
(subjective + verb + objective). Sunny’s input is also included. Hope Mike K 
and others can provide inputs.

Personally, I agree with 2.b. It helps us to gradually migrate the 
PlatformBootManagerLib to PlatformBootManager protocol. Protocol with Revision 
field helps to reduce the impact to old platforms with new APIs added.



**Problem:

   Platform requires certain BlockIo/SimpleFileSystem/LoadFile 
instances don’t cause Boot created. It’s a need of platform customization.



**Details:

   Boot for BlockIo/SimpleFileSystem/LoadFile are created by 
API EfiBootMangerRefreshAllBootOptions(). There are 2 places that call this API:

  1.  Platform Boot Manager calls the API (usually in the full configuration 
boot path)
  2.  UiApp calls the API when entering “Boot Manager” page and “Boot 
Maintenance Manager” page.



Platform can change Platform Boot Manager to remove the unneeded Boot in 
case #1.

But platform has no way to remove the Boot created in case #2 .



**Potential solutions:

  1.  Update UiApp
 *   Define a new PCD and a new event group.

If PCD is TRUE, UiApp signals the event. Event callback creates the Boot. 
Otherwise, EfiBootManagerRefreshAllBootOptions() is called.

 *   Add a new PlatformBootManagerLib API (implemented by platform).

UiApp calls the new API instead of EfiBootManagerRefreshAllBootOption. (need to 
coordinate rollout with updates to all platforms).

 *   Add a new protocol (implemented by platform).

UiApp calls the new protocol if it exists otherwise calls 
EfiBootManagerRefreshAllBootOption.



  1.  Update EfiBootManagerRefreshAllBootOptions()
 *   Add a new library class (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new library class.

 *   Add a new PlatformBootManager protocol (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new protocol if it exists.



Thanks,

Ray



From: Jeff Brasen 
Sent: Wednesday, December 11, 2019 4:46 AM
To: Ni, Ray ; devel@edk2.groups.io; Laszlo Ersek 
; af...@apple.com; disc...@edk2.groups.io
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Can we discuss this at the design meeting this week (12/12)?



Thanks,

Jeff



From: Jeff Brasen
Sent: Thursday, November 14, 2019 10:04 AM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Yes, I think that would be good.



Summarizing everything in this thread



Problem: Platform needs to customize the boot options, this can be done for 
normal boot but the UiApp calls EfiBootManagerRefreshAllBootOption in a couple 
places.



Potential solutions:

1 – Define new PCD and event group if PCD is set true then signal event instead 
of calling EfiBootManagerRefreshAllBootOption in UiApp

2 – Add new function to boot manager library and replace call to 
EfiBootManagerRefreshAllBootOption in UiApp (need to coordinate rollout with 
updates to all platform.

3 – Add new protocol with new function, if supported call this otherwise call 
EfiBootManagerRefreshAllBootOp

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-12-11 Thread Ni, Ray
Jeff,

Tom from AMD booked the meeting for SEV discussion months ago. I am afraid 
there is no time for this discussion.

Let's try to resolve it in mails.



Firstly, let me rephase the problem and your proposed solutions here 
(subjective + verb + objective). Sunny's input is also included. Hope Mike K 
and others can provide inputs.

Personally, I agree with 2.b. It helps us to gradually migrate the 
PlatformBootManagerLib to PlatformBootManager protocol. Protocol with Revision 
field helps to reduce the impact to old platforms with new APIs added.



**Problem:

   Platform requires certain BlockIo/SimpleFileSystem/LoadFile 
instances don't cause Boot created. It's a need of platform customization.



**Details:

   Boot for BlockIo/SimpleFileSystem/LoadFile are created by 
API EfiBootMangerRefreshAllBootOptions(). There are 2 places that call this API:

  1.  Platform Boot Manager calls the API (usually in the full configuration 
boot path)
  2.  UiApp calls the API when entering "Boot Manager" page and "Boot 
Maintenance Manager" page.



Platform can change Platform Boot Manager to remove the unneeded Boot in 
case #1.

But platform has no way to remove the Boot created in case #2 .



**Potential solutions:

  1.  Update UiApp
 *   Define a new PCD and a new event group.

If PCD is TRUE, UiApp signals the event. Event callback creates the Boot. 
Otherwise, EfiBootManagerRefreshAllBootOptions() is called.

 *   Add a new PlatformBootManagerLib API (implemented by platform).

UiApp calls the new API instead of EfiBootManagerRefreshAllBootOption. (need to 
coordinate rollout with updates to all platforms).

 *   Add a new protocol (implemented by platform).

UiApp calls the new protocol if it exists otherwise calls 
EfiBootManagerRefreshAllBootOption.



  1.  Update EfiBootManagerRefreshAllBootOptions()
 *   Add a new library class (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new library class.

 *   Add a new PlatformBootManager protocol (implemented by platform).

EfiBootManagerRefreshAllBootOption() calls the new protocol if it exists.

Thanks,
Ray

From: Jeff Brasen 
Sent: Wednesday, December 11, 2019 4:46 AM
To: Ni, Ray ; devel@edk2.groups.io; Laszlo Ersek 
; af...@apple.com; disc...@edk2.groups.io
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Can we discuss this at the design meeting this week (12/12)?


Thanks,

Jeff


From: Jeff Brasen
Sent: Thursday, November 14, 2019 10:04 AM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Yes, I think that would be good.



Summarizing everything in this thread



Problem: Platform needs to customize the boot options, this can be done for 
normal boot but the UiApp calls EfiBootManagerRefreshAllBootOption in a couple 
places.



Potential solutions:

1 - Define new PCD and event group if PCD is set true then signal event instead 
of calling EfiBootManagerRefreshAllBootOption in UiApp

2 - Add new function to boot manager library and replace call to 
EfiBootManagerRefreshAllBootOption in UiApp (need to coordinate rollout with 
updates to all platform.

3 - Add new protocol with new function, if supported call this otherwise call 
EfiBootManagerRefreshAllBootOption as is done now

4 - For 2/3 use  generic function so we don't need new APIs for future expansion

5 - Update EfiBootManagerRefreshAllBootOption to call platform specific 
function.



Thanks,
Jeff





From: Ni, Ray mailto:ray...@intel.com>>
Sent: Wednesday, November 13, 2019 7:09 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao....@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Jeff,

I think it's a good topic that we could discuss in the open design meeting.

Are you ok to present the problem you have and discuss the potenti

Re: [edk2-discuss] [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-12-11 Thread Wang, Sunny (HPS SW)
Hi all, 

Since I can't attend the design meeting (EMEA), I would like to add some use 
cases and a suggestion for your guys' reference before this topic being 
discussed:

We had similar needs (use cases) as Ashish like the following, so making this 
code change would be definitely good for system vendors like us. 
- Disabling a specific boot option like a PXE boot option for a 
specific NIC port.
- Hiding a partition that is used for special purpose rather than 
booting.   

If we don't have a strong reason to prevent creating a platform hook function 
(solution 5), I will prefer to use it because it is the simplest solution and 
can be easily extended and maintained. Also, solution 5 is our current 
implementation. We can even contribute our implementation to EDK2 if you guys 
need it. Moreover, if we finally choose solution 5, I will prefer to create a 
new platform library instead of adding a new function into the 
PlatformBootManagerLib, and let this new platform library only be called by 
UefiBootManagerLib. This would avoid a potential circular dependency problem.

For solutions 1, 2, 3, and 4, if I understand them correctly, they all require 
making changes in the EfiBootManagerRefreshAllBootOption callers. UiApp may not 
be the only application to call EfiBootManagerRefreshAllBootOption, so this may 
cause additional maintenance effort. However, if we still need to choose a 
solution other than solution 5, can we make the change directly in 
EfiBootManagerRefreshAllBootOption instead of UiApp? 

By the way, if we still need to discuss this further at a meeting, I will be at 
the other design meeting (APAC).

Regards,
Sunny Wang

-Original Message-
From: disc...@edk2.groups.io [mailto:disc...@edk2.groups.io] On Behalf Of Jeff 
Brasen
Sent: Wednesday, December 11, 2019 4:46 AM
To: Ni, Ray ; devel@edk2.groups.io; Laszlo Ersek 
; af...@apple.com; disc...@edk2.groups.io
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-discuss] [edk2-devel] [PATCH] Support skipping automatic BM 
enumeration

Can we discuss this at the design meeting this week (12/12)?


Thanks,

Jeff


From: Jeff Brasen
Sent: Thursday, November 14, 2019 10:04 AM
To: Ni, Ray ; devel@edk2.groups.io ; 
Laszlo Ersek ; af...@apple.com 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Yes, I think that would be good.



Summarizing everything in this thread



Problem: Platform needs to customize the boot options, this can be done for 
normal boot but the UiApp calls EfiBootManagerRefreshAllBootOption in a couple 
places.



Potential solutions:

1 - Define new PCD and event group if PCD is set true then signal event instead 
of calling EfiBootManagerRefreshAllBootOption in UiApp

2 - Add new function to boot manager library and replace call to 
EfiBootManagerRefreshAllBootOption in UiApp (need to coordinate rollout with 
updates to all platform.

3 - Add new protocol with new function, if supported call this otherwise call 
EfiBootManagerRefreshAllBootOption as is done now

4 - For 2/3 use  generic function so we don't need new APIs for future expansion

5 - Update EfiBootManagerRefreshAllBootOption to call platform specific 
function.



Thanks,
Jeff





From: Ni, Ray 
Sent: Wednesday, November 13, 2019 7:09 PM
To: devel@edk2.groups.io; Jeff Brasen ; Laszlo Ersek 
; af...@apple.com
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Jeff,

I think it's a good topic that we could discuss in the open design meeting.

Are you ok to present the problem you have and discuss the potential solutions 
in that meeting?

https://github.com/tianocore/tianocore.github.io/wiki/Design-Meeting



Thanks,

Ray



From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
Sent: Thursday, November 14, 2019 2:43 AM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Thinking about this more I think we could do this with a PCD and a new group 
event without having to define any new function interfaces.



We could change UiApp and BootManagerMenuApp (and any others that are relevant) 
from



EfiBootManagerRefreshAllBootOption ();



to



if (FeaturePcdGet (PcdEventBasedRefres

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-12-10 Thread Jeff Brasen
Can we discuss this at the design meeting this week (12/12)?


Thanks,

Jeff


From: Jeff Brasen
Sent: Thursday, November 14, 2019 10:04 AM
To: Ni, Ray ; devel@edk2.groups.io ; 
Laszlo Ersek ; af...@apple.com 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Yes, I think that would be good.



Summarizing everything in this thread



Problem: Platform needs to customize the boot options, this can be done for 
normal boot but the UiApp calls EfiBootManagerRefreshAllBootOption in a couple 
places.



Potential solutions:

1 – Define new PCD and event group if PCD is set true then signal event instead 
of calling EfiBootManagerRefreshAllBootOption in UiApp

2 – Add new function to boot manager library and replace call to 
EfiBootManagerRefreshAllBootOption in UiApp (need to coordinate rollout with 
updates to all platform.

3 – Add new protocol with new function, if supported call this otherwise call 
EfiBootManagerRefreshAllBootOption as is done now

4 – For 2/3 use  generic function so we don’t need new APIs for future expansion

5 – Update EfiBootManagerRefreshAllBootOption to call platform specific 
function.



Thanks,
Jeff





From: Ni, Ray 
Sent: Wednesday, November 13, 2019 7:09 PM
To: devel@edk2.groups.io; Jeff Brasen ; Laszlo Ersek 
; af...@apple.com
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Jeff,

I think it’s a good topic that we could discuss in the open design meeting.

Are you ok to present the problem you have and discuss the potential solutions 
in that meeting?

https://github.com/tianocore/tianocore.github.io/wiki/Design-Meeting



Thanks,

Ray



From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
Sent: Thursday, November 14, 2019 2:43 AM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Thinking about this more I think we could do this with a PCD and a new group 
event without having to define any new function interfaces.



We could change UiApp and BootManagerMenuApp (and any others that are relevant) 
from



EfiBootManagerRefreshAllBootOption ();



to



if (FeaturePcdGet (PcdEventBasedRefreshAllBootOptionSupport) {

  EFI_EVENT Event;

  gBS->CreateEventEx ( 0, 0, NULL, NULL, ,  );

  gBS->SignalEvent (Event);

  gBS->CloseEvent (Event);

} else {

  EfiBootManagerRefreshAllBootOption ();

}



Then a platform that wants to do this on its own would just set this pcd and 
create a group event and do what it needs to do there.



Thanks,

Jeff



From: Jeff Brasen mailto:jbra...@nvidia.com>>
Sent: Monday, November 11, 2019 5:00 PM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao....@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



I am not sure a PCD would work (unless I am missing something) We do want to do 
a connect all and re-enumerate in UiApp but we need the platform code to be 
involved in that process.



Thanks,

Jeff



From: Ni, Ray mailto:ray...@intel.com>>
Sent: Monday, November 11, 2019 4:58 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Jeff,

If adding a PCD to control UiApp can meet the real 

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-14 Thread Jeff Brasen
Yes, I think that would be good.

Summarizing everything in this thread

Problem: Platform needs to customize the boot options, this can be done for 
normal boot but the UiApp calls EfiBootManagerRefreshAllBootOption in a couple 
places.

Potential solutions:
1 - Define new PCD and event group if PCD is set true then signal event instead 
of calling EfiBootManagerRefreshAllBootOption in UiApp
2 - Add new function to boot manager library and replace call to 
EfiBootManagerRefreshAllBootOption in UiApp (need to coordinate rollout with 
updates to all platform.
3 - Add new protocol with new function, if supported call this otherwise call 
EfiBootManagerRefreshAllBootOption as is done now
4 - For 2/3 use  generic function so we don't need new APIs for future expansion
5 - Update EfiBootManagerRefreshAllBootOption to call platform specific 
function.

Thanks,
Jeff


From: Ni, Ray 
Sent: Wednesday, November 13, 2019 7:09 PM
To: devel@edk2.groups.io; Jeff Brasen ; Laszlo Ersek 
; af...@apple.com
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Jeff,
I think it's a good topic that we could discuss in the open design meeting.
Are you ok to present the problem you have and discuss the potential solutions 
in that meeting?
https://github.com/tianocore/tianocore.github.io/wiki/Design-Meeting

Thanks,
Ray

From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
Sent: Thursday, November 14, 2019 2:43 AM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Thinking about this more I think we could do this with a PCD and a new group 
event without having to define any new function interfaces.

We could change UiApp and BootManagerMenuApp (and any others that are relevant) 
from

EfiBootManagerRefreshAllBootOption ();

to

if (FeaturePcdGet (PcdEventBasedRefreshAllBootOptionSupport) {
  EFI_EVENT Event;
  gBS->CreateEventEx ( 0, 0, NULL, NULL, ,  );
  gBS->SignalEvent (Event);
  gBS->CloseEvent (Event);
} else {
  EfiBootManagerRefreshAllBootOption ();
}

Then a platform that wants to do this on its own would just set this pcd and 
create a group event and do what it needs to do there.


Thanks,

Jeff


From: Jeff Brasen mailto:jbra...@nvidia.com>>
Sent: Monday, November 11, 2019 5:00 PM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao....@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

I am not sure a PCD would work (unless I am missing something) We do want to do 
a connect all and re-enumerate in UiApp but we need the platform code to be 
involved in that process.


Thanks,

Jeff


From: Ni, Ray mailto:ray...@intel.com>>
Sent: Monday, November 11, 2019 4:58 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Jeff,

If adding a PCD to control UiApp can meet the real needs, I prefer to do in 
that way instead of adding new APIs to PlatformBootManagerLib.



Thanks,

Ray



From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
Sent: Tuesday, November 12, 2019 6:58 AM
To: Laszlo Ersek mailto:ler...@redhat.com>>; Ni, Ray 
mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
af...@apple.com<mailto:af

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-13 Thread Ni, Ray
Jeff,
I think it's a good topic that we could discuss in the open design meeting.
Are you ok to present the problem you have and discuss the potential solutions 
in that meeting?
https://github.com/tianocore/tianocore.github.io/wiki/Design-Meeting

Thanks,
Ray

From: devel@edk2.groups.io  On Behalf Of Jeff Brasen
Sent: Thursday, November 14, 2019 2:43 AM
To: Ni, Ray ; devel@edk2.groups.io; Laszlo Ersek 
; af...@apple.com
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Thinking about this more I think we could do this with a PCD and a new group 
event without having to define any new function interfaces.

We could change UiApp and BootManagerMenuApp (and any others that are relevant) 
from

EfiBootManagerRefreshAllBootOption ();

to

if (FeaturePcdGet (PcdEventBasedRefreshAllBootOptionSupport) {
  EFI_EVENT Event;
  gBS->CreateEventEx ( 0, 0, NULL, NULL, ,  );
  gBS->SignalEvent (Event);
  gBS->CloseEvent (Event);
} else {
  EfiBootManagerRefreshAllBootOption ();
}

Then a platform that wants to do this on its own would just set this pcd and 
create a group event and do what it needs to do there.


Thanks,

Jeff


From: Jeff Brasen mailto:jbra...@nvidia.com>>
Sent: Monday, November 11, 2019 5:00 PM
To: Ni, Ray mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

I am not sure a PCD would work (unless I am missing something) We do want to do 
a connect all and re-enumerate in UiApp but we need the platform code to be 
involved in that process.


Thanks,

Jeff


From: Ni, Ray mailto:ray...@intel.com>>
Sent: Monday, November 11, 2019 4:58 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Jeff,

If adding a PCD to control UiApp can meet the real needs, I prefer to do in 
that way instead of adding new APIs to PlatformBootManagerLib.



Thanks,

Ray



From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
Sent: Tuesday, November 12, 2019 6:58 AM
To: Laszlo Ersek mailto:ler...@redhat.com>>; Ni, Ray 
mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
af...@apple.com<mailto:af...@apple.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



If we are concerned about deploying this and breaking builds we could do this 
via a new protocol instead. In that case though we would leave the old default 
behavior in the code to handle platforms that didn't implement the new 
protocol, so this might not be the cleanest way to deploy this.



We could also look at adding a generic platform boot hook function (either as a 
library function or protocol) if we wanted to limit the number of disruption on 
new customization hooks. Something like



EFI_STATUS PlatformBootNotify (CONST EFI_GUID *NotificationType, VOID 
*ContextData OPTIONAL)



Where Notification type describes where we are that we want platform to 
potentially handle and ContextData is per type caller allocated data that 
provides additional in/out data. This has the same issue of leaving the current 
default behavior in place for unsupported types as well as being a less than 
specific function to describe.



Thanks,

Jeff





From: Laszlo Ersek mailto:ler...@redhat.com>>
Sent: Friday, November 8, 2019 9:37 AM
To: Jeff Brasen mailto:jbra...@nvidia.com>>; Ni, Ray 
mailto:ray...@intel.com>>; 
devel@e

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-13 Thread Jeff Brasen
Thinking about this more I think we could do this with a PCD and a new group 
event without having to define any new function interfaces.

We could change UiApp and BootManagerMenuApp (and any others that are relevant) 
from

EfiBootManagerRefreshAllBootOption ();

to

if (FeaturePcdGet (PcdEventBasedRefreshAllBootOptionSupport) {
  EFI_EVENT Event;
  gBS->CreateEventEx ( 0, 0, NULL, NULL, ,  );
  gBS->SignalEvent (Event);
  gBS->CloseEvent (Event);
} else {
  EfiBootManagerRefreshAllBootOption ();
}


Then a platform that wants to do this on its own would just set this pcd and 
create a group event and do what it needs to do there.


Thanks,

Jeff


From: Jeff Brasen 
Sent: Monday, November 11, 2019 5:00 PM
To: Ni, Ray ; devel@edk2.groups.io ; 
Laszlo Ersek ; af...@apple.com 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

I am not sure a PCD would work (unless I am missing something) We do want to do 
a connect all and re-enumerate in UiApp but we need the platform code to be 
involved in that process.


Thanks,

Jeff


From: Ni, Ray 
Sent: Monday, November 11, 2019 4:58 PM
To: devel@edk2.groups.io ; Jeff Brasen 
; Laszlo Ersek ; af...@apple.com 

Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Jeff,

If adding a PCD to control UiApp can meet the real needs, I prefer to do in 
that way instead of adding new APIs to PlatformBootManagerLib.



Thanks,

Ray



From: devel@edk2.groups.io  On Behalf Of Jeff Brasen
Sent: Tuesday, November 12, 2019 6:58 AM
To: Laszlo Ersek ; Ni, Ray ; 
devel@edk2.groups.io; af...@apple.com
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



If we are concerned about deploying this and breaking builds we could do this 
via a new protocol instead. In that case though we would leave the old default 
behavior in the code to handle platforms that didn't implement the new 
protocol, so this might not be the cleanest way to deploy this.



We could also look at adding a generic platform boot hook function (either as a 
library function or protocol) if we wanted to limit the number of disruption on 
new customization hooks. Something like



EFI_STATUS PlatformBootNotify (CONST EFI_GUID *NotificationType, VOID 
*ContextData OPTIONAL)



Where Notification type describes where we are that we want platform to 
potentially handle and ContextData is per type caller allocated data that 
provides additional in/out data. This has the same issue of leaving the current 
default behavior in place for unsupported types as well as being a less than 
specific function to describe.



Thanks,

Jeff





From: Laszlo Ersek mailto:ler...@redhat.com>>
Sent: Friday, November 8, 2019 9:37 AM
To: Jeff Brasen mailto:jbra...@nvidia.com>>; Ni, Ray 
mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



On 11/07/19 18:46, Jeff Brasen wrote:
> Fixing UiApp seems reasonable, I do think we would want a hook to the 
> platform library in here as the enumeration that occurs in the UiApp is 
> intended to do a full enumeration of the system and there may be platform 
> specifics to how that occurs.

Fully agreed -- entering UiApp should expose everything bootable in the
system, unless (perhaps) PlatformBootManagerLib specifically thinks
otherwise.

Of course, then we arrive (again) at the problem that a call in
UefiBootManagerLib, to a *new* PlatformBootManagerLib API, will break
tens of out-of-tree platforms. :)

I think that can be prevented, as follows; but it will take quite some time:

- introduce the new function declaration in "PlatformBootManagerLib.h",
- modify all platforms (in tree and out of tree) to implement (define)
the new function,
- call the new function from UefiBootManagerLib

For some history / background on this kind of problem, I suggest reading
through:

  https://bugzilla.tianocore.org/show_bug.cgi?id=982

Thanks,
Laszlo

> From: Ni, Ray mailto:ray...@intel.com>>
> Sent: Thursday, November 7, 2019 12:21 AM
> To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
> mailto:jbra...@nvidia.com&

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-11 Thread Jeff Brasen
I am not sure a PCD would work (unless I am missing something) We do want to do 
a connect all and re-enumerate in UiApp but we need the platform code to be 
involved in that process.


Thanks,

Jeff


From: Ni, Ray 
Sent: Monday, November 11, 2019 4:58 PM
To: devel@edk2.groups.io ; Jeff Brasen 
; Laszlo Ersek ; af...@apple.com 

Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Jeff,

If adding a PCD to control UiApp can meet the real needs, I prefer to do in 
that way instead of adding new APIs to PlatformBootManagerLib.



Thanks,

Ray



From: devel@edk2.groups.io  On Behalf Of Jeff Brasen
Sent: Tuesday, November 12, 2019 6:58 AM
To: Laszlo Ersek ; Ni, Ray ; 
devel@edk2.groups.io; af...@apple.com
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



If we are concerned about deploying this and breaking builds we could do this 
via a new protocol instead. In that case though we would leave the old default 
behavior in the code to handle platforms that didn't implement the new 
protocol, so this might not be the cleanest way to deploy this.



We could also look at adding a generic platform boot hook function (either as a 
library function or protocol) if we wanted to limit the number of disruption on 
new customization hooks. Something like



EFI_STATUS PlatformBootNotify (CONST EFI_GUID *NotificationType, VOID 
*ContextData OPTIONAL)



Where Notification type describes where we are that we want platform to 
potentially handle and ContextData is per type caller allocated data that 
provides additional in/out data. This has the same issue of leaving the current 
default behavior in place for unsupported types as well as being a less than 
specific function to describe.



Thanks,

Jeff





From: Laszlo Ersek mailto:ler...@redhat.com>>
Sent: Friday, November 8, 2019 9:37 AM
To: Jeff Brasen mailto:jbra...@nvidia.com>>; Ni, Ray 
mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



On 11/07/19 18:46, Jeff Brasen wrote:
> Fixing UiApp seems reasonable, I do think we would want a hook to the 
> platform library in here as the enumeration that occurs in the UiApp is 
> intended to do a full enumeration of the system and there may be platform 
> specifics to how that occurs.

Fully agreed -- entering UiApp should expose everything bootable in the
system, unless (perhaps) PlatformBootManagerLib specifically thinks
otherwise.

Of course, then we arrive (again) at the problem that a call in
UefiBootManagerLib, to a *new* PlatformBootManagerLib API, will break
tens of out-of-tree platforms. :)

I think that can be prevented, as follows; but it will take quite some time:

- introduce the new function declaration in "PlatformBootManagerLib.h",
- modify all platforms (in tree and out of tree) to implement (define)
the new function,
- call the new function from UefiBootManagerLib

For some history / background on this kind of problem, I suggest reading
through:

  https://bugzilla.tianocore.org/show_bug.cgi?id=982

Thanks,
Laszlo

> From: Ni, Ray mailto:ray...@intel.com>>
> Sent: Thursday, November 7, 2019 12:21 AM
> To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
> mailto:jbra...@nvidia.com>>; 
> af...@apple.com<mailto:af...@apple.com>
> Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
> Laszlo Ersek mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Kinney, Michael D 
> mailto:michael.d.kin...@intel.com>>
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
> I treat the issue in this way:
>
>   1.  Platform Boot Manager library does a good job. It doesn't always call 
> RefreshAll() API to auto-create the boot options
>   2.  But UiApp doesn't. It constantly call RefreshAll().
>
> Do you think that we can fix UiApp instead? For example, introducing a PCD to 
> control the boot option refresh behavior?
>
> Thanks,
> Ray
>
> From: 
> devel@edk2.groups.io<mailto:devel@edk2.groups.io<mailto:devel

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-11 Thread Ni, Ray
Jeff,
If adding a PCD to control UiApp can meet the real needs, I prefer to do in 
that way instead of adding new APIs to PlatformBootManagerLib.

Thanks,
Ray

From: devel@edk2.groups.io  On Behalf Of Jeff Brasen
Sent: Tuesday, November 12, 2019 6:58 AM
To: Laszlo Ersek ; Ni, Ray ; 
devel@edk2.groups.io; af...@apple.com
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

If we are concerned about deploying this and breaking builds we could do this 
via a new protocol instead. In that case though we would leave the old default 
behavior in the code to handle platforms that didn't implement the new 
protocol, so this might not be the cleanest way to deploy this.

We could also look at adding a generic platform boot hook function (either as a 
library function or protocol) if we wanted to limit the number of disruption on 
new customization hooks. Something like

EFI_STATUS PlatformBootNotify (CONST EFI_GUID *NotificationType, VOID 
*ContextData OPTIONAL)

Where Notification type describes where we are that we want platform to 
potentially handle and ContextData is per type caller allocated data that 
provides additional in/out data. This has the same issue of leaving the current 
default behavior in place for unsupported types as well as being a less than 
specific function to describe.


Thanks,

Jeff


From: Laszlo Ersek mailto:ler...@redhat.com>>
Sent: Friday, November 8, 2019 9:37 AM
To: Jeff Brasen mailto:jbra...@nvidia.com>>; Ni, Ray 
mailto:ray...@intel.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Wang, Jian J mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

On 11/07/19 18:46, Jeff Brasen wrote:
> Fixing UiApp seems reasonable, I do think we would want a hook to the 
> platform library in here as the enumeration that occurs in the UiApp is 
> intended to do a full enumeration of the system and there may be platform 
> specifics to how that occurs.

Fully agreed -- entering UiApp should expose everything bootable in the
system, unless (perhaps) PlatformBootManagerLib specifically thinks
otherwise.

Of course, then we arrive (again) at the problem that a call in
UefiBootManagerLib, to a *new* PlatformBootManagerLib API, will break
tens of out-of-tree platforms. :)

I think that can be prevented, as follows; but it will take quite some time:

- introduce the new function declaration in "PlatformBootManagerLib.h",
- modify all platforms (in tree and out of tree) to implement (define)
the new function,
- call the new function from UefiBootManagerLib

For some history / background on this kind of problem, I suggest reading
through:

  https://bugzilla.tianocore.org/show_bug.cgi?id=982

Thanks,
Laszlo

> From: Ni, Ray mailto:ray...@intel.com>>
> Sent: Thursday, November 7, 2019 12:21 AM
> To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
> mailto:jbra...@nvidia.com>>; 
> af...@apple.com<mailto:af...@apple.com>
> Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
> Laszlo Ersek mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Kinney, Michael D 
> mailto:michael.d.kin...@intel.com>>
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
> I treat the issue in this way:
>
>   1.  Platform Boot Manager library does a good job. It doesn't always call 
> RefreshAll() API to auto-create the boot options
>   2.  But UiApp doesn't. It constantly call RefreshAll().
>
> Do you think that we can fix UiApp instead? For example, introducing a PCD to 
> control the boot option refresh behavior?
>
> Thanks,
> Ray
>
> From: 
> devel@edk2.groups.io<mailto:devel@edk2.groups.io<mailto:devel@edk2.groups.io%3cmailto:devel@edk2.groups.io>>
>  
> mailto:devel@edk2.groups.io<mailto:devel@edk2.groups.io%3cmailto:devel@edk2.groups.io>>>
>  On Behalf Of Jeff Brasen
> Sent: Thursday, November 7, 2019 3:02 PM
> To: Ni, Ray 
> mailto:ray...@intel.com<mailto:ray...@intel.com%3cmailto:ray...@intel.com>>>;
>  af...@apple.com<mailto:af...@apple.com>
> Cc: 
> devel@edk2.groups.io<mailto:devel@edk2.groups.io<mailto:devel@edk2.groups.io%3cmailto:devel@edk2.groups.io>>

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-11 Thread Jeff Brasen
If we are concerned about deploying this and breaking builds we could do this 
via a new protocol instead. In that case though we would leave the old default 
behavior in the code to handle platforms that didn't implement the new 
protocol, so this might not be the cleanest way to deploy this.

We could also look at adding a generic platform boot hook function (either as a 
library function or protocol) if we wanted to limit the number of disruption on 
new customization hooks. Something like

EFI_STATUS PlatformBootNotify (CONST EFI_GUID *NotificationType, VOID 
*ContextData OPTIONAL)

Where Notification type describes where we are that we want platform to 
potentially handle and ContextData is per type caller allocated data that 
provides additional in/out data. This has the same issue of leaving the current 
default behavior in place for unsupported types as well as being a less than 
specific function to describe.


Thanks,

Jeff


From: Laszlo Ersek 
Sent: Friday, November 8, 2019 9:37 AM
To: Jeff Brasen ; Ni, Ray ; 
devel@edk2.groups.io ; af...@apple.com 
Cc: Ashish Singhal ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

On 11/07/19 18:46, Jeff Brasen wrote:
> Fixing UiApp seems reasonable, I do think we would want a hook to the 
> platform library in here as the enumeration that occurs in the UiApp is 
> intended to do a full enumeration of the system and there may be platform 
> specifics to how that occurs.

Fully agreed -- entering UiApp should expose everything bootable in the
system, unless (perhaps) PlatformBootManagerLib specifically thinks
otherwise.

Of course, then we arrive (again) at the problem that a call in
UefiBootManagerLib, to a *new* PlatformBootManagerLib API, will break
tens of out-of-tree platforms. :)

I think that can be prevented, as follows; but it will take quite some time:

- introduce the new function declaration in "PlatformBootManagerLib.h",
- modify all platforms (in tree and out of tree) to implement (define)
the new function,
- call the new function from UefiBootManagerLib

For some history / background on this kind of problem, I suggest reading
through:

  https://bugzilla.tianocore.org/show_bug.cgi?id=982

Thanks,
Laszlo

> From: Ni, Ray 
> Sent: Thursday, November 7, 2019 12:21 AM
> To: devel@edk2.groups.io; Jeff Brasen ; af...@apple.com
> Cc: Ashish Singhal ; Laszlo Ersek 
> ; Wang, Jian J ; Wu, Hao A 
> ; Gao, Zhichao ; Kinney, Michael D 
> 
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
> I treat the issue in this way:
>
>   1.  Platform Boot Manager library does a good job. It doesn't always call 
> RefreshAll() API to auto-create the boot options
>   2.  But UiApp doesn't. It constantly call RefreshAll().
>
> Do you think that we can fix UiApp instead? For example, introducing a PCD to 
> control the boot option refresh behavior?
>
> Thanks,
> Ray
>
> From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
> mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
> Sent: Thursday, November 7, 2019 3:02 PM
> To: Ni, Ray mailto:ray...@intel.com>>; 
> af...@apple.com<mailto:af...@apple.com>
> Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
> mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Kinney, Michael D 
> mailto:michael.d.kin...@intel.com>>
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
> The issue is there are some auto created options we do not want on our 
> platform.
> Get Outlook for Android<https://aka.ms/ghei36>
>
> 
> From: Ni, Ray mailto:ray...@intel.com>>
> Sent: Wednesday, November 6, 2019 11:59:31 PM
> To: Jeff Brasen mailto:jbra...@nvidia.com>>; 
> af...@apple.com<mailto:af...@apple.com> 
> mailto:af...@apple.com>>
> Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
> mailto:devel@edk2.groups.io>>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
> mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Kinney, Michael D 
> mailto:michael.d.kin...@intel.com>>
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
>
> Jeff,
>
> RefreshAllBootOption() only modifies/creates the auto-created boot options. 
> For the boot options created by platfor

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-08 Thread Laszlo Ersek
On 11/07/19 18:46, Jeff Brasen wrote:
> Fixing UiApp seems reasonable, I do think we would want a hook to the 
> platform library in here as the enumeration that occurs in the UiApp is 
> intended to do a full enumeration of the system and there may be platform 
> specifics to how that occurs.

Fully agreed -- entering UiApp should expose everything bootable in the
system, unless (perhaps) PlatformBootManagerLib specifically thinks
otherwise.

Of course, then we arrive (again) at the problem that a call in
UefiBootManagerLib, to a *new* PlatformBootManagerLib API, will break
tens of out-of-tree platforms. :)

I think that can be prevented, as follows; but it will take quite some time:

- introduce the new function declaration in "PlatformBootManagerLib.h",
- modify all platforms (in tree and out of tree) to implement (define)
the new function,
- call the new function from UefiBootManagerLib

For some history / background on this kind of problem, I suggest reading
through:

  https://bugzilla.tianocore.org/show_bug.cgi?id=982

Thanks,
Laszlo

> From: Ni, Ray 
> Sent: Thursday, November 7, 2019 12:21 AM
> To: devel@edk2.groups.io; Jeff Brasen ; af...@apple.com
> Cc: Ashish Singhal ; Laszlo Ersek 
> ; Wang, Jian J ; Wu, Hao A 
> ; Gao, Zhichao ; Kinney, Michael D 
> 
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
> 
> I treat the issue in this way:
> 
>   1.  Platform Boot Manager library does a good job. It doesn't always call 
> RefreshAll() API to auto-create the boot options
>   2.  But UiApp doesn't. It constantly call RefreshAll().
> 
> Do you think that we can fix UiApp instead? For example, introducing a PCD to 
> control the boot option refresh behavior?
> 
> Thanks,
> Ray
> 
> From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
> mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
> Sent: Thursday, November 7, 2019 3:02 PM
> To: Ni, Ray mailto:ray...@intel.com>>; 
> af...@apple.com<mailto:af...@apple.com>
> Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
> mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Kinney, Michael D 
> mailto:michael.d.kin...@intel.com>>
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
> 
> The issue is there are some auto created options we do not want on our 
> platform.
> Get Outlook for Android<https://aka.ms/ghei36>
> 
> 
> From: Ni, Ray mailto:ray...@intel.com>>
> Sent: Wednesday, November 6, 2019 11:59:31 PM
> To: Jeff Brasen mailto:jbra...@nvidia.com>>; 
> af...@apple.com<mailto:af...@apple.com> 
> mailto:af...@apple.com>>
> Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
> mailto:devel@edk2.groups.io>>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
> mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Kinney, Michael D 
> mailto:michael.d.kin...@intel.com>>
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
> 
> 
> Jeff,
> 
> RefreshAllBootOption() only modifies/creates the auto-created boot options. 
> For the boot options created by platform boot manager library, they stay with 
> no one touches. And all auto-created boot options are appended in the end of 
> boot option list (through BootOrder).
> 
> 
> 
> From: Jeff Brasen mailto:jbra...@nvidia.com>>
> Sent: Thursday, November 7, 2019 12:13 PM
> To: af...@apple.com<mailto:af...@apple.com>; Ni, Ray 
> mailto:ray...@intel.com>>
> Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
> mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Kinney, Michael D 
> mailto:michael.d.kin...@intel.com>>
> Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
> 
> 
> 
> As the suggestions below made sense, we updated our platform boot manager 
> library to behave in this manner and for normal boots everything works well. 
> However the UiApp and boot maintenance applications in EDK2 also call 
> EfiBootManagerRefreshAllBootOption() when ever a user goes into the menu 
> which will re-create the skipped 

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-07 Thread Jeff Brasen
Fixing UiApp seems reasonable, I do think we would want a hook to the platform 
library in here as the enumeration that occurs in the UiApp is intended to do a 
full enumeration of the system and there may be platform specifics to how that 
occurs.

Thanks,
Jeff


From: Ni, Ray 
Sent: Thursday, November 7, 2019 12:21 AM
To: devel@edk2.groups.io; Jeff Brasen ; af...@apple.com
Cc: Ashish Singhal ; Laszlo Ersek ; 
Wang, Jian J ; Wu, Hao A ; Gao, 
Zhichao ; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

I treat the issue in this way:

  1.  Platform Boot Manager library does a good job. It doesn't always call 
RefreshAll() API to auto-create the boot options
  2.  But UiApp doesn't. It constantly call RefreshAll().

Do you think that we can fix UiApp instead? For example, introducing a PCD to 
control the boot option refresh behavior?

Thanks,
Ray

From: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>> On Behalf Of Jeff Brasen
Sent: Thursday, November 7, 2019 3:02 PM
To: Ni, Ray mailto:ray...@intel.com>>; 
af...@apple.com<mailto:af...@apple.com>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

The issue is there are some auto created options we do not want on our platform.
Get Outlook for Android<https://aka.ms/ghei36>


From: Ni, Ray mailto:ray...@intel.com>>
Sent: Wednesday, November 6, 2019 11:59:31 PM
To: Jeff Brasen mailto:jbra...@nvidia.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao....@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Jeff,

RefreshAllBootOption() only modifies/creates the auto-created boot options. For 
the boot options created by platform boot manager library, they stay with no 
one touches. And all auto-created boot options are appended in the end of boot 
option list (through BootOrder).



From: Jeff Brasen mailto:jbra...@nvidia.com>>
Sent: Thursday, November 7, 2019 12:13 PM
To: af...@apple.com<mailto:af...@apple.com>; Ni, Ray 
mailto:ray...@intel.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



As the suggestions below made sense, we updated our platform boot manager 
library to behave in this manner and for normal boots everything works well. 
However the UiApp and boot maintenance applications in EDK2 also call 
EfiBootManagerRefreshAllBootOption() when ever a user goes into the menu which 
will re-create the skipped boot options with no place for the platform code to 
intervene.



What about a solution where we add a new Platform library function that allows 
for override of the behavior of BmEnumerateBootOptions? For example, either a 
function or protocol that takes the same parameters as this function and only 
if it returns NULL then we continue to the default enumeration code.  Or a 
function call inserted at the end that would modify the load option array after 
the system does the standard enumeration.



-Jeff



From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 9:20 AM
To: Ni, Ray mailto:ray...@intel.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Mike Kinney 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Ray,



Is there an obvious hook point we could point Je

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Ni, Ray
I treat the issue in this way:

  1.  Platform Boot Manager library does a good job. It doesn't always call 
RefreshAll() API to auto-create the boot options
  2.  But UiApp doesn't. It constantly call RefreshAll().

Do you think that we can fix UiApp instead? For example, introducing a PCD to 
control the boot option refresh behavior?

Thanks,
Ray

From: devel@edk2.groups.io  On Behalf Of Jeff Brasen
Sent: Thursday, November 7, 2019 3:02 PM
To: Ni, Ray ; af...@apple.com
Cc: devel@edk2.groups.io; Ashish Singhal ; Laszlo 
Ersek ; Wang, Jian J ; Wu, Hao A 
; Gao, Zhichao ; Kinney, Michael D 

Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

The issue is there are some auto created options we do not want on our platform.
Get Outlook for Android<https://aka.ms/ghei36>


From: Ni, Ray mailto:ray...@intel.com>>
Sent: Wednesday, November 6, 2019 11:59:31 PM
To: Jeff Brasen mailto:jbra...@nvidia.com>>; 
af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io> 
mailto:devel@edk2.groups.io>>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Jeff,

RefreshAllBootOption() only modifies/creates the auto-created boot options. For 
the boot options created by platform boot manager library, they stay with no 
one touches. And all auto-created boot options are appended in the end of boot 
option list (through BootOrder).



From: Jeff Brasen mailto:jbra...@nvidia.com>>
Sent: Thursday, November 7, 2019 12:13 PM
To: af...@apple.com<mailto:af...@apple.com>; Ni, Ray 
mailto:ray...@intel.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



As the suggestions below made sense, we updated our platform boot manager 
library to behave in this manner and for normal boots everything works well. 
However the UiApp and boot maintenance applications in EDK2 also call 
EfiBootManagerRefreshAllBootOption() when ever a user goes into the menu which 
will re-create the skipped boot options with no place for the platform code to 
intervene.



What about a solution where we add a new Platform library function that allows 
for override of the behavior of BmEnumerateBootOptions? For example, either a 
function or protocol that takes the same parameters as this function and only 
if it returns NULL then we continue to the default enumeration code.  Or a 
function call inserted at the end that would modify the load option array after 
the system does the standard enumeration.



-Jeff



From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 9:20 AM
To: Ni, Ray mailto:ray...@intel.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Mike Kinney 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Ray,



Is there an obvious hook point we could point Jeff and Ashish at?



Long term it would be a good idea to have a Wiki page to give some guidance on 
how to customize the BDS.



Thanks,



Andrew Fish



On Nov 5, 2019, at 9:20 PM, Ni, Ray mailto:ray...@intel.com>> 
wrote:



Andrew,

I agree with your opinion.

It's expected that Platform Boot Manager lib calls 
EfiBootManagerRefreshAllBootOption() only in full configuration boot path.

The full configuration boot path is chosen when hardware changes happen. So 
it's not expected EfiBootManagerRefresh...() be
called in every boot.

So you could:

  1.  Delete the auto-created option pointing to LoadFile instance
  2.  Create your own one with customized description.





From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 10:47 AM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
jbra...@nvidia.com<mailto:jbra...@nvidia.com>
Cc: Ashish 

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Jeff Brasen
The issue is there are some auto created options we do not want on our platform.

Get Outlook for Android<https://aka.ms/ghei36>


From: Ni, Ray 
Sent: Wednesday, November 6, 2019 11:59:31 PM
To: Jeff Brasen ; af...@apple.com 
Cc: devel@edk2.groups.io ; Ashish Singhal 
; Laszlo Ersek ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration


Jeff,

RefreshAllBootOption() only modifies/creates the auto-created boot options. For 
the boot options created by platform boot manager library, they stay with no 
one touches. And all auto-created boot options are appended in the end of boot 
option list (through BootOrder).



From: Jeff Brasen 
Sent: Thursday, November 7, 2019 12:13 PM
To: af...@apple.com; Ni, Ray 
Cc: devel@edk2.groups.io; Ashish Singhal ; Laszlo 
Ersek ; Wang, Jian J ; Wu, Hao A 
; Gao, Zhichao ; Kinney, Michael D 

Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



As the suggestions below made sense, we updated our platform boot manager 
library to behave in this manner and for normal boots everything works well. 
However the UiApp and boot maintenance applications in EDK2 also call 
EfiBootManagerRefreshAllBootOption() when ever a user goes into the menu which 
will re-create the skipped boot options with no place for the platform code to 
intervene.



What about a solution where we add a new Platform library function that allows 
for override of the behavior of BmEnumerateBootOptions? For example, either a 
function or protocol that takes the same parameters as this function and only 
if it returns NULL then we continue to the default enumeration code.  Or a 
function call inserted at the end that would modify the load option array after 
the system does the standard enumeration.



-Jeff



From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 9:20 AM
To: Ni, Ray mailto:ray...@intel.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Mike Kinney 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



Ray,



Is there an obvious hook point we could point Jeff and Ashish at?



Long term it would be a good idea to have a Wiki page to give some guidance on 
how to customize the BDS.



Thanks,



Andrew Fish



On Nov 5, 2019, at 9:20 PM, Ni, Ray mailto:ray...@intel.com>> 
wrote:



Andrew,

I agree with your opinion.

It’s expected that Platform Boot Manager lib calls 
EfiBootManagerRefreshAllBootOption() only in full configuration boot path.

The full configuration boot path is chosen when hardware changes happen. So 
it’s not expected EfiBootManagerRefresh…() be
called in every boot.

So you could:

  1.  Delete the auto-created option pointing to LoadFile instance
  2.  Create your own one with customized description.





From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 10:47 AM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
jbra...@nvidia.com<mailto:jbra...@nvidia.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Laszlo Ersek mailto:ler...@redhat.com>>; Ni, Ray 
mailto:ray...@intel.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao....@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration







On Nov 5, 2019, at 7:34 PM, Jeff Brasen 
mailto:jbra...@nvidia.com>> wrote:



Wouldn't having a variable that we create and delete on every boot put 
unnecessary stress on the SPI-NOR that the variable store lives on?
What about the alternative approach where we allow the platform code to modify 
the attributes of the auto created variable to disable it with hidden/!active 
but still match for detection purposes so that it doesn't delete and recreate 
the modified variable each boot? That way all the logic on what to disable can 
still be in the platform code and all the existing logic in the boot manager 
can stay basically the same?

What changes every boot that forces the variable to need to get modified?

I would assume the NOR driver is smart enough to not update a variable that is 
not changing.

The custom BDS could could only create the variable for this device if it does 
not exist.

[JB] The current flow with no changes in the boot manager would be as follows



  1.  Scan for

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Ni, Ray
Andrew,
PlatformBootManagerBeforeConsole() and PlatformBootManagerAfterConsole() are 
the only two hook points and I think they are general enough so that any thing 
can be done in the two points.

WIKI is a good way to explain. I will consider that : )

Thanks,
Ray

From: devel@edk2.groups.io  On Behalf Of Andrew Fish via 
Groups.Io
Sent: Thursday, November 7, 2019 12:20 AM
To: Ni, Ray 
Cc: devel@edk2.groups.io; jbra...@nvidia.com; Ashish Singhal 
; Laszlo Ersek ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Kinney, Michael D 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Ray,

Is there an obvious hook point we could point Jeff and Ashish at?

Long term it would be a good idea to have a Wiki page to give some guidance on 
how to customize the BDS.

Thanks,

Andrew Fish


On Nov 5, 2019, at 9:20 PM, Ni, Ray mailto:ray...@intel.com>> 
wrote:

Andrew,
I agree with your opinion.
It’s expected that Platform Boot Manager lib calls 
EfiBootManagerRefreshAllBootOption() only in full configuration boot path.
The full configuration boot path is chosen when hardware changes happen. So 
it’s not expected EfiBootManagerRefresh…() be
called in every boot.
So you could:

  1.  Delete the auto-created option pointing to LoadFile instance
  2.  Create your own one with customized description.


From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 10:47 AM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
jbra...@nvidia.com<mailto:jbra...@nvidia.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Laszlo Ersek mailto:ler...@redhat.com>>; Ni, Ray 
mailto:ray...@intel.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration





On Nov 5, 2019, at 7:34 PM, Jeff Brasen 
mailto:jbra...@nvidia.com>> wrote:


Wouldn't having a variable that we create and delete on every boot put 
unnecessary stress on the SPI-NOR that the variable store lives on?
What about the alternative approach where we allow the platform code to modify 
the attributes of the auto created variable to disable it with hidden/!active 
but still match for detection purposes so that it doesn't delete and recreate 
the modified variable each boot? That way all the logic on what to disable can 
still be in the platform code and all the existing logic in the boot manager 
can stay basically the same?

What changes every boot that forces the variable to need to get modified?

I would assume the NOR driver is smart enough to not update a variable that is 
not changing.

The custom BDS could could only create the variable for this device if it does 
not exist.

[JB] The current flow with no changes in the boot manager would be as follows


  1.  Scan for instance of the boot option in the variables
  2.  It will not be found, so create a new boot option store it to a variable 
and update BootOrder
  3.  Platform code runs creates the options for the boot option it wants and 
writes those to variable store
  4.  Delete/disable the boot option in the variable store

When you reboot it won't find the variable so 1/2/4 will re-occur

The code that does this (1/2) is EfiBootManagerRefreshAllBootOption in BmBoot.c

If you modify the variable to disable it with hidden/not active it would delete 
that and create a new one as well as the code wouldn't recognize that is the 
same boot option.

If however we modify EfiBootManagerFindLoadOption to not compare the attributes 
(at least allow for differences in active and hidden) then the when it 
refreshes every thing it would see the match and not delete/create a new 
variable in the store and thus we wouldn't have changes every boot.


Jeff,

Sorry if I'm a little off on the sequence of things as the platform I work on 
day to day has a custom BDS and does not use this library. I though the 
patch changed BmEnumerateBootOptions(), so that is going to change how 
EfiBootManagerRefreshAllBootOption() works. I'd also point out the patch as 
given is invalid as it changed the behavior of the public library API for 
EfiBootManagerRefreshAllBootOption() [1] so for the patch to be valid it would 
need to change the comments to reflect the new behavior. This is kind of what 
Laszlo's technical debt comment was about.

I think Laszlo advocated having the BDS platform specific code make sure the 
boot variables are in the correct state. That should happen before the Boot 
Manager code runs, and it is  not clear to me why the Boot Manager could would 
need to run if you have a valid EFI nvram variable to boot from.

I think the question is how is your use case different than the boot variable 
that Windows installs? If it works kind of the same way then

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Ni, Ray
Jeff,
RefreshAllBootOption() only modifies/creates the auto-created boot options. For 
the boot options created by platform boot manager library, they stay with no 
one touches. And all auto-created boot options are appended in the end of boot 
option list (through BootOrder).

From: Jeff Brasen 
Sent: Thursday, November 7, 2019 12:13 PM
To: af...@apple.com; Ni, Ray 
Cc: devel@edk2.groups.io; Ashish Singhal ; Laszlo 
Ersek ; Wang, Jian J ; Wu, Hao A 
; Gao, Zhichao ; Kinney, Michael D 

Subject: RE: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

As the suggestions below made sense, we updated our platform boot manager 
library to behave in this manner and for normal boots everything works well. 
However the UiApp and boot maintenance applications in EDK2 also call 
EfiBootManagerRefreshAllBootOption() when ever a user goes into the menu which 
will re-create the skipped boot options with no place for the platform code to 
intervene.

What about a solution where we add a new Platform library function that allows 
for override of the behavior of BmEnumerateBootOptions? For example, either a 
function or protocol that takes the same parameters as this function and only 
if it returns NULL then we continue to the default enumeration code.  Or a 
function call inserted at the end that would modify the load option array after 
the system does the standard enumeration.

-Jeff

From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 9:20 AM
To: Ni, Ray mailto:ray...@intel.com>>
Cc: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Jeff Brasen 
mailto:jbra...@nvidia.com>>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Mike Kinney 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

Ray,

Is there an obvious hook point we could point Jeff and Ashish at?

Long term it would be a good idea to have a Wiki page to give some guidance on 
how to customize the BDS.

Thanks,

Andrew Fish

On Nov 5, 2019, at 9:20 PM, Ni, Ray mailto:ray...@intel.com>> 
wrote:

Andrew,
I agree with your opinion.
It’s expected that Platform Boot Manager lib calls 
EfiBootManagerRefreshAllBootOption() only in full configuration boot path.
The full configuration boot path is chosen when hardware changes happen. So 
it’s not expected EfiBootManagerRefresh…() be
called in every boot.
So you could:

  1.  Delete the auto-created option pointing to LoadFile instance
  2.  Create your own one with customized description.


From: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Wednesday, November 6, 2019 10:47 AM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
jbra...@nvidia.com<mailto:jbra...@nvidia.com>
Cc: Ashish Singhal mailto:ashishsin...@nvidia.com>>; 
Laszlo Ersek mailto:ler...@redhat.com>>; Ni, Ray 
mailto:ray...@intel.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Kinney, Michael D 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration




On Nov 5, 2019, at 7:34 PM, Jeff Brasen 
mailto:jbra...@nvidia.com>> wrote:


Wouldn't having a variable that we create and delete on every boot put 
unnecessary stress on the SPI-NOR that the variable store lives on?
What about the alternative approach where we allow the platform code to modify 
the attributes of the auto created variable to disable it with hidden/!active 
but still match for detection purposes so that it doesn't delete and recreate 
the modified variable each boot? That way all the logic on what to disable can 
still be in the platform code and all the existing logic in the boot manager 
can stay basically the same?

What changes every boot that forces the variable to need to get modified?

I would assume the NOR driver is smart enough to not update a variable that is 
not changing.

The custom BDS could could only create the variable for this device if it does 
not exist.

[JB] The current flow with no changes in the boot manager would be as follows


  1.  Scan for instance of the boot option in the variables
  2.  It will not be found, so create a new boot option store it to a variable 
and update BootOrder
  3.  Platform code runs creates the options for the boot option it wants and 
writes those to variable store
  4.  Delete/disable the boot option in the variable store

When you reboot it won't find the variable so 1/2/4 will re-occur

The code that does this (1/2) is EfiBootManagerRefreshAllBootOption in BmBoot.c

If you modify the variable to disable it wit

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Laszlo Ersek
On 11/06/19 17:15, Andrew Fish wrote:
> 
> 
>> On Nov 6, 2019, at 3:56 AM, Laszlo Ersek  wrote:
>>
>> On 11/06/19 00:19, Jeff Brasen wrote:
>>> Wouldn't having a variable that we create and delete on every boot put 
>>> unnecessary stress on the SPI-NOR that the variable store lives on?
>>
>> Yes, it most likely would.
> 
> Should we write a BZ for the variable stack not to update a  variable if the 
> data is not changing?

I'm not certain that, in this case, the write action would re-populate
exactly the same Boot variable with exactly the same data. It seems
like in the above, UefiBootManagerLib would create a new variable, and
then the PlatformBootManagerLib instance would make it disappear.

I don't think we should push down the recognition of the above pattern
to the variable driver -- the connection should be made at a higher
logical level. Ultimately, both UefiBootManagerLib and
PlatformBootManagerLib get linked into BdsDxe, so the current limitation
is due to API boundaries that we've created ourselves.

Thanks
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50071): https://edk2.groups.io/g/devel/message/50071
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Andrew Fish via Groups.Io
Ray,

Is there an obvious hook point we could point Jeff and Ashish at? 

Long term it would be a good idea to have a Wiki page to give some guidance on 
how to customize the BDS. 

Thanks,

Andrew Fish

> On Nov 5, 2019, at 9:20 PM, Ni, Ray  wrote:
> 
> Andrew,
> I agree with your opinion.
> It’s expected that Platform Boot Manager lib calls 
> EfiBootManagerRefreshAllBootOption() only in full configuration boot path.
> The full configuration boot path is chosen when hardware changes happen. So 
> it’s not expected EfiBootManagerRefresh…() be
> called in every boot.
> So you could:
> Delete the auto-created option pointing to LoadFile instance
> Create your own one with customized description.
>
>
> From: af...@apple.com  
> Sent: Wednesday, November 6, 2019 10:47 AM
> To: devel@edk2.groups.io; jbra...@nvidia.com
> Cc: Ashish Singhal ; Laszlo Ersek 
> ; Ni, Ray ; Wang, Jian J 
> ; Wu, Hao A ; Gao, Zhichao 
> ; Kinney, Michael D 
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
>
> 
> 
> On Nov 5, 2019, at 7:34 PM, Jeff Brasen  <mailto:jbra...@nvidia.com>> wrote:
>
> 
> Wouldn't having a variable that we create and delete on every boot put 
> unnecessary stress on the SPI-NOR that the variable store lives on?
> What about the alternative approach where we allow the platform code to 
> modify the attributes of the auto created variable to disable it with 
> hidden/!active but still match for detection purposes so that it doesn't 
> delete and recreate the modified variable each boot? That way all the logic 
> on what to disable can still be in the platform code and all the existing 
> logic in the boot manager can stay basically the same?
> 
> What changes every boot that forces the variable to need to get modified? 
> 
> I would assume the NOR driver is smart enough to not update a variable that 
> is not changing. 
> 
> The custom BDS could could only create the variable for this device if it 
> does not exist. 
> 
> [JB] The current flow with no changes in the boot manager would be as follows
>
> Scan for instance of the boot option in the variables
> It will not be found, so create a new boot option store it to a variable and 
> update BootOrder
> Platform code runs creates the options for the boot option it wants and 
> writes those to variable store
> Delete/disable the boot option in the variable store
>
> When you reboot it won't find the variable so 1/2/4 will re-occur
>
> The code that does this (1/2) is EfiBootManagerRefreshAllBootOption in 
> BmBoot.c
>
> If you modify the variable to disable it with hidden/not active it would 
> delete that and create a new one as well as the code wouldn't recognize that 
> is the same boot option.
>
> If however we modify EfiBootManagerFindLoadOption to not compare the 
> attributes (at least allow for differences in active and hidden) then the 
> when it refreshes every thing it would see the match and not delete/create a 
> new variable in the store and thus we wouldn't have changes every boot.
>
>
> Jeff,
>
> Sorry if I'm a little off on the sequence of things as the platform I work on 
> day to day has a custom BDS and does not use this library. I though the 
> patch changed BmEnumerateBootOptions(), so that is going to change how 
> EfiBootManagerRefreshAllBootOption() works. I'd also point out the patch as 
> given is invalid as it changed the behavior of the public library API for 
> EfiBootManagerRefreshAllBootOption() [1] so for the patch to be valid it 
> would need to change the comments to reflect the new behavior. This is kind 
> of what Laszlo's technical debt comment was about. 
>
> I think Laszlo advocated having the BDS platform specific code make sure the 
> boot variables are in the correct state. That should happen before the Boot 
> Manager code runs, and it is  not clear to me why the Boot Manager could 
> would need to run if you have a valid EFI nvram variable to boot from. 
>
> I think the question is how is your use case different than the boot variable 
> that Windows installs? If it works kind of the same way then the answer is to 
> have the BDS platform specific code write the boot variable. 
>
>
> [1]
> /**
>   The function creates boot options for all possible bootable medias in the 
> following order:
>   1. Removable BlockIo- The boot option only points to the 
> removable media
> device, like USB key, DVD, Floppy etc.
>   2. Fixed BlockIo- The boot option only points to a Fixed 
> blockIo device,
> like HardDisk.
>   3. Non-BlockIo SimpleFileSystem - The boot option poin

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Andrew Fish via Groups.Io



> On Nov 6, 2019, at 3:56 AM, Laszlo Ersek  wrote:
> 
> On 11/06/19 00:19, Jeff Brasen wrote:
>> Wouldn't having a variable that we create and delete on every boot put 
>> unnecessary stress on the SPI-NOR that the variable store lives on?
> 
> Yes, it most likely would.

Should we write a BZ for the variable stack not to update a  variable if the 
data is not changing?

Thanks,

Andrew Fish

> 
> [...]
> 
> Thanks
> Laszlo
> 
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50068): https://edk2.groups.io/g/devel/message/50068
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-06 Thread Laszlo Ersek
On 11/06/19 00:19, Jeff Brasen wrote:
> Wouldn't having a variable that we create and delete on every boot put 
> unnecessary stress on the SPI-NOR that the variable store lives on?

Yes, it most likely would.

[...]

Thanks
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50059): https://edk2.groups.io/g/devel/message/50059
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Ni, Ray
Andrew,
I agree with your opinion.
It's expected that Platform Boot Manager lib calls 
EfiBootManagerRefreshAllBootOption() only in full configuration boot path.
The full configuration boot path is chosen when hardware changes happen. So 
it's not expected EfiBootManagerRefresh...() be
called in every boot.
So you could:

  1.  Delete the auto-created option pointing to LoadFile instance
  2.  Create your own one with customized description.


From: af...@apple.com 
Sent: Wednesday, November 6, 2019 10:47 AM
To: devel@edk2.groups.io; jbra...@nvidia.com
Cc: Ashish Singhal ; Laszlo Ersek ; 
Ni, Ray ; Wang, Jian J ; Wu, Hao A 
; Gao, Zhichao ; Kinney, Michael D 

Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration




On Nov 5, 2019, at 7:34 PM, Jeff Brasen 
mailto:jbra...@nvidia.com>> wrote:


Wouldn't having a variable that we create and delete on every boot put 
unnecessary stress on the SPI-NOR that the variable store lives on?
What about the alternative approach where we allow the platform code to modify 
the attributes of the auto created variable to disable it with hidden/!active 
but still match for detection purposes so that it doesn't delete and recreate 
the modified variable each boot? That way all the logic on what to disable can 
still be in the platform code and all the existing logic in the boot manager 
can stay basically the same?

What changes every boot that forces the variable to need to get modified?

I would assume the NOR driver is smart enough to not update a variable that is 
not changing.

The custom BDS could could only create the variable for this device if it does 
not exist.

[JB] The current flow with no changes in the boot manager would be as follows


  1.  Scan for instance of the boot option in the variables
  2.  It will not be found, so create a new boot option store it to a variable 
and update BootOrder
  3.  Platform code runs creates the options for the boot option it wants and 
writes those to variable store
  4.  Delete/disable the boot option in the variable store

When you reboot it won't find the variable so 1/2/4 will re-occur

The code that does this (1/2) is EfiBootManagerRefreshAllBootOption in BmBoot.c

If you modify the variable to disable it with hidden/not active it would delete 
that and create a new one as well as the code wouldn't recognize that is the 
same boot option.

If however we modify EfiBootManagerFindLoadOption to not compare the attributes 
(at least allow for differences in active and hidden) then the when it 
refreshes every thing it would see the match and not delete/create a new 
variable in the store and thus we wouldn't have changes every boot.


Jeff,

Sorry if I'm a little off on the sequence of things as the platform I work on 
day to day has a custom BDS and does not use this library. I though the 
patch changed BmEnumerateBootOptions(), so that is going to change how 
EfiBootManagerRefreshAllBootOption() works. I'd also point out the patch as 
given is invalid as it changed the behavior of the public library API for 
EfiBootManagerRefreshAllBootOption() [1] so for the patch to be valid it would 
need to change the comments to reflect the new behavior. This is kind of what 
Laszlo's technical debt comment was about.

I think Laszlo advocated having the BDS platform specific code make sure the 
boot variables are in the correct state. That should happen before the Boot 
Manager code runs, and it is  not clear to me why the Boot Manager could would 
need to run if you have a valid EFI nvram variable to boot from.

I think the question is how is your use case different than the boot variable 
that Windows installs? If it works kind of the same way then the answer is to 
have the BDS platform specific code write the boot variable.


[1]
/**
  The function creates boot options for all possible bootable medias in the 
following order:
  1. Removable BlockIo- The boot option only points to the 
removable media
device, like USB key, DVD, Floppy etc.
  2. Fixed BlockIo- The boot option only points to a Fixed 
blockIo device,
like HardDisk.
  3. Non-BlockIo SimpleFileSystem - The boot option points to a device 
supporting
SimpleFileSystem Protocol, but not 
supporting BlockIo
protocol.
  4. LoadFile - The boot option points to the media 
supporting
LoadFile protocol.
  Reference: UEFI Spec chapter 3.3 Boot Option Variables Default Boot Behavior

  The function won't delete the boot option not added by itself.
**/
VOID
EFIAPI
EfiBootManagerRefreshAllBootOption (
  VOID
  );

Thanks,

Andrew Fish



Thanks,

Andrew Fish

Thanks,

Jeff


This email message is for the sole use of the intended recipient(s) and may 
contain confidential information

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Andrew Fish via Groups.Io


> On Nov 5, 2019, at 7:34 PM, Jeff Brasen  wrote:
> 
> 
> Wouldn't having a variable that we create and delete on every boot put 
> unnecessary stress on the SPI-NOR that the variable store lives on?
> What about the alternative approach where we allow the platform code to 
> modify the attributes of the auto created variable to disable it with 
> hidden/!active but still match for detection purposes so that it doesn't 
> delete and recreate the modified variable each boot? That way all the logic 
> on what to disable can still be in the platform code and all the existing 
> logic in the boot manager can stay basically the same?
> 
> What changes every boot that forces the variable to need to get modified? 
> 
> I would assume the NOR driver is smart enough to not update a variable that 
> is not changing. 
> 
> The custom BDS could could only create the variable for this device if it 
> does not exist. 
> 
> [JB] The current flow with no changes in the boot manager would be as follows
> 
> Scan for instance of the boot option in the variables
> It will not be found, so create a new boot option store it to a variable and 
> update BootOrder
> Platform code runs creates the options for the boot option it wants and 
> writes those to variable store
> Delete/disable the boot option in the variable store
> 
> When you reboot it won't find the variable so 1/2/4 will re-occur
> 
> The code that does this (1/2) is EfiBootManagerRefreshAllBootOption in 
> BmBoot.c
> 
> If you modify the variable to disable it with hidden/not active it would 
> delete that and create a new one as well as the code wouldn't recognize that 
> is the same boot option.
> 
> If however we modify EfiBootManagerFindLoadOption to not compare the 
> attributes (at least allow for differences in active and hidden) then the 
> when it refreshes every thing it would see the match and not delete/create a 
> new variable in the store and thus we wouldn't have changes every boot.
> 

Jeff,

Sorry if I'm a little off on the sequence of things as the platform I work on 
day to day has a custom BDS and does not use this library. I though the 
patch changed BmEnumerateBootOptions(), so that is going to change how 
EfiBootManagerRefreshAllBootOption() works. I'd also point out the patch as 
given is invalid as it changed the behavior of the public library API for 
EfiBootManagerRefreshAllBootOption() [1] so for the patch to be valid it would 
need to change the comments to reflect the new behavior. This is kind of what 
Laszlo's technical debt comment was about. 

I think Laszlo advocated having the BDS platform specific code make sure the 
boot variables are in the correct state. That should happen before the Boot 
Manager code runs, and it is  not clear to me why the Boot Manager could would 
need to run if you have a valid EFI nvram variable to boot from. 

I think the question is how is your use case different than the boot variable 
that Windows installs? If it works kind of the same way then the answer is to 
have the BDS platform specific code write the boot variable. 


[1]
/**
  The function creates boot options for all possible bootable medias in the 
following order:
  1. Removable BlockIo- The boot option only points to the 
removable media
device, like USB key, DVD, Floppy etc.
  2. Fixed BlockIo- The boot option only points to a Fixed 
blockIo device,
like HardDisk.
  3. Non-BlockIo SimpleFileSystem - The boot option points to a device 
supporting
SimpleFileSystem Protocol, but not 
supporting BlockIo
protocol.
  4. LoadFile - The boot option points to the media 
supporting
LoadFile protocol.
  Reference: UEFI Spec chapter 3.3 Boot Option Variables Default Boot Behavior

  The function won't delete the boot option not added by itself.
**/
VOID
EFIAPI
EfiBootManagerRefreshAllBootOption (
  VOID
  );

Thanks,

Andrew Fish

> 
> Thanks,
> 
> Andrew Fish
> 
> Thanks,
> 
> Jeff
> 
> 
> 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.
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50040): https://edk2.groups.io/g/devel/message/50040
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Jeff Brasen

Wouldn't having a variable that we create and delete on every boot put 
unnecessary stress on the SPI-NOR that the variable store lives on?
What about the alternative approach where we allow the platform code to modify 
the attributes of the auto created variable to disable it with hidden/!active 
but still match for detection purposes so that it doesn't delete and recreate 
the modified variable each boot? That way all the logic on what to disable can 
still be in the platform code and all the existing logic in the boot manager 
can stay basically the same?

What changes every boot that forces the variable to need to get modified?

I would assume the NOR driver is smart enough to not update a variable that is 
not changing.

The custom BDS could could only create the variable for this device if it does 
not exist.

[JB] The current flow with no changes in the boot manager would be as follows


  1.  Scan for instance of the boot option in the variables
  2.  It will not be found, so create a new boot option store it to a variable 
and update BootOrder
  3.  Platform code runs creates the options for the boot option it wants and 
writes those to variable store
  4.  Delete/disable the boot option in the variable store

When you reboot it won't find the variable so 1/2/4 will re-occur

The code that does this (1/2) is EfiBootManagerRefreshAllBootOption in BmBoot.c

If you modify the variable to disable it with hidden/not active it would delete 
that and create a new one as well as the code wouldn't recognize that is the 
same boot option.

If however we modify EfiBootManagerFindLoadOption to not compare the attributes 
(at least allow for differences in active and hidden) then the when it 
refreshes every thing it would see the match and not delete/create a new 
variable in the store and thus we wouldn't have changes every boot.


Thanks,

Andrew Fish

Thanks,

Jeff



---
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.
---

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50029): https://edk2.groups.io/g/devel/message/50029
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Ashish Singhal
Reconciling the email chain from devel.io portal as it does not send email to 
individual participants.

On Nov 5, 2019, at 5:19 PM, Jeff Brasen  wrote:

Wouldn't having a variable that we create and delete on every boot put 
unnecessary stress on the SPI-NOR that the variable store lives on?
What about the alternative approach where we allow the platform code to modify 
the attributes of the auto created variable to disable it with hidden/!active 
but still match for detection purposes so that it doesn't delete and recreate 
the modified variable each boot? That way all the logic on what to disable can 
still be in the platform code and all the existing logic in the boot manager 
can stay basically the same?

What changes every boot that forces the variable to need to get modified? 

I would assume the NOR driver is smart enough to not update a variable that is 
not changing. 

The custom BDS could could only create the variable for this device if it does 
not exist. 

Thanks,

Andrew Fish

Thanks,

Jeff

-Original Message-
From: Laszlo Ersek  
Sent: Tuesday, November 5, 2019 12:24 PM
To: Ashish Singhal ; Andrew Fish 
Cc: devel@edk2.groups.io; Ni, Ray ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Mike Kinney 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

On 11/05/19 19:00, Ashish Singhal wrote:

> I agree that I can use the platform boot manager protocol to modify 
> the boot variable and give the custom optional data I need, but that 
> would not stop UefiBootManagerLib from creating another boot option 
> with mBmAutoCreateBootOptionGuid as the optional data on the next 
> bootup which I would have to delete every time in the platform boot 
> manager driver.

>From a purely pragmatic perspective, I would act exactly like you describe 
>above. I'm not saying that this is the cleanest design, or that it has the 
>best performance. However, it also does not introduce technical debt -- it's 
>not a "wrong" thing to do --, and (from past
experience) keeping it 100% in platform code produces the least amount of 
friction, and allows for the smoothest development. Extending 
UefiBootManagerLib has always been an uphill battle.

Thanks
Laszlo

---
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.
---

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50015): https://edk2.groups.io/g/devel/message/50015
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Laszlo Ersek
On 11/05/19 19:00, Ashish Singhal wrote:

> I agree that I can use the platform boot manager protocol to modify
> the boot variable and give the custom optional data I need, but that
> would not stop UefiBootManagerLib from creating another boot option
> with mBmAutoCreateBootOptionGuid as the optional data on the next
> bootup which I would have to delete every time in the platform boot
> manager driver.

>From a purely pragmatic perspective, I would act exactly like you
describe above. I'm not saying that this is the cleanest design, or that
it has the best performance. However, it also does not introduce
technical debt -- it's not a "wrong" thing to do --, and (from past
experience) keeping it 100% in platform code produces the least amount
of friction, and allows for the smoothest development. Extending
UefiBootManagerLib has always been an uphill battle.

Thanks
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49975): https://edk2.groups.io/g/devel/message/49975
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Ashish Singhal
Hello Andrew/Laszlo,

Thank you for walking me through the steps that happen and what I can do in 
terms of modifying variables. I think I did not do a good job stating the exact 
issue I see when I try these options so I will try to explain it here.

First of all, I do want the boot option to be created for the load file 
protocol I am installing, but I need specific optional data for my platform.

Right now, UefiBootManagerLib looks for all instances of Block IO, Simple FS 
and Load File protocol handles and creates a boot option for them with 
mBmAutoCreateBootOptionGuid being the optional data. This GUID as optional data 
is used to keep track of whether the boot option is an auto-created one from 
the library or not. Because of this, however, there is no way right now for a 
platform to have its own optional data for the boot option. Now I agree that I 
can use the platform boot manager protocol to modify the boot variable and give 
the custom optional data I need, but that would not stop UefiBootManagerLib 
from creating another boot option with mBmAutoCreateBootOptionGuid as the 
optional data on the next bootup which I would have to delete every time in the 
platform boot manager driver. With the patch that I have proposed, 
UefiBootManagerLib would never create a boot option automatically if the 
platform wants it not to do it and it can be dealt with in the platform boot 
manager driver.

Alternatively, we can have platform boot manager driver change the attribute of 
such a boot option to be hidden and not active, and add a new boot option with 
the specific optional data we want. This would require changing 
EfiBootMangerFindLoadOption function to ignore differences in Attributes as 
otherwise, the system will recreate a new option with the active attribute set 
and delete the hidden one.

Thanks
Ashish

From: af...@apple.com  on behalf of Andrew Fish 

Sent: Tuesday, November 5, 2019 9:52 AM
To: Laszlo Ersek 
Cc: devel@edk2.groups.io ; Ashish Singhal 
; Ni, Ray ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Mike Kinney 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration



> On Nov 5, 2019, at 3:54 AM, Laszlo Ersek  wrote:
>
> On 11/05/19 07:15, Andrew Fish via Groups.Io wrote:
>
>> 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.
>
> Good point; for example OVMF and ArmVirtQemu* do this, with the help of
> QemuBootOrderLib. In essence:
>
> - connect a particular set of devices ("ConnectDevicesFromQemu")
>  - if that fails, call EfiBootManagerConnectAll()
>
> - call EfiBootManagerRefreshAllBootOption()
>
> - register UEFI Shell boot option manually
>
> - filter and reorder boot options in a platform specific way
>  ("RemoveStaleFvFileOptions", "SetBootOrderFromQemu")
>
> All this happens in PlatformBootManagerAfterConsole().
>


The intent of the EFI Boot Variables was generally for the OS Installer to 
write the nvram boot variable with the EFI_LOAD_OPTION (Boot variable name, 
 is the UINT16 hex value in BootoOrder) info. The reasons being the EFI 
code may not know the path to the OS Loader, or the arguments that should be 
passed to the OS Loader.

I'd also point out EFI_LOAD_OPTION.Attributes has LOAD_OPTION_ACTIVE  and 
LOAD_OPTION_HIDDEN bits that give you more control of how the Boot Manager/BDS 
will deal with the existing nvram boot option.

Thanks,

Andrew Fish


> Thanks,
> Laszlo
>


---
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.
---

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49973): https://edk2.groups.io/g/devel/message/49973
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Andrew Fish via Groups.Io



> On Nov 5, 2019, at 3:54 AM, Laszlo Ersek  wrote:
> 
> On 11/05/19 07:15, Andrew Fish via Groups.Io wrote:
> 
>> 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. 
> 
> Good point; for example OVMF and ArmVirtQemu* do this, with the help of
> QemuBootOrderLib. In essence:
> 
> - connect a particular set of devices ("ConnectDevicesFromQemu")
>  - if that fails, call EfiBootManagerConnectAll()
> 
> - call EfiBootManagerRefreshAllBootOption()
> 
> - register UEFI Shell boot option manually
> 
> - filter and reorder boot options in a platform specific way
>  ("RemoveStaleFvFileOptions", "SetBootOrderFromQemu")
> 
> All this happens in PlatformBootManagerAfterConsole().
> 


The intent of the EFI Boot Variables was generally for the OS Installer to 
write the nvram boot variable with the EFI_LOAD_OPTION (Boot variable name, 
 is the UINT16 hex value in BootoOrder) info. The reasons being the EFI 
code may not know the path to the OS Loader, or the arguments that should be 
passed to the OS Loader. 

I'd also point out EFI_LOAD_OPTION.Attributes has LOAD_OPTION_ACTIVE  and 
LOAD_OPTION_HIDDEN bits that give you more control of how the Boot Manager/BDS 
will deal with the existing nvram boot option. 

Thanks,

Andrew Fish


> Thanks,
> Laszlo
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49967): https://edk2.groups.io/g/devel/message/49967
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Laszlo Ersek
On 11/05/19 07:15, Andrew Fish via Groups.Io wrote:

> 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. 

Good point; for example OVMF and ArmVirtQemu* do this, with the help of
QemuBootOrderLib. In essence:

- connect a particular set of devices ("ConnectDevicesFromQemu")
  - if that fails, call EfiBootManagerConnectAll()

- call EfiBootManagerRefreshAllBootOption()

- register UEFI Shell boot option manually

- filter and reorder boot options in a platform specific way
  ("RemoveStaleFvFileOptions", "SetBootOrderFromQemu")

All this happens in PlatformBootManagerAfterConsole().

Thanks,
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49963): https://edk2.groups.io/g/devel/message/49963
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-05 Thread Laszlo Ersek
On 11/05/19 04:24, Ashish Singhal 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?

(I'm going to state the same thing that's been said in this thread
already, just maybe with a different formulation.)

In order for you to end up with a particular auto-generated option in
the boot manager, two "kinds" of things are necessary.


(1) Producing the protocol instance:

(1a) Your PlatformBootManagerLib instance must actively *connect* the
device in question to a suitable UEFI driver that follows to the UEFI
driver model, such that the UEFI driver produce the LoadFile protocol
instance. For example, you could be calling the
EfiBootManagerConnectAll() API, from UefiBootManagerLib.

(1b) Alternatively, if the device is a platform device, then you might
need a DXE driver, built into your platform firmware, that produces
LoadFile on top of the device, running (directly or indirectly) in the
driver's entry point function.


(2) Creating a boot option for the protocol instance:

(2a) With the LoadFile protocol instance existing, your
PlatformBootManagerLib instance must actively call a UefiBootManagerLib
API -- such as EfiBootManagerRefreshAllBootOption() -- that scans the
UEFI protocol database for various "bootable" protocols, and
auto-generates UEFI Boot variables for them (and updates BootOrder too).

(2b) Alternatively, your PlatformBootManagerLib instance may be
auto-setting Boot / BootOrder, in response to the LoadFile instance
in question, in some different manner.



The point is that *all* of the above actions are under your control. If
you want to prevent the auto-generation of a particular boot option,
then break the dependency chain in any one spot above, and then the
option will not be auto-generated.

- do not connect the device to a driver in your PlatformBootManagerLib,
- or remove the platform DXE driver, if you have that,

or:

- do not call EfiBootManagerRefreshAllBootOption(),
- or stop manually creating Boot / BootOrder for the subject
LoadFile (if you do that currently).

(

I did not point out all this when I first responded to your posting,
because I assumed your next question would be:

  OK, but then what do I call *instead of*
  EfiBootManagerRefreshAllBootOption()? I do need the auto-generation of
  boot options, speaking generally, except for this one LoadFile
  instance. I don't want to rewrite all of
  EfiBootManagerRefreshAllBootOption() as a platform function, just for
  the sake of this one exception.

Anticipating that counter-argument, I was tempted to suggest a different
approach (which we've done in the past): namely, making some lower-level
functions in UefiBootManagerLib public, so that PlatformBootManagerLib
instances can reuse those utility functions with finer granularity.

However, that approach is not extremely far from controlling
UefiBootManagerLib by different means, and in this particular case, I
couldn't suggest any obvious low-level functions from
UefiBootManagerLib, for making public, and to call in place of
EfiBootManagerRefreshAllBootOption(). For that, I think quite a bit of
refactoring would be necessary too.

And so I figured I'd let Ray and others respond first, to your proposal.

)

Thanks
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49962): https://edk2.groups.io/g/devel/message/49962
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-04 Thread Andrew Fish via Groups.Io


> On Nov 4, 2019, at 11:42 PM, Ashish Singhal  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: af...@apple.com  
> Sent: Monday, November 4, 2019 10:22 PM
> To: Ashish Singhal 
> Cc: devel@edk2.groups.io; Ni, Ray ; Laszlo Ersek 
> ; Wang, Jian J ; Wu, Hao A 
> ; Gao, Zhichao ; Mike Kinney 
> 
> 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  <mailto:ashishsin...@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: af...@apple.com <mailto:af...@apple.com>  <mailto:af...@apple.com>> 
> Sent: Monday, November 4, 2019 10:01 PM
> To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>
> Cc: Ni, Ray mailto:ray...@intel.com>>; Laszlo Ersek 
> mailto:ler...@redhat.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>; Mike Kinney 
> mailto:michael.d.kin...@intel.com>>
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
> On Nov 4, 2019, at 9:24 PM, Ashish Singhal  <mailto:ashishsin...@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 mailto:ray...@intel.com>> 
> Sent: Monday, November 4, 2019 7:42 PM
> To: Laszlo Ersek mailto:ler...@redhat.com>>; 
> devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Ashish Singhal 
> mailto:ashishsin..

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-04 Thread Ashish Singhal
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.

Thanks
Ashish

From: af...@apple.com 
Sent: Monday, November 4, 2019 10:22 PM
To: Ashish Singhal 
Cc: devel@edk2.groups.io; Ni, Ray ; Laszlo Ersek 
; Wang, Jian J ; Wu, Hao A 
; Gao, Zhichao ; Mike Kinney 

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 
mailto:ashishsin...@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: af...@apple.com<mailto:af...@apple.com> 
mailto:af...@apple.com>>
Sent: Monday, November 4, 2019 10:01 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>
Cc: Ni, Ray mailto:ray...@intel.com>>; Laszlo Ersek 
mailto:ler...@redhat.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>; Mike Kinney 
mailto:michael.d.kin...@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

On Nov 4, 2019, at 9:24 PM, Ashish Singhal 
mailto:ashishsin...@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 mailto:ray...@intel.com>>
Sent: Monday, November 4, 2019 7:42 PM
To: Laszlo Ersek mailto:ler...@redhat.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao....@intel.com>>
Cc: Kinney, Michael D 
mailto:michael.d.kin...@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 mailto:ler...@redhat.com>>
Sent: Thursday, October 31, 2019 6:15 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
ashishsin...@nvidia.com<mailto:ashishsin...@nvidia.com>; Wang, Jian J
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Ni, Ray
mailto:ray...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM
enumeration

+Ray, +Zhichao

(although, the actual patch seems to be missing from t

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-04 Thread Andrew Fish via Groups.Io
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  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: af...@apple.com  
> Sent: Monday, November 4, 2019 10:01 PM
> To: devel@edk2.groups.io; Ashish Singhal 
> Cc: Ni, Ray ; Laszlo Ersek ; Wang, Jian 
> J ; Wu, Hao A ; Gao, Zhichao 
> ; Mike Kinney 
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
>
> On Nov 4, 2019, at 9:24 PM, Ashish Singhal  <mailto:ashishsin...@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 mailto:ray...@intel.com>> 
> Sent: Monday, November 4, 2019 7:42 PM
> To: Laszlo Ersek mailto:ler...@redhat.com>>; 
> devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@intel.com>>
> Cc: Kinney, Michael D  <mailto:michael.d.kin...@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 mailto:ler...@redhat.com>>
> Sent: Thursday, October 31, 2019 6:15 PM
> To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>; 
> ashishsin...@nvidia.com <mailto:ashishsin...@nvidia.com>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Ni, Ray 
> mailto:ray...@intel.com>>; Gao, Zhichao 
> mailto:zhichao@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  

Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-04 Thread Ashish Singhal
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: af...@apple.com 
Sent: Monday, November 4, 2019 10:01 PM
To: devel@edk2.groups.io; Ashish Singhal 
Cc: Ni, Ray ; Laszlo Ersek ; Wang, Jian J 
; Wu, Hao A ; Gao, Zhichao 
; Mike Kinney 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

On Nov 4, 2019, at 9:24 PM, Ashish Singhal 
mailto:ashishsin...@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 mailto:ray...@intel.com>>
Sent: Monday, November 4, 2019 7:42 PM
To: Laszlo Ersek mailto:ler...@redhat.com>>; 
devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Ashish Singhal 
mailto:ashishsin...@nvidia.com>>; Wang, Jian J 
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Gao, Zhichao 
mailto:zhichao@intel.com>>
Cc: Kinney, Michael D 
mailto:michael.d.kin...@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 mailto:ler...@redhat.com>>
Sent: Thursday, October 31, 2019 6:15 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; 
ashishsin...@nvidia.com<mailto:ashishsin...@nvidia.com>; Wang, Jian J
mailto:jian.j.w...@intel.com>>; Wu, Hao A 
mailto:hao.a...@intel.com>>; Ni, Ray
mailto:ray...@intel.com>>; Gao, Zhichao 
mailto:zhichao....@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.
---




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49954): https://edk2.groups.io/g/devel/message/49954
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-04 Thread Andrew Fish via Groups.Io
> On Nov 4, 2019, at 9:24 PM, Ashish Singhal  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 mailto:ray...@intel.com>> 
> Sent: Monday, November 4, 2019 7:42 PM
> To: Laszlo Ersek mailto:ler...@redhat.com>>; 
> devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Ashish Singhal 
> mailto:ashishsin...@nvidia.com>>; Wang, Jian J 
> mailto:jian.j.w...@intel.com>>; Wu, Hao A 
> mailto:hao.a...@intel.com>>; Gao, Zhichao 
> mailto:zhichao....@intel.com>>
> Cc: Kinney, Michael D  <mailto:michael.d.kin...@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 
>> Sent: Thursday, October 31, 2019 6:15 PM
>> To: devel@edk2.groups.io; ashishsin...@nvidia.com; Wang, Jian J 
>> ; Wu, Hao A ; Ni, Ray 
>> ; Gao, Zhichao 
>> 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.
> ---
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49953): https://edk2.groups.io/g/devel/message/49953
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-04 Thread Ashish Singhal
I sent 2 patches that day for 2 separate changes. I have resent those just now.

-Original Message-
From: Laszlo Ersek  
Sent: Friday, November 1, 2019 4:58 PM
To: Ashish Singhal ; devel@edk2.groups.io; 
jian.j.w...@intel.com; hao.a...@intel.com; Ray Ni ; Zhichao 
Gao 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

On 11/01/19 23:05, Ashish Singhal wrote:
> Please refer to https://edk2.groups.io/g/devel/message/49627 for the patch.

Thanks! The subject line is:

[PATCH] MdeModulePkg/UefiBootManagerLib: Support skipping BM enumeration

This looks like a  glitch to me -- a failure to reflect your message 
to *some* subscribers. It's not just me that hasn't received the patch, but at 
least a mailing list daemon too (which is subscribed to the list in order to 
create a "secondary archive"):

https://www.redhat.com/archives/edk2-devel-archive/2019-October/author.html

The patch is not listed under your name.


On the other hand, the patch is there in the (also subscribed) 
 collection, with apparently correct threading even:

8a8ecae581eeffd193157096f09da53a3ab3a7ab.1572406843.git.ashishsingha@nvidia.com">http://mid.mail-archive.com/8a8ecae581eeffd193157096f09da53a3ab3a7ab.1572406843.git.ashishsingha@nvidia.com

So... I'm not sure.

Ray, Zhichao, did you get a copy of the patch? If not, then I think we should 
ask Ashish to please repost.

Thanks
Laszlo

> -Original Message-
> From: Laszlo Ersek 
> Sent: Friday, November 1, 2019 3:42 PM
> To: Ashish Singhal ; devel@edk2.groups.io; 
> jian.j.w...@intel.com; hao.a...@intel.com; Ray Ni ; 
> Zhichao Gao 
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM 
> enumeration
> 
> On 10/31/19 13:42, Ashish Singhal wrote:
>> Hello Laszlo,
>>
>> This is the cover letter. The patch was also submitted.
> 
> Can you please state the groups.io permalink for the posted patch, and/or the 
> Message-Id header for the posted patch?
> 
>> Please let me know if you are unable to find it and I'll resubmit it.
> 
> I can't see the patch email in my list folder.
> 
> Thanks
> Laszlo
> 
> --
> - 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.
> --
> -
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49938): https://edk2.groups.io/g/devel/message/49938
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-01 Thread Laszlo Ersek
On 11/01/19 23:05, Ashish Singhal wrote:
> Please refer to https://edk2.groups.io/g/devel/message/49627 for the patch.

Thanks! The subject line is:

[PATCH] MdeModulePkg/UefiBootManagerLib: Support skipping BM enumeration

This looks like a  glitch to me -- a failure to reflect your
message to *some* subscribers. It's not just me that hasn't received the
patch, but at least a mailing list daemon too (which is subscribed to
the list in order to create a "secondary archive"):

https://www.redhat.com/archives/edk2-devel-archive/2019-October/author.html

The patch is not listed under your name.


On the other hand, the patch is there in the (also subscribed)
 collection, with apparently correct threading even:

8a8ecae581eeffd193157096f09da53a3ab3a7ab.1572406843.git.ashishsingha@nvidia.com">http://mid.mail-archive.com/8a8ecae581eeffd193157096f09da53a3ab3a7ab.1572406843.git.ashishsingha@nvidia.com

So... I'm not sure.

Ray, Zhichao, did you get a copy of the patch? If not, then I think we
should ask Ashish to please repost.

Thanks
Laszlo

> -Original Message-
> From: Laszlo Ersek  
> Sent: Friday, November 1, 2019 3:42 PM
> To: Ashish Singhal ; devel@edk2.groups.io; 
> jian.j.w...@intel.com; hao.a...@intel.com; Ray Ni ; Zhichao 
> Gao 
> Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration
> 
> On 10/31/19 13:42, Ashish Singhal wrote:
>> Hello Laszlo,
>>
>> This is the cover letter. The patch was also submitted.
> 
> Can you please state the groups.io permalink for the posted patch, and/or the 
> Message-Id header for the posted patch?
> 
>> Please let me know if you are unable to find it and I'll resubmit it.
> 
> I can't see the patch email in my list folder.
> 
> Thanks
> Laszlo
> 
> ---
> 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.
> ---
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49875): https://edk2.groups.io/g/devel/message/49875
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-01 Thread Ashish Singhal
Please refer to https://edk2.groups.io/g/devel/message/49627 for the patch.

Thanks
Ashish

-Original Message-
From: Laszlo Ersek  
Sent: Friday, November 1, 2019 3:42 PM
To: Ashish Singhal ; devel@edk2.groups.io; 
jian.j.w...@intel.com; hao.a...@intel.com; Ray Ni ; Zhichao 
Gao 
Subject: Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

On 10/31/19 13:42, Ashish Singhal wrote:
> Hello Laszlo,
> 
> This is the cover letter. The patch was also submitted.

Can you please state the groups.io permalink for the posted patch, and/or the 
Message-Id header for the posted patch?

> Please let me know if you are unable to find it and I'll resubmit it.

I can't see the patch email in my list folder.

Thanks
Laszlo

---
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.
---

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49872): https://edk2.groups.io/g/devel/message/49872
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-11-01 Thread Laszlo Ersek
On 10/31/19 13:42, Ashish Singhal wrote:
> Hello Laszlo,
> 
> This is the cover letter. The patch was also submitted.

Can you please state the groups.io permalink for the posted patch,
and/or the Message-Id header for the posted patch?

> Please let me know if you are unable to find it and I'll resubmit it.

I can't see the patch email in my list folder.

Thanks
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49864): https://edk2.groups.io/g/devel/message/49864
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-10-31 Thread Laszlo Ersek
+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
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49746): https://edk2.groups.io/g/devel/message/49746
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[edk2-devel] [PATCH] Support skipping automatic BM enumeration

2019-10-29 Thread Ashish Singhal
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

-- 
2.7.4


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#49626): https://edk2.groups.io/g/devel/message/49626
Mute This Topic: https://groups.io/mt/39747302/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-