Hi Desone, On Tue, 14 Nov 2023 at 17:43, Desone Burns <dbu...@seegrid.com> wrote: > > Hello, > > I have an application in which I need to boot an x86-64 machine with a > legacy BIOS. I've read about the U-Boot executable, the SPL, and the > TPL. I'm just having a bit of trouble figuring out which pieces are > supposed to go where. Looking to Grub, I see there exists a minimal > "boot.img" file, which gets installed into the MBR of the drive and > subsequently bootstraps the rest of the sequence. My impression was > that either the TPL or the SPL would play that same role, but even > removing basically all options, the binary produced is still too large > to fit in this 512 Byte area. Syslinux also works on my device, and > the "mbr.bin" and "gptmbr.bin" files play the same role for that > bootloader. How can I make optimizations to generate an image small > enough to fit into the MBR of my device to allow BIOS to load the rest > of the bootloader?
Normally U-Boot would go in the SPI flash. If you are wanting to put U-Boot on a disk, then I suspect you need some code in the MBR to load it into RAM. Something like [1] perhaps? For that case, I doubt you need TPL and SPL...we use those on newer x86 machines, e.g. Apollo Lake - see [2] Regards, Simon [1] https://thestarman.pcministry.com/asm/mbr/STDMBR.htm [2] https://docs.u-boot.org/en/latest/board/google/chromebook_coral.html?highlight=coral