diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 94e950acae30..3b37af376bcb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -87,8 +87,10 @@ jobs: include: - arch: x86_64 image: ubuntu-24.04 + configure_options: "" - arch: aarch64 image: ubuntu-24.04-arm + configure_options: --disable-docs needs: checkapply runs-on: ${{matrix.image}} steps: @@ -97,7 +99,9 @@ jobs: - run: > podman run --pull newer --init --rm -it -v $(pwd):$(pwd) -w $(pwd) docker.io/pboqemu/qemu-ci:debian - bash -cx './configure ${{ env.QEMU_WERROR }} && ninja -C build install' + bash -cx './configure ${{ env.QEMU_WERROR }} + ${{ matrix.configure_options }} && + ninja -C build install' - run: > podman run --pull newer --init --rm -it -v $(pwd):$(pwd) -w $(pwd) docker.io/pboqemu/qemu-ci:debian @@ -423,8 +427,10 @@ jobs: include: - arch: x86_64 image: ubuntu-24.04 + test_options: "" - arch: aarch64 image: ubuntu-24.04-arm + test_options: "-j 2" needs: checkapply runs-on: ${{matrix.image}} steps: @@ -440,7 +446,11 @@ jobs: - run: > podman run --pull newer --init --privileged --rm -i $([ -e /dev/kvm ] && echo '-v /dev/kvm:/dev/kvm') -v $(pwd):$(pwd) -w $(pwd) docker.io/pboqemu/qemu-ci:debian - bash -cx "./build/pyvenv/bin/meson test -C build --setup thorough --no-suite func-quick --no-suite func-thorough --no-suite block-slow --no-suite block-thorough -t 5 --print-errorlogs" + bash -cx "./build/pyvenv/bin/meson test -C build + --setup thorough + --no-suite func-quick --no-suite func-thorough + --no-suite block-slow --no-suite block-thorough + ${{ matrix.test_options }} -t 5 --print-errorlogs" check-functional: strategy: diff --git a/README.md b/README.md index 75b384e57113..46aaef35ff54 100644 --- a/README.md +++ b/README.md @@ -35,77 +35,3 @@ It provides agent skills for planning, register extraction, peripheral modeling, board modeling, qtest, build, debugging, and verification. - Skill repository: - -## AX650X Pyramid quick start - -The `ax650x-pyramid` machine directly boots Linux on the M5Stack AI Pyramid / -AXERA AX650X platform. Detailed machine documentation is available in -[docs/system/arm/ax650x-pyramid.rst](docs/system/arm/ax650x-pyramid.rst). - -### Boot Ubuntu 22.04 from eMMC - -The Ubuntu image has no MBR or GPT. Linux creates its twelve partitions from -the fixed `blkdevparts` command line. The command below uses `snapshot=on`, so -guest writes are discarded when QEMU exits. - -```sh -QEMU=${QEMU:-build/qemu-system-aarch64} -ASSET_DIR=${ASSET_DIR:-assets/ax650x} -KERNEL=${KERNEL:-$ASSET_DIR/Image-5.15.73-axera} -EMMC=${EMMC:-$ASSET_DIR/ax650x-ubuntu-22.04-emmc.raw} - -PARTS='mmcblk0:1536K(uboot),1536K(uboot_bk),1M(env),20M(param)' -PARTS="$PARTS,6M(logo),1M(dtb),64M(kernel),1M(atf),1M(optee)" -PARTS="$PARTS,1M(recovery_dtb),74M(recovery),30380032K(rootfs)" -CMDLINE='console=ttyS0,115200n8 earlycon=uart8250,mmio32,0x2016000' -CMDLINE="$CMDLINE root=/dev/mmcblk0p12 rootfstype=ext4 rw rootwait" -CMDLINE="$CMDLINE blkdevparts=$PARTS" -CMDLINE="$CMDLINE systemd.show_status=yes systemd.log_target=console" - -for input in "$QEMU" "$KERNEL" "$EMMC"; do - if [ ! -r "$input" ]; then - echo "missing input: $input" >&2 - exit 1 - fi -done - -exec "$QEMU" \ - -machine ax650x-pyramid \ - -accel tcg,thread=multi \ - -cpu cortex-a55 \ - -smp 8 \ - -m 2G \ - -kernel "$KERNEL" \ - -append "$CMDLINE" \ - -drive "file=$EMMC,if=sd,format=raw,snapshot=on" \ - -chardev stdio,id=serial0,signal=off \ - -serial chardev:serial0 \ - -display none \ - -monitor none \ - -no-reboot -``` - -Override `QEMU`, `KERNEL`, or `EMMC` in the environment when the artifacts -live elsewhere. Remove `snapshot=on` only when persistent image writes are -intentional. - -### Run the Ubuntu quick-boot functional test - -The functional test uses the same direct-boot contract but lets the test -harness own the serial chardev. It is in the `thorough` suite because the -kernel and compressed eMMC image are downloaded assets. - -```sh -meson test -C build \ - --suite thorough \ - func-aarch64-ax650x_ubuntu \ - --print-errorlogs -``` - -The pinned kernel and qcow2 image are published at: - - - -The harness verifies both SHA-256 digests. The test uses disposable eMMC -writes and waits for DWMAC probe, partition 12, the mounted ext4 root -filesystem, Ubuntu readiness markers, and the serial login prompt.