Skip to content

Add MPU support (along with improved Timer APIs) #13

Add MPU support (along with improved Timer APIs)

Add MPU support (along with improved Timer APIs) #13

Workflow file for this run

name: Build
on:
push:
branches:
- '*'
pull_request:
jobs:
build:
name: Build
strategy:
fail-fast: false
matrix:
platform: [
ubuntu-latest,
macos-latest,
windows-latest
]
target: [
aarch64-unknown-none-softfloat,
aarch64-unknown-none,
]
variant: [
"", # debug
"--release"
]
runs-on: ${{ matrix.platform }}
timeout-minutes: 15
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Install Rustup (macOS)
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
if: runner.os == 'macOS'
- name: Set Rustup profile to minimal
run: rustup set profile minimal
- name: Install Target Support
run: |
rustup target add ${{ matrix.target }}
- name: Print Rust Version
run: |
rustc -Vv
cargo -Vv
- name: Build Package With All Warnings Denied
run: cargo build ${{ matrix.variant }} --target=${{ matrix.target }}
env:
RUSTFLAGS: "-D warnings"
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Install QEMU
run: |
sudo apt-get -y update
sudo apt-get -y install libpixman-1-0 libfdt1 libglib2.0-0t64
curl -sSL https://github.com/jonathanpallant/qemu9-for-ubuntu-2404/releases/download/qemu-10.2.2%2Bbuild0/qemu-10.2.2-ubuntu-24.04.tar.gz | sudo tar xvzf - -C /
- name: Install just
run: sudo apt-get install just
- name: Install FVP
run: |
mkdir /tmp/fvp
cd /tmp/fvp && curl -LO https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Architecture/FM-11.30/FVP_Base_AEMv8R_11.30_27_Linux64.tgz
cd /tmp/fvp && tar xf FVP_Base_AEMv8R_11.30_27_Linux64.tgz
- name: Run Tests
run: PATH="/tmp/fvp/AEMv8R_base_pkg/models/Linux64_GCC-9.3/:/opt/qemu/bin:$PATH" just test
check_formatting:
name: Check Formatting
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v6
- run: cargo fmt -- --check
- run: cd examples/armv8-r && cargo fmt -- --check
clippy:
name: Clippy
# Had to duplicate the supported targets list from above
# @fixme must be a way to specify it just once?
strategy:
matrix:
target: [
aarch64-unknown-none-softfloat,
aarch64-unknown-none,
]
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- run: rustup target add ${{ matrix.target }}
- run: cargo clippy --target=${{ matrix.target }}
armv8r-examples:
runs-on: ubuntu-latest
name: Build Armv8-R Examples
steps:
- uses: actions/checkout@v6
- run: cd examples/armv8-r && cargo build --bins