diff --git a/.github/workflows/test-build-psoc6.yml b/.github/workflows/test-build-psoc6.yml new file mode 100644 index 00000000..bb24c574 --- /dev/null +++ b/.github/workflows/test-build-psoc6.yml @@ -0,0 +1,116 @@ +name: Wolfboot Reusable Build Workflow for Cypress PSoC6 + +on: + + workflow_call: + inputs: + arch: + required: true + type: string + config-file: + required: true + type: string + make-args: + required: false + type: string + +jobs: + + build: + runs-on: ubuntu-latest + timeout-minutes: 30 + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - uses: actions/checkout@v4 + with: + repository: Infineon/psoc6pdl + path: lib/psoc6pdl + + - uses: actions/checkout@v4 + with: + repository: Infineon/TARGET_CY8CKIT-062S2-43012 + path: lib/TARGET_CY8CKIT-062S2-43012 + + - uses: actions/checkout@v4 + with: + repository: Infineon/core-lib + path: lib/core-lib + + - name: Patch cy_syslib.c to declare cy_delay32kMs + run: | + # Add extern declaration for cy_delay32kMs directly in cy_syslib.c + sed -i '/#include "cy_syslib.h"/a \\\n/* Extern declaration for delay variable */\nextern uint32_t cy_delay32kMs;' lib/psoc6pdl/drivers/source/cy_syslib.c + + - name: Workaround for sources.list + run: | + # Replace sources + + set -euxo pipefail + + # Peek (what repos are active now) + apt-cache policy + grep -RInE '^(deb|Types|URIs)' /etc/apt || true + + # Enable nullglob so *.list/*.sources that don't exist don't break sed + shopt -s nullglob + + echo "Replace sources.list (legacy)" + sudo sed -i \ + -e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \ + /etc/apt/sources.list || true + + echo "Replace sources.list.d/*.list (legacy)" + for f in /etc/apt/sources.list.d/*.list; do + sudo sed -i \ + -e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \ + "$f" + done + + echo "Replace sources.list.d/*.sources (deb822)" + for f in /etc/apt/sources.list.d/*.sources; do + sudo sed -i \ + -e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \ + -e "s|https\?://azure\.archive\.ubuntu\.com|http://mirror.arizona.edu|g" \ + "$f" + done + + echo "Fix /etc/apt/apt-mirrors.txt (used by URIs: mirror+file:...)" + if grep -qE '^[[:space:]]*https?://azure\.archive\.ubuntu\.com/ubuntu/?' /etc/apt/apt-mirrors.txt; then + # Replace azure with our mirror (idempotent) + sudo sed -i 's|https\?://azure\.archive\.ubuntu\.com/ubuntu/|http://mirror.arizona.edu/ubuntu/|g' /etc/apt/apt-mirrors.txt + fi + + # Peek (verify changes) + grep -RIn "azure.archive.ubuntu.com" /etc/apt || true + grep -RInE '^(deb|Types|URIs)' /etc/apt || true + echo "--- apt-mirrors.txt ---" + cat /etc/apt/apt-mirrors.txt || true + + - name: Update repository + run: sudo apt-get update + + - name: Install cross compilers + run: | + sudo apt-get install -y gcc-arm-none-eabi + + - name: make distclean + run: | + make distclean + + - name: Select config + run: | + cp ${{inputs.config-file}} .config && make include/target.h + + - name: Build tools + run: | + make -C tools/keytools && make -C tools/bin-assemble + + - name: Build wolfboot + run: | + make ${{inputs.make-args}} V=1 + + diff --git a/.github/workflows/test-configs.yml b/.github/workflows/test-configs.yml index a6a51bc8..5d7495f6 100644 --- a/.github/workflows/test-configs.yml +++ b/.github/workflows/test-configs.yml @@ -8,12 +8,11 @@ on: jobs: - # TODO: cypsoc6.config requires cy_device_headers.h and component defines - # cypsoc6_test: - # uses: ./.github/workflows/test-build-psoc6.yml - # with: - # arch: arm - # config-file: ./config/examples/cypsoc6.config + cypsoc6_test: + uses: ./.github/workflows/test-build-psoc6.yml + with: + arch: arm + config-file: ./config/examples/cypsoc6.config hifive1_test: uses: ./.github/workflows/test-build-riscv.yml diff --git a/arch.mk b/arch.mk index cde22248..8c470fdb 100644 --- a/arch.mk +++ b/arch.mk @@ -960,8 +960,8 @@ ifeq ($(TARGET),psoc6) $(CYPRESS_PDL)/drivers/source/cy_crypto.o CFLAGS+=\ - -I$(CYPRESS_PDL)/drivers/include \ -I$(CYPRESS_PDL)/devices/include \ + -I$(CYPRESS_PDL)/drivers/include \ -I$(CYPRESS_PDL)/cmsis/include \ -I$(CYPRESS_TARGET_LIB) \ -I$(CYPRESS_CORE_LIB)/include \