67330db0bb
There is no way to see anything about the faults occuring in loader.efi. Some intel BIOSes do output a line into serial port at 115200/8/1 regardless of the current port settings with the EFI error number, but this is too little, and not always available, esp. if the user does not know where to look. The patch adds a simple facility to grab exceptions and at least dump generic registers and some exception details. Due to the relative complexity of correctly taking over the BIOS IDT setup, only install the facility on user request. Two new commands, 'grab_faults' and 'ungrab_faults' are provided, first one takes over, second undoes the first. It is supposed that user would execute 'grab' by the developer direction of collecting the debugging data. The 'fault' command generates exception to test the setup. Fault handlers use dedicated stack to improve chances of catching stack/TSS exceptions. Due to this, BIOS IDT is duplicated into a private copy, and debugger needs to find a free GDT slot for TSS. This is done in somewhat complicated efi_redirect_exceptions(). Reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D7935 |
||
---|---|---|
.. | ||
arch | ||
autoload.c | ||
bootinfo.c | ||
conf.c | ||
copy.c | ||
devicename.c | ||
loader_efi.h | ||
main.c | ||
Makefile | ||
Makefile.depend | ||
version |