├── .github └── workflows │ ├── SystemReady-devicetree_band_BUILD.yml │ ├── SystemReady-devicetree_band_Daily_Build.yml │ ├── SystemReady_band_BUILD.yml │ ├── SystemReady_band_Daily_Build.yml │ └── SystemReady_band_SBMR_inband.yaml ├── LICENSE.md ├── README.md ├── SystemReady-band ├── README.md ├── build-scripts │ ├── build-all.sh │ ├── build-bbsr-keys.sh │ ├── build-bsaefi.sh │ ├── build-buildroot.sh │ ├── build-efitools.sh │ ├── build-grub.sh │ ├── build-linux-bsa.sh │ ├── build-linux-sbsa.sh │ ├── build-linux.sh │ ├── build-parser-app.sh │ ├── build-sbsa-buildroot.sh │ ├── build-sbsaefi.sh │ ├── build-systemready-band-live-image.sh │ ├── build-uefi.sh │ ├── framework.sh │ ├── get_source.sh │ ├── make_image.sh │ └── parse_params.sh ├── patches │ ├── bsa.patch │ ├── sbsa.patch │ └── sctversion.patch └── prebuilt_images │ ├── v24.11_3.0.0-BET0 │ └── README.md │ └── v25.04_3.0.1 │ └── README.md ├── SystemReady-devicetree-band ├── README.md ├── Yocto │ ├── build-scripts │ │ ├── build-systemready-dt-band-live-image.sh │ │ └── get_source.sh │ ├── config │ │ └── linux-yocto_%.bbappend │ └── meta-woden │ │ ├── conf │ │ ├── distro │ │ │ └── woden.conf │ │ └── layer.conf │ │ ├── kas │ │ ├── external-gcc.yml │ │ └── woden.yml │ │ ├── recipes-acs │ │ ├── bbsr-keys │ │ │ └── bbsr-keys.bb │ │ ├── bootfs-files │ │ │ └── bootfs-files.bb │ │ ├── bsa-acs-app │ │ │ └── bsa-acs-app.bb │ │ ├── bsa-acs-drv │ │ │ └── bsa-acs-drv.bb │ │ ├── bsa-acs-uefi │ │ │ └── bsa-acs.bb │ │ ├── dejavu-fonts │ │ │ └── dejavu-fonts_2.37.bb │ │ ├── ebbr-sct │ │ │ ├── ebbr-sct.bb │ │ │ └── files │ │ │ │ └── sctversion.patch │ │ ├── edk2-firmware │ │ │ ├── edk2-firmware-rev.bb │ │ │ └── files │ │ │ │ └── allow_capsule_on_disk.patch │ │ ├── edk2-test-parser │ │ │ ├── edk2-test-parser.bb │ │ │ └── python3-junit-xml_1.9.bb │ │ ├── fwts │ │ │ ├── files │ │ │ │ ├── 0001-Add-correct-printf-qualifier-for-off_t.patch │ │ │ │ ├── 0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch │ │ │ │ ├── 0002-Include-poll.h-instead-of-deprecated-sys-poll.h.patch │ │ │ │ ├── 0003-Remove-Werror-from-build.patch │ │ │ │ ├── 0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch │ │ │ │ ├── 0005-Undefine-PAGE_SIZE.patch │ │ │ │ └── 0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch │ │ │ ├── fwts_21.06.00.bb │ │ │ ├── fwts_22.05.00.bb │ │ │ ├── fwts_22.07.00.bb │ │ │ ├── fwts_23.01.00.bb │ │ │ ├── fwts_23.07.00.bb │ │ │ ├── fwts_24.01.00.bb │ │ │ ├── fwts_24.03.00.bb │ │ │ ├── fwts_24.09.00.bb │ │ │ └── fwts_25.01.00.bb │ │ ├── grub │ │ │ └── grub-efi_%.bbappend │ │ ├── install-files │ │ │ ├── files │ │ │ │ ├── acs_run-before-login-prompt.service │ │ │ │ ├── device_driver_info.sh │ │ │ │ ├── ethtool-test.py │ │ │ │ ├── ethtool-test.sh │ │ │ │ ├── init.sh │ │ │ │ └── read_write_check_blk_devices.py │ │ │ └── systemd-init-install.bb │ │ ├── process-schema │ │ │ └── process-schema.bb │ │ ├── python3-cssselect2 │ │ │ └── python3-cssselect2_0.8.0.bb │ │ ├── python3-dtschema │ │ │ ├── python3-dtschema_2022.9.bb │ │ │ ├── python3-dtschema_2023.11.bb │ │ │ ├── python3-dtschema_2023.7.bb │ │ │ ├── python3-dtschema_2024.2.bb │ │ │ ├── python3-dtschema_2024.9.bb │ │ │ ├── python3-dtschema_2025.2.bb │ │ │ └── python3-pylibfdt_1.6.1.bb │ │ ├── python3-fonttools │ │ │ └── python3-fonttools_4.56.0.bb │ │ ├── python3-pydyf │ │ │ └── python3-pydyf_0.11.0.bb │ │ ├── python3-pyphen │ │ │ └── python3-pyphen_0.17.2.bb │ │ ├── python3-tinycss2 │ │ │ └── python3-tinycss2_1.4.0.bb │ │ ├── python3-tinyhtml5 │ │ │ └── python3-tinyhtml5_2.0.0.bb │ │ ├── python3-weasyprint │ │ │ └── python3-weasyprint_63.1.bb │ │ ├── python3-webencodings │ │ │ └── python3-webencodings_0.5.1.bb │ │ ├── shell-app │ │ │ └── shell-app.bb │ │ ├── systemready-scripts │ │ │ ├── python3-construct_2.10.67.bb │ │ │ └── systemready-scripts.bb │ │ ├── uefi-apps │ │ │ └── uefi-apps.bb │ │ └── update-vars │ │ │ ├── files │ │ │ └── 0001-UpdateVar-updates-for-SecureBoot-automatic-provision.patch │ │ │ └── update-vars.bb │ │ ├── recipes-images │ │ └── images │ │ │ └── woden-image.bb │ │ ├── recipes-kernel │ │ ├── kernel-selftest │ │ │ └── kernel-selftest.bbappend │ │ └── linux │ │ │ ├── files │ │ │ ├── 0001-KSelfTest.patch │ │ │ ├── 0001-disable-default-psci-checker-run.patch │ │ │ ├── 0001-dt-extract-compatibles.patch │ │ │ ├── 0002-Fix-for-CompuLab-IOT-GATE-iMX8-boot-issue.patch │ │ │ └── systemready.cfg │ │ │ ├── linux-yocto_%.bbappend │ │ │ ├── linux-yocto_5.15.bb │ │ │ ├── linux-yocto_6.0.bb │ │ │ ├── linux-yocto_6.10.bb │ │ │ ├── linux-yocto_6.12.bb │ │ │ ├── linux-yocto_6.4.bb │ │ │ └── linux-yocto_6.6.bb │ │ ├── recipes-security │ │ └── optee │ │ │ └── optee-client_4.1.0.bbappend │ │ └── wic │ │ └── woden.wks.in ├── patches │ └── bsa.patch └── prebuilt_images │ ├── v24.11_3.0.0-BET0 │ └── README.md │ └── v25.04_3.0.1 │ └── README.md ├── changelog.txt ├── common ├── config │ ├── acs_config.txt │ ├── acs_config_dt.txt │ ├── acs_run_config.ini │ ├── buildroot_defconfig │ ├── buildroot_sbsa_defconfig │ ├── grub-buildroot.cfg │ ├── grub_prefix.cfg │ ├── system_config.txt │ ├── systemready-band-source.cfg │ └── systemready-dt-band-source.cfg ├── linux_scripts │ ├── bsa.sh │ ├── device_driver.sh │ ├── extract_capsule_fw_version.py │ ├── files.txt │ ├── fwts.sh │ ├── init.sh │ ├── inittab │ ├── resolv.conf │ ├── sbsa.sh │ ├── secure_init.sh │ └── verify_tpm_measurements.py ├── log_parser │ ├── acs_info.py │ ├── apply_waivers.py │ ├── bbr │ │ ├── fwts │ │ │ ├── json_to_html.py │ │ │ └── logs_to_json.py │ │ ├── sct │ │ │ ├── json_to_html.py │ │ │ ├── logs_to_json.py │ │ │ └── logs_to_json_edk2.py │ │ └── tpm │ │ │ ├── json_to_html.py │ │ │ └── logs_to_json.py │ ├── bsa │ │ ├── json_to_html.py │ │ └── logs_to_json.py │ ├── generate_acs_summary.py │ ├── main_log_parser.sh │ ├── merge_jsons.py │ ├── merge_summary.py │ ├── os_tests │ │ ├── json_to_html.py │ │ └── logs_to_json.py │ ├── post_script │ │ ├── json_to_html.py │ │ └── logs_to_json.py │ ├── standalone_tests │ │ ├── json_to_html.py │ │ └── logs_to_json.py │ ├── test_category.json │ └── test_categoryDT.json ├── parser │ ├── Parser.inf │ ├── Parser.py │ └── Parser_app.c ├── patches │ ├── 0001-GRUB-correct-detection-of-DDR-RAM-address.patch │ ├── 0001-SystemReady-Linux-6.10.patch │ ├── 0001-SystemReady-Linux-6.12.patch │ ├── 0001-SystemReady-Linux-6.13.patch │ ├── 0001-SystemReady-Linux-6.7.patch │ ├── 0001-SystemReady-Linux-6.8.patch │ ├── 0001-disable-psci-checker.patch │ ├── 0001-parser-app.patch │ ├── 0007-fwts-last-attempt-status.patch │ ├── 0008-acpi-iort-memory-access-flag-update.patch │ ├── build_fwts_version_22.11.00.patch │ ├── build_fwts_version_23.07.00.patch │ ├── build_fwts_version_24.01.00.patch │ ├── build_fwts_version_24.03.00.patch │ ├── build_fwts_version_24.09.00.patch │ ├── build_fwts_version_25.01.00.patch │ ├── edk2_subhook_patch │ └── tpm-tis-spi-Add-hardware-wait-polling.patch ├── tools │ ├── README.md │ └── config_update_tool.sh └── uefi_scripts │ ├── bbsr_startup.nsh │ ├── bsa.nsh │ ├── capsule_update.nsh │ ├── debug_dump.nsh │ ├── parser.nsh │ ├── pingtest.nsh │ ├── sbsa.nsh │ ├── startup.nsh │ ├── startup_dt.nsh │ └── startup_ee.nsh └── docs ├── Automatic_Capsule_Update_guide.md ├── BBSR_ACS_Verification.md ├── SystemReady_Execution_Enviroment_and_Config_Guide.md ├── acs_run_configuration_guide.md ├── acs_test_tools_guide.md ├── block_device_checks_guide.md ├── example_waiver.json └── waiver_guide.md /.github/workflows/SystemReady-devicetree_band_BUILD.yml: -------------------------------------------------------------------------------- 1 | name: Systemready-devicetree band Build Checker 2 | 3 | on: 4 | push: 5 | branches: # trigger on push to master 6 | - main 7 | pull_request: # trigger on pull requests to master 8 | branches: 9 | - main 10 | workflow_dispatch: # to dispatch from Github Actions 11 | 12 | jobs: 13 | build_image: 14 | name: SystemReady-devicetree band Build Check 15 | runs-on: ubuntu-22.04 16 | strategy: 17 | matrix: 18 | env: 19 | - ARCH: x86_64 20 | steps: 21 | - name: Maximize build space 22 | uses: easimon/maximize-build-space@master 23 | with: 24 | remove-dotnet: 'true' 25 | remove-android: 'true' 26 | remove-haskell: 'true' 27 | remove-codeql: 'true' 28 | remove-docker-images: 'true' 29 | - uses: actions/checkout@v4 30 | with: 31 | fetch-depth: 1 32 | - name: Start building 33 | run: 34 | sudo -s; 35 | git config --global user.name "arm-systemready"; 36 | git config --global user.email "arm-systemready@arm.com"; 37 | cd SystemReady-devicetree-band/Yocto; 38 | ./build-scripts/get_source.sh; 39 | sed -i 's/if 0 == os.getuid/if 1 == os.getuid/' meta-woden/poky/meta/classes-global/sanity.bbclass; 40 | ./build-scripts/build-systemready-dt-band-live-image.sh 41 | - uses: actions/upload-artifact@v4 42 | with: 43 | name: systemready-dt_acs_live_image.wic.xz 44 | path: SystemReady-devicetree-band/Yocto/meta-woden/build/tmp/deploy/images/generic-arm64/systemready-dt_acs_live_image.wic.xz 45 | if-no-files-found: error 46 | 47 | -------------------------------------------------------------------------------- /.github/workflows/SystemReady-devicetree_band_Daily_Build.yml: -------------------------------------------------------------------------------- 1 | name: SystemReady-devicetree band Daily-Build 2 | 3 | on: 4 | schedule: 5 | - cron: '30 17 * * *' # Runs everyday at 11 PM IST 6 | workflow_dispatch: # to dispatch from Github Actions 7 | 8 | jobs: 9 | SystemReady-devicetree_Build: 10 | name: SystemReady-devicetree band Daily Build Image 11 | runs-on: ubuntu-22.04 12 | strategy: 13 | matrix: 14 | env: 15 | - ARCH: x86_64 16 | steps: 17 | - name: Maximize build space 18 | uses: easimon/maximize-build-space@master 19 | with: 20 | remove-dotnet: 'true' 21 | remove-android: 'true' 22 | remove-haskell: 'true' 23 | remove-codeql: 'true' 24 | remove-docker-images: 'true' 25 | - uses: actions/checkout@v4 26 | with: 27 | fetch-depth: 1 28 | - name: Start building 29 | run: 30 | sudo -s; 31 | git config --global user.name "arm-systemready"; 32 | git config --global user.email "arm-systemready@arm.com"; 33 | cd SystemReady-devicetree-band/Yocto; 34 | ./build-scripts/get_source.sh; 35 | sed -i 's/if 0 == os.getuid/if 1 == os.getuid/' meta-woden/poky/meta/classes-global/sanity.bbclass; 36 | ./build-scripts/build-systemready-dt-band-live-image.sh 37 | - uses: actions/upload-artifact@v4 38 | with: 39 | name: systemready-dt_acs_live_image.wic.xz 40 | path: SystemReady-devicetree-band/Yocto/meta-woden/build/tmp/deploy/images/generic-arm64/systemready-dt_acs_live_image.wic.xz 41 | if-no-files-found: error 42 | -------------------------------------------------------------------------------- /.github/workflows/SystemReady_band_BUILD.yml: -------------------------------------------------------------------------------- 1 | name: SystemReady band Build Checker 2 | 3 | on: 4 | push: 5 | branches: # trigger on push to master 6 | - main 7 | pull_request: # trigger on pull requests to master 8 | branches: 9 | - main 10 | workflow_dispatch: # to dispatch from Github Actions 11 | 12 | jobs: 13 | build_image: 14 | name: SystemReady band Build Check 15 | runs-on: ubuntu-22.04 16 | strategy: 17 | matrix: 18 | env: 19 | - ARCH: x86_64 20 | steps: 21 | - name: Maximize build space 22 | uses: easimon/maximize-build-space@master 23 | with: 24 | remove-dotnet: 'true' 25 | remove-android: 'true' 26 | remove-haskell: 'true' 27 | remove-codeql: 'true' 28 | remove-docker-images: 'true' 29 | - uses: actions/checkout@v4 30 | with: 31 | fetch-depth: 1 32 | - name: Install gnu-efi dependencies 33 | run: | 34 | sudo apt update 35 | sudo apt install -y gnu-efi 36 | - name: Start building 37 | run: 38 | sudo -s; 39 | git config --global user.name "arm-systemready"; 40 | git config --global user.email "arm-systemready@arm.com"; 41 | cd SystemReady-band; 42 | ./build-scripts/get_source.sh; 43 | ./build-scripts/build-systemready-band-live-image.sh 44 | - uses: actions/upload-artifact@v4 45 | with: 46 | name: systemready_acs_live_image.img.xz 47 | path: SystemReady-band/output/systemready_acs_live_image.img.xz 48 | if-no-files-found: error 49 | 50 | -------------------------------------------------------------------------------- /.github/workflows/SystemReady_band_Daily_Build.yml: -------------------------------------------------------------------------------- 1 | name: SystemReady band Daily-Build 2 | 3 | on: 4 | schedule: 5 | - cron: '30 17 * * *' # Runs everyday at 11 PM IST 6 | workflow_dispatch: # to dispatch from Github Actions 7 | 8 | jobs: 9 | SystemReady_Build: 10 | name: SystemReady band Daily Build Image 11 | runs-on: ubuntu-22.04 12 | strategy: 13 | matrix: 14 | env: 15 | - ARCH: x86_64 16 | steps: 17 | - name: Maximize build space 18 | uses: easimon/maximize-build-space@master 19 | with: 20 | remove-dotnet: 'true' 21 | remove-android: 'true' 22 | remove-haskell: 'true' 23 | remove-codeql: 'true' 24 | remove-docker-images: 'true' 25 | - uses: actions/checkout@v4 26 | with: 27 | fetch-depth: 1 28 | - name: Install gnu-efi dependencies 29 | run: | 30 | sudo apt update 31 | sudo apt install -y gnu-efi 32 | - name: Start building 33 | run: 34 | sudo -s; 35 | git config --global user.name "arm-systemready"; 36 | git config --global user.email "arm-systemready@arm.com"; 37 | cd SystemReady-band/; 38 | ./build-scripts/get_source.sh; 39 | ./build-scripts/build-systemready-band-live-image.sh 40 | - uses: actions/upload-artifact@v4 41 | with: 42 | name: systemready_acs_live_image.img.xz 43 | path: SystemReady-band/output/systemready_acs_live_image.img.xz 44 | if-no-files-found: error 45 | -------------------------------------------------------------------------------- /.github/workflows/SystemReady_band_SBMR_inband.yaml: -------------------------------------------------------------------------------- 1 | name: SystemReady band ACS build with SBMR in-band 2 | 3 | on: 4 | push: 5 | branches: # trigger on push to server-base-manageability-requirements-acs 6 | - server-base-manageability-requirements-acs 7 | pull_request: # trigger on pull requests to server-base-manageability-requirements-acs 8 | branches: 9 | - server-base-manageability-requirements-acs 10 | workflow_dispatch: # to dispatch from Github Actions 11 | schedule: 12 | - cron: '30 23 * * 6' # scheduled every Sunday at 5:00 AM IST 13 | 14 | jobs: 15 | build_image: 16 | name: SystemReady band ACS build with SBMR in-band 17 | runs-on: ubuntu-22.04 18 | strategy: 19 | matrix: 20 | env: 21 | - ARCH: x86_64 22 | steps: 23 | - name: Maximize build space 24 | uses: easimon/maximize-build-space@master 25 | with: 26 | remove-dotnet: 'true' 27 | remove-android: 'true' 28 | remove-haskell: 'true' 29 | remove-codeql: 'true' 30 | remove-docker-images: 'true' 31 | - uses: actions/checkout@v4 32 | with: 33 | fetch-depth: 1 34 | ref: server-base-manageability-requirements-acs 35 | - name: Install gnu-efi dependencies 36 | run: | 37 | sudo apt update 38 | sudo apt install -y gnu-efi 39 | - name: Start building 40 | run: 41 | sudo -s; 42 | git config --global user.name "arm-systemready"; 43 | git config --global user.email "arm-systemready@arm.com"; 44 | cd SystemReady-band; 45 | ./build-scripts/get_source.sh; 46 | ./build-scripts/build-systemready-band-live-image.sh 47 | - uses: actions/upload-artifact@v4 48 | with: 49 | name: systemready_acs_live_image_sbmr_inband.img.xz 50 | path: SystemReady-band/output/systemready_acs_live_image.img.xz 51 | if-no-files-found: error 52 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2025, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | if [ "$#" -ne 2 ]; then 20 | echo "Usage $0 systemready-band F" 21 | echo "The second (mandatory) parameter F stands for full package." 22 | exit 1 23 | fi 24 | 25 | # Build SystemReady-band ACS 26 | BAND=$1 27 | PACKAGE=$2 28 | 29 | source ./build-scripts/build-efitools.sh 30 | source ./build-scripts/build-bbsr-keys.sh 31 | source ./build-scripts/build-parser-app.sh 32 | source ./build-scripts/build-uefi.sh $@ 33 | source ./build-scripts/build-bsaefi.sh $@ 34 | source ./build-scripts/build-sbsaefi.sh $@ 35 | source ./build-scripts/build-sct.sh SBBR $2 36 | source ./build-scripts/build-uefi-apps.sh $@ 37 | source ./build-scripts/build-linux.sh $@ 38 | source ./build-scripts/build-linux-bsa.sh $@ 39 | source ./build-scripts/build-grub.sh $@ 40 | source ./build-scripts/build-sbsa-buildroot.sh $@ 41 | source ./build-scripts/build-linux-sbsa.sh $@ 42 | source ./build-scripts/build-buildroot.sh $@ 43 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-bbsr-keys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # 20 | # This script uses the following environment variables 21 | # 22 | # TOP_DIR - workspace root directory 23 | # KEYS_DIR - directory where secure boot keys are generated 24 | 25 | TOP_DIR=`pwd` 26 | KEYS_DIR=$TOP_DIR/bbsr-keys 27 | 28 | # set the path to pick up the local efitools 29 | export PATH="$TOP_DIR/efitools:$PATH" 30 | 31 | do_build() 32 | { 33 | echo "do_build: bbsr-keys" 34 | mkdir -p $KEYS_DIR 35 | pushd $KEYS_DIR 36 | 37 | # generate TestPK1: DER and signed siglist 38 | NAME=TestPK1 39 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_PK/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 40 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 41 | cert-to-efi-sig-list $NAME.crt $NAME.esl 42 | sign-efi-sig-list -c $NAME.crt -k $NAME.key PK $NAME.esl $NAME.auth 43 | 44 | # generate NULLPK.auth to facilitate deletion of PK during development 45 | NAME=NullPK 46 | FUTURE_DATE=`date --rfc-3339=date -d "+5 year"` 47 | cat /dev/null > $NAME.esl 48 | sign-efi-sig-list -t $FUTURE_DATE -c TestPK1.crt -k TestPK1.key PK $NAME.esl $NAME.auth 49 | 50 | # generate TestKEK1: DER and signed siglist 51 | NAME=TestKEK1 52 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_KEK/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 53 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 54 | cert-to-efi-sig-list $NAME.crt $NAME.esl 55 | sign-efi-sig-list -c TestPK1.crt -k TestPK1.key KEK $NAME.esl $NAME.auth 56 | 57 | # generate TestDB1: DER and signed siglist 58 | NAME=TestDB1 59 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_DB/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 60 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 61 | cert-to-efi-sig-list $NAME.crt $NAME.esl 62 | sign-efi-sig-list -c TestKEK1.crt -k TestKEK1.key db $NAME.esl $NAME.auth 63 | 64 | # generate TestDBX1: DER and signed siglist 65 | NAME=TestDBX1 66 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_PK/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 67 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 68 | cert-to-efi-sig-list $NAME.crt $NAME.esl 69 | sign-efi-sig-list -c TestKEK1.crt -k TestKEK1.key dbx $NAME.esl $NAME.auth 70 | 71 | popd 72 | } 73 | 74 | do_clean() 75 | { 76 | echo "do_clean: bbsr-keys" 77 | rm -rf $KEYS_DIR 78 | } 79 | 80 | do_package() 81 | { 82 | echo "do_package: bbsr-keys: nothing to do" 83 | } 84 | 85 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 86 | source $DIR/framework.sh $@ 87 | 88 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-bsaefi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # 20 | # This script uses the following environment variables from the variant 21 | # 22 | # VARIANT - build variant name 23 | # TOP_DIR - workspace root directory 24 | # CROSS_COMPILE - PATH to GCC including CROSS-COMPILE prefix 25 | # PARALLELISM - number of cores to build across 26 | # UEFI_BUILD_ENABLED - Flag to enable building UEFI 27 | # UEFI_PATH - sub-directory containing UEFI code 28 | # UEFI_BUILD_MODE - DEBUG or RELEASE 29 | # UEFI_TOOLCHAIN - Toolchain supported by Linaro uefi-tools: GCC49, GCC48 or GCC47 30 | # UEFI_PLATFORMS - List of platforms to build 31 | # UEFI_PLAT_{platform name} - array of platform parameters: 32 | # - platname - the name of the platform used by the build 33 | # - makefile - the makefile to execute for this platform 34 | # - output - where to store the files in packaging phase 35 | # - defines - extra platform defines during the build 36 | # - binary - what to call the final output binary 37 | 38 | 39 | TOP_DIR=`pwd` 40 | . $TOP_DIR/../common/config/systemready-band-source.cfg 41 | UEFI_PATH=edk2 42 | UEFI_TOOLCHAIN=GCC49 43 | CROSS_COMPILE=$TOP_DIR/$GCC 44 | UEFI_LIBC_PATH=edk2-libc 45 | PATCH_DIR=$TOP_DIR/patches 46 | OUTDIR=${TOP_DIR}/output 47 | BSA_EFI_PATH=edk2/Build/Shell/DEBUG_GCC49/AARCH64/ 48 | KEYS_DIR=$TOP_DIR/bbsr-keys 49 | 50 | do_build() 51 | { 52 | pushd $TOP_DIR/$UEFI_PATH 53 | 54 | git checkout ShellPkg/ShellPkg.dsc # Remove if any patches applied 55 | if git apply --check $PATCH_DIR/bsa.patch; then 56 | echo "Applying BSA Patch ..." 57 | git apply $PATCH_DIR/bsa.patch 58 | else 59 | echo "Error while applying BSA Patch" 60 | exit_fun 61 | fi 62 | 63 | source ./edksetup.sh 64 | make -C BaseTools/Source/C 65 | export EDK2_TOOLCHAIN=$UEFI_TOOLCHAIN 66 | arch=$(uname -m) 67 | if [[ $arch = "aarch64" ]] 68 | then 69 | echo "arm64 native compile" 70 | else 71 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 72 | PATH="$PATH:$CROSS_COMPILE_DIR" 73 | export ${UEFI_TOOLCHAIN}_AARCH64_PREFIX=$CROSS_COMPILE 74 | fi 75 | 76 | export PACKAGES_PATH=$TOP_DIR/$UEFI_PATH:$TOP_DIR/$UEFI_PATH/$UEFI_LIBC_PATH 77 | export PYTHON_COMMAND=/usr/bin/python3 78 | source ShellPkg/Application/bsa-acs/tools/scripts/acsbuild.sh 79 | popd 80 | } 81 | 82 | do_clean() 83 | { 84 | pushd $TOP_DIR/$UEFI_PATH 85 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 86 | PATH="$PATH:$CROSS_COMPILE_DIR" 87 | source ./edksetup.sh 88 | make -C BaseTools/Source/C clean 89 | rm -rf Build/Shell/DEBUG_GCC49 90 | popd 91 | } 92 | 93 | do_package () 94 | { 95 | echo "Packaging BSA... $VARIANT"; 96 | # Copy binaries to output folder 97 | cp $TOP_DIR/$BSA_EFI_PATH/Bsa.efi $OUTDIR/Bsa.efi 98 | # sign Bsa.efi with db key 99 | sbsign --key $KEYS_DIR/TestDB1.key --cert $KEYS_DIR/TestDB1.crt $OUTDIR/Bsa.efi --output $OUTDIR/Bsa.efi 100 | } 101 | 102 | exit_fun() { 103 | exit 1 # Exit script 104 | } 105 | 106 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 107 | source $DIR/framework.sh $@ 108 | 109 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-efitools.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | TOP_DIR=`pwd` 20 | EFITOOLS_PATH=efitools 21 | 22 | do_build() 23 | { 24 | echo "Building efitools..." 25 | pushd $TOP_DIR/$EFITOOLS_PATH 26 | make 27 | popd 28 | } 29 | 30 | do_clean () 31 | { 32 | pushd $TOP_DIR/$EFITOOLS_PATH 33 | make clean 34 | popd 35 | } 36 | 37 | do_package () 38 | { 39 | : 40 | } 41 | 42 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 43 | source $DIR/framework.sh $@ 44 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-grub.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # 20 | # This script uses the following environment variables from the variant 21 | # 22 | # VARIANT - build variant name 23 | # TOP_DIR - workspace root directory 24 | # PLATDIR - Platform Output directory 25 | # GRUB_PATH - path to GRUB source 26 | # CROSS_COMPILE - PATH to GCC including CROSS-COMPILE prefix 27 | # PARALLELISM - number of cores to build across 28 | # GRUB_BUILD_ENABLED - Flag to enable building Linux 29 | # BUSYBOX_BUILD_ENABLED - Building Busybox 30 | # 31 | 32 | 33 | TOP_DIR=`pwd` 34 | arch=$(uname -m) 35 | . $TOP_DIR/../common/config/systemready-band-source.cfg 36 | 37 | GRUB_TARGET=aarch64-none-linux-gnu 38 | GRUB_PATH=grub 39 | GRUB_PLAT_CONFIG_FILE=${TOP_DIR}/build-scripts/config/grub_prefix.cfg 40 | KEYS_DIR=$TOP_DIR/bbsr-keys 41 | 42 | do_build () 43 | { 44 | if [[ $arch = "aarch64" ]]; then 45 | CROSS_COMPILE_DIR='' 46 | else 47 | CROSS_COMPILE=$TOP_DIR/$GCC 48 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 49 | PATH="$PATH:$CROSS_COMPILE_DIR" 50 | fi 51 | 52 | if [ -d $TOP_DIR/$GRUB_PATH ]; then 53 | pushd $TOP_DIR/$GRUB_PATH 54 | echo $CROSS_COMPILE_DIR 55 | echo $CROSS_COMPILE 56 | mkdir -p $TOP_DIR/$GRUB_PATH/output 57 | # On the master branch of grub, commit '35b90906' 58 | #("gnulib: Upgrade Gnulib and switch to bootstrap tool") 59 | # required the bootstrap tool to be executed before the configure step. 60 | if [ -e bootstrap ]; then 61 | if [ ! -e grub-core/lib/gnulib/stdlib.in.h ]; then 62 | ./bootstrap 63 | fi 64 | fi 65 | 66 | ./autogen.sh 67 | 68 | if [[ $arch = "aarch64" ]]; then 69 | ./configure \ 70 | --target=aarch64-linux-gnu --with-platform=efi \ 71 | --prefix=$TOP_DIR/$GRUB_PATH/output/ \ 72 | --disable-werror 73 | else 74 | ./configure STRIP=${CROSS_COMPILE}strip \ 75 | --target=$GRUB_TARGET --with-platform=efi \ 76 | --prefix=$TOP_DIR/$GRUB_PATH/output/ \ 77 | TARGET_CC=${CROSS_COMPILE}gcc --disable-werror 78 | fi 79 | 80 | make -j $PARALLELISM install 81 | output/bin/grub-mkimage -v -c ${GRUB_PLAT_CONFIG_FILE} \ 82 | -o output/grubaa64.efi -O arm64-efi --disable-shim-lock -p "" \ 83 | part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain \ 84 | boot configfile linux help terminal terminfo configfile \ 85 | lsefi search normal gettext loadenv read search_fs_file search_fs_uuid search_label \ 86 | pgp gcry_sha512 gcry_rsa tpm 87 | 88 | popd 89 | fi 90 | 91 | } 92 | 93 | do_clean () 94 | { 95 | if [ -d $TOP_DIR/$GRUB_PATH ]; then 96 | pushd $TOP_DIR/$GRUB_PATH 97 | rm -rf output 98 | git clean -fdX 99 | popd 100 | fi 101 | } 102 | 103 | do_package () 104 | { 105 | # sign grub with db key 106 | pushd $TOP_DIR/$GRUB_PATH 107 | sbsign --key $KEYS_DIR/TestDB1.key --cert $KEYS_DIR/TestDB1.crt output/grubaa64.efi --output output/grubaa64.efi 108 | popd 109 | } 110 | 111 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 112 | source $DIR/framework.sh $@ 113 | 114 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-linux-bsa.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | TOP_DIR=`pwd` 20 | . $TOP_DIR/../common/config/systemready-band-source.cfg 21 | 22 | export KERNEL_SRC=$TOP_DIR/linux-${LINUX_KERNEL_VERSION}/out 23 | LINUX_PATH=$TOP_DIR/linux-${LINUX_KERNEL_VERSION} 24 | BSA_PATH=$TOP_DIR/edk2/ShellPkg/Application/bsa-acs 25 | 26 | build_bsa_kernel_driver() 27 | { 28 | pushd $TOP_DIR/linux-acs/acs-drv/files 29 | rm -rf $TOP_DIR/linux-acs/acs-drv/files/val 30 | rm -rf $TOP_DIR/linux-acs/acs-drv/files/test_pool 31 | 32 | arch=$(uname -m) 33 | echo $arch 34 | if [[ $arch = "aarch64" ]] 35 | then 36 | echo "arm64 native build" 37 | export CROSS_COMPILE='' 38 | else 39 | export CROSS_COMPILE=$TOP_DIR/$GCC 40 | fi 41 | ./bsa_setup.sh $TOP_DIR/edk2/ShellPkg/Application/bsa-acs 42 | ./linux_bsa_acs.sh 43 | popd 44 | } 45 | 46 | 47 | build_bsa_app() 48 | { 49 | pushd $BSA_PATH/linux_app/bsa-acs-app 50 | make clean 51 | make 52 | popd 53 | } 54 | 55 | pack_in_ramdisk() 56 | { 57 | if [ ! -d $TOP_DIR/ramdisk/linux-bsa ]; then 58 | mkdir $TOP_DIR/ramdisk/linux-bsa 59 | fi 60 | cp $TOP_DIR/linux-acs/acs-drv/files/bsa_acs.ko $TOP_DIR/ramdisk/linux-bsa 61 | cp $BSA_PATH/linux_app/bsa-acs-app/bsa $TOP_DIR/ramdisk/linux-bsa 62 | } 63 | 64 | build_bsa_kernel_driver 65 | build_bsa_app 66 | pack_in_ramdisk 67 | 68 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-parser-app.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # @file 4 | # Copyright (c) 2021-2025, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | TOP_DIR=`pwd` 20 | . $TOP_DIR/../common/config/systemready-band-source.cfg 21 | 22 | # === Configuration === 23 | EDK2_TAG="$EDK2_SRC_VERSION" 24 | GCC_VERSION="13.2.rel1" 25 | APP_NAME="parser" 26 | GCC_PREFIX="aarch64-none-linux-gnu-" 27 | TOP_DIR=$(pwd) 28 | TOOLCHAIN_PATH="$TOP_DIR/tools/arm-gnu-toolchain-${GCC_VERSION}-x86_64-aarch64-none-linux-gnu/bin" 29 | GCC_BIN="$TOOLCHAIN_PATH/$GCC_PREFIX" 30 | EDK2_DIR="$TOP_DIR/edk2" 31 | LIBC_DIR="$EDK2_DIR/edk2-libc" 32 | APP_PATH="$EDK2_DIR/ShellPkg/Application/$APP_NAME" 33 | KEYS_DIR=$TOP_DIR/bbsr-keys 34 | CONFIG_PARSER_EFI=${TOP_DIR}/parser/Parser.efi 35 | 36 | do_build() 37 | { 38 | 39 | mkdir -p $TOP_DIR/$APP_NAME 40 | # === Prepare edk2 environment === 41 | pushd "$EDK2_DIR" 42 | 43 | echo "Cleaning previous builds..." 44 | git reset --hard 45 | #git reset --hard 46 | rm -rf Build/* 47 | 48 | echo "Applying patches..." 49 | git apply "$TOP_DIR/../common/patches/0001-parser-app.patch" 50 | 51 | echo "Setting up parser_app source..." 52 | rm -rf "$APP_PATH" 53 | cp -r "$TOP_DIR/../common/parser" "$APP_PATH" 54 | 55 | echo "Setting environment variables..." 56 | export GCC49_AARCH64_PREFIX="$GCC_BIN" 57 | export PACKAGES_PATH="$EDK2_DIR:$LIBC_DIR" 58 | 59 | echo "packages path : $PACKAGES_PATH" 60 | # === Build === 61 | echo "Configuring EDK2 build environment..." 62 | source ./edksetup.sh --reconfig 63 | make -C BaseTools/Source/C 64 | 65 | echo "Building Parser.efi..." 66 | build -a AARCH64 -t GCC49 -p ShellPkg/ShellPkg.dsc -m ShellPkg/Application/$APP_NAME/Parser.inf 67 | 68 | cp "$EDK2_DIR/Build/Shell/DEBUG_GCC49/AARCH64/Parser.efi" "$TOP_DIR/$APP_NAME/Parser.efi" 69 | git reset --hard 70 | 71 | popd 72 | echo "✅ Build complete: $TOP_DIR/$APP_NAME/Parser.efi" 73 | 74 | } 75 | 76 | do_package () 77 | { 78 | echo "Packaging uefi... $VARIANT"; 79 | 80 | echo "Signing Parser Application... " 81 | pushd $TOP_DIR 82 | # sign Parser.efi with db key 83 | sbsign --key $KEYS_DIR/TestDB1.key --cert $KEYS_DIR/TestDB1.crt $CONFIG_PARSER_EFI --output $TOP_DIR/output/Parser.efi 84 | 85 | popd 86 | 87 | } 88 | 89 | do_clean() 90 | { 91 | pushd $TOP_DIR/$UEFI_PATH 92 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 93 | PATH="$PATH:$CROSS_COMPILE_DIR" 94 | source ./edksetup.sh 95 | make -C BaseTools/Source/C clean 96 | rm -rf Build/Shell/DEBUG_GCC49 97 | popd 98 | } 99 | 100 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 101 | source $DIR/framework.sh $@ -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-sbsa-buildroot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # 20 | # This script uses the following environment variables from the variant 21 | # 22 | # VARIANT - build variant name 23 | # TOP_DIR - workspace root directory 24 | # BUILDROOT_BUILD_ENABLED - Flag to enable building Buildroot 25 | # BUILDROOT_PATH - sub-directory containing Buildroot code 26 | # TARGET_BINS_PLATS - the platforms to create binaries for 27 | # TARGET_{plat} - array of platform parameters, indexed by 28 | # ramdisk - the address of the ramdisk per platform 29 | set -x 30 | TOP_DIR=`pwd` 31 | . $TOP_DIR/../common/config/systemready-band-source.cfg 32 | 33 | LINUX_ARCH=arm64 34 | BUILDROOT_PATH=buildroot 35 | BUILDROOT_OUT_DIR=out/$LINUX_ARCH 36 | BUILDROOT_DEFCONFIG=$TOP_DIR/$BUILDROOT_PATH/configs/buildroot_sbsa_defconfig 37 | 38 | do_build () 39 | { 40 | export ARCH=$LINUX_ARCH 41 | 42 | cp $TOP_DIR/../common/config/buildroot_sbsa_defconfig $TOP_DIR/$BUILDROOT_PATH/configs/ 43 | pushd $TOP_DIR/$BUILDROOT_PATH 44 | mkdir -p $BUILDROOT_OUT_DIR 45 | make O=$BUILDROOT_OUT_DIR buildroot_sbsa_defconfig 46 | make O=$BUILDROOT_OUT_DIR -j $PARALLELISM 47 | rm $BUILDROOT_DEFCONFIG 48 | popd 49 | } 50 | 51 | do_clean () 52 | { 53 | export ARCH=$LINUX_ARCH 54 | 55 | pushd $TOP_DIR/$BUILDROOT_PATH 56 | mkdir -p $BUILDROOT_OUT_DIR 57 | make O=$BUILDROOT_OUT_DIR clean 58 | popd 59 | 60 | rm -f ${PLATDIR}/ramdisk-buildroot.img 61 | 62 | } 63 | 64 | do_package () 65 | { 66 | echo "Packaging BUILDROOT"; 67 | } 68 | 69 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 70 | source $DIR/framework.sh $@ 71 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-sbsaefi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # 20 | # This script uses the following environment variables from the variant 21 | # 22 | # VARIANT - build variant name 23 | # TOP_DIR - workspace root directory 24 | # CROSS_COMPILE - PATH to GCC including CROSS-COMPILE prefix 25 | # PARALLELISM - number of cores to build across 26 | # UEFI_BUILD_ENABLED - Flag to enable building UEFI 27 | # UEFI_PATH - sub-directory containing UEFI code 28 | # UEFI_BUILD_MODE - DEBUG or RELEASE 29 | # UEFI_TOOLCHAIN - Toolchain supported by Linaro uefi-tools: GCC49, GCC48 or GCC47 30 | # UEFI_PLATFORMS - List of platforms to build 31 | # UEFI_PLAT_{platform name} - array of platform parameters: 32 | # - platname - the name of the platform used by the build 33 | # - makefile - the makefile to execute for this platform 34 | # - output - where to store the files in packaging phase 35 | # - defines - extra platform defines during the build 36 | # - binary - what to call the final output binary 37 | 38 | TOP_DIR=`pwd` 39 | . $TOP_DIR/../common/config/systemready-band-source.cfg 40 | UEFI_PATH=edk2 41 | UEFI_TOOLCHAIN=GCC49 42 | UEFI_BUILD_MODE=RELEASE 43 | CROSS_COMPILE=$TOP_DIR/$GCC 44 | UEFI_LIBC_PATH=edk2-libc 45 | PATCH_DIR=$TOP_DIR/patches 46 | OUTDIR=${TOP_DIR}/output 47 | SBSA_EFI_PATH=edk2/Build/Shell/DEBUG_GCC49/AARCH64/ 48 | KEYS_DIR=$TOP_DIR/bbsr-keys 49 | 50 | do_build() 51 | { 52 | pushd $TOP_DIR/$UEFI_PATH 53 | 54 | git checkout ShellPkg/ShellPkg.dsc # Remove if any patches applied 55 | 56 | if git apply --check $PATCH_DIR/sbsa.patch ; then 57 | echo "Applying SBSA Patch ..." 58 | git apply $PATCH_DIR/sbsa.patch 59 | else 60 | echo "Error while applying SBSA Patch" 61 | exit_fun 62 | fi 63 | 64 | source ./edksetup.sh 65 | make -C BaseTools/Source/C 66 | export EDK2_TOOLCHAIN=$UEFI_TOOLCHAIN 67 | arch=$(uname -m) 68 | if [[ $arch = "aarch64" ]] 69 | then 70 | echo "arm64 native compile" 71 | else 72 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 73 | PATH="$PATH:$CROSS_COMPILE_DIR" 74 | export ${UEFI_TOOLCHAIN}_AARCH64_PREFIX=$CROSS_COMPILE 75 | fi 76 | 77 | export PACKAGES_PATH=$TOP_DIR/$UEFI_PATH:$TOP_DIR/$UEFI_PATH/$UEFI_LIBC_PATH 78 | source ShellPkg/Application/sbsa-acs/tools/scripts/acsbuild.sh 79 | popd 80 | } 81 | 82 | do_clean() 83 | { 84 | pushd $TOP_DIR/$UEFI_PATH 85 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 86 | PATH="$PATH:$CROSS_COMPILE_DIR" 87 | source ./edksetup.sh 88 | make -C BaseTools/Source/C clean 89 | rm -rf Build/Shell/DEBUG_GCC49 90 | popd 91 | } 92 | 93 | do_package () 94 | { 95 | echo "Packaging SBSA..."; 96 | # Copy binaries to output folder 97 | cp $TOP_DIR/$SBSA_EFI_PATH/Sbsa.efi $OUTDIR/Sbsa.efi 98 | # sign Sbsa.efi with db key 99 | sbsign --key $KEYS_DIR/TestDB1.key --cert $KEYS_DIR/TestDB1.crt $OUTDIR/Sbsa.efi --output $OUTDIR/Sbsa.efi 100 | } 101 | 102 | exit_fun() { 103 | exit 1 # Exit script 104 | } 105 | 106 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 107 | 108 | source $DIR/framework.sh $@ 109 | 110 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-systemready-band-live-image.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | TOP_DIR=`pwd` 20 | 21 | create_scripts_link() 22 | { 23 | ln -s $TOP_DIR/bbr-acs/common/scripts/build-sct.sh $TOP_DIR/build-scripts/build-sct.sh 24 | ln -s $TOP_DIR/bbr-acs/common/scripts/build-uefi-apps.sh $TOP_DIR/build-scripts/build-uefi-apps.sh 25 | } 26 | 27 | init_dir() 28 | { 29 | rm -rf $TOP_DIR/ramdisk 30 | rm -rf $TOP_DIR/build-scripts/config 31 | rm -rf $TOP_DIR/uefi_scripts 32 | cp -r $TOP_DIR/../common/linux_scripts $TOP_DIR/ramdisk 33 | cp -r $TOP_DIR/../common/config $TOP_DIR/build-scripts 34 | cp -r $TOP_DIR/../common/uefi_scripts $TOP_DIR/uefi_scripts 35 | mkdir -p $TOP_DIR/output 36 | } 37 | 38 | create_scripts_link 39 | init_dir 40 | 41 | source ./build-scripts/build-all.sh systemready-band F 42 | source ./build-scripts/make_image.sh systemready-band 43 | 44 | 45 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/build-uefi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2025, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # 20 | # This script uses the following environment variables from the variant 21 | # 22 | # VARIANT - build variant name 23 | # TOP_DIR - workspace root directory 24 | # CROSS_COMPILE - PATH to GCC including CROSS-COMPILE prefix 25 | # PARALLELISM - number of cores to build across 26 | # UEFI_BUILD_ENABLED - Flag to enable building UEFI 27 | # UEFI_PATH - sub-directory containing UEFI code 28 | # UEFI_BUILD_MODE - DEBUG or RELEASE 29 | # UEFI_TOOLCHAIN - Toolchain supported by Linaro uefi-tools: GCC49, GCC48 or GCC47 30 | # UEFI_PLATFORMS - List of platforms to build 31 | # UEFI_PLAT_{platform name} - array of platform parameters: 32 | # - platname - the name of the platform used by the build 33 | # - makefile - the makefile to execute for this platform 34 | # - output - where to store the files in packaging phase 35 | # - defines - extra platform defines during the build 36 | # - binary - what to call the final output binary 37 | 38 | 39 | TOP_DIR=`pwd` 40 | arch=$(uname -m) 41 | . $TOP_DIR/../common/config/systemready-band-source.cfg 42 | UEFI_PATH=edk2 43 | UEFI_TOOLCHAIN=GCC5 44 | UEFI_BUILD_MODE=RELEASE 45 | PATCH_DIR=$TOP_DIR/../patches 46 | KEYS_DIR=$TOP_DIR/bbsr-keys 47 | UEFI_SHELL_PATH=edk2/Build/Shell/RELEASE_GCC5/AARCH64 48 | 49 | if [[ $arch != "aarch64" ]]; then 50 | CROSS_COMPILE=$TOP_DIR/$GCC 51 | fi 52 | 53 | do_build() 54 | { 55 | pushd $TOP_DIR/$UEFI_PATH 56 | if [[ $arch != "aarch64" ]]; then 57 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 58 | PATH="$PATH:$CROSS_COMPILE_DIR" 59 | fi 60 | source ./edksetup.sh 61 | make -C BaseTools 62 | export EDK2_TOOLCHAIN=$UEFI_TOOLCHAIN 63 | 64 | if [[ $arch = "aarch64" ]]; then 65 | echo "arm64 native build" 66 | else 67 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 68 | PATH="$PATH:$CROSS_COMPILE_DIR" 69 | export ${UEFI_TOOLCHAIN}_AARCH64_PREFIX=$CROSS_COMPILE 70 | fi 71 | local vars= 72 | export PACKAGES_PATH=$TOP_DIR/$UEFI_PATH 73 | export PYTHON_COMMAND=/usr/bin/python3 74 | git checkout ShellPkg/ShellPkg.dsc #build shell with default file 75 | build -a AARCH64 -t GCC5 -p ShellPkg/ShellPkg.dsc -b $UEFI_BUILD_MODE -n $PARALLELISM 76 | popd 77 | } 78 | 79 | do_clean() 80 | { 81 | pushd $TOP_DIR/$UEFI_PATH 82 | if [[ $arch != "aarch64" ]]; then 83 | CROSS_COMPILE_DIR=$(dirname $CROSS_COMPILE) 84 | PATH="$PATH:$CROSS_COMPILE_DIR" 85 | fi 86 | source ./edksetup.sh 87 | make -C BaseTools clean 88 | if patch -R -p0 -s -f --dry-run < $PATCH_DIR/bsa.patch; then 89 | patch -R -p0 < $PATCH_DIR/bsa.patch 90 | fi 91 | rm -rf Build/Shell/RELEASE_GCC5 92 | popd 93 | } 94 | 95 | do_package () 96 | { 97 | echo "Packaging uefi... $VARIANT"; 98 | 99 | echo "Signing Shell Application... " 100 | pushd $TOP_DIR 101 | # sign Shell.efi with db key 102 | sbsign --key $KEYS_DIR/TestDB1.key --cert $KEYS_DIR/TestDB1.crt $TOP_DIR/$UEFI_SHELL_PATH/Shell_EA4BB293-2D7F-4456-A681-1F22F42CD0BC.efi --output $TOP_DIR/$UEFI_SHELL_PATH/Shell_EA4BB293-2D7F-4456-A681-1F22F42CD0BC.efi 103 | 104 | popd 105 | 106 | } 107 | 108 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 109 | source $DIR/framework.sh $@ 110 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/framework.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | TOP_DIR=`pwd` 20 | BAND=$1 21 | CLEAN_BUILD=$3 22 | 23 | . $TOP_DIR/../common/config/systemready-band-source.cfg 24 | 25 | set -E 26 | 27 | handle_error () 28 | { 29 | local callinfo=$(caller 0) 30 | local script=${callinfo##* } 31 | local lineno=${callinfo%% *} 32 | local func=${callinfo% *} 33 | func=${func#* } 34 | echo 35 | echo -en "${BOLD}${RED}Build failed: error while running ${func} at line " 36 | echo -en "${lineno} in ${script} for ${PLATFORM}[$FLAVOUR]" 37 | echo -e "[$FILESYSTEM_CONFIGURATION].${NORMAL}" 38 | echo 39 | exit 1 40 | } 41 | 42 | trap handle_error ERR 43 | 44 | if [ "$PARALLELISM" != "" ]; then 45 | echo "Parallelism set in environment to $PARALLELISM, not overridding" 46 | else 47 | PARALLELISM=`getconf _NPROCESSORS_ONLN` 48 | fi 49 | 50 | # Directory variables provided by the framework 51 | DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 52 | 53 | source $DIR/parse_params.sh 54 | set_formatting 55 | 56 | pushd $DIR/.. 57 | TOP_DIR=`pwd` 58 | popd 59 | 60 | PLATDIR=${TOP_DIR}/output 61 | OUTDIR=${PLATDIR} 62 | LINUX_OUT_DIR=out 63 | LINUX_PATH=linux-${LINUX_KERNEL_VERSION} 64 | 65 | if [ -n "$CLEAN_BUILD" ] && [ "$CLEAN_BUILD" = "C" ]; then 66 | do_clean 67 | fi 68 | do_build 69 | do_package 70 | -------------------------------------------------------------------------------- /SystemReady-band/build-scripts/parse_params.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | #Print the script that the user explicitly called. 20 | 21 | get_shell_type() { 22 | tty -s && echo "INTERACTIVE" || echo "NON-INTERACTIVE" 23 | } 24 | 25 | set_formatting() { 26 | if [ "$(get_shell_type)" = "INTERACTIVE" ] ; then 27 | export BOLD="\e[1m" 28 | export NORMAL="\e[0m" 29 | export RED="\e[31m" 30 | export GREEN="\e[32m" 31 | export YELLOW="\e[33m" 32 | export BLUE="\e[94m" 33 | export CYAN="\e[36m" 34 | fi 35 | } 36 | 37 | export PARSE_PARAMS_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 38 | -------------------------------------------------------------------------------- /SystemReady-band/patches/bsa.patch: -------------------------------------------------------------------------------- 1 | diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc 2 | index 7e985f8..3c66d1a 100644 3 | --- a/ShellPkg/ShellPkg.dsc 4 | +++ b/ShellPkg/ShellPkg.dsc 5 | @@ -66,6 +66,8 @@ 6 | ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf 7 | 8 | SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf 9 | + BsaValLib|ShellPkg/Application/bsa-acs/val/BsaValLib.inf 10 | + BsaPalLib|ShellPkg/Application/bsa-acs/pal/uefi_acpi/BsaPalLib.inf 11 | 12 | [PcdsFixedAtBuild] 13 | gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF 14 | @@ -93,6 +95,7 @@ 15 | ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf 16 | ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf 17 | ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf 18 | + ShellPkg/Application/bsa-acs/uefi_app/BsaAcs.inf 19 | 20 | ShellPkg/Application/Shell/Shell.inf { 21 | 22 | -------------------------------------------------------------------------------- /SystemReady-band/patches/sbsa.patch: -------------------------------------------------------------------------------- 1 | diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc 2 | index 7e985f8..ee72166 100644 3 | --- a/ShellPkg/ShellPkg.dsc 4 | +++ b/ShellPkg/ShellPkg.dsc 5 | @@ -66,6 +66,8 @@ 6 | ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf 7 | 8 | SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf 9 | + SbsaValLib|ShellPkg/Application/bsa-acs/val/SbsaValLib.inf 10 | + SbsaPalLib|ShellPkg/Application/bsa-acs/pal/uefi_acpi/SbsaPalLib.inf 11 | 12 | [PcdsFixedAtBuild] 13 | gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF 14 | @@ -93,6 +95,7 @@ 15 | ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf 16 | ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf 17 | ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf 18 | + ShellPkg/Application/sbsa-acs/uefi_app/SbsaAvs.inf 19 | 20 | ShellPkg/Application/Shell/Shell.inf { 21 | 22 | -------------------------------------------------------------------------------- /SystemReady-band/patches/sctversion.patch: -------------------------------------------------------------------------------- 1 | diff --git a/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c b/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c 2 | index 94cae289..6fde9ed0 100644 3 | --- a/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c 4 | +++ b/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c 5 | @@ -30,6 +30,7 @@ Abstract: 6 | #include "StandardTest.h" 7 | #include 8 | 9 | +#define ACS_VERSION "SystemReady band ACS v3.0.1\nBBR ACS 2.1.1 (SBBR)" 10 | static EFI_TIME Epoch = { .Year = 1970, .Month = 1, .Day = 1 }; 11 | 12 | // 13 | -------------------------------------------------------------------------------- /SystemReady-band/prebuilt_images/v24.11_3.0.0-BET0/README.md: -------------------------------------------------------------------------------- 1 | The pre-built Release Image can be found at 2 | https://github.com/ARM-software/arm-systemready/releases/download/v24.11_SR_REL3.0.0-BETA0_SR-DT_REL3.0.0-BETA0/systemready_acs_live_image.img.xz.zip 3 | 4 | Run below steps to decompress the file 5 | 6 | unzip systemready_acs_live_image.img.xz.zip \ 7 | xz -d systemready_acs_live_image.img.xz 8 | -------------------------------------------------------------------------------- /SystemReady-band/prebuilt_images/v25.04_3.0.1/README.md: -------------------------------------------------------------------------------- 1 | 2 | The SystemReady band v3.0.1 release pre-built image is available at [https://github.com/ARM-software/arm-systemready/releases/download/v25.04_SR_3.0.1/systemready_acs_live_image.img.xz.](https://github.com/ARM-software/arm-systemready/releases/download/v25.04_SR_3.0.1/systemready_acs_live_image.img.xz) 3 | 4 | Run below steps to decompress the file 5 | 6 | - xz -d systemready_acs_live_image.img.xz 7 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/build-scripts/build-systemready-dt-band-live-image.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | set -x 20 | TOP_DIR=`pwd` 21 | pushd $TOP_DIR/meta-woden 22 | kas shell kas/woden.yml --command "bitbake llvm-native && bitbake rust-native && bitbake glibc && bitbake glibc-locale && bitbake qemu-system-native && bitbake cargo-native && bitbake linux-yocto && bitbake woden-image" 23 | if [ $? -eq 0 ]; then 24 | if [ -f $TOP_DIR/meta-woden/build/tmp/deploy/images/genericarm64/woden-image-genericarm64.rootfs.wic ]; then 25 | cd $TOP_DIR/meta-woden/build/tmp/deploy/images/genericarm64 26 | rm systemready-dt_acs_live_image.wic.xz 2> /dev/null 27 | cp woden-image-genericarm64.rootfs.wic systemready-dt_acs_live_image.wic 28 | xz -z systemready-dt_acs_live_image.wic 29 | echo "The built image is at $TOP_DIR/meta-woden/build/tmp/deploy/images/genericarm64/systemready-dt_acs_live_image.wic.xz" 30 | fi 31 | fi 32 | popd 33 | 34 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/config/linux-yocto_%.bbappend: -------------------------------------------------------------------------------- 1 | ARMFILESPATHS := "${THISDIR}/${PN}:" 2 | 3 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" 4 | FILESEXTRAPATHS:prepend:genericarm64 = "${ARMFILESPATHS}" 5 | SRC_URI:append:genericarm64 = " " 6 | 7 | FILESEXTRAPATHS:prepend:qemuarm64-sbsa = "${ARMFILESPATHS}" 8 | SRC_URI:append:qemuarm64-sbsa = " \ 9 | file://defconfig.patch \ 10 | " 11 | 12 | FILESEXTRAPATHS:prepend:qemuarm64-secureboot = "${ARMFILESPATHS}" 13 | SRC_URI:append:qemuarm64-secureboot = " \ 14 | file://zone_dma_revert.patch \ 15 | file://tee.cfg \ 16 | " 17 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/conf/layer.conf: -------------------------------------------------------------------------------- 1 | # We have a conf and classes directory, add to BBPATH 2 | BBPATH .= ":${LAYERDIR}" 3 | 4 | # We have recipes-* directories, add to BBFILES 5 | BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ 6 | ${LAYERDIR}/recipes-*/*/*.bbappend" 7 | 8 | BBFILE_COLLECTIONS += "meta-woden" 9 | BBFILE_PATTERN_meta-woden = "^${LAYERDIR}/" 10 | BBFILE_PRIORITY_meta-woden = "5" 11 | 12 | LAYERDEPENDS_meta-woden = "core meta-arm openembedded-layer" 13 | LAYERSERIES_COMPAT_meta-woden = "scarthgap" 14 | 15 | IMAGE_INSTALL:append = " optee-client " 16 | IMAGE_INSTALL:append=" kernel-selftest " 17 | PACKAGECONFIG_pn-kernel-selftest="dt" 18 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/kas/external-gcc.yml: -------------------------------------------------------------------------------- 1 | header: 2 | version: 11 3 | 4 | env: 5 | EXTERNAL_TOOLCHAIN: "/usr/local/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/" 6 | 7 | local_conf_header: 8 | cc: | 9 | TCMODE = "external-arm" 10 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/kas/woden.yml: -------------------------------------------------------------------------------- 1 | header: 2 | version: 11 3 | 4 | repos: 5 | meta-woden: 6 | 7 | poky: 8 | url: https://git.yoctoproject.org/git/poky 9 | refspec: scarthgap 10 | layers: 11 | meta: 12 | meta-yocto-bsp : 13 | 14 | meta-arm: 15 | url: https://git.yoctoproject.org/git/meta-arm 16 | refspec: scarthgap 17 | layers: 18 | meta-arm: 19 | meta-arm-bsp: 20 | meta-arm-toolchain: 21 | 22 | meta-openembedded: 23 | url: https://git.openembedded.org/meta-openembedded 24 | refspec: scarthgap 25 | layers: 26 | meta-oe: 27 | meta-perl: 28 | meta-python: 29 | 30 | meta-secure-core: 31 | url: https://github.com/Wind-River/meta-secure-core 32 | refspec: scarthgap 33 | layers: 34 | meta-secure-core-common: 35 | meta-efi-secure-boot: 36 | meta-signing-key: 37 | meta-tpm2: 38 | 39 | local_conf_header: 40 | threads: | 41 | GLIBC_GENERATE_LOCALES = "en_US.UTF-8 en_GB.UTF-8 C.UTF-8" 42 | IMAGE_LINGUAS = "en-us en-gb" 43 | BB_NUMBER_THREADS = "16" 44 | PARALLEL_MAKE = "-j16" 45 | 46 | distro: woden 47 | machine: genericarm64 48 | target: 49 | - woden-image 50 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/bbsr-keys/bbsr-keys.bb: -------------------------------------------------------------------------------- 1 | LICENSE = "CLOSED" 2 | PACKAGE_ARCH = "${MACHINE_ARCH}" 3 | inherit deploy 4 | S = "${WORKDIR}" 5 | 6 | DEPENDS += "\ 7 | efitools-native \ 8 | help2man-native \ 9 | libfile-slurp-perl-native \ 10 | openssl-native \ 11 | sbsigntool-native \ 12 | " 13 | 14 | inherit perlnative 15 | 16 | do_compile() { 17 | 18 | KEYS_DIR="${S}/bbsr-keys" 19 | echo "do_compile: bbsr-keys" 20 | mkdir -p $KEYS_DIR 21 | cd $KEYS_DIR 22 | 23 | # generate TestPK1: DER and signed siglist 24 | NAME=TestPK1 25 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_PK/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 26 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 27 | cert-to-efi-sig-list $NAME.crt $NAME.esl 28 | sign-efi-sig-list -c $NAME.crt -k $NAME.key PK $NAME.esl $NAME.auth 29 | 30 | # generate NULLPK.auth to facilitate deletion of PK during development 31 | NAME=NullPK 32 | FUTURE_DATE=`date --rfc-3339=date -d "+5 year"` 33 | cat /dev/null > $NAME.esl 34 | sign-efi-sig-list -t $FUTURE_DATE -c TestPK1.crt -k TestPK1.key PK $NAME.esl $NAME.auth 35 | 36 | # generate TestKEK1: DER and signed siglist 37 | NAME=TestKEK1 38 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_KEK/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 39 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 40 | cert-to-efi-sig-list $NAME.crt $NAME.esl 41 | sign-efi-sig-list -c TestPK1.crt -k TestPK1.key KEK $NAME.esl $NAME.auth 42 | 43 | # generate TestDB1: DER and signed siglist 44 | NAME=TestDB1 45 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_DB/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 46 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 47 | cert-to-efi-sig-list $NAME.crt $NAME.esl 48 | sign-efi-sig-list -c TestKEK1.crt -k TestKEK1.key db $NAME.esl $NAME.auth 49 | 50 | # Convert TestDB1 to gpg form and import to gpg toolchain for use in signing grub 51 | #cat TestDB1.key | PEM2OPENPGP_USAGE_FLAGS=certify,sign pem2openpgp "TestDB1" > TestDB1.gpgkey 52 | #gpg --import --allow-secret-key-import TestDB1.gpgkey 53 | #gpg --export > TestDB1.pubgpg 54 | 55 | # generate TestDBX1: DER and signed siglist 56 | NAME=TestDBX1 57 | openssl req -x509 -sha256 -newkey rsa:2048 -subj /CN=TEST_PK/ -keyout $NAME.key -out $NAME.crt -nodes -days 4000 58 | openssl x509 -outform der -in $NAME.crt -out $NAME.der 59 | cert-to-efi-sig-list $NAME.crt $NAME.esl 60 | sign-efi-sig-list -c TestKEK1.crt -k TestKEK1.key dbx $NAME.esl $NAME.auth 61 | 62 | 63 | } 64 | 65 | # no install 66 | do_install[noexec] = "1" 67 | 68 | do_deploy() { 69 | # Copy the files to deploy directory 70 | KEYS_DIR="${S}/bbsr-keys" 71 | cp -r $KEYS_DIR ${DEPLOYDIR}/ 72 | echo "Keys deployed ..." 73 | } 74 | 75 | addtask deploy after do_install 76 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/bootfs-files/bootfs-files.bb: -------------------------------------------------------------------------------- 1 | LICENSE = "CLOSED" 2 | 3 | PACKAGE_ARCH = "${MACHINE_ARCH}" 4 | 5 | inherit deploy 6 | DEPENDS = "ebbr-sct" 7 | S = "${WORKDIR}" 8 | 9 | SRC_URI = " file://bsa.nsh \ 10 | file://debug_dump.nsh \ 11 | file://startup.nsh \ 12 | file://pingtest.nsh \ 13 | file://capsule_update.nsh \ 14 | file://bbsr_startup.nsh \ 15 | file://acs_config_dt.txt \ 16 | file://system_config.txt \ 17 | " 18 | 19 | # no configure step 20 | do_configure[noexec] = "1" 21 | 22 | # no compile 23 | do_compile[noexec] = "1" 24 | 25 | # no install 26 | do_install[noexec] = "1" 27 | 28 | do_deploy() { 29 | # Copy the files to deploy directory 30 | cp bsa.nsh ${DEPLOYDIR}/ 31 | cp debug_dump.nsh ${DEPLOYDIR}/ 32 | cp startup.nsh ${DEPLOYDIR}/ 33 | cp pingtest.nsh ${DEPLOYDIR}/ 34 | cp capsule_update.nsh ${DEPLOYDIR}/ 35 | cp bbsr_startup.nsh ${DEPLOYDIR}/ 36 | cp acs_config_dt.txt ${DEPLOYDIR}/acs_config.txt 37 | cp system_config.txt ${DEPLOYDIR}/ 38 | cp ${S}/../../../armv8a-oe-linux/ebbr-sct/1.0/bbr-acs/bbsr/config/BBSRStartup.nsh ${DEPLOYDIR}/bbsr_SctStartup.nsh 39 | 40 | # create and copy necessary flags to deploy directory 41 | touch bsa_dt.flag yocto_image.flag 42 | cp bsa_dt.flag yocto_image.flag ${DEPLOYDIR}/ 43 | 44 | } 45 | 46 | addtask deploy after do_install 47 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/bsa-acs-app/bsa-acs-app.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "BSA ACS Linux application" 2 | LICENSE = "Apache-2.0" 3 | LIC_FILES_CHKSUM = "file://bsa-acs/LICENSE.md;md5=2a944942e1496af1886903d274dedb13 \ 4 | " 5 | 6 | SRC_URI = "git://github.com/ARM-software/bsa-acs;destsuffix=bsa-acs;protocol=https;branch=main;name=bsa-acs \ 7 | " 8 | SRCREV_bsa-acs = "${AUTOREV}" 9 | 10 | S = "${WORKDIR}" 11 | TARGET_CC_ARCH += "${LDFLAGS}" 12 | 13 | do_compile() { 14 | cd ${S}/bsa-acs/linux_app/bsa-acs-app 15 | ${CC} *.c -Iinclude -o ${S}/bsa 16 | } 17 | 18 | do_install() { 19 | install -d ${D}${bindir} 20 | install -m 0755 bsa ${D}${bindir} 21 | } 22 | 23 | FILES:${PN} += "${bindir}/*" 24 | 25 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/bsa-acs-drv/bsa-acs-drv.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "BSA-ACS Linux driver" 2 | LICENSE = "GPLv2 & Apache-2.0" 3 | LIC_FILES_CHKSUM = "file://bsa-acs/LICENSE.md;md5=2a944942e1496af1886903d274dedb13 \ 4 | file://linux-acs/acs-drv/files/COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ 5 | " 6 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" 7 | 8 | inherit module-base 9 | 10 | SRC_URI += "git://github.com/ARM-software/bsa-acs;destsuffix=bsa-acs;protocol=https;branch=main;name=bsa-acs \ 11 | git://git.gitlab.arm.com/linux-arm/linux-acs.git;destsuffix=linux-acs;protocol=https;branch=master;name=linux-acs \ 12 | " 13 | SRCREV_FORMAT = "bsa-acs_linux-acs" 14 | SRCREV_bsa-acs = "${AUTOREV}" 15 | SRCREV_linux-acs = "${AUTOREV}" 16 | 17 | S = "${WORKDIR}" 18 | MODULE_NAME = "bsa_acs" 19 | 20 | do_configure(){ 21 | cd ${S}/linux-acs/acs-drv/files/ 22 | ./bsa_setup.sh ${S}/bsa-acs 23 | } 24 | 25 | do_compile() { 26 | export KERNEL_SRC=${STAGING_KERNEL_DIR} 27 | cd ${S}/linux-acs/acs-drv/files/ 28 | ./linux_bsa_acs.sh 29 | } 30 | 31 | do_install() { 32 | install -d ${D}/${base_libdir}/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME} 33 | install -m 0644 ${S}/linux-acs/acs-drv/files/${MODULE_NAME}.ko \ 34 | ${D}/${base_libdir}/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko 35 | } 36 | 37 | FILES:${PN} += "${base_libdir}/* \ 38 | " 39 | 40 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/bsa-acs-uefi/bsa-acs.bb: -------------------------------------------------------------------------------- 1 | require recipes-acs/edk2-firmware/edk2-firmware-rev.bb 2 | 3 | PROVIDES:remove = "virtual/uefi-firmware" 4 | PROVIDES:remove = "virtual/bootloader" 5 | 6 | LICENSE += "& Apache-2.0" 7 | LIC_FILES_CHKSUM += "file://ShellPkg/Application/bsa-acs/LICENSE.md;md5=2a944942e1496af1886903d274dedb13" 8 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" 9 | 10 | SRC_URI += "git://github.com/ARM-software/bsa-acs;destsuffix=edk2/ShellPkg/Application/bsa-acs;protocol=https;branch=main;name=bsa-acs \ 11 | git://github.com/tianocore/edk2-libc;destsuffix=edk2/edk2-libc;protocol=https;branch=master;name=edk2-libc \ 12 | file://bsa.patch \ 13 | " 14 | 15 | SRCREV_bsa-acs = "${AUTOREV}" 16 | SRCREV_edk2-libc = "${AUTOREV}" 17 | 18 | COMPATIBLE_HOST = "aarch64.*-linux" 19 | EDK2_ARCH = "AARCH64" 20 | EDK2_PLATFORM = "Shell" 21 | EDK2_PLATFORM_DSC = "ShellPkg/ShellPkg.dsc" 22 | EDK2_EXTRA_BUILD = "--module ShellPkg/Application/bsa-acs/uefi_app/BsaAcs.inf" 23 | 24 | PACKAGES_PATH .= ":${S}/edk2-libc" 25 | 26 | do_install() { 27 | install -d ${D}/firmware 28 | install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/*/Bsa.efi ${D}/firmware/ 29 | } 30 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/dejavu-fonts/dejavu-fonts_2.37.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "DejaVu Fonts - High quality fonts with extensive language support" 18 | HOMEPAGE = "https://dejavu-fonts.github.io/" 19 | LICENSE = "BitstreamVera" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=449b2c30bfe5fa897fe87b8b70b16cfa" 21 | 22 | PV = "2.37" 23 | SRC_URI = "https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version-2.37/dejavu-fonts-ttf-2.37.tar.bz2" 24 | SRC_URI[sha256sum] = "fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7" 25 | 26 | S = "${WORKDIR}/dejavu-fonts-ttf-${PV}" 27 | do_install() { 28 | # Create the target directory for fonts 29 | install -d ${D}${datadir}/fonts/dejavu 30 | # Copy the TrueType fonts to the target directory. 31 | cp -r ${S}/ttf/* ${D}${datadir}/fonts/dejavu/ 32 | } 33 | 34 | # Package the dejavu fonts. 35 | FILES:${PN} = "${datadir}/fonts/dejavu" 36 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/ebbr-sct/files/sctversion.patch: -------------------------------------------------------------------------------- 1 | diff --git a/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c b/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c 2 | index 94cae289..5ecc0946 100644 3 | --- a/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c 4 | +++ b/uefi-sct/SctPkg/TestInfrastructure/SCT/Drivers/StandardTest/StandardTest.c 5 | @@ -30,6 +30,7 @@ Abstract: 6 | #include "StandardTest.h" 7 | #include 8 | 9 | +#define ACS_VERSION "SystemReady devicetree ACS v3.0.1\nBBR ACS 2.2.1 (EBBR)" 10 | static EFI_TIME Epoch = { .Year = 1970, .Month = 1, .Day = 1 }; 11 | 12 | // 13 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/edk2-firmware/edk2-firmware-rev.bb: -------------------------------------------------------------------------------- 1 | 2 | SRCREV_edk2 ?= "${AUTOREV}" 3 | SRCREV_edk2-platforms ?= "${AUTOREV}" 4 | 5 | FILESEXTRAPATHS:prepend := "${TOPDIR}/../meta-arm/meta-arm/recipes-bsp/uefi/files:${TOPDIR}/../recipes-acs/edk2-firmware/files:" 6 | 7 | require recipes-bsp/uefi/edk2-firmware.inc 8 | 9 | SRC_URI:remove = "file://unaligned.patch" 10 | SRC_URI:append = " file://allow_capsule_on_disk.patch " 11 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/edk2-firmware/files/allow_capsule_on_disk.patch: -------------------------------------------------------------------------------- 1 | REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4038 2 | 3 | When BootOrder is not defined, CapsuleApp.efi will not find a file system 4 | to store the capsule for on-disk update because GetUpdateFileSystem() will 5 | fail. 6 | 7 | BootOrder is an EFI Global Variable, which default state is firmware vendor 8 | specific. It is possible for BootOrder to not be defined as mentioned in 9 | the UEFI Specification in chapter 3.4.3, "Boot Option Variables Default 10 | Boot Behavior". 11 | 12 | Relax the check to allow that case. 13 | 14 | Signed-off-by: Vincent Stehlé 15 | --- 16 | 17 | 18 | Hi, 19 | 20 | This has passed CI with pull request https://github.com/tianocore/edk2/pull/3263. 21 | 22 | Best regards, 23 | Vincent. 24 | 25 | 26 | MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c | 5 +---- 27 | 1 file changed, 1 insertion(+), 4 deletions(-) 28 | 29 | diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c b/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c 30 | index 5ce5a50f7b..f04de00f65 100644 31 | --- a/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c 32 | +++ b/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c 33 | @@ -456,10 +456,7 @@ GetUpdateFileSystem ( 34 | // 2. Get EFI system partition form boot options. 35 | // 36 | BootOptionBuffer = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot); 37 | - if ((BootOptionBuffer == NULL) || 38 | - ((BootOptionCount == 0) && (Map == NULL)) 39 | - ) 40 | - { 41 | + if ((BootOptionBuffer != NULL) && (BootOptionCount == 0) && (Map == NULL)) { 42 | return EFI_NOT_FOUND; 43 | } 44 | 45 | -- 46 | 2.35.1 47 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/edk2-test-parser/edk2-test-parser.bb: -------------------------------------------------------------------------------- 1 | LICENSE = "BSD-2-Clause" 2 | LIC_FILES_CHKSUM = "file://edk2-test-parser/LICENSE;md5=c0550be4b3b9c0223efd0eaa70dc9085" 3 | S = "${WORKDIR}" 4 | 5 | SRC_URI = "git://git.gitlab.arm.com/systemready/edk2-test-parser.git;destsuffix=edk2-test-parser;protocol=https;branch=main;name=edk2-test-parser \ 6 | " 7 | 8 | SRCREV_edk2-test-parser = "${AUTOREV}" 9 | 10 | RDEPENDS:${PN} += "bash python3-pyyaml python3-junit-xml python3-packaging" 11 | 12 | do_install(){ 13 | install -d ${D}${bindir} 14 | mkdir -p ${D}/${bindir}/edk2-test-parser 15 | cp -r ${S}/edk2-test-parser/* ${D}/${bindir}/edk2-test-parser/ 16 | 17 | } 18 | FILES:${PN} += "${bindir}/edk2-test-parser/*" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/edk2-test-parser/python3-junit-xml_1.9.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" 2 | HOMEPAGE = "https://github.com/kyrus/python-junit-xml" 3 | LICENSE = "MIT" 4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0ec4326265b988497f17c3bf20d2898c" 5 | inherit pypi setuptools3 6 | SRC_URI[sha256sum] = "de16a051990d4e25a3982b2dd9e89d671067548718866416faec14d9de56db9f" 7 | 8 | PYPI_PACKAGE = "junit-xml" 9 | 10 | DEPENDS += "python3-setuptools-scm-native" 11 | 12 | BBCLASSEXTEND = "native nativesdk" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/files/0001-Add-correct-printf-qualifier-for-off_t.patch: -------------------------------------------------------------------------------- 1 | From ee787b53d734cd952c170c9303d213d3dd18a86f Mon Sep 17 00:00:00 2001 2 | From: Khem Raj 3 | Date: Thu, 8 Jun 2017 16:49:50 -0700 4 | Subject: [PATCH 1/6] Add correct printf qualifier for off_t 5 | 6 | Signed-off-by: Khem Raj 7 | --- 8 | src/bios/ebda_region/ebda_region.c | 10 +++++----- 9 | 1 file changed, 5 insertions(+), 5 deletions(-) 10 | 11 | diff --git a/src/bios/ebda_region/ebda_region.c b/src/bios/ebda_region/ebda_region.c 12 | index b70ced10..947a24bd 100644 13 | --- a/src/bios/ebda_region/ebda_region.c 14 | +++ b/src/bios/ebda_region/ebda_region.c 15 | @@ -83,9 +83,9 @@ static int ebda_test1(fwts_framework *fw) 16 | if ((entry != NULL) && 17 | (entry->type == FWTS_MEMORY_MAP_RESERVED || 18 | entry->type == FWTS_MEMORY_MAP_ACPI)) { 19 | - fwts_passed(fw, "EBDA region mapped at 0x%lx and reserved as a %" PRId64 20 | + fwts_passed(fw, "EBDA region mapped at 0x%jdx and reserved as a %" PRId64 21 | "K region in the %s table at 0x%" PRIx64 "..0x%" PRIx64 ".", 22 | - ebda_addr, 23 | + (intmax_t)ebda_addr, 24 | (entry->end_address - entry->start_address) / 1024, 25 | memory_map_name, 26 | entry->start_address, 27 | @@ -93,9 +93,9 @@ static int ebda_test1(fwts_framework *fw) 28 | } else 29 | fwts_failed(fw, LOG_LEVEL_MEDIUM, 30 | "EBDAMappedNotReserved", 31 | - "EBDA region mapped at 0x%lx but not reserved in the %s table.", 32 | - ebda_addr, memory_map_name); 33 | - 34 | + "EBDA region mapped at 0x%jdx but not reserved in the %s table.", 35 | + (intmax_t)ebda_addr, memory_map_name); 36 | + 37 | return FWTS_OK; 38 | } 39 | 40 | -- 41 | 2.25.1 42 | 43 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/files/0002-Include-poll.h-instead-of-deprecated-sys-poll.h.patch: -------------------------------------------------------------------------------- 1 | From 1575b5ce3ecb8709806908061f689315553b40c7 Mon Sep 17 00:00:00 2001 2 | From: Khem Raj 3 | Date: Tue, 6 Jun 2017 07:25:09 -0700 4 | Subject: [PATCH 2/6] Include poll.h instead of deprecated sys/poll.h 5 | 6 | Upstream-Status: Pending 7 | 8 | Signed-off-by: Khem Raj 9 | --- 10 | src/lib/src/fwts_ipmi.c | 3 ++- 11 | src/lib/src/fwts_pipeio.c | 2 +- 12 | 2 files changed, 3 insertions(+), 2 deletions(-) 13 | 14 | diff --git a/src/lib/src/fwts_ipmi.c b/src/lib/src/fwts_ipmi.c 15 | index ca7c55bb..0b16bec3 100644 16 | --- a/src/lib/src/fwts_ipmi.c 17 | +++ b/src/lib/src/fwts_ipmi.c 18 | @@ -18,10 +18,11 @@ 19 | * 20 | */ 21 | 22 | +#include 23 | + 24 | #include 25 | #include 26 | #include 27 | -#include 28 | #include 29 | #include 30 | 31 | diff --git a/src/lib/src/fwts_pipeio.c b/src/lib/src/fwts_pipeio.c 32 | index 716297c4..37752297 100644 33 | --- a/src/lib/src/fwts_pipeio.c 34 | +++ b/src/lib/src/fwts_pipeio.c 35 | @@ -30,9 +30,9 @@ 36 | #include 37 | #include 38 | #include 39 | +#include 40 | 41 | #include 42 | -#include 43 | #include 44 | #include 45 | #include 46 | -- 47 | 2.25.1 48 | 49 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/files/0003-Remove-Werror-from-build.patch: -------------------------------------------------------------------------------- 1 | From 7317aba872f2bcf052a7db9fa3c7a7ce3c55dc6b Mon Sep 17 00:00:00 2001 2 | From: Benjamin Berg 3 | Date: Mon, 21 Aug 2017 10:34:40 +0200 4 | Subject: [PATCH 3/6] Remove -Werror from build 5 | 6 | Upstream-Status: Pending 7 | --- 8 | src/Makefile.am | 2 +- 9 | src/lib/src/Makefile.am | 2 +- 10 | src/utilities/Makefile.am | 2 +- 11 | 3 files changed, 3 insertions(+), 3 deletions(-) 12 | 13 | diff --git a/src/Makefile.am b/src/Makefile.am 14 | index f8066af..6b979f8 100644 15 | --- a/src/Makefile.am 16 | +++ b/src/Makefile.am 17 | @@ -12,7 +12,7 @@ AM_CPPFLAGS = \ 18 | -I$(top_srcdir)/src/acpica/source/compiler \ 19 | -I$(top_srcdir)/efi_runtime \ 20 | -pthread `pkg-config --cflags glib-2.0 gio-2.0` \ 21 | - -Wall -Werror -Wextra \ 22 | + -Wall -Wextra \ 23 | -Wno-address-of-packed-member \ 24 | -Wfloat-equal -Wmissing-declarations \ 25 | -Wno-long-long -Wredundant-decls -Wshadow \ 26 | diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am 27 | index 55c52b4..50efa97 100644 28 | --- a/src/lib/src/Makefile.am 29 | +++ b/src/lib/src/Makefile.am 30 | @@ -25,7 +25,7 @@ AM_CPPFLAGS = \ 31 | `pkg-config --silence-errors --cflags json-c` \ 32 | `pkg-config --cflags glib-2.0 gio-2.0` \ 33 | -DDATAROOTDIR=\"$(datarootdir)\" \ 34 | - -Wall -Werror -Wextra \ 35 | + -Wall -Wextra \ 36 | -Wno-address-of-packed-member 37 | 38 | pkglib_LTLIBRARIES = libfwts.la 39 | diff --git a/src/utilities/Makefile.am b/src/utilities/Makefile.am 40 | index a7d9b9c..e1bf141 100644 41 | --- a/src/utilities/Makefile.am 42 | +++ b/src/utilities/Makefile.am 43 | @@ -16,7 +16,7 @@ 44 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 45 | # 46 | 47 | -AM_CPPFLAGS = -Wall -Werror -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \ 48 | +AM_CPPFLAGS = -Wall -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \ 49 | -I$(srcdir)/../lib/include 50 | 51 | bin_PROGRAMS = kernelscan 52 | -- 53 | 2.25.1 54 | 55 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/files/0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch: -------------------------------------------------------------------------------- 1 | From 9456f2f779d3ed4a134d55571d8bec78ad3b28c1 Mon Sep 17 00:00:00 2001 2 | From: Khem Raj 3 | Date: Tue, 6 Jun 2017 07:37:20 -0700 4 | Subject: [PATCH 4/6] Define __SWORD_TYPE if not defined by libc 5 | 6 | __SWORD_TYPE is internal to glibc, therefore 7 | check and define it if needed e.g. on musl 8 | 9 | Upstream-Status: Pending 10 | 11 | Signed-off-by: Khem Raj 12 | --- 13 | src/lib/src/fwts_uefi.c | 4 ++++ 14 | 1 file changed, 4 insertions(+) 15 | 16 | diff --git a/src/lib/src/fwts_uefi.c b/src/lib/src/fwts_uefi.c 17 | index 138f1164..13d9e36c 100644 18 | --- a/src/lib/src/fwts_uefi.c 19 | +++ b/src/lib/src/fwts_uefi.c 20 | @@ -63,6 +63,10 @@ typedef struct { 21 | #define UEFI_IFACE_SYSFS (2) /* sysfs */ 22 | #define UEFI_IFACE_EFIVARS (3) /* efivar fs */ 23 | 24 | +#ifndef __SWORD_TYPE 25 | +typedef __typeof__( ((struct statfs *)0)->f_type ) __SWORD_TYPE; 26 | +#endif 27 | + 28 | /* File system magic numbers */ 29 | #define PSTOREFS_MAGIC ((__SWORD_TYPE)0x6165676C) 30 | #define EFIVARFS_MAGIC ((__SWORD_TYPE)0xde5e81e4) 31 | -- 32 | 2.25.1 33 | 34 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/files/0005-Undefine-PAGE_SIZE.patch: -------------------------------------------------------------------------------- 1 | From 53b9f97fb7faed043134f2ab738347b20379d32f Mon Sep 17 00:00:00 2001 2 | From: Khem Raj 3 | Date: Tue, 6 Jun 2017 07:39:28 -0700 4 | Subject: [PATCH 5/6] Undefine PAGE_SIZE 5 | 6 | musl defines PAGE_SIZE and build complains 7 | of multiple definitions 8 | 9 | Upstream-Status: Pending 10 | 11 | Signed-off-by: Khem Raj 12 | --- 13 | src/lib/src/fwts_acpi_tables.c | 1 + 14 | 1 file changed, 1 insertion(+) 15 | 16 | diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c 17 | index dc42a8bd..4fa1246a 100644 18 | --- a/src/lib/src/fwts_acpi_tables.c 19 | +++ b/src/lib/src/fwts_acpi_tables.c 20 | @@ -42,6 +42,7 @@ 21 | #define BIOS_START (0x000e0000) /* Start of BIOS memory */ 22 | #define BIOS_END (0x000fffff) /* End of BIOS memory */ 23 | #define BIOS_LENGTH (BIOS_END - BIOS_START) /* Length of BIOS memory */ 24 | +#undef PAGE_SIZE 25 | #define PAGE_SIZE (4096) 26 | 27 | static fwts_acpi_table_info tables[ACPI_MAX_TABLES]; 28 | -- 29 | 2.25.1 30 | 31 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/files/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch: -------------------------------------------------------------------------------- 1 | From f723458eb649a9ad1d5d0e3dd6e801b284680fa7 Mon Sep 17 00:00:00 2001 2 | From: Khem Raj 3 | Date: Thu, 8 Jun 2017 16:50:59 -0700 4 | Subject: [PATCH 6/6] use intptr_t to fix pointer-to-int-cast issues 5 | 6 | uintptr_t is guaranteed to be wide enough that 7 | converting a void* to uintptr_t and back again 8 | will yield the original pointer value 9 | 10 | Signed-off-by: Khem Raj 11 | --- 12 | src/lib/src/fwts_acpi_tables.c | 4 ++-- 13 | src/lib/src/fwts_mmap.c | 2 +- 14 | src/lib/src/fwts_smbios.c | 2 +- 15 | 3 files changed, 4 insertions(+), 4 deletions(-) 16 | 17 | diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c 18 | index 4fa1246a..7ef197cd 100644 19 | --- a/src/lib/src/fwts_acpi_tables.c 20 | +++ b/src/lib/src/fwts_acpi_tables.c 21 | @@ -173,7 +173,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr, 22 | return NULL; 23 | } 24 | 25 | - if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED) 26 | + if ((mem = fwts_mmap((uintptr_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED) 27 | return NULL; 28 | 29 | if (fwts_safe_memcpy(rsdp, mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) { 30 | @@ -486,7 +486,7 @@ static int fwts_acpi_load_tables_from_firmware(fwts_framework *fw) 31 | if ((rsdp = fwts_acpi_get_rsdp(fw, rsdp_addr, &rsdp_len)) == NULL) 32 | return FWTS_ERROR; 33 | 34 | - fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(off_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE); 35 | + fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(uintptr_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE); 36 | 37 | /* Load any tables from XSDT if it's valid */ 38 | if (rsdp->xsdt_address) { 39 | diff --git a/src/lib/src/fwts_mmap.c b/src/lib/src/fwts_mmap.c 40 | index 2f2514f1..fbd946f4 100644 41 | --- a/src/lib/src/fwts_mmap.c 42 | +++ b/src/lib/src/fwts_mmap.c 43 | @@ -82,7 +82,7 @@ int fwts_munmap(void *mem, const size_t size) 44 | off_t offset; 45 | 46 | page_size = fwts_page_size(); 47 | - offset = ((off_t)(mem)) & (page_size - 1); 48 | + offset = ((uintptr_t)(mem)) & (page_size - 1); 49 | 50 | if (munmap((void *)((uint8_t *)mem - offset), size + offset) < 0) 51 | return FWTS_ERROR; 52 | diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c 53 | index 8da572e9..04315bd3 100644 54 | --- a/src/lib/src/fwts_smbios.c 55 | +++ b/src/lib/src/fwts_smbios.c 56 | @@ -78,7 +78,7 @@ static void *fwts_smbios_find_entry_uefi( 57 | if ((addr = fwts_scan_efi_systab(smbios)) != NULL) { 58 | fwts_smbios_entry *mapped_entry; 59 | 60 | - if ((mapped_entry = fwts_mmap((off_t)addr, size)) != FWTS_MAP_FAILED) { 61 | + if ((mapped_entry = fwts_mmap((uintptr_t)addr, size)) != FWTS_MAP_FAILED) { 62 | if (fwts_safe_memcpy(entry, mapped_entry, size) == FWTS_OK) { 63 | (void)fwts_munmap(mapped_entry, size); 64 | *type = FWTS_SMBIOS; 65 | -- 66 | 2.25.1 67 | 68 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_21.06.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPLv2+" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0002-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \ 11 | file://0003-Remove-Werror-from-build.patch \ 12 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 13 | file://0005-Undefine-PAGE_SIZE.patch \ 14 | file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ 15 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 16 | " 17 | SRC_URI[sha256sum] = "ca43439707976f6664fe3f6eb7f356a51ac7d7f8a4e246ef4d1b16305e066909" 18 | 19 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 20 | 21 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 22 | DEPENDS:append:libc-musl = " libexecinfo" 23 | 24 | # Use brokensep for now (https://github.com/ColinIanKing/fwts/issues/2) 25 | inherit autotools-brokensep bash-completion pkgconfig 26 | 27 | LDFLAGS:append:libc-musl = " -lexecinfo" 28 | 29 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 30 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 31 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 32 | 33 | RDEPENDS:${PN} += "dtc" 34 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_22.05.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0003-Remove-Werror-from-build.patch \ 11 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 12 | file://0005-Undefine-PAGE_SIZE.patch \ 13 | file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ 14 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 15 | " 16 | SRC_URI[sha256sum] = "9a1a2ca3e37d49d46459d647be20ec70efd0e6a75848d2e5a8c51fc21b4bc191" 17 | 18 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 19 | 20 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 21 | DEPENDS:append:libc-musl = " libexecinfo" 22 | 23 | inherit autotools bash-completion pkgconfig 24 | 25 | LDFLAGS:append:libc-musl = " -lexecinfo" 26 | 27 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 28 | # surprisingly 29 | ASNEEDED:powerpc64le = "" 30 | 31 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 32 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 33 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 34 | 35 | RDEPENDS:${PN} += "dtc" 36 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_22.07.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 11 | file://0005-Undefine-PAGE_SIZE.patch \ 12 | file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ 13 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 14 | " 15 | SRC_URI[sha256sum] = "c611776c0129672bc552644126901079a4eaef2ff7f776da5670e81e9bc989d3" 16 | 17 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 18 | 19 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 20 | DEPENDS:append:libc-musl = " libexecinfo" 21 | 22 | inherit autotools bash-completion pkgconfig 23 | 24 | LDFLAGS:append:libc-musl = " -lexecinfo" 25 | 26 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 27 | # surprisingly 28 | ASNEEDED:powerpc64le = "" 29 | 30 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 31 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 32 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 33 | 34 | RDEPENDS:${PN} += "dtc" 35 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_23.01.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=b0c6617190332a22f34a7b31222e0f7b" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 11 | file://0005-Undefine-PAGE_SIZE.patch \ 12 | file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ 13 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 14 | " 15 | SRC_URI[sha256sum] = "d7fc306046852163149cc1572c4cea5f06ec6e725556943035c079cff0f125a8" 16 | 17 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 18 | 19 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 20 | DEPENDS:append:libc-musl = " libexecinfo" 21 | 22 | inherit autotools bash-completion pkgconfig 23 | 24 | LDFLAGS:append:libc-musl = " -lexecinfo" 25 | 26 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 27 | # surprisingly 28 | ASNEEDED:powerpc64le = "" 29 | 30 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 31 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 32 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 33 | 34 | RDEPENDS:${PN} += "dtc" 35 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_23.07.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=b0c6617190332a22f34a7b31222e0f7b" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 11 | file://0005-Undefine-PAGE_SIZE.patch \ 12 | file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ 13 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 14 | " 15 | SRC_URI[sha256sum] = "a15e11c42856e9dfcf7ac23ed370618d2777eb996dd7843accf12d45b21b551c" 16 | 17 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 18 | 19 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 20 | DEPENDS:append:libc-musl = " libexecinfo" 21 | 22 | inherit autotools bash-completion pkgconfig 23 | 24 | LDFLAGS:append:libc-musl = " -lexecinfo" 25 | 26 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 27 | # surprisingly 28 | ASNEEDED:powerpc64le = "" 29 | 30 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 31 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 32 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 33 | 34 | RDEPENDS:${PN} += "dtc" 35 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_24.01.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=ccd2fa23a65cba05998f64953b38d8be" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 11 | file://0005-Undefine-PAGE_SIZE.patch \ 12 | file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \ 13 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 14 | " 15 | SRC_URI[sha256sum] = "f6bfdad9985966bd677b5a189cb1bd3479be6a6b6bfb5e9e56a9d1557de72109" 16 | 17 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 18 | 19 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 20 | DEPENDS:append:libc-musl = " libexecinfo" 21 | 22 | inherit autotools bash-completion pkgconfig 23 | 24 | LDFLAGS:append:libc-musl = " -lexecinfo" 25 | 26 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 27 | # surprisingly 28 | ASNEEDED:powerpc64le = "" 29 | 30 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 31 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 32 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 33 | 34 | RDEPENDS:${PN} += "dtc" 35 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_24.03.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=ccd2fa23a65cba05998f64953b38d8be" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 11 | file://0005-Undefine-PAGE_SIZE.patch \ 12 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 13 | " 14 | SRC_URI[sha256sum] = "d7f2642b1ec3697be798409decd6593d52bb1438f0d2dc697cbc85f52d19b41e" 15 | 16 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 17 | 18 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 19 | DEPENDS:append:libc-musl = " libexecinfo" 20 | 21 | inherit autotools bash-completion pkgconfig 22 | 23 | LDFLAGS:append:libc-musl = " -lexecinfo" 24 | 25 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 26 | # surprisingly 27 | ASNEEDED:powerpc64le = "" 28 | 29 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 30 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 31 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 32 | 33 | RDEPENDS:${PN} += "dtc" 34 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_24.09.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=ccd2fa23a65cba05998f64953b38d8be" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 11 | file://0005-Undefine-PAGE_SIZE.patch \ 12 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 13 | file://0008-acpi-iort-memory-access-flag-update.patch \ 14 | " 15 | SRC_URI[sha256sum] = "4f352dedd630217a3551bb4f6e8d61f8514be457d37b90c936c3b6cfb6a6fa7e" 16 | 17 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 18 | 19 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 20 | DEPENDS:append:libc-musl = " libexecinfo" 21 | 22 | inherit autotools bash-completion pkgconfig 23 | 24 | LDFLAGS:append:libc-musl = " -lexecinfo" 25 | 26 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 27 | # surprisingly 28 | ASNEEDED:powerpc64le = "" 29 | 30 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 31 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 32 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 33 | 34 | RDEPENDS:${PN} += "dtc" 35 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/fwts/fwts_25.01.00.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Firmware testsuite" 2 | DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)." 3 | HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts" 4 | 5 | LICENSE = "GPL-2.0-or-later" 6 | LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=b5f3369552c236363b2d8a76cb7d3e6a" 7 | 8 | SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \ 9 | file://0001-Add-correct-printf-qualifier-for-off_t.patch \ 10 | file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \ 11 | file://0005-Undefine-PAGE_SIZE.patch \ 12 | file://0001-uefi-esrt-Added-esrt_test2-for-EBBR.patch \ 13 | " 14 | SRC_URI[sha256sum] = "c8bbf62f4bd80f17bb768bab3863ee93e195b2047d10637a3d03fe2086291bd7" 15 | 16 | COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux" 17 | 18 | DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd" 19 | DEPENDS:append:libc-musl = " libexecinfo" 20 | 21 | inherit autotools bash-completion pkgconfig 22 | 23 | LDFLAGS:append:libc-musl = " -lexecinfo" 24 | 25 | # We end up linker barfing with undefined symbols on ppc64 but not on other arches 26 | # surprisingly 27 | ASNEEDED:powerpc64le = "" 28 | 29 | FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}" 30 | FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la" 31 | FILES:${PN}-staticdev += "${libdir}/fwts/lib*a" 32 | 33 | RDEPENDS:${PN} += "dtc" 34 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/grub/grub-efi_%.bbappend: -------------------------------------------------------------------------------- 1 | # add chainloader 2 | 3 | GRUB_BUILDIN = "boot linux ext2 fat serial part_msdos part_gpt normal \ 4 | pgp gcry_sha512 gcry_rsa ntfs ntfscomp hfsplus help \ 5 | terminal terminfo tpm lsefi gettext read search_fs_file \ 6 | search_fs_uuid search_label \ 7 | efi_gop iso9660 configfile search loadenv test chain" 8 | 9 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/install-files/files/acs_run-before-login-prompt.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Run script with systemd right before login prompt 3 | #After=systemd-user-sessions.service plymouth-quit-wait.service 4 | After=results.mount 5 | Before=getty.target 6 | 7 | [Service] 8 | Type=simple 9 | RemainAfterExit=yes 10 | StandardOutput=journal+console 11 | ExecStart=/usr/bin/init.sh 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/install-files/files/device_driver_info.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | output_file="device_driver_info.log" 20 | 21 | # Search within /sys for directories with non-empty drivers subdirectory 22 | find /sys -type d -name drivers -exec bash -c ' 23 | driver_dir=$(dirname "$0") # Path to the driver subdirectory 24 | if [ -n "$(ls -A "$0")" ]; then 25 | parent_name=$(basename "$driver_dir") # Extract the parent directory name 26 | for driver_name in $(ls "$0"); do 27 | echo "$parent_name : $driver_name" >> "$1" 28 | done 29 | fi 30 | ' {} "$output_file" \; 31 | echo "$1" 32 | echo "Device and Driver information saved to $output_file" 33 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/install-files/systemd-init-install.bb: -------------------------------------------------------------------------------- 1 | LICENSE = "CLOSED" 2 | inherit systemd 3 | DEPENDS = "ebbr-sct" 4 | SYSTEMD_AUTO_ENABLE = "enable" 5 | SYSTEMD_SERVICE:${PN} = "acs_run-before-login-prompt.service" 6 | 7 | SRC_URI:append = " file://acs_run-before-login-prompt.service \ 8 | file://init.sh \ 9 | file://secure_init.sh \ 10 | file://verify_tpm_measurements.py \ 11 | file://extract_capsule_fw_version.py \ 12 | file://ethtool-test.py \ 13 | file://read_write_check_blk_devices.py \ 14 | file://device_driver_info.sh \ 15 | file://log_parser \ 16 | " 17 | 18 | FILES:${PN} += "${systemd_unitdir}/system" 19 | RDEPENDS:${PN} += "bash" 20 | 21 | do_install:append() { 22 | echo "S is ${S}" 23 | install -d ${D}${systemd_unitdir}/system 24 | install -d ${D}${bindir} 25 | install -m 0770 ${WORKDIR}/init.sh ${D}${bindir} 26 | install -m 0770 ${WORKDIR}/../../ebbr-sct/1.0/bbr-acs/ebbr/config/ir_bbr_fwts_tests.ini ${D}${bindir} 27 | install -m 0770 ${WORKDIR}/secure_init.sh ${D}${bindir} 28 | install -m 0770 ${WORKDIR}/../../ebbr-sct/1.0/bbr-acs/bbsr/config/bbsr_fwts_tests.ini ${D}${bindir} 29 | install -m 0644 ${WORKDIR}/acs_run-before-login-prompt.service ${D}${systemd_unitdir}/system 30 | install -m 0770 ${WORKDIR}/verify_tpm_measurements.py ${D}${bindir} 31 | install -m 0770 ${WORKDIR}/extract_capsule_fw_version.py ${D}${bindir} 32 | install -m 0770 ${WORKDIR}/ethtool-test.py ${D}${bindir} 33 | install -m 0770 ${WORKDIR}/read_write_check_blk_devices.py ${D}${bindir} 34 | install -m 0770 ${WORKDIR}/device_driver_info.sh ${D}${bindir} 35 | cp -r ${WORKDIR}/log_parser ${D}${bindir}/ 36 | } 37 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/process-schema/process-schema.bb: -------------------------------------------------------------------------------- 1 | LICENSE = "CLOSED" 2 | 3 | S = "${WORKDIR}" 4 | 5 | DEPENDS = "python3-native python3-dtschema-native " 6 | 7 | SRC_URI = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.10.tar.xz" 8 | SRC_URI[sha256sum] = "774698422ee54c5f1e704456f37c65c06b51b4e9a8b0866f34580d86fef8e226" 9 | 10 | do_install(){ 11 | install -d ${D}${bindir} 12 | cp -r ${S}/linux-6.10/Documentation/devicetree/bindings ${D}/${bindir}/ 13 | dt-mk-schema -j ${D}/${bindir}/bindings > processed_schema.json 14 | cp -r ${S}/processed_schema.json ${D}/${bindir}/ 15 | } 16 | 17 | FILES:${PN} += "${bindir}/*" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-cssselect2/python3-cssselect2_0.8.0.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "A Python library for parsing and translating CSS3 selectors" 18 | HOMEPAGE = "https://pypi.org/project/cssselect2/" 19 | LICENSE = "BSD-3-Clause" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=aa7228954285c7398bb6711fee73b4ac" 21 | 22 | # Set the package version. 23 | PV = "0.8.0" 24 | 25 | # Fetch the source tarball from PyPI. 26 | SRC_URI = "https://files.pythonhosted.org/packages/source/c/cssselect2/cssselect2-${PV}.tar.gz" 27 | SRC_URI[sha256sum] = "7674ffb954a3b46162392aee2a3a0aedb2e14ecf99fcc28644900f4e6e3e9d3a" 28 | SRCREV_cssselect2 = "${AUTOREV}" 29 | 30 | # Inherit the pypi and setuptools3 classes to handle Python packaging. 31 | inherit pypi python_setuptools_build_meta 32 | 33 | PYTHON_INSTALL_PACKAGE = "cssselect2" 34 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-dtschema/python3-dtschema_2022.9.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" 2 | HOMEPAGE = "https://github.com/devicetree-org/dt-schema" 3 | LICENSE = "BSD-2-Clause" 4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" 5 | 6 | inherit pypi setuptools3 7 | 8 | PYPI_PACKAGE = "dtschema" 9 | 10 | SRC_URI[sha256sum] = "c9533312a2d77c4ccdbffda1504aba850d9b224fd8b43e929cee2aa68478e82a" 11 | 12 | DEPENDS += "python3-setuptools-scm-native" 13 | RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987 python3-pylibfdt" 14 | 15 | BBCLASSEXTEND = "native nativesdk" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-dtschema/python3-dtschema_2023.11.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" 2 | HOMEPAGE = "https://github.com/devicetree-org/dt-schema" 3 | LICENSE = "BSD-2-Clause" 4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" 5 | 6 | inherit pypi setuptools3 7 | 8 | PYPI_PACKAGE = "dtschema" 9 | 10 | SRC_URI[sha256sum] = "cf9a449ea743c0a955cf6034ef246668fa5ea177684977c61fef7604af5f273b" 11 | 12 | DEPENDS += "python3-setuptools-scm-native" 13 | RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987 python3-pylibfdt" 14 | 15 | BBCLASSEXTEND = "native nativesdk" 16 | 17 | do_configure:prepend() { 18 | cat > ${S}/setup.py <<-EOF 19 | from setuptools import setup 20 | 21 | setup( 22 | name="${PYPI_PACKAGE}", 23 | version="${PV}", 24 | license="${LICENSE}", 25 | ) 26 | EOF 27 | } -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-dtschema/python3-dtschema_2023.7.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" 2 | HOMEPAGE = "https://github.com/devicetree-org/dt-schema" 3 | LICENSE = "BSD-2-Clause" 4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" 5 | 6 | inherit pypi setuptools3 7 | 8 | SRC_URI[sha256sum] = "de7cd73a35244cf76a8cdd9919bbeb31f362aa5744f3c76c80e0e612489dd0c0" 9 | 10 | PYPI_PACKAGE = "dtschema" 11 | 12 | DEPENDS += "python3-setuptools-scm-native" 13 | RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987 python3-pylibfdt" 14 | 15 | BBCLASSEXTEND = "native nativesdk" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-dtschema/python3-dtschema_2024.2.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" 2 | HOMEPAGE = "https://github.com/devicetree-org/dt-schema" 3 | LICENSE = "BSD-2-Clause" 4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" 5 | 6 | inherit pypi setuptools3 7 | 8 | SRC_URI[sha256sum] = "df4e5afb35bda93894209d2465e87fb7103f1a95a05909ebcb594fc4cf4fdd1e" 9 | 10 | PYPI_PACKAGE = "dtschema" 11 | 12 | DEPENDS += "python3-setuptools-scm-native" 13 | RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987 python3-pylibfdt" 14 | 15 | BBCLASSEXTEND = "native nativesdk" 16 | 17 | do_configure:prepend() { 18 | cat > ${S}/setup.py <<-EOF 19 | from setuptools import setup 20 | 21 | setup( 22 | name="${PYPI_PACKAGE}", 23 | version="${PV}", 24 | license="${LICENSE}", 25 | ) 26 | EOF 27 | } -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-dtschema/python3-dtschema_2024.9.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" 2 | HOMEPAGE = "https://github.com/devicetree-org/dt-schema" 3 | LICENSE = "BSD-2-Clause" 4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" 5 | 6 | inherit pypi setuptools3 7 | 8 | SRC_URI[sha256sum] = "1e5cc422736d5e4167f764478e50093f340bbede95b569ed66d60748dbc39ab2" 9 | 10 | PYPI_PACKAGE = "dtschema" 11 | 12 | DEPENDS += "python3-setuptools-scm-native" 13 | RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987 python3-pylibfdt" 14 | 15 | BBCLASSEXTEND = "native nativesdk" 16 | 17 | do_configure:prepend() { 18 | cat > ${S}/setup.py <<-EOF 19 | from setuptools import setup 20 | 21 | setup( 22 | name="${PYPI_PACKAGE}", 23 | version="${PV}", 24 | license="${LICENSE}", 25 | ) 26 | EOF 27 | } -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-dtschema/python3-dtschema_2025.2.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Tooling for devicetree validation using YAML and jsonschema" 2 | HOMEPAGE = "https://github.com/devicetree-org/dt-schema" 3 | LICENSE = "BSD-2-Clause" 4 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=457495c8fa03540db4a576bf7869e811" 5 | 6 | inherit pypi setuptools3 7 | 8 | SRC_URI[sha256sum] = "9adeaff2079a8b5fbc4bd1c8f02cbd232016a84a9684739cac20b4df3b19509e" 9 | 10 | PYPI_PACKAGE = "dtschema" 11 | 12 | DEPENDS += "python3-setuptools-scm-native" 13 | RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987 python3-pylibfdt" 14 | 15 | BBCLASSEXTEND = "native nativesdk" 16 | 17 | do_configure:prepend() { 18 | cat > ${S}/setup.py <<-EOF 19 | from setuptools import setup 20 | 21 | setup( 22 | name="${PYPI_PACKAGE}", 23 | version="${PV}", 24 | license="${LICENSE}", 25 | ) 26 | EOF 27 | } -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-dtschema/python3-pylibfdt_1.6.1.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "Python binding for libfdt" 2 | HOMEPAGE = "https://github.com/devicetree-org/pylibfdt" 3 | AUTHOR = "Simon Glass <>" 4 | LICENSE = "BSD-2-Clause" 5 | LIC_FILES_CHKSUM = "file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927" 6 | 7 | inherit pypi setuptools3 8 | 9 | PYPI_PACKAGE = "pylibfdt" 10 | 11 | SRC_URI[sha256sum] = "90c667c5adf44c6ab2f13bdc566598897784c7b781bed91064e7373bd270b778" 12 | 13 | S = "${WORKDIR}/pylibfdt-1.6.1" 14 | 15 | DEPENDS += "python3-setuptools-scm-native swig-native" 16 | RDEPENDS_${PN} = "" 17 | 18 | BBCLASSEXTEND = "native nativesdk" 19 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-fonttools/python3-fonttools_4.56.0.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "A library to manipulate font files, required by WeasyPrint for font handling" 18 | HOMEPAGE = "https://github.com/fonttools/fonttools" 19 | LICENSE = "MIT" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=211c9e4671bde3881351f22a2901f692" 21 | 22 | PV = "4.56.0" 23 | 24 | SRC_URI = "https://files.pythonhosted.org/packages/source/f/fonttools/fonttools-${PV}.tar.gz" 25 | SRC_URI[sha256sum] = "a114d1567e1a1586b7e9e7fc2ff686ca542a82769a296cef131e4c4af51e58f4" 26 | 27 | inherit pypi setuptools3 28 | RDEPENDS:${PN} += "python3" 29 | 30 | PYTHON_INSTALL_PACKAGE = "fontTools" 31 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-pydyf/python3-pydyf_0.11.0.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "Pydyf: a Python library for building PDFs using CSS layout" 18 | HOMEPAGE = "https://pypi.org/project/pydyf/" 19 | LICENSE = "MIT" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=cbcacfe0ddf7cfbafcbef1f7cedd3c5b" 21 | 22 | PV = "0.11.0" 23 | 24 | SRC_URI = "https://files.pythonhosted.org/packages/source/p/pydyf/pydyf-${PV}.tar.gz" 25 | SRC_URI[sha256sum] = "394dddf619cca9d0c55715e3c55ea121a9bf9cbc780cdc1201a2427917b86b64" 26 | 27 | # Inherit the pypi and setuptools3 classes to handle Python packaging. 28 | inherit pypi python_setuptools_build_meta 29 | RDEPENDS:${PN} += "python3" 30 | 31 | PYTHON_INSTALL_PACKAGE = "pydyf" 32 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-pyphen/python3-pyphen_0.17.2.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "A pure Python module to hyphenate words (used in text processing and typesetting)" 18 | HOMEPAGE = "https://pypi.org/project/pyphen/" 19 | LICENSE = "MIT" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ce317ca4dfa0c33c1acbf1b21c1cf5a7" 21 | 22 | PV = "0.17.2" 23 | 24 | SRC_URI = "https://files.pythonhosted.org/packages/source/p/pyphen/pyphen-${PV}.tar.gz" 25 | SRC_URI[sha256sum] = "f60647a9c9b30ec6c59910097af82bc5dd2d36576b918e44148d8b07ef3b4aa3" 26 | 27 | # Inherit the pypi and setuptools3 classes to handle Python packaging. 28 | inherit pypi python_setuptools_build_meta 29 | RDEPENDS:${PN} += "python3" 30 | 31 | PYTHON_INSTALL_PACKAGE = "pyphen" 32 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-tinycss2/python3-tinycss2_1.4.0.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "TinyCSS2 is a low-level CSS parser for Python" 18 | HOMEPAGE = "https://pypi.org/project/tinycss2/" 19 | LICENSE = "BSD-3-Clause" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1d072d7e30e34f33f8ae956ada04fa2c" 21 | 22 | PV="1.4.0" 23 | 24 | SRC_URI = "https://files.pythonhosted.org/packages/source/t/tinycss2/tinycss2-${PV}.tar.gz" 25 | SRC_URI[sha256sum] = "10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7" 26 | 27 | # Inherit the pypi and setuptools3 classes to handle Python packaging. 28 | inherit pypi python_setuptools_build_meta 29 | RDEPENDS:${PN} += "python3" 30 | 31 | PYTHON_INSTALL_PACKAGE = "tinycss2" 32 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-tinyhtml5/python3-tinyhtml5_2.0.0.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "TinyHTML5 is a lightweight HTML parser for Python" 18 | HOMEPAGE = "https://pypi.org/project/tinyhtml5/" 19 | LICENSE = "MIT" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1ba5ada9e6fead1fdc32f43c9f10ba7c" 21 | 22 | PV="2.0.0" 23 | 24 | SRC_URI = "https://files.pythonhosted.org/packages/source/t/tinyhtml5/tinyhtml5-${PV}.tar.gz" 25 | SRC_URI[sha256sum] = "086f998833da24c300c414d9fe81d9b368fd04cb9d2596a008421cbc705fcfcc" 26 | 27 | # Inherit the pypi and setuptools3 classes to handle Python packaging. 28 | inherit pypi python_setuptools_build_meta 29 | # Ensure Python3 is available at runtime. 30 | RDEPENDS:${PN} += "python3" 31 | 32 | PYTHON_INSTALL_PACKAGE = "tinyhtml5" 33 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-weasyprint/python3-weasyprint_63.1.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "Python support for WeasyPrint" 18 | HOMEPAGE = "https://weasyprint.org/" 19 | LICENSE = "BSD-3-Clause" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ff136e5f45edb10a900832c046832544" 21 | 22 | # Fetch from github 23 | SRC_URI = "git://github.com/Kozea/WeasyPrint;destsuffix=weasyiprint;protocol=https;branch=main;name=weasyprint" 24 | SRC_URI[sha256sum] = "cb424e63e8dd3f14195bfe5f203527646aa40a2f00ac819f9d39b8304cec0044" 25 | SRCREV_weasyprint = "${AUTOREV}" 26 | 27 | # Build with Python setuptools 28 | inherit pypi python_setuptools_build_meta 29 | # Define build-time dependencies 30 | DEPENDS = "python3 python3-cffi python3-pillow python3-lxml python3-setuptools" 31 | 32 | # Define runtime dependencies 33 | RDEPENDS:${PN} += "\ 34 | python3-cffi \ 35 | python3-pillow \ 36 | python3-lxml \ 37 | python3-setuptools \ 38 | " 39 | 40 | # Enable native and SDK builds 41 | BBCLASSEXTEND = "native nativesdk" 42 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/python3-webencodings/python3-webencodings_0.5.1.bb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | SUMMARY = "Webencodings is a Python package for encoding detection used by HTML parsing libraries" 18 | HOMEPAGE = "https://pypi.org/project/webencodings/" 19 | LICENSE = "BSD-3-Clause" 20 | LIC_FILES_CHKSUM = "file://LICENSE;md5=81fb24cd7823cce23b69f721993dce4d" 21 | 22 | PV="0.5.1" 23 | 24 | SRC_URI = "https://files.pythonhosted.org/packaes/source/w/webencodings/webencodings-${PV}.tar.gz" 25 | SRC_URI[sha256sum] = "082367f568a7812aa5f6922ffe3d9d027cd83829dc32bcaac4c874eeed618000" 26 | 27 | inherit setuptools3 28 | RDEPENDS:${PN} += "python3" 29 | 30 | PYPI_PACKAGE = "webencodings" 31 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/shell-app/shell-app.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "UEFI Shell Application" 2 | DESCRIPTION = "This recipe builds UEFI Shell Application" 3 | 4 | require recipes-acs/edk2-firmware/edk2-firmware-rev.bb 5 | 6 | PROVIDES:remove = "virtual/uefi-firmware" 7 | PROVIDES:remove = "virtual/bootloader" 8 | 9 | LICENSE = "CLOSED" 10 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" 11 | 12 | COMPATIBLE_HOST = "aarch64.*-linux" 13 | EDK2_ARCH = "AARCH64" 14 | EDK2_PLATFORM = "Shell" 15 | EDK2_PLATFORM_DSC = "ShellPkg/ShellPkg.dsc" 16 | EDK2_BUILD_MODE = "RELEASE" 17 | 18 | do_install() { 19 | install -d ${D}/firmware 20 | install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/${EDK2_ARCH}/ShellPkg/Application/Shell/Shell/OUTPUT/Shell.efi ${D}/firmware/ 21 | } 22 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/systemready-scripts/python3-construct_2.10.67.bb: -------------------------------------------------------------------------------- 1 | DESCRIPTION = "Python declarative parser for binary data" 2 | HOMEPAGE = "http://construct.readthedocs.org/en/latest/" 3 | SECTION = "devel/python" 4 | LICENSE = "BSD-3-Clause" 5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=202b39559c1c79fe4715ce81e9e0ac02" 6 | 7 | SRC_URI[md5sum] = "ecc7bf4f083caf634f10241e87e58c75" 8 | SRC_URI[sha256sum] = "730235fedf4f2fee5cfadda1d14b83ef1bf23790fb1cc579073e10f70a050883" 9 | 10 | PYPI_PACKAGE = "construct" 11 | inherit pypi setuptools3 12 | RDEPENDS_${PN} += "python3-core python3-six python3-debugger" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/systemready-scripts/systemready-scripts.bb: -------------------------------------------------------------------------------- 1 | LICENSE = "BSD-2-Clause" 2 | LIC_FILES_CHKSUM = "file://systemready-scripts/LICENSE;md5=85b7d439a311c22626c2e3f05daf628e" 3 | S = "${WORKDIR}" 4 | 5 | SRC_URI = "git://git.gitlab.arm.com/systemready/systemready-scripts.git;destsuffix=systemready-scripts;protocol=https;branch=3.0.1;name=systemready-scripts \ 6 | " 7 | SRCREV_systemready-scripts = "${AUTOREV}" 8 | 9 | RDEPENDS:${PN} += "bash python3-requests python3-construct tar" 10 | 11 | do_install(){ 12 | install -d ${D}${bindir} 13 | mkdir -p ${D}/${bindir}/systemready-scripts 14 | cp -r ${S}/systemready-scripts/* ${D}/${bindir}/systemready-scripts/ 15 | 16 | } 17 | FILES:${PN} += "${bindir}/systemready-scripts/*" 18 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/uefi-apps/uefi-apps.bb: -------------------------------------------------------------------------------- 1 | SUMMARY = "UEFI Applications" 2 | DESCRIPTION = "This recipe builds UEFI Applications and deploys CapsuleApp" 3 | 4 | require recipes-acs/edk2-firmware/edk2-firmware-rev.bb 5 | 6 | PROVIDES:remove = "virtual/uefi-firmware" 7 | PROVIDES:remove = "virtual/bootloader" 8 | 9 | LICENSE = "CLOSED" 10 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" 11 | 12 | COMPATIBLE_HOST = "aarch64.*-linux" 13 | EDK2_ARCH = "AARCH64" 14 | EDK2_PLATFORM = "MdeModule" 15 | EDK2_PLATFORM_DSC = "MdeModulePkg/MdeModulePkg.dsc" 16 | 17 | do_install() { 18 | install -d ${D}/firmware 19 | install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/${EDK2_ARCH}/CapsuleApp.efi ${D}/firmware/ 20 | } 21 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-acs/update-vars/update-vars.bb: -------------------------------------------------------------------------------- 1 | LICENSE = "CLOSED" 2 | inherit deploy autotools 3 | S = "${WORKDIR}" 4 | 5 | SRC_URI = " git://git.code.sf.net/p/gnu-efi/code;destsuffix=gnu-efi;protocol=https;branch=master;name=gnu-efi \ 6 | git://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git;destsuffix=efitools;branch=master;protocol=https;name=efitools \ 7 | file://0001-UpdateVar-updates-for-SecureBoot-automatic-provision.patch;patch=1;patchdir=efitools " 8 | 9 | SRCREV_FORMAT = "gnu-efi efitools " 10 | 11 | SRCREV_gnu-efi = "183ec634eec7aee214e4e2baa728bc9c68c492f0" 12 | SRCREV_efitools = "392836a46ce3c92b55dc88a1aebbcfdfc5dcddce" 13 | 14 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" 15 | 16 | do_configure() { 17 | echo "Building gnu-efi..." 18 | export prefix="" 19 | export CROSS_COMPILE="${TARGET_PREFIX}" 20 | export CPPFLAGS="-I${STAGING_DIR_TARGET}/usr/include" 21 | cd ${S}/gnu-efi 22 | echo "make clean" 23 | make clean 24 | echo "make" 25 | make 26 | export STAGING_DIR_TARGET=${STAGING_DIR_TARGET} 27 | 28 | echo "Building efitools..." 29 | cd ../efitools 30 | echo "target at efitool ${TARGET_PREFIX}" 31 | echo "CPPFLAGS=${CFLAGS}" 32 | export STAGING_INCDIR=${STAGING_INCDIR}/../.. 33 | export TARGET_PREFIX=${TARGET_PREFIX} 34 | echo "efitools make clean" 35 | make clean 36 | echo "efitools make" 37 | make 38 | 39 | } 40 | do_compile[noexec] = "1" 41 | do_install[noexec] = "1" 42 | 43 | do_deploy() { 44 | echo "S = ${S} DEPLOYDIR = ${DEPLOYDIR}" 45 | install -d ${DEPLOYDIR} 46 | cp ${S}/efitools/UpdateVars.efi ${DEPLOYDIR} 47 | echo "Deploy done..." 48 | } 49 | 50 | addtask deploy after do_install -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/kernel-selftest/kernel-selftest.bbappend: -------------------------------------------------------------------------------- 1 | TEST_LIST += "\ 2 | dt \ 3 | " 4 | 5 | RDEPENDS_${PN} += " perl-modules perl-module-io-handle " 6 | 7 | 8 | do_install:append(){ 9 | 10 | KERNEL_SRC_DIR="${S}/../../../../../work-shared/genericarm64/kernel-source" 11 | rm -f ${D}/usr/kernel-selftest/dt/compatible_list 12 | python3 $KERNEL_SRC_DIR/scripts/dtc/dt-extract-compatibles -d $KERNEL_SRC_DIR > ${D}/usr/kernel-selftest/dt/compatible_list 13 | } 14 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/linux/files/0001-disable-default-psci-checker-run.patch: -------------------------------------------------------------------------------- 1 | From 4c52e8d9d98adc88edfc382196b247820c387175 Mon Sep 17 00:00:00 2001 2 | From: gurrev01 3 | Date: Mon, 18 Dec 2023 19:53:31 +0530 4 | Subject: [PATCH] enable psci checker 5 | 6 | Signed-off-by: gurrev01 7 | --- 8 | drivers/firmware/psci/psci_checker.c | 10 ++++++++++ 9 | 1 file changed, 10 insertions(+) 10 | 11 | diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c 12 | index 116eb465c..0a80e8205 100644 13 | --- a/drivers/firmware/psci/psci_checker.c 14 | +++ b/drivers/firmware/psci/psci_checker.c 15 | @@ -24,6 +24,7 @@ 16 | #include 17 | 18 | #include 19 | +#include 20 | 21 | #define NUM_SUSPEND_CYCLE (10) 22 | 23 | @@ -438,6 +439,15 @@ static int suspend_tests(void) 24 | static int __init psci_checker(void) 25 | { 26 | int ret; 27 | + char *cmdline = boot_command_line; // Get kernel command line 28 | + 29 | + // Check if "psci_checker" parameter is present in the kernel command line 30 | + if (strstr(cmdline, "psci_checker")) { 31 | + pr_info("PSCI checker enabled based on the kernel command line.\n"); 32 | + } else { 33 | + pr_info("PSCI checker is disabled.\n"); 34 | + return 0; 35 | + } 36 | 37 | /* 38 | * Since we're in an initcall, we assume that all the CPUs that all 39 | -- 40 | 2.25.1 41 | 42 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/linux/files/0002-Fix-for-CompuLab-IOT-GATE-iMX8-boot-issue.patch: -------------------------------------------------------------------------------- 1 | From d11adca61b022d66bd0540e9a7a8da9e118fa221 Mon Sep 17 00:00:00 2001 2 | From: Amrathesh 3 | Date: Tue, 21 Jun 2022 22:14:28 +0530 4 | Subject: [PATCH] Fix for CompuLab IOT-GATE-iMX8 boot issue 5 | 6 | - USB doesn't get mounted due to power domain support 7 | changes for SoC. 8 | 9 | Signed-off-by: Amrathesh 10 | --- 11 | drivers/soc/imx/Makefile | 2 +- 12 | 1 file changed, 1 insertion(+), 1 deletion(-) 13 | 14 | diff --git a/drivers/soc/imx/Makefile b/drivers/soc/imx/Makefile 15 | index 078dc918f..fbdadcac7 100644 16 | --- a/drivers/soc/imx/Makefile 17 | +++ b/drivers/soc/imx/Makefile 18 | @@ -3,5 +3,5 @@ ifeq ($(CONFIG_ARM),y) 19 | obj-$(CONFIG_ARCH_MXC) += soc-imx.o 20 | endif 21 | obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o 22 | -obj-$(CONFIG_IMX_GPCV2_PM_DOMAINS) += gpcv2.o 23 | +#obj-$(CONFIG_IMX_GPCV2_PM_DOMAINS) += gpcv2.o 24 | obj-$(CONFIG_SOC_IMX8M) += soc-imx8m.o 25 | -- 26 | 2.17.1 27 | 28 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/linux/linux-yocto_%.bbappend: -------------------------------------------------------------------------------- 1 | FILESEXTRAPATHS:prepend := "${THISDIR}/files:" 2 | SRC_URI:append:genericarm64 = " file://systemready.cfg" 3 | #This file is defined to add this path to all the linux-yocto recipe 4 | FILESEXTRAPATHS:prepend := "${TOPDIR}/../meta-arm/meta-arm/recipes-kernel/linux/files:" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/linux/linux-yocto_5.15.bb: -------------------------------------------------------------------------------- 1 | KBRANCH ?= "v5.15/standard/base" 2 | 3 | require recipes-kernel/linux/linux-yocto.inc 4 | 5 | # board specific branches 6 | KBRANCH:qemuarm ?= "v5.15/standard/arm-versatile-926ejs" 7 | KBRANCH:qemuarm64 ?= "v5.15/standard/qemuarm64" 8 | KBRANCH:qemumips ?= "v5.15/standard/mti-malta32" 9 | KBRANCH:qemuppc ?= "v5.15/standard/qemuppc" 10 | KBRANCH:qemuriscv64 ?= "v5.15/standard/base" 11 | KBRANCH:qemuriscv32 ?= "v5.15/standard/base" 12 | KBRANCH:qemux86 ?= "v5.15/standard/base" 13 | KBRANCH:qemux86-64 ?= "v5.15/standard/base" 14 | KBRANCH:qemumips64 ?= "v5.15/standard/mti-malta64" 15 | 16 | SRCREV_machine:qemuarm ?= "5a68f2d15d17f0f3c397e7f8c83f3f664f7037e5" 17 | SRCREV_machine:qemuarm64 ?= "00e666e6154fcdf52268f2a5a612b96afad073b0" 18 | SRCREV_machine:qemumips ?= "fb9e75076deade31754b7ad644952d63137e616b" 19 | SRCREV_machine:qemuppc ?= "49f6567f3b85a843e8b6042a79c58aab0bdbd0c9" 20 | SRCREV_machine:qemuriscv64 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 21 | SRCREV_machine:qemuriscv32 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 22 | SRCREV_machine:qemux86 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 23 | SRCREV_machine:qemux86-64 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 24 | SRCREV_machine:qemumips64 ?= "1ad01ab47ec056d4126798f6d57a33b65b2be49c" 25 | SRCREV_machine ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 26 | SRCREV_meta ?= "37891dc371e83a3451781dd81a8a85cccd60084b" 27 | 28 | # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll 29 | # get the /base branch, which is pure upstream -stable, and the same 30 | # meta SRCREV as the linux-yocto-standard builds. Select your version using the 31 | # normal PREFERRED_VERSION settings. 32 | BBCLASSEXTEND = "devupstream:target" 33 | SRCREV_machine:class-devupstream ?= "3fbf24b73f4a5bc8fd39a6b7a29145451c1039ce" 34 | PN:class-devupstream = "linux-yocto-upstream" 35 | KBRANCH:class-devupstream = "v5.15/base" 36 | 37 | SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ 38 | git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA} \ 39 | https://gitlab.arm.com/linux-arm/linux-acs/-/raw/master/kernel/src/0001-BSA-ACS-Linux-5.15.patch;patch=1;md5sum=360b193889d5a07219804b0b3327c892 \ 40 | file://0002-Fix-for-CompuLab-IOT-GATE-iMX8-boot-issue.patch;patch=1 \ 41 | " 42 | 43 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 44 | LINUX_VERSION ?= "5.15.38" 45 | 46 | DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" 47 | DEPENDS += "openssl-native util-linux-native" 48 | DEPENDS += "gmp-native libmpc-native" 49 | 50 | PV = "${LINUX_VERSION}+git${SRCPV}" 51 | 52 | KMETA = "kernel-meta" 53 | KCONF_BSP_AUDIT_LEVEL = "1" 54 | 55 | KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb" 56 | 57 | COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32" 58 | 59 | # Functionality flags 60 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" 61 | KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" 62 | KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" 63 | KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" 64 | KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" 65 | KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" 66 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" 67 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" 68 | KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc" 69 | KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc" 70 | KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc" 71 | 72 | INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel" 73 | 74 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/linux/linux-yocto_6.0.bb: -------------------------------------------------------------------------------- 1 | KBRANCH ?= "master" 2 | 3 | require recipes-kernel/linux/linux-yocto.inc 4 | 5 | # board specific branches 6 | KBRANCH:qemuarm ?= "v5.15/standard/arm-versatile-926ejs" 7 | KBRANCH:qemuarm64 ?= "v5.15/standard/qemuarm64" 8 | KBRANCH:qemumips ?= "v5.15/standard/mti-malta32" 9 | KBRANCH:qemuppc ?= "v5.15/standard/qemuppc" 10 | KBRANCH:qemuriscv64 ?= "v5.15/standard/base" 11 | KBRANCH:qemuriscv32 ?= "v5.15/standard/base" 12 | KBRANCH:qemux86 ?= "v5.15/standard/base" 13 | KBRANCH:qemux86-64 ?= "v5.15/standard/base" 14 | KBRANCH:qemumips64 ?= "v5.15/standard/mti-malta64" 15 | 16 | SRCREV_machine:qemuarm ?= "5a68f2d15d17f0f3c397e7f8c83f3f664f7037e5" 17 | SRCREV_machine:qemuarm64 ?= "00e666e6154fcdf52268f2a5a612b96afad073b0" 18 | SRCREV_machine:qemumips ?= "fb9e75076deade31754b7ad644952d63137e616b" 19 | SRCREV_machine:qemuppc ?= "49f6567f3b85a843e8b6042a79c58aab0bdbd0c9" 20 | SRCREV_machine:qemuriscv64 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 21 | SRCREV_machine:qemuriscv32 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 22 | SRCREV_machine:qemux86 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 23 | SRCREV_machine:qemux86-64 ?= "cc9695f5fd3b520464eb2ded66950734f308525c" 24 | SRCREV_machine:qemumips64 ?= "1ad01ab47ec056d4126798f6d57a33b65b2be49c" 25 | SRCREV_machine ?= "4fe89d07dcc2804c8b562f6c7896a45643d34b2f" 26 | SRCREV_meta ?= "4ed11ded922785d0b4fe4e1078f0ff2e8ddebf27" 27 | 28 | # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll 29 | # get the /base branch, which is pure upstream -stable, and the same 30 | # meta SRCREV as the linux-yocto-standard builds. Select your version using the 31 | # normal PREFERRED_VERSION settings. 32 | BBCLASSEXTEND = "devupstream:target" 33 | SRCREV_machine:class-devupstream ?= "3fbf24b73f4a5bc8fd39a6b7a29145451c1039ce" 34 | PN:class-devupstream = "linux-yocto-upstream" 35 | KBRANCH:class-devupstream = "master" 36 | 37 | SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ 38 | git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA} \ 39 | https://gitlab.arm.com/linux-arm/linux-acs/-/raw/master/kernel/src/0001-BSA-ACS-Linux-6.0.patch;patch=1;md5sum=952e79f61a9c29ada81182c15893b863 \ 40 | file://0002-Fix-for-CompuLab-IOT-GATE-iMX8-boot-issue.patch;patch=1 \ 41 | " 42 | 43 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 44 | LINUX_VERSION ?= "6.0" 45 | 46 | DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" 47 | DEPENDS += "openssl-native util-linux-native" 48 | DEPENDS += "gmp-native libmpc-native" 49 | 50 | PV = "${LINUX_VERSION}+git${SRCPV}" 51 | 52 | KMETA = "kernel-meta" 53 | KCONF_BSP_AUDIT_LEVEL = "1" 54 | 55 | KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb" 56 | 57 | COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32" 58 | 59 | # Functionality flags 60 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" 61 | KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" 62 | KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" 63 | KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" 64 | KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" 65 | KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" 66 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" 67 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" 68 | KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc" 69 | KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc" 70 | KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc" 71 | 72 | INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/linux/linux-yocto_6.4.bb: -------------------------------------------------------------------------------- 1 | KBRANCH ?= "v6.4/standard/base" 2 | 3 | require recipes-kernel/linux/linux-yocto.inc 4 | 5 | SRCREV_machine ?= "6995e2de6891c724bfeb2db33d7b87775f913ad1" 6 | SRCREV_meta ?= "be4b1defa25b1560b7d92e1ade1b7c52a226fc38" 7 | 8 | # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll 9 | # get the /base branch, which is pure upstream -stable, and the same 10 | # meta SRCREV as the linux-yocto-standard builds. Select your version using the 11 | # normal PREFERRED_VERSION settings. 12 | BBCLASSEXTEND = "devupstream:target" 13 | SRCREV_machine:class-devupstream ?= "3fbf24b73f4a5bc8fd39a6b7a29145451c1039ce" 14 | PN:class-devupstream = "linux-yocto-upstream" 15 | KBRANCH:class-devupstream = "v6.4/base" 16 | 17 | SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ 18 | git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA} \ 19 | https://gitlab.arm.com/linux-arm/linux-acs/-/raw/master/kernel/src/0001-BSA-ACS-Linux-6.4.patch;patch=1;md5sum=7a4ce9635bc4af637c0463d8fdd038c0 \ 20 | file://0002-Fix-for-CompuLab-IOT-GATE-iMX8-boot-issue.patch;patch=1 \ 21 | file://tpm-tis-spi-Add-hardware-wait-polling.patch;patch=1 \ 22 | file://0001-disable-default-psci-checker-run.patch;patch=1 \ 23 | " 24 | FILESEXTRAPATHS:prepend := "${TOPDIR}/../meta-arm/meta-arm/recipes-kernel/linux/files:" 25 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 26 | LINUX_VERSION ?= "6.4" 27 | 28 | DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" 29 | DEPENDS += "openssl-native util-linux-native" 30 | DEPENDS += "gmp-native libmpc-native" 31 | 32 | PV = "${LINUX_VERSION}+git${SRCPV}" 33 | 34 | KMETA = "kernel-meta" 35 | KCONF_BSP_AUDIT_LEVEL = "1" 36 | 37 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" 38 | 39 | # Functionality flags 40 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" 41 | KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" 42 | KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" 43 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" 44 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-kernel/linux/linux-yocto_6.6.bb: -------------------------------------------------------------------------------- 1 | KBRANCH ?= "v6.6/standard/base" 2 | 3 | require recipes-kernel/linux/linux-yocto.inc 4 | 5 | # CVE exclusions 6 | include recipes-kernel/linux/cve-exclusion.inc 7 | include recipes-kernel/linux/cve-exclusion_6.6.inc 8 | 9 | # board specific branches 10 | KBRANCH:qemuarm ?= "v6.6/standard/arm-versatile-926ejs" 11 | KBRANCH:qemuarm64 ?= "v6.6/standard/qemuarm64" 12 | KBRANCH:qemumips ?= "v6.6/standard/mti-malta32" 13 | KBRANCH:qemuppc ?= "v6.6/standard/qemuppc" 14 | KBRANCH:qemuriscv64 ?= "v6.6/standard/base" 15 | KBRANCH:qemuriscv32 ?= "v6.6/standard/base" 16 | KBRANCH:qemux86 ?= "v6.6/standard/base" 17 | KBRANCH:qemux86-64 ?= "v6.6/standard/base" 18 | KBRANCH:qemuloongarch64 ?= "v6.6/standard/base" 19 | KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64" 20 | 21 | SRCREV_machine:qemuarm ?= "ceb94a85299b59d8840ed7ed392b1d3e4c727678" 22 | SRCREV_machine:qemuarm64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 23 | SRCREV_machine:qemuloongarch64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 24 | SRCREV_machine:qemumips ?= "c79ffc89f8909f60de52005ef258db9752634eda" 25 | SRCREV_machine:qemuppc ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 26 | SRCREV_machine:qemuriscv64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 27 | SRCREV_machine:qemuriscv32 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 28 | SRCREV_machine:qemux86 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 29 | SRCREV_machine:qemux86-64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 30 | SRCREV_machine:qemumips64 ?= "b0a73fa83073c8d7d7bc917bcbeac88d296ebe38" 31 | SRCREV_machine ?= "2d01bc1d4eeade12518371139dd24a21438f523c" 32 | SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b" 33 | 34 | # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll 35 | # get the /base branch, which is pure upstream -stable, and the same 36 | # meta SRCREV as the linux-yocto-standard builds. Select your version using the 37 | # normal PREFERRED_VERSION settings. 38 | BBCLASSEXTEND = "devupstream:target" 39 | SRCREV_machine:class-devupstream ?= "5c7587f69194bc9fc714953ab4c7203e6e68885b" 40 | PN:class-devupstream = "linux-yocto-upstream" 41 | KBRANCH:class-devupstream = "v6.6/base" 42 | 43 | SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https \ 44 | git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https \ 45 | https://gitlab.arm.com/linux-arm/linux-acs/-/raw/master/kernel/src/0001-BSA-ACS-Linux-6.6.patch;patch=1;md5sum=89b6c420ece275846f79c8b6f6f9cb09 \ 46 | file://0001-KSelfTest.patch;patch=1 \ 47 | file://0001-dt-extract-compatibles.patch;patch=1 \ 48 | file://0001-disable-psci-checker.patch;patch=1 \ 49 | " 50 | 51 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 52 | LINUX_VERSION ?= "6.6.23" 53 | 54 | PV = "${LINUX_VERSION}+git" 55 | 56 | KMETA = "kernel-meta" 57 | KCONF_BSP_AUDIT_LEVEL = "1" 58 | 59 | KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb" 60 | 61 | COMPATIBLE_MACHINE = "^(qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32|qemuloongarch64)$" 62 | 63 | # Functionality flags 64 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" 65 | KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" 66 | KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc cfg/net/mdio.scc" 67 | KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" 68 | KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" 69 | KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" 70 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc features/nf_tables/nft_test.scc", "", d)}" 71 | KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}" 72 | KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc" 73 | KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc" 74 | KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc" 75 | 76 | INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel" 77 | 78 | #added extra 79 | PACKAGECONFIG[dt] = ",,, bash" -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/recipes-security/optee/optee-client_4.1.0.bbappend: -------------------------------------------------------------------------------- 1 | EXTRA_OECMAKE:pn-optee-client:append:genericarm64 = " -DRPMB_EMU=0" 2 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/Yocto/meta-woden/wic/woden.wks.in: -------------------------------------------------------------------------------- 1 | bootloader --ptable gpt --timeout=10 --append="rootfstype=ext4" 2 | 3 | part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER}" --label BOOT_ACS --active --align 1024 --use-uuid --size 360M 4 | 5 | part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid 6 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/patches/bsa.patch: -------------------------------------------------------------------------------- 1 | diff --git a/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c b/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c 2 | index f0a8b9f..e41e0de 100644 3 | --- a/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c 4 | +++ b/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c 5 | @@ -90,8 +90,8 @@ UefiHiiServicesLibConstructor ( 6 | // 7 | // Retrieve the pointer to the UEFI HII Config Routing Protocol 8 | // 9 | - Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **)&gHiiConfigRouting); 10 | - ASSERT_EFI_ERROR (Status); 11 | + //Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **)&gHiiConfigRouting); 12 | + //ASSERT_EFI_ERROR (Status); 13 | 14 | // 15 | // Retrieve the pointer to the optional UEFI HII Font Protocol 16 | diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc 17 | index 7e985f8..6ea22f8 100644 18 | --- a/ShellPkg/ShellPkg.dsc 19 | +++ b/ShellPkg/ShellPkg.dsc 20 | @@ -66,6 +66,9 @@ 21 | ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf 22 | 23 | SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf 24 | + FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf 25 | + BsaValLib|ShellPkg/Application/bsa-acs/val/BsaValLib.inf 26 | + BsaPalLib|ShellPkg/Application/bsa-acs/pal/uefi_dt/BsaPalLib.inf 27 | 28 | [PcdsFixedAtBuild] 29 | gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF 30 | @@ -93,6 +96,7 @@ 31 | ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf 32 | ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf 33 | ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf 34 | + ShellPkg/Application/bsa-acs/uefi_app/BsaAcs.inf 35 | 36 | ShellPkg/Application/Shell/Shell.inf { 37 | 38 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/prebuilt_images/v24.11_3.0.0-BET0/README.md: -------------------------------------------------------------------------------- 1 | The pre-built Release Image can be found at 2 | [https://github.com/ARM-software/arm-systemready/releases/download/v24.11_SR_REL3.0.0-BETA0_SR-DT_REL3.0.0-BETA0/systemready-dt_acs_live_image.wic.xz.zip](https://github.com/ARM-software/arm-systemready/releases/download/v24.11_SR_REL3.0.0-BETA0_SR-DT_REL3.0.0-BETA0/systemready-dt_acs_live_image.wic.xz.zip) 3 | 4 | Run below steps to decompress the file 5 | 6 | unzip systemready-dt_acs_live_image.wic.xz.zip \ 7 | xz -d systemready-dt_acs_live_image.wic.xz 8 | -------------------------------------------------------------------------------- /SystemReady-devicetree-band/prebuilt_images/v25.04_3.0.1/README.md: -------------------------------------------------------------------------------- 1 | 2 | The Devicetree band v3.0.1 release pre-built image is available at [https://github.com/ARM-software/arm-systemready/releases/download/v25.04_DT_3.0.1/systemready-dt_acs_live_image.wic.xz.](https://github.com/ARM-software/arm-systemready/releases/download/v25.04_DT_3.0.1/systemready-dt_acs_live_image.wic.xz) 3 | 4 | Run below steps to decompress the file 5 | 6 | - xz -d systemready-dt_acs_live_image.wic.xz 7 | -------------------------------------------------------------------------------- /common/config/acs_config.txt: -------------------------------------------------------------------------------- 1 | ACS version: ACS v25.04_3.0.1 2 | SRS version: SRS 3.0 3 | BSA version: BSA v1.1 4 | SBSA version: SBSA v7.2 5 | SBBR version: BBR v2.1 6 | BBSR version: BBSR v1.3 7 | Band: SystemReady band 8 | -------------------------------------------------------------------------------- /common/config/acs_config_dt.txt: -------------------------------------------------------------------------------- 1 | ACS version: ACS v25.04_3.0.1 2 | SRS version: SRS 3.0 3 | BSA version: BSA v1.1 4 | BBR version: BBR v2.1 5 | EBBR version: EBBR v2.2.0 6 | BBSR version: BBSR v1.3 7 | Band: SystemReady Devicetree band 8 | Device Tree Version:v0.4 9 | -------------------------------------------------------------------------------- /common/config/acs_run_config.ini: -------------------------------------------------------------------------------- 1 | [AUTOMATION] 2 | # This variable determines whether the automation run utilizes this configuration file. 3 | config_enabled_for_automation_run = false 4 | 5 | [SCT] 6 | # This variable Enable/Disable SCT run(Valid values true or false). 7 | automation_sct_run = true 8 | # Valid value is Sequence file. 9 | sct_sequence_file = SBBR.seq 10 | 11 | [SCRT] 12 | # This variable Enable/Disable SCRT run(Valid values true or false). 13 | automation_scrt_run = true 14 | 15 | [BSA] 16 | # This variable Enable/Disable BSA run(Valid values true or false). 17 | automation_bsa_run = true 18 | # Valid values 0, 100, 200, 300, ........, 900. 19 | bsa_modules = 20 | # Add tests to run here. 21 | bsa_tests = 22 | # Add tests you want to skip here. 23 | bsa_skip = 900 24 | # Default value 25 | bsa_verbose = 3 26 | 27 | [SBSA] 28 | # This variable Enable/Disable SBSA run(Valid values true or false). 29 | automation_sbsa_run = false 30 | # Valid values 0, 100, 200, 300 .........., 1300 31 | sbsa_modules = 32 | # Valid values are 3,4,5,6,7,fr. 33 | sbsa_level = 4 34 | # Add tests to run here. 35 | sbsa_tests = 36 | # Add tests you want to skip here. 37 | sbsa_skip = 900 38 | # valid values 1,2,3,4,5 39 | sbsa_verbose = 3 40 | 41 | [FWTS] 42 | # This variable Enable/Disable FWTS run(Valid values true or false). 43 | automation_fwts_run = true 44 | # Add modules to run in FWTS command, the modules needs to be seperated by space 45 | fwts_modules = --uefi-set-var-multiple=1 --uefi-get-mn-count-multiple=1 --sbbr esrt uefibootpath aest cedt slit srat hmat pcct pdtt bgrt bert einj erst hest sdei nfit iort mpam ibft ras2 46 | 47 | [BBSR_SCT] 48 | # This variable Enable/Disable BBSR_SCT run(Valid values true or false). 49 | automation_bbsr_sct_run = true 50 | # Valid value is Sequence file. 51 | bbsr_sct_sequence_file = BBSR.seq 52 | 53 | [BBSR_FWTS] 54 | # This variable Enable/Disable BBSR_FWTS run(Valid values true or false). 55 | automation_bbsr_fwts_run = true 56 | 57 | [BBSR_TPM] 58 | # This variable Enable/Disable BBSR_TPM run(Valid values true or false). 59 | automation_bbsr_tpm_run = true 60 | -------------------------------------------------------------------------------- /common/config/buildroot_defconfig: -------------------------------------------------------------------------------- 1 | # Architecture 2 | BR2_aarch64=y 3 | 4 | 5 | # Toolchain 6 | BR2_TOOLCHAIN_BUILDROOT_GLIBC=y 7 | BR2_TOOLCHAIN_BUILDROOT_CXX=y 8 | 9 | # Additional system packages 10 | BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y 11 | BR2_PACKAGE_PCIUTILS=y 12 | BR2_PACKAGE_DTC=y 13 | BR2_PACKAGE_DTC_PROGRAMS=y 14 | BR2_PACKAGE_LIBEVENT=y 15 | BR2_PACKAGE_BASH=y 16 | BR2_PACKAGE_SCREEN=y 17 | BR2_PACKAGE_VIM=y 18 | BR2_PACKAGE_KVMTOOL=y 19 | BR2_PACKAGE_DMIDECODE=y 20 | BR2_PACKAGE_EFIBOOTMGR=y 21 | BR2_PACKAGE_ETHTOOL=y 22 | 23 | # python packages 24 | BR2_PACKAGE_PYTHON3=y 25 | BR2_PACKAGE_PYTHON_PACKAGING=y 26 | BR2_PACKAGE_PYTHON3_CURSES=y 27 | BR2_PACKAGE_LIBXML2=y 28 | BR2_PACKAGE_PYTHON_PYYAML=y 29 | BR2_PACKAGE_PYTHON_CHARDET=y 30 | BR2_PACKAGE_PYTHON_MATPLOTLIB=y 31 | BR2_PACKAGE_PYTHON_NUMPY=y 32 | BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS=y 33 | BR2_INSTALL_LIBSTDCPP=y 34 | BR2_PACKAGE_PYTHON_JINJA2=y 35 | BR2_PACKAGE_PYTHON_LXML=y 36 | BR2_PACKAGE_PYTHON_PIP=y 37 | BR2_PACKAGE_PYTHON_PILLOW=y 38 | 39 | #FWTS package 40 | BR2_PACKAGE_FWTS=y 41 | BR2_PACKAGE_FWTS_EFI_RUNTIME_MODULE=y 42 | 43 | # Target filesystem 44 | BR2_TARGET_ROOTFS_CPIO=y 45 | 46 | #Additional packages 47 | BR2_ROOTFS_OVERLAY="root_fs_overlay" 48 | 49 | # Network manager and nmcli tool 50 | BR2_PACKAGE_EUDEV=y 51 | BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y 52 | BR2_STATIC_LIBS=n 53 | BR2_USE_MMU=y 54 | BR2_PACKAGE_HAS_UDEV=y 55 | BR2_TOOLCHAIN_GCC_AT_LEAST_4_9=y 56 | BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6=y 57 | BR2_TOOLCHAIN_USES_GLIBC=y 58 | BR2_TOOLCHAIN_HAS_THREADS=y 59 | BR2_USE_WCHAR=y 60 | BR2_PACKAGE_NETWORK_MANAGER=y 61 | BR2_PACKAGE_READLINE=y 62 | 63 | # additional linux utilities 64 | BR2_PACKAGE_UTIL_LINUX_BINARIES=y 65 | BR2_PACKAGE_OPENSSH=y 66 | BR2_PACKAGE_ZIP=y 67 | BR2_PACKAGE_UTIL_LINUX=y 68 | BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y 69 | BR2_PACKAGE_COREUTILS=y 70 | 71 | #Packages for BBSR 72 | BR2_PACKAGE_TROUSERS=y 73 | BR2_PACKAGE_OPTEE_CLIENT=y 74 | BR2_PACKAGE_EFIVAR=y 75 | BR2_PACKAGE_TPM2_TOOLS=y 76 | 77 | #Packages for ACPICA 78 | BR2_PACKAGE_ACPICA=y 79 | 80 | -------------------------------------------------------------------------------- /common/config/buildroot_sbsa_defconfig: -------------------------------------------------------------------------------- 1 | # Architecture 2 | BR2_aarch64=y 3 | 4 | 5 | # Toolchain 6 | BR2_TOOLCHAIN_BUILDROOT_GLIBC=y 7 | BR2_TOOLCHAIN_BUILDROOT_CXX=y 8 | 9 | #Additional packages 10 | BR2_PACKAGE_PYTHON3=y 11 | BR2_PACKAGE_PYTHON_PACKAGING=y 12 | BR2_PACKAGE_PYTHON3_CURSES=y 13 | BR2_PACKAGE_LIBXML2=y 14 | BR2_PACKAGE_PYTHON_PYYAML=y 15 | BR2_PACKAGE_PYTHON_CHARDET=y 16 | BR2_PACKAGE_PYTHON_MATPLOTLIB=y 17 | BR2_PACKAGE_PYTHON_NUMPY=y 18 | BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS=y 19 | BR2_INSTALL_LIBSTDCPP=y 20 | BR2_PACKAGE_PYTHON_JINJA2=y 21 | BR2_PACKAGE_PYTHON_LXML=y 22 | BR2_PACKAGE_PYTHON_PILLOW=y 23 | 24 | 25 | -------------------------------------------------------------------------------- /common/config/grub-buildroot.cfg: -------------------------------------------------------------------------------- 1 | set timeout=5 2 | set default='SystemReady band ACS (Automation)' 3 | set timeout=5 4 | set fallback=0 5 | set debug="loader,mm" 6 | set term="vt100" 7 | set timeout="5" 8 | 9 | menuentry 'Linux Boot' { 10 | linux /Image rootwait debug crashkernel=512M log_buf_len=1M print-fatal-signals=1 efi=debug acpi=on earlycon console=tty0 console=ttyS0 console=ttyAMA0 11 | initrd /ramdisk-buildroot.img 12 | } 13 | menuentry 'SystemReady band ACS (Automation)' { 14 | chainloader /EFI/BOOT/Shell.efi 15 | } 16 | menuentry 'BBSR Compliance (Automation)' { 17 | chainloader /EFI/BOOT/Shell.efi -nostartup bbsr_startup.nsh 18 | } 19 | menuentry 'UEFI Execution Enviroment' { 20 | chainloader /EFI/BOOT/Shell.efi -nostartup startup_ee.nsh 21 | } 22 | menuentry 'Linux Execution Enviroment' { 23 | linux /Image rootwait debug crashkernel=512M log_buf_len=1M print-fatal-signals=1 efi=debug acpi=on earlycon console=tty0 console=ttyS0 console=ttyAMA0 initcall_blacklist=psci_checker noacs 24 | initrd /ramdisk-buildroot.img 25 | } 26 | menuentry 'Linux Boot with SetVirtualAddressMap enabled' { 27 | linux /Image rootwait verbose debug crashkernel=256M psci_checker=disable acsforcevamap console=tty0 console=ttyS0 console=ttyAMA0 28 | initrd /ramdisk-buildroot.img 29 | } 30 | -------------------------------------------------------------------------------- /common/config/grub_prefix.cfg: -------------------------------------------------------------------------------- 1 | set prefix=($root)/EFI/BOOT 2 | -------------------------------------------------------------------------------- /common/config/system_config.txt: -------------------------------------------------------------------------------- 1 | FW source code: Unknown 2 | Flashing instructions: Unknown 3 | product website: Unknown 4 | Tested operated Systems: Unknown 5 | Testlab assistance: Unknown -------------------------------------------------------------------------------- /common/config/systemready-band-source.cfg: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022-2025, ARM Limited and Contributors. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are met: 5 | # 6 | # Redistributions of source code must retain the above copyright notice, this 7 | # list of conditions and the following disclaimer. 8 | # 9 | # Redistributions in binary form must reproduce the above copyright notice, 10 | # this list of conditions and the following disclaimer in the documentation 11 | # and/or other materials provided with the distribution. 12 | # 13 | # Neither the name of ARM nor the names of its contributors may be used 14 | # to endorse or promote products derived from this software without specific 15 | # prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21 | # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | # POSSIBILITY OF SUCH DAMAGE. 28 | 29 | 30 | #Linux kernel version. Source downloaded from https://github.com/torvalds/linux.git 31 | LINUX_KERNEL_VERSION=6.10 32 | 33 | #EDK2 source tag from https://github.com/tianocore/edk2.git 34 | EDK2_SRC_VERSION=edk2-stable202411 35 | 36 | # EDK2-TEST source tag from https://github.com/tianocore/edk2-test 37 | #SCT_SRC_VERSION=edk2-test-stable202406 38 | SCT_SRC_TAG=0e2ced3befa431bb1aebff005c4c4f1a9edfe6b4 39 | 40 | # GRUB2 source from https://github.com/rhboot/grub2.git 41 | GRUB_SRC_TAG=grub-2.06 42 | 43 | # UEFI secure boot toolkit source tag from 44 | # https://kernel.googlesource.com/pub/scm/linux/kernel/git/jejb/efitools 45 | EFITOOLS_SRC_TAG=v1.9.2 46 | 47 | #Arm BSA source tag. 48 | #NOTE: If the value is NULL then the latest BSA source will be downloaded 49 | ARM_BSA_TAG="" 50 | 51 | #NOTE: If the value is NULL then the latest SBSA source will be downloaded 52 | ARM_SBSA_TAG="" 53 | 54 | #Arm BBR source tag 55 | #NOTE: If the value is NULL then the latest BBR source will be downloaded 56 | ARM_BBR_TAG="" 57 | 58 | #Arm LINUX ACS source tag 59 | #NOTE: If the value is NULL then the latest Linux ACS source will be downloaded 60 | ARM_LINUX_ACS_TAG="" 61 | 62 | #Buildroot version used for sbsa7.1 63 | BUILDROOT_SRC_VERSION=2022.08.1 64 | 65 | #FWTS Version 66 | FWTS_VERSION=25.01.00 67 | 68 | #Cross compiler tools from https://releases.linaro.org/components/toolchain/binaries 69 | GCC_TOOLS_VERSION=13.2.rel1 70 | CROSS_COMPILER_URL=https://developer.arm.com/-/media/Files/downloads/gnu/${GCC_TOOLS_VERSION}/binrel/arm-gnu-toolchain-${GCC_TOOLS_VERSION}-x86_64-aarch64-none-linux-gnu.tar.xz 71 | 72 | #Export Toolchain path 73 | GCC=tools/arm-gnu-toolchain-${GCC_TOOLS_VERSION}-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- 74 | 75 | #edk2-test-parser version 76 | EDK2_TEST_PARSER_TAG=2bfb2e5bb9190e36ad1dd740be000a7e43b534c6 77 | -------------------------------------------------------------------------------- /common/config/systemready-dt-band-source.cfg: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2021-2024, ARM Limited and Contributors. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are met: 5 | # 6 | # Redistributions of source code must retain the above copyright notice, this 7 | # list of conditions and the following disclaimer. 8 | # 9 | # Redistributions in binary form must reproduce the above copyright notice, 10 | # this list of conditions and the following disclaimer in the documentation 11 | # and/or other materials provided with the distribution. 12 | # 13 | # Neither the name of ARM nor the names of its contributors may be used 14 | # to endorse or promote products derived from this software without specific 15 | # prior written permission. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21 | # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | # POSSIBILITY OF SUCH DAMAGE. 28 | 29 | # Yocto Build uses below configs 30 | 31 | #EDK2 source tag from https://github.com/tianocore/edk2.git 32 | EDK2_SRC_VERSION=edk2-stable202411 33 | EDK2_SRC_TAG=0f3867fa6ef0553e26c42f7d71ff6bdb98429742 34 | 35 | # EDK2-TEST source tag from https://github.com/tianocore/edk2-test 36 | #SCT_SRC_VERSION=edk2-test-stable202406 37 | SCT_SRC_TAG=0e2ced3befa431bb1aebff005c4c4f1a9edfe6b4 38 | 39 | # GRUB2 source from https://github.com/rhboot/grub2.git 40 | GRUB_SRC_TAG=grub-2.06 41 | 42 | #Arm BSA source tag. 43 | #NOTE: If the value is NULL then the latest BSA source will be downloaded 44 | ARM_BSA_TAG="" 45 | 46 | #Arm BBR source tag 47 | #NOTE: If the value is NULL then the latest BBR source will be downloaded 48 | ARM_BBR_TAG="" 49 | 50 | #Arm LINUX ACS source tag 51 | #NOTE: If the value is NULL then the latest Linux ACS source will be downloaded 52 | ARM_LINUX_ACS_TAG="" 53 | 54 | # EDK2-LIBC source tag from https://github.com/tianocore/edk2-libc 55 | EDK2_LIBC_SRC_TAG="" 56 | 57 | #edk2-test-parser version 58 | EDK2_TEST_PARSER_TAG=2bfb2e5bb9190e36ad1dd740be000a7e43b534c6 59 | 60 | #systemready-scripts version 61 | SYSTEMREADY_SCRIPTS_TAG=b2b2f998bd44c375898f0cb89f346f7ab464dd56 62 | 63 | #FWTS Version 64 | FWTS_VERSION=25.01.00 65 | -------------------------------------------------------------------------------- /common/linux_scripts/bsa.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2025, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | # Parse config file 19 | automation_enabled="`python3 /mnt/acs_tests/parser/Parser.py -automation`" 20 | if [ "$automation_enabled" == "True" ]; then 21 | bsa_command="`python3 /mnt/acs_tests/parser/Parser.py -bsa`" 22 | bsa_enabled="`python3 /mnt/acs_tests/parser/Parser.py -automation_bsa_run`" 23 | fi 24 | 25 | # Linux BSA Execution 26 | echo "Running Linux BSA tests" 27 | if [ "$automation_enabled" == "True" ] && [ "$bsa_enabled" == "False" ]; then 28 | echo "********* BSA is disabled in config file**************" 29 | else 30 | mkdir -p /mnt/acs_results/linux 31 | if [ -f /lib/modules/bsa_acs.ko ]; then 32 | insmod /lib/modules/bsa_acs.ko 33 | echo "SystemReady band ACS v3.0.1" > /mnt/acs_results/linux/BsaResultsApp.log 34 | if [ "$automation_enabled" == "False" ]; then 35 | /bin/bsa >> /mnt/acs_results/linux/BsaResultsApp.log 36 | else 37 | $bsa_command >> /mnt/acs_results/linux/BsaResultsApp.log 38 | fi 39 | dmesg | sed -n 'H; /PE_INFO/h; ${g;p;}' > /mnt/acs_results/linux/BsaResultsKernel.log 40 | sync /mnt 41 | sleep 5 42 | echo "Linux BSA test Execution - Completed" 43 | else 44 | echo "Error: BSA kernel Driver is not found. Linux BSA tests cannot be run." 45 | fi 46 | fi -------------------------------------------------------------------------------- /common/linux_scripts/extract_capsule_fw_version.py: -------------------------------------------------------------------------------- 1 | import chardet 2 | import re 3 | import sys 4 | 5 | def extract_hex_value(file_path): 6 | # Regular expression to match 'FwVersion - 0x' 7 | pattern = sys.argv[1] 8 | 9 | # Detect file encoding using chardet 10 | with open(file_path, 'rb') as file: 11 | raw_data = file.read() 12 | result = chardet.detect(raw_data) 13 | encoding = result['encoding'] 14 | 15 | try: 16 | # Read the file using the detected encoding 17 | with open(file_path, 'r', encoding=encoding) as file: 18 | lines = file.readlines() 19 | 20 | for line in lines: 21 | match = re.search(pattern, line) 22 | if match: 23 | return match.group(1) 24 | 25 | except UnicodeDecodeError: 26 | print(f"Error: Unable to decode the file {file_path} with detected encoding: {encoding}") 27 | return None 28 | 29 | return None 30 | 31 | file_path = sys.argv[2] 32 | hex_value = extract_hex_value(file_path) 33 | 34 | # Print the result 35 | if hex_value: 36 | print(hex_value) 37 | else: 38 | print("No 'FwVersion' found in the file.") 39 | -------------------------------------------------------------------------------- /common/linux_scripts/fwts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2025, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # Parse config file 20 | automation_enabled="`python3 /mnt/acs_tests/parser/Parser.py -automation`" 21 | if [ "$automation_enabled" == "True" ]; then 22 | fwts_command="`python3 /mnt/acs_tests/parser/Parser.py -fwts`" 23 | fwts_enabled="`python3 /mnt/acs_tests/parser/Parser.py -automation_fwts_run`" 24 | fi 25 | 26 | # FWTS (SBBR) Execution 27 | echo "Executing FWTS for SBBR" 28 | if [ "$automation_enabled" == "True" ] && [ "$fwts_enabled" == "False" ]; then 29 | echo "********* FWTS is disabled in config file**************" 30 | else 31 | mkdir -p /mnt/acs_results/fwts 32 | echo "SystemReady band ACS v3.0.1" > /mnt/acs_results/fwts/FWTSResults.log 33 | if [ "$automation_enabled" == "False" ]; then 34 | fwts -r stdout -q --uefi-set-var-multiple=1 --uefi-get-mn-count-multiple=1 --sbbr esrt uefibootpath aest cedt slit srat hmat pcct pdtt bgrt bert einj erst hest sdei nfit iort mpam ibft ras2 >> /mnt/acs_results/fwts/FWTSResults.log 35 | else 36 | $fwts_command >> /mnt/acs_results/fwts/FWTSResults.log 37 | fi 38 | sync /mnt 39 | sleep 5 40 | echo "FWTS Execution - Completed" 41 | fi -------------------------------------------------------------------------------- /common/linux_scripts/inittab: -------------------------------------------------------------------------------- 1 | # /etc/inittab 2 | # 3 | # Copyright (C) 2001 Erik Andersen 4 | # 5 | # Note: BusyBox init doesn't support runlevels. The runlevels field is 6 | # completely ignored by BusyBox init. If you want runlevels, use 7 | # sysvinit. 8 | # 9 | # Format for each entry: ::: 10 | # 11 | # id == tty to run on, or empty for /dev/console 12 | # runlevels == ignored 13 | # action == one of sysinit, respawn, askfirst, wait, and once 14 | # process == program to run 15 | 16 | # Startup the system 17 | ::sysinit:/bin/mount -t proc proc /proc 18 | ::sysinit:/bin/mount -o remount,rw / 19 | ::sysinit:/bin/mkdir -p /dev/pts /dev/shm 20 | ::sysinit:/bin/mount -a 21 | ::sysinit:/bin/mkdir -p /run/lock/subsys 22 | ::sysinit:/sbin/swapon -a 23 | null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd 24 | null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin 25 | null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout 26 | null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr 27 | ::sysinit:/bin/hostname -F /etc/hostname 28 | # now run any rc scripts 29 | ::sysinit:/etc/init.d/rcS 30 | 31 | # Put a getty on the serial port 32 | #console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL 33 | console::respawn:/sbin/getty -n -L -l /root.sh console 0 vt100 34 | 35 | # Stuff to do for the 3-finger salute 36 | #::ctrlaltdel:/sbin/reboot 37 | 38 | # Stuff to do before rebooting 39 | ::shutdown:/etc/init.d/rcK 40 | ::shutdown:/sbin/swapoff -a 41 | ::shutdown:/bin/umount -a -r 42 | -------------------------------------------------------------------------------- /common/linux_scripts/resolv.conf: -------------------------------------------------------------------------------- 1 | # used to configure DNS server by network manager 2 | # 8.8.8.8 and 8.8.4.4 are Google public DNS servers 3 | 4 | nameserver 8.8.8.8 5 | nameserver 8.8.4.4 6 | 7 | -------------------------------------------------------------------------------- /common/linux_scripts/sbsa.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2025, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # Parse config file 20 | automation_enabled="`python3 /mnt/acs_tests/parser/Parser.py -automation`" 21 | if [ "$automation_enabled" == "True" ]; then 22 | sbsa_command="`python3 /mnt/acs_tests/parser/Parser.py -sbsa`" 23 | sbsa_enabled="`python3 /mnt/acs_tests/parser/Parser.py -automation_sbsa_run`" 24 | fi 25 | 26 | # Linux SBSA Execution 27 | echo "Running Linux SBSA tests" 28 | if [ "$automation_enabled" == "True" ] && [ "$sbsa_enabled" == "False" ]; then 29 | echo "********* SBSA is disabled in config file**************" 30 | else 31 | if [ -f /lib/modules/sbsa_acs.ko ]; then 32 | insmod /lib/modules/sbsa_acs.ko 33 | echo "SystemReady band ACS v3.0.1" > /mnt/acs_results/linux/SbsaResultsApp.log 34 | if [ "$automation_enabled" == "False" ]; then 35 | /bin/sbsa >> /mnt/acs_results/linux/SbsaResultsApp.log 36 | else 37 | $sbsa_command >> /mnt/acs_results/linux/SbsaResultsApp.log 38 | fi 39 | dmesg | sed -n 'H; /PE_INFO/h; ${g;p;}' > /mnt/acs_results/linux/SbsaResultsKernel.log 40 | sync /mnt 41 | sleep 5 42 | echo "Linux SBSA test Execution - Completed" 43 | else 44 | echo "Error: SBSA kernel Driver is not found. Linux SBSA tests cannot be run." 45 | fi 46 | fi -------------------------------------------------------------------------------- /common/log_parser/merge_summary.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | import argparse 18 | import os 19 | 20 | def read_file(file_path): 21 | _, file_extension = os.path.splitext(file_path) 22 | with open(file_path, "r") as file: 23 | return file_extension, file.read() 24 | 25 | def merge_files(input_file_paths, merged_file_path): 26 | # Read the contents of the existing files 27 | file_contents = [] 28 | for file_path in input_file_paths: 29 | file_extension, content = read_file(file_path) 30 | file_contents.append((file_extension, content)) 31 | 32 | # Merge the contents into an HTML file 33 | with open(merged_file_path, "w") as merged_file: 34 | merged_file.write("\n\nSummary\n\n\n") 35 | for i, (file_extension, content) in enumerate(file_contents): 36 | merged_file.write(content + "\n") 37 | merged_file.write("\n") 38 | 39 | if __name__ == "__main__": 40 | # Create a command-line argument parser 41 | parser = argparse.ArgumentParser(description="Merge multiple files into a single HTML file.") 42 | 43 | # Add the command-line arguments 44 | parser.add_argument("input_file_paths", nargs='+', help="Paths to the input files") 45 | parser.add_argument("merged_file_path", help="Path for the merged HTML file") 46 | 47 | # Parse the command-line arguments 48 | args = parser.parse_args() 49 | 50 | # Call the function with the provided arguments 51 | merge_files(args.input_file_paths, args.merged_file_path) 52 | -------------------------------------------------------------------------------- /common/parser/Parser.inf: -------------------------------------------------------------------------------- 1 | ## @file 2 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | ## 17 | 18 | 19 | [Defines] 20 | INF_VERSION = 0x00010006 21 | BASE_NAME = Parser 22 | FILE_GUID = a912f198-7f0e-4803-b908-b757b806ec83 23 | MODULE_TYPE = UEFI_APPLICATION 24 | VERSION_STRING = 0.1 25 | ENTRY_POINT = ShellCEntryLib 26 | 27 | # 28 | # VALID_ARCHITECTURES = AARCH64 29 | # 30 | 31 | [Sources.AARCH64] 32 | ../ 33 | Parser_app.c 34 | 35 | [Packages] 36 | StdLib/StdLib.dec 37 | EmbeddedPkg/EmbeddedPkg.dec 38 | MdePkg/MdePkg.dec 39 | MdeModulePkg/MdeModulePkg.dec 40 | ShellPkg/ShellPkg.dec 41 | 42 | [LibraryClasses] 43 | UefiLib 44 | ShellLib 45 | DebugLib 46 | BaseMemoryLib 47 | ShellCEntryLib 48 | UefiBootServicesTableLib 49 | UefiRuntimeServicesTableLib 50 | PrintLib 51 | BaseLib 52 | 53 | [Protocols] 54 | gEfiAcpiTableProtocolGuid ## CONSUMES 55 | gEfiLoadedImageProtocolGuid ## CONSUMES 56 | gEfiShellProtocolGuid 57 | 58 | [Guids] 59 | gEfiAcpi20TableGuid 60 | gEfiAcpiTableGuid 61 | gEfiGlobalVariableGuid 62 | -------------------------------------------------------------------------------- /common/patches/0001-GRUB-correct-detection-of-DDR-RAM-address.patch: -------------------------------------------------------------------------------- 1 | From 6c950c8fe7835e55a342c4a6dc7f117aab2e92bc Mon Sep 17 00:00:00 2001 2 | From: Etienne Carriere 3 | Date: Mon, 2 May 2022 09:17:52 +0200 4 | Subject: [PATCH] Subject: [PATCH] GRUB: correct detection of DDR RAM address 5 | 6 | Consider only conventional memory (EFI_CONVENTIONAL_MEMORY == 7) when 7 | computing main RAM memory map. 8 | 9 | Signed-off-by: Christophe Priouzeau 10 | Signed-off-by: Etienne Carriere 11 | --- 12 | grub-core/kern/efi/mm.c | 0 -+ 13 | 1 file changed, 2 insertions(+) 14 | 15 | Signed-off-by: Etienne Carriere 16 | --- 17 | grub-core/kern/efi/mm.c | 2 +- 18 | 1 file changed, 1 insertion(+), 1 deletion(-) 19 | 20 | diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c 21 | index d8e411454..97023c17b 100644 22 | --- a/grub-core/kern/efi/mm.c 23 | +++ b/grub-core/kern/efi/mm.c 24 | @@ -681,7 +681,7 @@ grub_efi_get_ram_base(grub_addr_t *base_addr) 25 | for (desc = memory_map, *base_addr = GRUB_EFI_MAX_USABLE_ADDRESS; 26 | (grub_addr_t) desc < ((grub_addr_t) memory_map + memory_map_size); 27 | desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) 28 | - if (desc->attribute & GRUB_EFI_MEMORY_WB) 29 | + if ((desc->type == 7) && (desc->attribute & GRUB_EFI_MEMORY_WB)) 30 | *base_addr = grub_min (*base_addr, desc->physical_start); 31 | 32 | grub_free(memory_map); 33 | -- 34 | 2.17.1 35 | 36 | -------------------------------------------------------------------------------- /common/patches/0001-SystemReady-Linux-6.10.patch: -------------------------------------------------------------------------------- 1 | From c9c9a54964b3d8e9eb19ee9bec5993ef22230fce Mon Sep 17 00:00:00 2001 2 | From: gurrev01 3 | Date: Thu, 24 Oct 2024 13:09:11 +0530 4 | Subject: [PATCH] SystemReady Linux 6.10 5 | 6 | Signed-off-by: gurrev01 7 | --- 8 | .../admin-guide/kernel-parameters.txt | 1 + 9 | .../firmware/efi/libstub/efi-stub-helper.c | 2 ++ 10 | drivers/firmware/efi/libstub/efistub.h | 1 + 11 | drivers/firmware/efi/libstub/fdt.c | 21 +++++++++++++++++-- 12 | 4 files changed, 23 insertions(+), 2 deletions(-) 13 | 14 | diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt 15 | index 27ec49af1..5adc6a33c 100644 16 | --- a/Documentation/admin-guide/kernel-parameters.txt 17 | +++ b/Documentation/admin-guide/kernel-parameters.txt 18 | @@ -1422,6 +1422,7 @@ 19 | reservation and treat the memory by its base type 20 | (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). 21 | novamap: do not call SetVirtualAddressMap(). 22 | + acsforcevamap: Arm ACS, force the call of SetVirtualAddressMap(). 23 | no_disable_early_pci_dma: Leave the busmaster bit set 24 | on all PCI bridges while in the EFI boot stub 25 | 26 | diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c 27 | index de659f6a8..a35971ea2 100644 28 | --- a/drivers/firmware/efi/libstub/efi-stub-helper.c 29 | +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c 30 | @@ -20,6 +20,7 @@ 31 | bool efi_nochunk; 32 | bool efi_nokaslr = !IS_ENABLED(CONFIG_RANDOMIZE_BASE); 33 | bool efi_novamap; 34 | +bool efi_acsforcevamap = false; 35 | 36 | static bool efi_noinitrd; 37 | static bool efi_nosoftreserve; 38 | @@ -87,6 +88,7 @@ efi_status_t efi_parse_options(char const *cmdline) 39 | } else if (!strcmp(param, "efi") && val) { 40 | efi_nochunk = parse_option_str(val, "nochunk"); 41 | efi_novamap |= parse_option_str(val, "novamap"); 42 | + efi_acsforcevamap |= parse_option_str(val, "acsforcevamap"); 43 | 44 | efi_nosoftreserve = IS_ENABLED(CONFIG_EFI_SOFT_RESERVE) && 45 | parse_option_str(val, "nosoftreserve"); 46 | diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h 47 | index 27abb4ce0..0a7314121 100644 48 | --- a/drivers/firmware/efi/libstub/efistub.h 49 | +++ b/drivers/firmware/efi/libstub/efistub.h 50 | @@ -39,6 +39,7 @@ extern bool efi_nokaslr; 51 | extern int efi_loglevel; 52 | extern int efi_mem_encrypt; 53 | extern bool efi_novamap; 54 | +extern bool efi_acsforcevamap; 55 | extern const efi_system_table_t *efi_system_table; 56 | 57 | typedef union efi_dxe_services_table efi_dxe_services_table_t; 58 | diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c 59 | index 6a337f1f8..4471ea181 100644 60 | --- a/drivers/firmware/efi/libstub/fdt.c 61 | +++ b/drivers/firmware/efi/libstub/fdt.c 62 | @@ -232,13 +232,30 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 63 | unsigned long fdt_addr = 0; 64 | unsigned long fdt_size = 0; 65 | 66 | - if (!efi_novamap) { 67 | + if(efi_acsforcevamap) { 68 | + efi_info("ACS:acsforcevamap is 1\n"); 69 | + } 70 | + else { 71 | + efi_info("ACS:acsforcevamap is 0\n"); 72 | + } 73 | + 74 | + if(efi_novamap) { 75 | + efi_info("ACS:efi_novamap is 1\n"); 76 | + } 77 | + else { 78 | + efi_info("ACS:efi_novamap is 0\n"); 79 | + } 80 | + 81 | + 82 | + if (!efi_novamap || efi_acsforcevamap) { 83 | + efi_info("ACS:Alloc memory for virtual address map ..."); 84 | status = efi_alloc_virtmap(&priv.runtime_map, &desc_size, 85 | &desc_ver); 86 | if (status != EFI_SUCCESS) { 87 | efi_err("Unable to retrieve UEFI memory map.\n"); 88 | return status; 89 | } 90 | + efi_info(" Success\n"); 91 | } 92 | 93 | /* 94 | @@ -294,7 +311,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 95 | if (status == EFI_SUCCESS) { 96 | efi_set_virtual_address_map_t *svam; 97 | 98 | - if (efi_novamap) 99 | + if (efi_novamap && !efi_acsforcevamap) 100 | return EFI_SUCCESS; 101 | 102 | /* Install the new virtual address map */ 103 | -- 104 | 2.25.1 105 | 106 | -------------------------------------------------------------------------------- /common/patches/0001-SystemReady-Linux-6.12.patch: -------------------------------------------------------------------------------- 1 | From 8c1d1d2ca10b07d7b8f4318d5d2fca3348427acf Mon Sep 17 00:00:00 2001 2 | From: Guru9902 3 | Date: Tue, 25 Feb 2025 06:37:37 +0000 4 | Subject: [PATCH] SystemReady Linux 6.12 5 | 6 | Signed-off-by: Guru9902 7 | --- 8 | .../admin-guide/kernel-parameters.txt | 1 + 9 | .../firmware/efi/libstub/efi-stub-helper.c | 2 ++ 10 | drivers/firmware/efi/libstub/efistub.h | 1 + 11 | drivers/firmware/efi/libstub/fdt.c | 21 +++++++++++++++++-- 12 | 4 files changed, 23 insertions(+), 2 deletions(-) 13 | 14 | diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt 15 | index d401577b5a6a..2c664a83f5e9 100644 16 | --- a/Documentation/admin-guide/kernel-parameters.txt 17 | +++ b/Documentation/admin-guide/kernel-parameters.txt 18 | @@ -1462,6 +1462,7 @@ 19 | reservation and treat the memory by its base type 20 | (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). 21 | novamap: do not call SetVirtualAddressMap(). 22 | + acsforcevamap: Arm ACS, force the call of SetVirtualAddressMap(). 23 | no_disable_early_pci_dma: Leave the busmaster bit set 24 | on all PCI bridges while in the EFI boot stub 25 | 26 | diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c 27 | index de659f6a815f..a35971ea2d5a 100644 28 | --- a/drivers/firmware/efi/libstub/efi-stub-helper.c 29 | +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c 30 | @@ -20,6 +20,7 @@ 31 | bool efi_nochunk; 32 | bool efi_nokaslr = !IS_ENABLED(CONFIG_RANDOMIZE_BASE); 33 | bool efi_novamap; 34 | +bool efi_acsforcevamap = false; 35 | 36 | static bool efi_noinitrd; 37 | static bool efi_nosoftreserve; 38 | @@ -87,6 +88,7 @@ efi_status_t efi_parse_options(char const *cmdline) 39 | } else if (!strcmp(param, "efi") && val) { 40 | efi_nochunk = parse_option_str(val, "nochunk"); 41 | efi_novamap |= parse_option_str(val, "novamap"); 42 | + efi_acsforcevamap |= parse_option_str(val, "acsforcevamap"); 43 | 44 | efi_nosoftreserve = IS_ENABLED(CONFIG_EFI_SOFT_RESERVE) && 45 | parse_option_str(val, "nosoftreserve"); 46 | diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h 47 | index 685098f9626f..8f5e019780e6 100644 48 | --- a/drivers/firmware/efi/libstub/efistub.h 49 | +++ b/drivers/firmware/efi/libstub/efistub.h 50 | @@ -39,6 +39,7 @@ extern bool efi_nokaslr; 51 | extern int efi_loglevel; 52 | extern int efi_mem_encrypt; 53 | extern bool efi_novamap; 54 | +extern bool efi_acsforcevamap; 55 | extern const efi_system_table_t *efi_system_table; 56 | 57 | typedef union efi_dxe_services_table efi_dxe_services_table_t; 58 | diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c 59 | index 6a337f1f8787..4471ea1811be 100644 60 | --- a/drivers/firmware/efi/libstub/fdt.c 61 | +++ b/drivers/firmware/efi/libstub/fdt.c 62 | @@ -232,13 +232,30 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 63 | unsigned long fdt_addr = 0; 64 | unsigned long fdt_size = 0; 65 | 66 | - if (!efi_novamap) { 67 | + if(efi_acsforcevamap) { 68 | + efi_info("ACS:acsforcevamap is 1\n"); 69 | + } 70 | + else { 71 | + efi_info("ACS:acsforcevamap is 0\n"); 72 | + } 73 | + 74 | + if(efi_novamap) { 75 | + efi_info("ACS:efi_novamap is 1\n"); 76 | + } 77 | + else { 78 | + efi_info("ACS:efi_novamap is 0\n"); 79 | + } 80 | + 81 | + 82 | + if (!efi_novamap || efi_acsforcevamap) { 83 | + efi_info("ACS:Alloc memory for virtual address map ..."); 84 | status = efi_alloc_virtmap(&priv.runtime_map, &desc_size, 85 | &desc_ver); 86 | if (status != EFI_SUCCESS) { 87 | efi_err("Unable to retrieve UEFI memory map.\n"); 88 | return status; 89 | } 90 | + efi_info(" Success\n"); 91 | } 92 | 93 | /* 94 | @@ -294,7 +311,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 95 | if (status == EFI_SUCCESS) { 96 | efi_set_virtual_address_map_t *svam; 97 | 98 | - if (efi_novamap) 99 | + if (efi_novamap && !efi_acsforcevamap) 100 | return EFI_SUCCESS; 101 | 102 | /* Install the new virtual address map */ 103 | -- 104 | 2.43.0 105 | 106 | -------------------------------------------------------------------------------- /common/patches/0001-SystemReady-Linux-6.13.patch: -------------------------------------------------------------------------------- 1 | From d98e17c06af9126952db516fb2ff6c614efa1dcb Mon Sep 17 00:00:00 2001 2 | From: Rajat Goyal 3 | Date: Tue, 8 Apr 2025 09:38:34 +0000 4 | Subject: [PATCH] SystemReady Linux 6.13 5 | 6 | Signed-off-by: Rajat Goyal 7 | Change-Id: I9f5488a91fc531bb9a626893c4edd5d71e7ed159 8 | --- 9 | .../admin-guide/kernel-parameters.txt | 1 + 10 | .../firmware/efi/libstub/efi-stub-helper.c | 2 ++ 11 | drivers/firmware/efi/libstub/efistub.h | 1 + 12 | drivers/firmware/efi/libstub/fdt.c | 21 +++++++++++++++++-- 13 | 4 files changed, 23 insertions(+), 2 deletions(-) 14 | 15 | diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt 16 | index 3872bc6ec49d..fe35184d28cf 100644 17 | --- a/Documentation/admin-guide/kernel-parameters.txt 18 | +++ b/Documentation/admin-guide/kernel-parameters.txt 19 | @@ -1469,6 +1469,7 @@ 20 | reservation and treat the memory by its base type 21 | (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). 22 | novamap: do not call SetVirtualAddressMap(). 23 | + acsforcevamap: Arm ACS, force the call of SetVirtualAddressMap(). 24 | no_disable_early_pci_dma: Leave the busmaster bit set 25 | on all PCI bridges while in the EFI boot stub 26 | 27 | diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c 28 | index c0c81ca4237e..e08bda316892 100644 29 | --- a/drivers/firmware/efi/libstub/efi-stub-helper.c 30 | +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c 31 | @@ -20,6 +20,7 @@ 32 | bool efi_nochunk; 33 | bool efi_nokaslr = !IS_ENABLED(CONFIG_RANDOMIZE_BASE); 34 | bool efi_novamap; 35 | +bool efi_acsforcevamap = false; 36 | 37 | static bool efi_noinitrd; 38 | static bool efi_nosoftreserve; 39 | @@ -87,6 +88,7 @@ efi_status_t efi_parse_options(char const *cmdline) 40 | } else if (!strcmp(param, "efi") && val) { 41 | efi_nochunk = parse_option_str(val, "nochunk"); 42 | efi_novamap |= parse_option_str(val, "novamap"); 43 | + efi_acsforcevamap |= parse_option_str(val, "acsforcevamap"); 44 | 45 | efi_nosoftreserve = IS_ENABLED(CONFIG_EFI_SOFT_RESERVE) && 46 | parse_option_str(val, "nosoftreserve"); 47 | diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h 48 | index 76e44c185f29..97232efbc21c 100644 49 | --- a/drivers/firmware/efi/libstub/efistub.h 50 | +++ b/drivers/firmware/efi/libstub/efistub.h 51 | @@ -39,6 +39,7 @@ extern bool efi_nokaslr; 52 | extern int efi_loglevel; 53 | extern int efi_mem_encrypt; 54 | extern bool efi_novamap; 55 | +extern bool efi_acsforcevamap; 56 | extern const efi_system_table_t *efi_system_table; 57 | 58 | typedef union efi_dxe_services_table efi_dxe_services_table_t; 59 | diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c 60 | index 6a337f1f8787..4471ea1811be 100644 61 | --- a/drivers/firmware/efi/libstub/fdt.c 62 | +++ b/drivers/firmware/efi/libstub/fdt.c 63 | @@ -232,13 +232,30 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 64 | unsigned long fdt_addr = 0; 65 | unsigned long fdt_size = 0; 66 | 67 | - if (!efi_novamap) { 68 | + if(efi_acsforcevamap) { 69 | + efi_info("ACS:acsforcevamap is 1\n"); 70 | + } 71 | + else { 72 | + efi_info("ACS:acsforcevamap is 0\n"); 73 | + } 74 | + 75 | + if(efi_novamap) { 76 | + efi_info("ACS:efi_novamap is 1\n"); 77 | + } 78 | + else { 79 | + efi_info("ACS:efi_novamap is 0\n"); 80 | + } 81 | + 82 | + 83 | + if (!efi_novamap || efi_acsforcevamap) { 84 | + efi_info("ACS:Alloc memory for virtual address map ..."); 85 | status = efi_alloc_virtmap(&priv.runtime_map, &desc_size, 86 | &desc_ver); 87 | if (status != EFI_SUCCESS) { 88 | efi_err("Unable to retrieve UEFI memory map.\n"); 89 | return status; 90 | } 91 | + efi_info(" Success\n"); 92 | } 93 | 94 | /* 95 | @@ -294,7 +311,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 96 | if (status == EFI_SUCCESS) { 97 | efi_set_virtual_address_map_t *svam; 98 | 99 | - if (efi_novamap) 100 | + if (efi_novamap && !efi_acsforcevamap) 101 | return EFI_SUCCESS; 102 | 103 | /* Install the new virtual address map */ 104 | -- 105 | 2.34.1 106 | 107 | -------------------------------------------------------------------------------- /common/patches/0001-SystemReady-Linux-6.7.patch: -------------------------------------------------------------------------------- 1 | From fd69708b7eba86bb2147bc337a540653bebb4331 Mon Sep 17 00:00:00 2001 2 | From: Guru9902 3 | Date: Thu, 15 Feb 2024 08:36:58 +0000 4 | Subject: [PATCH 1/2] SystemReady linux 6.7 5 | 6 | Signed-off-by: Guru9902 7 | --- 8 | .../admin-guide/kernel-parameters.txt | 1 + 9 | .../firmware/efi/libstub/efi-stub-helper.c | 2 ++ 10 | drivers/firmware/efi/libstub/efistub.h | 1 + 11 | drivers/firmware/efi/libstub/fdt.c | 21 +++++++++++++++++-- 12 | 4 files changed, 23 insertions(+), 2 deletions(-) 13 | 14 | diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt 15 | index 65731b060..a1100b112 100644 16 | --- a/Documentation/admin-guide/kernel-parameters.txt 17 | +++ b/Documentation/admin-guide/kernel-parameters.txt 18 | @@ -1401,6 +1401,7 @@ 19 | reservation and treat the memory by its base type 20 | (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). 21 | novamap: do not call SetVirtualAddressMap(). 22 | + acsforcevamap: Arm ACS, force the call of SetVirtualAddressMap(). 23 | no_disable_early_pci_dma: Leave the busmaster bit set 24 | on all PCI bridges while in the EFI boot stub 25 | 26 | diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c 27 | index bfa30625f..6feb98f97 100644 28 | --- a/drivers/firmware/efi/libstub/efi-stub-helper.c 29 | +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c 30 | @@ -19,6 +19,7 @@ 31 | bool efi_nochunk; 32 | bool efi_nokaslr = !IS_ENABLED(CONFIG_RANDOMIZE_BASE); 33 | bool efi_novamap; 34 | +bool efi_acsforcevamap = false; 35 | 36 | static bool efi_noinitrd; 37 | static bool efi_nosoftreserve; 38 | @@ -78,6 +79,7 @@ efi_status_t efi_parse_options(char const *cmdline) 39 | } else if (!strcmp(param, "efi") && val) { 40 | efi_nochunk = parse_option_str(val, "nochunk"); 41 | efi_novamap |= parse_option_str(val, "novamap"); 42 | + efi_acsforcevamap |= parse_option_str(val, "acsforcevamap"); 43 | 44 | efi_nosoftreserve = IS_ENABLED(CONFIG_EFI_SOFT_RESERVE) && 45 | parse_option_str(val, "nosoftreserve"); 46 | diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h 47 | index 212687c30..080962f91 100644 48 | --- a/drivers/firmware/efi/libstub/efistub.h 49 | +++ b/drivers/firmware/efi/libstub/efistub.h 50 | @@ -38,6 +38,7 @@ extern bool efi_nochunk; 51 | extern bool efi_nokaslr; 52 | extern int efi_loglevel; 53 | extern bool efi_novamap; 54 | +extern bool efi_acsforcevamap; 55 | 56 | extern const efi_system_table_t *efi_system_table; 57 | 58 | diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c 59 | index 70e9789ff..a9fab1a2a 100644 60 | --- a/drivers/firmware/efi/libstub/fdt.c 61 | +++ b/drivers/firmware/efi/libstub/fdt.c 62 | @@ -232,13 +232,30 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 63 | unsigned long fdt_addr = 0; 64 | unsigned long fdt_size = 0; 65 | 66 | - if (!efi_novamap) { 67 | + if(efi_acsforcevamap) { 68 | + efi_info("ACS:acsforcevamap is 1\n"); 69 | + } 70 | + else { 71 | + efi_info("ACS:acsforcevamap is 0\n"); 72 | + } 73 | + 74 | + if(efi_novamap) { 75 | + efi_info("ACS:efi_novamap is 1\n"); 76 | + } 77 | + else { 78 | + efi_info("ACS:efi_novamap is 0\n"); 79 | + } 80 | + 81 | + 82 | + if (!efi_novamap || efi_acsforcevamap) { 83 | + efi_info("ACS:Alloc memory for virtual address map ..."); 84 | status = efi_alloc_virtmap(&priv.runtime_map, &desc_size, 85 | &desc_ver); 86 | if (status != EFI_SUCCESS) { 87 | efi_err("Unable to retrieve UEFI memory map.\n"); 88 | return status; 89 | } 90 | + efi_info(" Success\n"); 91 | } 92 | 93 | /* 94 | @@ -294,7 +311,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 95 | if (status == EFI_SUCCESS) { 96 | efi_set_virtual_address_map_t *svam; 97 | 98 | - if (efi_novamap) 99 | + if (efi_novamap && !efi_acsforcevamap) 100 | return EFI_SUCCESS; 101 | 102 | /* Install the new virtual address map */ 103 | -- 104 | 2.34.1 105 | 106 | -------------------------------------------------------------------------------- /common/patches/0001-SystemReady-Linux-6.8.patch: -------------------------------------------------------------------------------- 1 | From c9e480a12a2fe1c2f4008251fe231d94cc709583 Mon Sep 17 00:00:00 2001 2 | From: Guru9902 3 | Date: Wed, 24 Apr 2024 09:33:13 +0000 4 | Subject: [PATCH] SystemReady Linux 6.8 5 | 6 | Signed-off-by: Guru9902 7 | --- 8 | .../admin-guide/kernel-parameters.txt | 1 + 9 | .../firmware/efi/libstub/efi-stub-helper.c | 2 ++ 10 | drivers/firmware/efi/libstub/efistub.h | 1 + 11 | drivers/firmware/efi/libstub/fdt.c | 21 +++++++++++++++++-- 12 | 4 files changed, 23 insertions(+), 2 deletions(-) 13 | 14 | diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt 15 | index 31b3a2568..e95a8eac0 100644 16 | --- a/Documentation/admin-guide/kernel-parameters.txt 17 | +++ b/Documentation/admin-guide/kernel-parameters.txt 18 | @@ -1414,6 +1414,7 @@ 19 | reservation and treat the memory by its base type 20 | (i.e. EFI_CONVENTIONAL_MEMORY / "System RAM"). 21 | novamap: do not call SetVirtualAddressMap(). 22 | + acsforcevamap: Arm ACS, force the call of SetVirtualAddressMap(). 23 | no_disable_early_pci_dma: Leave the busmaster bit set 24 | on all PCI bridges while in the EFI boot stub 25 | 26 | diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c 27 | index bfa30625f..6feb98f97 100644 28 | --- a/drivers/firmware/efi/libstub/efi-stub-helper.c 29 | +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c 30 | @@ -19,6 +19,7 @@ 31 | bool efi_nochunk; 32 | bool efi_nokaslr = !IS_ENABLED(CONFIG_RANDOMIZE_BASE); 33 | bool efi_novamap; 34 | +bool efi_acsforcevamap = false; 35 | 36 | static bool efi_noinitrd; 37 | static bool efi_nosoftreserve; 38 | @@ -78,6 +79,7 @@ efi_status_t efi_parse_options(char const *cmdline) 39 | } else if (!strcmp(param, "efi") && val) { 40 | efi_nochunk = parse_option_str(val, "nochunk"); 41 | efi_novamap |= parse_option_str(val, "novamap"); 42 | + efi_acsforcevamap |= parse_option_str(val, "acsforcevamap"); 43 | 44 | efi_nosoftreserve = IS_ENABLED(CONFIG_EFI_SOFT_RESERVE) && 45 | parse_option_str(val, "nosoftreserve"); 46 | diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h 47 | index c04b82ea4..4d31737e2 100644 48 | --- a/drivers/firmware/efi/libstub/efistub.h 49 | +++ b/drivers/firmware/efi/libstub/efistub.h 50 | @@ -38,6 +38,7 @@ extern bool efi_nochunk; 51 | extern bool efi_nokaslr; 52 | extern int efi_loglevel; 53 | extern bool efi_novamap; 54 | +extern bool efi_acsforcevamap; 55 | 56 | extern const efi_system_table_t *efi_system_table; 57 | 58 | diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c 59 | index 70e9789ff..a9fab1a2a 100644 60 | --- a/drivers/firmware/efi/libstub/fdt.c 61 | +++ b/drivers/firmware/efi/libstub/fdt.c 62 | @@ -232,13 +232,30 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 63 | unsigned long fdt_addr = 0; 64 | unsigned long fdt_size = 0; 65 | 66 | - if (!efi_novamap) { 67 | + if(efi_acsforcevamap) { 68 | + efi_info("ACS:acsforcevamap is 1\n"); 69 | + } 70 | + else { 71 | + efi_info("ACS:acsforcevamap is 0\n"); 72 | + } 73 | + 74 | + if(efi_novamap) { 75 | + efi_info("ACS:efi_novamap is 1\n"); 76 | + } 77 | + else { 78 | + efi_info("ACS:efi_novamap is 0\n"); 79 | + } 80 | + 81 | + 82 | + if (!efi_novamap || efi_acsforcevamap) { 83 | + efi_info("ACS:Alloc memory for virtual address map ..."); 84 | status = efi_alloc_virtmap(&priv.runtime_map, &desc_size, 85 | &desc_ver); 86 | if (status != EFI_SUCCESS) { 87 | efi_err("Unable to retrieve UEFI memory map.\n"); 88 | return status; 89 | } 90 | + efi_info(" Success\n"); 91 | } 92 | 93 | /* 94 | @@ -294,7 +311,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle, 95 | if (status == EFI_SUCCESS) { 96 | efi_set_virtual_address_map_t *svam; 97 | 98 | - if (efi_novamap) 99 | + if (efi_novamap && !efi_acsforcevamap) 100 | return EFI_SUCCESS; 101 | 102 | /* Install the new virtual address map */ 103 | -- 104 | 2.34.1 105 | 106 | -------------------------------------------------------------------------------- /common/patches/0001-disable-psci-checker.patch: -------------------------------------------------------------------------------- 1 | From 848ffd51a567b226d10bab9cc2c52083e8c8b12c Mon Sep 17 00:00:00 2001 2 | From: gurrev01 3 | Date: Mon, 21 Oct 2024 14:54:02 +0530 4 | Subject: [PATCH] disable psci checker 5 | 6 | Signed-off-by: gurrev01 7 | --- 8 | drivers/firmware/psci/psci_checker.c | 9 +++++++++ 9 | 1 file changed, 9 insertions(+) 10 | 11 | diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c 12 | index 116eb465c..2e2eb3983 100644 13 | --- a/drivers/firmware/psci/psci_checker.c 14 | +++ b/drivers/firmware/psci/psci_checker.c 15 | @@ -438,6 +438,15 @@ static int suspend_tests(void) 16 | static int __init psci_checker(void) 17 | { 18 | int ret; 19 | + char *cmdline = boot_command_line; // Get kernel command line 20 | + 21 | + // Check if the "psci_checker=disable" parameter is present 22 | + if (strstr(cmdline, "psci_checker=disable")) { 23 | + pr_info("PSCI checker is disabled based on the kernel command line.\n"); 24 | + return 0; 25 | + } 26 | + 27 | + pr_info("PSCI checker is enabled by default.\n"); 28 | 29 | /* 30 | * Since we're in an initcall, we assume that all the CPUs that all 31 | -- 32 | 2.25.1 33 | 34 | -------------------------------------------------------------------------------- /common/patches/0001-parser-app.patch: -------------------------------------------------------------------------------- 1 | From 601266f25fe54710e7c28b67594fabb53c9547c3 Mon Sep 17 00:00:00 2001 2 | From: Guru9902 3 | Date: Thu, 10 Apr 2025 11:28:25 +0000 4 | Subject: [PATCH] parser app 5 | 6 | Signed-off-by: Guru9902 7 | --- 8 | MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c | 2 +- 9 | MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c | 5 +---- 10 | ShellPkg/ShellPkg.dsc | 1 + 11 | 3 files changed, 3 insertions(+), 5 deletions(-) 12 | 13 | diff --git a/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c b/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c 14 | index f0a8b9f..2d7d5e0 100644 15 | --- a/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c 16 | +++ b/MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.c 17 | @@ -91,7 +91,7 @@ UefiHiiServicesLibConstructor ( 18 | // Retrieve the pointer to the UEFI HII Config Routing Protocol 19 | // 20 | Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **)&gHiiConfigRouting); 21 | - ASSERT_EFI_ERROR (Status); 22 | + //ASSERT_EFI_ERROR (Status); 23 | 24 | // 25 | // Retrieve the pointer to the optional UEFI HII Font Protocol 26 | diff --git a/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c b/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c 27 | index eb12266..bd86b3a 100644 28 | --- a/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c 29 | +++ b/MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c 30 | @@ -815,8 +815,5 @@ FreePool ( 31 | IN VOID *Buffer 32 | ) 33 | { 34 | - EFI_STATUS Status; 35 | - 36 | - Status = gBS->FreePool (Buffer); 37 | - ASSERT_EFI_ERROR (Status); 38 | + gBS->FreePool (Buffer); 39 | } 40 | diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc 41 | index 7e985f8..ef9cafb 100644 42 | --- a/ShellPkg/ShellPkg.dsc 43 | +++ b/ShellPkg/ShellPkg.dsc 44 | @@ -93,6 +93,7 @@ 45 | ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf 46 | ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf 47 | ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf 48 | + ShellPkg/Application/parser/Parser.inf 49 | 50 | ShellPkg/Application/Shell/Shell.inf { 51 | 52 | -- 53 | 2.43.0 54 | 55 | -------------------------------------------------------------------------------- /common/patches/0007-fwts-last-attempt-status.patch: -------------------------------------------------------------------------------- 1 | checking the kernel drivers/firmware/efi/esrt.c, last_attempt_status value 2 | should be decimal. 3 | esre_attr_decl(last_attempt_status, 32, "%u"); 4 | 5 | Signed-off-by: Ivan Hu 6 | --- 7 | src/uefi/esrt/esrt.c | 4 ++-- 8 | 1 file changed, 2 insertions(+), 2 deletions(-) 9 | 10 | diff --git a/src/uefi/esrt/esrt.c b/src/uefi/esrt/esrt.c 11 | index d3b1db85..cd2901eb 100644 12 | --- a/src/uefi/esrt/esrt.c 13 | +++ b/src/uefi/esrt/esrt.c 14 | @@ -167,13 +167,13 @@ static void check_entries(fwts_framework *fw, bool *passed) 15 | "Missing or failed to get LastAttemptStatus on %s.", entry->d_name); 16 | *passed = false; 17 | } else { 18 | - uint32_t lastattemptst = strtoul(str, NULL, 16); 19 | + uint32_t lastattemptst = strtoul(str, NULL, 10); 20 | 21 | if (lastattemptst > LAST_ATTEMPT_STATUS_ERR_UNSATISFIED_DEPENDENCIES && 22 | (lastattemptst < LAST_ATTEMPT_STATUS_ERR_UNSUCCESSFUL_VENDOR_RANGE_MIN || 23 | lastattemptst > LAST_ATTEMPT_STATUS_ERR_UNSUCCESSFUL_VENDOR_RANGE_MAX)) { 24 | fwts_failed(fw, LOG_LEVEL_MEDIUM, "InvalidValue", 25 | - "The LastAttemptStatus value on %s is 0x%" PRIx32 26 | + "The LastAttemptStatus value on %s is 0x%" PRIu32 27 | ", which is undefined on UEFI Spec." 28 | , entry->d_name, lastattemptst); 29 | *passed = false; 30 | -- 31 | 2.34.1 32 | 33 | -------------------------------------------------------------------------------- /common/patches/0008-acpi-iort-memory-access-flag-update.patch: -------------------------------------------------------------------------------- 1 | From ec761526eaad78ca12ea888dc58c1ed906b5a5a2 Mon Sep 17 00:00:00 2001 2 | From: Simon Wang 3 | Date: Fri, 1 Nov 2024 04:17:17 -0700 4 | Subject: acpi: iort: memory access flag update. 5 | 6 | BugLink: https://bugs.launchpad.net/fwts/+bug/2086029 7 | Update the reserved bits of memory access flag with IORT spec E.f. 8 | 9 | Signed-off-by: Simon Wang 10 | Acked-by: Ivan Hu 11 | --- 12 | src/acpi/iort/iort.c | 2 +- 13 | 1 file changed, 1 insertion(+), 1 deletion(-) 14 | 15 | diff --git a/src/acpi/iort/iort.c b/src/acpi/iort/iort.c 16 | index e586e2ca..82933083 100644 17 | --- a/src/acpi/iort/iort.c 18 | +++ b/src/acpi/iort/iort.c 19 | @@ -405,7 +405,7 @@ static void iort_memory_access_properties_check( 20 | fwts_acpi_reserved_zero("IORT", field, properties->reserved, passed); 21 | 22 | snprintf(field, sizeof(field), "%s Memory Access Flags", name); 23 | - fwts_acpi_reserved_bits("IORT", field, properties->memory_access_flags, 2, 7, passed); 24 | + fwts_acpi_reserved_bits("IORT", field, properties->memory_access_flags, 3, 7, passed); 25 | 26 | cca = properties->cache_coherent & 1; 27 | cpm = properties->memory_access_flags & 1; 28 | -- 29 | cgit v1.2.3 30 | 31 | -------------------------------------------------------------------------------- /common/patches/edk2_subhook_patch: -------------------------------------------------------------------------------- 1 | diff --git a/.gitmodules b/.gitmodules 2 | index 60d54b4..6203d92 100644 3 | --- a/.gitmodules 4 | +++ b/.gitmodules 5 | @@ -23,9 +23,6 @@ 6 | [submodule "UnitTestFrameworkPkg/Library/GoogleTestLib/googletest"] 7 | path = UnitTestFrameworkPkg/Library/GoogleTestLib/googletest 8 | url = https://github.com/google/googletest.git 9 | -[submodule "UnitTestFrameworkPkg/Library/SubhookLib/subhook"] 10 | - path = UnitTestFrameworkPkg/Library/SubhookLib/subhook 11 | - url = https://github.com/Zeex/subhook.git 12 | [submodule "MdePkg/Library/BaseFdtLib/libfdt"] 13 | path = MdePkg/Library/BaseFdtLib/libfdt 14 | url = https://github.com/devicetree-org/pylibfdt.git 15 | diff --git a/.pytool/CISettings.py b/.pytool/CISettings.py 16 | index ec3beb0..3bcf480 100644 17 | --- a/.pytool/CISettings.py 18 | +++ b/.pytool/CISettings.py 19 | @@ -229,8 +229,6 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag 20 | "BaseTools/Source/C/BrotliCompress/brotli", False)) 21 | rs.append(RequiredSubmodule( 22 | "RedfishPkg/Library/JsonLib/jansson", False)) 23 | - rs.append(RequiredSubmodule( 24 | - "UnitTestFrameworkPkg/Library/SubhookLib/subhook", False)) 25 | rs.append(RequiredSubmodule( 26 | "MdePkg/Library/BaseFdtLib/libfdt", False)) 27 | rs.append(RequiredSubmodule( 28 | diff --git a/UnitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc b/UnitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc 29 | index b1b8eb0..0a29e50 100644 30 | --- a/UnitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc 31 | +++ b/UnitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc 32 | @@ -36,6 +36,5 @@ 33 | UnitTestFrameworkPkg/Library/GoogleTestLib/GoogleTestLib.inf 34 | UnitTestFrameworkPkg/Library/Posix/DebugLibPosix/DebugLibPosix.inf 35 | UnitTestFrameworkPkg/Library/Posix/MemoryAllocationLibPosix/MemoryAllocationLibPosix.inf 36 | - UnitTestFrameworkPkg/Library/SubhookLib/SubhookLib.inf 37 | UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLibCmocka.inf 38 | UnitTestFrameworkPkg/Library/UnitTestDebugAssertLib/UnitTestDebugAssertLibHost.inf 39 | diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec 40 | index ef0a148..a45fe9e 100644 41 | --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec 42 | +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec 43 | @@ -20,7 +20,6 @@ 44 | Library/CmockaLib/cmocka/include 45 | Library/GoogleTestLib/googletest/googletest/include 46 | Library/GoogleTestLib/googletest/googlemock/include 47 | - Library/SubhookLib/subhook 48 | 49 | [Includes.Common.Private] 50 | PrivateInclude 51 | @@ -36,7 +35,6 @@ 52 | ## @libraryclass GoogleTest infrastructure 53 | # 54 | GoogleTestLib|Include/Library/GoogleTestLib.h 55 | - SubhookLib|Include/Library/SubhookLib.h 56 | FunctionMockLib|Include/Library/FunctionMockLib.h 57 | 58 | [LibraryClasses.Common.Private] 59 | diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc 60 | index 83d3205..11295be 100644 61 | --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc 62 | +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc 63 | @@ -15,7 +15,6 @@ 64 | CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLibNull/BaseCacheMaintenanceLibNull.inf 65 | CmockaLib|UnitTestFrameworkPkg/Library/CmockaLib/CmockaLib.inf 66 | GoogleTestLib|UnitTestFrameworkPkg/Library/GoogleTestLib/GoogleTestLib.inf 67 | - SubhookLib|UnitTestFrameworkPkg/Library/SubhookLib/SubhookLib.inf 68 | FunctionMockLib|UnitTestFrameworkPkg/Library/FunctionMockLib/FunctionMockLib.inf 69 | UnitTestLib|UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLibCmocka.inf 70 | DebugLib|UnitTestFrameworkPkg/Library/Posix/DebugLibPosix/DebugLibPosix.inf 71 | -------------------------------------------------------------------------------- /common/tools/README.md: -------------------------------------------------------------------------------- 1 | # Tools 2 | 3 | ## config_update_tool.sh 4 | 5 | ### Overview 6 | `config_update_tool.sh` is a Bash script designed to update the ACS configuration files in a prebuilt image. It provides two modes of operation, which can be changed from within the script: 7 | - **get**: Retrieves the `config` directory from the image and copies it to a local path. 8 | - **put**: Uploads a local `acs_config.txt` file to the image. 9 | 10 | ### Usage 11 | ```bash 12 | ./config_update_tool.sh 13 | ``` 14 | 15 | #### Arguments: 16 | 1. **``**: The path to the ACS prebuilt image that will be mounted. 17 | 2. **``**: The path to the local configuration file to be updated in the image. 18 | 3. **``**: *(Optional)* The directory where `acs_results` will be copied. If omitted, the ACS image directory is used by default. Use `n` to skip copying results. 19 | 20 | #### Help Option 21 | To display usage information, run: 22 | ```bash 23 | ./config_update_tool.sh -h 24 | ``` 25 | --- 26 | This script streamlines the process of updating ACS configuration files in prebuilt images, incorporating error handling and automation. Additionally, it can be used to copy the ACS image results directory. 27 | 28 | ## Notes 29 | 30 | - The script requires `sudo` privileges for mounting and copying files. 31 | 32 | -------------- 33 | 34 | *Copyright (c) 2025, Arm Limited and Contributors. All rights reserved.* 35 | -------------------------------------------------------------------------------- /common/tools/config_update_tool.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # @file 3 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 4 | # SPDX-License-Identifier : Apache-2.0 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | #output for help command 18 | if [ "$1" = "-h" ]; then 19 | echo "" 20 | echo "This tool updates the acs.cfg file at /acs_tests/config" 21 | echo "Usage:" 22 | echo "$0 " 23 | echo "$0 -h" 24 | echo "Note:\n\t• If path to acs_results is not given, acs_image directory will be used as default\n\t• The script requires sudo privileges\n\t• The operation mode can be modified within the script if needed" 25 | echo "" 26 | exit 0 27 | fi 28 | 29 | #Checks for minimum number of arguments 30 | if [ $# -lt 2 ] || [ $# -gt 3 ]; then 31 | echo "" 32 | echo "Usage:" 33 | echo "$0 " 34 | echo "$0 -h" 35 | echo "" 36 | exit 1 37 | fi 38 | 39 | #sets various paths 40 | acs_image_path="$1" 41 | operation="put" 42 | path_in_image="/acs_tests/config" 43 | path_in_local="$2" 44 | path_for_results=${3:-$(dirname "$acs_image_path")} # Default to ACS image directory if $3 is empty 45 | loop_variable="p1" 46 | 47 | #checks for valid loop 48 | loop=$(sudo kpartx -a -v "$acs_image_path" | grep "add map" | grep "p1" | head -n1 | awk '{print $3}') 49 | if [ -z "$loop" ]; then 50 | echo "kpartx failed. Please check the arguments passed." 51 | exit 1 52 | fi 53 | echo "Loop is $loop" 54 | 55 | echo "Mounting the partition $loop" 56 | sudo mount "/dev/mapper/$loop" /mnt 57 | if [ $? -ne 0 ]; then 58 | echo "mount failed" 59 | sudo kpartx -d -v "$acs_image_path" >/dev/null # Cleanup before exiting 60 | exit 1 61 | fi 62 | 63 | # Copying the acs_results to the specified directory 64 | echo "Copying the acs_results" 65 | if [ "$3" != "n" ]; then 66 | if [ "$3" != "0" ]; then 67 | sudo cp -r /mnt/acs_results "$path_for_results" 68 | else 69 | sudo cp -r /mnt/acs_results "$(dirname "$acs_image_path")" 70 | fi 71 | else 72 | echo "acs_results not copied" 73 | fi 74 | 75 | #performing the operation 76 | if [ "$operation" = "get" ]; then 77 | sudo cp -r "/mnt/$path_in_image" "$(dirname "$path_in_local")" 78 | if [ $? -eq 0 ]; then 79 | echo "get success" 80 | else 81 | echo "get failed" 82 | fi 83 | else 84 | echo "Operation is put" 85 | sudo cp -r "$path_in_local" "/mnt/$path_in_image" 86 | if [ $? -eq 0 ]; then 87 | echo "\"$path_in_local\" is successfully uploaded to the path \"$path_in_image\" of the image \"$acs_image_path\"" 88 | else 89 | echo "put failed" 90 | fi 91 | fi 92 | 93 | # Unmount filesystem and remove loop partition mappings 94 | sudo umount /mnt 95 | if [ $? -ne 0 ]; then 96 | echo "unmount failed. Please unmount manually" 97 | exit 1 98 | fi 99 | sudo kpartx -d -v "$acs_image_path" 100 | if [ $? -ne 0 ]; then 101 | echo "kpartx delete failed. Please unmount manually" 102 | exit 1 103 | fi 104 | -------------------------------------------------------------------------------- /common/uefi_scripts/debug_dump.nsh: -------------------------------------------------------------------------------- 1 | # @file 2 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 3 | # SPDX-License-Identifier : Apache-2.0 4 | 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | echo -off 17 | for %m in 0 1 2 3 4 5 6 7 8 9 A B C D E F then 18 | if exist FS%m:\yocto_image.flag then 19 | if exist FS%m:\acs_results_template\acs_results then 20 | FS%m: 21 | cd FS%m:\acs_results_template\acs_results 22 | goto DebugRun 23 | endif 24 | else 25 | if exist FS%m:\acs_results then 26 | FS%m: 27 | cd FS%m:\acs_results 28 | goto DebugRun 29 | endif 30 | endif 31 | endfor 32 | 33 | :DebugRun 34 | if exist uefi_dump then 35 | echo "UEFI debug logs already run" 36 | echo "Press any key to rerun UEFI debug logs" 37 | FS%m:\acs_tests\bbr\SCT\stallforkey.efi 10 38 | if %lasterror% == 0 then 39 | goto DEBUG_DUMP 40 | else 41 | goto Done 42 | endif 43 | else 44 | mkdir uefi_dump 45 | :DEBUG_DUMP 46 | cd uefi_dump 47 | #echo "Starting UEFI Debug dump" 48 | connect -r 49 | pci > pci.log 50 | drivers > drivers.log 51 | devices > devices.log 52 | dh -d -v > dh.log 53 | dmpstore -all -s dmpstore.bin 54 | dmpstore -all > dmpstore.log 55 | memmap > memmap.log 56 | bcfg boot dump -v > bcfg.log 57 | devtree > devtree.log 58 | ver > uefi_version.log 59 | dmem > dmem.log 60 | sermode > sermode.log 61 | mode > mode.log 62 | timezone > timezone.log 63 | date > date.log 64 | time > time.log 65 | getmtc > getmtc.log 66 | ifconfig -l > ifconfig.log 67 | ifconfig -s eth0 dhcp 68 | ifconfig -s eth1 dhcp 69 | connect -r 70 | ifconfig -l > ifconfig_after_dhcp.log 71 | smbiosview > smbiosview.log 72 | if not exist FS%m:\acs_tests\bsa\bsa_dt.flag then 73 | echo "" > map.log 74 | map -r >> map.log 75 | acpiview -l > acpiview_l.log 76 | acpiview -r 2 > acpiview_r.log 77 | acpiview > acpiview.log 78 | acpiview -s DSDT -d 79 | acpiview -s SSDT -d 80 | endif 81 | endif 82 | :Done 83 | -------------------------------------------------------------------------------- /common/uefi_scripts/parser.nsh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2021-2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | echo -off 20 | for %i in 0 1 2 3 4 5 6 7 8 9 A B C D E F then 21 | if exist FS%i:\acs_tests\parser\Parser.efi then 22 | FS%i: 23 | acs_tests\parser\Parser.efi 24 | endif 25 | endfor 26 | -------------------------------------------------------------------------------- /common/uefi_scripts/pingtest.nsh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2024, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | # Usage pingtest.nsh 20 | # This script checks whether ping test was successful or not. 21 | # This script expects the ping log to be in following format, 22 | # 23 | # Shell> ping 8.8.8.8 24 | # Ping 8.8.8.8 16 data bytes. 25 | # 16 bytes from 8.8.8.8 : icmp_seq=1 ttl=0 time9~18ms 26 | # 16 bytes from 8.8.8.8 : icmp_seq=2 ttl=0 time0~9ms 27 | # 16 bytes from 8.8.8.8 : icmp_seq=3 ttl=0 time0~9ms 28 | # 16 bytes from 8.8.8.8 : icmp_seq=4 ttl=0 time0~9ms 29 | # 16 bytes from 8.8.8.8 : icmp_seq=5 ttl=0 time0~9ms 30 | # 16 bytes from 8.8.8.8 : icmp_seq=6 ttl=0 time0~9ms 31 | # 16 bytes from 8.8.8.8 : icmp_seq=7 ttl=0 time0~9ms 32 | # 16 bytes from 8.8.8.8 : icmp_seq=8 ttl=0 time0~9ms 33 | # 16 bytes from 8.8.8.8 : icmp_seq=9 ttl=0 time0~9ms 34 | # 16 bytes from 8.8.8.8 : icmp_seq=10 ttl=0 time0~9ms 35 | # 36 | # 10 packets transmitted, 10 received, 0% packet loss, time 9ms 37 | # 38 | # Rtt(round trip time) min=0~9ms max=9~18ms avg=0~9ms 39 | 40 | echo -off 41 | 42 | # set a variable with words separated by space in inputted log 43 | type %1 >v x 44 | 45 | # set variables 46 | set state start 47 | set returncode 1 48 | set num_of_packets_recv 0 49 | 50 | 51 | for %i in %x% 52 | #check if no configured interfaces were found. 53 | if %state% == start then 54 | if %i == No then 55 | set state noconfigure 56 | endif 57 | endif 58 | 59 | if %state% == noconfigure then 60 | if %i == configured then 61 | # fail the test "no configured interfaces were found" 62 | set returncode 1 63 | echo "Unable to configure network using DHCP." 64 | goto End 65 | endif 66 | else 67 | if %state% == start then 68 | if %i == transmitted, then 69 | set state num_packet 70 | endif 71 | else 72 | if %state% == num_packet then 73 | set state check_recv 74 | set num_of_packets_recv %i 75 | else 76 | if %state% == check_recv then 77 | if %i == received, then 78 | set state pkts_loss 79 | else 80 | echo "Log is not in a standard format, please check ping logs offline." 81 | set returncode 1 82 | goto End 83 | endif 84 | else 85 | if %state% == pkts_loss then 86 | if %i == 100% then 87 | echo "Ping failed. 100% packet loss." 88 | set returncode 1 89 | goto End 90 | else 91 | echo "Ping successful. Received %num_of_packets_recv% packets." 92 | set returncode 0 93 | goto End 94 | endif 95 | endif 96 | endif 97 | endif 98 | endif 99 | endif 100 | endfor 101 | 102 | echo "Ping log is empty or not in standard format, please check logs offline." 103 | set returncode 1 104 | 105 | :End 106 | exit /b %returncode% -------------------------------------------------------------------------------- /common/uefi_scripts/startup_ee.nsh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # @file 4 | # Copyright (c) 2025, Arm Limited or its affiliates. All rights reserved. 5 | # SPDX-License-Identifier : Apache-2.0 6 | 7 | # Licensed under the Apache License, Version 2.0 (the "License"); 8 | # you may not use this file except in compliance with the License. 9 | # You may obtain a copy of the License at 10 | # 11 | # http://www.apache.org/licenses/LICENSE-2.0 12 | # 13 | # Unless required by applicable law or agreed to in writing, software 14 | # distributed under the License is distributed on an "AS IS" BASIS, 15 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | # See the License for the specific language governing permissions and 17 | # limitations under the License. 18 | 19 | echo -off 20 | connect -r 21 | 22 | for %i in 0 1 2 3 4 5 6 7 8 9 A B C D E F then 23 | if exist FS%i:\acs_tests\parser\Parser.efi then 24 | FS%i: 25 | echo "UEFI Execution Enviroment can be used to run an acs test suite manually with desired options" 26 | echo "The supported test suites for UEFI enviroment are" 27 | echo " BSA" 28 | echo " SBSA" 29 | echo " SCT" 30 | echo " " 31 | echo " To view or modify the supported command line parameters for a test suite" 32 | echo " Edit the acs_tests\config\acs_run_config.ini using edit command or by running acs_tests\parser\parser.nsh" 33 | echo " " 34 | echo " To run BSA test suite, execute the acs_tests\bsa\bsa.nsh" 35 | echo " To run SBSA test suite, execute the acs_tests\bsa\sbsa\sbsa.nsh" 36 | echo " To run SCT test suite, execute acs_tests\bbr\SCT\SCT.efi -u" 37 | echo " " 38 | goto Done 39 | endif 40 | endfor 41 | :Done 42 | -------------------------------------------------------------------------------- /docs/Automatic_Capsule_Update_guide.md: -------------------------------------------------------------------------------- 1 | ## Table of Contents 2 | 3 | - [Introduction](#introduction) 4 | - [Prerequisites](#prerequisites) 5 | - [Automatic Capsule update flow](#flow) 6 | 7 | 8 | ## Introduction 9 | 10 | Capsule update is the standard interface to update the firmware. The SystemReady devicetree ACS image provides automatic capsule update testing as part of ACS automation run. 11 | 12 | ## Prerequisites 13 | 1. Copy the platform’s three capsule files (unauth.bin, tampered.bin and signed_capsule.bin) which were generated using Generate capsule steps 14 | mentioned in the IR guide into the BOOT partition /acs_tests/app/ path of the ACS image on a storage drive. 15 | 16 | 2. Boot the ACS image on the platform with the new.dtb file which was generated in Generate 17 | capsule files. 18 | 19 | 3. The system must have a separate EFI System Partition (ESP) to support and test capsule updates. 20 | 21 | ## Automatic Capsule update flow 22 | 1. Select bbr/bsa from the GRUB boot menu and press Enter. This is the default selection and will run automatically if no other option is chosen. 23 | 24 | 2. First, the UEFI-based tests, including SCT, BSA, and the Ethernet port test, will run. After these tests complete, ACS will automatically boot to Linux. 25 | 26 | 3. In Linux, the FWTS, BSA, and Standalone tests will be executed. The image will automatically detect if a capsule update test is required and will reboot to perform the testing. 27 | 28 | 4. After rebooting to the UEFI shell, SCT and BSA tests will be skipped, as they were already completed in the first run. 29 | 30 | 5. User input will be requested to proceed with the capsule update, with a 10-second timeout. 31 | 32 | 6. If the user presses any key within 10 seconds, `capsule.efi` will perform the on-disk capsule update test. If the user does not press any key and ACS determines that capsule testing is needed, 33 | it will proceed with the test. However, a prompt will be provided, allowing the user to skip the capsule update test if desired. 34 | 35 | 7. Before firmware update, script captures ESRT and SMBIOS tables for firmware update versions into \acs_results\app_output path. 36 | 37 | 8. As part of firmware update, first the update with unauth.bin and tampered.bin will be done, then update with signed_capsule.bin will be performed. 38 | > FS0:\acs_tests\app\CapsuleApp.efi FS0:\acs_tests\app\unauth.bin 39 | 40 | > FS0:\acs_tests\app\CapsuleApp.efi FS0:\acs_tests\app\tampered.bin 41 | 42 | > FS0:\acs_tests\app\CapsuleApp.efi FS0:\acs_tests\app\ signed_capsule.bin -OD 43 | 44 | 9. If the update with `signed_capsule.bin` is successful, the system will automatically reset for the firmware update. In case of failure, ACS will boot to Linux with a failure acknowledgment. 45 | 46 | 10. On reboot after firmware update, script captures ESRT and SMBIOS tables for firmware update versions into \acs_results\app_output path and then it boots to Linux with success acknowledgement. 47 | 48 | 11. In Linux, a message will be logged indicating whether the capsule update was successful or not, based on the uefi capsule update status. 49 | -------------------------------------------------------------------------------- /docs/acs_run_configuration_guide.md: -------------------------------------------------------------------------------- 1 | # Modifying acs_run_config.ini to enable/disable various ACS test suites. 2 | 3 | ## Table of Contents 4 | 5 | - [Modify before the build](#modify-before-the-build) 6 | 7 | - [Modify before ACS run after build](#modify-before-acs-run-after-the-build) 8 | 9 | - [Modify during the ACS run](#modify-during-the-acs-run) 10 | 11 | --- 12 | 13 | ## Modify before the build. 14 | 15 | - To modify the acs_run_config.ini before building. 16 | 17 | - Goto systemready repo /common/config. 18 | 19 | - Edit acs_run_config.ini file to enable or disable the testsuits. 20 | 21 | --- 22 | 23 | ## Modify before ACS run after the build 24 | 25 | - One can use kpartx to modify acs_run_config.ini before the acs run. 26 | 27 | - Use the following commands 28 | 29 | - "sudo kpartx -a -v " 30 | - "sudo mount /dev/mapper/ /" 31 | - "cd //" "sudo vi acs_run_config.ini" (edit acs_run_config.ini). 32 | - "sudo umount /" 33 | - "sudo kpartx -d -v " 34 | 35 | --- 36 | 37 | ## Modify during the ACS run 38 | 39 | - Boot into ACS image go to UEFI shell (choose "SystemReady band ACS (Automation)" in grub and press escape to enter uefi shell). 40 | 41 | - Enter the path where ACS image is booted (eg: FS0://). 42 | 43 | - In uefi shell one can use edit command to edit the text file("edit acs_run_config.ini") press CTRL+s to save and ctrl+q to quit the editor. 44 | 45 | - To enable SBSA change the value of "SbsaRunEnabled = 1" save the file and rerun the ACS image. 46 | 47 | --- 48 | --------------------------------------------------------------------------------