Hi Heinrich, On Mon, Aug 26, 2019 at 1:55 AM Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > If a crash occurs, show the loaded UEFI images to facilitate analysis. > > This is an example output: > > => bootefi 0x1000000 > Found 0 disks > Hello world of bugs! > Invalid Opcode (Undefined Opcode) > EIP: 0010:[<06ceb06e>] EFLAGS: 00010206 > Original EIP :[<fec9906e>] > EAX: 00000000 EBX: 06cec000 ECX: 00000fd0 EDX: 00000001 > ESI: 06ced18a EDI: 07d0fe10 EBP: 07fe27a0 ESP: 07d0fde0 > DS: 0018 ES: 0018 FS: 0020 GS: 0018 SS: 0018 > CR0: 00000033 CR2: 00000000 CR3: 00000000 CR4: 00000000 > DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 > DR6: ffff0ff0 DR7: 00000400 > Stack: > 0x07d0fde8 : 0x00000000 > 0x07d0fde4 : 0x06ced040 > --->0x07d0fde0 : 0x07fe27a0 > 0x07d0fddc : 0x00010206 > 0x07d0fdd8 : 0x00000010 > 0x07d0fdd4 : 0x06ceb06e > UEFI image [0x06cea000:0x06cf0fff] pc=0x106e '/bug-i386.efi' > ### ERROR ### Please RESET the board ### > > With the additional information provided by this patch we know that the > problem occurred 0x106e after the load address of bug-i386.efi. > > Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > --- > arch/x86/cpu/i386/interrupt.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/arch/x86/cpu/i386/interrupt.c b/arch/x86/cpu/i386/interrupt.c > index 47df3172b7..1445204878 100644 > --- a/arch/x86/cpu/i386/interrupt.c > +++ b/arch/x86/cpu/i386/interrupt.c > @@ -12,6 +12,7 @@ > > #include <common.h> > #include <dm.h> > +#include <efi_loader.h> > #include <asm/control_regs.h> > #include <asm/i8259.h> > #include <asm/interrupt.h> > @@ -64,6 +65,18 @@ static char *exceptions[] = { > "Reserved" > }; > > +/** > + * show_efi_loaded_images() - show loaded UEFI images > + * > + * List all loaded UEFI images. > + * > + * @eip: instruction pointer > + */ > +static void show_efi_loaded_images(uintptr_t eip) > +{ > + efi_print_image_infos((void *)eip); > +} > + > static void dump_regs(struct irq_regs *regs) > { > unsigned long cs, eip, eflags; > @@ -144,6 +157,7 @@ static void dump_regs(struct irq_regs *regs) > printf("0x%8.8lx : 0x%8.8lx\n", sp, (ulong)readl(sp)); > sp -= 4; > } > + show_efi_loaded_images(eip);
Should we wrap the call with #ifdef CONFIG_EFI_LOADER or something? > } Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot