Support the feature that BIOS get boot option from BMC and set
it to the first boot order.
The feature works dependding on this patch and the OPP patch
"Hisilicon/D03/D05: get boot option from BMC" both be added.
And it have a limitation, only set the boot order by type, can't by
the specfic devices.
example: there have 4 ethernet ports at D05 board, it can only be booted
from the ethernet port, but which port can not be defined. so it try from
the first port to the end.
so is there any solution? expect your comments.
Signed-off-by: Huang ming <huangming23(a)linaro.org>
Signed-off-by: Chenhui Sun <chenhui.sun(a)linaro.org>
---
.../Universal/BdsDxe/BdsEntry.c | 44 ++++++++++++----------
1 file changed, 24 insertions(+), 20 deletions(-)
diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c b/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c
index bf81de4..ee51055 100644
--- a/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c
+++ b/IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c
@@ -36,7 +36,6 @@ EFI_BDS_ARCH_PROTOCOL gBds = {
BdsEntry
};
-UINT16 *mBootNext = NULL;
///
/// The read-only variables defined in UEFI Spec.
@@ -123,6 +122,9 @@ BdsBootDeviceSelect (
BOOLEAN BootNextExist;
LIST_ENTRY *LinkBootNext;
EFI_EVENT ConnectConInEvent;
+ UINTN BootNextSize;
+ UINT16 *BootNext = NULL;
+ UINT16 Index;
//
// Got the latest boot option
@@ -154,7 +156,16 @@ BdsBootDeviceSelect (
}
}
- if (mBootNext != NULL) {
+ //
+ // Check if we have the boot next option
+ //
+ BootNext = BdsLibGetVariableAndSize (
+ L"BootNext",
+ &gEfiGlobalVariableGuid,
+ &BootNextSize
+ );
+
+ if (BootNext != NULL) {
//
// Indicate we have the boot next variable, so this time
// boot will always have this boot option
@@ -179,17 +190,19 @@ BdsBootDeviceSelect (
//
// Add the boot next boot option
//
- UnicodeSPrint (Buffer, sizeof (Buffer), L"Boot%04x", *mBootNext);
- BootOption = BdsLibVariableToOption (&BootLists, Buffer);
+ for (Index = 0; Index < (BootNextSize/sizeof(UINT16)); Index++) {
+ UnicodeSPrint (Buffer, sizeof (Buffer), L"Boot%04x", BootNext[Index]);
+ BootOption = BdsLibVariableToOption (&BootLists, Buffer);
- //
- // If fail to get boot option from variable, just return and do nothing.
- //
- if (BootOption == NULL) {
- return;
- }
+ //
+ // If fail to get boot option from variable, just return and do nothing.
+ //
+ if (BootOption == NULL) {
+ return;
+ }
- BootOption->BootCurrent = *mBootNext;
+ BootOption->BootCurrent = BootNext[Index];
+ }
}
//
// Parse the boot order to get boot option
@@ -528,7 +541,6 @@ BdsEntry (
{
LIST_ENTRY DriverOptionList;
LIST_ENTRY BootOptionList;
- UINTN BootNextSize;
CHAR16 *FirmwareVendor;
EFI_STATUS Status;
UINT16 BootTimeOut;
@@ -638,14 +650,6 @@ BdsEntry (
if (!IsListEmpty (&DriverOptionList)) {
BdsLibLoadDrivers (&DriverOptionList);
}
- //
- // Check if we have the boot next option
- //
- mBootNext = BdsLibGetVariableAndSize (
- L"BootNext",
- &gEfiGlobalVariableGuid,
- &BootNextSize
- );
//
// Setup some platform policy here
--
1.9.1
Hi folks,
I can see Linaro is Linux oriented, but most of my colleagues are much
more familiar with Windows and Source Insight, rather than Linux and
vim/emacs. We may be happier and more effective if we can build aarch64
UEFI on Windows directly.
So how can we do that? Is there any detailed guideline?
Thanks and regards,
Gary (Heyi Guo)
This is the OpenPlatformPkg counterpart of the series
Embedded|ArmPlatformPkg: spring cleaning + DtPlatformDxe switch
sent out out roughly the same time as this one. Note that they are inter-
dependent, i.e., applying one without the other will not result in a
working build.
Patches #1 to #4 are cleanups. Patches #5 and #6 switch TC2 and FVP-AArch64
to the new and simplified DtPlatformDxe driver.
Ard Biesheuvel (6):
Platforms/VExpress: remove unused logo PCD
Platforms/VExpress: remove unused StatusCode references
Platforms/VExpress: get rid of Tiano compression
Platforms/VExpress: remove BdsLib library class resolutions
Platforms/TC2: move to new DtPlatformDxe driver
Platforms/FVP-AArch64: switch to simpler DT platform driver
Platforms/ARM/Binary/DeviceTree/fvp-base-gicv2-psci.dtb | Bin 0 -> 10368 bytes
Platforms/ARM/Binary/DeviceTree/fvp-base-gicv3-psci.dtb | Bin 0 -> 10835 bytes
Platforms/ARM/Binary/DeviceTree/fvp-foundation-gicv2-psci.dtb | Bin 0 -> 7673 bytes
Platforms/ARM/Binary/DeviceTree/fvp-foundation-gicv3-psci.dtb | Bin 0 -> 8140 bytes
Platforms/ARM/Binary/DeviceTree/vexpress-v2p-ca15_a7.dtb | Bin 0 -> 19070 bytes
Platforms/ARM/Juno/ArmJuno.dsc | 8 +++
Platforms/ARM/Juno/ArmJuno.fdf | 9 ----
Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc | 15 ++++--
Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 27 ++--------
Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 31 +++++++-----
Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 52 ++++----------------
Platforms/ARM/VExpress/ArmVExpress.dsc.inc | 24 +--------
12 files changed, 51 insertions(+), 115 deletions(-)
create mode 100644 Platforms/ARM/Binary/DeviceTree/fvp-base-gicv2-psci.dtb
create mode 100644 Platforms/ARM/Binary/DeviceTree/fvp-base-gicv3-psci.dtb
create mode 100644 Platforms/ARM/Binary/DeviceTree/fvp-foundation-gicv2-psci.dtb
create mode 100644 Platforms/ARM/Binary/DeviceTree/fvp-foundation-gicv3-psci.dtb
create mode 100644 Platforms/ARM/Binary/DeviceTree/vexpress-v2p-ca15_a7.dtb
--
2.9.3
Hi,
Quick resend of the RTC support - one file remained unstaged and had
to be added. I'm sorry for noise. All details can be found in the changelog
below.
The patches are also available in the github.
https://github.com/MarvellEmbeddedProcessors/edk2-open-platform/commits/opp…
Any comments or remarks would be very welcome.
Best regards,
Marcin
Changelog:
v2 -> v3:
* Add missing local header
* Slightly reword patch 2/2 commit log
v1 -> v2:
* Include <Library/UefiBootServicesTableLib.h> instead of extern *gBS
* Remove RtcReset function entirely
* Add RtcDelayedWrite helper function for modification of time and alarm
registers - cleaner code, with common valid comment.
* Use MmioAndThenOr32 instead of RtcUpdateMbusTimingParams function, remove
magic
* Add proper error path instead of assertions
* Move defines to local header
* Create new RTC description template in MvHwDescLib.h and use it for
obtaining controller data.
* Sort packages in inf file
Marcin Wojtas (2):
Platforms/Marvell: Introduce RTC support
Platforms/Marvell: Enable RTC library on Armada70x0 platforms
Platforms/Marvell/Armada/Armada.dsc.inc | 3 +-
Platforms/Marvell/Armada/Armada70x0.dsc | 3 +
.../Library/RealTimeClockLib/RealTimeClockLib.c | 335 +++++++++++++++++++++
.../Library/RealTimeClockLib/RealTimeClockLib.h | 50 +++
.../Library/RealTimeClockLib/RealTimeClockLib.inf | 53 ++++
Platforms/Marvell/Include/Library/MvHwDescLib.h | 25 ++
Platforms/Marvell/Marvell.dec | 3 +
7 files changed, 471 insertions(+), 1 deletion(-)
create mode 100644 Platforms/Marvell/Armada/Library/RealTimeClockLib/RealTimeClockLib.c
create mode 100644 Platforms/Marvell/Armada/Library/RealTimeClockLib/RealTimeClockLib.h
create mode 100644 Platforms/Marvell/Armada/Library/RealTimeClockLib/RealTimeClockLib.inf
--
1.8.3.1