diff --git a/.github/workflows/Build_FVP_Audio.yml b/.github/workflows/Build_FVP_Audio.yml deleted file mode 100644 index 64686d3..0000000 --- a/.github/workflows/Build_FVP_Audio.yml +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 2026 Arm Limited and/or its affiliates. -# -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the License); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an AS IS BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -name: Build FVP_Audio Example -on: - - workflow_dispatch: - pull_request: - paths: - # Execute workflow when PR modifies this file - - .github/workflows/Build_FVP_Audio.yml - # Execute workflow when PR modifies example directory - - example/FVP_Audio/** - push: - # Execute workflow when main branch is updated - branches: [main] - - #schedule: - # - cron: '00 20 * * 6' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - Build: - strategy: - matrix: - context: [ - {proj: FVP_Audio, build_type: Debug, target_type: SSE-300}, - {proj: FVP_Audio, build_type: Release, target_type: SSE-300}, - - {proj: FVP_Audio, build_type: Debug, target_type: SSE-310}, - {proj: FVP_Audio, build_type: Release, target_type: SSE-310}, - - {proj: FVP_Audio, build_type: Debug, target_type: SSE-315}, - {proj: FVP_Audio, build_type: Release, target_type: SSE-315}, - - {proj: FVP_Audio, build_type: Debug, target_type: SSE-320}, - {proj: FVP_Audio, build_type: Release, target_type: SSE-320} - ] - toolchain: [AC6, GCC, CLANG] - - fail-fast: false - - runs-on: ubuntu-latest - - steps: - - name: Checkout current repository - uses: actions/checkout@v6 - - - name: Install tools - uses: ARM-software/cmsis-actions/vcpkg@v1 - with: - config: ".ci/vcpkg-configuration.json" - - - name: Activate Arm tool license - uses: ARM-software/cmsis-actions/armlm@v1 - - - name: Initialize CMSIS pack root folder - run: | - cpackget init https://www.keil.com/pack/index.pidx - cpackget update-index - - - name: Add local CMSIS packs - run: | - cpackget add ./ARM.AVH_FVP.pdsc - - - name: Build Test - working-directory: ./example/FVP_Audio - run: | - cbuild FVP_Audio.csolution.yml \ - --context .${{matrix.context.build_type}}+${{matrix.context.target_type}} \ - --toolchain ${{matrix.toolchain}} \ - --update-rte --rebuild --packs diff --git a/.github/workflows/Build_FVP_Video.yml b/.github/workflows/Build_FVP_Video.yml deleted file mode 100644 index 082591a..0000000 --- a/.github/workflows/Build_FVP_Video.yml +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 2026 Arm Limited and/or its affiliates. -# -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the License); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an AS IS BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -name: Build FVP_Video Example -on: - - workflow_dispatch: - pull_request: - paths: - # Execute workflow when PR modifies this file - - .github/workflows/Build_FVP_Video.yml - # Execute workflow when PR modifies example directory - - example/FVP_Video/** - push: - # Execute workflow when main branch is updated - branches: [main] - - #schedule: - # - cron: '00 20 * * 6' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - Build: - strategy: - matrix: - context: [ - {proj: FVP_Video, build_type: Debug, target_type: SSE-300}, - {proj: FVP_Video, build_type: Release, target_type: SSE-300}, - - {proj: FVP_Video, build_type: Debug, target_type: SSE-310}, - {proj: FVP_Video, build_type: Release, target_type: SSE-310}, - - {proj: FVP_Video, build_type: Debug, target_type: SSE-315}, - {proj: FVP_Video, build_type: Release, target_type: SSE-315}, - - {proj: FVP_Video, build_type: Debug, target_type: SSE-320}, - {proj: FVP_Video, build_type: Release, target_type: SSE-320} - ] - toolchain: [AC6, GCC, CLANG] - - fail-fast: false - - runs-on: ubuntu-latest - - steps: - - name: Checkout current repository - uses: actions/checkout@v6 - - - name: Install tools - uses: ARM-software/cmsis-actions/vcpkg@v1 - with: - config: ".ci/vcpkg-configuration.json" - - - name: Activate Arm tool license - uses: ARM-software/cmsis-actions/armlm@v1 - - - name: Initialize CMSIS pack root folder - run: | - cpackget init https://www.keil.com/pack/index.pidx - cpackget update-index - - - name: Add local CMSIS packs - run: | - cpackget add ./ARM.AVH_FVP.pdsc - - - name: Build Test - working-directory: ./example/FVP_Video - run: | - cbuild FVP_Video.csolution.yml \ - --context .${{matrix.context.build_type}}+${{matrix.context.target_type}} \ - --toolchain ${{matrix.toolchain}} \ - --update-rte --rebuild --packs diff --git a/.github/workflows/Build_Run_FVP_Audio.yml b/.github/workflows/Build_Run_FVP_Audio.yml new file mode 100644 index 0000000..e168e55 --- /dev/null +++ b/.github/workflows/Build_Run_FVP_Audio.yml @@ -0,0 +1,133 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the License); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Build and Run FVP_Audio Example +on: + + workflow_dispatch: + pull_request: + paths: + # Execute workflow when PR modifies this file + - .github/workflows/Build_Run_FVP_Audio.yml + # Execute workflow when PR modifies example directory + - example/FVP_Audio/** + push: + # Execute workflow when main branch is updated + branches: [main] + + #schedule: + # - cron: '00 20 * * 6' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + Build_Run: + strategy: + matrix: + context: [ + {proj: FVP_Audio, build_type: Debug, target_type: SSE-300, model: FVP_Corstone_SSE-300, layer: Corstone-300, mps: mps3}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-300, model: FVP_Corstone_SSE-300, layer: Corstone-300, mps: mps3}, + + {proj: FVP_Audio, build_type: Debug, target_type: SSE-310, model: FVP_Corstone_SSE-310, layer: Corstone-310, mps: mps3}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-310, model: FVP_Corstone_SSE-310, layer: Corstone-310, mps: mps3}, + + {proj: FVP_Audio, build_type: Debug, target_type: SSE-315, model: FVP_Corstone_SSE-315, layer: Corstone-315, mps: mps4}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-315, model: FVP_Corstone_SSE-315, layer: Corstone-315, mps: mps4}, + + {proj: FVP_Audio, build_type: Debug, target_type: SSE-320, model: FVP_Corstone_SSE-320, layer: Corstone-320, mps: mps4}, + {proj: FVP_Audio, build_type: Release, target_type: SSE-320, model: FVP_Corstone_SSE-320, layer: Corstone-320, mps: mps4} + ] + toolchain: [ + {name: AC6, ext: axf}, + {name: GCC, ext: elf}, + {name: CLANG, ext: elf} + ] + + fail-fast: false + + runs-on: ubuntu-latest + + steps: + - name: Checkout current repository + uses: actions/checkout@v6 + + - name: Install tools + uses: ARM-software/cmsis-actions/vcpkg@v1 + with: + config: ".ci/vcpkg-configuration.json" + + - name: Activate Arm tool license + uses: ARM-software/cmsis-actions/armlm@v1 + + - name: Initialize CMSIS pack root folder + run: | + cpackget init https://www.keil.com/pack/index.pidx + cpackget update-index + + - name: Add local CMSIS packs + run: | + cpackget add ./ARM.AVH_FVP.pdsc + + - name: Build example + working-directory: ./example/FVP_Audio + run: | + cbuild FVP_Audio.csolution.yml \ + --context .${{matrix.context.build_type}}+${{matrix.context.target_type}} \ + --toolchain ${{matrix.toolchain.name}} \ + --update-rte --rebuild --packs + + - name: Execute example + working-directory: ./example/FVP_Audio + run: | + ${{ matrix.context.model }} \ + -a ./out/${{matrix.context.proj}}/${{matrix.context.target_type}}/${{matrix.context.build_type}}/${{matrix.context.proj}}.${{matrix.toolchain.ext}} \ + -f ./board/${{matrix.context.layer}}/fvp_config.txt \ + -C ${{matrix.context.mps}}_board.v_path=./board/${{matrix.context.layer}}/vsi/python/ \ + -C ${{matrix.context.mps}}_board.uart0.out_file=${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log \ + --simlimit 30 + + - name: Show example output + working-directory: ./example/FVP_Audio + run: | + echo "FVP UART output:" + cat ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log + + - name: Check example output + working-directory: ./example/FVP_Audio + run: | + echo "Check FVP UART output:" + COUNT=$(grep "Audio streaming stopped." ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log | wc -l) + if [ "$COUNT" -ge 1 ]; then + echo "Passed" + else + echo "Failed" + exit 1 + fi + echo "Check output file:" + if [ -f "./sample/audio_out.wav" ]; then + echo "Passed" + else + echo "Failed" + exit 1 + fi + + - name: Upload FVP UART output log + uses: actions/upload-artifact@v6 + with: + name: ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log + path: ./example/FVP_Audio/${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log diff --git a/.github/workflows/Build_Run_FVP_Video.yml b/.github/workflows/Build_Run_FVP_Video.yml new file mode 100644 index 0000000..c4cafc5 --- /dev/null +++ b/.github/workflows/Build_Run_FVP_Video.yml @@ -0,0 +1,133 @@ +# Copyright 2026 Arm Limited and/or its affiliates. +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the License); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an AS IS BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Build and Run FVP_Video Example +on: + + workflow_dispatch: + pull_request: + paths: + # Execute workflow when PR modifies this file + - .github/workflows/Build_Run_FVP_Video.yml + # Execute workflow when PR modifies example directory + - example/FVP_Video/** + push: + # Execute workflow when main branch is updated + branches: [main] + + #schedule: + # - cron: '00 20 * * 6' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + Build_Run: + strategy: + matrix: + context: [ + {proj: FVP_Video, build_type: Debug, target_type: SSE-300, model: FVP_Corstone_SSE-300, layer: Corstone-300, mps: mps3}, + {proj: FVP_Video, build_type: Release, target_type: SSE-300, model: FVP_Corstone_SSE-300, layer: Corstone-300, mps: mps3}, + + {proj: FVP_Video, build_type: Debug, target_type: SSE-310, model: FVP_Corstone_SSE-310, layer: Corstone-310, mps: mps3}, + {proj: FVP_Video, build_type: Release, target_type: SSE-310, model: FVP_Corstone_SSE-310, layer: Corstone-310, mps: mps3}, + + {proj: FVP_Video, build_type: Debug, target_type: SSE-315, model: FVP_Corstone_SSE-315, layer: Corstone-315, mps: mps4}, + {proj: FVP_Video, build_type: Release, target_type: SSE-315, model: FVP_Corstone_SSE-315, layer: Corstone-315, mps: mps4}, + + {proj: FVP_Video, build_type: Debug, target_type: SSE-320, model: FVP_Corstone_SSE-320, layer: Corstone-320, mps: mps4}, + {proj: FVP_Video, build_type: Release, target_type: SSE-320, model: FVP_Corstone_SSE-320, layer: Corstone-320, mps: mps4} + ] + toolchain: [ + {name: AC6, ext: axf}, + {name: GCC, ext: elf}, + {name: CLANG, ext: elf} + ] + + fail-fast: false + + runs-on: ubuntu-latest + + steps: + - name: Checkout current repository + uses: actions/checkout@v6 + + - name: Install tools + uses: ARM-software/cmsis-actions/vcpkg@v1 + with: + config: ".ci/vcpkg-configuration.json" + + - name: Activate Arm tool license + uses: ARM-software/cmsis-actions/armlm@v1 + + - name: Initialize CMSIS pack root folder + run: | + cpackget init https://www.keil.com/pack/index.pidx + cpackget update-index + + - name: Add local CMSIS packs + run: | + cpackget add ./ARM.AVH_FVP.pdsc + + - name: Build example + working-directory: ./example/FVP_Video + run: | + cbuild FVP_Video.csolution.yml \ + --context .${{matrix.context.build_type}}+${{matrix.context.target_type}} \ + --toolchain ${{matrix.toolchain.name}} \ + --update-rte --rebuild --packs + + - name: Execute example + working-directory: ./example/FVP_Video + run: | + ${{ matrix.context.model }} \ + -a ./out/${{matrix.context.proj}}/${{matrix.context.target_type}}/${{matrix.context.build_type}}/${{matrix.context.proj}}.${{matrix.toolchain.ext}} \ + -f ./board/${{matrix.context.layer}}/fvp_config.txt \ + -C ${{matrix.context.mps}}_board.v_path=./board/${{matrix.context.layer}}/vsi/python/ \ + -C ${{matrix.context.mps}}_board.uart0.out_file=${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log \ + --simlimit 30 + + - name: Show example output + working-directory: ./example/FVP_Video + run: | + echo "FVP UART output:" + cat ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log + + - name: Check example output + working-directory: ./example/FVP_Video + run: | + echo "Check FVP UART output:" + COUNT=$(grep "Video streaming stopped." ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log | wc -l) + if [ "$COUNT" -ge 1 ]; then + echo "Passed" + else + echo "Failed" + exit 1 + fi + echo "Check output file:" + if [ -f "./sample/video_out.mp4" ]; then + echo "Passed" + else + echo "Failed" + exit 1 + fi + + - name: Upload FVP UART output log + uses: actions/upload-artifact@v6 + with: + name: ${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log + path: ./example/FVP_Video/${{matrix.context.proj}}_${{matrix.context.build_type}}_${{matrix.context.target_type}}_${{matrix.toolchain.name}}.log