h1. Linaro Reference Platform Firmware 19.03

p. Linaro periodically releases binary images of UEFI, based on the TianoCore project.

h2. Upstream version

p. The Linaro UEFI tree is built from the following upstream TianoCore repositories:

| *Repository* | *revision* |
| "edk2":https://github.com/tianocore/edk2 | edk2-stable201903 |
| "edk2-platforms":https://github.com/tianocore/edk2-platforms | 89f6901df0e29da6619608dc417c052bb3e8f82a |
| "edk2-non-osi":https://github.com/tianocore/edk2-platforms | 99907896565e9b9d6fa508e54b2840db3f0280fc |

as well as

| "arm-tf":https://github.com/ARM-software/arm-trusted-firmware | 9fd2f13bd608832260300640970f73c62357c684 |
| "uefi-tools":https://git.linaro.org/uefi/uefi-tools | 27207a83aefc88526466fb2dcba50470cb92974d |

p. The following additional patches have been cherry-picked from edk2:
* 4a1f6b85c184 ("MdeModulePkg: add LockBoxNullLib for !IA32/X64 in .dsc")
* 6c27a4d337d0 ("MdeModulePkg/UefiBootManangerLib: Fix exception issue")

p. The following additional patches have been cherry-picked from edk2-platforms:
* 99eca26da230 ("Platform/Hisilicon: update D06 system firmware description")
* 155d96478b30 ("Hisilicon/Silicon: Add dependence for AcpiPlatformDxe")

p. The following non-upstream patches have been included in edk2-platforms:
* "Hisilicon/D06: Fix access variable fail issue":https://edk2.groups.io/g/devel/message/37935
* "Hisilicon/D06: Add Setup Item "Support DPC" and delete some PCIe menus":https://edk2.groups.io/g/devel/message/37943

p. The following non-upstream patch has been included in edk2-non-osi:
* "Hisilicon/D06: Add Setup Item "Support DPC"":https://edk2.groups.io/g/devel/message/37957

h2. Platform Support

p. Platforms supported by this release include:

* qemu-aarch32, qemu-aarch64 (mach-virt)
* Hisilicon D03, D05, D06
* ARM Foundation/FVP Base and SGI575 models

h2. New in this release

* Major changes to D06 port. Additional onboard firmware images need to be updated in lock-step
  with the system firmware, so no capsule is made available for this release - .hpm files are
  provided for upgrade via BMC. Once upgraded, the system firmware can no longer be downgraded
  to previous versions using capsules. Since the flash layout has changed, any stored firmware
  configuration will be lost at upgrade.
* Fixes "D05 MAC addresses missing in Linux":https://bugs.linaro.org/show_bug.cgi?id=435
* Fixes "D06 USB crash issue":https://bugs.linaro.org/show_bug.cgi?id=4079

h2. Known issues

p. LuvOS reports an error on capsule update tests. This is believed not to affect any real world
   deployments since all known mechanisms (including fwupd.org) perform updates during boot services.
   This has been addressed by later upstream edk2 commit
   2c0d39ac4704 ("MdeModulePkg/DxeCapsuleLibFmp: clone ESRT for runtime access")

h2. Building EDK2

p. For more instructions on how to build EDK2 from source, please see the "edk2-platforms documentation":https://github.com/tianocore/edk2-platforms/blob/master/Readme.md.

p. For rebuilding this release:

bc. $ git clone https://git.linaro.org/uefi/rpf.git
$ cd rpf
$ git checkout rpf-19.03
$ ./build.sh

p. Building this release requires a recent version of @acpica-tools@. These binaries were generated using version 20181003, but versions 20180629 onwards are functional.
