Jan 30, 2023

Booting QEMU Cubieboard from Yocto SD card

This is part 6 of the QEMU Board Emulation post series.

Posts in this post series so far have been focused on the Versatile Express board, since it has wide range of supported peripherals and is easy to start with.

I have recently worked on contributing to Allwinner A10 and Cubieboard support in QEMU. I have added several components (clock controller module and DRAM controller) as well as I2C controller in order to be able to execute U-Boot and SPL code from SD card. By reusing the bootrom approach from Allwinner H3, the Cubieboard can now be started just by supplying the SD card image, and it will perform boot similar to the one executed on a real board.

In this blog post I will focus on Yocto support for Cubieboard and how to use new QEMU support. I will also extend Cubieboard with the previously developed I2C sensor peripheral, to test that application can be shared between Vexpress and Cubieboard.

Jan 15, 2023

QEMU custom devices - Lessons learned

In the Learning Linux device driver development using QEMU blog series I showed examples of memory-mapped and I2C QEMU devices.

In the mean time I have been working on contributing to QEMU. I focused on Allwinner support, specifically on Allwinner A10 support. My idea was to use similar approach to the one implemented for OrangePi-PC and Allwinner-H3, where user can pass an SD card image and QEMU can perform the complete boot sequence.

The payches have been merged and review process is available here:


While working on these patches, the reviewers had very useful comments and suggestions. Based on those, I have also updated the patches used in the Learning Linux device driver development using QEMU blog series, to match the latest QEMU version and improve the coding standard. The updated patches are in the qemu-7.2 branch of the QEMU custom peripherals repository.