mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-23 06:07:06 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b75b8ce1ac | |||
| b1fe8443a7 | |||
| d13be36099 | |||
| a07dec8ad8 | |||
| 58dbad789d | |||
| 79b9225e24 | |||
| 655124426a |
+15
-2
@@ -1,6 +1,13 @@
|
|||||||
image: ghcr.io/siemens/kas/kas:latest-release
|
image: ghcr.io/siemens/kas/kas:3.2
|
||||||
|
|
||||||
|
variables:
|
||||||
|
CPU_REQUEST: ""
|
||||||
|
DEFAULT_TAG: ""
|
||||||
|
# These are needed as the k8s executor doesn't respect the container entrypoint
|
||||||
|
# by default
|
||||||
|
FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: 0
|
||||||
|
FF_KUBERNETES_HONOR_ENTRYPOINT: 1
|
||||||
|
|
||||||
# First do a common bootstrap, and then build all the targets
|
|
||||||
stages:
|
stages:
|
||||||
- prep
|
- prep
|
||||||
- bootstrap
|
- bootstrap
|
||||||
@@ -8,6 +15,8 @@ stages:
|
|||||||
|
|
||||||
# Common job fragment to get a worker ready
|
# Common job fragment to get a worker ready
|
||||||
.setup:
|
.setup:
|
||||||
|
tags:
|
||||||
|
- $DEFAULT_TAG
|
||||||
stage: build
|
stage: build
|
||||||
variables:
|
variables:
|
||||||
KAS_WORK_DIR: $CI_PROJECT_DIR/work
|
KAS_WORK_DIR: $CI_PROJECT_DIR/work
|
||||||
@@ -26,6 +35,8 @@ stages:
|
|||||||
# Generalised fragment to do a Kas build
|
# Generalised fragment to do a Kas build
|
||||||
.build:
|
.build:
|
||||||
extends: .setup
|
extends: .setup
|
||||||
|
variables:
|
||||||
|
KUBERNETES_CPU_REQUEST: $CPU_REQUEST
|
||||||
interruptible: true
|
interruptible: true
|
||||||
script:
|
script:
|
||||||
- KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME)
|
- KASFILES=$(./ci/jobs-to-kas $CI_JOB_NAME)
|
||||||
@@ -56,6 +67,8 @@ n1sdp/bootstrap:
|
|||||||
# What percentage of machines in the layer do we build
|
# What percentage of machines in the layer do we build
|
||||||
machine-coverage:
|
machine-coverage:
|
||||||
stage: bootstrap
|
stage: bootstrap
|
||||||
|
tags:
|
||||||
|
- $DEFAULT_TAG
|
||||||
script:
|
script:
|
||||||
- ./ci/check-machine-coverage
|
- ./ci/check-machine-coverage
|
||||||
coverage: '/Coverage: \d+/'
|
coverage: '/Coverage: \d+/'
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
# N1SDP specific SCP configurations and build instructions
|
# N1SDP specific SCP configurations and build instructions
|
||||||
|
|
||||||
SRCREV_scp = "fd7c83561a7d76c7681d5d017fb23aa3664c028c"
|
|
||||||
SRCREV_cmsis = "refs/tags/5.2.0"
|
|
||||||
SCP_PLATFORM = "n1sdp"
|
SCP_PLATFORM = "n1sdp"
|
||||||
SCP_LOG_LEVEL = "INFO"
|
SCP_LOG_LEVEL = "INFO"
|
||||||
|
|
||||||
COMPATIBLE_MACHINE_n1sdp = "n1sdp"
|
COMPATIBLE_MACHINE_n1sdp = "n1sdp"
|
||||||
|
|
||||||
PV = "2.6+git${SRCPV}"
|
|
||||||
|
|
||||||
DEPENDS += "fiptool-native"
|
DEPENDS += "fiptool-native"
|
||||||
DEPENDS += "virtual/trusted-firmware-a"
|
DEPENDS += "virtual/trusted-firmware-a"
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,6 @@
|
|||||||
# TC0 specicif SCP configuration
|
# TC0 specicif SCP configuration
|
||||||
|
|
||||||
# Intermediate SHA with 2.6 baseline version
|
|
||||||
SRCREV_scp = "ba1db5fb0ee4a520836722f7a694177d461ab716"
|
|
||||||
# 5.2.0 tag commit
|
|
||||||
SRCREV_cmsis = "80cc44bba16cb4c8f495b7aa9709d41ac50e9529"
|
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "tc0"
|
COMPATIBLE_MACHINE = "tc0"
|
||||||
|
|
||||||
SCP_PLATFORM = "tc0"
|
SCP_PLATFORM = "tc0"
|
||||||
FW_TARGETS = "scp"
|
FW_TARGETS = "scp"
|
||||||
|
|
||||||
PV = "2.6+git${SRCPV}"
|
|
||||||
|
|||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
Upstream-Status: Backport
|
||||||
|
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||||
|
|
||||||
|
From 8aba6e5159273e2ed82d55780f35356262cb79c8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ross Burton <ross.burton@arm.com>
|
||||||
|
Date: Tue, 8 Sep 2020 11:49:08 +0100
|
||||||
|
Subject: [PATCH] tools/gen_module_code: atomically rewrite the generated files
|
||||||
|
|
||||||
|
The gen_module rule in rules.mk is marked as .PHONY, so make will
|
||||||
|
execute it whenever it is mentioned. This results in gen_module_code
|
||||||
|
being executed 64 times for a Juno build.
|
||||||
|
|
||||||
|
However in heavily parallel builds there's a good chance that
|
||||||
|
gen_module_code is writing a file whilst the compiler is reading it
|
||||||
|
because make also doesn't know what files are generated by
|
||||||
|
gen_module_code.
|
||||||
|
|
||||||
|
The correct fix is to adjust the Makefiles so that the dependencies are
|
||||||
|
correct but this isn't trivial, so band-aid the problem by atomically
|
||||||
|
writing the generated files.
|
||||||
|
|
||||||
|
Change-Id: I82d44f9ea6537a91002e1f80de8861d208571630
|
||||||
|
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||||
|
---
|
||||||
|
tools/gen_module_code.py | 19 ++++++++++++++-----
|
||||||
|
1 file changed, 14 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/gen_module_code.py b/tools/gen_module_code.py
|
||||||
|
index 7b3953845..ee099b713 100755
|
||||||
|
--- a/tools/gen_module_code.py
|
||||||
|
+++ b/tools/gen_module_code.py
|
||||||
|
@@ -17,6 +17,7 @@
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
+import tempfile
|
||||||
|
|
||||||
|
DEFAULT_PATH = 'build/'
|
||||||
|
|
||||||
|
@@ -53,13 +54,21 @@ TEMPLATE_C = "/* This file was auto generated using {} */\n" \
|
||||||
|
|
||||||
|
def generate_file(path, filename, content):
|
||||||
|
full_filename = os.path.join(path, filename)
|
||||||
|
- with open(full_filename, 'a+') as f:
|
||||||
|
- f.seek(0)
|
||||||
|
- if f.read() != content:
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ with open(full_filename) as f:
|
||||||
|
+ rewrite = f.read() != content
|
||||||
|
+ except FileNotFoundError:
|
||||||
|
+ rewrite = True
|
||||||
|
+
|
||||||
|
+ if rewrite:
|
||||||
|
+ with tempfile.NamedTemporaryFile(prefix="gen-module-code",
|
||||||
|
+ dir=path,
|
||||||
|
+ delete=False,
|
||||||
|
+ mode="wt") as f:
|
||||||
|
print("[GEN] {}...".format(full_filename))
|
||||||
|
- f.seek(0)
|
||||||
|
- f.truncate()
|
||||||
|
f.write(content)
|
||||||
|
+ os.replace(f.name, full_filename)
|
||||||
|
|
||||||
|
|
||||||
|
def generate_header(path, modules):
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
@@ -11,10 +11,12 @@ LIC_FILES_CHKSUM += "file://cmsis/LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c2
|
|||||||
SRC_URI = "\
|
SRC_URI = "\
|
||||||
git://github.com/ARM-software/SCP-firmware.git;protocol=https;name=scp;destsuffix=src;nobranch=1 \
|
git://github.com/ARM-software/SCP-firmware.git;protocol=https;name=scp;destsuffix=src;nobranch=1 \
|
||||||
git://github.com/ARM-software/CMSIS_5.git;protocol=https;name=cmsis;destsuffix=src/cmsis;lfs=0;nobranch=1 \
|
git://github.com/ARM-software/CMSIS_5.git;protocol=https;name=cmsis;destsuffix=src/cmsis;lfs=0;nobranch=1 \
|
||||||
|
file://0001-tools-gen_module_code-atomically-rewrite-the-generat.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
PV = "2.6+git${SRCPV}"
|
||||||
SRCREV_scp = "fd7c83561a7d76c7681d5d017fb23aa3664c028c"
|
SRCREV_scp = "fd7c83561a7d76c7681d5d017fb23aa3664c028c"
|
||||||
SRCREV_cmsis = "refs/tags/5.2.0"
|
SRCREV_cmsis = "80cc44bba16cb4c8f495b7aa9709d41ac50e9529"
|
||||||
SRCREV_FORMAT = "scp_cmsis"
|
SRCREV_FORMAT = "scp_cmsis"
|
||||||
|
|
||||||
require scp-firmware.inc
|
require scp-firmware.inc
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ COMPATIBLE_MACHINE ?= "invalid"
|
|||||||
ARCH = "arm64"
|
ARCH = "arm64"
|
||||||
|
|
||||||
SRC_URI = " \
|
SRC_URI = " \
|
||||||
git://android.googlesource.com/kernel/common.git;protocol=https;branch=android-4.19-q-release \
|
git://android.googlesource.com/kernel/common.git;protocol=https;branch=deprecated/android-4.19-q-release \
|
||||||
"
|
"
|
||||||
|
|
||||||
# ASB-2020-06-05_4.19-q-release tag commit
|
# ASB-2020-06-05_4.19-q-release tag commit
|
||||||
|
|||||||
Reference in New Issue
Block a user