On 8/20/19 5:34 AM, Philippe Mathieu-Daudé wrote:
Hi,
Since there has been some activity on the list asking about
Rasberry PI USB support, I had a look a some previous unfinished
work and rebased it to share, in case it helps hobbyist interested
in improving these machines.
This series is some proof-of-concept on improving the AUX UART
support. See the commit description for various TODO/questions.
This can be tested using files documented by Peter Maydell in
his blog post:
https://translatedcode.wordpress.com/2018/04/25/debian-on-qemus-raspberry-pi-3-model/
And using the kernel command line arguments suggested by Guenter Roeck:
qemu-system-aarch64 -M raspi3 -m 1024 \
-kernel raspi3/bootpart/vmlinuz-4.14.0-3-arm64 \
-initrd raspi3/bootpart/initrd.img-4.14.0-3-arm64 \
-dtb raspi3/bootpart/bcm2837-rpi-3-b.dtb \
-append 'earlycon=uart8250,mmio32,0x3f215040 rdinit=/sbin/init panic=-1
console=ttyS1,115200' \
-drive
file=raspi3/2018-01-08-raspberry-pi-3-buster-PREVIEW.img,format=raw,if=sd \
-serial null -serial stdio \
-d unimp,guest_errors -trace bcm283\*
[ ... ]
[ 3.123313] Unpacking initramfs...
Here it hangs, even with CPRMAN patch from Guenter:
https://lists.gnu.org/archive/html/qemu-devel/2018-07/msg03153.html
This command line works for me:
qemu-system-aarch64 -M raspi3 -kernel arch/arm64/boot/Image -no-reboot \
-nographic -snapshot -smp 4 -m 1G \
-drive file=rootfs.ext2,format=raw,if=sd \
-serial null -serial stdio -monitor none -no-reboot \
--append 'panic=-1 slub_debug=FZPUA root=/dev/mmcblk0 rootwait
earlycon=uart8250,mmio32,0x3f215040 console=ttyS1,115200' \
-dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb
or, with initrd:
qemu-system-aarch64 -M raspi3 -kernel arch/arm64/boot/Image -no-reboot \
-nographic \
-initrd rootfs.cpio \
-m 1G -serial null -serial stdio -monitor none -no-reboot \
--append 'panic=-1 slub_debug=FZPUA rdinit=/sbin/init
earlycon=uart8250,mmio32,0x3f215040 console=ttyS1,115200' \
-dtb arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb
This is with the mainline kernel.
I don't see a significant difference to your patch series.
I tested with qemu 4.0, 4.1, and mainline (with my patch series applied on top
of each).
One problem I do see is that booting mainline (as of right now) is _slow_
compared
to released versions of qemu. It takes some 35 seconds to get to "Unpacking
initramfs",
compared to ~8 seconds for v4.1 and earlier. Otherwise it works.
One possibility might be that your initrd has a problem. Can you boot without
your patch
series, or is it always stuck ?
Thanks,
Guenter