From 1478f16d32c2418bf67591c04eab787c2d8f4310 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Tue, 16 May 2023 13:55:05 +0000 Subject: [PATCH 01/10] ci: Move FVP image dependency The FVP image container is not needed for the Lava-Test-Prep-* jobs but is needed before any of the fvp based tests can be actually triggered. Signed-off-by: Drew Reed --- .gitlab/ci/templates/image_build.yml.j2 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitlab/ci/templates/image_build.yml.j2 b/.gitlab/ci/templates/image_build.yml.j2 index f109d66..7b36cdf 100644 --- a/.gitlab/ci/templates/image_build.yml.j2 +++ b/.gitlab/ci/templates/image_build.yml.j2 @@ -99,9 +99,6 @@ Lava-Test-Prep-{{ CI_JOB_NAME_SLUG }}: extends: .test-preparation needs: - Image-Build-{{ CI_JOB_NAME_SLUG }} -{% if MACHINE == 'corstone1000-fvp' %} - - Build-FVP-Docker-Image -{% endif %} variables: MACHINE: "{{ MACHINE }}" @@ -113,6 +110,9 @@ PTest-{{ CI_JOB_NAME_SLUG }}: extends: .ptest-tests needs: - Lava-Test-Prep-{{ CI_JOB_NAME_SLUG }} +{% if MACHINE == 'corstone1000-fvp' %} + - Build-FVP-Docker-Image +{% endif %} variables: MACHINE: "{{ MACHINE }}" @@ -130,6 +130,9 @@ Sanity-Test-{{ CI_JOB_NAME_SLUG }}: extends: .sanity-test needs: - Lava-Test-Prep-{{ CI_JOB_NAME_SLUG }} +{% if MACHINE == 'corstone1000-fvp' %} + - Build-FVP-Docker-Image +{% endif %} variables: MACHINE: "{{ MACHINE }}" @@ -148,6 +151,9 @@ ACS-SCT{{ i + 1 }}-Test-{{ CI_JOB_NAME_SLUG }}: extends: .acs-test needs: - Lava-Test-Prep-{{ CI_JOB_NAME_SLUG }} +{% if MACHINE == 'corstone1000-fvp' %} + - Build-FVP-Docker-Image +{% endif %} variables: MACHINE: "{{ MACHINE }}" SEQUENCE_FILE: "EBBR{{ i + 1 }}" -- GitLab From e927485e3116872cc2c76c834a3d6f9730fcb3dc Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Tue, 16 May 2023 14:44:24 +0000 Subject: [PATCH 02/10] ci: Make network script executable Ensure the network initialization script in the Corstone-1000 FVP test container is executable. Signed-off-by: Drew Reed --- .gitlab/Dockerfiles/cs1k-fvp-test-image/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab/Dockerfiles/cs1k-fvp-test-image/Dockerfile b/.gitlab/Dockerfiles/cs1k-fvp-test-image/Dockerfile index 3e25264..0e1247b 100644 --- a/.gitlab/Dockerfiles/cs1k-fvp-test-image/Dockerfile +++ b/.gitlab/Dockerfiles/cs1k-fvp-test-image/Dockerfile @@ -39,7 +39,8 @@ RUN mkdir /opt/model # Setup networking COPY network /etc/libvirt/hooks/ COPY entrypoint.sh / -RUN chmod 755 /entrypoint.sh +RUN chmod 755 /entrypoint.sh \ + && chmod 755 /etc/libvirt/hooks/network ENTRYPOINT ["/entrypoint.sh"] # Add FVP and Testing Binaries -- GitLab From 2ce51c096dfa3e7acb4de85d149b724a80504d51 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Thu, 1 Jun 2023 11:46:58 +0000 Subject: [PATCH 03/10] ci: No longer use LavaPrepTool As the LavaPrepTool is common between branches and stored in another repo it is better for us to not use it since we only use the minor image creation option. Signed-off-by: Drew Reed --- .gitlab/ci/lava-test.yml | 78 +++++++++++++------------ .gitlab/ci/templates/image_build.yml.j2 | 25 ++++---- 2 files changed, 56 insertions(+), 47 deletions(-) diff --git a/.gitlab/ci/lava-test.yml b/.gitlab/ci/lava-test.yml index 1b7f31b..d5e6d3d 100644 --- a/.gitlab/ci/lava-test.yml +++ b/.gitlab/ci/lava-test.yml @@ -20,13 +20,13 @@ case "${MACHINE}" in 'n1sdp') echo "Building SD Card image for N1SDP" - fwfile=cassini-firmware.zip + fwfile=firmware.zip # Update the PMIC_FORCE parameter in the config.txt file in the # firmware package to TRUE. # Setting it to FALSE will require user input so the boot process # halts. fwtar=${FW_IMAGE}-board-firmware_primary.tar.gz - tar -zxvf ../work/build/tmp/deploy/images/${MACHINE}/${fwtar} + tar -zxvf ${CI_PROJECT_DIR}/${ARTIFACT_DIR}/${fwtar} config="PMIC_FORCE:" current_value=" FALSE" new_value=" TRUE" @@ -39,32 +39,44 @@ current_value=" 0" new_value=" 1" sed -i "s/$config$current_value/$config$new_value/" config.txt - zip -r ../${fwfile} * + zip -r ${CI_PROJECT_DIR}/${fwfile} * echo "FIRMWARE_ARTIFACT_URL=${joburl}/artifacts/${fwfile}" \ >> ${datafile} ;; 'corstone1000-mps3') - echo "Building FPGA image set for Corstone-1000 MPS3 board" - fwfile=cassini-firmware.zip - mkdir -p ~/.ssh - eval "$(ssh-agent -s)" - if [ -n "${SSH_PRIVATE_GERRIT}+x" ]; then - echo "${SSH_PRIVATE_GERRIT}" | tr -d '\r' | ssh-add - > /dev/null; - fi - ssh-keyscan -t rsa ${CI_SERVER_HOST} >> ~/.ssh/known_hosts - git config --global url.ssh://git@${CI_SERVER_HOST}.insteadOf \ - https://${CI_SERVER_HOST} - git clone https://${CI_SERVER_HOST}/${CORSTONE1000_CI_PATH} + echo "Building images for Corstone-1000 for MPS3" + fwfile=firmware.zip + git clone --branch corstone1k \ + https://${OSS_GERRIT_SERVER}/iot-sw/corstone1k/fpga_bitfiles export \ - BUILD_DIR=$(pwd)/../work/build/tmp/deploy/images/corstone1000-mps3 - # The `LavaPrepTool.py` requires specfic file name to prep for lava - cp ${BUILD_DIR}/${FW_IMAGE}-${MACHINE}.wic \ - ${BUILD_DIR}/corstone1000-flash-firmware-image-${MACHINE}.wic.nopt - python3 corstone1000-ci/LavaPrepTool.py create_mps3 --config \ - corstone1000-ci/configs/cassini_create_mps3.yml - # LavaPrepTool creates this under cassini-firmware/, but Gitlab is - # looking in the parent directory. So we move it. - mv ${fwfile} ../ + BUILD_DIR=${CI_PROJECT_DIR}/${ARTIFACT_DIR} + export WIC_NAME="${FW_IMAGE}-${MACHINE}.wic" + # Create restore image directory structure + mkdir --parents cs1k-restore/SOFTWARE cs1k-restore/MB + # Copy required files to correct place + cp ${BUILD_DIR}/${WIC_NAME} \ + cs1k-restore/SOFTWARE/cs1000.bin + cp ${BUILD_DIR}/${BL1_IMAGE} \ + cs1k-restore/SOFTWARE/bl1.bin + cp ${BUILD_DIR}/${EXTSYS_IMAGE} \ + cs1k-restore/SOFTWARE/es0.bin + cp -r fpga_bitfiles/Boardfiles/MB/* \ + cs1k-restore/MB/ + cp fpga_bitfiles/Boardfiles/config.txt \ + cs1k-restore/config.txt + # Generate new configs + find cs1k-restore/MB -type f -name 'images.txt' | xargs \ + sed -i -e "s/^TOTALIMAGES:.*/TOTALIMAGES: 3/g" \ + -e "s/^IMAGE2.*//g" \ + -e "s/^IMAGE0FILE:.*/IMAGE0FILE: \\\\SOFTWARE\\\\bl1.bin/g" \ + -e "s/^IMAGE1FILE:.*/IMAGE1FILE: \\\\SOFTWARE\\\\es0.bin/g" \ + -e "s/^IMAGE3\(.*\)/IMAGE2\1/g" \ + -e "s/^IMAGE2FILE:.*/IMAGE2FILE: \\\\SOFTWARE\\\\cs1000.bin/g" + find cs1k-restore/MB -type f -name 'images.txt' | xargs cat + # Now zip the new fpga bitfile Set + pushd cs1k-restore + zip -r ${CI_PROJECT_DIR}/${fwfile} * + popd # cs1k-restore echo "FIRMWARE_ARTIFACT_URL=${joburl}/artifacts/${fwfile}" \ >> ${datafile} ;; @@ -82,7 +94,7 @@ artifacts: paths: - "build_data.env" - - "cassini-firmware.zip" + - "firmware.zip" - "**/*.fvpconf" reports: dotenv: build_data.env @@ -91,18 +103,12 @@ .submit-cassini-lava-job: extends: .submit-lava-job variables: - FIRMWARE_ARTIFACT: ${FIRMWARE_ARTIFACT_URL}? - private_token=${CASSINI_CI_LAYERS_TOKEN} - BMAP_ARTIFACT: ${BMAP_ARTIFACT_URL}? - private_token=${CASSINI_CI_LAYERS_TOKEN} - IMAGE_ARTIFACT: ${IMAGE_ARTIFACT_URL}? - private_token=${CASSINI_CI_LAYERS_TOKEN} - UTIL_ARTIFACT: ${UTIL_IMAGE_ARTIFACT_URL}? - private_token=${CASSINI_CI_LAYERS_TOKEN} - BL1_ARTIFACT: ${BL1_IMAGE_ARTIFACT_URL}? - private_token=${CASSINI_CI_LAYERS_TOKEN} - EXTSYS_ARTIFACT: ${EXTSYS_IMAGE_ARTIFACT_URL}? - private_token=${CASSINI_CI_LAYERS_TOKEN} + FIRMWARE_ARTIFACT: ${FIRMWARE_ARTIFACT_URL} + BMAP_ARTIFACT: ${BMAP_ARTIFACT_URL} + IMAGE_ARTIFACT: ${IMAGE_ARTIFACT_URL} + UTIL_ARTIFACT: ${UTIL_IMAGE_ARTIFACT_URL} + BL1_ARTIFACT: ${BL1_IMAGE_ARTIFACT_URL} + EXTSYS_ARTIFACT: ${EXTSYS_IMAGE_ARTIFACT_URL} LAVA_JOB_TEMPLATE: .gitlab/lava/$MACHINE/$LAVA_JOB.j2 script: # Fill in job template with image locations diff --git a/.gitlab/ci/templates/image_build.yml.j2 b/.gitlab/ci/templates/image_build.yml.j2 index 7b36cdf..c280315 100644 --- a/.gitlab/ci/templates/image_build.yml.j2 +++ b/.gitlab/ci/templates/image_build.yml.j2 @@ -16,26 +16,29 @@ Image-Build-{{ CI_JOB_NAME_SLUG }}: # Store build output data for test stages - pushd ${KAS_WORK_DIR}/build/tmp/deploy/images/{{ MACHINE }} - export IMAGE=$(ls -- *-{{ MACHINE }}.wic.bmap | sed "s/-{{ MACHINE }}\.wic\.bmap//") + - echo "IMAGE=${IMAGE}" > ${CI_PROJECT_DIR}/build_data.env + - echo "IMAGE = ${IMAGE}" - export ARTIFACT_DIR="$(realpath --relative-to=${CI_PROJECT_DIR} ${KAS_WORK_DIR})/build/tmp/deploy/images/{{ MACHINE }}" - - echo "ARTIFACT_DIR=${ARTIFACT_DIR}" > ${CI_PROJECT_DIR}/build_data.env + - echo "ARTIFACT_DIR=${ARTIFACT_DIR}" >> ${CI_PROJECT_DIR}/build_data.env - echo "ARTIFACT_DIR = ${ARTIFACT_DIR}" - - echo "BMAP_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${ARTIFACT_DIR}/$(readlink ${IMAGE}-{{ MACHINE }}.wic.bmap)" >> ${CI_PROJECT_DIR}/build_data.env - echo "IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${ARTIFACT_DIR}/$(readlink ${IMAGE}-{{ MACHINE }}.wic.gz)" >> ${CI_PROJECT_DIR}/build_data.env - - echo "IMAGE=${IMAGE}" >> ${CI_PROJECT_DIR}/build_data.env - - echo "ARTIFACT_DIR=${ARTIFACT_DIR}" >> ${CI_PROJECT_DIR}/build_data.env + - echo "BMAP_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${ARTIFACT_DIR}/$(readlink ${IMAGE}-{{ MACHINE }}.wic.bmap)" >> ${CI_PROJECT_DIR}/build_data.env {% if MACHINE == 'n1sdp' %} - export FW_IMAGE=$(ls -- *-board-firmware_primary.tar.gz | sed "s/-board-firmware_primary\.tar\.gz//") - echo "FW_IMAGE=${FW_IMAGE}" >> ${CI_PROJECT_DIR}/build_data.env {% elif MACHINE.startswith('corstone1000') %} - - echo "BL1_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/work/build/tmp/deploy/images/{{ MACHINE }}/bl1.bin" >> ${CI_PROJECT_DIR}/build_data.env + - echo "BL1_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${ARTIFACT_DIR}/bl1.bin" >> ${CI_PROJECT_DIR}/build_data.env - echo "BL1_IMAGE=bl1.bin" >> ${CI_PROJECT_DIR}/build_data.env - - export UTIL_IMAGE=$(ls -- *-{{ MACHINE }}.tar.bz2 | sed "s/-{{ MACHINE }}\.tar\.bz2//") - - echo "UTIL_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/work/build/tmp/deploy/images/{{ MACHINE }}/$(readlink ${UTIL_IMAGE}-{{ MACHINE }}.tar.bz2)" >> ${CI_PROJECT_DIR}/build_data.env - - echo "UTIL_IMAGE=${UTIL_IMAGE}" >> ${CI_PROJECT_DIR}/build_data.env + - | + export UTIL_IMAGE=$(ls -- *-{{ MACHINE }}.tar.bz2 | sed "s/-{{ MACHINE }}\.tar\.bz2//") + if [ -e ${UTIL_IMAGE}-{{ MACHINE }}.tar.bz2 ]; then + echo "UTIL_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${ARTIFACT_DIR}/$(readlink ${UTIL_IMAGE}-{{ MACHINE }}.tar.bz2)" >> ${CI_PROJECT_DIR}/build_data.env + echo "UTIL_IMAGE=${UTIL_IMAGE}" >> ${CI_PROJECT_DIR}/build_data.env + fi - export FW_IMAGE=$(ls -- corstone1000-image-{{ MACHINE }}.wic | sed "s/-{{ MACHINE }}\.wic//") - - echo "FW_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/work/build/tmp/deploy/images/{{ MACHINE }}/$(readlink ${FW_IMAGE}-{{ MACHINE }}.wic)" >> ${CI_PROJECT_DIR}/build_data.env - echo "FW_IMAGE=${FW_IMAGE}" >> ${CI_PROJECT_DIR}/build_data.env - - echo "EXTSYS_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/work/build/tmp/deploy/images/{{ MACHINE }}/es_flashfw.bin" >> ${CI_PROJECT_DIR}/build_data.env + - echo "FW_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${ARTIFACT_DIR}/$(readlink ${FW_IMAGE}-{{ MACHINE }}.wic)" >> ${CI_PROJECT_DIR}/build_data.env + - echo "EXTSYS_IMAGE_ARTIFACT_URL=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${ARTIFACT_DIR}/es_flashfw.bin" >> ${CI_PROJECT_DIR}/build_data.env - echo "EXTSYS_IMAGE=es_flashfw.bin" >> ${CI_PROJECT_DIR}/build_data.env {% if MACHINE == 'corstone1000-fvp' %} - export FVP_CONFIG=$(ls -- *-{{ MACHINE }}.fvpconf | sed "s/-{{ MACHINE }}\.fvpconf//") @@ -50,8 +53,8 @@ Image-Build-{{ CI_JOB_NAME_SLUG }}: flock --timeout 120 200 rm -rf ${IMAGE_DIR}/{{ CI_JOB_NAME_SLUG }} mkdir --parents ${IMAGE_DIR}/{{ CI_JOB_NAME_SLUG }} - cp $(readlink ${IMAGE}-{{ MACHINE }}.wic.bmap) ${IMAGE_DIR}/{{ CI_JOB_NAME_SLUG }}/${IMAGE}-{{ MACHINE }}.wic.bmap cp $(readlink ${IMAGE}-{{ MACHINE }}.wic.gz) ${IMAGE_DIR}/{{ CI_JOB_NAME_SLUG }}/${IMAGE}-{{ MACHINE }}.wic.gz + cp $(readlink ${IMAGE}-{{ MACHINE }}.wic.bmap) ${IMAGE_DIR}/{{ CI_JOB_NAME_SLUG }}/${IMAGE}-{{ MACHINE }}.wic.bmap {% if MACHINE == 'n1sdp' %} cp ${FW_IMAGE}-board-firmware_primary.tar.gz ${IMAGE_DIR}/{{ CI_JOB_NAME_SLUG }}/${FW_IMAGE}-board-firmware_primary.tar.gz {% elif MACHINE.startswith('corstone1000') %} -- GitLab From 59f56e80e71343286422e8b6760e5eae5ed2b26b Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Thu, 1 Jun 2023 11:47:58 +0000 Subject: [PATCH 04/10] ci: Update Corstone-1000 MPS3 kernel loading The current release of the Corstone-1000 MPS3 platform uses 0xf00000 as the size of the kernel image that needs loading so we should adopt this new value to ensure the kernel is not truncated. Signed-off-by: Drew Reed --- .gitlab/lava/corstone1000-mps3/sanity_job.yml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/lava/corstone1000-mps3/sanity_job.yml.j2 b/.gitlab/lava/corstone1000-mps3/sanity_job.yml.j2 index 272cf1d..643ecd5 100644 --- a/.gitlab/lava/corstone1000-mps3/sanity_job.yml.j2 +++ b/.gitlab/lava/corstone1000-mps3/sanity_job.yml.j2 @@ -66,7 +66,7 @@ actions: - run retrieve_kernel_load_addr - echo Loading kernel from $kernel_addr to memory ... - unzip $kernel_addr 0x90000000 - - loadm 0x90000000 $kernel_addr_r 0xd00000 + - loadm 0x90000000 $kernel_addr_r 0xf00000 - bootefi $kernel_addr_r $fdtcontroladdr auto_login: login_prompt: 'CASSINI unstable corstone1000-mps3' -- GitLab From 54c6d0a2988fa465c05cfec1f1f0b0a89d919d61 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Wed, 17 May 2023 11:54:30 +0000 Subject: [PATCH 05/10] config: Switch to mickledore for all repo's Signed-off-by: Drew Reed --- meta-cassini-config/kas/include/cassini-base.yml | 1 - meta-cassini-config/kas/include/cassini-release.yml | 4 +--- meta-cassini-config/kas/include/dev.yml | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/meta-cassini-config/kas/include/cassini-base.yml b/meta-cassini-config/kas/include/cassini-base.yml index c366eda..789300a 100644 --- a/meta-cassini-config/kas/include/cassini-base.yml +++ b/meta-cassini-config/kas/include/cassini-base.yml @@ -36,7 +36,6 @@ repos: meta-security: url: https://git.yoctoproject.org/git/meta-security path: layers/meta-security - refspec: master layers: meta-parsec: diff --git a/meta-cassini-config/kas/include/cassini-release.yml b/meta-cassini-config/kas/include/cassini-release.yml index d954930..d8fc49b 100644 --- a/meta-cassini-config/kas/include/cassini-release.yml +++ b/meta-cassini-config/kas/include/cassini-release.yml @@ -12,19 +12,17 @@ header: defaults: repos: - refspec: master + refspec: mickledore repos: meta-arm: meta-openembedded: - refspec: mickledore meta-virtualization: poky: - refspec: mickledore env: CASSINI_VERSION: "0.0.1" diff --git a/meta-cassini-config/kas/include/dev.yml b/meta-cassini-config/kas/include/dev.yml index 39a8047..bf4f0a9 100644 --- a/meta-cassini-config/kas/include/dev.yml +++ b/meta-cassini-config/kas/include/dev.yml @@ -8,13 +8,13 @@ header: repos: meta-arm: - refspec: master + refspec: mickledore meta-openembedded: refspec: mickledore meta-virtualization: - refspec: master + refspec: mickledore poky: refspec: mickledore -- GitLab From 8135bc7c4af753d24cef81293d5b5c7014971781 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Wed, 31 May 2023 09:46:50 +0000 Subject: [PATCH 06/10] bsp: Fix Corstone-1000 build configuration The Corstone-1000 images should not build the firmware components in the cassini image context as that uses glibc. This change suppresses building the firmware components in the cassini context but also ensures all the firmware components are deployed from the firmware build context Changelog: bug Signed-off-by: Drew Reed --- .../recipes-core/images/cassini-image-base.bbappend | 8 +++++++- .../recipes-core/images/corstone1000-deploy-image.bb | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/cassini-image-base.bbappend b/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/cassini-image-base.bbappend index 7d9485d..3fa433a 100644 --- a/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/cassini-image-base.bbappend +++ b/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/cassini-image-base.bbappend @@ -11,7 +11,13 @@ CONVERSIONTYPES += "pad" CONVERSION_CMD:pad = "cp ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.pad && dd if=/dev/zero count=1024 bs=512 >> ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.pad" -IMAGE_FSTYPES:append:corstone1000-fvp = " wic.pad.gz" +IMAGE_FSTYPES:append:corstone1000-fvp = " wic.pad wic.pad.gz" + +# We do not want to build these machine added extra's in the main cassini image context as +# they should only be built in firmware context +# This list needs to be kept in sync with the list added in +# layers/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc +EXTRA_IMAGEDEPENDS:remove:corstone1000 = "trusted-firmware-a virtual/trusted-firmware-m u-boot optee-os external-system" # Ensure cassini-image-* also builds the firmware for corstone1000 using a different libc do_image_complete[depends] = "${@bb.utils.contains_any('MACHINE','corstone1000-mps3 corstone1000-fvp', \ diff --git a/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/corstone1000-deploy-image.bb b/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/corstone1000-deploy-image.bb index 6617e11..b332fa7 100644 --- a/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/corstone1000-deploy-image.bb +++ b/meta-cassini-bsp/meta-arm/meta-arm-bsp/recipes-core/images/corstone1000-deploy-image.bb @@ -14,6 +14,8 @@ do_compile[noexec] = "1" do_install[noexec] = "1" FIRMWARE_BINARIES = "corstone1000-image-${MACHINE}.wic \ + bl1.bin \ + es_flashfw.bin \ ${@bb.utils.contains('DISTRO_FEATURES','cassini-test', \ 'corstone1000-utils-overlay-image-${MACHINE}.tar.bz2', '', d)} \ " -- GitLab From dae360bfb026b2083339435a9f23ed16042fca89 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Fri, 2 Jun 2023 10:59:10 +0000 Subject: [PATCH 07/10] ci: Configure DangerBot to use dictionary By default the DangerBot uses a project dictionary called .dictionary in addition to the language defaults, this project dictionary is however in a different path so we need to inform DangerBot where the dictionary file is before running the rules. Signed-off-by: Drew Reed --- Dangerfile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Dangerfile b/Dangerfile index f4e27ca..fa821df 100644 --- a/Dangerfile +++ b/Dangerfile @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Arm Limited or its affiliates. All rights reserved. +# Copyright (c) 2022-2023 Arm Limited or its affiliates. All rights reserved. # # SPDX-License-Identifier: MIT @@ -7,7 +7,13 @@ require 'embed-a-dangerfiles' # Uncomment the following line to get debug output # @verbose = true -Embed_A::Dangerfiles.for_project(self, &:import_defaults) +Embed_A::Dangerfiles.for_project(self) do |dangerfiles| + # Import all plugins from the gem + dangerfiles.import_plugins + helper.config.dict_path = "meta-cassini-config/qa-checks/cassini-dictionary" + # Import all rules from the gem + dangerfiles.import_dangerfiles +end # Warn if the MR changes the Dangerfile if git.modified_files.include? "Dangerfile" -- GitLab From 5947f013741a9fdfdfe0b9c9f8af377892bfb514 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Fri, 2 Jun 2023 11:00:03 +0000 Subject: [PATCH 08/10] ci: Update project dictionary Removed duplicate entry and correctly ordered the file. Added missing words used in the project. Signed-off-by: Drew Reed --- .../qa-checks/cassini-dictionary | 73 ++++++++++--------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/meta-cassini-config/qa-checks/cassini-dictionary b/meta-cassini-config/qa-checks/cassini-dictionary index 2fc20dc..3e40c82 100644 --- a/meta-cassini-config/qa-checks/cassini-dictionary +++ b/meta-cassini-config/qa-checks/cassini-dictionary @@ -6,12 +6,6 @@ 4.16+stable0+f265444922 4gb 512kb -CASSINI -CHANGELOG.md -FF-A -Signed-off-by -TF-A -a-useful-template-for-commit-messages aarch64 aem api @@ -23,30 +17,31 @@ arm-machines.yml armv8-a armv8a-crc attestation +a-useful-template-for-commit-messages aws b baremetal +baremetal_architecture.png baremetal-sdk.yml baremetal.yml -baremetal_architecture.png bblayers.conf binaries bitbake bootloader bsp bsps -build-time build_system +build-time c cassini -cassini's -cassini-config cassini_admin_group.in cassini_architecture.png +cassini-config cassini_layers_deps.png cassini_rel_dev_branches.png cassini_rel_yocto_overview.png cassini_rootfs_extra_space +cassini's cbea.ms ce_test_clean_env ce_test_guest_vm_name @@ -55,6 +50,7 @@ ce_test_log_dir cgit cgit.cgi changelog +CHANGELOG.md cmd codeinthehole.com codeline @@ -74,40 +70,42 @@ containers_kernelcfg_check.bbclass contributing_documentation_build_validation corstone-1000 corstone1000 +corstone1000fvp corstone1000-image-corstone1000-mps3.wic.nopt corstone1000-mps3 corstone1000-mps3.yml -corstone1000fvp cortex-a cortex-a35 customizable customization customizations cve +DangerBot dangerfile datetime dbg dependencies deprecated deprecation -developer-facing developer.example.org +developer-facing developer_manual devicetree diego.sueiro distributions distro_features -do_fetch docker's docs.lavasoftware.org +do_fetch dom0 domu download-fpga-images -e.g efi +e.g endpoint extensible f +FF-A filenames filesystem filesystems @@ -123,22 +121,23 @@ fvp_base_revc-2xaemva_11.14_21.tgz gb gbytes generic-arm64 -git-scm.com -git-tools-rewriting-history gitaly github gitlab -gitlab-ci.yml gitlab.arm.com +gitlab-ci.yml +git-scm.com +git-tools-rewriting-history +glibc go-fsnotify greengrass -h.twlc0ztnng3b hardknott high_level_overview.png hostname html http https +h.twlc0ztnng3b hypervisor image_features image_rootfs_extra_space @@ -150,27 +149,27 @@ initializes introduction_use_cases_overview j k3s +k3s_git.bb k3s-integration-tests.bb +k3s_kernelcfg_check.bbclass k3s-killall.sh k3s.service -k3s_git.bb -k3s_kernelcfg_check.bbclass k3s_test_clean_env k3s_test_guest_vm_name k3s_test_log_dir kb kernel_features kirkstone -kube-system kubectl kubernetes kube-system langdale +LavaPrepTool layer_dependency_overview_label libpcre libpcre2 -license.rst licensees +license.rst linter linux linux-based @@ -191,6 +190,7 @@ meta-arm-bsp meta-cassini-config meta-openembedded meta-virtualization +mickledore minicom modifiable modifier @@ -243,6 +243,9 @@ refactored refactoring refspec remediation +repo +repo's +repository repository's requirements.txt restructuredtext @@ -253,10 +256,11 @@ rootfs rootfs_extra_space rpm rst -run-time runc-opencontainers +run-time runtime runtime-integration-tests +runtime-integration-tests-logs sc2086 sc2288 schedulable @@ -265,20 +269,21 @@ sdk sdl seccomp second-vm-parameters.yml -security.scc security_hardening +security.scc shellcheck shellcheck-py shortlog +Signed-off-by sign-off soafee soafee.io sourceforge spdx -spdx-license-identifier -spdx-specification-21-web-version spdx.dev +spdx-license-identifier spdx.org +spdx-specification-21-web-version sphinx-build squash_and_merge.html ssh @@ -287,10 +292,10 @@ standalone standards-based stderr stdout -sub-sections -sub_test_name sublicense submitting-patches.html +sub-sections +sub_test_name sudo sudoers sueiro @@ -298,6 +303,7 @@ systemctl systemd systemready tests.yml +TF-A titlesonly tmp toctree @@ -312,9 +318,9 @@ upstreamed upto urls use-cases +user_accounts user-accounts-integration-tests.bb user-facing -user_accounts user_guide user_guide_reproduce_environment_setup user_manual @@ -328,14 +334,13 @@ virt_test_clean_env virt_test_guest_vm_name virt_test_log_dir virtualization +virtualization_architecture.png virtualization-integration-tests.bb virtualization-sdk.yml virtualization.yml -virtualization_architecture.png virtualized vm vm's -vms vs w webserver @@ -348,15 +353,15 @@ www.openembedded.org x x86_64-linux xen -xen-devicetree.bb -xen_kernelcfg_check.bbclass xenbr0 +xen-devicetree.bb xendomains xendomains.service +xen_kernelcfg_check.bbclass xl yaml yamllint yocto -yocto's yocto_layers +yocto's your-branch-name -- GitLab From b22eef5c914948381cd6c3351a659e7320396e83 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Thu, 1 Jun 2023 09:23:02 +0000 Subject: [PATCH 09/10] ci: Add op-tee,psa and parsec tests to build rules To ensure the correct jobs are run when the op-tee,psa or parsec integration tests are changed we need to add them to the build rules. Signed-off-by: Drew Reed --- .gitlab/ci/rules.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitlab/ci/rules.yml b/.gitlab/ci/rules.yml index 9f64c8c..368e03b 100644 --- a/.gitlab/ci/rules.yml +++ b/.gitlab/ci/rules.yml @@ -79,6 +79,12 @@ - "meta-cassini-tests/recipes-tests/runtime-integration-tests/runtime*.*" - "meta-cassini-tests/recipes-tests/runtime-integration-tests/runtime*/**/*" - "meta-cassini-tests/recipes-tests/runtime-integration-tests/files/**/*" + - "meta-cassini-tests/recipes-tests/runtime-integration-tests/optee*.*" + - "meta-cassini-tests/recipes-tests/runtime-integration-tests/optee*/**/*" + - "meta-cassini-tests/recipes-tests/runtime-integration-tests/psa*.*" + - "meta-cassini-tests/recipes-tests/runtime-integration-tests/psa/**/*" + - "meta-cassini-tests/recipes-tests/runtime-integration-tests/parsec*.*" + - "meta-cassini-tests/recipes-tests/runtime-integration-tests/parsec/**/*" .build-k3s: &build-k3s - "meta-cassini-tests/recipes-tests/runtime-integration-tests/k3s*.*" @@ -165,5 +171,7 @@ changes: *kas-k3s-sdk - <<: *if-merge-request-or-push changes: *kas-n1sdp + - <<: *if-merge-request-or-push + changes: *kas-corstone1000 - <<: *if-merge-request-or-push changes: *layer-configs -- GitLab From bc87e180781f3f5398bd868f280a809e4c3d3286 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Thu, 1 Jun 2023 09:24:37 +0000 Subject: [PATCH 10/10] tests: Integration tests should only be included when required The integration test inclusion should only happen when the cassini-test distro feature is enabled. The inclusion of bats should not be controlled by the cassini-test distro feature as it's used by oe core packages. Signed-off-by: Drew Reed --- meta-cassini-tests/recipes-tests/bats/bats_%.bbappend | 7 ------- .../runtime-integration-tests.inc | 3 +++ 2 files changed, 3 insertions(+), 7 deletions(-) delete mode 100644 meta-cassini-tests/recipes-tests/bats/bats_%.bbappend diff --git a/meta-cassini-tests/recipes-tests/bats/bats_%.bbappend b/meta-cassini-tests/recipes-tests/bats/bats_%.bbappend deleted file mode 100644 index 1f21cb8..0000000 --- a/meta-cassini-tests/recipes-tests/bats/bats_%.bbappend +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2023 Arm Limited and/or its affiliates. -# -# -# SPDX-License-Identifier: MIT - -inherit features_check -REQUIRED_DISTRO_FEATURES = "cassini-test" diff --git a/meta-cassini-tests/recipes-tests/runtime-integration-tests/runtime-integration-tests.inc b/meta-cassini-tests/recipes-tests/runtime-integration-tests/runtime-integration-tests.inc index f41ab99..5c72f67 100644 --- a/meta-cassini-tests/recipes-tests/runtime-integration-tests/runtime-integration-tests.inc +++ b/meta-cassini-tests/recipes-tests/runtime-integration-tests/runtime-integration-tests.inc @@ -12,3 +12,6 @@ do_install[vardeps] += "\ TEST_COMMON_DIR \ TEST_RUNTIME_DIR \ " + +inherit features_check +REQUIRED_DISTRO_FEATURES = "cassini-test" -- GitLab