ubldr to kernel handoff fails

glenn <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
Problem: ubldr fails to pass control to a FreeBSD kernel when U-boot 2018.01 is used but succeeds with U-boot 2013.01

Details: I've built a working OPNsense 20.7 installation on a HardenedBSD 12.1 OS running off an SD card in a SolidRun ClearFog Base. The U-boot for this is a customization of 2013.01. Everything works as expected, but I want to update U-boot to 2018.01.

To that end I use dd to copy over a custom 2018.01 U-boot image to the beginning of the SD card. The FAT partition and the UFS partition are untouched by this.



U-boot proper and ubldr function as expected. When given the location of a dtb that I know that works, the boot progress halts immediately after: 
	
	Kernel entry at 0xc00180...
	Kernel args: (null)

is printed to the serial console.

Removing the SD card and mounting the UFS file system on another FreeBSD system, I've checked that "readelf /mnt/boot/kernel/kernel" reports that the kernel entry address is indeed 0xc00180.

Some months ago I ran into a problem that had the same symptoms, but that turned out to be a device tree issue where the serial console wasn't properly configured. That doesn't seem to be the case here, since the failed and successful systems use the same dtb file.

A possible explanation occurs to me that the underlying U-boot API that ubldr depends on has changed in its functionality so that ubldr no longer works properly.

This is a baffling issue for me and I would appreciate any ideas anyone has on the matter.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.