mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-17 16:17:09 +00:00
Compare commits
62 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| e219ef606e | |||
| fc4b2f8907 | |||
| d8074cb6a0 | |||
| 48720822d6 | |||
| 7336830dab | |||
| 332410055a | |||
| 7c3a55f8ff | |||
| ac9f59ca62 | |||
| fb196bacd6 | |||
| 6e3e29857c | |||
| d235d4b53e | |||
| 5207074884 | |||
| 7185d29de9 | |||
| 932d35bab0 | |||
| d12eadacd0 | |||
| e45752aa6f | |||
| a365b3bd7e | |||
| 7b82307c0a | |||
| a72b89ccd1 | |||
| 1cd14b33c1 | |||
| 27ed22b040 | |||
| b97016fcfa | |||
| eff9e62526 | |||
| 892c9686bf | |||
| e8cc03775e | |||
| 4cae9fe87b | |||
| 784ef62cc4 | |||
| 1a0a9700f2 | |||
| ba30bf591e | |||
| 0c59d1cf42 | |||
| 289982e1cb | |||
| 44e51aa5be | |||
| b8bb75b4d3 | |||
| 0057143f4b |
+196
@@ -0,0 +1,196 @@
|
||||
image: ghcr.io/siemens/kas/kas
|
||||
|
||||
# First do a common bootstrap, and then build all the targets
|
||||
stages:
|
||||
- prep
|
||||
- bootstrap
|
||||
- build
|
||||
|
||||
# Common job fragment to get a worker ready
|
||||
.setup:
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
# Generalised fragment to do a Kas build
|
||||
.build:
|
||||
extends: .setup
|
||||
script:
|
||||
- KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME)
|
||||
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
|
||||
- kas build $KASFILES
|
||||
- ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log
|
||||
|
||||
#
|
||||
# Prep stage, update repositories once
|
||||
#
|
||||
update-repos:
|
||||
extends: .setup
|
||||
stage: prep
|
||||
script:
|
||||
- flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos
|
||||
|
||||
get-binary-toolchains:
|
||||
extends: .setup
|
||||
stage: prep
|
||||
script:
|
||||
- ./ci/get-binary-toolchains $DL_DIR $TOOLCHAIN_DIR
|
||||
|
||||
|
||||
#
|
||||
# Bootstrap stage, bootstrap and machine coverage
|
||||
#
|
||||
|
||||
# Build a number of native tools first to ensure the other builders don't race
|
||||
# over them
|
||||
n1sdp/bootstrap:
|
||||
extends: .build
|
||||
stage: bootstrap
|
||||
|
||||
# What percentage of machines in the layer do we build
|
||||
machine-coverage:
|
||||
stage: bootstrap
|
||||
interruptible: true
|
||||
script:
|
||||
- ./ci/check-machine-coverage
|
||||
coverage: '/Coverage: \d+/'
|
||||
|
||||
|
||||
#
|
||||
# Build stage, the actual build jobs
|
||||
#
|
||||
|
||||
a5ds:
|
||||
extends: .build
|
||||
|
||||
corstone700-fvp:
|
||||
extends: .build
|
||||
|
||||
corstone700-mps3:
|
||||
extends: .build
|
||||
|
||||
foundation-armv8:
|
||||
extends: .build
|
||||
|
||||
fvp-base:
|
||||
extends: .build
|
||||
|
||||
fvp-base-arm32:
|
||||
extends: .build
|
||||
|
||||
fvp-base-arm32/external-gccarm:
|
||||
extends: .build
|
||||
|
||||
gem5-arm64:
|
||||
extends: .build
|
||||
|
||||
juno:
|
||||
extends: .build
|
||||
|
||||
juno/clang:
|
||||
extends: .build
|
||||
|
||||
musca-b1:
|
||||
extends: .build
|
||||
|
||||
musca-s1:
|
||||
extends: .build
|
||||
|
||||
n1sdp:
|
||||
extends: .build
|
||||
|
||||
# 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
|
||||
|
||||
qemuarm64-secureboot/testimage:
|
||||
extends: .build
|
||||
|
||||
qemuarm64-secureboot/clang/testimage:
|
||||
extends: .build
|
||||
|
||||
qemuarm64-secureboot/clang/musl/testimage:
|
||||
extends: .build
|
||||
|
||||
qemuarm64-secureboot/musl/testimage:
|
||||
extends: .build
|
||||
|
||||
qemuarmv5/testimage:
|
||||
extends: .build
|
||||
|
||||
sgi575:
|
||||
extends: .build
|
||||
|
||||
tc0:
|
||||
extends: .build
|
||||
|
||||
|
||||
#
|
||||
# Utility tasks, not executed automatically
|
||||
#
|
||||
|
||||
delete-dl-dir:
|
||||
extends: .setup
|
||||
stage: prep
|
||||
when: manual
|
||||
script:
|
||||
- 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
|
||||
prune-sstate:
|
||||
extends: .setup
|
||||
stage: prep
|
||||
when: manual
|
||||
script:
|
||||
- du -h -s $SSTATE_DIR
|
||||
- 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
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: a5ds
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
|
||||
local_conf_header:
|
||||
libc: |
|
||||
GCCVERSION = "arm-9.2"
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
header:
|
||||
version: 9
|
||||
|
||||
distro: poky
|
||||
|
||||
defaults:
|
||||
repos:
|
||||
refspec: gatesgarth
|
||||
|
||||
repos:
|
||||
meta-arm:
|
||||
layers:
|
||||
meta-arm:
|
||||
meta-arm-bsp:
|
||||
meta-arm-toolchain:
|
||||
|
||||
poky:
|
||||
url: https://git.yoctoproject.org/git/poky
|
||||
layers:
|
||||
meta:
|
||||
meta-poky:
|
||||
|
||||
env:
|
||||
BB_LOGCONFIG: ""
|
||||
TOOLCHAIN_DIR: ""
|
||||
|
||||
local_conf_header:
|
||||
base: |
|
||||
CONF_VERSION = "1"
|
||||
PACKAGE_CLASSES = "package_ipk"
|
||||
LICENSE_FLAGS_WHITELIST += "armcompiler"
|
||||
PACKAGECONFIG_remove_pn-qemu-system-native = "gtk+ sdl"
|
||||
EXTRA_IMAGE_FEATURES_append = " debug-tweaks"
|
||||
BB_NUMBER_THREADS = "16"
|
||||
PARALLEL_MAKE = "-j16"
|
||||
INHERIT += "rm_work"
|
||||
PACKAGECONFIG_append_pn-perf = " coresight"
|
||||
ptest: |
|
||||
DISTRO_FEATURES_remove = "ptest"
|
||||
|
||||
machine: unset
|
||||
|
||||
target:
|
||||
- core-image-base
|
||||
- perf
|
||||
@@ -0,0 +1,9 @@
|
||||
header:
|
||||
version: 9
|
||||
|
||||
target:
|
||||
- binutils-cross-aarch64
|
||||
- gcc-cross-aarch64
|
||||
- python3-native
|
||||
- opkg-native
|
||||
- rpm-native
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
metaarm = Path.cwd()
|
||||
|
||||
if metaarm.name != "meta-arm":
|
||||
print("Not running inside meta-arm")
|
||||
sys.exit(1)
|
||||
|
||||
# All machine configurations
|
||||
machines = metaarm.glob("meta-*/conf/machine/*.conf")
|
||||
machines = set(p.stem for p in machines)
|
||||
|
||||
# All ci files
|
||||
ci = metaarm.glob("ci/*.yml")
|
||||
ci = set(p.stem for p in ci)
|
||||
|
||||
missing = machines - ci
|
||||
print(f"The following machines are missing: {', '.join(sorted(missing))}.")
|
||||
|
||||
covered = len(machines) - len(missing)
|
||||
total = len(machines)
|
||||
percent = int(covered / total * 100)
|
||||
print(f"Coverage: {percent}%")
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#! /bin/bash
|
||||
|
||||
# Expects the path to a log file as $1, and if this file has any content
|
||||
# then display the contents and exit with an error code.
|
||||
|
||||
set -e -u
|
||||
|
||||
LOGFILE=$1
|
||||
|
||||
LINES=$(grep --invert-match "attempting MIRRORS if available" $LOGFILE | wc -l)
|
||||
if test "$LINES" -ne 0; then
|
||||
echo ==============================
|
||||
echo The build had warnings/errors:
|
||||
echo ==============================
|
||||
cat $LOGFILE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,11 @@
|
||||
header:
|
||||
version: 9
|
||||
|
||||
repos:
|
||||
meta-clang:
|
||||
url: https://github.com/kraj/meta-clang
|
||||
refspec: gatesgarth
|
||||
|
||||
local_conf_header:
|
||||
clang: |
|
||||
TOOLCHAIN = "clang"
|
||||
@@ -0,0 +1,10 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: corstone700-fvp
|
||||
|
||||
local_conf_header:
|
||||
image: |
|
||||
CORE_IMAGE_EXTRA_INSTALL = "corstone700-test-app"
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- corstone700-fvp.yml
|
||||
|
||||
machine: corstone700-mps3
|
||||
@@ -0,0 +1,8 @@
|
||||
header:
|
||||
version: 9
|
||||
|
||||
local_conf_header:
|
||||
cc: |
|
||||
PNBLACKLIST[gcc-cross-arm] = "Using external toolchain"
|
||||
TCMODE = "external-arm"
|
||||
EXTERNAL_TOOLCHAIN = "${TOOLCHAIN_DIR}/${TARGET_ARCH}"
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: foundation-armv8
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: fvp-base-arm32
|
||||
@@ -0,0 +1,7 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: fvp-base
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
repos:
|
||||
meta-arm:
|
||||
layers:
|
||||
meta-gem5:
|
||||
|
||||
meta-openembedded:
|
||||
url: https://git.openembedded.org/meta-openembedded
|
||||
layers:
|
||||
meta-oe:
|
||||
|
||||
machine: gem5-arm64
|
||||
|
||||
target:
|
||||
- core-image-minimal
|
||||
- perf
|
||||
- gem5-aarch64-native
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
set -u
|
||||
|
||||
HOST_ARCH=$(uname -m)
|
||||
VER="10.2-2020.11"
|
||||
|
||||
DOWNLOAD_DIR=$1
|
||||
TOOLCHAIN_DIR=$2
|
||||
|
||||
# These should be already created by .bitlab-ci.yml, but do here if run outside of that env
|
||||
mkdir -p $DOWNLOAD_DIR $TOOLCHAIN_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 [ ! -f $DOWNLOAD_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -d $TOOLCHAIN_DIR/$i ]; then
|
||||
echo "$TOOLCHAIN_DIR/$i EXISTS!"
|
||||
MANIFEST=$(ls $TOOLCHAIN_DIR/$i | grep txt)
|
||||
if [[ $MANIFEST != $VER-$HOST_ARCH-$i-none-linux-gnu*.txt ]]; then
|
||||
echo "Removing old $MANIFEST for $VER-$HOST_ARCH-$i-*.txt toolchain"
|
||||
rm -rf $TOOLCHAIN_DIR/$i
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d $TOOLCHAIN_DIR/$i ]; then
|
||||
tar -C $TOOLCHAIN_DIR -axvf $DOWNLOAD_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz
|
||||
mv $TOOLCHAIN_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*/ $TOOLCHAIN_DIR/$i
|
||||
fi
|
||||
done
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#! /bin/bash
|
||||
|
||||
# Read a GitLab CI job name on $1 and transform it to a
|
||||
# list of Kas yaml files
|
||||
|
||||
set -e -u
|
||||
|
||||
# Read Job namne from $1 and split on /
|
||||
IFS=/ read -r -a PARTS<<<$1
|
||||
|
||||
# Prefix each part with ci/
|
||||
PARTS=("${PARTS[@]/#/ci/}")
|
||||
|
||||
# Suffix each part with .yml
|
||||
PARTS=("${PARTS[@]/%/.yml}")
|
||||
|
||||
# Print colon-separated
|
||||
IFS=":"
|
||||
echo "${PARTS[*]}"
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: juno
|
||||
@@ -0,0 +1,13 @@
|
||||
# Python logging configuration to write all warnings to a separate file
|
||||
version: 1
|
||||
|
||||
handlers:
|
||||
warnings:
|
||||
class: logging.FileHandler
|
||||
level: WARNING
|
||||
filename: warnings.log
|
||||
formatter: BitBake.logfileFormatter
|
||||
|
||||
loggers:
|
||||
BitBake:
|
||||
handlers: [warnings]
|
||||
@@ -0,0 +1,9 @@
|
||||
header:
|
||||
version: 9
|
||||
|
||||
repos:
|
||||
meta-openembedded:
|
||||
url: https://git.openembedded.org/meta-openembedded
|
||||
layers:
|
||||
meta-oe:
|
||||
meta-python:
|
||||
@@ -0,0 +1,8 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- meta-python.yml
|
||||
|
||||
repos:
|
||||
meta-zephyr:
|
||||
url: https://git.yoctoproject.org/git/meta-zephyr
|
||||
@@ -0,0 +1,11 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
- meta-zephyr.yml
|
||||
|
||||
machine: musca-b1
|
||||
|
||||
target:
|
||||
- trusted-firmware-m
|
||||
- zephyr-philosophers
|
||||
@@ -0,0 +1,10 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
- meta-python.yml
|
||||
|
||||
machine: musca-s1
|
||||
|
||||
target:
|
||||
- trusted-firmware-m
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
|
||||
local_conf_header:
|
||||
libc: |
|
||||
TCLIBC = "musl"
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: n1sdp
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: qemuarm
|
||||
@@ -0,0 +1,16 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: qemuarm64-secureboot
|
||||
|
||||
local_conf_header:
|
||||
bugs: |
|
||||
# Only ping until errors can be resolved
|
||||
TEST_SUITES = "ping"
|
||||
|
||||
target:
|
||||
- core-image-base
|
||||
- perf
|
||||
- optee-examples
|
||||
@@ -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,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: sgi575
|
||||
@@ -0,0 +1,6 @@
|
||||
header:
|
||||
version: 9
|
||||
includes:
|
||||
- base.yml
|
||||
|
||||
machine: tc0
|
||||
@@ -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)
|
||||
@@ -14,6 +14,7 @@ LAYERDEPENDS_meta-arm-autonomy = " \
|
||||
core \
|
||||
yocto \
|
||||
openembedded-layer \
|
||||
networking-layer \
|
||||
virtualization-layer \
|
||||
"
|
||||
LAYERSERIES_COMPAT_meta-arm-autonomy = "gatesgarth"
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
arm-autonomy Multiconfig Build Environment Instructions
|
||||
==================
|
||||
|
||||
This documentation explains how to simplify the process of building hosts
|
||||
and guests in a single bitbake command, rather than in seperate build
|
||||
folders. You can read more about multiconfig in the bitbake documentation:
|
||||
|
||||
- [bitbake user manual](https://www.yoctoproject.org/docs/latest/bitbake-user-manual/bitbake-user-manual.html)
|
||||
|
||||
To achieve a multiconfig build, a number of different config files need to
|
||||
be created in a single build directory.
|
||||
|
||||
Create a new project
|
||||
----------------
|
||||
|
||||
Before you start, you will need to follow the instructions in
|
||||
"Create a project" from the quickstart guide, to create a new project
|
||||
directory with
|
||||
```
|
||||
oe-init-build-env my-mc-project
|
||||
```
|
||||
Ensure it has all the required layers in bblayers.conf as listed in
|
||||
`arm-autonomy-quickstart.md`. The result should be a directory containing:
|
||||
|
||||
```
|
||||
-- conf
|
||||
| -- bblayers.conf
|
||||
| -- local.conf
|
||||
| -- templateconf.cfg
|
||||
```
|
||||
|
||||
Add multiconfig
|
||||
----------------
|
||||
|
||||
Here are the steps required to make the project build both the host and any
|
||||
number of guests as required.
|
||||
|
||||
1. Create a new directory under `conf/` named `multiconfig/`
|
||||
|
||||
2. Create two new files in this directory:
|
||||
`multiconfig/host.conf`
|
||||
`multiconfig/guest.conf`
|
||||
These files will contain any configurations that a specific to either the
|
||||
host or the guest
|
||||
|
||||
```
|
||||
-- conf
|
||||
| -- bblayers.conf
|
||||
| -- local.conf
|
||||
| -- templateconf.cfg
|
||||
| -- multiconfig
|
||||
| -- host.conf
|
||||
| -- guest.conf
|
||||
```
|
||||
|
||||
3. In `local.conf` the following config variables must be added:
|
||||
|
||||
```
|
||||
MACHINE ?= "fvp-base"
|
||||
|
||||
# ---Guest Config Start--- #
|
||||
MC_GUEST = "guest"
|
||||
|
||||
MC_GUEST_NAME = "guest1"
|
||||
|
||||
MC_GUEST_IMAGERECIPE = "core-image-minimal"
|
||||
MC_GUEST_MACHINE = "arm64-autonomy-guest"
|
||||
|
||||
MC_GUEST_INITRAMFS_IMAGE_BUNDLE ?= ""
|
||||
MC_GUEST_INITRAMFS_IMAGE ?= ""
|
||||
|
||||
# Uncomment for initramfs
|
||||
#MC_GUEST_INITRAMFS_IMAGE_BUNDLE = "1"
|
||||
#MC_GUEST_INITRAMFS_IMAGE = "${MC_GUEST_IMAGERECIPE}"
|
||||
|
||||
# These variables are set automatically, don't edit them!
|
||||
MC_GUEST_FILENAME_PREFIX = "${@ 'Image-initramfs' if d.getVar('MC_GUEST_INITRAMFS_IMAGE_BUNDLE',d) else '${MC_GUEST_IMAGERECIPE}' }"
|
||||
|
||||
MC_GUEST_FILENAME = "${MC_GUEST_FILENAME_PREFIX}-${MC_GUEST_MACHINE}.xenguest"
|
||||
|
||||
MC_GUEST_DEP = "${@ 'virtual/kernel:do_deploy' if d.getVar('MC_GUEST_INITRAMFS_IMAGE_BUNDLE',d) else '${MC_GUEST_IMAGERECIPE}:do_image_complete'}"
|
||||
|
||||
MC_DOIMAGE_MCDEPENDS += "mc:${MC_HOST}:${MC_GUEST}:${MC_GUEST_DEP} "
|
||||
|
||||
BBMULTICONFIG += "${MC_GUEST} "
|
||||
|
||||
ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS += "file://${TOPDIR}/${MC_GUEST}/deploy/images/${MC_GUEST_MACHINE}/${MC_GUEST_FILENAME};guestname=${MC_GUEST_NAME} "
|
||||
# ---Guest Config End--- #
|
||||
|
||||
# ---Host Config Start--- #
|
||||
MC_HOST = "host"
|
||||
|
||||
BBMULTICONFIG += "${MC_HOST} "
|
||||
# ---Host Config End--- #
|
||||
```
|
||||
|
||||
These variables will be used in both of the multiconf files. `MC_HOST` and
|
||||
`MC_GUEST` should not be altered without renaming the conf files, but most
|
||||
`MC_GUEST_*` variables can be customised if you desire.
|
||||
|
||||
4. Next set the contents of `multiconfig/guest.conf`:
|
||||
|
||||
```
|
||||
TMPDIR = "${TOPDIR}/${MC_GUEST}"
|
||||
|
||||
MACHINE = "${MC_GUEST_MACHINE}"
|
||||
DISTRO_FEATURES += " arm-autonomy-guest"
|
||||
|
||||
INITRAMFS_IMAGE_BUNDLE = "${MC_GUEST_INITRAMFS_IMAGE_BUNDLE}"
|
||||
INITRAMFS_IMAGE = "${MC_GUEST_INITRAMFS_IMAGE}"
|
||||
|
||||
IMAGE_FSTYPES += "${@ 'cpio' if d.getVar('MC_GUEST_INITRAMFS_IMAGE_BUNDLE',d) else ''}"
|
||||
|
||||
# ANY OTHER GUEST CONFIG
|
||||
```
|
||||
|
||||
This contents shouldn't be changed directly, rather change the equivalent
|
||||
config in local.conf. You can append any other config desired for the
|
||||
guest at this point, for example `XENGUEST_IMAGE_DISK_SIZE`
|
||||
|
||||
Make sure not to change `${DEPLOY_DIR_IMAGE}` to anything other than
|
||||
`${TMPDIR}/deploy/images`, as this is assumed by local.conf.
|
||||
|
||||
5. Lastly set the contents of `multiconfig/host.conf`:
|
||||
|
||||
```
|
||||
TMPDIR = "${TOPDIR}/${MC_HOST}"
|
||||
|
||||
DISTRO_FEATURES += " arm-autonomy-host"
|
||||
```
|
||||
|
||||
Building the image
|
||||
----------------
|
||||
|
||||
To build the multiconfig image the command is:
|
||||
```
|
||||
bitbake mc:host:arm-autonomy-host-image-minimal
|
||||
```
|
||||
|
||||
You should see that this triggers guest tasks to be built in
|
||||
parallel. Once the build completes the guest will already be in the
|
||||
rootfs of the host thanks to `ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUEST`
|
||||
|
||||
The deployed image including the guest will be in `host/deploy/images/`
|
||||
|
||||
|
||||
Multiple Guests
|
||||
----------------
|
||||
|
||||
To have multiple guests with the same config the line which appends to
|
||||
`ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUEST` just needs to be duplicated with
|
||||
a different guestname.
|
||||
|
||||
To have different config for each guest, each will need its own config
|
||||
file similar to guest.conf, ensuring TMPDIR is set to a different path,
|
||||
and everything between `---Guest Config Start---` and
|
||||
`---Guest Config End---` will need to be duplicated.
|
||||
|
||||
Any copies of variables that start `MC_GUEST` must be altered to avoid
|
||||
collisions (e.g. `MC_GUEST_2_*`), and the name of the conf file must also
|
||||
be added to BBMULTICONFIG.
|
||||
|
||||
|
||||
Guest with provisioned disk
|
||||
----------------
|
||||
|
||||
To add guest rootfs partition to host wic image,
|
||||
set `AUTONOMY_HOST_EXTRA_PARTITION` with proper wks partition entry, e.g:
|
||||
|
||||
```
|
||||
AUTONOMY_HOST_EXTRA_PARTITION = "part --label provisioned-guest --source rawcopy --fstype=ext4 --ondisk sda --align 1024 \
|
||||
--sourceparams=file=${TOPDIR}/${MC_GUEST}/deploy/images/${MC_GUEST_MACHINE}/${MC_GUEST_FILENAME_PREFIX}-${MC_GUEST_MACHINE}.ext4"
|
||||
```
|
||||
|
||||
inside host.conf file.
|
||||
|
||||
The rest of the configuration has to be appended to guest.conf file:
|
||||
|
||||
```
|
||||
XENGUEST_IMAGE_DISK_SIZE = "0"
|
||||
XENGUEST_IMAGE_SRC_URI_XEN_CONFIG = "file://\${TOPDIR}/path/to/rootdisk.cfg"
|
||||
XENGUEST_IMAGE_DISK_DEVICE = "_GUEST_DISK_DEVICE_"
|
||||
XENGUEST_IMAGE_ROOT = "/dev/xvda"
|
||||
IMAGE_ROOTFS_SIZE = "102400"
|
||||
IMAGE_FSTYPES = "ext4"
|
||||
```
|
||||
|
||||
content of rootdisk.cfg"
|
||||
|
||||
```
|
||||
disk = ["phy:_GUEST_DISK_DEVICE_,xvda,w"]
|
||||
```
|
||||
|
||||
`_GUEST_DISK_DEVICE_` should be substituted with `/dev/sdaX`,
|
||||
according to wks file.
|
||||
@@ -26,7 +26,6 @@ First you must download the Yocto layers needed:
|
||||
- [poky](https://git.yoctoproject.org/poky)
|
||||
- [meta-virtualization](https://git.yoctoproject.org/meta-virtualization)
|
||||
- [meta-arm](https://git.yoctoproject.org/meta-arm)
|
||||
- [meta-kernel](https://gitlab.com/openembedded/community/meta-kernel.git)
|
||||
- all other layers you might want to use
|
||||
|
||||
For each of the downloaded layer make sure you checkout the release of Yocto
|
||||
@@ -57,7 +56,6 @@ Here are the main steps to create an arm-autonomy project:
|
||||
bitbake-layers add-layer $LAYERDIR_BASE/meta-poky $LAYERDIR_BASE/meta-yocto-bsp \
|
||||
$LAYERDIR_BASE/meta-openembedded/meta-oe $LAYERDIR_BASE/meta-openembedded/meta-python \
|
||||
$LAYERDIR_BASE/meta-openembedded/meta-filesystems $LAYERDIR_BASE/meta-openembedded/meta-networking \
|
||||
$LAYERDIR_BASE/meta-virtualization $LAYERDIR_BASE/meta-kernel \
|
||||
$LAYERDIR_BASE/meta-arm/meta-arm $LAYERDIR_BASE/meta-arm/meta-arm-toolchain \
|
||||
$LAYERDIR_BASE/meta-arm/meta-arm-bsp $LAYERDIR_BASE/meta-arm/meta-arm-autonomy \
|
||||
```
|
||||
@@ -73,7 +71,6 @@ Here are the main steps to create an arm-autonomy project:
|
||||
/home/user/arm-autonomy/meta-openembedded/meta-filesystems \
|
||||
/home/user/arm-autonomy/meta-openembedded/meta-networking \
|
||||
/home/user/arm-autonomy/meta-virtualization \
|
||||
/home/user/arm-autonomy/meta-kernel \
|
||||
/home/user/arm-autonomy/meta-arm/meta-arm \
|
||||
/home/user/arm-autonomy/meta-arm/meta-arm-toolchain \
|
||||
/home/user/arm-autonomy/meta-arm/meta-arm-bsp \
|
||||
@@ -122,6 +119,10 @@ To boot the system using an u-boot base board you will need to:
|
||||
|
||||
In this example the addresses might need to be adapted depending on your board.
|
||||
|
||||
For arm-autonomy host on FVP-Base u-boot has been modified such that
|
||||
`booti 0x84000000 - 0x83000000` is the default boot command. If FVP-Base is your
|
||||
MACHINE target there should be no need to interfere with u-boot.
|
||||
|
||||
Guest project
|
||||
-------------
|
||||
The guest projects are not target specific and will use a Yocto MACHINE defined
|
||||
@@ -147,6 +148,9 @@ To create a guest project:
|
||||
The build will create a ".xenguest" image that can be use on an host project
|
||||
with the xenguest-manager.
|
||||
|
||||
The guest can also be built as a 'multiconfig' sub project of the host, see
|
||||
`meta-arm-autonomy/documentation/arm-autonomy-multiconfig.md` for more information
|
||||
|
||||
Include guests directly in the host image
|
||||
-----------------------------------------
|
||||
The layer provides a way to directly include in the host project one or several
|
||||
@@ -209,7 +213,7 @@ and is configuring it by default to use dhcp.
|
||||
If you need a different type of configuration you can set
|
||||
XENGUEST_NETWORK_BRIDGE_CONFIG in a xenguest-network-bridge.bbappend to use
|
||||
a different file.
|
||||
The recipe will look for the file in ${WORKDIR} so you will need to add it to
|
||||
The recipe will look for the file in ${WORKDIR} so you will need to add it to
|
||||
SRC_URI in your bbappend.
|
||||
The recipe will also substitute `###BRIDGE_NAME###` with the bridge name
|
||||
configured in ${XENGUEST_NETWORK_BRIDGE_NAME}.
|
||||
|
||||
@@ -1,4 +1,26 @@
|
||||
# Extra machine settings for juno
|
||||
KERNEL_ALT_IMAGETYPE = "Image.lzma"
|
||||
|
||||
# Juno board has 2 network interfaces, add both of them to the bridge
|
||||
XENGUEST_NETWORK_BRIDGE_MEMBERS ?= "eth0 eth1"
|
||||
XEN_DEVICETREE_DOM0_SIZE ?= "0x02400000"
|
||||
|
||||
# We need to extend the wks search path to be able to find the wks file set in
|
||||
# ARM_AUTONOMY_WKS_FILE.
|
||||
WKS_SEARCH_PATH_prepend := "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic:"
|
||||
|
||||
ARM_AUTONOMY_WKS_FILE ?= "arm-autonomy-juno-disk.wks.in"
|
||||
# set wks file only if INITRAMFS_IMAGE_BUNDLE is not set
|
||||
WKS_FILE = "${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', '',\
|
||||
'${ARM_AUTONOMY_WKS_FILE}', d)}"
|
||||
|
||||
# Set the wks guest partition size and unit. It must be aligned with the sum of
|
||||
# all XENGUEST_IMAGE_DISK_SIZE set for the guests. By default, LVM2 metadata is
|
||||
# 1 MiB per physical volume, hence it needs to be taken into account when
|
||||
# setting GUEST_PART_SIZE. The XENGUEST_IMAGE_DISK_SIZE default value is 4GiB.
|
||||
GUEST_PART_SIZE ?= "4097"
|
||||
GUEST_PART_SIZE_UNIT ?= "M"
|
||||
|
||||
# set wic image type only if INITRAMFS_IMAGE_BUNDLE is not set
|
||||
IMAGE_FSTYPES += "${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', '',\
|
||||
'wic wic.gz wic.bmap', d)}"
|
||||
|
||||
+33
-4
@@ -4,6 +4,19 @@ OVERRIDES_append = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ':xen', '', d
|
||||
|
||||
FILESEXTRAPATHS_prepend_xen := "${THISDIR}/${PN}:"
|
||||
|
||||
DEPENDS_append_xen = " dos2unix-native"
|
||||
|
||||
SRC_URI_append_xen = " file://add-xen-support.patch;patchdir=../"
|
||||
|
||||
do_install_append_xen() {
|
||||
mv -v ${D}/${UNPACK_DIR}/SOFTWARE/uEnv.txt \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/uenvfile
|
||||
for dir in $(ls ${D}/${UNPACK_DIR}/SITE1/)
|
||||
do
|
||||
unix2dos ${D}/${UNPACK_DIR}/SITE1/${dir}/images.txt
|
||||
done
|
||||
}
|
||||
|
||||
DEPLOY_EXTRA_DEPS ??= ""
|
||||
DEPLOY_EXTRA_DEPS_xen = "xen:do_deploy xen-devicetree:do_deploy"
|
||||
|
||||
@@ -14,8 +27,24 @@ do_deploy_prepend_xen() {
|
||||
# xen:do_deploy and xen-devicetree:do_deploy when
|
||||
# INITRAMFS_IMAGE_BUNDLE = "1", we need to handle the xen and
|
||||
# xen-devicetree binaries copying in the do_deploy task.
|
||||
cp ${DEPLOY_DIR_IMAGE}/xen-${COMPATIBLE_MACHINE}.efi \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/xen
|
||||
cp ${DEPLOY_DIR_IMAGE}/*xen.dtb \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/
|
||||
|
||||
mkdir -p ${D}/${UNPACK_DIR}/SOFTWARE/XEN
|
||||
cp -v ${DEPLOY_DIR_IMAGE}/xen-${COMPATIBLE_MACHINE}.efi \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/XEN/xen
|
||||
|
||||
for dtb in $(basename -s .dtb ${KERNEL_DEVICETREE})
|
||||
do
|
||||
cp -v ${DEPLOY_DIR_IMAGE}/${dtb}-xen.dtb \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/XEN/${dtb}.dtb
|
||||
done
|
||||
|
||||
bbnote "Xen binaries added under SOFTWARE/XEN directory"
|
||||
|
||||
if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" -a "${KERNEL_ALT_IMAGETYPE}" = "Image.lzma" ]; then
|
||||
# KERNEL_ALT_IMAGETYPE is expected to be Image.lzma,
|
||||
# however NOR flash filesystem is DOS compatible with 8.3 naming,
|
||||
# so we need to replace ".lzma" with ".lzm"
|
||||
cp -L -f ${DEPLOY_DIR_IMAGE}/${KERNEL_ALT_IMAGETYPE} \
|
||||
${D}/${UNPACK_DIR}/SOFTWARE/Image.lzm
|
||||
fi
|
||||
}
|
||||
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
arm-bsp/firmware-image-juno: add xen support
|
||||
|
||||
This patch adds xen and dtbs binaries entries to images-r[012].txt files.
|
||||
These images-r[012].txt files contain NOR filesystem entries details,
|
||||
like file offset, name, path etc.
|
||||
|
||||
It also adds customization for uEnv.txt file, that allows to autoboot xen.
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
|
||||
|
||||
diff -u a/images-r0.txt b/images-r0.txt
|
||||
--- a/images-r0.txt 2020-11-25 20:25:38.677687712 +0100
|
||||
+++ b/images-r0.txt 2020-11-25 20:36:55.482194294 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
-TOTALIMAGES: 10 ;Number of Images (Max: 32)
|
||||
+TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
@@ -17,14 +17,14 @@
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
-NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
-NOR2NAME: norkern ;Rename kernel to norkern
|
||||
+NOR2FILE: \SOFTWARE\Image.lzm ;Image File Name
|
||||
+NOR2NAME: norkern.lzm ;Rename kernel to norkern.lzm
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02900000 ;Image Flash Address
|
||||
-NOR3FILE: \SOFTWARE\juno.dtb ;Image File Name
|
||||
+NOR3FILE: \SOFTWARE\XEN\juno.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
@@ -64,8 +64,13 @@
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02A80000 ;Image Flash Address
|
||||
NOR9NAME: uEnv.txt
|
||||
-NOR9FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
+NOR9FILE: \SOFTWARE\uenvfile ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
-
|
||||
+NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
+NOR10ADDRESS: 0x03000000 ;Image Flash Address
|
||||
+NOR10FILE: \SOFTWARE\XEN\xen ;Image File Name
|
||||
+NOR10NAME: xen
|
||||
+NOR10LOAD: 00000000 ;Image Load Address
|
||||
+NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
diff -u a/images-r1.txt b/images-r1.txt
|
||||
--- a/images-r1.txt 2020-11-25 20:40:19.005177152 +0100
|
||||
+++ b/images-r1.txt 2020-11-25 20:41:17.500886263 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
-TOTALIMAGES: 10 ;Number of Images (Max: 32)
|
||||
+TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
@@ -17,14 +17,14 @@
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
-NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
-NOR2NAME: norkern ;Rename kernel to norkern
|
||||
+NOR2FILE: \SOFTWARE\Image.lzm ;Image File Name
|
||||
+NOR2NAME: norkern.lzm ;Rename kernel to norkern.lzm
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02900000 ;Image Flash Address
|
||||
-NOR3FILE: \SOFTWARE\juno-r1.dtb ;Image File Name
|
||||
+NOR3FILE: \SOFTWARE\XEN\juno-r1.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
@@ -64,8 +64,13 @@
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02A80000 ;Image Flash Address
|
||||
NOR9NAME: uEnv.txt
|
||||
-NOR9FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
+NOR9FILE: \SOFTWARE\uenvfile ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
-
|
||||
+NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
+NOR10ADDRESS: 0x03000000 ;Image Flash Address
|
||||
+NOR10FILE: \SOFTWARE\XEN\xen ;Image File Name
|
||||
+NOR10NAME: xen
|
||||
+NOR10LOAD: 00000000 ;Image Load Address
|
||||
+NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
diff -u a/images-r2.txt b/images-r2.txt
|
||||
--- a/images-r2.txt 2020-11-25 20:40:30.625119321 +0100
|
||||
+++ b/images-r2.txt 2020-11-25 20:41:30.720820597 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
-TOTALIMAGES: 10 ;Number of Images (Max: 32)
|
||||
+TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
@@ -17,14 +17,14 @@
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
-NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
-NOR2NAME: norkern ;Rename kernel to norkern
|
||||
+NOR2FILE: \SOFTWARE\Image.lzm ;Image File Name
|
||||
+NOR2NAME: norkern.lzm ;Rename kernel to norkern.lzm
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02900000 ;Image Flash Address
|
||||
-NOR3FILE: \SOFTWARE\juno-r2.dtb ;Image File Name
|
||||
+NOR3FILE: \SOFTWARE\XEN\juno-r2.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
@@ -64,8 +64,13 @@
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02A80000 ;Image Flash Address
|
||||
NOR9NAME: uEnv.txt
|
||||
-NOR9FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
+NOR9FILE: \SOFTWARE\uenvfile ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
-
|
||||
+NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
+NOR10ADDRESS: 0x03000000 ;Image Flash Address
|
||||
+NOR10FILE: \SOFTWARE\XEN\xen ;Image File Name
|
||||
+NOR10NAME: xen
|
||||
+NOR10LOAD: 00000000 ;Image Load Address
|
||||
+NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
diff -u a/uEnv.txt b/uEnv.txt
|
||||
--- a/uEnv.txt 2020-11-20 13:48:31.845078690 +0100
|
||||
+++ b/uEnv.txt 2020-11-25 20:30:00.572306675 +0100
|
||||
@@ -1,11 +1,16 @@
|
||||
+xen_name=xen
|
||||
+xen_addr=0x84000000
|
||||
uenvcmd=run mybootcmd
|
||||
+kernel_alt_name=norkern.lzm
|
||||
+kernel_comp_addr_r=0x88080000
|
||||
mybootcmd=echo Loading custom boot command; \
|
||||
echo Loading kernel; \
|
||||
afs load ${kernel_name} ${kernel_addr_r} ; \
|
||||
-if test $? -eq 1; then echo Loading ${kernel_alt_name} instead of ${kernel_name}; afs load ${kernel_alt_name} ${kernel_addr_r}; fi; \
|
||||
+if test $? -eq 1; then echo Loading ${kernel_alt_name} instead of ${kernel_name}; afs load ${kernel_alt_name} ${kernel_comp_addr_r}; lzmadec ${kernel_comp_addr_r} ${kernel_addr_r}; fi; \
|
||||
echo Loading device tree; \
|
||||
afs load ${fdtfile} ${fdt_addr_r}; \
|
||||
if test $? -eq 1; then echo Loading ${fdt_alt_name} instead of ${fdtfile}; \
|
||||
afs load ${fdt_alt_name} ${fdt_addr_r}; fi; fdt addr ${fdt_addr_r}; fdt resize; \
|
||||
-booti ${kernel_addr_r} - ${fdt_addr_r};
|
||||
-
|
||||
+echo Loading Xen; \
|
||||
+afs load ${xen_name} ${xen_addr}; \
|
||||
+if test $? -eq 0; then echo Booting Xen; bootefi ${xen_addr} ${fdt_addr_r}; fi;
|
||||
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
|
||||
NOR0LOAD: 00000000 ;Image Load Address
|
||||
NOR0ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
|
||||
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
|
||||
NOR1LOAD: 00000000 ;Image Load Address
|
||||
NOR1ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
NOR2NAME: norkern ;Rename kernel to norkern
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02700000 ;Image Flash Address
|
||||
NOR3FILE: \SOFTWARE\juno-xen.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
|
||||
NOR4FILE: \SOFTWARE\xen ;Image File Name
|
||||
NOR4NAME: xen
|
||||
NOR4LOAD: 00000000 ;Image Load Address
|
||||
NOR4ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
|
||||
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
|
||||
NOR5LOAD: 00000000 ;Image Load Address
|
||||
NOR5ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
|
||||
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
|
||||
NOR6LOAD: 00000000 ;Image Load Address
|
||||
NOR6ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
|
||||
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
|
||||
NOR7NAME: startup.nsh
|
||||
NOR7LOAD: 00000000 ;Image Load Address
|
||||
NOR7ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
|
||||
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
|
||||
NOR8NAME: BOOTENV
|
||||
NOR8LOAD: 00000000 ;Image Load Address
|
||||
NOR8ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02600000 ;Image Flash Address
|
||||
NOR9FILE: \SOFTWARE\selftest ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR10ADDRESS: 0x02780000 ;Image Flash Address
|
||||
NOR10NAME: uEnv.txt
|
||||
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
NOR10LOAD: 00000000 ;Image Load Address
|
||||
NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
|
||||
NOR0LOAD: 00000000 ;Image Load Address
|
||||
NOR0ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
|
||||
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
|
||||
NOR1LOAD: 00000000 ;Image Load Address
|
||||
NOR1ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
NOR2NAME: norkern ;Rename kernel to norkern
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02700000 ;Image Flash Address
|
||||
NOR3FILE: \SOFTWARE\juno-r1-xen.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
|
||||
NOR4FILE: \SOFTWARE\xen ;Image File Name
|
||||
NOR4NAME: xen
|
||||
NOR4LOAD: 00000000 ;Image Load Address
|
||||
NOR4ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
|
||||
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
|
||||
NOR5LOAD: 00000000 ;Image Load Address
|
||||
NOR5ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
|
||||
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
|
||||
NOR6LOAD: 00000000 ;Image Load Address
|
||||
NOR6ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
|
||||
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
|
||||
NOR7NAME: startup.nsh
|
||||
NOR7LOAD: 00000000 ;Image Load Address
|
||||
NOR7ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
|
||||
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
|
||||
NOR8NAME: BOOTENV
|
||||
NOR8LOAD: 00000000 ;Image Load Address
|
||||
NOR8ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02600000 ;Image Flash Address
|
||||
NOR9FILE: \SOFTWARE\selftest ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR10ADDRESS: 0x02780000 ;Image Flash Address
|
||||
NOR10NAME: uEnv.txt
|
||||
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
NOR10LOAD: 00000000 ;Image Load Address
|
||||
NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
TITLE: Versatile Express Images Configuration File
|
||||
|
||||
[IMAGES]
|
||||
TOTALIMAGES: 11 ;Number of Images (Max: 32)
|
||||
|
||||
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR0ADDRESS: 0x00000000 ;Image Flash Address
|
||||
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
|
||||
NOR0LOAD: 00000000 ;Image Load Address
|
||||
NOR0ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
|
||||
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
|
||||
NOR1LOAD: 00000000 ;Image Load Address
|
||||
NOR1ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR2ADDRESS: 0x00500000 ;Image Flash Address
|
||||
NOR2FILE: \SOFTWARE\Image ;Image File Name
|
||||
NOR2NAME: norkern ;Rename kernel to norkern
|
||||
NOR2LOAD: 00000000 ;Image Load Address
|
||||
NOR2ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR3ADDRESS: 0x02700000 ;Image Flash Address
|
||||
NOR3FILE: \SOFTWARE\juno-r2-xen.dtb ;Image File Name
|
||||
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
|
||||
NOR3LOAD: 00000000 ;Image Load Address
|
||||
NOR3ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
|
||||
NOR4FILE: \SOFTWARE\xen ;Image File Name
|
||||
NOR4NAME: xen
|
||||
NOR4LOAD: 00000000 ;Image Load Address
|
||||
NOR4ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
|
||||
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
|
||||
NOR5LOAD: 00000000 ;Image Load Address
|
||||
NOR5ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
|
||||
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
|
||||
NOR6LOAD: 00000000 ;Image Load Address
|
||||
NOR6ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
|
||||
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
|
||||
NOR7NAME: startup.nsh
|
||||
NOR7LOAD: 00000000 ;Image Load Address
|
||||
NOR7ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
|
||||
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
|
||||
NOR8NAME: BOOTENV
|
||||
NOR8LOAD: 00000000 ;Image Load Address
|
||||
NOR8ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR9ADDRESS: 0x02600000 ;Image Flash Address
|
||||
NOR9FILE: \SOFTWARE\selftest ;Image File Name
|
||||
NOR9LOAD: 00000000 ;Image Load Address
|
||||
NOR9ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
|
||||
NOR10ADDRESS: 0x02780000 ;Image Flash Address
|
||||
NOR10NAME: uEnv.txt
|
||||
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
|
||||
NOR10LOAD: 00000000 ;Image Load Address
|
||||
NOR10ENTRY: 00000000 ;Image Entry Point
|
||||
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
xen_name=xen
|
||||
xen_addr=0x84000000
|
||||
uenvcmd=run mybootcmd
|
||||
mybootcmd=echo Loading custom boot command; \
|
||||
echo Loading kernel; \
|
||||
afs load ${kernel_name} ${kernel_addr} ; \
|
||||
if test $? -eq 1; then echo Loading ${kernel_alt_name} instead of ${kernel_name}; afs load ${kernel_alt_name} ${kernel_addr}; fi; \
|
||||
echo Loading device tree; \
|
||||
afs load ${fdtfile} ${fdt_addr}; \
|
||||
if test $? -eq 1; then echo Loading ${fdt_alt_name} instead of ${fdtfile}; \
|
||||
afs load ${fdt_alt_name} ${fdt_addr}; fi; fdt addr ${fdt_addr}; fdt resize; \
|
||||
echo Loading Xen; \
|
||||
afs load ${xen_name} ${xen_addr}; \
|
||||
if test $? -eq 0; then echo Booting Xen; bootefi ${xen_addr} ${fdt_addr}; fi;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# short-description: Create a disk image
|
||||
# long-description: Creates a partitioned disk image that the user
|
||||
# can directly dd to boot media.
|
||||
|
||||
# For Juno first partition is rootfs normally populated as /dev/sda1
|
||||
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024
|
||||
|
||||
# Second partition to accomodate guests images normally populated as /dev/sda2 (used by XENGUEST_MANAGER_VOLUME_DEVICE)
|
||||
part --label guests --source empty --ondisk sda --size="${GUEST_PART_SIZE}${GUEST_PART_SIZE_UNIT}" --system-id 8e --align 1024
|
||||
|
||||
# Third partition is user defined entry normally populated as /dev/sda3
|
||||
${AUTONOMY_HOST_EXTRA_PARTITION}
|
||||
|
||||
bootloader --ptable msdos
|
||||
@@ -11,4 +11,7 @@ part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024
|
||||
# Third partition to accomodate guests images normally populated as /dev/sda3 (used by XENGUEST_MANAGER_VOLUME_DEVICE)
|
||||
part --label guests --source empty --ondisk sda --size="${GUEST_PART_SIZE}${GUEST_PART_SIZE_UNIT}" --system-id 8e --align 1024
|
||||
|
||||
# Fourth partition is user defined entry normally populated as /dev/sda4
|
||||
${AUTONOMY_HOST_EXTRA_PARTITION}
|
||||
|
||||
bootloader --ptable msdos --configfile="${GRUB_CFG_FILE}"
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
Upstream Status: Inappropriate [meta-arm-autonomy specifc u-boot config]
|
||||
Signed-off-by: Nathan Dunne <nathan.dunne@arm.com>
|
||||
|
||||
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
|
||||
index e63c335f85..9ee050a4a6 100644
|
||||
--- a/include/configs/vexpress_aemv8a.h
|
||||
+++ b/include/configs/vexpress_aemv8a.h
|
||||
@@ -162,7 +162,7 @@
|
||||
#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"kernel_name=Image\0" \
|
||||
- "kernel_addr=0x80080000\0" \
|
||||
+ "kernel_addr=0x84000000\0" \
|
||||
"initrd_name=ramdisk.img\0" \
|
||||
"initrd_addr=0x88000000\0" \
|
||||
"fdtfile=devtree.dtb\0" \
|
||||
@@ -0,0 +1,9 @@
|
||||
# Machine specific u-boot
|
||||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${BP}:"
|
||||
|
||||
#
|
||||
# FVP BASE
|
||||
#
|
||||
|
||||
SRC_URI_append_fvp-base = "${@bb.utils.contains('DISTRO_FEATURES', 'arm-autonomy-host', ' file://xen_u-boot_kernel_addr.patch', '', d)}"
|
||||
@@ -50,6 +50,24 @@ EXTRA_IMAGEDEPENDS += "xen"
|
||||
# Build xen-devicetree to produce a xen ready devicetree
|
||||
EXTRA_IMAGEDEPENDS += "xen-devicetree"
|
||||
|
||||
# Documentation for setting up a multiconfig build can be found in:
|
||||
# meta-arm-autonomy/documentation/arm-autonomy-multiconfig.md
|
||||
|
||||
# In a multiconfig build this variable will hold a dependency string, which differs based
|
||||
# on whether the guest has initramfs or not.
|
||||
# It may have a space seperated list of dependency strings if mulitple guest types are
|
||||
# configured
|
||||
MC_DOIMAGE_MCDEPENDS ?= ""
|
||||
# Example value: mc:host:guest:core-image-minimal:do_image_complete
|
||||
|
||||
# In a multiconfig build the host task 'do_image' has a dependency on multiconfig guest.
|
||||
# This ensures that the guest image file already exists when it is needed by the host
|
||||
DO_IMAGE_MCDEPENDS := "${@ '${MC_DOIMAGE_MCDEPENDS}' if d.getVar('BBMULTICONFIG') else ''}"
|
||||
|
||||
# Apply mc dependency. Empty string if multiconfig not enabled
|
||||
do_image[mcdepends] += "${DO_IMAGE_MCDEPENDS}"
|
||||
|
||||
|
||||
python __anonymous() {
|
||||
if bb.utils.contains('DISTRO_FEATURES', 'arm-autonomy-host', False, True, d):
|
||||
raise bb.parse.SkipRecipe("DISTRO_FEATURES does not contain 'arm-autonomy-host'")
|
||||
|
||||
@@ -14,7 +14,9 @@ DESCRIPTION = "Add entries in DTB for Xen and Dom0"
|
||||
|
||||
# Please refer to documentation/xen-devicetree.md for documentation on those
|
||||
# parameters
|
||||
XEN_DEVICETREE_DEPEND ?= "virtual/kernel:do_deploy"
|
||||
# kernel size is passed to xen via xen.dtb so wee need to add
|
||||
# 'virtual/kernel:do_deploy' as a dependency
|
||||
XEN_DEVICETREE_DEPEND_append = " virtual/kernel:do_deploy"
|
||||
XEN_DEVICETREE_DTBS ?= "${KERNEL_DEVICETREE}"
|
||||
XEN_DEVICETREE_XEN_BOOTARGS ?= "noreboot dom0_mem=${XEN_DEVICETREE_DOM0_MEM}"
|
||||
XEN_DEVICETREE_DOM0_MEM ?= "1024M"
|
||||
@@ -67,6 +69,33 @@ do_deploy() {
|
||||
done
|
||||
}
|
||||
do_deploy[depends] += "${XEN_DEVICETREE_DEPEND}"
|
||||
do_deploy[prefuncs] += "calc_xen_dtb_dom0_size"
|
||||
|
||||
addtask deploy after do_install
|
||||
|
||||
python calc_xen_dtb_dom0_size() {
|
||||
from math import ceil
|
||||
size = 0
|
||||
if d.getVar('KERNEL_IMAGE_MAXSIZE'):
|
||||
bb.note('size calculation based on KERNEL_IMAGE_MAXSIZE')
|
||||
size = int(d.getVar('KERNEL_IMAGE_MAXSIZE')) * 1024
|
||||
else:
|
||||
kernel = os.path.realpath(d.getVar('DEPLOY_DIR_IMAGE') + '/' +\
|
||||
d.getVar('KERNEL_IMAGETYPE'))
|
||||
size = os.stat(kernel).st_size
|
||||
bb.note('size calculation based on kernel Image file: %s' % kernel)
|
||||
|
||||
bb.note('size in bytes: %d' % size)
|
||||
# Ceil to MiB
|
||||
size_required = ceil(size / (2 ** 20)) * (2 ** 20)
|
||||
size_defined = int(d.getVar('XEN_DEVICETREE_DOM0_SIZE'), 16)
|
||||
|
||||
if size_required > size_defined:
|
||||
bb.warn ("Wrong kernel size setting inside xen dtb!\n"\
|
||||
"Required:\t%(req)d (%(req)#010X)\n"\
|
||||
"Requested:\t%(def)d (%(def)#010X)"\
|
||||
% {"req": size_required, "def": size_defined})
|
||||
bb.warn ("Overriding XEN_DEVICETREE_DOM0_SIZE with "\
|
||||
"%(req)d (%(req)#010X)" % {"req": size_required})
|
||||
d.setVar('XEN_DEVICETREE_DOM0_SIZE', hex(size_required))
|
||||
}
|
||||
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
From 3b418b33265402aab0cb1bf2b745a25724bae2d8 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <3b418b33265402aab0cb1bf2b745a25724bae2d8.1602684880.git.diego.sueiro@arm.com>
|
||||
From: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Date: Tue, 18 Aug 2020 14:47:38 +0100
|
||||
Subject: [PATCH] arm: Add Neoverse N1 processor identification
|
||||
|
||||
Add MIDR and CPU part numbers for Neoverse N1
|
||||
|
||||
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Julien Grall <jgrall@amazon.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
xen/include/asm-arm/processor.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
|
||||
index aa642e3..3ca67f8 100644
|
||||
--- a/xen/include/asm-arm/processor.h
|
||||
+++ b/xen/include/asm-arm/processor.h
|
||||
@@ -58,6 +58,7 @@
|
||||
#define ARM_CPU_PART_CORTEX_A73 0xD09
|
||||
#define ARM_CPU_PART_CORTEX_A75 0xD0A
|
||||
#define ARM_CPU_PART_CORTEX_A76 0xD0B
|
||||
+#define ARM_CPU_PART_NEOVERSE_N1 0xD0C
|
||||
|
||||
#define MIDR_CORTEX_A12 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A12)
|
||||
#define MIDR_CORTEX_A17 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A17)
|
||||
@@ -68,6 +69,7 @@
|
||||
#define MIDR_CORTEX_A73 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A73)
|
||||
#define MIDR_CORTEX_A75 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A75)
|
||||
#define MIDR_CORTEX_A76 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
|
||||
+#define MIDR_NEOVERSE_N1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
|
||||
|
||||
/* MPIDR Multiprocessor Affinity Register */
|
||||
#define _MPIDR_UP (30)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
From 858c0be8c2fa4125a0fa0acaa03ae730e5c7cb3c Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <858c0be8c2fa4125a0fa0acaa03ae730e5c7cb3c.1602684183.git.diego.sueiro@arm.com>
|
||||
From: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Date: Tue, 18 Aug 2020 14:47:39 +0100
|
||||
Subject: [PATCH] xen/arm: Enable CPU Erratum 1165522 for Neoverse
|
||||
|
||||
Enable CPU erratum of Speculative AT on the Neoverse N1 processor
|
||||
versions r0p0 to r2p0.
|
||||
Also Fix Cortex A76 Erratum string which had a wrong errata number.
|
||||
|
||||
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Julien Grall <jgrall@amazon.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
xen/arch/arm/cpuerrata.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
|
||||
index 0248893..6c09017 100644
|
||||
--- a/xen/arch/arm/cpuerrata.c
|
||||
+++ b/xen/arch/arm/cpuerrata.c
|
||||
@@ -477,8 +477,14 @@ static const struct arm_cpu_capabilities arm_errata[] = {
|
||||
},
|
||||
#endif
|
||||
{
|
||||
+ /* Neoverse r0p0 - r2p0 */
|
||||
+ .desc = "ARM erratum 1165522",
|
||||
+ .capability = ARM64_WORKAROUND_AT_SPECULATE,
|
||||
+ MIDR_RANGE(MIDR_NEOVERSE_N1, 0, 2 << MIDR_VARIANT_SHIFT),
|
||||
+ },
|
||||
+ {
|
||||
/* Cortex-A76 r0p0 - r2p0 */
|
||||
- .desc = "ARM erratum 116522",
|
||||
+ .desc = "ARM erratum 1165522",
|
||||
.capability = ARM64_WORKAROUND_AT_SPECULATE,
|
||||
MIDR_RANGE(MIDR_CORTEX_A76, 0, 2 << MIDR_VARIANT_SHIFT),
|
||||
},
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
From 1814a626fb5811184eda64fe22f0055df4600211 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <1814a626fb5811184eda64fe22f0055df4600211.1602684203.git.diego.sueiro@arm.com>
|
||||
From: Julien Grall <jgrall@amazon.com>
|
||||
Date: Tue, 25 Aug 2020 18:38:10 +0100
|
||||
Subject: [PATCH] xen/arm: Update silicon-errata.txt with the Neovers AT
|
||||
erratum
|
||||
|
||||
Commit 858c0be8c2fa "xen/arm: Enable CPU Erratum 1165522 for Neoverse"
|
||||
added a new erratum but forgot to update silicon-errata.txt.
|
||||
|
||||
Update the file accordingly to keep track of errata workaround in Xen.
|
||||
|
||||
Signed-off-by: Julien Grall <jgrall@amazon.com>
|
||||
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
docs/misc/arm/silicon-errata.txt | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/docs/misc/arm/silicon-errata.txt b/docs/misc/arm/silicon-errata.txt
|
||||
index 11e5a9d..e15d092 100644
|
||||
--- a/docs/misc/arm/silicon-errata.txt
|
||||
+++ b/docs/misc/arm/silicon-errata.txt
|
||||
@@ -51,4 +51,5 @@ stable hypervisors.
|
||||
| ARM | Cortex-A57 | #1319537 | N/A |
|
||||
| ARM | Cortex-A72 | #1319367 | N/A |
|
||||
| ARM | Cortex-A76 | #1165522 | N/A |
|
||||
+| ARM | Neoverse-N1 | #1165522 | N/A
|
||||
| ARM | MMU-500 | #842869 | N/A |
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-51
@@ -1,51 +0,0 @@
|
||||
From 968bb86d04913f52d7678a842474f2a674a8b23e Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <968bb86d04913f52d7678a842474f2a674a8b23e.1602683678.git.diego.sueiro@arm.com>
|
||||
From: Wei Chen <wei.chen@arm.com>
|
||||
Date: Fri, 28 Aug 2020 02:34:03 +0000
|
||||
Subject: [PATCH] xen/arm: Missing N1/A76/A75 FP registers in vCPU context
|
||||
switch
|
||||
|
||||
Xen has cpu_has_fp/cpu_has_simd to detect whether the CPU supports
|
||||
FP/SIMD or not. But currently, these two MACROs only consider value 0
|
||||
of ID_AA64PFR0_EL1.FP/SIMD as FP/SIMD features enabled. But for CPUs
|
||||
that support FP/SIMD and half-precision floating-point arithmetic, the
|
||||
ID_AA64PFR0_EL1.FP/SIMD are 1 (see Arm ARM DDI0487F.b, D13.2.64).
|
||||
For these CPUs, xen will treat them as no FP/SIMD support, the
|
||||
vfp_save/restore_state will not take effect.
|
||||
|
||||
From the TRM documents of Cortex-A75/A76/N1, we know these CPUs support
|
||||
basic Advanced SIMD/FP and half-precision floating-point arithmetic. In
|
||||
this case, on N1/A76/A75 platforms, Xen will always miss the floating
|
||||
pointer registers save/restore. If different vCPUs are running on the
|
||||
same pCPU, the floating pointer registers will be corrupted randomly.
|
||||
|
||||
This patch fixes Xen on these new cores.
|
||||
|
||||
Signed-off-by: Wei Chen <wei.chen@arm.com>
|
||||
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Reviewed-by: Julien Grall <jgrall@amazon.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
xen/include/asm-arm/cpufeature.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xen/include/asm-arm/cpufeature.h b/xen/include/asm-arm/cpufeature.h
|
||||
index 674beb0..10878ea 100644
|
||||
--- a/xen/include/asm-arm/cpufeature.h
|
||||
+++ b/xen/include/asm-arm/cpufeature.h
|
||||
@@ -13,8 +13,8 @@
|
||||
#define cpu_has_el2_64 (boot_cpu_feature64(el2) >= 1)
|
||||
#define cpu_has_el3_32 (boot_cpu_feature64(el3) == 2)
|
||||
#define cpu_has_el3_64 (boot_cpu_feature64(el3) >= 1)
|
||||
-#define cpu_has_fp (boot_cpu_feature64(fp) == 0)
|
||||
-#define cpu_has_simd (boot_cpu_feature64(simd) == 0)
|
||||
+#define cpu_has_fp (boot_cpu_feature64(fp) < 8)
|
||||
+#define cpu_has_simd (boot_cpu_feature64(simd) < 8)
|
||||
#define cpu_has_gicv3 (boot_cpu_feature64(gic) == 1)
|
||||
#endif
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,18 +1,34 @@
|
||||
Upstream-Status: Pending
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
|
||||
|
||||
From 5499e0fc8082024bf7e2d0facd5c976e82105070 Mon Sep 17 00:00:00 2001
|
||||
From: Diego Sueiro <diego.sueiro@arm.com>
|
||||
Date: Thu, 20 Aug 2020 11:58:20 +0100
|
||||
Subject: [PATCH] tools/hotplug: Fix hostname setting in vif-nat
|
||||
|
||||
Setting the hostname is failing because the "$XENBUS_PATH/domain"
|
||||
doesn't exist anymore. To fix this we set it to dom$domid
|
||||
|
||||
Index: git/tools/hotplug/Linux/vif-nat
|
||||
===================================================================
|
||||
--- git.orig/tools/hotplug/Linux/vif-nat
|
||||
+++ git/tools/hotplug/Linux/vif-nat
|
||||
@@ -86,6 +86,7 @@ router_ip=$(routing_ip "$ip")
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
|
||||
Acked-by: Wei Liu <wl@xen.org>
|
||||
---
|
||||
tools/hotplug/Linux/vif-nat | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/hotplug/Linux/vif-nat b/tools/hotplug/Linux/vif-nat
|
||||
index a76d9c784b..26144350b3 100644
|
||||
--- a/tools/hotplug/Linux/vif-nat
|
||||
+++ b/tools/hotplug/Linux/vif-nat
|
||||
@@ -85,7 +85,7 @@ router_ip=$(routing_ip "$ip")
|
||||
# Split the given IP/bits pair.
|
||||
vif_ip=`echo ${ip} | awk -F/ '{print $1}'`
|
||||
|
||||
hostname=$(xenstore_read "$XENBUS_PATH/domain" | tr -- '_.:/+' '-----')
|
||||
+[ -z "${hostname}" ] && hostname=dom$domid
|
||||
-hostname=$(xenstore_read "$XENBUS_PATH/domain" | tr -- '_.:/+' '-----')
|
||||
+hostname=dom$domid
|
||||
if [ "$vifid" != "1" ]
|
||||
then
|
||||
hostname="$hostname-$vifid"
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-4.14:"
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-arm-Add-Neoverse-N1-processor-identification.patch \
|
||||
file://0002-xen-arm-Enable-CPU-Erratum-1165522-for-Neoverse.patch \
|
||||
file://0003-xen-arm-Update-silicon-errata.txt-with-the-Neovers-A.patch \
|
||||
file://0004-xen-arm-Missing-N1-A76-A75-FP-registers-in-vCPU-cont.patch \
|
||||
file://0005-xen-arm-Throw-messages-for-unknown-FP-SIMD-implement.patch \
|
||||
file://0001-xen-arm-Throw-messages-for-unknown-FP-SIMD-implement.patch \
|
||||
"
|
||||
|
||||
@@ -65,8 +65,10 @@ case "$1" in
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping xenguest"
|
||||
# update guest list
|
||||
guestlist=$(xenguest-manager status | grep Running | cut -d ":" -f1)
|
||||
for f in ${guestlist}; do
|
||||
/usr/bin/xenguest-manager stop ${f}
|
||||
xl shutdown -w ${f} || xl destroy ${f}
|
||||
done
|
||||
;;
|
||||
reload)
|
||||
|
||||
@@ -21,8 +21,9 @@ XENGUEST_MANAGER_VOLUME_NAME ?= "vg-xen"
|
||||
XENGUEST_MANAGER_GUEST_DIR ?= "${datadir}/guests/"
|
||||
|
||||
# We add an init script to create and start guests automatically
|
||||
# run start script after xen-tools and run stop script before xen-tools
|
||||
INITSCRIPT_NAME = "xenguest"
|
||||
INITSCRIPT_PARAMS = "defaults 90"
|
||||
INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 79 0 1 6 ."
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
|
||||
@@ -29,9 +29,10 @@ PACKAGES =+ "${PN}-kea-dhcp4"
|
||||
|
||||
# Bridge configurator needs to run before S01networking init script
|
||||
# Prefix with a_ to make sure it is executed in runlevel 01 before others
|
||||
# run start script before ifupdown and run stop script after ifupdown
|
||||
INITSCRIPT_PACKAGES = "${PN} ${PN}-kea-dhcp4"
|
||||
INITSCRIPT_NAME_${PN} = "a_xenguest-network-bridge"
|
||||
INITSCRIPT_PARAMS_${PN} = "defaults 01"
|
||||
INITSCRIPT_PARAMS_${PN} = "start 01 2 3 4 5 . stop 81 0 1 6 ."
|
||||
|
||||
# Kea configuration needs to be restored before kea init scripts:
|
||||
# Kea dhcp4 server is 30, so lets use 20, to have higher priority
|
||||
|
||||
-2
@@ -1,5 +1,3 @@
|
||||
define KFEATURE_DESCRIPTION "Common XEN (Host and Guest) configs and patches on autonomy systems"
|
||||
|
||||
kconf non-hardware xen-common.cfg
|
||||
|
||||
patch 0001-xen-arm-do-not-setup-the-runstate-info-page-if-kpti-.patch
|
||||
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
From 5a0677110b73dd3e1766f89159701bfe8ac06808 Mon Sep 17 00:00:00 2001
|
||||
From: Masami Hiramatsu <mhiramat@kernel.org>
|
||||
Date: Tue, 6 Oct 2020 15:49:31 +0900
|
||||
Subject: [PATCH] arm/arm64: xen: Fix to convert percpu address to gfn
|
||||
correctly
|
||||
|
||||
Use per_cpu_ptr_to_phys() instead of virt_to_phys() for per-cpu
|
||||
address conversion.
|
||||
|
||||
In xen_starting_cpu(), per-cpu xen_vcpu_info address is converted
|
||||
to gfn by virt_to_gfn() macro. However, since the virt_to_gfn(v)
|
||||
assumes the given virtual address is in linear mapped kernel memory
|
||||
area, it can not convert the per-cpu memory if it is allocated on
|
||||
vmalloc area.
|
||||
|
||||
This depends on CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK.
|
||||
If it is enabled, the first chunk of percpu memory is linear mapped.
|
||||
In the other case, that is allocated from vmalloc area. Moreover,
|
||||
if the first chunk of percpu has run out until allocating
|
||||
xen_vcpu_info, it will be allocated on the 2nd chunk, which is
|
||||
based on kernel memory or vmalloc memory (depends on
|
||||
CONFIG_NEED_PER_CPU_KM).
|
||||
|
||||
Without this fix and kernel configured to use vmalloc area for
|
||||
the percpu memory, the Dom0 kernel will fail to boot with following
|
||||
errors.
|
||||
|
||||
[ 0.466172] Xen: initializing cpu0
|
||||
[ 0.469601] ------------[ cut here ]------------
|
||||
[ 0.474295] WARNING: CPU: 0 PID: 1 at arch/arm64/xen/../../arm/xen/enlighten.c:153 xen_starting_cpu+0x160/0x180
|
||||
[ 0.484435] Modules linked in:
|
||||
[ 0.487565] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.9.0-rc4+ #4
|
||||
[ 0.493895] Hardware name: Socionext Developer Box (DT)
|
||||
[ 0.499194] pstate: 00000005 (nzcv daif -PAN -UAO BTYPE=--)
|
||||
[ 0.504836] pc : xen_starting_cpu+0x160/0x180
|
||||
[ 0.509263] lr : xen_starting_cpu+0xb0/0x180
|
||||
[ 0.513599] sp : ffff8000116cbb60
|
||||
[ 0.516984] x29: ffff8000116cbb60 x28: ffff80000abec000
|
||||
[ 0.522366] x27: 0000000000000000 x26: 0000000000000000
|
||||
[ 0.527754] x25: ffff80001156c000 x24: fffffdffbfcdb600
|
||||
[ 0.533129] x23: 0000000000000000 x22: 0000000000000000
|
||||
[ 0.538511] x21: ffff8000113a99c8 x20: ffff800010fe4f68
|
||||
[ 0.543892] x19: ffff8000113a9988 x18: 0000000000000010
|
||||
[ 0.549274] x17: 0000000094fe0f81 x16: 00000000deadbeef
|
||||
[ 0.554655] x15: ffffffffffffffff x14: 0720072007200720
|
||||
[ 0.560037] x13: 0720072007200720 x12: 0720072007200720
|
||||
[ 0.565418] x11: 0720072007200720 x10: 0720072007200720
|
||||
[ 0.570801] x9 : ffff8000100fbdc0 x8 : ffff800010715208
|
||||
[ 0.576182] x7 : 0000000000000054 x6 : ffff00001b790f00
|
||||
[ 0.581564] x5 : ffff800010bbf880 x4 : 0000000000000000
|
||||
[ 0.586945] x3 : 0000000000000000 x2 : ffff80000abec000
|
||||
[ 0.592327] x1 : 000000000000002f x0 : 0000800000000000
|
||||
[ 0.597716] Call trace:
|
||||
[ 0.600232] xen_starting_cpu+0x160/0x180
|
||||
[ 0.604309] cpuhp_invoke_callback+0xac/0x640
|
||||
[ 0.608736] cpuhp_issue_call+0xf4/0x150
|
||||
[ 0.612728] __cpuhp_setup_state_cpuslocked+0x128/0x2c8
|
||||
[ 0.618030] __cpuhp_setup_state+0x84/0xf8
|
||||
[ 0.622192] xen_guest_init+0x324/0x364
|
||||
[ 0.626097] do_one_initcall+0x54/0x250
|
||||
[ 0.630003] kernel_init_freeable+0x12c/0x2c8
|
||||
[ 0.634428] kernel_init+0x1c/0x128
|
||||
[ 0.637988] ret_from_fork+0x10/0x18
|
||||
[ 0.641635] ---[ end trace d95b5309a33f8b27 ]---
|
||||
[ 0.646337] ------------[ cut here ]------------
|
||||
[ 0.651005] kernel BUG at arch/arm64/xen/../../arm/xen/enlighten.c:158!
|
||||
[ 0.657697] Internal error: Oops - BUG: 0 [#1] SMP
|
||||
[ 0.662548] Modules linked in:
|
||||
[ 0.665676] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 5.9.0-rc4+ #4
|
||||
[ 0.673398] Hardware name: Socionext Developer Box (DT)
|
||||
[ 0.678695] pstate: 00000005 (nzcv daif -PAN -UAO BTYPE=--)
|
||||
[ 0.684338] pc : xen_starting_cpu+0x178/0x180
|
||||
[ 0.688765] lr : xen_starting_cpu+0x144/0x180
|
||||
[ 0.693188] sp : ffff8000116cbb60
|
||||
[ 0.696573] x29: ffff8000116cbb60 x28: ffff80000abec000
|
||||
[ 0.701955] x27: 0000000000000000 x26: 0000000000000000
|
||||
[ 0.707344] x25: ffff80001156c000 x24: fffffdffbfcdb600
|
||||
[ 0.712718] x23: 0000000000000000 x22: 0000000000000000
|
||||
[ 0.718107] x21: ffff8000113a99c8 x20: ffff800010fe4f68
|
||||
[ 0.723481] x19: ffff8000113a9988 x18: 0000000000000010
|
||||
[ 0.728863] x17: 0000000094fe0f81 x16: 00000000deadbeef
|
||||
[ 0.734245] x15: ffffffffffffffff x14: 0720072007200720
|
||||
[ 0.739626] x13: 0720072007200720 x12: 0720072007200720
|
||||
[ 0.745008] x11: 0720072007200720 x10: 0720072007200720
|
||||
[ 0.750390] x9 : ffff8000100fbdc0 x8 : ffff800010715208
|
||||
[ 0.755771] x7 : 0000000000000054 x6 : ffff00001b790f00
|
||||
[ 0.761153] x5 : ffff800010bbf880 x4 : 0000000000000000
|
||||
[ 0.766534] x3 : 0000000000000000 x2 : 00000000deadbeef
|
||||
[ 0.771916] x1 : 00000000deadbeef x0 : ffffffffffffffea
|
||||
[ 0.777304] Call trace:
|
||||
[ 0.779819] xen_starting_cpu+0x178/0x180
|
||||
[ 0.783898] cpuhp_invoke_callback+0xac/0x640
|
||||
[ 0.788325] cpuhp_issue_call+0xf4/0x150
|
||||
[ 0.792317] __cpuhp_setup_state_cpuslocked+0x128/0x2c8
|
||||
[ 0.797619] __cpuhp_setup_state+0x84/0xf8
|
||||
[ 0.801779] xen_guest_init+0x324/0x364
|
||||
[ 0.805683] do_one_initcall+0x54/0x250
|
||||
[ 0.809590] kernel_init_freeable+0x12c/0x2c8
|
||||
[ 0.814016] kernel_init+0x1c/0x128
|
||||
[ 0.817583] ret_from_fork+0x10/0x18
|
||||
[ 0.821226] Code: d0006980 f9427c00 cb000300 17ffffea (d4210000)
|
||||
[ 0.827415] ---[ end trace d95b5309a33f8b28 ]---
|
||||
[ 0.832076] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
|
||||
[ 0.839815] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---
|
||||
|
||||
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
|
||||
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
|
||||
Link: https://lore.kernel.org/r/160196697165.60224.17470743378683334995.stgit@devnote2
|
||||
Signed-off-by: Juergen Gross <jgross@suse.com>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Richard Neill <richard.neill@arm.com>
|
||||
---
|
||||
arch/arm/xen/enlighten.c | 2 +-
|
||||
include/xen/arm/page.h | 3 +++
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
|
||||
index e93145d72c26..a6ab3689b2f4 100644
|
||||
--- a/arch/arm/xen/enlighten.c
|
||||
+++ b/arch/arm/xen/enlighten.c
|
||||
@@ -150,7 +150,7 @@ static int xen_starting_cpu(unsigned int cpu)
|
||||
pr_info("Xen: initializing cpu%d\n", cpu);
|
||||
vcpup = per_cpu_ptr(xen_vcpu_info, cpu);
|
||||
|
||||
- info.mfn = virt_to_gfn(vcpup);
|
||||
+ info.mfn = percpu_to_gfn(vcpup);
|
||||
info.offset = xen_offset_in_page(vcpup);
|
||||
|
||||
err = HYPERVISOR_vcpu_op(VCPUOP_register_vcpu_info, xen_vcpu_nr(cpu),
|
||||
diff --git a/include/xen/arm/page.h b/include/xen/arm/page.h
|
||||
index 39df751d0dc4..ac1b65470563 100644
|
||||
--- a/include/xen/arm/page.h
|
||||
+++ b/include/xen/arm/page.h
|
||||
@@ -83,6 +83,9 @@ static inline unsigned long bfn_to_pfn(unsigned long bfn)
|
||||
})
|
||||
#define gfn_to_virt(m) (__va(gfn_to_pfn(m) << XEN_PAGE_SHIFT))
|
||||
|
||||
+#define percpu_to_gfn(v) \
|
||||
+ (pfn_to_gfn(per_cpu_ptr_to_phys(v) >> XEN_PAGE_SHIFT))
|
||||
+
|
||||
/* Only used in PV code. But ARM guests are always HVM. */
|
||||
static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
|
||||
{
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
From 18d691d837b340c941ad778bc8dfa77446e48bb4 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <18d691d837b340c941ad778bc8dfa77446e48bb4.1613579395.git.diego.sueiro@arm.com>
|
||||
From: Julien Grall <jgrall@amazon.com>
|
||||
Date: Wed, 10 Feb 2021 17:06:54 +0000
|
||||
Subject: [PATCH] arm/xen: Don't probe xenbus as part of an early initcall
|
||||
|
||||
commit c4295ab0b485b8bc50d2264bcae2acd06f25caaf upstream.
|
||||
|
||||
After Commit 3499ba8198cad ("xen: Fix event channel callback via
|
||||
INTX/GSI"), xenbus_probe() will be called too early on Arm. This will
|
||||
recent to a guest hang during boot.
|
||||
|
||||
If the hang wasn't there, we would have ended up to call
|
||||
xenbus_probe() twice (the second time is in xenbus_probe_initcall()).
|
||||
|
||||
We don't need to initialize xenbus_probe() early for Arm guest.
|
||||
Therefore, the call in xen_guest_init() is now removed.
|
||||
|
||||
After this change, there is no more external caller for xenbus_probe().
|
||||
So the function is turned to a static one. Interestingly there were two
|
||||
prototypes for it.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Fixes: 3499ba8198cad ("xen: Fix event channel callback via INTX/GSI")
|
||||
Reported-by: Ian Jackson <iwj@xenproject.org>
|
||||
Signed-off-by: Julien Grall <jgrall@amazon.com>
|
||||
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
|
||||
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20210210170654.5377-1-julien@xen.org
|
||||
Signed-off-by: Juergen Gross <jgross@suse.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
|
||||
---
|
||||
arch/arm/xen/enlighten.c | 2 --
|
||||
drivers/xen/xenbus/xenbus.h | 1 -
|
||||
drivers/xen/xenbus/xenbus_probe.c | 2 +-
|
||||
include/xen/xenbus.h | 2 --
|
||||
4 files changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
|
||||
index f45bff158fc2..57dfc13b2752 100644
|
||||
--- a/arch/arm/xen/enlighten.c
|
||||
+++ b/arch/arm/xen/enlighten.c
|
||||
@@ -370,8 +370,6 @@ static int __init xen_guest_init(void)
|
||||
return -ENOMEM;
|
||||
}
|
||||
gnttab_init();
|
||||
- if (!xen_initial_domain())
|
||||
- xenbus_probe();
|
||||
|
||||
/*
|
||||
* Making sure board specific code will not set up ops for
|
||||
diff --git a/drivers/xen/xenbus/xenbus.h b/drivers/xen/xenbus/xenbus.h
|
||||
index a9bb5f91082d..88516a8a9f93 100644
|
||||
--- a/drivers/xen/xenbus/xenbus.h
|
||||
+++ b/drivers/xen/xenbus/xenbus.h
|
||||
@@ -115,7 +115,6 @@ int xenbus_probe_node(struct xen_bus_type *bus,
|
||||
const char *type,
|
||||
const char *nodename);
|
||||
int xenbus_probe_devices(struct xen_bus_type *bus);
|
||||
-void xenbus_probe(void);
|
||||
|
||||
void xenbus_dev_changed(const char *node, struct xen_bus_type *bus);
|
||||
|
||||
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
|
||||
index 786494bb7f20..652894d61967 100644
|
||||
--- a/drivers/xen/xenbus/xenbus_probe.c
|
||||
+++ b/drivers/xen/xenbus/xenbus_probe.c
|
||||
@@ -683,7 +683,7 @@ void unregister_xenstore_notifier(struct notifier_block *nb)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(unregister_xenstore_notifier);
|
||||
|
||||
-void xenbus_probe(void)
|
||||
+static void xenbus_probe(void)
|
||||
{
|
||||
xenstored_ready = 1;
|
||||
|
||||
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
|
||||
index fe9a9fa2ebc4..14d47ed4114f 100644
|
||||
--- a/include/xen/xenbus.h
|
||||
+++ b/include/xen/xenbus.h
|
||||
@@ -187,8 +187,6 @@ void xs_suspend_cancel(void);
|
||||
|
||||
struct work_struct;
|
||||
|
||||
-void xenbus_probe(void);
|
||||
-
|
||||
#define XENBUS_IS_ERR_READ(str) ({ \
|
||||
if (!IS_ERR(str) && strlen(str) == 0) { \
|
||||
kfree(str); \
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -33,3 +33,24 @@ KMACHINE_arm64-autonomy-guest = "arm64-autonomy-guest"
|
||||
# Add Minimal Kernel Configs for Docker runtime
|
||||
KERNEL_FEATURES += "${@bb.utils.contains('DISTRO_FEATURES', \
|
||||
'docker', 'features/arm-autonomy/docker-minimal.scc', '', d)}"
|
||||
|
||||
python() {
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
kernelVersion = d.getVar('LINUX_VERSION')
|
||||
pn = d.getVar('PN')
|
||||
|
||||
if kernelVersion and LooseVersion(kernelVersion) < '5.4.99' \
|
||||
and pn != 'linux-libc-headers' \
|
||||
and oe.utils.any_distro_features(d, "arm-autonomy-guest"):
|
||||
d.appendVar('SRC_URI', ' file://files/0001-arm-xen-Don-t-probe-xenbus-as-part-of-an-early-initc.patch' )
|
||||
|
||||
if kernelVersion and LooseVersion(kernelVersion) < '5.9' \
|
||||
and pn != 'linux-libc-headers' \
|
||||
and oe.utils.any_distro_features(d, "arm-autonomy-host arm-autonomy-guest"):
|
||||
d.appendVar('SRC_URI', ' file://files/0001-arm-arm64-xen-Fix-to-convert-percpu-address-to-gfn-c.patch' )
|
||||
|
||||
if kernelVersion and LooseVersion(kernelVersion) < '5.10':
|
||||
if oe.utils.any_distro_features(d, "arm-autonomy-host arm-autonomy-guest"):
|
||||
d.appendVar('SRC_URI', ' file://files/0001-xen-arm-do-not-setup-the-runstate-info-page-if-kpti-.patch' )
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ BBFILE_PRIORITY_meta-arm-bsp = "6"
|
||||
|
||||
LAYERSERIES_COMPAT_meta-arm-bsp = "gatesgarth"
|
||||
|
||||
LAYERDEPENDS_meta-arm-bsp = "core meta-arm meta-kernel"
|
||||
LAYERDEPENDS_meta-arm-bsp = "core meta-arm"
|
||||
# This won't be used by layerindex-fetch, but works everywhere else
|
||||
LAYERDEPENDS_meta-arm-bsp_append_musca-b1 = " meta-python"
|
||||
LAYERDEPENDS_meta-arm-bsp_append_musca-s1 = " meta-python"
|
||||
|
||||
@@ -6,9 +6,10 @@
|
||||
|
||||
require conf/machine/include/tune-cortexa5.inc
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-stable"
|
||||
PREFERRED_VERSION_linux-stable ?= "5.3%"
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
PREFERRED_VERSION_linux-yocto ?= "5.3%"
|
||||
KBUILD_DEFCONFIG = "multi_v7_defconfig"
|
||||
KCONFIG_MODE = "--alldefconfig"
|
||||
|
||||
EXTRA_IMAGEDEPENDS += "virtual/trusted-firmware-a u-boot"
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ TFA_PLATFORM = "corstone700"
|
||||
|
||||
SERIAL_CONSOLES ?= "115200;ttyAMA0"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel_corstone700 = "linux-stable"
|
||||
PREFERRED_VERSION_linux-stable ?= "5.6%"
|
||||
PREFERRED_PROVIDER_virtual/kernel_corstone700 = "linux-yocto"
|
||||
PREFERRED_VERSION_linux-yocto ?= "5.6%"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/trusted-firmware-a ?= "trusted-firmware-a"
|
||||
PREFERRED_VERSION_trusted-firmware-a ?= "2.3%"
|
||||
|
||||
@@ -16,8 +16,9 @@ EXTRA_IMAGEDEPENDS += "virtual/trusted-firmware-a"
|
||||
|
||||
# Use kernel provided by linaro
|
||||
KERNEL_IMAGETYPE ?= "Image"
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-stable"
|
||||
PREFERRED_VERSION_linux-stable ?= "5.7%"
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
PREFERRED_VERSION_linux-yocto ?= "5.7%"
|
||||
KCONFIG_MODE = "--alldefconfig"
|
||||
SERIAL_CONSOLES = "115200;ttyAMA0"
|
||||
|
||||
#grub-efi
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# N1SDP Development Platform Support in meta-arm-bsp
|
||||
|
||||
## Overview
|
||||
The N1SDP provides access to the Arm Neoverse N1 SoC. The N1SDP enables software development for key enterprise technology
|
||||
and general Arm software development. The N1SDP consists of the N1 board containing the N1 SoC.
|
||||
The N1 SoC contains two dual-core Arm Neoverse N1 processor clusters.
|
||||
|
||||
The system demonstrates Arm technology in the context of Cache-Coherent Interconnect for Accelerators (CCIX) protocol by:
|
||||
|
||||
- Running coherent traffic between the N1 SoC and an accelerator card.
|
||||
- Coherent communication between two N1 SoCs.
|
||||
- Enabling development of CCIX-enabled FPGA accelerators.
|
||||
|
||||
Further information on N1SDP can be found at
|
||||
https://community.arm.com/developer/tools-software/oss-platforms/w/docs/458/neoverse-n1-sdp
|
||||
|
||||
## Configuration:
|
||||
In the local.conf file, MACHINE should be set as follow:
|
||||
MACHINE ?= "n1sdp"
|
||||
|
||||
@@ -2,7 +2,7 @@ SUMMARY = "External system Cortex-M3 Firmware"
|
||||
DESCRIPTION = "Firmware to be loaded and run in External System Harness in\
|
||||
support to the main application CPU."
|
||||
HOMEPAGE = "https://git.linaro.org/landing-teams/working/arm/external-system.git"
|
||||
DEPENDS = "coreutils-native gcc-arm-none-eabi-native"
|
||||
DEPENDS = "gcc-arm-none-eabi-native"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.md;md5=e44b2531cd6ffe9dece394dbe988d9a0"
|
||||
|
||||
|
||||
@@ -18,9 +18,7 @@ FIRMWARE_DIR = "n1sdp-board-firmware_source"
|
||||
PRIMARY_DIR = "${WORKDIR}/n1sdp-board-firmware_primary"
|
||||
SECONDARY_DIR = "${WORKDIR}/n1sdp-board-firmware_secondary"
|
||||
|
||||
SOC_BINARIES_PRIMARY = "mcp_fw.bin scp_fw.bin ${SOC_BINARIES_SECONDARY}"
|
||||
SOC_BINARIES_SECONDARY = "mcp_rom.bin scp_rom.bin"
|
||||
|
||||
SOC_BINARIES = "mcp_fw.bin scp_fw.bin mcp_rom.bin scp_rom.bin"
|
||||
|
||||
prepare_package() {
|
||||
cd ${WORKDIR}
|
||||
@@ -33,7 +31,7 @@ prepare_package() {
|
||||
cp -v ${RECIPE_SYSROOT}/firmware/uefi.bin ${PRIMARY_DIR}/SOFTWARE/
|
||||
|
||||
# Copy SOC binaries
|
||||
for f in ${SOC_BINARIES_PRIMARY}; do
|
||||
for f in ${SOC_BINARIES}; do
|
||||
cp -v ${RECIPE_SYSROOT}/firmware/${f} ${PRIMARY_DIR}/SOFTWARE/
|
||||
done
|
||||
|
||||
@@ -49,7 +47,7 @@ prepare_package() {
|
||||
mkdir -p ${SECONDARY_DIR}/SOFTWARE/
|
||||
|
||||
# Copy SOC binaries
|
||||
for f in ${SOC_BINARIES_SECONDARY}; do
|
||||
for f in ${SOC_BINARIES}; do
|
||||
cp -v ${RECIPE_SYSROOT}/firmware/${f} ${SECONDARY_DIR}/SOFTWARE/
|
||||
done
|
||||
|
||||
@@ -59,10 +57,8 @@ prepare_package() {
|
||||
${SECONDARY_DIR}/MB/HBI0316A/io_v123f.txt
|
||||
sed -i -e 's|.*SOCCON: 0x1170.*PLATFORM_CTRL.*|SOCCON: 0x1170 0x00000101 ;SoC SCC PLATFORM_CTRL|' \
|
||||
${SECONDARY_DIR}/MB/HBI0316A/io_v123f.txt
|
||||
sed -i -e '/^TOTALIMAGES:/ s|5|2|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
||||
sed -i -e 's|^IMAGE[^23]|;&|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
||||
sed -i -e 's|^IMAGE2|IMAGE0|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
||||
sed -i -e 's|^IMAGE3|IMAGE1|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
||||
sed -i -e '/^TOTALIMAGES:/ s|5|4|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
||||
sed -i -e 's|^IMAGE4|;&|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
||||
}
|
||||
|
||||
do_deploy() {
|
||||
@@ -81,4 +77,4 @@ do_deploy() {
|
||||
do_deploy[dirs] += "${PRIMARY_DIR} ${SECONDARY_DIR}"
|
||||
do_deploy[cleandirs] += "${PRIMARY_DIR} ${SECONDARY_DIR}"
|
||||
do_deploy[umask] = "022"
|
||||
addtask deploy after do_populate_sysroot
|
||||
addtask deploy after do_prepare_recipe_sysroot
|
||||
|
||||
@@ -51,6 +51,10 @@ COMPATIBLE_MACHINE_juno = "juno"
|
||||
KMACHINE_juno = "juno"
|
||||
KBUILD_DEFCONFIG_juno = "defconfig"
|
||||
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 = " \
|
||||
file://0001-mailbox-add-support-for-doorbell-signal-mode-control.patch \
|
||||
file://0002-dt-bindings-mailbox-add-bindings-to-support-ARM-MHU-.patch \
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# Add support for Arm Platforms (boards or simulators)
|
||||
|
||||
require linux-arm-platforms.inc
|
||||
@@ -1,3 +0,0 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-stable-5.7:"
|
||||
|
||||
SRC_URI_append = " file://coresight-traceid.patch"
|
||||
@@ -0,0 +1,112 @@
|
||||
Change USB_CONN_GPIO to 'y' by default and regenerate the defconfig via
|
||||
`make savedefconfig`.
|
||||
|
||||
Upstream-Status: Inappropriate [not needed in newer kernels]
|
||||
Signed-off-by: Jon Mason <jon.mason@arm.com>
|
||||
|
||||
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
|
||||
index 03d0189f7d68..a4baafe01c34 100644
|
||||
--- a/arch/arm64/configs/defconfig
|
||||
+++ b/arch/arm64/configs/defconfig
|
||||
@@ -165,9 +165,9 @@ CONFIG_QRTR_SMD=m
|
||||
CONFIG_QRTR_TUN=m
|
||||
CONFIG_BPF_JIT=y
|
||||
CONFIG_CAN=m
|
||||
+CONFIG_CAN_FLEXCAN=m
|
||||
CONFIG_CAN_RCAR=m
|
||||
CONFIG_CAN_RCAR_CANFD=m
|
||||
-CONFIG_CAN_FLEXCAN=m
|
||||
CONFIG_BT=m
|
||||
CONFIG_BT_HIDP=m
|
||||
# CONFIG_BT_HS is not set
|
||||
@@ -202,20 +202,19 @@ CONFIG_PCI_HOST_THUNDER_ECAM=y
|
||||
CONFIG_PCIE_ROCKCHIP_HOST=m
|
||||
CONFIG_PCIE_BRCMSTB=m
|
||||
CONFIG_PCI_LAYERSCAPE=y
|
||||
-CONFIG_PCIE_LAYERSCAPE_GEN4=y
|
||||
CONFIG_PCI_HISI=y
|
||||
CONFIG_PCIE_QCOM=y
|
||||
CONFIG_PCIE_ARMADA_8K=y
|
||||
CONFIG_PCIE_KIRIN=y
|
||||
CONFIG_PCIE_HISI_STB=y
|
||||
CONFIG_PCIE_TEGRA194_HOST=m
|
||||
+CONFIG_PCIE_LAYERSCAPE_GEN4=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_FW_LOADER_USER_HELPER=y
|
||||
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
|
||||
CONFIG_HISILICON_LPC=y
|
||||
CONFIG_SIMPLE_PM_BUS=y
|
||||
-CONFIG_FSL_MC_BUS=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
@@ -494,10 +493,10 @@ CONFIG_SENSORS_INA3221=m
|
||||
CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_THERMAL_EMULATION=y
|
||||
-CONFIG_QORIQ_THERMAL=m
|
||||
-CONFIG_SUN8I_THERMAL=y
|
||||
CONFIG_IMX_SC_THERMAL=m
|
||||
CONFIG_IMX8MM_THERMAL=m
|
||||
+CONFIG_QORIQ_THERMAL=m
|
||||
+CONFIG_SUN8I_THERMAL=y
|
||||
CONFIG_ROCKCHIP_THERMAL=m
|
||||
CONFIG_RCAR_THERMAL=y
|
||||
CONFIG_RCAR_GEN3_THERMAL=y
|
||||
@@ -567,7 +566,6 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
|
||||
CONFIG_MEDIA_SDR_SUPPORT=y
|
||||
CONFIG_MEDIA_CONTROLLER=y
|
||||
CONFIG_VIDEO_V4L2_SUBDEV_API=y
|
||||
-CONFIG_MEDIA_PLATFORM_SUPPORT=y
|
||||
# CONFIG_DVB_NET is not set
|
||||
CONFIG_MEDIA_USB_SUPPORT=y
|
||||
CONFIG_USB_VIDEO_CLASS=m
|
||||
@@ -611,10 +609,10 @@ CONFIG_DRM_MSM=m
|
||||
CONFIG_DRM_TEGRA=m
|
||||
CONFIG_DRM_PANEL_LVDS=m
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
-CONFIG_DRM_SIMPLE_BRIDGE=m
|
||||
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
|
||||
CONFIG_DRM_DISPLAY_CONNECTOR=m
|
||||
CONFIG_DRM_SII902X=m
|
||||
+CONFIG_DRM_SIMPLE_BRIDGE=m
|
||||
CONFIG_DRM_THINE_THC63LVD1024=m
|
||||
CONFIG_DRM_TI_SN65DSI86=m
|
||||
CONFIG_DRM_I2C_ADV7511=m
|
||||
@@ -662,7 +660,6 @@ CONFIG_SND_SOC_WSA881X=m
|
||||
CONFIG_SND_SIMPLE_CARD=m
|
||||
CONFIG_SND_AUDIO_GRAPH_CARD=m
|
||||
CONFIG_I2C_HID=m
|
||||
-CONFIG_USB_CONN_GPIO=m
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_OTG=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
@@ -797,14 +794,13 @@ CONFIG_QCOM_A53PLL=y
|
||||
CONFIG_QCOM_CLK_APCS_MSM8916=y
|
||||
CONFIG_QCOM_CLK_SMD_RPM=y
|
||||
CONFIG_QCOM_CLK_RPMH=y
|
||||
-CONFIG_IPQ_GCC_8074=y
|
||||
CONFIG_IPQ_GCC_6018=y
|
||||
+CONFIG_IPQ_GCC_8074=y
|
||||
CONFIG_MSM_GCC_8916=y
|
||||
CONFIG_MSM_GCC_8994=y
|
||||
CONFIG_MSM_MMCC_8996=y
|
||||
CONFIG_MSM_GCC_8998=y
|
||||
CONFIG_QCS_GCC_404=y
|
||||
-CONFIG_SDM_GCC_845=y
|
||||
CONFIG_SDM_GPUCC_845=y
|
||||
CONFIG_SDM_DISPCC_845=y
|
||||
CONFIG_SM_GCC_8150=y
|
||||
@@ -933,10 +929,10 @@ CONFIG_FPGA_REGION=m
|
||||
CONFIG_OF_FPGA_REGION=m
|
||||
CONFIG_TEE=y
|
||||
CONFIG_OPTEE=y
|
||||
+CONFIG_MUX_MMIO=y
|
||||
CONFIG_SLIMBUS=m
|
||||
CONFIG_SLIM_QCOM_CTRL=m
|
||||
CONFIG_SLIM_QCOM_NGD_CTRL=m
|
||||
-CONFIG_MUX_MMIO=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
-8
@@ -1,13 +1,5 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/files/corstone700:"
|
||||
|
||||
# including linux-yocto.inc to use configuration fragments
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
LINUX_VMAJOR = "5"
|
||||
LINUX_VMINOR = "6"
|
||||
LINUX_VPATCH = "14"
|
||||
LINUX_SRCREV = "e3ac9117b18596b7363d5b7904ab03a7d782b40c"
|
||||
|
||||
COMPATIBLE_MACHINE = "${MACHINE}"
|
||||
|
||||
KMACHINE = "corstone700"
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-stable-5.3:"
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto-5.3:"
|
||||
|
||||
SRC_URI_append = " file://0001-perf-cs-etm-Move-definition-of-traceid_list-global-v.patch \
|
||||
file://0002-perf-tests-bp_account-Make-global-variable-static.patch \
|
||||
@@ -0,0 +1,15 @@
|
||||
KBRANCH = "v5.3/base"
|
||||
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
SRCREV_machine = "d4f3318ed8fab6316cb7a269b8f42306632a3876"
|
||||
SRCREV_meta = "8d0ed83a864cc91eef4d2abbc90f13d4ecd1c213"
|
||||
|
||||
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}"
|
||||
|
||||
LINUX_VERSION = "5.3.18"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
|
||||
|
||||
PV = "${LINUX_VERSION}+git${SRCPV}"
|
||||
KMETA = "kernel-meta"
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-stable-5.6:"
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto-5.6:"
|
||||
|
||||
SRC_URI_append = " file://0001-libtraceevent-Fix-build-with-binutils-2.35.patch \
|
||||
file://0002-perf-cs-etm-Move-definition-of-traceid_list-global-v.patch"
|
||||
@@ -7,6 +7,6 @@ SRC_URI_append = " file://0001-libtraceevent-Fix-build-with-binutils-2.35.patch
|
||||
# Corstone700 KMACHINE
|
||||
#
|
||||
MACHINE_KERNEL_REQUIRE ?= ""
|
||||
MACHINE_KERNEL_REQUIRE_corstone700 = "linux-stable-corstone700.inc"
|
||||
MACHINE_KERNEL_REQUIRE_corstone700 = "linux-yocto-corstone700.inc"
|
||||
|
||||
require ${MACHINE_KERNEL_REQUIRE}
|
||||
@@ -0,0 +1,15 @@
|
||||
KBRANCH = "v5.6/base"
|
||||
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
SRCREV_machine = "e3ac9117b18596b7363d5b7904ab03a7d782b40c"
|
||||
SRCREV_meta = "b152cd93ea7046a835c869a76085aefdb6ce7421"
|
||||
|
||||
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.6;destsuffix=${KMETA}"
|
||||
|
||||
LINUX_VERSION = "5.6.14"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
PV = "${LINUX_VERSION}+git${SRCPV}"
|
||||
KMETA = "kernel-meta"
|
||||
@@ -0,0 +1,5 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto-5.7:"
|
||||
|
||||
SRC_URI_append = " file://coresight-traceid.patch \
|
||||
file://defconfig.patch \
|
||||
"
|
||||
@@ -0,0 +1,16 @@
|
||||
KBRANCH = "v5.7/base"
|
||||
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
SRCREV_machine = "6b9830fecd4a87d7ebb4d93484fef00f46d0fa0f"
|
||||
SRCREV_meta = "b9e6fd082dc5bfb51699809d7119d4b20d280c0b"
|
||||
|
||||
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.7;destsuffix=${KMETA}"
|
||||
|
||||
LINUX_VERSION = "5.7.19"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
PV = "${LINUX_VERSION}+git${SRCPV}"
|
||||
KMETA = "kernel-meta"
|
||||
|
||||
@@ -6,6 +6,4 @@ part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --
|
||||
|
||||
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024 --uuid=6a60524d-061d-454a-bfd1-38989910eccd
|
||||
|
||||
part swap --ondisk sda --size 44 --label swap1 --fstype=swap
|
||||
|
||||
bootloader --ptable gpt --configfile="n1sdp-grub.cfg" --timeout=5
|
||||
|
||||
@@ -139,19 +139,5 @@ python external_arm_toolchain_version_handler () {
|
||||
d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld))
|
||||
d.setVar('EAT_VER_GDB', eat_get_gdb_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
|
||||
|
||||
+2
-3
@@ -1,5 +1,7 @@
|
||||
inherit cross-canadian
|
||||
|
||||
require license.inc
|
||||
|
||||
PN = "external-arm-sdk-toolchain-${TARGET_ARCH}"
|
||||
BPN = "external-arm-sdk-toolchain"
|
||||
PV = "${EAT_VER_MAIN}"
|
||||
@@ -10,9 +12,6 @@ INHIBIT_SYSROOT_STRIP = "1"
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
EXCLUDE_FROM_SHLIBS = "1"
|
||||
|
||||
EAT_LICENSE ??= ""
|
||||
|
||||
LICENSE = "${EAT_LICENSE}"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
|
||||
# Skip packaging QA checks for prebuilt binaries
|
||||
|
||||
@@ -115,6 +115,8 @@ do_install() {
|
||||
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}/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}/ldd
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
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_GDB_LICENSE = "GPL-3.0"
|
||||
EAT_LIBC_LICENSE = "GPLv2 & LGPLv2.1"
|
||||
EAT_RLE_LICENSE = "GPL-3.0-with-GCC-exception"
|
||||
|
||||
LICENSE_${PN} = "${EAT_LIBC_LICENSE}"
|
||||
LICENSE_${PN}-dev = "${EAT_LIBC_LICENSE}"
|
||||
|
||||
@@ -68,6 +68,7 @@ SRC_URI = "\
|
||||
file://0035-Fix-for-testsuite-failure.patch \
|
||||
file://0036-Re-introduce-spe-commandline-options.patch \
|
||||
file://0037-Fix-up-libsanitizer-build-with-master-glibc.patch \
|
||||
file://0001-Backport-fix-for-PR-tree-optimization-97236-fix-bad-.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "9c570fc4286825b4e6f67b3d34aade23"
|
||||
|
||||
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=97b668f9a8c6ec565c278a60e7d1492a6932e409]
|
||||
Signed-off-by: Jon Mason <jon.mason@arm.com>
|
||||
|
||||
From 97b668f9a8c6ec565c278a60e7d1492a6932e409 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Klose <doko@ubuntu.com>
|
||||
Date: Tue, 6 Oct 2020 13:41:37 +0200
|
||||
Subject: [PATCH] Backport fix for PR/tree-optimization/97236 - fix bad use of
|
||||
VMAT_CONTIGUOUS
|
||||
|
||||
This avoids using VMAT_CONTIGUOUS with single-element interleaving
|
||||
when using V1mode vectors. Instead keep VMAT_ELEMENTWISE but
|
||||
continue to avoid load-lanes and gathers.
|
||||
|
||||
2020-10-01 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/97236
|
||||
* tree-vect-stmts.c (get_group_load_store_type): Keep
|
||||
VMAT_ELEMENTWISE for single-element vectors.
|
||||
|
||||
* gcc.dg/vect/pr97236.c: New testcase.
|
||||
|
||||
(cherry picked from commit 1ab88985631dd2c5a5e3b5c0dce47cf8b6ed2f82)
|
||||
---
|
||||
gcc/testsuite/gcc.dg/vect/pr97236.c | 43 +++++++++++++++++++++++++++++
|
||||
gcc/tree-vect-stmts.c | 20 ++++++--------
|
||||
2 files changed, 52 insertions(+), 11 deletions(-)
|
||||
create mode 100644 gcc/testsuite/gcc.dg/vect/pr97236.c
|
||||
|
||||
diff --git a/gcc/testsuite/gcc.dg/vect/pr97236.c b/gcc/testsuite/gcc.dg/vect/pr97236.c
|
||||
new file mode 100644
|
||||
index 000000000000..9d3dc20d953d
|
||||
--- /dev/null
|
||||
+++ b/gcc/testsuite/gcc.dg/vect/pr97236.c
|
||||
@@ -0,0 +1,43 @@
|
||||
+typedef unsigned char __uint8_t;
|
||||
+typedef __uint8_t uint8_t;
|
||||
+typedef struct plane_t {
|
||||
+ uint8_t *p_pixels;
|
||||
+ int i_lines;
|
||||
+ int i_pitch;
|
||||
+} plane_t;
|
||||
+
|
||||
+typedef struct {
|
||||
+ plane_t p[5];
|
||||
+} picture_t;
|
||||
+
|
||||
+#define N 4
|
||||
+
|
||||
+void __attribute__((noipa))
|
||||
+picture_Clone(picture_t *picture, picture_t *res)
|
||||
+{
|
||||
+ for (int i = 0; i < N; i++) {
|
||||
+ res->p[i].p_pixels = picture->p[i].p_pixels;
|
||||
+ res->p[i].i_lines = picture->p[i].i_lines;
|
||||
+ res->p[i].i_pitch = picture->p[i].i_pitch;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main()
|
||||
+{
|
||||
+ picture_t aaa, bbb;
|
||||
+ uint8_t pixels[10] = {1, 1, 1, 1, 1, 1, 1, 1};
|
||||
+
|
||||
+ for (unsigned i = 0; i < N; i++)
|
||||
+ aaa.p[i].p_pixels = pixels;
|
||||
+
|
||||
+ picture_Clone (&aaa, &bbb);
|
||||
+
|
||||
+ uint8_t c = 0;
|
||||
+ for (unsigned i = 0; i < N; i++)
|
||||
+ c += bbb.p[i].p_pixels[0];
|
||||
+
|
||||
+ if (c != N)
|
||||
+ __builtin_abort ();
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
|
||||
index 507f81b0a0e8..ffbba3441de2 100644
|
||||
--- a/gcc/tree-vect-stmts.c
|
||||
+++ b/gcc/tree-vect-stmts.c
|
||||
@@ -2355,25 +2355,23 @@ get_group_load_store_type (stmt_vec_info stmt_info, tree vectype, bool slp,
|
||||
/* First cope with the degenerate case of a single-element
|
||||
vector. */
|
||||
if (known_eq (TYPE_VECTOR_SUBPARTS (vectype), 1U))
|
||||
- *memory_access_type = VMAT_CONTIGUOUS;
|
||||
+ ;
|
||||
|
||||
/* Otherwise try using LOAD/STORE_LANES. */
|
||||
- if (*memory_access_type == VMAT_ELEMENTWISE
|
||||
- && (vls_type == VLS_LOAD
|
||||
- ? vect_load_lanes_supported (vectype, group_size, masked_p)
|
||||
- : vect_store_lanes_supported (vectype, group_size,
|
||||
- masked_p)))
|
||||
+ else if (vls_type == VLS_LOAD
|
||||
+ ? vect_load_lanes_supported (vectype, group_size, masked_p)
|
||||
+ : vect_store_lanes_supported (vectype, group_size,
|
||||
+ masked_p))
|
||||
{
|
||||
*memory_access_type = VMAT_LOAD_STORE_LANES;
|
||||
overrun_p = would_overrun_p;
|
||||
}
|
||||
|
||||
/* If that fails, try using permuting loads. */
|
||||
- if (*memory_access_type == VMAT_ELEMENTWISE
|
||||
- && (vls_type == VLS_LOAD
|
||||
- ? vect_grouped_load_supported (vectype, single_element_p,
|
||||
- group_size)
|
||||
- : vect_grouped_store_supported (vectype, group_size)))
|
||||
+ else if (vls_type == VLS_LOAD
|
||||
+ ? vect_grouped_load_supported (vectype, single_element_p,
|
||||
+ group_size)
|
||||
+ : vect_grouped_store_supported (vectype, group_size))
|
||||
{
|
||||
*memory_access_type = VMAT_CONTIGUOUS_PERMUTE;
|
||||
overrun_p = would_overrun_p;
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@@ -6,10 +6,6 @@ KMACHINE = "qemuarm64"
|
||||
|
||||
UBOOT_MACHINE = "qemu_arm64_defconfig"
|
||||
|
||||
# The 5.4 kernel panics when booting, so use the development kernel until the
|
||||
# default kernel is upgraded (5.5. supposedly works)
|
||||
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
|
||||
|
||||
QB_MACHINE = "-machine virt,secure=on"
|
||||
QB_OPT_APPEND += "-no-acpi"
|
||||
QB_MEM = "-m 1024"
|
||||
@@ -23,4 +19,3 @@ IMAGE_FSTYPES += "wic wic.qcow2"
|
||||
WKS_FILE ?= "qemuarm64.wks"
|
||||
WKS_FILE_DEPENDS = "trusted-firmware-a"
|
||||
IMAGE_BOOT_FILES = "${KERNEL_IMAGETYPE}"
|
||||
|
||||
|
||||
+160
@@ -0,0 +1,160 @@
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||
|
||||
From b3eb31b79d6eee04020f0dc2ec5140ff5aa28282 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Leach <mike.leach@linaro.org>
|
||||
Date: Mon, 16 Nov 2020 17:48:40 +0000
|
||||
Subject: [PATCH] build: Fix build race issue - #32 reported on github
|
||||
|
||||
Issue reported of race when building tests. On a heavily loaded build
|
||||
machine the creation of the build directory could occur at the same time
|
||||
as compilation into that directory creating issue with finding object
|
||||
files.
|
||||
|
||||
Reported-by: rossburton (github issue #32)
|
||||
Signed-off-by: Mike Leach <mike.leach@linaro.org>
|
||||
---
|
||||
decoder/tests/build/linux/c_api_pkt_print_test/makefile | 6 +++---
|
||||
decoder/tests/build/linux/echo_test_dcd_lib/makefile | 6 +++---
|
||||
decoder/tests/build/linux/mem_buffer_eg/makefile | 6 +++---
|
||||
decoder/tests/build/linux/snapshot_parser_lib/makefile | 6 +++---
|
||||
decoder/tests/build/linux/trc_pkt_lister/makefile | 6 +++---
|
||||
5 files changed, 15 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/decoder/tests/build/linux/c_api_pkt_print_test/makefile b/decoder/tests/build/linux/c_api_pkt_print_test/makefile
|
||||
index b0b5604..f1108e4 100644
|
||||
--- a/decoder/tests/build/linux/c_api_pkt_print_test/makefile
|
||||
+++ b/decoder/tests/build/linux/c_api_pkt_print_test/makefile
|
||||
@@ -51,12 +51,12 @@ OBJECTS = $(BUILD_DIR)/c_api_pkt_print_test.o
|
||||
LIBS = -L$(LIB_TARGET_DIR) -l$(LIB_BASE_NAME) -l$(LIB_CAPI_NAME) \
|
||||
-L$(LIB_TEST_TARGET_DIR) -l_echo_test_dcd
|
||||
|
||||
-all: build_dir copy_libs
|
||||
+all: copy_libs
|
||||
|
||||
test_app: $(BIN_TEST_TARGET_DIR)/$(PROG)
|
||||
|
||||
|
||||
- $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS)
|
||||
+ $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) | build_dir
|
||||
mkdir -p $(BIN_TEST_TARGET_DIR)
|
||||
$(LINKER) $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG)
|
||||
cp $(LIB_TARGET_DIR)/*.so .
|
||||
@@ -77,7 +77,7 @@ DEPS := $(OBJECTS:%.o=%.d)
|
||||
-include $(DEPS)
|
||||
|
||||
## object compile
|
||||
-$(BUILD_DIR)/%.o : %.c
|
||||
+$(BUILD_DIR)/%.o : %.c | build_dir
|
||||
$(CC) $(CFLAGS) $(CC_INCLUDES) -MMD $< -o $@
|
||||
|
||||
#### clean
|
||||
diff --git a/decoder/tests/build/linux/echo_test_dcd_lib/makefile b/decoder/tests/build/linux/echo_test_dcd_lib/makefile
|
||||
index 31ca38f..8c255a8 100644
|
||||
--- a/decoder/tests/build/linux/echo_test_dcd_lib/makefile
|
||||
+++ b/decoder/tests/build/linux/echo_test_dcd_lib/makefile
|
||||
@@ -48,9 +48,9 @@ CC_INCLUDES = \
|
||||
OBJECTS = $(BUILD_DIR)/ext_dcd_echo_test.o \
|
||||
$(BUILD_DIR)/ext_dcd_echo_test_fact.o
|
||||
|
||||
-all: build_dir $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a
|
||||
+all: $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a
|
||||
|
||||
-$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS)
|
||||
+$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) | build_dir
|
||||
mkdir -p $(LIB_TEST_TARGET_DIR)
|
||||
$(LIB) $(ARFLAGS) $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a $(OBJECTS)
|
||||
|
||||
@@ -64,7 +64,7 @@ DEPS := $(OBJECTS:%.o=%.d)
|
||||
-include $(DEPS)
|
||||
|
||||
## object compile
|
||||
-$(BUILD_DIR)/%.o : %.c
|
||||
+$(BUILD_DIR)/%.o : %.c | build_dir
|
||||
$(CC) $(CFLAGS) $(CC_INCLUDES) -MMD $< -o $@
|
||||
|
||||
#### clean
|
||||
diff --git a/decoder/tests/build/linux/mem_buffer_eg/makefile b/decoder/tests/build/linux/mem_buffer_eg/makefile
|
||||
index 850ed49..7939521 100644
|
||||
--- a/decoder/tests/build/linux/mem_buffer_eg/makefile
|
||||
+++ b/decoder/tests/build/linux/mem_buffer_eg/makefile
|
||||
@@ -51,12 +51,12 @@ OBJECTS = $(BUILD_DIR)/mem_buff_demo.o
|
||||
LIBS = -L$(LIB_TEST_TARGET_DIR) -lsnapshot_parser \
|
||||
-L$(LIB_TARGET_DIR) -l$(LIB_BASE_NAME)
|
||||
|
||||
-all: build_dir copy_libs
|
||||
+all: copy_libs
|
||||
|
||||
test_app: $(BIN_TEST_TARGET_DIR)/$(PROG)
|
||||
|
||||
|
||||
- $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS)
|
||||
+ $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) | build_dir
|
||||
mkdir -p $(BIN_TEST_TARGET_DIR)
|
||||
$(LINKER) $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG)
|
||||
|
||||
@@ -76,7 +76,7 @@ DEPS := $(OBJECTS:%.o=%.d)
|
||||
-include $(DEPS)
|
||||
|
||||
## object compile
|
||||
-$(BUILD_DIR)/%.o : %.cpp
|
||||
+$(BUILD_DIR)/%.o : %.cpp | build_dir
|
||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -MMD $< -o $@
|
||||
|
||||
#### clean
|
||||
diff --git a/decoder/tests/build/linux/snapshot_parser_lib/makefile b/decoder/tests/build/linux/snapshot_parser_lib/makefile
|
||||
index 295bab6..ae566eb 100644
|
||||
--- a/decoder/tests/build/linux/snapshot_parser_lib/makefile
|
||||
+++ b/decoder/tests/build/linux/snapshot_parser_lib/makefile
|
||||
@@ -63,9 +63,9 @@ OBJECTS=$(BUILD_DIR)/device_info.o \
|
||||
$(BUILD_DIR)/snapshot_reader.o \
|
||||
$(BUILD_DIR)/ss_to_dcdtree.o
|
||||
|
||||
-all: build_dir $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a
|
||||
+all: $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a
|
||||
|
||||
-$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS)
|
||||
+$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) | build_dir
|
||||
mkdir -p $(LIB_TEST_TARGET_DIR)
|
||||
$(LIB) $(ARFLAGS) $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a $(OBJECTS)
|
||||
|
||||
@@ -80,7 +80,7 @@ DEPS := $(OBJECTS:%.o=%.d)
|
||||
-include $(DEPS)
|
||||
|
||||
## object compile
|
||||
-$(BUILD_DIR)/%.o : %.cpp
|
||||
+$(BUILD_DIR)/%.o : %.cpp | build_dir
|
||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -MMD $< -o $@
|
||||
|
||||
### clean
|
||||
diff --git a/decoder/tests/build/linux/trc_pkt_lister/makefile b/decoder/tests/build/linux/trc_pkt_lister/makefile
|
||||
index 54ce27d..1027964 100644
|
||||
--- a/decoder/tests/build/linux/trc_pkt_lister/makefile
|
||||
+++ b/decoder/tests/build/linux/trc_pkt_lister/makefile
|
||||
@@ -51,12 +51,12 @@ OBJECTS = $(BUILD_DIR)/trc_pkt_lister.o
|
||||
LIBS = -L$(LIB_TEST_TARGET_DIR) -lsnapshot_parser \
|
||||
-L$(LIB_TARGET_DIR) -l$(LIB_BASE_NAME)
|
||||
|
||||
-all: build_dir copy_libs
|
||||
+all: copy_libs
|
||||
|
||||
test_app: $(BIN_TEST_TARGET_DIR)/$(PROG)
|
||||
|
||||
|
||||
- $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS)
|
||||
+ $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) | build_dir
|
||||
mkdir -p $(BIN_TEST_TARGET_DIR)
|
||||
$(LINKER) $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG)
|
||||
|
||||
@@ -76,7 +76,7 @@ DEPS := $(OBJECTS:%.o=%.d)
|
||||
-include $(DEPS)
|
||||
|
||||
## object compile
|
||||
-$(BUILD_DIR)/%.o : %.cpp
|
||||
+$(BUILD_DIR)/%.o : %.cpp | build_dir
|
||||
$(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -MMD $< -o $@
|
||||
|
||||
#### clean
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -3,7 +3,9 @@ HOMEPAGE = "https://github.com/Linaro/OpenCSD"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=ad8cb685eb324d2fa2530b985a43f3e5"
|
||||
|
||||
SRC_URI = "git://github.com/Linaro/OpenCSD;protocol=https;branch=master"
|
||||
SRC_URI = "git://github.com/Linaro/OpenCSD;protocol=https;branch=master \
|
||||
file://0001-build-Fix-build-race-issue-32-reported-on-github.patch"
|
||||
|
||||
SRCREV = "957d18219d162f52ebe2426f32a4263ec10f357d"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
Reference in New Issue
Block a user