[if !mso]> [if !mso]>

RE: [EDK DEV] UEFI 2.1: HII and others

Subject: RE: [EDK DEV] UEFI 2.1: HII and others

From: Richard Du <xiong.du@intel.com>

To: dev@edk.tianocore.org

Date: 2008-09-22 20:53:56

Since DCP is deprecated in UEFI 2.1 spec, not all of the Boot Manager in UEFI 2.1 systems will support DCP I think.

Though the Boot Manager *could* support DCP for backward compatibility, it doesnt have to do so (from perspective of UEFI spec).

 

Then, from the IHV side, if an add-in card is designed to work on EFI/UEFI 2.0 and UEFI 2.1+ platform, it would be better to produce both DCP (for EFI and UEFI 2.0 system) and HII (for UEFI 2.1+ system). And I prefer option 2 below for launching customized app from HII Form.

 

Thanks,

Richard


From: Samuelraj, Daniel [mailto:Daniel.Samuelraj@lsi.com]
Sent: Saturday, September 20, 2008 0:36
To: dev@edk.tianocore.org
Subject: RE: [EDK DEV] UEFI 2.1: HII and others

 

Thank you Richard for quick response.

 

I was told at UEFI PlugFest that EFI driver producing DCP is the indication to boot manager (BM) that it has non HII app and it is BMs responsibility to list this driver (basically to call SetOptions function) in BDS without driver needing to create boot option with attribute LOAD_OPTION_CATEGORY_APP.

 

What is your thought on this?

 

Thanks,

Daniel


From: Richard Du [mailto:xiong.du@intel.com]
Sent: Friday, September 19, 2008 1:07 AM
To: dev@edk.tianocore.org
Subject: RE: [EDK DEV] UEFI 2.1: HII and others

 

Daniel,

 

> 1. How would Boot Manager know the presence of HII and non HII application and how would it advertise it to the user?

For HII application, the BDS (Device Manager) could retrieve all HII package list from HII database, and then select those HII package list which contains Form package designed for Setup. EDK BDS use formset title as the name (please refer to Edk\Sample\Platform\Generic\Dxe\UefiPlatformBds\DeviceMngr\DeviceManager.c).

 

For non-HII app:

Option 1: IHV driver create boot option for customized app using architectural EFI Variable Boot#### (with attribute LOAD_OPTION_CATEGORY_APP set).

The BDS could enumerate all boot option with attribute LOAD_OPTION_CATEGORY_APP, and then provide a menu to user, boot options Description field is used as the name. In this case, the add-in card will carry two images: one EFI driver and one EFI app.

 

Option 2: launch customized app in HII Form.

For example, define an action button (EFI_IFR_ACTION) with CALLBACK flag in the Form, and in the Callback(), it could launch the customized app either by direct function call or boot service LoadImage().

 

> 2. Does this mean user needs to launch each HII instance to manage that specific controller? How would boot manager list this in boot menu?

Yes, in this case, user needs to launch each HII instance to manage corresponding controller.

 

To distinguish from different controller instances, BDS Device Manager could try to find some information from device path of the HII DriverHandle, and then show some hint to user (e.g. display the PCI device path of the controller in help of the menu).

 

The HII DriverHandle is which used to invoke HiiDatabase.NewPackageList().

In case NewPackageList() is invoked in Driver Entry Point, the ImageHandle could be used as HII DriverHandle, and the Device path will be the LoadedImageDevicePath protocol (for PCI ROM, this is controller PCI Device Path plus a relative offset range device path node).

In case NewPackageList() is invoked in Driver Binding Start(), the Controller handle could be used as HII DriverHandle, thus the DevicePath on HII DriverHandle will be the controller PCI Device path.

 

Thanks,

Richard


From: Samuelraj, Daniel [mailto:Daniel.Samuelraj@lsi.com]
Sent: Friday, September 19, 2008 9:49
To: dev@edk.tianocore.org
Subject: [EDK DEV] UEFI 2.1: HII and others

 

Hi,

Can you please help answer below questions?

  1. If driver wants to support HII app and legacy customized app.How would Boot Manager know the presence of HII and non HII application and how would it advertise it to the user? Can IHV launch their customized app using HII as we do it today using DCP? In other words will boot manager list two menu one for HII and another for non HII? How will boot manager decide the names to list these in boot menu?
  2. If there are more than one controller of same family present and if there are driver for each controller in ROM and if driver doesnt support driver family protocol then n driver instance will be present for n controllers. Does this mean user needs to launch each HII instance to manage that specific controller? How would boot manager list this in boot menu (that is from user side how will I be able to differentiate that this menu option is to manage this controller etc)?

 

Thanks,

Daniel