Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
Expand Down Expand Up @@ -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:
Expand All @@ -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:
Expand Down
74 changes: 0 additions & 74 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,77 +35,3 @@ It provides agent skills for planning, register extraction, peripheral modeling,
board modeling, qtest, build, debugging, and verification.

- Skill repository: <https://github.com/processmission/oh-my-qemu>

## 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:

<https://github.com/processmission/qemu/releases/tag/ax650x-ubuntu-22.04-qemu1>

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.
Loading