summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <marcin.juszkiewicz@linaro.org>2023-02-08 20:00:45 +0300
committerArd Biesheuvel <ardb@kernel.org>2023-02-09 14:25:56 +0300
commit74d4da60a4f0fd75f8ca487296960c84d4ac03b9 (patch)
tree8536be043296949890433212dfffc1713c4255e8
parentbd07ad34641d8256713236df416a7bec94d87e7d (diff)
downloadedk2-non-osi-74d4da60a4f0fd75f8ca487296960c84d4ac03b9.tar.xz
Platform/Qemu/Sbsa: Update TF-A binaries to enable SVE/SME
Update the TF-A binaries with SVE/SME enablement. This support was merged into TF-A: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/17825 This allows to test SBSA Reference Platform to boot Linux 6.x kernels with "max" cpu. Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-rw-r--r--Platform/Qemu/Sbsa/Readme.md85
-rwxr-xr-xPlatform/Qemu/Sbsa/bl1.binbin19301 -> 19493 bytes
-rw-r--r--Platform/Qemu/Sbsa/fip.binbin54002 -> 58098 bytes
3 files changed, 56 insertions, 29 deletions
diff --git a/Platform/Qemu/Sbsa/Readme.md b/Platform/Qemu/Sbsa/Readme.md
index 3b36cfb..c7ced43 100644
--- a/Platform/Qemu/Sbsa/Readme.md
+++ b/Platform/Qemu/Sbsa/Readme.md
@@ -1,29 +1,56 @@
-Qemu SBSA TF-A binaries
------------------------
-
-These binaries have been created from the mainline TF-A
-code checked out at the following commit ID:
-
-commit 99c447f4406c8ae66b6cab2341ef0c8e8d9751d2
-Merge: 331723509 8e570b71d
-Author: André Przywara <andre.przywara@arm.com>
-Date: Tue Jul 7 22:06:31 2020 +0000
-
- Merge "drivers: arm: gicv3: auto-detect presence of GIC600-AE" into integration
-
-
-This ensures that the following fix for qemu_sbsa platform is
-merged upstream and is included in the build:
-
-commit d7f5be8ec2fc5254fc581af52156b5fde5deb822
-Author: Masahisa Kojima <masahisa.kojima@linaro.org>
-Date: Tue May 19 19:49:36 2020 +0900
-
- qemu/qemu_sbsa: increase size to handle fdt
-
-
-NOTE: No modifications to the source code have been done.
- The binaries have been generated for the AARCH64 platform
- with the following command:
-
- make PLAT=qemu_sbsa all fip
+Qemu SBSA TF-A binaries
+-----------------------
+
+These binaries have been created from the mainline TF-A
+code checked out at the following commit ID:
+
+commit 6264643a0711faef346cbbb6e3d928a198aeaf31
+Merge: d9248e851 cb3e9650f
+Author: Manish V Badarkhe <manish.badarkhe@arm.com>
+Date: Fri Feb 3 17:04:42 2023 +0100
+
+ Merge "refactor(tc): update total compute gpu device node" into integration
+
+
+This ensures that the following fix for qemu_sbsa platform is
+merged upstream and is included in the build:
+
+commit 9bff7ce37545162d417953ac36c6878216815b94
+Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+Date: Wed Nov 16 14:47:51 2022 +0100
+
+ fix(qemu-sbsa): enable SVE and SME
+
+ Commit 337ff4f1dd6604738d79fd3fa275ae74d74256b2 enabled SVE/SME for
+ qemu platform. Let do the same for qemu-sbsa one too.
+
+ With this change I can boot Debian 'bookworm' installed using Max cpu.
+
+ Info from referenced commit:
+
+ Starting with QEMU v3.1.0 (Dec 2018), QEMU's TCG emulation engine supports
+ the SVE architecture extension. In QEMU v7.1.0 (Aug 2022) it also gained
+ SME support.
+
+ As it stands today, running TF-A under QEMU with "-cpu max" makes Linux
+ hang, because SME and SVE accesses trap to EL3, but are never handled
+ there. This is because the Linux kernel sees the SVE or SME feature bits,
+ and assumes firmware has enabled the feature for lower exception levels.
+ This requirement is described in the Linux kernel booting protocol.
+
+ Enable those features in the TF-A build, so that BL31 does the proper
+ EL3 setup to make the feature usable in non-secure world.
+ We check the actual feature bits before accessing SVE or SME registers,
+ so this is safe even for older QEMU version or when not running with
+ -cpu max. As SVE and SME are AArch64 features only, do not enable them
+ when building for AArch32.
+
+ Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+ Change-Id: I9ea1f91e6b801218d944e8a7d798d5ae568ed59a
+
+
+NOTE: No modifications to the source code have been done.
+ The binaries have been generated for the AARCH64 platform
+ with the following command:
+
+ make PLAT=qemu_sbsa all fip
diff --git a/Platform/Qemu/Sbsa/bl1.bin b/Platform/Qemu/Sbsa/bl1.bin
index 314bd4c..7166078 100755
--- a/Platform/Qemu/Sbsa/bl1.bin
+++ b/Platform/Qemu/Sbsa/bl1.bin
Binary files differ
diff --git a/Platform/Qemu/Sbsa/fip.bin b/Platform/Qemu/Sbsa/fip.bin
index d562013..29e0925 100644
--- a/Platform/Qemu/Sbsa/fip.bin
+++ b/Platform/Qemu/Sbsa/fip.bin
Binary files differ