summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-12-08Marvell/Drivers: Reorganize Spi driversMarcin Wojtas
Hitherto MvSpiDxe driver name was very generic. In order to be ready for adding new SPI master drivers, use the controller's traditional name (it's called SPI Orion in Linux and U-Boot) for files and the entry point. Additionally, move the files to new 'MvSpiOrionDxe' directory and rename the 'Devices' and 'Variables' to reflect actual drivers' names. Change MvSpiFlash to MvSpiFlashDxe in order to be more consistent. On the occasion add sorting in the .inf files. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-12-08Marvell/Armada70x0Db: Rename fd fileMarcin Wojtas
Hitherto fd file name was pretty generic, so use one, which reflects actual board model. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-12-08Marvell/Armada7k8k: Use '7k8k' prefix in the SoC drivers/librariesMarcin Wojtas
As a part of files reorganization, switch to using '7k8k' in all SoC-specific driver/library code instead of '70x0'/'7040', so that to ensure consistent naming for entire SoC family. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-12-08Marvell: Reorganize file structureMarcin Wojtas
In edk2-platforms it is expected to provide a separation between SoC and boards files in 'Silicon' and 'Platform' directories accordingly. This patch aligns Marvell code to this requirement with no functional changes in the actual source files, unless required due to modified paths. Change the supported board's files names to proper Armada70x0Db. Also rename 'Armada' directory to 'Armada7k8k' in order to properly refer to the SoC family and prevent confusion in future, when adding new Armada machines. On the occasion add ARM copyright, which was wrongly missing in the dsc.inc file. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-12-08Silicon/Socionext/SynQuacer/PlatformDxe: add missing IoLib includeArd Biesheuvel
Commit ce95ec196da0 ("Silicon/SynQuacer: enable coherent DMA for NETSEC and eMMC") introduced a call to MmioOr32 into PlatformDxe without adding the appropriate #include and LibraryClass references, resulting in build failures when attempting to build the SynQuacer platforms. So add them. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-12-07Silicon/SynQuacer: enable coherent DMA for NETSEC and eMMCArd Biesheuvel
As it turns out, it is surprisingly easy to configure both the NETSEC and eMMC devices as cache coherent for DMA, given that they are both behind the same SMMU which is already configured in passthrough mode by the firmware running on the SCP. So update the static SMMU configuration to make memory accesses performed by these devices inner shareable inner/outer writeback cacheable, which makes them cache coherent with the CPUs. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-12-05Marvell/Drivers: MvPhyDxe: Cleanup the headerMarcin Wojtas
This patch removes unused macros defined in MvPhyDxe.h, as well as improves the style and comments. Pick single definition of the autonegotiation timeout - two different macros were used for the same purpose. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-12-05Marvell/Applications: FirmwareUpdate: Fix usage informationMarcin Wojtas
fupdate command's usage information referred to a deprecated '-f' flag in 'examples' section. It was a residue from the initial version of the application, removed during review before merging to upstream branch. Correct the help information and also on the occasion improve the message and its style. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-12-05Marvell/Armada: Fix watchdog control baseMarcin Wojtas
Proper watchdog control base is 0xf0610000, so fix the incorrect value. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-12-05Marvell/Armada: Switch to dynamic tftp commandMarcin Wojtas
After removal of the tftp library in EDK2, the tftp was disabled on Armada platform. Re-enable this functionality as a dynamic command on Armada 70x0 DB board. For this purpose add it as an option, depending on a new INCLUDE_TFTP_COMMAND parameter, which can be passed in the command line during build time. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-12-04Platform/Hisilicon: fix conditional inclusion of tftp shell commandLeif Lindholm
D02, D03 and D05 all have nice conditional clauses to only include the non-standard tftp shell command ifdef(INCLUDE_TFTP_COMMAND). Unfortunately, they all explicitly set DEFINE INCLUDE_TFTP_COMMAND=1 in their platform description files, meaning there is no way to exclude the command without an editor. So remove the DEFINE and let people specify on the command line whether to include it, as originally intended. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-12-04Platform/Hisilicon: fix D05 .dsc line endingsLeif Lindholm
Commit b324d85a466b, ("Hisilicon D03/D05: get firmware version from FIRMWARE_VER"), added some non CRLF line endings, resolve this. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-12-04Silicon/SynQuacerI2CDxe: add missing __FUNCTION__ argument to %a specifierArd Biesheuvel
The I2C driver prints a warning under DEBUG when a I2C transaction times out. This will occur on the rev 0.1 DeveloperBox boards due to a board level error in the I2C routing (unless the MCU has been lifted off the bus). Currently, this will trigger a crash due to a missing __FUNCTION__ argument to a %a specifier in a DEBUG string, because instead, the code will attempt to dereference a EFI_STATUS variable as a char pointer. So add the missing __FUNCTION__ argument. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-12-01Silicon/Fip006Dxe: map NOR_FLASH_INFO FSR flag with instance flagPipat Methavanitpong
Now that we incorporated NorFlashInfoLib into the Fip006Dxe driver, replace the code that explicitly enables flag status register polling for Micron NOR flash with a test of the flags field provided by NorFlashInfoLib, which carries the same information. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pipat Methavanitpong <methavanitpong.pipat@socionext.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Silicon/SynQuacerPciHostBridgeLib: enable Gen2 speedArd Biesheuvel
As it turns out, getting the PCIe controllers to switch to Gen2 speed is surprisingly easy. It only involves setting the 'speed change' bit in the controller at initialization time, after which the hardware will automatically attempt to switch to Gen2 speed after training at Gen1 speed has completed. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Silicon/SynQuacerPciHostBridgeLib: fix weird indentationArd Biesheuvel
Fix the weird indentation in the various #defines in the file containing the RC init code. This is a whitespace only change. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Platform Silicon: remove ArmPlatformInitializeSystemMemory () functionsArd Biesheuvel
The function ArmPlatformInitializeSystemMemory () has been removed from ArmPlatformLib, so remove all the [empty] implementations provided by the various platforms. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Marvell/Armada: Enable variables supportMarcin Wojtas
Wire up the non-volatile EFI variable store support, by switching from the emulation driver to the real one. Define default values for memory mapped SPI access, which must be configured by the early firmware. In order to ensure proper execution, configure initialization order with Depex entries. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Marvell/Drivers: MvSpiDxe: Enable using driver in RTMarcin Wojtas
This patch applies necessary modifications, which allow to use MvSpiDxe driver in variable support as a runtime service. The driver's type is modified to DXE_RUNTIME_DRIVER, as well as a new callback is introduced as a part of the SpiMasterProtocol. It configures the memory space for mmio access to the host controller registers. Apply locking in the driver only during boot services. Once at runtime, resource protection is handled by the operating system. Moreover ensure proper execution order before MvSpiFlashDxe (and hence MvFvbDxe) by setting according Depex dependency. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Marvell/Drivers: MvSpiFlash: Enable using driver in RTMarcin Wojtas
This patch applies necessary modifications, which allow to use MvSpiFlash driver in variable support as a runtime service. Its type is modified to DXE_RUNTIME_DRIVER, as well as an event is created, which converts the pointers to the SpiMasterProtocol and its routines. In order to ensure proper execution of the MvFvbDxe driver, configure initialization order with Depex entry. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Platform/Marvell: Introduce MvFvbDxe variable support driverMarcin Wojtas
MvFvbDxe driver introduces non-volatile EFI variable support for Armada platforms. It relies on memory-mapped SPI read access. Implementation of EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL is done with using existing Marvell SPI infrastructure (SpiMasterProtocol and SpiFlashProtocol), thanks to which this driver will be able to support various combinations of flash devices and host controllers. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Platform: drop tftp shell support from remaining platformsLeif Lindholm
Cello, Overdrive, Overdrive1000 and Armada still include the now-defunct library implementation of the Shell tftp command. Since the command is a nonstandard one anyway, just remove it from the build for these platforms. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-11-30Platform: remove gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSecArd Biesheuvel
Remove references to the ArmPlatformPkg PCD PcdSystemMemoryInitializeInSec, which is only used on PrePeiCore platforms anyway, and which has no effect whatsoever given that it decides when ArmPlatformInitializeSystemMemory() is called, which is implemented as an empty function by all these platforms anyway. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Platform,Silicon: Update Hisilicon Shell tftp command configLeif Lindholm
EDK2 changed the tftp shell command from a library to a dynamic command. Update configuration files to reflect this. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-11-30Platform/ARM: move to new TFTP Shell command implementationArd Biesheuvel
Upstream EDK2 has refactored the implementation of the TFTP Shell command so update the ARM platforms accordingly. Instead of having to add the new module to all .FDF files under Platform/ARM, add it to the 'networking FDF' include file and include that everywhere. Also, add a build time option to omit the TFTP command. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Joakim Bech <joakim.bech@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-30Platform/Hisilicon: drop BdsLib inclusion from HiKey .dscLeif Lindholm
The ArmPkg BdsLib has been dropped from EDK2, and is no longer required by the Android*Boot applications - so delete the reference to fix the resulting build failure. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-11-30Silicon/AMD Silicon/Hisilicon: remove ArmGetCpuCountPerCluster()Ard Biesheuvel
The function ArmGetCpuCountPerCluster () was moved out of ArmPlatformLib because it was unused (except internally by one of the implementations) So remove the remaining implementations from edk2-platforms. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/ARM/TC2: move to private FdtPlatformDxe implementationArd Biesheuvel
Move to our own private copy of FdtPlatformDxe and BdsLib so that we can get rid of the upstream version. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/ARM/Juno: move to migrated FdtPlatformDxeArd Biesheuvel
Move Juno to the migrated version of FdtPlatformDxe. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/ARM: import FdtPlatformDxe driver from EDK2Ard Biesheuvel
Import FdtPlatformDxe from EmbeddedPkg into Platform/ARM, given that it is not used anywhere else, nor should it be. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/ARM: import BdsLib from ArmPkgArd Biesheuvel
We are about to migrate the only remaining user of the deprecated ARM BdsLib, i.e., FdtPlatformDxe, into Platform/ARM. So create our own copy of BdsLib, allowing us to finally remove it from upstream EDK2. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform: switch to new PL011UartLibArd Biesheuvel
Switch to the new version of PL011UartLib which supersedes the one residing in Drivers/ inappropriately. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform: remove stale EBL related PCD settingsArd Biesheuvel
Remove all gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt assignments, which are no longer meaningful with EBL removed. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform: remove stale PL35xSmcLib referencesArd Biesheuvel
No drivers actually use PL35xSmcLib so remove any resolutions for it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform: remove references to EBL librariesArd Biesheuvel
None of these platforms still include EBL, but some references remained to its support libraries. Get rid of that. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/Hisilicon: remove SP804 PCD definitionsArd Biesheuvel
These platforms don't actually include the SP804 driver so no need to set the PCDs. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/ARM: remove outdated SP804 TimerLib referenceArd Biesheuvel
ArmVExpress.dsc.inc declares a TimerLib dependency and resolves it using ArmPlatformPkg/Library/SP804TimerLib/SP804TimerLib.inf, but all users of the include file supersede it with ArmArchTimerLib.inf so let's just use that instead. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/ARM/Juno: import ArmJunoPkg from EDK2Ard Biesheuvel
Move ArmJunoPkg into edk2-platforms, so it can be removed from the main EDK2 tree. This allows use to remove the dodgy -I arguments to GCC to build shared modules with a different copy of ArmPlatform.h, which was making it very difficult to properly split the various modules into their own packages. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/Hisilicon: remove bogus VExpress dependenciesArd Biesheuvel
Remove false copy-pasted dependencies on various VExpress support libraries. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform/ArmVExpress-FVP: remove bogus ArmPlatformSecLib referenceArd Biesheuvel
No FVP driver uses this library so remove the resolution. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform: remove bogus ArmTrustedMonitorLib referencesArd Biesheuvel
Remove copy-pasted ArmTrustedMonitorLib library class resolutions that none of the platforms actually need. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-26Platform: remove bogus ArmPlatformSecExtraActionLib referencesArd Biesheuvel
Remove copy-pasted ArmPlatformSecExtraActionLib library class resolutions that none of the platforms actually need. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-25Platform/DeveloperBox: wire up RTC supportArd Biesheuvel
Add the drivers, library resolutions and PCD settings to enable RTC support on DeveloperBox. Also, update PlatformDxe to register the non-discoverable device handles for both I2C controllers. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-25Silicon/NXP: add RTC support library for PCF8563 I2C IPArd Biesheuvel
Add a RealTimeClockLib implementation for the NXP PCF8563 as used on the Socionext Developer Box board. Note that the standard I2C protocol stack does not support runtime use, so this driver invokes the I2C master protocol directly. This requires support from the platform side as well, and so this driver will only attach to a I2C master that has the gPcf8563RealTimeClockLibI2cMasterProtolGuid protocol installed on its handle. It is up to the platform to ensure that the driver producing the I2C master protocol in question is runtime capable, and is not shared with the I2C protocol stack (i.e., it should not have the I2C Bus Configuration Management protocol installed as well). Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-25Silicon/Socionext: implement I2C master protocol for SynQuacer I2CArd Biesheuvel
Add a driver that produces the I2C master protocol on top of the I2C controllers that are implemented in the SynQuacer Socionext SoC. Note that this supports two modes simultaneously: I2C controllers that are only usable at boot time, and usable via the I2C protocol stack, and I2C controllers that are dedicated for the RTC or other runtime components. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-25Silicon/SynQuacer: add DT description of the SDHCI controllerArd Biesheuvel
Describe the SynQuacer SoC's eMMC controller in DT so the OS can attach to it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-25Silicon/SynQuacer: implement 'clear NVRAM' feature using a DIP switchArd Biesheuvel
Ordinary computers typically have a physical switch or jumper on the board that allows non-volatile settings to be cleared. Let's implement the same using DIP switch #1 on block #3, and clear the EFI variable store if it is set to ON at boot time. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-17Silicon/SynQuacer: implement PEIM that exposes GPIO PPIArd Biesheuvel
In order to be able to sample the state of the DIP switches at early boot on the Developer Box platform, implement the GPIO PPI based on the GPIO block that is implemented in the SynQuacer SoC. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-17Silicon/SynQuacerMemoryInitPeiLib: ignore capsules when clearing NVRAMArd Biesheuvel
In preparation of adding support for setting a DIP switch to clear the EFI variable store, update the early capsule handling logic to take the boot mode into account. This is necessary for two reasons: - we override the boot mode when a capsule is detected, - the capsule detection itself involves reading a EFI variable, which we shouldn't be doing if the varstore may be in a bad state. So factor out the initial capsule check (to keep the code understandable) and only perform it if we are not booting in 'clear NVRAM' mode. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2017-11-17Platform/DeveloperBox: add description of power button to DTArd Biesheuvel
Add the power button as a gpio-keys KEY_POWER button, and mark it as a wakeup source so it can be used under the OS both as a 'sleep' and as a 'wake' button. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>