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

Compare commits

...

34 Commits

Author SHA1 Message Date
Ross Burton c3e9fb12aa CI: only run pending-updates on master
This job takes a few minutes and isn't useful unless it's being ran for
master, or is being actively worked on.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-11-05 09:39:48 -05:00
Ross Burton 10c27f061b CI: fix meta-virtualization URL
Use https: so that Kas premirroring can work.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-27 10:00:11 -04:00
Ross Burton 5c33ed794a CI: show all variables in update-repos
This makes it easier to debug path usage.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-27 10:00:11 -04:00
Ross Burton 2384dc1a9a CI: don't run update-repos if KAS_REPO_REF_DIR isn't set
Mostly taken from master.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-27 10:00:11 -04:00
Ross Burton 5d759ca68d CI: remove obsolete installation of python3-subunit
This is in the Kas image from 3.2, so this is now obsolete.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-27 10:00:11 -04:00
Ross Burton 58a33d0860 CI: clean up variable definitions
Mostly taken from master, rationalise the variable definitions and stop
hardcoding /persist/.

Users of this CI will have to ensure that they've set CACHE_DIR if they
want anything actually cached.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-27 10:00:11 -04:00
Ross Burton 5c4f98bbc5 CI: add CI_CLEAN_REPOS variable to allow cleaning the repo reference cache
If the repository reference directory gets corrupted it's not easy to
wipe it, so add a variable CI_CLEAN_REPOS that if set in the pipeline
will clean the clones and re-fetch them.

Also, stop the fetch from detaching during the garbage collection, just
in case it was a long-running GC that got killed that caused the
corruption in the first place.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-06-27 10:00:11 -04:00
Ross Burton 6b2d97cecd CI: use canonical git.yoctoproject.org URLs
The canonical repository URLs don't use /git/.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2025-04-04 13:55:32 -04:00
Jon Mason 936c02ec13 arm/linux-yocto: disable CONFIG_MTD_NAND_FSL_IFC
Linux stable kernel v5.15.166 added commit e59386c300198385d8bf33336de3b8c165d20d00,
which modifies the depends for the Freescale IFC NAND controller.  See
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=e59386c300198385d8bf33336de3b8c165d20d00

Because of this change, do_kernel_configcheck is logging an warning
about values not matching.  To address this issue, disable it manually
in a config fragment, but only for the affected machines in meta-arm.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-10-21 12:00:10 -04:00
Javier Tia bf98ef902e trusted-firmware-a: fix build error when using ccache
When ccache is enabled trusted-firmware-a recipe fails with this
error message:

    make: *** No rule to make target 'aarch64-poky-linux-gcc'. Stop.

ccache prefix CC variable with 'ccache' word before compiler. Because
there are no quotes assigned to CC, only 'ccache' is assigned. The
compiler becomes a make target, producing the build error.

Add single quotes to LD is a good measure to prevent this kind of error.

Signed-off-by: Javier Tia <javier.tia@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-10-02 08:58:50 -04:00
Ross Burton 260e3adc2b arm/boot-wrapper-aarch64: use https to fetch git source
Some networks limit outgoing git: traffic, so use https:.

Fixes: 0cec3e5 ("arm/gem5/boot-wrapper-aarch64: Move main recipe to meta-arm")
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-05-08 10:47:03 -04:00
Alexander Sverdlin 1c9ba5d495 optee-ftpm: fix EARLY_TA_PATHS passed to optee-os
Fix the build with DISTRO_FEATURES containing "usrmerge":
make: *** No rule to make target '/.../optee-os/4.1.0/recipe-sysroot/lib/optee_armtz/bc50d971-d4c9-42c4-82cb-343fb7f37896.stripped.elf', needed by '/.../optee-os/4.1.0/build/core/early_ta_bc50d971-d4c9-42c4-82cb-343fb7f37896.c'.  Stop.

Fixes: 6a105f47b9 ("optee-ftpm: Install artifacts into nonarch_base_libdir")
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-05-08 10:45:37 -04:00
Adam Johnston 668df530a5 arm-bsp/n1sdp: Use git clone to fetch FW for the N1SDP
git.linaro.org/landing-teams/working no longer seems to serve snapshots
in tar.gz format, breaking the N1SDP build for kirkstone.

Using same tag as the existing snapshot, fetch the binaries with a
conventional git clone, as per master.

Signed-off-by: Adam Johnston <adam.johnston@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-04-30 08:13:14 -04:00
Ross Burton d7b7b6fb6c arm/opencsd: upgrade to 1.2.1 to fix kernel build
Linux 5.15.149 contains the following change[1]:

    perf cs-etm: Bump minimum OpenCSD version to ensure a bugfix is present

    Since commit d927ef5004ef ("perf cs-etm: Add exception level consistency
    check"), the exception that was added to Perf will be triggered unless
    the following bugfix from OpenCSD is present:
    [...]

The opencsd requirement is now 1.2.1 onwards, but the kirkstone branch
has 1.2.0.  The 1.2.1 release was just three bugfixes on top of 1.2.0 so
this should be a safe upgrade:

3fecfb0 opencsd: etm4x: Update etm4x / ete decoder to flush context to client immediately.
db97bbc opencsd: decode: Update decoder base to implement memory accessor invalidation.
a7b77aa opencsd: memaccess: Allow memory accessors to have cache invalidated by decoder.

[1] a7af1be5cf5507dd6c157b7a25453942f805db76

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-03-20 14:49:14 -04:00
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
31 changed files with 227 additions and 178 deletions
+41 -13
View File
@@ -1,4 +1,16 @@
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
# The directory to use as the persistent cache (the root for DL_DIR,
# SSTATE_DIR, etc). The default is the build tree which will not be
# persistent, so this should be set in the runner.
CACHE_DIR: $CI_PROJECT_DIR
stages:
- prep
@@ -6,30 +18,31 @@ stages:
# Common job fragment to get a worker ready
.setup:
tags:
- $DEFAULT_TAG
stage: build
interruptible: true
variables:
KAS_WORK_DIR: $CI_PROJECT_DIR/work
KAS_REPO_REF_DIR: $CI_BUILDS_DIR/persist/repos
SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate
DL_DIR: $CI_BUILDS_DIR/persist/downloads
KAS_BUILD_DIR: $KAS_WORK_DIR/build
KAS_REPO_REF_DIR: ""
SSTATE_DIR: $CACHE_DIR/sstate
DL_DIR: $CACHE_DIR/downloads
BB_LOGCONFIG: $CI_PROJECT_DIR/ci/logging.yml
TOOLCHAIN_DIR: $CI_BUILDS_DIR/persist/toolchains
TOOLCHAIN_DIR: $CACHE_DIR/toolchains
IMAGE_DIR: $CI_PROJECT_DIR/work/build/tmp/deploy/images
TOOLCHAIN_LINK_DIR: $CI_PROJECT_DIR/work/build/toolchains
before_script:
- echo KAS_WORK_DIR = $KAS_WORK_DIR
- echo SSTATE_DIR = $SSTATE_DIR
- echo DL_DIR = $DL_DIR
- rm -rf $KAS_WORK_DIR
- 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
# 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'
@@ -53,14 +66,25 @@ stages:
#
# Prep stage, update repositories once
# Prep stage, update repositories once.
# Set the CI variable CI_CLEAN_REPOS=1 to refetch the respositories from scratch
#
update-repos:
extends: .setup
stage: prep
script:
- flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos
- |
exit_code=0
printenv
if [ -n "$KAS_REPO_REF_DIR" ]; then
flock --verbose --timeout 60 $KAS_REPO_REF_DIR --command ./ci/update-repos || exit_code=$?
# Exit now if that failed, unless the status was 128 (fetch failed)
test $exit_code != 0 -a $exit_code != 128 && exit 1
fi
exit $exit_code
#
# Build stage, the actual build jobs
#
@@ -235,6 +259,11 @@ check-layers:
pending-updates:
extends: .setup
# Only run this job for the default branch (master), or if forced with
# BUILD_FORCE_PENDING_UPDATES.
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $BUILD_FORCE_PENDING_UPDATES != null
artifacts:
paths:
- update-report
@@ -249,8 +278,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+/'
+2 -2
View File
@@ -15,7 +15,7 @@ repos:
meta-arm-toolchain:
poky:
url: https://git.yoctoproject.org/git/poky
url: https://git.yoctoproject.org/poky
layers:
meta:
meta-poky:
@@ -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
+1 -1
View File
@@ -5,4 +5,4 @@ header:
repos:
meta-virtualization:
url: git://git.yoctoproject.org/meta-virtualization
url: https://git.yoctoproject.org/meta-virtualization
+1 -1
View File
@@ -5,7 +5,7 @@ header:
repos:
meta-zephyr:
url: https://git.yoctoproject.org/git/meta-zephyr
url: https://git.yoctoproject.org/meta-zephyr
layers:
meta-zephyr-core:
-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
+10 -4
View File
@@ -4,6 +4,7 @@
import sys
import os
import shutil
import subprocess
import pathlib
@@ -19,10 +20,10 @@ def repo_shortname(url):
.replace('*', '.'))
repositories = (
"https://git.yoctoproject.org/git/poky",
"https://git.yoctoproject.org/poky",
"https://git.openembedded.org/meta-openembedded",
"https://git.yoctoproject.org/git/meta-virtualization",
"https://git.yoctoproject.org/git/meta-zephyr",
"https://git.yoctoproject.org/meta-virtualization",
"https://git.yoctoproject.org/meta-zephyr",
"https://github.com/kraj/meta-clang",
)
@@ -35,9 +36,14 @@ if __name__ == "__main__":
for repo in repositories:
repodir = base_repodir / repo_shortname(repo)
if "CI_CLEAN_REPOS" in os.environ:
print("Cleaning %s..." % repo)
shutil.rmtree(repodir, ignore_errors=True)
if repodir.exists():
print("Updating %s..." % repo)
subprocess.run(["git", "-C", repodir, "fetch"], check=True)
subprocess.run(["git", "-C", repodir, "-c", "gc.autoDetach=false", "fetch"], check=True)
else:
print("Cloning %s..." % repo)
subprocess.run(["git", "clone", "--bare", repo, repodir], check=True)
+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
@@ -11,10 +11,11 @@ INHIBIT_DEFAULT_DEPS = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "n1sdp"
SRC_URI = "https://git.linaro.org/landing-teams/working/arm/n1sdp-board-firmware.git/snapshot/${BPN}-N1SDP-${PV}.tar.gz"
SRC_URI[sha256sum] = "57feba404026f2d6d49c167d63e0e84653ad8b808b13e2244b81fea9e0d58d66"
SRC_URI = "git://git.linaro.org/landing-teams/working/arm/n1sdp-board-firmware.git;protocol=https;branch=master"
S = "${WORKDIR}/${BPN}-N1SDP-${PV}"
SRCREV = "9a095cbdf8ef59a7433e2769e4e2e92782b68c50"
S = "${WORKDIR}/git"
INSTALL_DIR = "/n1sdp-board-firmware_source"
@@ -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
@@ -0,0 +1 @@
CONFIG_MTD_NAND_FSL_IFC=n
@@ -91,7 +91,10 @@ COMPATIBLE_MACHINE:juno = "juno"
KBUILD_DEFCONFIG:juno = "defconfig"
KCONFIG_MODE:juno = "--alldefconfig"
FILESEXTRAPATHS:prepend:juno := "${ARMBSPFILESPATHS}"
SRC_URI:append:juno = " file://juno-dts-mhu-doorbell.patch"
SRC_URI:append:juno = " \
file://juno-dts-mhu-doorbell.patch \
file://no-fsl-ifc-nand.cfg \
"
#
# Musca B1/S2 can't run Linux
@@ -116,6 +119,7 @@ SRC_URI:append:n1sdp = " \
file://enable-realtek-R8169.cfg \
file://enable-usb_conn_gpio.cfg \
file://usb_xhci_pci_renesas.cfg \
file://no-fsl-ifc-nand.cfg \
"
# Since we use the intree defconfig and the preempt-rt turns off some configs
# do_kernel_configcheck will display warnings. So, lets disable it.
@@ -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
}
@@ -3,7 +3,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=bb63326febfb5fb909226c8e7ebcef5c"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git;branch=master"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git;branch=master;protocol=https"
SRCREV = "1044c77062573985f7c994c3b6cef5695f57e955"
PV = "git${SRCPV}"
@@ -101,9 +101,9 @@ def remove_options_tail (in_string):
from itertools import takewhile
return ' '.join(takewhile(lambda x: not x.startswith('-'), in_string.split(' ')))
EXTRA_OEMAKE += "LD=${@remove_options_tail(d.getVar('LD'))}"
EXTRA_OEMAKE += "LD='${@remove_options_tail(d.getVar('LD'))}'"
EXTRA_OEMAKE += "CC=${@remove_options_tail(d.getVar('CC'))}"
EXTRA_OEMAKE += "CC='${@remove_options_tail(d.getVar('CC'))}'"
# Verbose builds, no -Werror
EXTRA_OEMAKE += "V=1 E=0"
@@ -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/
}
@@ -4,7 +4,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ad8cb685eb324d2fa2530b985a43f3e5"
SRC_URI = "git://github.com/Linaro/OpenCSD;protocol=https;branch=master"
SRCREV = "dac554d62d514b202174506995afc0e109ef3fea"
SRCREV = "539fea3eabd4ce7574494981cd3d0906cfdc5f18"
S = "${WORKDIR}/git"
@@ -0,0 +1,2 @@
CONFIG_ACPI=y
CONFIG_EFI=y
@@ -0,0 +1 @@
CONFIG_MTD_NAND_FSL_IFC=n
@@ -4,6 +4,7 @@ COMPATIBLE_MACHINE:generic-arm64 = "generic-arm64"
FILESEXTRAPATHS:prepend:generic-arm64 = "${ARMFILESPATHS}"
SRC_URI:append:generic-arm64 = " \
file://tcpci.cfg \
file://no-fsl-ifc-nand.cfg \
"
FILESEXTRAPATHS:prepend:qemuarm64-secureboot = "${ARMFILESPATHS}"
@@ -11,3 +12,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"
@@ -9,6 +9,6 @@ DEPENDS:append = "\
EXTRA_OEMAKE:append = "${@bb.utils.contains('MACHINE_FEATURES', \
'optee-ftpm', \
'CFG_EARLY_TA=y EARLY_TA_PATHS="${STAGING_DIR_TARGET}/lib/optee_armtz/${FTPM_UUID}.stripped.elf"', \
'CFG_EARLY_TA=y EARLY_TA_PATHS="${STAGING_DIR_TARGET}/${base_libdir}/optee_armtz/${FTPM_UUID}.stripped.elf"', \
'', \
d)} "
-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")