openwrt/target/linux/armsr
Mathew McBride 2a099d36a7 armsr: add realtek and smsc ethernet phy drivers to the default image
This adds two more common PHY brands to the image.
Realtek is used on the Google Coral "Phanbell" board (i.MX8MQ).
SMSC has been used on various Raspberry Pi boards.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
(cherry picked from commit bcbdde00c3)
Link: https://github.com/openwrt/openwrt/pull/15808
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-07-06 18:37:39 +02:00
..
armv7
armv8 armsr: armv8: enable serial console for Renesas platforms 2024-07-06 18:37:39 +02:00
base-files kernel: armsr: Renesas: RZ: Ethernet module and ttySC0 2024-07-06 18:37:39 +02:00
image armsr: add realtek and smsc ethernet phy drivers to the default image 2024-07-06 18:37:39 +02:00
patches-5.15 kernel: bump 5.15 to 5.15.125 2023-08-10 21:07:50 +02:00
config-5.15 armsr: enable framebuffer emulation for virtio-gpu/drm displays 2024-07-06 18:37:39 +02:00
Makefile
modules.mk kernel: armsr: Renesas: RZ: Ethernet module and ttySC0 2024-07-06 18:37:39 +02:00
README

This target generates images that can be used on ARM machines with EFI
support (e.g EDKII/TianoCore or U-Boot with bootefi).

There are two subtargets:
- armv7 for 32-bit machines
- armv8 for 64-bit machines

The kernel and filesystem images can also be used directly by QEMU:

Run with qemu-system-arm

	# boot with initramfs embedded in
	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-initramfs-kernel.bin

	# boot with accel=kvm
	qemu-system-arm -nographic -M virt,accel=kvm -cpu host -m 64 -kernel
	openwrt-armsr-armv7-generic-initramfs-kernel.bin

	# boot with a separate rootfs
	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-kernel.bin \
	  -drive file=openwrt-armsr-armv7-generic-ext4-rootfs.img,format=raw,if=virtio -append 'root=/dev/vda rootwait'

	# boot with local dir as rootfs
	qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-kernel.bin \
	  -fsdev local,id=rootdev,path=root-armsr/,security_model=none \
	  -device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \
	  -append 'rootflags=trans=virtio,version=9p2000.L,cache=loose rootfstype=9p'

Run with kvmtool

	# start a named machine
	lkvm run -k openwrt-armsr-armv7-zImage -i openwrt-armsr-armv7-rootfs.cpio --name armsr0

	# start with virtio-9p rootfs
	lkvm run -k openwrt-armsr-armv7-zImage -d root-armsr/

	# stop "armsr0"
	lkvm stop --name armsr0

	# stop all
	lkvm stop --all

The multi-platform ARMv8 target can be used with QEMU:

	qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic \
		-kernel openwrt-armsr-armv8-generic-initramfs-kernel.bin \

With a EDKII or U-Boot binary for the QEMU ARM virtual machines, you can use these
images in EFI mode:

32-bit:
gunzip -c bin/targets/armsr/armv7/openwrt-armsr-armv7-generic-ext4-combined.img.gz > openwrt-arm-32.img
qemu-system-arm -nographic \
    -cpu cortex-a15 -machine virt \
    -bios bin/targets/armsr/armv7/u-boot-qemu_armv7/u-boot.bin \
    -smp 1 -m 1024 \
    -device virtio-rng-pci \
    -drive file=openwrt-arm-32.img,format=raw,index=0,media=disk \
    -netdev user,id=testlan -net nic,netdev=testlan \
    -netdev user,id=testwan -net nic,netdev=testwan

64-bit:
gunzip -c bin/targets/armsr/armv8/openwrt-armsr-armv8-generic-ext4-combined.img.gz > openwrt-arm-64.img
qemu-system-aarch64 -nographic \
    -cpu cortex-a53 -machine virt \
    -bios bin/targets/armsr/armv8/u-boot-qemu_armv8/u-boot.bin \
    -smp 1 -m 1024 \
    -device virtio-rng-pci \
    -drive file=openwrt-arm-64.img,format=raw,index=0,media=disk \
    -netdev user,id=testlan -net nic,netdev=testlan \
    -netdev user,id=testwan -net nic,netdev=testwan

One can obtain other EFI/BIOS binaries from:
- Distribution packages (such as qemu-efi-arm and qemu-efi-aarch64 in Debian)
- Community builds, like retrage/edk2-nightly: https://retrage.github.io/edk2-nightly/