35437b1f16
manu found in the noted PR that overlays seemed to be clobbering the kenv and killing the boot. Further inspection revealed that one can `fdt ls` at the loader prompt for a successful boot, but autoboot breaks it. In the autoboot case, first setup of FDT is happening in the middle of bi_load, which triggers loading of the DTBO from /boot. This is bad, bad, bad. Files in the loader are loaded somewhere in the middle of the address space one after another. bi_load starts building the needed kernel bootinfo immediately after the highest-addr loaded file. File loads in the middle of bi_load suddenly clobber bootinfo and everything goes off the rails. The solution to this is to use take advantage of arch_autoload to setup FDT in efiloader compiled with LOADER_FDT_SUPPORT. This matches how it works in ubldr land, and is how it should have worked when overlay support was added to efiloader since fdt_setup_fdtp now has the potential to load files (courtesy of fdt_platform_load_dtb). PR: 230804 Discussed with: imp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D16858 |
||
---|---|---|
.. | ||
arm | ||
arm64 | ||
common | ||
defaults | ||
efi | ||
fdt | ||
ficl | ||
ficl32 | ||
forth | ||
i386 | ||
kshim | ||
liblua | ||
liblua32 | ||
libsa | ||
libsa32 | ||
lua | ||
man | ||
mips | ||
ofw | ||
powerpc | ||
sparc64 | ||
uboot | ||
usb | ||
userboot | ||
defs.mk | ||
fdt.mk | ||
ficl.mk | ||
loader.mk | ||
lua.mk | ||
Makefile | ||
Makefile.amd64 | ||
Makefile.inc | ||
uboot.mk |