On Mon, Feb 25, 2019 at 8:18 PM Rebecca Cran <rebe...@bluestop.org> wrote: > > I've been working on some EFI changes, and in the process found that > i386 booting is broken. On real hardware - my MinnowBoard Turbot - the > loader hangs when calling ExitBootServices, while in a VM I get a panic > saying "exec returned". > > The problem appears to be that ExitBootServices is called twice: > elf32_exec in arch/i386/efimd.c calls bi_load which calls > bi_load_efi_data in bootinfo.c - which calls ExitBootServices the first > time. Then elf32_exec keeps going, and after printing "Start @ 0x....." > calls ldr_enter which tries to call ExitBootServices again - this time > with a mapkey whose value is zero since it never attempts to fetch the > memory map. I'm guessing that subsequently causes the exec to fail. >
efimd.c should be garbage collected and the ldr_enter called removed. r328169 removed the copy of bootinfo that demonstrated the expected ordering: bi_load returned ldr_bootinfo(), then elf32_exec finished it off with ldr_enter. These details are captured in MI bootinfo bits nowadays and none of this is of use in the current world. _______________________________________________ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"