summaryrefslogtreecommitdiffstats
path: root/EmbeddedPkg
Commit message (Collapse)AuthorAgeFilesLines
...
* EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLibMarcin Wojtas2019-04-251-2/+2
| | | | | | | | | | | | | | | Some modules (such as FaultTolerantWriteDxe) use the FlashNvStorage PCDs (PcdFlashNvStorageFtw*). In case the flash contents are not mapped in memory, the module loading order of the FVB driver may become important. To handle above, this patch allows to hook the dependency of desired DXE_DRIVER type module in the .DSC file via NvVarStoreFormattedLib NULL resolution. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney2019-04-09160-1111/+160
| | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/MmcDxe: Enable 4-bit mode even if SD_HIGH_SPEED is not supportedLoh, Tien Hock2019-03-151-18/+17
| | | | | | | | | | | | | | If SD doesn't support SD_HIGH_SPEED, function should still continue to setup SD to go into 4 bits more if it is supported. Currently, the code inadvertently exits early, but with a EFI_SUCCESS return code, and so execution proceeds without ever attempting to enable 4-bit mode. Since not having SD_HIGH_SPEED support is not an error, downgrade the message that reports this to DEBUG_INFO. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Loh Tien Hock <tien.hock.loh@intel.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/VirtualRealTimeClockLib: Fix correctness issuesPete Batard2019-02-261-9/+25
| | | | | | | | | | | | | | | | | | LibGetTime(): - Two variables were used for the epoch, where only one should have been [*]. - Also harmonize variable name to match the one used in LibSetTime. LibSetTime(): - Address possible underflows if time is set to start of epoch. - Ensure that time being read does actually match time that was manually set (plus the time elapsed since), by subtracting number of seconds since reset. [*] This fixes a build breakage, since one of these variables was set but never used, triggering a compiler diagnostic at some optimization levels. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pete Batard <pete@akeo.ie> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/Library: Add VirtualRealTimeClockLibPete Batard2019-02-153-0/+444
| | | | | | | | | | | | | | | | This is designed to be used on platforms where a a real RTC is not available and relies on an RtcEpochSeconds variable having been set or, if that is not the case, falls back to using the epoch embedded at compilation time. Note that, in order to keep things simple for the setting of the compilation time variable, only GCC environments with UNIX-like shells and where a 'date' command is available are meant to be supported for now. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pete Batard <pete@akeo.ie> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/PrePiLib: Correct function nameJeff Brasen2019-02-011-1/+1
| | | | | | | | | Update header file function name for FfsFindFileByName to match implementation function name. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jeff Brasen <jbrasen@nvidia.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: Fix Command Argument for SD/eMMC R/W operation.Meenakshi Aggarwal2019-01-302-5/+18
| | | | | | | | | | | | | | | | | | Issue : SD read failure for high capacity cards e.g. 64 GB Reason : Command argument value exceeds 32 bit for block number 0x3787FFF and cant be fit into 32 bit wide SD host controller register. Fix : AccessMode bits [29:30] of OCR is a valid definition to calculate data address for eMMC cards. For SD cards, data address is calculated on the basis of card capacity status bit[30] of OCR. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/NorFlashInfoLib: convert to BASE libraryArd Biesheuvel2019-01-161-3/+2
| | | | | | | | | | | The library's MODULE_TYPE and the module type restrictions it defines are needlessly strict. Just change the library to BASE type and drop the restrictions entirely. Also, drop a bogus library dependency on DxeServicesLib. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: remove GdbDebugAgent libraryArd Biesheuvel2018-12-1910-4735/+0
| | | | | | | | | The GdbDebugAgent library is unused and unmaintained, and now it turns out it doesn't build with Clang, so let's just get rid of 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>
* EmbeddedPkg/EmbeddedPkg.dec: drop PcdPrePiCpuMemorySize declarationsArd Biesheuvel2018-11-301-4/+0
| | | | | | | | | | PcdPrePiCpuMemorySize is no longer used so drop the declarations from the package DEC file. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/PrePiLib: drop unused PCD referenceArd Biesheuvel2018-11-291-1/+0
| | | | | | | | | | Drop the reference to gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize which is never used. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/PrePiHobLib: drop CreateHobList() from libraryArd Biesheuvel2018-11-293-62/+0
| | | | | | | | | | Drop the declaration and the implementation of CreateHoblist(), which is not used anywhere. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/TemplateSec: remove unused moduleArd Biesheuvel2018-11-292-141/+0
| | | | | | | | | | Remove this module: it is unused, and should not be used as an example going forward. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/PrePiMemoryAllocationLib: Added AllocateZeroPool()Jeff Brasen2018-11-291-0/+32
| | | | | | | | | | This function is exposed by the MemoryAllocationLib header. An AllocateZeroPool() function has been added to fix modules depending on this library and this function. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jeff Brasen <jbrasen@nvidia.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/VirtualKeyboard: Avoid notification called more than onceDandan Bi2018-09-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | REF: https://bugzilla.tianocore.org/show_bug.cgi?id=996 Issue: In current code logic, when a key is pressed, it will search the whole NotifyList to find whether a notification has been registered with the keystroke. if yes, it will en-queue the key for notification execution later. And now if different notification functions have been registered with the same key, then the key will be en-queued more than once. Then it will cause the notification executed more than once. This patch is to enhance the code logic to fix this issue. Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Leif Lindholm <leif.lindholm@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
* EmbeddedPkg/CoherentDmaLib: Add missing checks to DmaMapVladimir Olovyannikov2018-09-071-0/+6
| | | | | | | | | UEFI Sct validates Dma mapping. For CoherentDmaLib it always failed because there were no required checks present in DmaMap. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/CoherentDmaLib: Fix typo in DmaAlignedBufferVladimir Olovyannikov2018-09-071-1/+1
| | | | | | | | | | | The only valid memory types for DmaAlignedBuffer should be EfiBootServicesData and EfiRuntimeServicesData. However due to the typo, there is no way to allocate runtime pages, and INVALID_PARAMETER is always returned. Fix the typo. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/AndroidFastbootApp: only use ENTER or SPACE to exitHaojian Zhuang2018-08-241-2/+12
| | | | | | | | | | | | | Since hotkey 'f' is used to start AndroidFastbootApp. If user press 'f' key too long, it may be recognized pressing 'f' key multiple times. Then AndroidFastbootApp exists since it delcares any key press could make it exit. So only use ENTER or SPACE key to exit AndroidFastbootApp. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: Removing ipf which is no longer supported from edk2.chenc22018-06-295-19/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removing rules for Ipf sources file: * Remove the source file which path with "ipf" and also listed in [Sources.IPF] section of INF file. * Remove the source file which listed in [Components.IPF] section of DSC file and not listed in any other [Components] section. * Remove the embedded Ipf code for MDE_CPU_IPF. Removing rules for Inf file: * Remove IPF from VALID_ARCHITECTURES comments. * Remove DXE_SAL_DRIVER from LIBRARY_CLASS in [Defines] section. * Remove the INF which only listed in [Components.IPF] section in DSC. * Remove statements from [BuildOptions] that provide IPF specific flags. * Remove any IPF sepcific sections. Removing rules for Dec file: * Remove [Includes.IPF] section from Dec. Removing rules for Dsc file: * Remove IPF from SUPPORTED_ARCHITECTURES in [Defines] section of DSC. * Remove any IPF specific sections. * Remove statements from [BuildOptions] that provide IPF specific flags. Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Chen A Chen <chen.a.chen@intel.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/GdbSerialLib: avoid left shift of negative quantityArd Biesheuvel2018-06-191-5/+5
| | | | | | | | | | | | | | Clang complains about left shifting a negative value being undefined. EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.c:151:30: error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value] OutputData = (UINT8)((~DLAB<<7)|((BreakSet<<6)|((Parity<<3)|((StopBits<<2)| Data)))); Redefine all bit pattern constants as unsigned to work around this. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* Embedded/EmbeddedPkg.dsc: enable NOOPT build targetArd Biesheuvel2018-06-181-1/+1
| | | | | | | | | Enable to NOOPT build target so we can build this package with optimizations disabled. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/TimeBaseLib: Add function to get Week day.Meenakshi Aggarwal2018-06-052-3/+43
| | | | | | | | | | | This patch add function EfiTimeToWday() which returns day of the week. It is needed by our upcoming patches in edk2-platforms. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com> Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: add platform boot manager protocolHaojian Zhuang2018-06-052-0/+87
| | | | | | | | | | | | | | Create the PlatformBootManagerProtocol that is used to add predefined boot options in platform driver. This interface will be used in ArmPkg/PlatformBootManagerLib. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/Drivers: add virtual keyboard driverHaojian Zhuang2018-04-307-0/+2161
| | | | | | | | | | | | | | | | | | | | | | | This driver is used to simulate a keyboard. For example, user could read GPIO setting or data from RAM address. If the value matches the expected pattern, it could trigger a key pressed event. User needs to implement hooks of PLATFORM_VIRTUAL_KBD_PROTOCOL. There're 4 hooks in this protocol. Register(): Quote the interface that user needs. For example, user needs to locate GPIO protocol if he wants to simulate a GPIO value as a key. Reset(): Do the initialization before reading value. Query(): Read value. If the value matches the expected pattern, trigger a key pressed event. Clear(): Clean the value if necessary. Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: introduce NvVarStoreFormattedLibLaszlo Ersek2018-04-124-0/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some platforms don't format a variable store template at build time; instead they format the non-volatile varstore flash chip during boot, dynamically. Introduce NvVarStoreFormattedLib to enable such platforms to delay the "variable read" service drivers until the platform specific module(s) report that the variable store has been formatted. The platform-specific module that performs the formatting during startup is usually an FVB or MM FVB driver. Under the proposed scheme, it becomes responsible for installing gEdkiiNvVarStoreFormattedGuid with a NULL interface in the protocol database. In turn, the platform DSC will hook NvVarStoreFormattedLib into the variable service driver, to make the latter wait for the FVB driver. Platforms that need not delay the variable service driver like this may still use the same FVB driver; gEdkiiNvVarStoreFormattedGuid will simply be ignored. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Steve Capper <steve.capper@linaro.org> Cc: Supreeth Venkatesh <Supreeth.Venkatesh@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Steve Capper <steve.capper@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: Correct the way of handling sections with a large sizeGe Song2018-03-131-2/+16
| | | | | | | | | | | Correct the way of handling EFI_SECTION_GUID_DEFINED type sections with a large size Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ge Song <ge.song@hxt-semitech.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: use central variable definitions in .vfr filesLeif Lindholm2018-02-232-16/+2
| | | | | | | | | | Use UefiMultiPhase.h in Vfr.vfr instead of duplicating EFI_VARIABLE_* definitions. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/FdtLib: incorporate missing overlay supportArd Biesheuvel2018-02-214-0/+989
| | | | | | | | | | | | | | | | | Commit a099239015eb ("EmbeddedPkg/FdtLib: Update FdtLib to v1.4.5") updated our FdtLib implementation to a more recent upstream version, but omitted fdt_overlay.c due to its ambiguous licensing situation. This has been resolved now, so take the latest upstream version of the file (which received no other modifications in the mean time) and add it to FdtLib. Note that fdt_overlay.c has a dependency on strtoul() which EDK does not provide natively, so add a private implementation that wraps the BaseLib routines that do roughly the same. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: _really_ delete PcdCacheEnable from .decLeif Lindholm2018-02-091-1/+0
| | | | | | | | | Commit e537d878 meant to, but failed to, remove PcdCacheEnable. Address this, and get rid of this obsolete flag. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: delete unused Pcds and guidsLeif Lindholm2018-02-062-59/+0
| | | | | | | | | Delete a bunch of Pcds, a guid, and a related header file - probably Ebl related. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: delete unused HalRuntimeServicesExampleLibLeif Lindholm2018-02-066-1943/+0
| | | | | | | | | HalRuntimeServicesExampleLib contains no .inf and none of its contents are included elsewhere - so get rid of it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: drop unused Pcds from package .dscLeif Lindholm2018-02-061-15/+0
| | | | | | | | | A bunch of Ebl-related Pcds are still referenced in package Pcd. Drop them. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/FdtLib: build fdt_empty_tree.cMichael Zimmermann2018-01-151-0/+1
| | | | | | | | | | We're currently building everything except for this file. Since 'fdt_create_empty_tree' can be useful for some platforms, compile this one too. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/FdtLib: Update FdtLib to v1.4.5Pankaj Bansal2018-01-0514-87/+760
| | | | | | | | | | | | | Update the FdtLib so that new APIs provided by FdtLib like fdt_address_cells, fdt_size_cells etc. can be used. Reference code: https://git.kernel.org/pub/scm/utils/dtc/dtc.git/tree/libfdt?h=v1.4.5 Cc: Leif Lindholm <leif.lindholm@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: add ConsolePrefDxe to package .dscLeif Lindholm2017-12-151-0/+1
| | | | | | | | | Add an entry for ConsolePrefDxe under [Components.common], to permit building standalone. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg/PrePiLib: add support for v2 sectionsMichael Zimmermann2017-12-121-12/+51
| | | | | | | | | Implement the missing support for FFS files whose size equals or exceeds 16 MiB. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: AndroidBootApp: fix clang compilationLeif Lindholm2017-12-062-6/+7
| | | | | | | | | | | | Address an incorrect function prototype (using ; instead of ,) in AndroidBootImg.h. Also restructure code slightly to avoid a "may be used uninitialized" warning. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg BeagleBoardPkg: move special HOB reuse libraries into platformArd Biesheuvel2017-11-305-434/+0
| | | | | | | | | | | | | | The BeagleBoard platform uses PeCoffLib and CustomDecompressLib implementations that invoke the library code that resides in the PrePi module via pointers exposed via special GUIDed HOBs. This is a nice hack, but not necessarily something we want to carry in reference code. So as a first step, move the libraries that expose this reused code into BeagleBoardPkg, and remove it from EmbeddedPkg. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: remove nonexistent FLASH_DEFINITION from package .dscLeif Lindholm2017-11-301-1/+0
| | | | | | | | | | | | | | For whatever reason, EmbeddedPkg.dsc included a FLASH_DEFINITION entry pointing to a nonexistent EmbeddedPkg.fdf. This used to be silently ignored, but recent BaseTools changes 5e9256cd7f54 ("BaseTools: Guid.xref contain information from FILE statements in FDF") now caused builds against EmbeddedPkg.dsc to fail. So delete the redundant entry. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* ArmPkg: remove BdsLib and remaining ARM BDS related PCDsArd Biesheuvel2017-11-261-1/+0
| | | | | | | | | With the last user FdtPlatformDxe removed, we can finally get rid of the last bit of ARM BDS related cruft. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: remove FdtPlatformDxeArd Biesheuvel2017-11-269-1640/+0
| | | | | | | | | With the last users migrated to a private version, we can now remove 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>
* EmbeddedPkg Omap35xxPkg: remove EBL and associated librariesArd Biesheuvel2017-11-2630-7669/+0
| | | | | | | | | | | EBL is a deprecated, small memory footprint alternative for the UEFI Shell that is no longer in use by any platforms in EDK2 or in edk2-platforms. To avoid confusion, let's remove it from the tree. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: get rid of BdsLib dependency from Android*BootLeif Lindholm2017-11-255-9/+4
| | | | | | | | | | | | | The sum use these applications made of BdsLib was one invocation of the IS_DEVICE_PATH_NODE macro, and (incorrectly) being able to leave out a dependency on gEfiLoadedImageProtocolGuid. So expand the macro in place and add the missing dependency. Then clean up the .dsc, .inf and #includes accordingly. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: add UefiRuntimeLib resolution to package .dscLeif Lindholm2017-11-251-0/+1
| | | | | | | | Required to build Android*Boot standalone. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* EmbeddedPkg: add mx66u1g45g nor flash infoPipat Methavanitpong2017-11-161-0/+1
| | | | | | | | | | Add Macronix MX66U1G45G definition to NorFlashInfoLib 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: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg/RealTimeClockRuntimeDxe: move common functionality into coreArd Biesheuvel2017-11-132-11/+171
| | | | | | | | | | | | | | | | | | | | | | | RealTimeClockRuntimeDxe defers the hardware/platform specific handling of reading/setting the hardware clock to RealTimeClockLib, but for unknown reasons, it also defers common functionality such as input validation and recording the timezone and DST settings (which are informational only and not managed by hardware) This has led to a lot of duplication in implementations of RealTimeClockLib as well as TimeBaseLib, to the point where each library implementation has its own set of UEFI variables to record the timezone and DST settings. This makes little sense, and so let's update RealTimeClockRuntimeDxe now to allow future implementations to rely on the core driver to take care of these things. Note that reading the timezone and DST settings occurs before calling into the library, so we can phase out this behavior gradually from library implementations in EDK2, edk2-platforms or out of tree. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: Implement NorFlashInfoLibMarcin Wojtas2017-11-074-0/+356
| | | | | | | | | | | | | | | | | | | | | | | | | The SPI NOR flash drivers which base on ArmPlatformPkg's NorFlashDxe usually make use of static declarations of the flash instances with their type and parameters. As a result it implies hardcoding the exact way of flash handling, not to mention the code does not look very nice. Much better solution would be obtaining the flash ID and hence its description in runtime. JEDEC compliant SPI NOR devices allow to obtain their IDs with READ_ID command (0x9f), which should return the vendor ID byte, followed by 2 to 4 following device ID bytes. Use this capability for implementing a NorFlashInfoLib that gives an access to the NOR flash description data, such as name, page size, sector (block) size and others, of more than 50 different models. The new library user should pass an output array from issuing READ_ID command to the NorFlashGetInfo () routine - if the match is found, an allocated (optionally for RT) pool with the flash description copy will be returned. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas <mw@semihalf.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* EmbeddedPkg: introduce GPIO PPIArd Biesheuvel2017-11-052-0/+154
| | | | | | | | | | | | | | Introduce a PPI counterpart of the existing 'embedded GPIO' protocol, so we can manipulate GPIOs from PEI modules. This allows things like setting the boot mode based on a DIP switch setting. Note that the naming is slightly awkward, as there is nothing 'embedded' about a GPIO, but given that the DXE protocol already resides here and has the 'embedded' prefix, it makes sense to retain uniformity. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
* Drivers/SataSiI3132Dxe: Allow 64-bit DMA transferDaniil Egranov2017-10-271-1/+1
| | | | | | | | Set a PCI IO attribute allowing 64-bit DMA transfer. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
* Drivers/SataSiI3132Dxe: Fixed PCI IO read and write operationsDaniil Egranov2017-10-271-2/+2
| | | | | | | | | | | The ATA pass through read should use PCI IO bus master write operation and ATA pass through write should use PCI IO bus master read operation as the read and write operations are executed from the bus master's point of view. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Daniil Egranov <daniil.egranov@arm.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>