Why don't he create his own bootloader like everyone does ? He can skip the hard step which is the legacy bios bootloader, and create a simple UEFI bootloader.zap8600, I am honestly at a loss at this point. I would recommend ditching BOOTBOOT TBH. BOOTBOOT is very finicky from what I've seen. Try using Limine instead.
Creating Legacy BIOS Support was a nightmare !! It's still a mess of assembly code, 5 assembly files [name:lines of code] (bootsect.asm:193, partbootsect.asm:36, bootmgr.asm:**1477**, bootldr64.asm:511, bptdefs.asm:23)
My Legacy BIOS bootloader's job :
Code: Select all
Consists of 2 stages, the bootsector and the partition bootsector along with the hole bootloader.
My FS Driver sets up some thing in the partition which makes it easier than creating a whole file system driver inside the bootloader.
- Enables A20
- Loads the memory map
- sets up VESA VBE
- Reads drive information
- Jumps to protected mode (32 bit)
- Reads the boot pointer table
- Reads the kernel & dependencies
- Relocates the kernel
- Checks long mode support
- Jump to long mode (64 bit)
- fills up some global variables inside the kernel (some sections like INITDATA, FIMPORT)