mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-19 04:47:08 +00:00
Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dc9e257f2b | |||
| 5c84950712 | |||
| 18453b87f7 | |||
| cd1672a846 | |||
| a0382c6a57 | |||
| 2a2123dac0 | |||
| 8e1b0e4a57 | |||
| 9dcbf55176 | |||
| b4f3880979 | |||
| d841a47d6e | |||
| b9d54fefa0 | |||
| a0b2c6fc71 | |||
| 34f64a0523 | |||
| 3b8ad597c9 | |||
| 6a6510b508 | |||
| 6ebec2da19 | |||
| aa5fb3d6f9 | |||
| 23d9da9cee | |||
| 8f13054eea | |||
| b3427f9001 | |||
| 5fc1de74b8 | |||
| 39bc4076b2 | |||
| b4abab2203 | |||
| a6243e60bd | |||
| 54b55deeb8 | |||
| a11e752a28 | |||
| f4129ee8a8 | |||
| c200941b15 | |||
| 2c5dea8979 | |||
| 498f88004c | |||
| 0f33099a82 | |||
| aff8d93108 | |||
| 87ceedf4d2 |
+86
-21
@@ -1,37 +1,54 @@
|
|||||||
# Use our custom Crops-derived image
|
# We need 2.6.3 as this is the latest container with an old enough distro
|
||||||
image: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/yocto-builder:master
|
image: ghcr.io/siemens/kas/kas:2.6.3
|
||||||
|
|
||||||
# First do a common bootstrap, and then build all the targets
|
# First do a common bootstrap, and then build all the targets
|
||||||
stages:
|
stages:
|
||||||
|
- prep
|
||||||
- bootstrap
|
- bootstrap
|
||||||
- build
|
- build
|
||||||
|
|
||||||
# Common job fragment to get a worker ready
|
# Common job fragment to get a worker ready
|
||||||
.setup:
|
.setup:
|
||||||
stage: build
|
stage: build
|
||||||
|
interruptible: true
|
||||||
variables:
|
variables:
|
||||||
KAS_WORK_DIR: $CI_PROJECT_DIR/work
|
KAS_WORK_DIR: $CI_PROJECT_DIR/work
|
||||||
|
KAS_REPO_REF_DIR: $CI_BUILDS_DIR/persist/repos
|
||||||
SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate
|
SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate
|
||||||
DL_DIR: $CI_BUILDS_DIR/persist/downloads
|
DL_DIR: $CI_BUILDS_DIR/persist/downloads
|
||||||
BB_LOGCONFIG: $CI_PROJECT_DIR/kas/logging.yml
|
BB_LOGCONFIG: $CI_PROJECT_DIR/ci/logging.yml
|
||||||
|
TOOLCHAIN_DIR: $CI_BUILDS_DIR/persist/toolchains
|
||||||
|
IMAGE_DIR: $CI_PROJECT_DIR/work/build/tmp/deploy/images
|
||||||
|
TOOLCHAIN_LINK_DIR: $CI_PROJECT_DIR/work/build/toolchains
|
||||||
before_script:
|
before_script:
|
||||||
- echo KAS_WORK_DIR = $KAS_WORK_DIR
|
- echo KAS_WORK_DIR = $KAS_WORK_DIR
|
||||||
- echo SSTATE_DIR = $SSTATE_DIR
|
- echo SSTATE_DIR = $SSTATE_DIR
|
||||||
- echo DL_DIR = $DL_DIR
|
- echo DL_DIR = $DL_DIR
|
||||||
- mkdir --verbose --parents $KAS_WORK_DIR $SSTATE_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
|
||||||
|
|
||||||
# Generalised fragment to do a Kas build
|
# Generalised fragment to do a Kas build
|
||||||
.build:
|
.build:
|
||||||
extends: .setup
|
extends: .setup
|
||||||
script:
|
script:
|
||||||
- KASFILES=$(kas/jobs-to-kas $CI_JOB_NAME)
|
- KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME)
|
||||||
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
|
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
|
||||||
- kas build $KASFILES
|
- kas build $KASFILES
|
||||||
- ./kas/check-warnings $KAS_WORK_DIR/build/warnings.log
|
- ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# First phase, bootstrap and machine coverage
|
# Prep stage, update repositories once
|
||||||
|
#
|
||||||
|
update-repos:
|
||||||
|
extends: .setup
|
||||||
|
stage: prep
|
||||||
|
script:
|
||||||
|
- flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bootstrap stage, bootstrap and machine coverage
|
||||||
#
|
#
|
||||||
|
|
||||||
# Build a number of native tools first to ensure the other builders don't race
|
# Build a number of native tools first to ensure the other builders don't race
|
||||||
@@ -43,13 +60,14 @@ n1sdp/bootstrap:
|
|||||||
# What percentage of machines in the layer do we build
|
# What percentage of machines in the layer do we build
|
||||||
machine-coverage:
|
machine-coverage:
|
||||||
stage: bootstrap
|
stage: bootstrap
|
||||||
|
interruptible: true
|
||||||
script:
|
script:
|
||||||
- ./kas/check-machine-coverage
|
- ./ci/check-machine-coverage
|
||||||
coverage: '/Coverage: \d+/'
|
coverage: '/Coverage: \d+/'
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Second phase, the actual build jobs
|
# Build stage, the actual build jobs
|
||||||
#
|
#
|
||||||
|
|
||||||
a5ds:
|
a5ds:
|
||||||
@@ -70,6 +88,9 @@ fvp-base:
|
|||||||
fvp-base-arm32:
|
fvp-base-arm32:
|
||||||
extends: .build
|
extends: .build
|
||||||
|
|
||||||
|
fvp-base-arm32/external-gccarm:
|
||||||
|
extends: .build
|
||||||
|
|
||||||
gem5-arm64:
|
gem5-arm64:
|
||||||
extends: .build
|
extends: .build
|
||||||
|
|
||||||
@@ -88,16 +109,29 @@ musca-s1:
|
|||||||
n1sdp:
|
n1sdp:
|
||||||
extends: .build
|
extends: .build
|
||||||
|
|
||||||
qemuarm64-secureboot:
|
# This job currently fails when building gcc-runtime:
|
||||||
|
# cc1: error: switch '-mcpu=armv8.2-a' conflicts with '-march=armv8-a' switch [-Werror]
|
||||||
|
# Mark as manual so it doesn't get executed automatically
|
||||||
|
n1sdp/armgcc:
|
||||||
|
extends: .build
|
||||||
|
when: manual
|
||||||
|
|
||||||
|
qemuarm/testimage:
|
||||||
extends: .build
|
extends: .build
|
||||||
|
|
||||||
qemuarm64-secureboot/clang:
|
qemuarm64-secureboot/testimage:
|
||||||
extends: .build
|
extends: .build
|
||||||
|
|
||||||
qemuarm64-secureboot/clang/musl:
|
qemuarm64-secureboot/clang/testimage:
|
||||||
extends: .build
|
extends: .build
|
||||||
|
|
||||||
qemuarm64-secureboot/musl:
|
qemuarm64-secureboot/clang/musl/testimage:
|
||||||
|
extends: .build
|
||||||
|
|
||||||
|
qemuarm64-secureboot/musl/testimage:
|
||||||
|
extends: .build
|
||||||
|
|
||||||
|
qemuarmv5/testimage:
|
||||||
extends: .build
|
extends: .build
|
||||||
|
|
||||||
sgi575:
|
sgi575:
|
||||||
@@ -111,18 +145,49 @@ tc0:
|
|||||||
# Utility tasks, not executed automatically
|
# Utility tasks, not executed automatically
|
||||||
#
|
#
|
||||||
|
|
||||||
# Report on disk usage
|
delete-dl-dir:
|
||||||
usage:
|
|
||||||
extends: .setup
|
extends: .setup
|
||||||
stage: bootstrap
|
stage: prep
|
||||||
when: manual
|
when: manual
|
||||||
script:
|
script:
|
||||||
- du -h -s $DL_DIR $SSTATE_DIR
|
- rm -rf $DL_DIR/*
|
||||||
|
|
||||||
|
delete-repo-dir:
|
||||||
|
extends: .setup
|
||||||
|
stage: prep
|
||||||
|
when: manual
|
||||||
|
script:
|
||||||
|
- rm -rf $KAS_REPO_REF_DIR/*
|
||||||
|
|
||||||
|
# Delete all sstate
|
||||||
|
delete-sstate:
|
||||||
|
extends: .setup
|
||||||
|
stage: prep
|
||||||
|
when: manual
|
||||||
|
script:
|
||||||
|
- rm -rf $SSTATE_DIR/*
|
||||||
|
|
||||||
|
delete-toolchains:
|
||||||
|
extends: .setup
|
||||||
|
stage: prep
|
||||||
|
when: manual
|
||||||
|
script:
|
||||||
|
- rm -rf $TOOLCHAIN_DIR/*
|
||||||
|
|
||||||
# Wipe out old sstate
|
# Wipe out old sstate
|
||||||
prune-sstate:
|
prune-sstate:
|
||||||
extends: .setup
|
extends: .setup
|
||||||
stage: bootstrap
|
stage: prep
|
||||||
when: manual
|
when: manual
|
||||||
script:
|
script:
|
||||||
|
- du -h -s $SSTATE_DIR
|
||||||
- find $SSTATE_DIR -type f -atime +30 -delete
|
- find $SSTATE_DIR -type f -atime +30 -delete
|
||||||
|
- du -h -s $SSTATE_DIR
|
||||||
|
|
||||||
|
# Report on disk usage
|
||||||
|
usage:
|
||||||
|
extends: .setup
|
||||||
|
stage: prep
|
||||||
|
when: manual
|
||||||
|
script:
|
||||||
|
- du -h -s $DL_DIR $SSTATE_DIR $KAS_REPO_REF_DIR $TOOLCHAIN_DIR
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
header:
|
||||||
|
version: 9
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
libc: |
|
||||||
|
GCCVERSION = "arm-9.2"
|
||||||
@@ -22,6 +22,7 @@ repos:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
BB_LOGCONFIG: ""
|
BB_LOGCONFIG: ""
|
||||||
|
TOOLCHAIN_DIR: ""
|
||||||
|
|
||||||
local_conf_header:
|
local_conf_header:
|
||||||
base: |
|
base: |
|
||||||
@@ -29,11 +30,11 @@ local_conf_header:
|
|||||||
PACKAGE_CLASSES = "package_ipk"
|
PACKAGE_CLASSES = "package_ipk"
|
||||||
LICENSE_FLAGS_WHITELIST += "armcompiler"
|
LICENSE_FLAGS_WHITELIST += "armcompiler"
|
||||||
PACKAGECONFIG_remove_pn-qemu-system-native = "gtk+ sdl"
|
PACKAGECONFIG_remove_pn-qemu-system-native = "gtk+ sdl"
|
||||||
|
EXTRA_IMAGE_FEATURES_append = " debug-tweaks"
|
||||||
BB_NUMBER_THREADS = "16"
|
BB_NUMBER_THREADS = "16"
|
||||||
PARALLEL_MAKE = "-j16"
|
PARALLEL_MAKE = "-j16"
|
||||||
INHERIT += "rm_work"
|
INHERIT += "rm_work"
|
||||||
PACKAGECONFIG_append_pn-perf = " coresight"
|
PACKAGECONFIG_append_pn-perf = " coresight"
|
||||||
ERROR_QA = "${WARN_QA}"
|
|
||||||
ptest: |
|
ptest: |
|
||||||
DISTRO_FEATURES_remove = "ptest"
|
DISTRO_FEATURES_remove = "ptest"
|
||||||
|
|
||||||
@@ -13,11 +13,11 @@ if metaarm.name != "meta-arm":
|
|||||||
machines = metaarm.glob("meta-*/conf/machine/*.conf")
|
machines = metaarm.glob("meta-*/conf/machine/*.conf")
|
||||||
machines = set(p.stem for p in machines)
|
machines = set(p.stem for p in machines)
|
||||||
|
|
||||||
# All kas files
|
# All ci files
|
||||||
kas = metaarm.glob("kas/*.yml")
|
ci = metaarm.glob("ci/*.yml")
|
||||||
kas = set(p.stem for p in kas)
|
ci = set(p.stem for p in ci)
|
||||||
|
|
||||||
missing = machines - kas
|
missing = machines - ci
|
||||||
print(f"The following machines are missing: {', '.join(sorted(missing))}.")
|
print(f"The following machines are missing: {', '.join(sorted(missing))}.")
|
||||||
|
|
||||||
covered = len(machines) - len(missing)
|
covered = len(machines) - len(missing)
|
||||||
@@ -7,7 +7,8 @@ set -e -u
|
|||||||
|
|
||||||
LOGFILE=$1
|
LOGFILE=$1
|
||||||
|
|
||||||
if test -s $LOGFILE; then
|
LINES=$(grep --invert-match "attempting MIRRORS if available" $LOGFILE | wc -l)
|
||||||
|
if test "$LINES" -ne 0; then
|
||||||
echo ==============================
|
echo ==============================
|
||||||
echo The build had warnings/errors:
|
echo The build had warnings/errors:
|
||||||
echo ==============================
|
echo ==============================
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
header:
|
||||||
|
version: 9
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
cc: |
|
||||||
|
PNBLACKLIST[gcc-cross-arm] = "Using external toolchain"
|
||||||
|
TCMODE = "external-arm"
|
||||||
|
EXTERNAL_TOOLCHAIN = "${TOPDIR}/toolchains/${TARGET_ARCH}"
|
||||||
Executable
+46
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -u
|
||||||
|
|
||||||
|
HOST_ARCH=$(uname -m)
|
||||||
|
VER="10.2-2020.11"
|
||||||
|
|
||||||
|
DOWNLOAD_DIR=$1
|
||||||
|
TOOLCHAIN_DIR=$2
|
||||||
|
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
|
||||||
|
|
||||||
|
if [ $HOST_ARCH = "aarch64" ]; then
|
||||||
|
#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-a/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-arm-none-linux-gnueabihf.tar.xz
|
||||||
|
elif [ $HOST_ARCH = "x86_64" ]; then
|
||||||
|
#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-a/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-arm-none-linux-gnueabihf.tar.xz
|
||||||
|
|
||||||
|
#AArch64 GNU/Linux target (aarch64-none-linux-gnu)
|
||||||
|
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu-a/$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-a/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-aarch64_be-none-linux-gnu.tar.xz
|
||||||
|
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
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar -C $TOOLCHAIN_DIR -axvf $DOWNLOAD_DIR/gcc-arm-$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
|
||||||
|
done
|
||||||
@@ -8,8 +8,8 @@ set -e -u
|
|||||||
# Read Job namne from $1 and split on /
|
# Read Job namne from $1 and split on /
|
||||||
IFS=/ read -r -a PARTS<<<$1
|
IFS=/ read -r -a PARTS<<<$1
|
||||||
|
|
||||||
# Prefix each part with kas/
|
# Prefix each part with ci/
|
||||||
PARTS=("${PARTS[@]/#/kas/}")
|
PARTS=("${PARTS[@]/#/ci/}")
|
||||||
|
|
||||||
# Suffix each part with .yml
|
# Suffix each part with .yml
|
||||||
PARTS=("${PARTS[@]/%/.yml}")
|
PARTS=("${PARTS[@]/%/.yml}")
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
header:
|
||||||
|
version: 9
|
||||||
|
includes:
|
||||||
|
- base.yml
|
||||||
|
|
||||||
|
machine: qemuarm
|
||||||
@@ -5,6 +5,11 @@ header:
|
|||||||
|
|
||||||
machine: qemuarm64-secureboot
|
machine: qemuarm64-secureboot
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
bugs: |
|
||||||
|
# Only ping until errors can be resolved
|
||||||
|
TEST_SUITES = "ping"
|
||||||
|
|
||||||
target:
|
target:
|
||||||
- core-image-base
|
- core-image-base
|
||||||
- perf
|
- perf
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
header:
|
||||||
|
version: 9
|
||||||
|
includes:
|
||||||
|
- base.yml
|
||||||
|
|
||||||
|
machine: qemuarmv5
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
bugs: |
|
||||||
|
# Remove parselogs until errors can be resolved
|
||||||
|
TEST_SUITES_remove = "parselogs"
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
header:
|
||||||
|
version: 9
|
||||||
|
|
||||||
|
local_conf_header:
|
||||||
|
testimage: |
|
||||||
|
IMAGE_CLASSES += "testimage"
|
||||||
|
TESTIMAGE_AUTO = "1"
|
||||||
|
slirp: |
|
||||||
|
TEST_RUNQEMUPARAMS = "slirp"
|
||||||
|
TEST_SERVER_IP = "127.0.0.1"
|
||||||
|
QEMU_USE_SLIRP = "1"
|
||||||
|
packages: |
|
||||||
|
IMAGE_FEATURES_append = " ssh-server-dropbear"
|
||||||
|
|
||||||
|
# Multiple targets are available, put it down to just one
|
||||||
|
target:
|
||||||
|
- core-image-base
|
||||||
Executable
+41
@@ -0,0 +1,41 @@
|
|||||||
|
#! /usr/bin/env python3
|
||||||
|
|
||||||
|
# Update clones of the repositories we need in KAS_REPO_REF_DIR to speed up fetches
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import pathlib
|
||||||
|
|
||||||
|
def repo_shortname(url):
|
||||||
|
# Taken from Kas (Repo.__getattr__) to ensure the logic is right
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
url = urlparse(url)
|
||||||
|
return ('{url.netloc}{url.path}'
|
||||||
|
.format(url=url)
|
||||||
|
.replace('@', '.')
|
||||||
|
.replace(':', '.')
|
||||||
|
.replace('/', '.')
|
||||||
|
.replace('*', '.'))
|
||||||
|
|
||||||
|
repositories = (
|
||||||
|
"https://git.yoctoproject.org/git/poky",
|
||||||
|
"https://git.openembedded.org/meta-openembedded",
|
||||||
|
"https://git.yoctoproject.org/git/meta-virtualization",
|
||||||
|
"https://git.yoctoproject.org/git/meta-zephyr",
|
||||||
|
"https://github.com/kraj/meta-clang",
|
||||||
|
)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if "KAS_REPO_REF_DIR" not in os.environ:
|
||||||
|
print("KAS_REPO_REF_DIR needs to be set")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
base_repodir = pathlib.Path(os.environ["KAS_REPO_REF_DIR"])
|
||||||
|
|
||||||
|
for repo in repositories:
|
||||||
|
repodir = base_repodir / repo_shortname(repo)
|
||||||
|
if repodir.exists():
|
||||||
|
subprocess.run(["git", "-C", repodir, "fetch"], check=True)
|
||||||
|
else:
|
||||||
|
subprocess.run(["git", "clone", "--bare", repo, repodir], check=True)
|
||||||
@@ -10,10 +10,10 @@ require conf/machine/include/arm/arch-armv8a.inc
|
|||||||
|
|
||||||
MACHINE_FEATURES = "usbhost usbgadget alsa screen wifi bluetooth optee pci"
|
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"
|
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"
|
SERIAL_CONSOLES = "115200;ttyAMA0"
|
||||||
|
|
||||||
@@ -26,3 +26,6 @@ EXTRA_IMAGEDEPENDS += "virtual/trusted-firmware-a u-boot firmware-image-juno"
|
|||||||
|
|
||||||
# Juno u-boot configuration
|
# Juno u-boot configuration
|
||||||
UBOOT_MACHINE = "vexpress_aemv8a_juno_defconfig"
|
UBOOT_MACHINE = "vexpress_aemv8a_juno_defconfig"
|
||||||
|
|
||||||
|
INITRAMFS_IMAGE_BUNDLE ?= "1"
|
||||||
|
INITRAMFS_IMAGE = "core-image-minimal"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ do_deploy() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [ "${INITRAMFS_IMAGE_BUNDLE}" -eq 1 ]; then
|
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
|
${D}/${UNPACK_DIR}/SOFTWARE/Image
|
||||||
else
|
else
|
||||||
cp -L -f ${DEPLOY_DIR_IMAGE}/Image ${D}/${UNPACK_DIR}/SOFTWARE/
|
cp -L -f ${DEPLOY_DIR_IMAGE}/Image ${D}/${UNPACK_DIR}/SOFTWARE/
|
||||||
|
|||||||
+27
@@ -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
|
||||||
|
|
||||||
@@ -29,7 +29,10 @@ SRC_URI_append_fvp-base-arm32 = " file://0001-Add-vexpress_aemv8a_aarch32-varian
|
|||||||
#
|
#
|
||||||
# Juno KMACHINE
|
# 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 \
|
||||||
|
"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Total Compute KMACHINE
|
# Total Compute KMACHINE
|
||||||
|
|||||||
+54
@@ -0,0 +1,54 @@
|
|||||||
|
Upstream-Status: Backport
|
||||||
|
Signed-off-by: Jon Mason <jon.mason@arm.com>
|
||||||
|
|
||||||
|
From e33a814e772cdc36436c8c188d8c42d019fda639 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dirk Mueller <dmueller@suse.com>
|
||||||
|
Date: Tue, 14 Jan 2020 18:53:41 +0100
|
||||||
|
Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration
|
||||||
|
|
||||||
|
gcc 10 will default to -fno-common, which causes this error at link
|
||||||
|
time:
|
||||||
|
|
||||||
|
(.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here
|
||||||
|
|
||||||
|
This is because both dtc-lexer as well as dtc-parser define the same
|
||||||
|
global symbol yyloc. Before with -fcommon those were merged into one
|
||||||
|
defintion. The proper solution would be to to mark this as "extern",
|
||||||
|
however that leads to:
|
||||||
|
|
||||||
|
dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls]
|
||||||
|
26 | extern YYLTYPE yylloc;
|
||||||
|
| ^~~~~~
|
||||||
|
In file included from dtc-lexer.l:24:
|
||||||
|
dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here
|
||||||
|
127 | extern YYLTYPE yylloc;
|
||||||
|
| ^~~~~~
|
||||||
|
cc1: all warnings being treated as errors
|
||||||
|
|
||||||
|
which means the declaration is completely redundant and can just be
|
||||||
|
dropped.
|
||||||
|
|
||||||
|
Signed-off-by: Dirk Mueller <dmueller@suse.com>
|
||||||
|
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
|
||||||
|
[robh: cherry-pick from upstream]
|
||||||
|
Cc: stable@vger.kernel.org
|
||||||
|
Signed-off-by: Rob Herring <robh@kernel.org>
|
||||||
|
---
|
||||||
|
scripts/dtc/dtc-lexer.l | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
|
||||||
|
index 5c6c3fd557d7..b3b7270300de 100644
|
||||||
|
--- a/scripts/dtc/dtc-lexer.l
|
||||||
|
+++ b/scripts/dtc/dtc-lexer.l
|
||||||
|
@@ -23,7 +23,6 @@ LINECOMMENT "//".*\n
|
||||||
|
#include "srcpos.h"
|
||||||
|
#include "dtc-parser.tab.h"
|
||||||
|
|
||||||
|
-YYLTYPE yylloc;
|
||||||
|
extern bool treesource_error;
|
||||||
|
|
||||||
|
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
@@ -51,6 +51,10 @@ COMPATIBLE_MACHINE_juno = "juno"
|
|||||||
KMACHINE_juno = "juno"
|
KMACHINE_juno = "juno"
|
||||||
KBUILD_DEFCONFIG_juno = "defconfig"
|
KBUILD_DEFCONFIG_juno = "defconfig"
|
||||||
KCONFIG_MODE_juno = "--alldefconfig"
|
KCONFIG_MODE_juno = "--alldefconfig"
|
||||||
|
#FIXME - temporarily pin kernel version to allow for juno patches to apply
|
||||||
|
KBRANCH_juno = "v5.4/standard/base"
|
||||||
|
KERNEL_VERSION_SANITY_SKIP_juno = "1"
|
||||||
|
SRCREV_machine_juno = "dd8a64a523fb714a98328441e0de72cde115a6fc"
|
||||||
SRC_URI_append_juno = " \
|
SRC_URI_append_juno = " \
|
||||||
file://0001-mailbox-add-support-for-doorbell-signal-mode-control.patch \
|
file://0001-mailbox-add-support-for-doorbell-signal-mode-control.patch \
|
||||||
file://0002-dt-bindings-mailbox-add-bindings-to-support-ARM-MHU-.patch \
|
file://0002-dt-bindings-mailbox-add-bindings-to-support-ARM-MHU-.patch \
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ SRCREV_machine = "d4f3318ed8fab6316cb7a269b8f42306632a3876"
|
|||||||
SRCREV_meta = "8d0ed83a864cc91eef4d2abbc90f13d4ecd1c213"
|
SRCREV_meta = "8d0ed83a864cc91eef4d2abbc90f13d4ecd1c213"
|
||||||
|
|
||||||
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
|
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
|
||||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
|
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA} \
|
||||||
|
file://0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch \
|
||||||
|
"
|
||||||
|
|
||||||
LINUX_VERSION = "5.3.18"
|
LINUX_VERSION = "5.3.18"
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
|
||||||
|
|||||||
@@ -139,19 +139,5 @@ python external_arm_toolchain_version_handler () {
|
|||||||
d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld))
|
d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld))
|
||||||
d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld))
|
d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld))
|
||||||
d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld))
|
d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld))
|
||||||
|
|
||||||
lc_libc = "LGPL-2.1"
|
|
||||||
lc_gcc = "GPL-3.0"
|
|
||||||
lc_rle = "GPL-3.0-with-GCC-exception"
|
|
||||||
lc_gdb = "GPL-3.0"
|
|
||||||
lc_bfd = "GPL-3.0"
|
|
||||||
|
|
||||||
d.setVar('EAT_LIBC_LICENSE', lc_libc)
|
|
||||||
d.setVar('EAT_GCC_LICENSE', lc_gcc)
|
|
||||||
d.setVar('EAT_RLE_LICENSE', lc_rle)
|
|
||||||
d.setVar('EAT_GDB_LICENSE', lc_gdb)
|
|
||||||
d.setVar('EAT_BFD_LICENSE', lc_bfd)
|
|
||||||
|
|
||||||
d.setVar('EAT_LICENSE', "%s & %s & %s & %s & %s" % (lc_libc, lc_gcc, lc_rle, lc_gdb, lc_bfd))
|
|
||||||
}
|
}
|
||||||
addhandler external_arm_toolchain_version_handler
|
addhandler external_arm_toolchain_version_handler
|
||||||
|
|||||||
@@ -14,8 +14,5 @@ LICENSE_PATH += "${LAYERDIR}/custom-licenses"
|
|||||||
LAYERDEPENDS_arm-toolchain = "core"
|
LAYERDEPENDS_arm-toolchain = "core"
|
||||||
LAYERSERIES_COMPAT_arm-toolchain = "gatesgarth"
|
LAYERSERIES_COMPAT_arm-toolchain = "gatesgarth"
|
||||||
|
|
||||||
# do not error out on bbappends for missing recipes
|
|
||||||
BB_DANGLINGAPPENDS_WARNONLY = "true"
|
|
||||||
|
|
||||||
# These variables are used for armcompiler license
|
# These variables are used for armcompiler license
|
||||||
BB_HASHBASE_WHITELIST_append = " ARM_TOOL_VARIANT ARMLMD_LICENSE_FILE LM_LICENSE_FILE"
|
BB_HASHBASE_WHITELIST_append = " ARM_TOOL_VARIANT ARMLMD_LICENSE_FILE LM_LICENSE_FILE"
|
||||||
|
|||||||
+2
-3
@@ -1,5 +1,7 @@
|
|||||||
inherit cross-canadian
|
inherit cross-canadian
|
||||||
|
|
||||||
|
require license.inc
|
||||||
|
|
||||||
PN = "external-arm-sdk-toolchain-${TARGET_ARCH}"
|
PN = "external-arm-sdk-toolchain-${TARGET_ARCH}"
|
||||||
BPN = "external-arm-sdk-toolchain"
|
BPN = "external-arm-sdk-toolchain"
|
||||||
PV = "${EAT_VER_MAIN}"
|
PV = "${EAT_VER_MAIN}"
|
||||||
@@ -10,9 +12,6 @@ INHIBIT_SYSROOT_STRIP = "1"
|
|||||||
INHIBIT_DEFAULT_DEPS = "1"
|
INHIBIT_DEFAULT_DEPS = "1"
|
||||||
EXCLUDE_FROM_SHLIBS = "1"
|
EXCLUDE_FROM_SHLIBS = "1"
|
||||||
|
|
||||||
EAT_LICENSE ??= ""
|
|
||||||
|
|
||||||
LICENSE = "${EAT_LICENSE}"
|
|
||||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||||
|
|
||||||
# Skip packaging QA checks for prebuilt binaries
|
# Skip packaging QA checks for prebuilt binaries
|
||||||
|
|||||||
@@ -115,6 +115,8 @@ do_install() {
|
|||||||
rm -rf ${D}${bindir}/gdbserver
|
rm -rf ${D}${bindir}/gdbserver
|
||||||
sed -i -e 's#/arm/tools/gnu/bash/4.2/rhe6-x86_64##' ${D}${bindir}/tzselect
|
sed -i -e 's#/arm/tools/gnu/bash/4.2/rhe6-x86_64##' ${D}${bindir}/tzselect
|
||||||
sed -i -e 's#/arm/tools/gnu/bash/4.2/rhe6-x86_64##' ${D}${bindir}/ldd
|
sed -i -e 's#/arm/tools/gnu/bash/4.2/rhe6-x86_64##' ${D}${bindir}/ldd
|
||||||
|
sed -i -e 's#/usr/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
|
||||||
|
sed -i -e 's#/usr/bin/bash#/bin/sh#' ${D}${bindir}/ldd
|
||||||
sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
|
sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
|
||||||
sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
|
sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
LICENSE = "GPL-3.0-with-GCC-exception & GPLv3 & GPLv2 & LGPLv3 & LGPLv2.1 & LGPLv2"
|
LICENSE = "GPL-3.0-with-GCC-exception & GPLv3 & GPLv2 & LGPLv3 & LGPLv2.1 & LGPLv2"
|
||||||
|
|
||||||
|
EAT_BFD_LICENSE = "GPL-3.0"
|
||||||
EAT_GCC_LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
|
EAT_GCC_LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
|
||||||
|
EAT_GDB_LICENSE = "GPL-3.0"
|
||||||
EAT_LIBC_LICENSE = "GPLv2 & LGPLv2.1"
|
EAT_LIBC_LICENSE = "GPLv2 & LGPLv2.1"
|
||||||
|
EAT_RLE_LICENSE = "GPL-3.0-with-GCC-exception"
|
||||||
|
|
||||||
LICENSE_${PN} = "${EAT_LIBC_LICENSE}"
|
LICENSE_${PN} = "${EAT_LIBC_LICENSE}"
|
||||||
LICENSE_${PN}-dev = "${EAT_LIBC_LICENSE}"
|
LICENSE_${PN}-dev = "${EAT_LIBC_LICENSE}"
|
||||||
|
|||||||
Reference in New Issue
Block a user