RFC: Boot Discovery Policy


Grzegorz Bernacki
 

Hi,

I would like to ask you for review of following proposal. It will
allow the user to specify which devices should be connected at the
boot. User selection will be saved in variable and Boot Manager Policy
Protocol will be used to connect specified devices.
Design can be found at:
https://drive.google.com/file/d/1OiQrXuQT9wfr8hPahzXcPj6mMszGPQUw/view?usp=sharing

thanks,
greg


Grzegorz Bernacki
 

Adding reviewers and ARM into the loop...

Ray, Zhichao,
Can I ask you to review the design and let me know if you got any comments.

thanks
greg


czw., 29 kwi 2021 o 10:11 Grzegorz Bernacki <gjb@semihalf.com> napisał(a):


Hi,

I would like to ask you for review of following proposal. It will
allow the user to specify which devices should be connected at the
boot. User selection will be saved in variable and Boot Manager Policy
Protocol will be used to connect specified devices.
Design can be found at:
https://drive.google.com/file/d/1OiQrXuQT9wfr8hPahzXcPj6mMszGPQUw/view?usp=sharing

thanks,
greg


Ni, Ray
 

greg,
I reviewed your design and learned several points:
1. UiApp adds an option to let user select which class to connect
[ray] can you explain which UiApp your design changes? the one in MdeModulePkg? can you investigate whether it's doable to produce such setup option through another driver?

2. bcfg adds an option to let user select which class to connect
[ray] you need to discuss with USWG on the bcfg shell command change.

3. The option added above controls the PlatformBootManagerLib behavior
[ray] This lib belongs to platform scope so you can freely change it as long as the platform owner agrees.

Thanks,
ray

-----Original Message-----
From: rfc@edk2.groups.io <rfc@edk2.groups.io> On Behalf Of Grzegorz Bernacki
Sent: Thursday, April 29, 2021 7:19 PM
To: rfc@edk2.groups.io
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Sunny Wang <Sunny.Wang@arm.com>; Marcin Wojtas
<mw@semihalf.com>; zhichao.gao@intel.co; Ni, Ray <ray.ni@intel.com>
Subject: Re: [edk2-rfc] RFC: Boot Discovery Policy

Adding reviewers and ARM into the loop...

Ray, Zhichao,
Can I ask you to review the design and let me know if you got any comments.

thanks
greg


czw., 29 kwi 2021 o 10:11 Grzegorz Bernacki <gjb@semihalf.com> napisał(a):

Hi,

I would like to ask you for review of following proposal. It will
allow the user to specify which devices should be connected at the
boot. User selection will be saved in variable and Boot Manager Policy
Protocol will be used to connect specified devices.
Design can be found at:
https://drive.google.com/file/d/1OiQrXuQT9wfr8hPahzXcPj6mMszGPQUw/view?usp=sharing

thanks,
greg



Grzegorz Bernacki
 

Hi Ray,
Thanks a lot for review. Regarding comment #1. I proposed two options:
1) Change directly MdeModulePkg/Library/BootMaintenanceManagerUiLib
and add an Boot Discovery Policy entry in 'Boot Maintenance Manager'
menu
or
2) Add a new library which uses EFI_IFR_BOOT_MAINTENANCE_GUID
classguid and allow Boot Maintanance Manager to connect it via
BmmListThirdPartyDrivers(). However, drawback of that solution is
creation of a new form with Boot Discovery Policy drop-down list

Second option uses separate library. What is your opinion on above?
thanks,
greg

czw., 29 kwi 2021 o 14:58 Ni, Ray <ray.ni@intel.com> napisał(a):


greg,
I reviewed your design and learned several points:
1. UiApp adds an option to let user select which class to connect
[ray] can you explain which UiApp your design changes? the one in MdeModulePkg? can you investigate whether it's doable to produce such setup option through another driver?

2. bcfg adds an option to let user select which class to connect
[ray] you need to discuss with USWG on the bcfg shell command change.

3. The option added above controls the PlatformBootManagerLib behavior
[ray] This lib belongs to platform scope so you can freely change it as long as the platform owner agrees.

Thanks,
ray

-----Original Message-----
From: rfc@edk2.groups.io <rfc@edk2.groups.io> On Behalf Of Grzegorz Bernacki
Sent: Thursday, April 29, 2021 7:19 PM
To: rfc@edk2.groups.io
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Sunny Wang <Sunny.Wang@arm.com>; Marcin Wojtas
<mw@semihalf.com>; zhichao.gao@intel.co; Ni, Ray <ray.ni@intel.com>
Subject: Re: [edk2-rfc] RFC: Boot Discovery Policy

Adding reviewers and ARM into the loop...

Ray, Zhichao,
Can I ask you to review the design and let me know if you got any comments.

thanks
greg


czw., 29 kwi 2021 o 10:11 Grzegorz Bernacki <gjb@semihalf.com> napisał(a):

Hi,

I would like to ask you for review of following proposal. It will
allow the user to specify which devices should be connected at the
boot. User selection will be saved in variable and Boot Manager Policy
Protocol will be used to connect specified devices.
Design can be found at:
https://drive.google.com/file/d/1OiQrXuQT9wfr8hPahzXcPj6mMszGPQUw/view?usp=sharing

thanks,
greg







Grzegorz Bernacki
 

Adding RPI maintainers...
Ard, Leif, Pete,
Can I ask you for you comments on the design?

thanks,
greg

czw., 29 kwi 2021 o 13:19 Grzegorz Bernacki via groups.io
<gjb=semihalf.com@groups.io> napisał(a):


Adding reviewers and ARM into the loop...

Ray, Zhichao,
Can I ask you to review the design and let me know if you got any comments.

thanks
greg


czw., 29 kwi 2021 o 10:11 Grzegorz Bernacki <gjb@semihalf.com> napisał(a):

Hi,

I would like to ask you for review of following proposal. It will
allow the user to specify which devices should be connected at the
boot. User selection will be saved in variable and Boot Manager Policy
Protocol will be used to connect specified devices.
Design can be found at:
https://drive.google.com/file/d/1OiQrXuQT9wfr8hPahzXcPj6mMszGPQUw/view?usp=sharing

thanks,
greg




Sunny Wang
 

For Ard, Pete, and Leif's reference, this is the follow-up to my Fast Boot related commit https://github.com/tianocore/edk2-platforms/commit/efdc159ef7c9f15581a0f63d755a1530ff475156. We want to add the setup option to the core code instead of the platform code so that we can easily solve similar problems that are related to Fast boot in other platforms as well. Therefore, I think RPI should be fine with this design.

Best Regards,
Sunny Wang

-----Original Message-----
From: Grzegorz Bernacki <gjb@semihalf.com>
Sent: Thursday, April 29, 2021 9:43 PM
To: rfc@edk2.groups.io; Grzegorz Bernacki <gjb@semihalf.com>
Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Sunny Wang <Sunny.Wang@arm.com>; Marcin Wojtas <mw@semihalf.com>; zhichao.gao@intel.co; ray.ni@intel.com; pete@akeo.ie; leif@nuviainc.com; ardb+tianocore@kernel.org
Subject: Re: [edk2-rfc] RFC: Boot Discovery Policy

Adding RPI maintainers...
Ard, Leif, Pete,
Can I ask you for you comments on the design?

thanks,
greg

czw., 29 kwi 2021 o 13:19 Grzegorz Bernacki via groups.io <gjb=semihalf.com@groups.io> napisał(a):

Adding reviewers and ARM into the loop...

Ray, Zhichao,
Can I ask you to review the design and let me know if you got any comments.

thanks
greg


czw., 29 kwi 2021 o 10:11 Grzegorz Bernacki <gjb@semihalf.com> napisał(a):

Hi,

I would like to ask you for review of following proposal. It will
allow the user to specify which devices should be connected at the
boot. User selection will be saved in variable and Boot Manager
Policy Protocol will be used to connect specified devices.
Design can be found at:
https://drive.google.com/file/d/1OiQrXuQT9wfr8hPahzXcPj6mMszGPQUw/vi
ew?usp=sharing

thanks,
greg



IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Ard Biesheuvel <ardb@...>
 

On Thu, 29 Apr 2021 at 15:54, Sunny Wang <Sunny.Wang@arm.com> wrote:

For Ard, Pete, and Leif's reference, this is the follow-up to my Fast Boot related commit https://github.com/tianocore/edk2-platforms/commit/efdc159ef7c9f15581a0f63d755a1530ff475156. We want to add the setup option to the core code instead of the platform code so that we can easily solve similar problems that are related to Fast boot in other platforms as well. Therefore, I think RPI should be fine with this design.
So the problem is secondary loaders that assume that all peripherals
have been connected, right? To me, the options Minimal/All Network
Devices/All Devices seems a bit arbitrary - what about block devices?


Sunny Wang
 

Hi Ard,

Thanks for checking this.
Yeah, you're right if the secondary loaders you meant here are OS boot loaders and some applications for system deployment like iPXE.
This change is based on EFI_BOOT_MANAGER_POLICY_PROTOCOL which currently only supports EFI_BOOT_MANAGER_POLICY_NETWORK_GUID and EFI_BOOT_MANAGER_POLICY_CONNECT_ALL_GUID classes, so it only has Minimal, All Network Devices, All Devices options for using the existing classes and code. For block devices, if you see a need, I think you can submit a Code-first Bugzilla ticket and UEFI ECR for the follow-up (adding EFI_BOOT_MANAGER_POLICY_BLOCK_GUID). What do you think?

Best Regards,
Sunny Wang

-----Original Message-----
From: Ard Biesheuvel <ardb@kernel.org>
Sent: Saturday, May 8, 2021 1:37 AM
To: Sunny Wang <Sunny.Wang@arm.com>
Cc: Grzegorz Bernacki <gjb@semihalf.com>; rfc@edk2.groups.io; Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Marcin Wojtas <mw@semihalf.com>; zhichao.gao@intel.co; ray.ni@intel.com; pete@akeo.ie; leif@nuviainc.com; ardb+tianocore@kernel.org
Subject: Re: [edk2-rfc] RFC: Boot Discovery Policy

On Thu, 29 Apr 2021 at 15:54, Sunny Wang <Sunny.Wang@arm.com> wrote:

For Ard, Pete, and Leif's reference, this is the follow-up to my Fast Boot related commit https://github.com/tianocore/edk2-platforms/commit/efdc159ef7c9f15581a0f63d755a1530ff475156. We want to add the setup option to the core code instead of the platform code so that we can easily solve similar problems that are related to Fast boot in other platforms as well. Therefore, I think RPI should be fine with this design.
So the problem is secondary loaders that assume that all peripherals have been connected, right? To me, the options Minimal/All Network Devices/All Devices seems a bit arbitrary - what about block devices?
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


Ard Biesheuvel <ardb@...>
 

On Mon, 10 May 2021 at 09:27, Sunny Wang <Sunny.Wang@arm.com> wrote:

Hi Ard,

Thanks for checking this.
Yeah, you're right if the secondary loaders you meant here are OS boot loaders and some applications for system deployment like iPXE.
This change is based on EFI_BOOT_MANAGER_POLICY_PROTOCOL which currently only supports EFI_BOOT_MANAGER_POLICY_NETWORK_GUID and EFI_BOOT_MANAGER_POLICY_CONNECT_ALL_GUID classes, so it only has Minimal, All Network Devices, All Devices options for using the existing classes and code. For block devices, if you see a need, I think you can submit a Code-first Bugzilla ticket and UEFI ECR for the follow-up (adding EFI_BOOT_MANAGER_POLICY_BLOCK_GUID). What do you think?
If it matches the current spec definitional (however surprisingly), I
am fine with the current proposal.



-----Original Message-----
From: Ard Biesheuvel <ardb@kernel.org>
Sent: Saturday, May 8, 2021 1:37 AM
To: Sunny Wang <Sunny.Wang@arm.com>
Cc: Grzegorz Bernacki <gjb@semihalf.com>; rfc@edk2.groups.io; Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>; Marcin Wojtas <mw@semihalf.com>; zhichao.gao@intel.co; ray.ni@intel.com; pete@akeo.ie; leif@nuviainc.com; ardb+tianocore@kernel.org
Subject: Re: [edk2-rfc] RFC: Boot Discovery Policy

On Thu, 29 Apr 2021 at 15:54, Sunny Wang <Sunny.Wang@arm.com> wrote:

For Ard, Pete, and Leif's reference, this is the follow-up to my Fast Boot related commit https://github.com/tianocore/edk2-platforms/commit/efdc159ef7c9f15581a0f63d755a1530ff475156. We want to add the setup option to the core code instead of the platform code so that we can easily solve similar problems that are related to Fast boot in other platforms as well. Therefore, I think RPI should be fine with this design.
So the problem is secondary loaders that assume that all peripherals have been connected, right? To me, the options Minimal/All Network Devices/All Devices seems a bit arbitrary - what about block devices?
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.