RISC-V
Ubuntu provides riscv64 architecture for the RISC-V platform since Focal release.
One can boot it on any system with qemu-system, or on bare-metal board such as those built by SiFive.
Booting with qemu
qemu-system-riscv64 is available from qemu-system-misc package (apt install qemu-system-misc)
Machine type virt aka -machine virt
Bios is OpenSBI (apt install opensbi) -bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf
"kernel" is qemu smode uboot (apt install u-boot-qemu) -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf
And just the cloud image from http://cloud-images.ubuntu.com/
Working example with all the options is:
qemu-system-riscv64 \ -machine virt -m 2048 -smp 4 \ -bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf \ -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \ -device virtio-net-device,netdev=eth0 -netdev user,id=eth0 \ -device virtio-blk-device,drive=vda -drive file=livecd.ubuntu-cpc.img,id=vda
Adjust to taste as needed. The image has a fallback cloud-init datasource that configures sudo user ubuntu with password ubuntu. Alternatively, you can provide a config drive (or tweak the first partitions /var/lib/cloud/seed/nocloud/* files) to setup anything else using cloud-init. For example ssh keys, disabling interactive login, and so on. See https://cloudinit.readthedocs.io/en/latest
Booting on SiFive HiFive Unleashed board
The above image has U-Boot SPL loader as well as SiFive U-Boot to boot on the board. Possibly one needs to set jumpers to boot from sd-card.
The image is qcow2 however, so convert it to raw first before flashing
qemu-img convert -O raw livecd.ubuntu-cpc.img livecd.ubuntu-cpc.raw dd if=livecd.ubuntu-cpc.raw of=/dev/disk/by-id/