summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg
AgeCommit message (Collapse)Author
2015-01-20APMXGenePkg: ArmBdsHelperLib fixupLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-20Merge remote-tracking branch 'rmt-1/linaro-topic-leg' into release-prepLeif Lindholm
2015-01-20Merge remote-tracking branch 'rmt-1/linaro-platform-leg-mustang' into ↵Leif Lindholm
release-prep
2015-01-20Merge remote-tracking branch 'rmt-1/linaro-platform-leg-misc' into release-prepLeif Lindholm
2015-01-20Merge remote-tracking branch 'rmt-1/linaro-platform-leg-fvp' into release-prepLeif Lindholm
2015-01-20Merge remote-tracking branch 'rmt-0/linaro-platform-tc2' into release-prepLeif Lindholm
2015-01-20Merge remote-tracking branch 'rmt-0/linaro-platform-rtsm' into release-prepLeif Lindholm
2015-01-20Merge remote-tracking branch 'rmt-0/linaro-platform-a9' into release-prepLeif Lindholm
2015-01-20ArmPlatformPkg: detect correct pl011 fifo depthLeif Lindholm
pl011 releases earlier than r1p5 has a fifo depth of 16 bytes, whereas version r1p5 upwards has a fifo depth of 32 bytes. The pl011 driver was hardwired to 32 byte depth, causing dropped characters on some platforms (including default settings on FVP Base and Foundation models). Update driver to select 16 or 32 on port initialization by checking the component revision. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16ArmPlatformPkg: enable use of IntelBds on JunoLeif Lindholm
Select IntelBds instead of the ARM Bds when building with -D INTEL_BDS. This also updates ArmJunoDxe to use ArmBdsHelperLib instead of the BdsLib directly. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16ArmVirtualizationPkg: don't use BdsLib with PlatformIntelBdsLib and INTEL_BDSLeif Lindholm
With the Intel Bds, the built-in LinuxLoader is no longer accessible (or required). Use the new ArmBdsHelperLib instead of the whole of BdsLib, since the former contains the bits we need. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16ArmPkg/ArmPlatformPkg: don't use BdsLib with PlatformIntelBdsLibLeif Lindholm
There is no longer a requirement for the whole of BdsLib to be included when building with -D INTEL_BDS, so conditionalise its inclusion in various places, and use ArmBdsHelperLib instead in PlatformIntelBdsLib. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16ArmPkg: break out common Bds functionsLeif Lindholm
PlatformIntelBdsLib in ArmPlatformPkg uses some functions defined in ArmPkg's BdsLib - but it does not use any of the LinuxLoader (or even all of the basic Bds functionality). Break out the actual shared code into a separate helper library called ArmBdsHelperLib, which can then be used by both BdsLib and PlatformIntelBdsLib. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16Add SCP firmware blob for JunoLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16FVP-AArch64: enable embedded DTB to Foundation/Base modelArd Biesheuvel
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2015-01-16Add dummy SMBIOS tables to FVPLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16SMBIOS:VE: Add SMBIOS support for ARM VE modelsYi Li
Add SMBIOS support for VExpress boards, but only support ARM32 architecture as the SMBIOS spec 2.8 doesn't define the ARM64 filed in TYPE4. After the spec updated, we can add the support for ARM64 also. Only for ArmVExpress-RTSM-A15-MPCore and ArmVExpress-CTA15-A7 two models. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yi Li <yi.li@linaro.org> Signed-off-by: Steven Kinney <steven.kinney@linaro.org> Conflicts: ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
2015-01-16SMBIOS:ARM: Add SMBIOS base driver on ARM PlatformYi Li
Add SMBIOS support on ARM platforms, constructing and updating 10 basic tables required by SMBIOS spec 2.7.1. The codes are derived from PlatformSmbiosDxe in EmulatorPkg. Some static data need to modify to match a real board. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yi Li <yi.li@linaro.org> Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
2015-01-16ArmVirtualizationQemu: add EDK2_OUT_DIR supportLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16ARM: conditionalise inclusion of LinuxLoader/AndroidFastbootLeif Lindholm
When booting Linux using the UEFI stub loader, there is no need for the built-in LinuxLoader. So make its inclusion conditional. This requires also conditionalising the AndroidFastBoot support, which on ARM depends on the LinuxLoader. Since conditionalising something currently always included, invert the logic and use a NO_LINUX_LOADER option to remove these components. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16Add ACPI tables for JunoLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> [Fixes to install tables properly] Signed-off-by: Graeme Gregory <Graeme.Gregory@linaro.org> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16ArmPlatformPkg/ArmVExpressPkg: add acpi supportGraeme Gregory
ASL files taken from http://git.linaro.org/arm/acpi/acpi-asl.git for the FVP Base model. Signed-off-by: Graeme Gregory <graeme.gregory@linaro.org>
2015-01-16Juno: enable embedded DTBLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-16Juno: add EDK2_OUT_DIR supportLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-09mustang: prepi: Increase section alignment to 4kLeif Lindholm
Removes an assertion failure on the Mustang debug build. Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-09Merged original APM release into edk2.Leif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2015-01-02ArmVirtualizationPkg: Intel BDS: load EFI-stubbed Linux kernel from fw_cfgLaszlo Ersek
A number of tools depend on passing the kernel image, the initial ramdisk, and the kernel command line to the guest on the QEMU command line (options -kernel, -initrd, -append, respectively). At the moment, these QEMU options work, but the guest kernel loaded this way is launched by a minimal binary firmware that is dynamically composed by QEMU. As a consequence, such a kernel has no UEFI environment. This patch enables -kernel, -initrd, -append to work on top of the ArmVirtualizationQemu firmware build. The approach it takes is different from how the same functionality is implemented in OvmfPkg. OvmfPkg contains a full-fledged Linux boot loader (see "OvmfPkg/Library/PlatformBdsLib/QemuKernel.c" and "OvmfPkg/Library/LoadLinuxLib/"). OVMF's LoadLinuxLib sets up the required kernel environment in a sophisticated way (including x86-specific artifacts like the GDT), calls ExitBootServices() itself (for legacy kernels without EFI handover protocol), and jumps to the kernel (using x86 assembly). In ArmVirtualizationPkg's PlatformIntelBdsLib, we require the kernel being loaded to have an EFI stub -- that is, to be a genuine UEFI application. (The EFI stub is not an additional burden for guest kernels -- the EFI stub is a hard requirement anyway because it needs to process the DTB heavily: - it removes memory nodes, - it removes memreserve entries, - it adds UEFI properties to the "chosen" node, - it calculates and installs virt-to-phys mappings with SetVirtualAddressMap() in a way that enables kexec [planned]. Kudos to Ard Biesheuvel for summarizing the above.) An EFI-stubbed Linux guest kernel can be loaded with plain gBS->LoadImage(). The EFI stub will look up its own EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL instance (ie. the device path where it has been loaded from), and it will locate the initial ramdisk named by the "initrd" command line parameter as a *sibling file* on the same device. The initrd file is then loaded using the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. This approach enables the EFI stub to load the initial ramdisk from normal EFI System Partitions, from remote PXE/TFTP directories -- and it enables us to provide the initrd from memory as well. In this patch: - We download the kernel image, the initrd image, and the kernel command line, using QEMU's fw_cfg interface. - We create a read-only EFI_SIMPLE_FILE_SYSTEM_PROTOCOL instance that has just a root directory, with the three downloaded files in it. - The handle that carries the simple file system has a single-node VenHw(...) device path (not counting the terminator node). - We load the EFI-stubbed kernel (which is a UEFI application) with gBS->LoadImage(), passing "VenHw(...)/kernel" as device path. This causes gBS->LoadImage() to call back into our filesystem. - Appended to the downloaded command line, we pass "initrd=initrd" to the EFI stub. - Once the EFI stub is running, it loads the initial ramdisk from the "sibling" device path "VenHw(...)/initrd", also calling back into our filesystem. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16578 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-02ArmVirtualizationPkg: identify "new shell" as builtin shell for Intel BDSLaszlo Ersek
The default value of this PCD (in "IntelFrameworkModulePkg.dec") identifies the "old shell" from EdkShellBinPkg. Our build includes the "new" shell from ShellBinPkg/UefiShell/UefiShell.inf; let's specify the FILE_GUID of that. Otherwise, no boot option will be generated for the Shell application. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Olivier Martin <Olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16577 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-02ArmVirtualizationPkg: PlatformIntelBdsLib: adhere to QEMU's boot orderLaszlo Ersek
We have all the required pieces in place. Let's call SetBootOrderFromQemu() in PlatformBdsPolicyBehavior(). We disable OFW-to-UEFI device path fragment translation for virtio-pci, and enable it only virtio-mmio at this time. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Olivier Martin <Olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16576 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-02ArmVirtualizationPkg: VirtFdtDxe: use dedicated VIRTIO_MMIO_TRANSPORT_GUIDLaszlo Ersek
Installing VenHw() device paths with this GUID, for the virtio-mmio transports that we detect, enables other modules to recognize those VenHw() nodes. (Note that the actual value doesn't change.) In addition, to avoid reusing GUIDs in unrelated contexts, detach the driver's FILE_GUID from its previous value. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16573 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-02ArmVirtualizationPkg: PlatformIntelBdsLib: add basic policyLaszlo Ersek
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 <lersek@redhat.com> Reviewed-by: Olivier Martin <Olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16569 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-02ArmVirtualizationPkg: clone PlatformIntelBdsLib from ArmPlatformPkgLaszlo Ersek
In the next patch(es) we'll customize the PlatformBdsLib instance used by ArmVirtualizationQemu.dsc. Let's clone it first verbatim from ArmPlatformPkg/Library/PlatformIntelBdsLib, changing only its FILE_GUID. (Also, coding style errors like "missing space before open parenthesis" and "missing space after comma or semicolon" have been cleaned up.) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16568 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-02ArmVirtualizationPkg: introduce QemuFwCfgLib instance for DXE driversLaszlo Ersek
After reviewing OvmfPkg's use of its own QemuFwCfgLib instances, it is clear that its only pre-DXE fw_cfg dependency concerns S3 support (the QemuFwCfgS3Enabled() call in "PlatformPei/Platform.c"). For ARM guests, S3 is in the distant future, but we can see several shorter term applications for fw_cfg that all reside in DXE: - controlling boot order (to be implemented in PlatformBdsLib for Intel BDS), - supporting -kernel / -initrd / -append boot on QEMU (to be implemented in PlatformBdsLib for Intel BDS, similarly), - loading and linking ACPI tables, - installing SMBIOS tables. Therefore it makes sense to add a simple MMIO-based fw_cfg client library to ArmVirtualizationPkg that for the moment is only available to DXE_DRIVER modules. Because MMIO accesses are costly on KVM/ARM, InternalQemuFwCfgReadBytes() accesses the fw_cfg data register in full words. This speeds up transfers almost linearly. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16567 6f19259b-4bc3-4df7-8a09-765794883524
2015-01-02ArmVirtualizationPkg: VirtFdtDxe: forward FwCfg addresses from DTB to PCDsLaszlo Ersek
Qemu's firmware configuration interface for ARM consists of two MMIO registers, a 16-bit selector, and a 64-bit data register that allows the guest to transfer data with 8, 16, 32, and 64-bit wide accesses. Parse the base address from the DTB, and expose the registers to the rest of DXE via dynamic PCDs. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16566 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-15ArmPlatformPkg: Fixed buildOlivier Martin
The original patch was assuming PathLib moved to MdeModulePkg. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16522 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPkg/BdsLib: Rework TFTP bootRonald Cron
Rework the downloading of an image from a TFTP server to do not depend on any "PXE specific" setting of the DHCP server. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <Ronald.Cron@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16516 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPlatformPkg/Bds: Test if OptionalData is NULL before using itOlivier Martin
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16515 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPlatformPkg/Bds: Fixed memory leakOlivier Martin
Device Paths were not freed after calling BDS_LOAD_OPTION_SUPPORT.CreateDevicePathNode() Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16514 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPlatformPkg/ArmJunoPkg: Move the watchdog generic driver to ArmPkg/DriversRonald Cron
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <Ronald.Cron@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16512 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPlatformPkg/BootMonFs: Fix the setting of information about a fileRonald Cron
Rework the setting of information about a file, in particular file resizing, file renaming and the returned error codes in case of error. This rework has implied a rework of the read, write, close and flush functions. To strickly separate what has been actually written to the media (flushed) from what has not been written when a file is open, an "Info" field has been added to the description of a file. The field is used to store the modifications done to the file by the means of SetInfo() like the change of the name or of the size. Such changes are written to the media only when a flush occurs. When a file is open, the information pointed to by the "Info" field is always up-to-date. This is not the case of the information stored in the "HwDescription" of the file description which from now is just a mirror of what is written on the media. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <Ronald.Cron@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16511 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPlatformPkg/BootMonFs: Fix error codes returned by Open() and Read()Ronald Cron
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <Ronald.Cron@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16510 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPlatformPkg/ArmVirtualizationPkg: Removed compiler family to the AArch64 ↵Olivier Martin
assembly files LLVM/ARMCC6 supports GNU assembly language. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16509 6f19259b-4bc3-4df7-8a09-765794883524
2014-12-12ArmPlatformPkg: The toolchain family name can be omitted if the options are ↵Olivier Martin
common Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16508 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-12ArmPlatformPkg: fix undefined reference to memcpyScott Duplichan
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Scott Duplichan <scott@notabs.org> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16340 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-11ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit.Leif Lindholm
Some AArch64 platforms have RAM and flash devices >4GB. Update some additional Pcd entries to 64-bit, and change the corresponding PcdGet32 calls to PcdGet64. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Signed-off-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16325 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-08arm: add conditionalised networking support for foundation modelLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2014-11-08arm: add conditionalised networking support for FVPLeif Lindholm
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2014-11-08arm: Add conditional inclusion of LAN91x ethernet supportLeif Lindholm
This patch adds support for including the SMSC LAN 91C111 driver support (as provided by the ARM Ltd. software models) by specifying the EDK2_ENABLE_SMSC_91X build variable. A per-platform addition to the .fdf is also required to actually include the driver, and network protocol support, in the produced image. Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> Conflicts: ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
2014-11-08FVP: Add support for EDK2_USE_ANDROID_CONFIG build parameterAmit Pundir
Add support to the build config to allow the user to: - set Android boot image path. - set Android ramdisk image path. - boot linux image with built-in kernel command string. This is particularly useful for automated Android build and validation systems. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Steven Kinney <steven.kinney@linaro.org>
2014-11-08FVP: change default BDS config to mount the rootfs over virtioRyan Harkin
Using this BDS config change, the FVP platform will mount the rootfs via virtio device /dev/vda2. Linaro disk images use the 2nd partition as the rootfs. Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> Signed-off-by: Steven Kinney <steven.kinney@linaro.org>