On 12/15/14 16:14, Olivier Martin wrote:
> I guess this change should have a better location in
> ArmPlatformPkg/Library/PlatformIntelBdsLib? At least for:
> - connect all drivers and devices
> - enumerate all boot options
> 
> It looks the way the Intel BDS works it requires all the drivers and devices
> to be connected.
> What do you think? Do you think is specific to qEmu?

Intel BDS itself does not require all drivers and devices to be
connected. However, the QEMU boot order logic does require that.

This patch per se could easily go into
ArmPlatformPkg/Library/PlatformIntelBdsLib, indeed.

However, patch 11/13 will further extend the boot policy, so that it
includes a call to SetBootOrderFromQemu(). *That* is fully qemu
specific, and it didn't feel right to add it to
ArmPlatformPkg/Library/PlatformIntelBdsLib.

So the dependencies go like this:
- For the ArmVirtualizationQemu.dsc build platform, I'd like to call
  SetBootOrderFromQemu(). That's one of the end-goals of this series.

- SetBootOrderFromQemu() is probably not appropriate for
  the more generic ArmPlatformPkg/Library/PlatformIntelBdsLib, so let's
  clone it for ArmVirtualizationPkg.

- Correct working of SetBootOrderFromQemu() depends on
  BdsLibConnectAll() + BdsLibEnumerateAllBootOption(), so add those
  calls to the ArmVirtualizationPkg clone too.

I could add BdsLibConnectAll() + BdsLibEnumerateAllBootOption() to
ArmPlatformPkg/Library/PlatformIntelBdsLib, but I would not use that
library instance, because ultimately I need SetBootOrderFromQemu(), and
I can't call *that* there. BdsLibConnectAll() +
BdsLibEnumerateAllBootOption() are just dependencies for
SetBootOrderFromQemu().

Thanks
Laszlo


> 
>> -----Original Message-----
>> From: Laszlo Ersek [mailto:[email protected]]
>> Sent: 11 December 2014 02:46
>> To: [email protected]; [email protected];
>> [email protected]; [email protected]
>> Subject: [edk2] [PATCH v3 04/13] ArmVirtualizationPkg:
>> PlatformIntelBdsLib: add basic policy
>>
>> In PlatformBdsPolicyBehavior() we should follow the same pattern as in
>> OvmfPkg's: after the consoles are connected,
>> - connect all drivers and devices,
>> - enumerate all boot options,
>> - enter the Intel BDS FrontPage if the user presses a key different
>> from
>>   Enter.
>>
>> We set the countdown to 3 seconds, similarly to the timeout that we
>> specify for ARM BDS.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Laszlo Ersek <[email protected]>
>> ---
>>
>> ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/IntelBd
>> sPlatform.h | 6 ++++++
>>
>> ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/IntelBd
>> sPlatform.c | 4 ++++
>>  ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
>> | 2 ++
>>  3 files changed, 12 insertions(+)
>>
>> diff --git
>> a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.h
>> b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.h
>> index a244ac9..c50bda2 100644
>> ---
>> a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.h
>> +++
>> b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.h
>> @@ -32,4 +32,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,
>> EITHER EXPRESS OR IMPLIED.
>>
>>  #include <Guid/GlobalVariable.h>
>>
>> +VOID
>> +PlatformBdsEnterFrontPage (
>> +  IN UINT16                 TimeoutDefault,
>> +  IN BOOLEAN                ConnectAllHappened
>> +  );
>> +
>>  #endif // _INTEL_BDS_PLATFORM_H
>> diff --git
>> a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.c
>> b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.c
>> index c07fc0f..75b956b 100644
>> ---
>> a/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.c
>> +++
>> b/ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/Intel
>> BdsPlatform.c
>> @@ -302,6 +302,10 @@ PlatformBdsPolicyBehavior (
>>
>>    Status = PlatformBdsConnectConsole ();
>>    ASSERT_EFI_ERROR (Status);
>> +
>> +  BdsLibConnectAll ();
>> +  BdsLibEnumerateAllBootOption (BootOptionList);
>> +  PlatformBdsEnterFrontPage (gPlatformBootTimeOutDefault, TRUE);
>>  }
>>
>>  /**
>> diff --git
>> a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
>> b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
>> index c825340..e16c02e 100644
>> --- a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
>> +++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc
>> @@ -177,6 +177,8 @@
>>    gArmVirtualizationTokenSpaceGuid.PcdFwCfgSelectorAddress|0x0
>>    gArmVirtualizationTokenSpaceGuid.PcdFwCfgDataAddress|0x0
>>
>> +  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
>> +
>>
>> #######################################################################
>> #########
>>  #
>>  # Components Section - list of all EDK II Modules needed by this
>> Platform
>> --
>> 1.8.3.1
>>
>>
>>
>> -----------------------------------------------------------------------
>> -------
>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>> from Actuate! Instantly Supercharge Your Business Reports and
>> Dashboards
>> with Interactivity, Sharing, Native Excel Exports, App Integration &
>> more
>> Get technology previously reserved for billion-dollar corporations,
>> FREE
>> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.c
>> lktrk
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to