Follow-up to this note
Meanwhile Dragans changes to the dtb file helped my testing setup to boot without eMMC. So I could test booting manually from scsi devices like on my production system.
Looking for some simple instructions on how-to do this failed and I put together the following information.
u-boot on #RockPro64 uses variables written to flash. The important ones for choosing a device/kernel to boot:
# this u-boot will look for scsi devices only boot_targets=scsi # it will scan the devices for bootcmd=bootflow scan
Since I have a boot.scr
in my /boot
the bootmeth seems to be script. There's also the source of that file boot.cmd
available and from there I extracted the commands to run on the u-boot console to start any kernel/initrd/dtb I could find on disk:
# initialize pci bus pci enum # show devices on pci pci # reset bus and scan for scsi devices scsi reset # get partition table scsi part # find boot files ls scsi 0:1 /boot # load armbian defaults load scsi 0:1 0x800800 /boot/armbianEnv.txt # replace the xyz on the following line with the # filesize output by 'load' above env import -t 0x800800 xyz # write uuid of partition to variable partuuid part uuid scsi 0:1 partuuid # arguments passed to the kernel on boot setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}" # look for available images, initrds and dtbs ls scsi 0:1 /boot # get the dtb directory, **uInitrd** and the vmlinuz # from the output to use with the following 'load' commands load scsi 0:1 0x02080000 /boot/ load scsi 0:1 0x06000000 /boot/ load scsi 0:1 0x01f00000 /boot//rockchip/rk3399-rockpro64.dtb booti 0x02080000 0x06000000 0x01f00000
At this point I only needed to wait for the Pine64 sata ctrl to arrive to test the current
kernel with the same ctrl used in my production system.
So I went back to the fork in the tunnels and took the other way down the #RabbitHole…