I am attempting to netboot Ubuntu 20.04.1LTS arm64 on a Raspberry Pi 3B v1.2. To do this, I have replaced the Ubuntu u-boot boot loader with the Pi boot loader, as instructed in the Ubuntu documentation. From my tftp server logs I can see that all correct files are being loaded, but the Pi still does not progress past the rainbow splash screen.
I have set
uart_2ndstage=1 in my config.txt, which has given me serial output of bootcode.bin, which shows config.txt, start.elf, and fixup.dat get loaded. According to the Raspberry Pi Documentation, the option should also enable serial output for start.elf, but that is not the case.
I have further set the option
start_debug=1 in my config.txt and see that start_db.elf is now being loaded, but do not get any additional serial output.
As an additional test I have set the same options in the config.txt when used from an sdcard, so setting the serial options as well as using the adjusted boot loader and kernel. This leads to an identical hang.
Edit: I have found the cause of my issue. Setting
arm_64bit=1 (or any non empty value) makes it so either the bootcode.bin or start.elf expect a non-compressed kernel image. Ubuntu gives compressed images by default. By manually decompressing the image, the Pi boots. My original question still stands, however.
My question is: what can I do to see serial output of what start.elf is doing and expecting?