summaryrefslogtreecommitdiff
path: root/payloads/external/edk2
AgeCommit message (Collapse)Author
2022-10-25payloads/edk2: Add the declaration for OBJCOPYSean Rhodes
The Shimlayer recipe requires OBJCOPY, so declare it at the top of the Makefile so this recipe works as intended. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I2e04dfe18df6252261836dcdf98f7e8de65287b5 Reviewed-on: https://review.coreboot.org/c/coreboot/+/68744 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-22payloads/edk2: Disable the CPU Timer Lib unless supportedSean Rhodes
For recent X86 CPUs, the 0x15 CPUID instruction will return Time Stamp Counter Frequence. For CPUs that do not support this instruction, EDK2 must include a different library which is the reason why this must be configured at build time. If this is enabled, and the CPU doesn't support 0x15, it will fail to boot. If is not enabled, and the CPU does support 0x15, it will still boot but without support for the leaf. Consequently, disabled it by default. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I4f0f43ce50c4f6f7eb03063fff34d015468f6daa Reviewed-on: https://review.coreboot.org/c/coreboot/+/65950 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-22payloads/edk2: Add the recipes to assemble UniversalPayloadSean Rhodes
Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Id6363c92f8155007e05c682694d7413fd4630b6d Reviewed-on: https://review.coreboot.org/c/coreboot/+/65932 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-12payloads/edk2: Add a recipe to build the ShimLayerSean Rhodes
The ShimLayer is required to start the Universal Payload. It will build the required HOBs and pass them accordingly. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I043271994f40813d9059a89420d4311d9d5802b1 Reviewed-on: https://review.coreboot.org/c/coreboot/+/64485 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-11payloads/edk2: Add a recipe to build UniversalPayload.elfSean Rhodes
Add a recipe to build UniversalPayload.elf, which uses a wrapper for the UniversalPayloadBuild.py that is hosted in the edk2 repository. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I2aa318513244f576e07e72713fad3b4f7bd7c22e Reviewed-on: https://review.coreboot.org/c/coreboot/+/68183 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-10payloads/edk2: Guard the build targetSean Rhodes
Specifying a build target only applies to UefiPayloadPkg, so guard it against the relevant Kconfig option. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Ia4597b5ed76616e39cec45f8a69be9f1ccd72d4c Reviewed-on: https://review.coreboot.org/c/coreboot/+/68182 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-10payloads/edk2: Guard the silent switchSean Rhodes
The silent switch, `-s`, only works for building UefiPayloadPkg. Guard it against the relevant Kconfig option so that it doesn't cause problems with other targets. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I5a5df636e6484a435c849c6d19c7cb61e8e62ee6 Reviewed-on: https://review.coreboot.org/c/coreboot/+/68181 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-10-08payloads/edk2: Add note that upstream edk2 does not workSean Rhodes
Upstream edk2 doesn't work, but we still have the option for it for testing. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I6ec9f4746640baa030762650ab7b83d85ab8c1e1 Reviewed-on: https://review.coreboot.org/c/coreboot/+/67780 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-08payloads/edk2: Add an option for verbose buildsSean Rhodes
Add EDK2_VERBOSE_BUILD which removes the `-q` and `-s` switches so the build log becomes verbose. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Iaf1e96657f43edddfa4de0d3e00f3b24e7eb855b Reviewed-on: https://review.coreboot.org/c/coreboot/+/67677 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-10-08payloads/edk2: Separate the build target and repositorySean Rhodes
Until recently, there were two options to build edk2, UefiPayloadPkg and CorebootPayloadPkg. Now, there is only one, UefiPayloadPkg but soon, there will be Universal Payload. It makes more sense, as the official edk2 repository doesn't work with coreboot, to have the build target and repository separate. That will allow for building either UefiPayloadPkg or Universal Payload from the official repository, MrChromebox' fork or a custom repository. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: If7f12423058ef69838741f384495ca766ccea083 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66080 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-09-01payloads/edk2: Remove architecture from build stringSean Rhodes
Whilst UefiPayloadPkg is always built with support for 32-bit and 64-bit, this is not the case for all edk2 targets. Move this to the build command so they can be specified on each target. Also add the `-s` switch, which stands for quiet to suppress edk2 printing War and Peace whilst building. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: If94abd4e28917718c76ad5945966e7be668c8f61 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66364 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-09-01payloads/edk2: Rename the update recipeSean Rhodes
Rename the update recipe, which updates the edk2 repository, to $(EDK2_PATH). There is no functional change here. This recipe must be phony so it runs every time. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I30fedbee7459b79a85a23678e0075368eda95da0 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66363 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-09-01payloads/edk2: Clone edk2 and its submodules in parallelSean Rhodes
When cloning edk2, download the submodules at the same time. There is no functional change here, just a minor speed improvement. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Ieeb481346093588bd8d237857966001dc81460b1 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66362 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-09-01payloads/edk2: Adjust the WORKSPACE targetSean Rhodes
First, remove the `-p` flag; as it's a file target it's not needed in this case. Second, remove the clone as this is handled in the update recipe. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I3829a3151be2d05a067a160fa770e5eb7ad4aad4 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66361 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-09-01payloads/edk2: Convert UefiPayloadPkg to a file targetSean Rhodes
Convert UefiPayloadPkg (UEFIPAYLOAD.fd) to a file target. There is no functional change here, it just avoids it being copied out of the build dir, into an output directory and then into build. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Iff097f6f1e715c697c33c50c395d7c1b88cc6280 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66360 Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-08-24payloads/edk2: Separate the tasks required to build edk2Sean Rhodes
Separate the tasks that are required to be completed prior to building edk2 into a prep recipe. This allows this to be used for building different targets. This also ensures that the COREBOOT toolchain is used. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Ic4ae8ac4118a5747f38297d0fbf4cb53aa3b6d6d Reviewed-on: https://review.coreboot.org/c/coreboot/+/66359 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
2022-08-24payloads/edk2: Separate the Release String variableSean Rhodes
Separate the Release String from the Build String. This allows the makefile to locate built files more precisely. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Id98674f0bbf485b2bfdbf5784d325c5ac89ad076 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66358 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-08-24payloads/edk2: Move building to directory called workspaceSean Rhodes
The current edk2 makefile will work in a directory that's name is derived from the repository, such as `mrchromebox` or `starlabsltd`. Move this under a directory, so that it can be ignored by git and so that the makefile can be adjusted to use file targets, rather than phony recipes with wildcards. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: If0c80dbc59130f229b78cab9578115e14172301d Reviewed-on: https://review.coreboot.org/c/coreboot/+/66356 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-08-14payloads/edk2: Move the restoration of the logoSean Rhodes
Logo.bmp is overwritten with a custom one from coreboot. This needs to be restored before the branch is updated otherwise git will report that the repository is dirty. Move this to the update recipe so that will always be done for any recipe that needs to update the branch. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I85bf753a47d9e70d6555dec9a539e8ed7395bead Reviewed-on: https://review.coreboot.org/c/coreboot/+/66355 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-08-13payloads/edk2: Move printing the build options to a separate recipeSean Rhodes
Move the code that prints the edk2 build options to it's own recipe so that it can be called for different targets. This change also fixes the print, as it accounts for recent switches such as `--pcd` and `-s`. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: Ie797ca26cd28eab0f633bd8dee5ec19634fcea99 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66354 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-08-13payloads/tianocore: Rename TianoCore to edk2Sean Rhodes
coreboot uses TianoCore interchangeably with EDK II, and whilst the meaning is generally clear, it's not the payload it uses. EDK II is commonly written as edk2. coreboot builds edk2 directly from the edk2 repository. Whilst it can build some components from edk2-platforms, the target is still edk2. [1] tianocore.org - "Welcome to TianoCore, the community supporting" [2] tianocore.org - "EDK II is a modern, feature-rich, cross-platform firmware development environment for the UEFI and UEFI Platform Initialization (PI) specifications." Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I4de125d92ae38ff8dfd0c4c06806c2d2921945ab Reviewed-on: https://review.coreboot.org/c/coreboot/+/65820 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>