1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-07-18 16:37:08 +00:00

Compare commits

..

20 Commits

Author SHA1 Message Date
Ross Burton b187fb9232 arm-bsp/secure-partitions: fix build with GCC 11.4
GCC 11.4 has improved code generation and needs the __aarch64_cas4_sync
intrinsic from libgcc, but one of the modules here doesn't link to
libgcc.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2023-08-24 11:13:41 -04:00
Jon Mason c39bb4ce3b arm/edk2: add support for qemuarm and qemuarm64
Add basic support for running edk2 on qemuarm and qemuarm64.  This
necessitated the need to add ACPI and EFI to the default kernel configs
for these machines.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2023-07-10 08:39:12 -04:00
Vikas Katariya 96aad3b29a arm-bsp/linux-yocto: Fix N1SDP PCI quirk patch
The poky commit 74f086529911bdaf07a8414d50de411e20739541 updates
the kernel to v5.15.103 which breaks the PCI quirk patch for the N1SDP.

Signed-off-by: Vikas Katariya <vikas.katariya@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2023-04-13 13:00:10 -04:00
Ross Burton a0216a41bd CI: pin to kas 3.2 as 3.2.1 fails
For some reason the kas 3.2.1 container fails:

No such file or directory: '/builds/engineering/yocto/meta-arm/ci/ci/base.yml'

Note the repeated /ci/, which is wrong.

Pin the kas container to 3.2 for now until this is resolved.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2023-02-09 12:40:00 +00:00
Daniel Díaz b004c61ec2 arm-bsp/firmware-image-juno: Fix deployment of compressed Image
A recent commit compressed the kernel image (to Image.gz) and
by default enabled an initramfs image. In the case for when
such that (initramfs) is not desirable, the deploy step of the
Juno firmware will still try to install the Image file, (not
Image.gz), so this fails:

  ERROR: firmware-image-juno-1.0-r0 do_deploy: ExecutionError('/oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477', 1, None, None)
  ERROR: Logfile of failure stored in: /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/log.do_deploy.360477
  Log data follows:
  | DEBUG: Executing python function sstate_task_prefunc
  | DEBUG: Python function sstate_task_prefunc finished
  | DEBUG: Executing shell function do_deploy
  | cp: cannot stat '/oe/build/tmp-glibc/deploy/images/juno/Image': No such file or directory
  | WARNING: /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477:152 exit 1 from 'cp -L -f /oe/build/tmp-glibc/deploy/images/juno/Image /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/image/juno-firmware-19.06/SOFTWARE/'
  | WARNING: Backtrace (BB generated script):
  | 	#1: do_deploy, /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477, line 152
  | 	#2: main, /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477, line 163
  NOTE: recipe firmware-image-juno-1.0-r0: task do_deploy: Failed
  ERROR: Task (../meta-arm/meta-arm-bsp/recipes-bsp/images/firmware-image-juno.bb:do_deploy) failed with exit code '1'

This updates the else case for when an initramfs image is not
in use so that the right kernel image is deployed, by using
the KERNEL_IMAGETYPE variable, to use either version of the
kernel image.

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2023-02-04 04:53:38 -05:00
Ross Burton 858c7553a8 Revert "CI: add patches to fix perf with clang"
These fixes have been merged into oe-core so are no longer needed.

This reverts commit e3cb27c06a.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2023-01-30 13:35:51 +00:00
Jon Mason ce41be0a7f arm-bsp/linux-yocto: Update juno patch
Update the juno kernel patch to work with the latest kirkstone kernel,
and remove the workaround.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2023-01-18 11:00:19 -05:00
Jon Mason 9f70b3d538 arm-bsp/juno: move to compressed initramfs image
Change u-boot and machine config to default to booting a compressed
initramfs.  This allows for easier testing.  A compressed image is
needed as the image is too big for the storage, and the error notifying
of such is vague.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2023-01-18 11:00:19 -05:00
Ross Burton 904f8e82c2 arm-bsp/linux-yocto: temporarily downgrade juno to 5.15.72
The mailbox patches don't apply to 5.15.78 so until they can be rebased
and retested, pin the kernel to 5.15.72.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-12-19 17:16:10 +00:00
Ross Burton e3cb27c06a CI: add patches to fix perf with clang
Apply two in-flight patches to fix the build of perf with clang.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-12-19 17:15:32 +00:00
Ross Burton 196ae5166d ci/get-binary-toolchains: rewrite, slightly
Add set -e so errors are fatal.

Allow HOST_ARCH and VER to be overridden by the environment, for testing.

Pull the tarball basename into a variable to reduce duplication.

Turn the wget call into a function to reduce duplication.

Drop the big-endian binaries as we never use those.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-12-16 17:32:06 +00:00
Ross Burton 3366ba9427 CI: remove armcompiler references
Arm Compiler has been removed, so remove it from the CI.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-12-15 17:17:07 +00:00
Ross Burton 796d9913fa arm-toolchain/armcompiler: remove recipe
As far as we know nobody is actually using the Arm Compiler recipe: 6.17
does a network operation on every call to check the license and this
fails with the network isolation that do_compile has in kirkstone, and
6.18 is behind a loginwall so we cannot download it in a recipe.

Unless we have actual users asking for a recipe, remove it from the layer
to avoid confusion.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-12-15 17:17:07 +00:00
Ross Burton 9d03ba7f5c arm/trusted-firmware-m: remove compiler options
The recipe supports the use of both Arm's binary GCC (aka GNU Arm
Embedded Compiler, or gnu-rm) and binary Clang (aka Arm Compiler).
However, armcompiler was never tested and doesn't work: 6.17 does a
network operation on every call to check the license which fails with
the network isolation in do_compile tasks, and 6.18 is behind a
loginwall so we can't automatically fetch it in a recipe.

Simplify the recipe to hardcode the use of gnu-rm, and remove the clang
support.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-12-15 17:17:07 +00:00
Jon Mason 0eaf5b5a7d CI: define DEFAULT_TAG and CPU_REQUEST
DEFAULT_TAG and CPU_REQUEST are being used to help with internal Gitlab
pipeline setups know which type of machines to run on, but has no value
outside of Arm Corp.  Gitlab CI allows for variables to be overridden
by default.  So, we can give it a default value of NULL/empty and have
everything work internally and externally by default.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-12-15 17:16:41 +00:00
Ross Burton d5ba8fea32 CI: no need to install telnet
The kas 3.1 container has telnet in. We can also remove python3-subunit
once kas 3.2 is released.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-12-14 15:33:46 +00:00
Ross Burton 0e1f4bc081 CI: use the .setup fragment in machine-coverage
Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-12-14 15:33:46 +00:00
Ross Burton e5dd1c4f53 CI: add tags to all jobs
Tag all jobs with the DEFAULT_TAG variable so each instance can control
what tags the jobs have, whilst still explicitly tagging the jobs which
need specific tags (such as x86_64 for jobs which need to run x86-only
binaries)

Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-12-14 15:20:26 +00:00
Ross Burton ee8ef5b765 CI: add variables needed for k8s runners
The Kas container needs to use the entrypoint as that is where the user
changes from root to a normal user.

Also set the KUBERNETES_CPU_REQUEST to the variable CPU_REQUEST as this
needs to be tuned per-deployment.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-12-14 15:20:26 +00:00
Ross Burton 67578fcfcd arm-bsp/linux-yocto: refresh juno-dts-mhu-doorbell.patch for 5.15.72
The linux-yocto recipe in oe-core upgraded to 5.15.72, so rebase the
doorbell patches to apply correctly.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-11-14 10:00:07 -05:00
20 changed files with 172 additions and 153 deletions
+16 -4
View File
@@ -1,4 +1,12 @@
image: ghcr.io/siemens/kas/kas:latest-release
image: ghcr.io/siemens/kas/kas:3.2
variables:
CPU_REQUEST: ""
DEFAULT_TAG: ""
# These are needed as the k8s executor doesn't respect the container entrypoint
# by default
FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: 0
FF_KUBERNETES_HONOR_ENTRYPOINT: 1
stages:
- prep
@@ -6,6 +14,8 @@ stages:
# Common job fragment to get a worker ready
.setup:
tags:
- $DEFAULT_TAG
stage: build
interruptible: true
variables:
@@ -25,11 +35,14 @@ stages:
- mkdir --verbose --parents $KAS_WORK_DIR $KAS_REPO_REF_DIR $SSTATE_DIR $DL_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
# Must do this here, as it's the only way to make sure the toolchain is installed on the same builder
- ./ci/get-binary-toolchains $DL_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
- sudo apt update && sudo apt install --yes telnet python3-subunit
# This can be removed with Kas 3.2
- sudo apt-get update && sudo apt-get install --yes python3-subunit
# Generalised fragment to do a Kas build
.build:
extends: .setup
variables:
KUBERNETES_CPU_REQUEST: $CPU_REQUEST
script:
- KASFILES=$(./ci/jobs-to-kas "$CI_JOB_NAME")
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
@@ -249,8 +262,7 @@ pending-updates:
# What percentage of machines in the layer do we build
machine-coverage:
stage: build
interruptible: true
extends: .setup
script:
- ./ci/check-machine-coverage
coverage: '/Coverage: \d+/'
+1 -1
View File
@@ -30,7 +30,7 @@ local_conf_header:
CONF_VERSION = "2"
BB_NUMBER_THREADS = "16"
PARALLEL_MAKE = "-j16"
LICENSE_FLAGS_ACCEPTED += "armcompiler Arm-FVP-EULA"
LICENSE_FLAGS_ACCEPTED += "Arm-FVP-EULA"
setup: |
PACKAGE_CLASSES = "package_ipk"
PACKAGECONFIG:remove:pn-qemu-system-native = "gtk+ sdl"
+23 -19
View File
@@ -1,8 +1,9 @@
#!/bin/bash
set -u
set -u -e
HOST_ARCH=$(uname -m)
VER="10.3-2021.07"
BASENAME=gcc-arm
VER=${VER:-10.3-2021.07}
HOST_ARCH=${HOST_ARCH:-$(uname -m)}
DOWNLOAD_DIR=$1
TOOLCHAIN_DIR=$2
@@ -11,36 +12,39 @@ TOOLCHAIN_LINK_DIR=$3
# These should be already created by .gitlab-ci.yml, but do here if run outside of that env
mkdir -p $DOWNLOAD_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
download() {
TRIPLE=$1
URL=https://developer.arm.com/-/media/Files/downloads/gnu-a/$VER/binrel/$BASENAME-$VER-$HOST_ARCH-$TRIPLE.tar.xz
wget -P $DOWNLOAD_DIR -nc $URL
}
if [ $HOST_ARCH = "aarch64" ]; then
#AArch64 Linux hosted cross compilers
# AArch64 Linux hosted cross compilers
#AArch32 target with hard float (arm-none-linux-gnueabihf)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-arm-none-linux-gnueabihf.tar.xz
# AArch32 target with hard float
download arm-none-linux-gnueabihf
elif [ $HOST_ARCH = "x86_64" ]; then
#x86_64 Linux hosted cross compilers
# x86_64 Linux hosted cross compilers
#AArch32 target with hard float (arm-linux-none-gnueabihf)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-arm-none-linux-gnueabihf.tar.xz
# AArch32 target with hard float
download arm-none-linux-gnueabihf
#AArch64 GNU/Linux target (aarch64-none-linux-gnu)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-aarch64-none-linux-gnu.tar.xz
#AArch64 GNU/Linux target (aarch64_be-none-linux-gnu)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-aarch64_be-none-linux-gnu.tar.xz
# AArch64 GNU/Linux target
download aarch64-none-linux-gnu
else
echo "ERROR - Unknown build arch of $HOST_ARCH"
exit 1
fi
for i in arm aarch64 aarch64_be; do
if [ ! -d $TOOLCHAIN_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*/ ]; then
if [ ! -f $DOWNLOAD_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz ]; then
for i in arm aarch64; do
if [ ! -d $TOOLCHAIN_DIR/$BASENAME-$VER-$HOST_ARCH-$i-none-linux-gnu*/ ]; then
if [ ! -f $DOWNLOAD_DIR/$BASENAME-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz ]; then
continue
fi
tar -C $TOOLCHAIN_DIR -axvf $DOWNLOAD_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz
tar -C $TOOLCHAIN_DIR -axvf $DOWNLOAD_DIR/$BASENAME-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz
fi
# Setup a link for the toolchain to use local to the building machine (e.g., not in a shared location)
ln -s $TOOLCHAIN_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu* $TOOLCHAIN_LINK_DIR/$i
ln -s $TOOLCHAIN_DIR/$BASENAME-$VER-$HOST_ARCH-$i-none-linux-gnu* $TOOLCHAIN_LINK_DIR/$i
done
-2
View File
@@ -11,9 +11,7 @@ local_conf_header:
toolchains: |
SDKMACHINE = "x86_64"
# No target armcompiler as currently there is no arm64 build
target:
- nativesdk-armcompiler
- gcc-aarch64-none-elf
- nativesdk-gcc-aarch64-none-elf
- gcc-arm-none-eabi
+5 -2
View File
@@ -10,10 +10,10 @@ require conf/machine/include/arm/arch-armv8a.inc
MACHINE_FEATURES = "usbhost usbgadget alsa screen wifi bluetooth optee pci"
KERNEL_IMAGETYPE = "Image"
KERNEL_IMAGETYPE = "Image.gz"
KERNEL_DEVICETREE = "arm/juno.dtb arm/juno-r1.dtb arm/juno-r2.dtb"
IMAGE_FSTYPES += "tar.bz2 ext4"
IMAGE_FSTYPES += "tar.bz2 ext4 cpio.gz"
SERIAL_CONSOLES = "115200;ttyAMA0"
@@ -25,3 +25,6 @@ EXTRA_IMAGEDEPENDS += "trusted-firmware-a virtual/bootloader firmware-image-juno
# Juno u-boot configuration
UBOOT_MACHINE = "vexpress_aemv8a_juno_defconfig"
INITRAMFS_IMAGE_BUNDLE ?= "1"
INITRAMFS_IMAGE = "core-image-minimal"
@@ -63,10 +63,10 @@ do_deploy() {
done
if [ "${INITRAMFS_IMAGE_BUNDLE}" -eq 1 ]; then
cp -L -f ${DEPLOY_DIR_IMAGE}/Image-initramfs-juno.bin \
cp -L -f ${DEPLOY_DIR_IMAGE}/Image.gz-initramfs-juno.bin \
${D}/${UNPACK_DIR}/SOFTWARE/Image
else
cp -L -f ${DEPLOY_DIR_IMAGE}/Image ${D}/${UNPACK_DIR}/SOFTWARE/
cp -L -f ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ${D}/${UNPACK_DIR}/SOFTWARE/
fi
# Compress the files
@@ -0,0 +1,27 @@
From 097a43223da4fa42335944295903ede2755e2dfd Mon Sep 17 00:00:00 2001
From: Jon Mason <jdmason@kudzu.us>
Date: Mon, 19 Dec 2022 11:36:04 -0500
Subject: [PATCH] configs: vexpress: modify to boot compressed initramfs
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Upstream-Status: Inappropriate
---
include/configs/vexpress_aemv8a.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/configs/vexpress_aemv8.h b/include/configs/vexpress_aemv8a.h
index cd7f6c1b9ba0..c2f5eb302076 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -164,6 +164,8 @@
"kernel_name=norkern\0" \
"kernel_alt_name=Image\0" \
"kernel_addr_r=0x80080000\0" \
+ "kernel_comp_addr_r=0x90000000\0" \
+ "kernel_comp_size=0x3000000\0" \
"initrd_name=ramdisk.img\0" \
"initrd_addr_r=0x88000000\0" \
"fdtfile=board.dtb\0" \
--
2.30.2
@@ -6,4 +6,7 @@ FILESEXTRAPATHS:prepend = "${THIS_DIR}/${BP}:"
#
# Juno KMACHINE
#
SRC_URI:append:juno = " file://u-boot_vexpress_uenv.patch"
SRC_URI:append:juno = " \
file://u-boot_vexpress_uenv.patch \
file://0002-configs-vexpress-modify-to-boot-compressed-initramfs.patch \
"
@@ -21,10 +21,10 @@ Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
5 files changed, 96 insertions(+), 85 deletions(-)
diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi
index 6288e104a089..36844f7d861e 100644
index a00b0f14c222..8da7fe6fd157 100644
--- a/arch/arm64/boot/dts/arm/juno-base.dtsi
+++ b/arch/arm64/boot/dts/arm/juno-base.dtsi
@@ -23,11 +23,12 @@ frame@2a830000 {
@@ -23,12 +23,13 @@ frame@2a830000 {
};
mailbox: mhu@2b1f0000 {
@@ -32,14 +32,15 @@ index 6288e104a089..36844f7d861e 100644
+ compatible = "arm,mhu-doorbell", "arm,primecell";
reg = <0x0 0x2b1f0000 0x0 0x1000>;
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
- #mbox-cells = <1>;
+ #mbox-cells = <2>;
+ mbox-name = "ARM-MHU";
clocks = <&soc_refclk100mhz>;
clock-names = "apb_pclk";
};
@@ -39,7 +40,7 @@ smmu_gpu: iommu@2b400000 {
@@ -40,7 +41,7 @@ smmu_gpu: iommu@2b400000 {
<GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
#iommu-cells = <1>;
#global-interrupts = <1>;
@@ -48,7 +49,7 @@ index 6288e104a089..36844f7d861e 100644
dma-coherent;
status = "disabled";
};
@@ -63,7 +64,7 @@ smmu_etr: iommu@2b600000 {
@@ -64,7 +65,7 @@ smmu_etr: iommu@2b600000 {
#iommu-cells = <1>;
#global-interrupts = <1>;
dma-coherent;
@@ -57,7 +58,7 @@ index 6288e104a089..36844f7d861e 100644
};
gic: interrupt-controller@2c010000 {
@@ -123,7 +124,7 @@ etf@20010000 { /* etf0 */
@@ -124,7 +125,7 @@ etf@20010000 { /* etf0 */
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -66,7 +67,7 @@ index 6288e104a089..36844f7d861e 100644
in-ports {
port {
@@ -147,7 +148,7 @@ tpiu@20030000 {
@@ -148,7 +149,7 @@ tpiu@20030000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -75,7 +76,7 @@ index 6288e104a089..36844f7d861e 100644
in-ports {
port {
tpiu_in_port: endpoint {
@@ -164,7 +165,7 @@ main_funnel: funnel@20040000 {
@@ -165,7 +166,7 @@ main_funnel: funnel@20040000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -84,7 +85,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
@@ -201,7 +202,7 @@ etr@20070000 {
@@ -202,7 +203,7 @@ etr@20070000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -93,7 +94,7 @@ index 6288e104a089..36844f7d861e 100644
arm,scatter-gather;
in-ports {
port {
@@ -220,7 +221,7 @@ stm@20100000 {
@@ -221,7 +222,7 @@ stm@20100000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -102,7 +103,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
stm_out_port: endpoint {
@@ -235,7 +236,7 @@ replicator@20120000 {
@@ -236,7 +237,7 @@ replicator@20120000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -111,7 +112,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
#address-cells = <1>;
@@ -270,7 +271,7 @@ cpu_debug0: cpu-debug@22010000 {
@@ -271,7 +272,7 @@ cpu_debug0: cpu-debug@22010000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -120,7 +121,7 @@ index 6288e104a089..36844f7d861e 100644
};
etm0: etm@22040000 {
@@ -279,7 +280,7 @@ etm0: etm@22040000 {
@@ -280,7 +281,7 @@ etm0: etm@22040000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -129,7 +130,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster0_etm0_out_port: endpoint {
@@ -295,7 +296,7 @@ funnel@220c0000 { /* cluster0 funnel */
@@ -296,7 +297,7 @@ funnel@220c0000 { /* cluster0 funnel */
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -138,7 +139,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster0_funnel_out_port: endpoint {
@@ -330,7 +331,7 @@ cpu_debug1: cpu-debug@22110000 {
@@ -331,7 +332,7 @@ cpu_debug1: cpu-debug@22110000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -147,7 +148,7 @@ index 6288e104a089..36844f7d861e 100644
};
etm1: etm@22140000 {
@@ -339,7 +340,7 @@ etm1: etm@22140000 {
@@ -340,7 +341,7 @@ etm1: etm@22140000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -156,7 +157,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster0_etm1_out_port: endpoint {
@@ -355,7 +356,7 @@ cpu_debug2: cpu-debug@23010000 {
@@ -356,7 +357,7 @@ cpu_debug2: cpu-debug@23010000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -165,7 +166,7 @@ index 6288e104a089..36844f7d861e 100644
};
etm2: etm@23040000 {
@@ -364,7 +365,7 @@ etm2: etm@23040000 {
@@ -365,7 +366,7 @@ etm2: etm@23040000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -174,7 +175,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster1_etm0_out_port: endpoint {
@@ -380,7 +381,7 @@ funnel@230c0000 { /* cluster1 funnel */
@@ -381,7 +382,7 @@ funnel@230c0000 { /* cluster1 funnel */
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -183,7 +184,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster1_funnel_out_port: endpoint {
@@ -427,7 +428,7 @@ cpu_debug3: cpu-debug@23110000 {
@@ -428,7 +429,7 @@ cpu_debug3: cpu-debug@23110000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -192,7 +193,7 @@ index 6288e104a089..36844f7d861e 100644
};
etm3: etm@23140000 {
@@ -436,7 +437,7 @@ etm3: etm@23140000 {
@@ -437,7 +438,7 @@ etm3: etm@23140000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -201,7 +202,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster1_etm1_out_port: endpoint {
@@ -452,7 +453,7 @@ cpu_debug4: cpu-debug@23210000 {
@@ -453,7 +454,7 @@ cpu_debug4: cpu-debug@23210000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -210,7 +211,7 @@ index 6288e104a089..36844f7d861e 100644
};
etm4: etm@23240000 {
@@ -461,7 +462,7 @@ etm4: etm@23240000 {
@@ -462,7 +463,7 @@ etm4: etm@23240000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -219,7 +220,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster1_etm2_out_port: endpoint {
@@ -477,7 +478,7 @@ cpu_debug5: cpu-debug@23310000 {
@@ -478,7 +479,7 @@ cpu_debug5: cpu-debug@23310000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -228,7 +229,7 @@ index 6288e104a089..36844f7d861e 100644
};
etm5: etm@23340000 {
@@ -486,7 +487,7 @@ etm5: etm@23340000 {
@@ -487,7 +488,7 @@ etm5: etm@23340000 {
clocks = <&soc_smc50mhz>;
clock-names = "apb_pclk";
@@ -237,7 +238,7 @@ index 6288e104a089..36844f7d861e 100644
out-ports {
port {
cluster1_etm3_out_port: endpoint {
@@ -503,8 +504,8 @@ gpu: gpu@2d000000 {
@@ -504,8 +505,8 @@ gpu: gpu@2d000000 {
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "job", "mmu", "gpu";
@@ -248,7 +249,7 @@ index 6288e104a089..36844f7d861e 100644
dma-coherent;
/* The SMMU is only really of interest to bare-metal hypervisors */
/* iommus = <&smmu_gpu 0>; */
@@ -519,14 +520,24 @@ sram: sram@2e000000 {
@@ -520,14 +521,24 @@ sram: sram@2e000000 {
#size-cells = <1>;
ranges = <0 0x0 0x2e000000 0x8000>;
@@ -341,21 +342,25 @@ index 6288e104a089..36844f7d861e 100644
};
};
@@ -596,40 +607,40 @@ thermal-zones {
@@ -596,7 +607,7 @@ thermal-zones {
pmic {
polling-delay = <1000>;
polling-delay-passive = <100>;
- thermal-sensors = <&scpi_sensors0 0>;
+ thermal-sensors = <&scmi_sensors0 0>;
};
trips {
pmic_crit0: trip0 {
temperature = <90000>;
@@ -609,7 +620,7 @@ pmic_crit0: trip0 {
soc {
polling-delay = <1000>;
polling-delay-passive = <100>;
- thermal-sensors = <&scpi_sensors0 3>;
+ thermal-sensors = <&scmi_sensors0 3>;
};
trips {
soc_crit0: trip0 {
temperature = <80000>;
@@ -622,28 +633,28 @@ soc_crit0: trip0 {
big_cluster_thermal_zone: big-cluster {
polling-delay = <1000>;
polling-delay-passive = <100>;
@@ -388,7 +393,7 @@ index 6288e104a089..36844f7d861e 100644
status = "disabled";
};
};
@@ -705,7 +716,7 @@ hdlcd@7ff50000 {
@@ -719,7 +730,7 @@ hdlcd@7ff50000 {
reg = <0 0x7ff50000 0 0x1000>;
interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&smmu_hdlcd1 0>;
@@ -397,7 +402,7 @@ index 6288e104a089..36844f7d861e 100644
clock-names = "pxlclk";
port {
@@ -720,7 +731,7 @@ hdlcd@7ff60000 {
@@ -734,7 +745,7 @@ hdlcd@7ff60000 {
reg = <0 0x7ff60000 0 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&smmu_hdlcd0 0>;
@@ -612,5 +617,5 @@ index f00cffbd032c..a28316c65c1b 100644
capacity-dmips-mhz = <578>;
dynamic-power-coefficient = <140>;
--
2.25.1
2.30.2
@@ -148,9 +148,9 @@ index a531064233f9..ebe192134a97 100644
* Some NVIDIA GPU devices do not work with bus reset, SBR needs to be
* prevented for those affected devices.
@@ -4968,6 +5069,7 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_NXP, 0x8d9b, pci_quirk_nxp_rp_acs },
/* Zhaoxin Root/Downstream Ports */
{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
/* Wangxun nics */
{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
{ 0 }
};
@@ -53,7 +53,7 @@ new file mode 100644
index 0000000..840683a
--- /dev/null
+++ b/deployments/se-proxy/opteesp/lse.S
@@ -0,0 +1,19 @@
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
@@ -61,18 +61,27 @@ index 0000000..840683a
+
+.text
+.globl __aarch64_cas4_acq_rel
+.globl __aarch64_cas4_sync
+
+__aarch64_cas4_acq_rel:
+ mov w16, w0
+ ldaxr w0, [x2]
+ cmp w0, w16
+0: bne 1f
+ mov w16, w0
+ ldaxr w0, [x2]
+ cmp w0, w16
+0: bne 1f
+
+ stlxr w17, w1, [x2]
+ cbnz w17, 0b
+1: ret
+ stlxr w17, w1, [x2]
+ cbnz w17, 0b
+1: ret
+
+__aarch64_cas4_sync:
+ mov w16, w0
+ ldxr w0, [x2]
+ cmp w0, w16
+0: bne 1f
+
+ stlxr w17, w1, [x2]
+ cbnz w17, 0b
+1: ret
diff --git a/external/openamp/libmetal.cmake b/external/openamp/libmetal.cmake
new file mode 100644
index 0000000..3a647e6
-3
View File
@@ -10,6 +10,3 @@ BBFILE_PRIORITY_arm-toolchain = "5"
LAYERDEPENDS_arm-toolchain = "core"
LAYERSERIES_COMPAT_arm-toolchain = "kirkstone"
# These variables are used for armcompiler license
BB_BASEHASH_IGNORE_VARS:append = " ARM_TOOL_VARIANT ARMLMD_LICENSE_FILE LM_LICENSE_FILE"
@@ -1,14 +0,0 @@
The install script has an explicit check that the current host is x86-64, which
means we can't build armcompiler for x86-64 targets on arm64. Pad the
replacement host with whitespace so that the installer offset doesn't change.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@arm.com>
--- a/install_x86_64.sh.orig 2021-07-06 14:11:47.632155370 +0100
+++ b/install_x86_64.sh 2021-07-06 14:11:58.393163350 +0100
@@ -470,3 +470,3 @@
fi
-host=`/bin/uname -m`
+host=x86_64
echo --- Host target check...[${host}]
@@ -1,55 +0,0 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2020 Arm Limited
#
require arm-binary-toolchain.inc
SUMMARY = "Baremetal Armcompiler for Cortex-A, Cortex-R and Cortex-M processors"
HOMEPAGE = "https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6"
# Certain features of armcompiler requires a license. For more information, please refer to the armcompiler user guide:
# https://developer.arm.com/tools-and-software/software-development-tools/license-management/resources/product-and-toolkit-configuration
# Usually set and export of these variables are required:
# ARM_TOOL_VARIANT, ARMLMD_LICENSE_FILE, LM_LICENSE_FILE
LICENSE = "Armcompiler-License-agreement & Armcompiler-Redistributables & \
Armcompiler-Supplementary-terms & Armcompiler-Third-party-licenses"
NO_GENERIC_LICENSE[Armcompiler-License-agreement] = "license_terms/license_agreement.txt"
NO_GENERIC_LICENSE[Armcompiler-Redistributables] = "license_terms/redistributables.txt"
NO_GENERIC_LICENSE[Armcompiler-Supplementary-terms] = "license_terms/supplementary_terms.txt"
NO_GENERIC_LICENSE[Armcompiler-Third-party-licenses] = "license_terms/third_party_licenses.txt"
# The Arm Compiler is under a EULA, read this at the homepage above and if you
# agree add 'armcompiler' to your LICENSE_FLAGS_ACCEPTED.
LICENSE_FLAGS = "armcompiler"
LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=19faf912b534478d28f60dfa24659c17 \
file://license_terms/redistributables.txt;md5=c22d8d2388d8e592f4b135f87bb243da \
file://license_terms/supplementary_terms.txt;md5=e2443a4a7c520e79ebb603c8ba509076 \
file://license_terms/third_party_licenses.txt;md5=53b42e7d31259bdc174b9c03651ed1b7 "
ARMCLANG_VERSION = "DS500-BN-00026-r5p0-19rel0"
COMPATIBLE_HOST = "x86_64.*-linux"
SRC_URI = "https://developer.arm.com/-/media/Files/downloads/compiler/${ARMCLANG_VERSION}.tgz;subdir=${ARMCLANG_VERSION} \
file://no-uname.patch"
SRC_URI[sha256sum] = "0ed2c3a2e416f07b892250fcbcca4b27353b046a030a433bf6dddc0db802885c"
UPSTREAM_CHECK_URI = "https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/"
UPSTREAM_CHECK_REGEX = "Download Arm Compiler.*,(?P<pver>[\d\.]+)"
S = "${WORKDIR}/${ARMCLANG_VERSION}"
do_install() {
install -d ${D}${bindir} ${D}${libexecdir}/${BPN}/
# Commercial license flag set, so recipe will only install when explicitly agreed to it already
${S}/install_x86_64.sh --i-agree-to-the-contained-eula -d ${D}${libexecdir}/${BPN}/ --no-interactive
# Symlink all executables into bindir
for f in ${D}${libexecdir}/${BPN}/bin/*; do
ln -rs $f ${D}${bindir}/$(basename $f)
done
}
@@ -48,6 +48,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
DEPENDS += "cmake-native \
ninja-native \
gcc-arm-none-eabi-native \
python3-intelhex-native \
python3-jinja2-native \
python3-pyyaml-native \
@@ -68,14 +69,14 @@ python() {
raise bb.parse.SkipRecipe("TFM_PLATFORM needs to be set")
}
PACKAGECONFIG ??= "cc-gnuarm"
# What compiler to use
PACKAGECONFIG[cc-gnuarm] = "-DTFM_TOOLCHAIN_FILE=${S}/toolchain_GNUARM.cmake,,gcc-arm-none-eabi-native"
PACKAGECONFIG[cc-armclang] = "-DTFM_TOOLCHAIN_FILE=${S}/toolchain_ARMCLANG.cmake,,armcompiler-native"
PACKAGECONFIG ??= ""
# Whether to integrate the test suite
PACKAGECONFIG[test-secure] = "-DTEST_S=ON,-DTEST_S=OFF"
PACKAGECONFIG[test-nonsecure] = "-DTEST_NS=ON,-DTEST_NS=OFF"
# Currently we only support using the Arm binary GCC
EXTRA_OECMAKE += "-DTFM_TOOLCHAIN_FILE=${S}/toolchain_GNUARM.cmake"
# Don't let FetchContent download more sources during do_configure
EXTRA_OECMAKE += "-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
@@ -77,9 +77,14 @@ export BTOOLS_PATH = "${EDK_TOOLS_PATH}/BinWrappers/PosixLike"
EDK_COMPILER ?= "GCC5"
export GCC5_AARCH64_PREFIX = "${TARGET_PREFIX}"
export GCC5_ARM_PREFIX = "${TARGET_PREFIX}"
EDK_COMPILER:toolchain-clang = "CLANG38"
export CLANG38_AARCH64_PREFIX = "${TARGET_PREFIX}"
export CLANG38_ARM_PREFIX = "${TARGET_PREFIX}"
#FIXME - arm32 doesn't work with clang due to a linker issue
TOOLCHAIN:arm = "gcc"
do_configure:prepend() {
sed -i -e "s#-target ${HOST_ARCH}-linux-gnu*#-target ${HOST_SYS}#" ${S}/BaseTools/Conf/tools_def.template
@@ -3,6 +3,15 @@ EDK2_PLATFORM:qemuarm64-secureboot = "ArmVirtQemu-AARCH64"
EDK2_PLATFORM_DSC:qemuarm64-secureboot = "ArmVirtPkg/ArmVirtQemu.dsc"
EDK2_BIN_NAME:qemuarm64-secureboot = "QEMU_EFI.fd"
COMPATIBLE_MACHINE:qemuarm64 = "qemuarm64"
EDK2_PLATFORM:qemuarm64 = "ArmVirtQemu-AARCH64"
EDK2_PLATFORM_DSC:qemuarm64 = "ArmVirtPkg/ArmVirtQemu.dsc"
EDK2_BIN_NAME:qemuarm64 = "QEMU_EFI.fd"
COMPATIBLE_MACHINE:qemuarm = "qemuarm"
EDK2_PLATFORM:qemuarm = "ArmVirtQemu-ARM"
EDK2_PLATFORM_DSC:qemuarm = "ArmVirtPkg/ArmVirtQemu.dsc"
EDK2_BIN_NAME:qemuarm = "QEMU_EFI.fd"
COMPATIBLE_MACHINE:qemu-generic-arm64 = "qemu-generic-arm64"
DEPENDS:append:qemu-generic-arm64 = " trusted-firmware-a coreutils-native"
@@ -21,3 +30,11 @@ do_install:append:qemu-generic-arm64() {
# QEMU requires that the images be minimum of 256M in size
truncate -s 256M ${D}/firmware/SBSA_FLASH*.fd
}
do_install:append:qemuarm64() {
install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/${EDK2_BIN_NAME} ${D}/firmware/
}
do_install:append:qemuarm() {
install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/${EDK2_BIN_NAME} ${D}/firmware/
}
@@ -0,0 +1,2 @@
CONFIG_ACPI=y
CONFIG_EFI=y
@@ -11,3 +11,9 @@ SRC_URI:append:qemuarm64-secureboot = " \
file://skip-unavailable-memory.patch \
file://tee.cfg \
"
FILESEXTRAPATHS:prepend:qemuarm64 = "${ARMFILESPATHS}"
SRC_URI:append:qemuarm64 = " file://efi.cfg"
FILESEXTRAPATHS:prepend:qemuarm = "${ARMFILESPATHS}"
SRC_URI:append:qemuarm = " file://efi.cfg"
-1
View File
@@ -145,7 +145,6 @@ recipes = ("virtual/kernel",
"edk2-firmware",
"u-boot",
"optee-os",
"armcompiler-native",
"gcc-aarch64-none-elf-native",
"gcc-arm-none-eabi-native")