вс, 6 июн. 2021 г. в 18:20, Heinrich Schuchardt <xypron.g...@gmx.de>: > > On 6/6/21 4:37 PM, Matwey V. Kornilov wrote: > > Hi, > > > > I've found that > > > > f3866909e350 ("distro_bootcmd: call EFI bootmgr even without having > > /EFI/boot") > > > > breaks running EFI application from USB device on BeagleBone Black > > (am335x) device. > > > > With this patch I see the following: > > > > Booting /efi\boot\bootarm.efi > > Welcome to GRUB! > > > > data abort > > pc : [<9ce0b6d0>] lr : [<9ffab7c7>] > > reloc pc : [<7d69d6d0>] lr : [<8083d7c7>] > > sp : 9df44e28 ip : 9ffdfe90 fp : 00000003 > > r10: 9ffe3300 r9 : 00000000 r8 : 9df6fe88 > > r7 : 00000000 r6 : 9ce5da08 r5 : 9ce571f8 r4 : 9ce2c040 > > r3 : 00000000 r2 : 00000001 r1 : 9ce56598 r0 : 00000000 > > Flags: NzCv IRQs off FIQs on Mode SVC_32 > > Code: e3500000 0a000015 e590000c eb00f96e (e5d03000) > > UEFI image [0x9ce46000:0x9cf28fff] '/efi\boot\bootarm.efi' > > Resetting CPU ... > > Hello Matwey, > > thank you for reporting the issue. > > $ echo 'Code: e3500000 0a000015 e590000c eb00f96e (e5d03000)' | > CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm scripts/decodecode > > Code: e3500000 0a000015 e590000c eb00f96e (e5d03000) > All code > ======== > 0: e3500000 cmp r0, #0 > 4: 0a000015 beq 0x60 > 8: e590000c ldr r0, [r0, #12] > c: eb00f96e bl 0x3e5cc > 10:* e5d03000 ldrb r3, [r0] <-- trapping > instruction > > Code starting with the faulting instruction > =========================================== > 0: e5d03000 ldrb r3, [r0] > > Looking at the disassembly above we see that reading memory location > NULL fails. > > We need to find out where the exception occurs. The code position is > neither in bootarm.efi nor in U-Boot (9ce0b6d0 is lower than the load > position of bootarm.efi, so it is below the relocated U-Boot code). > > Please, add the following line at the start of grub.cfg to get more > output from GRUB: > > debug=all
This doesn't provide any additional output from GRUB :( > > When building U-Boot, please, add > > #define DEBUG 1 > > in lib/efi_loader/efi_disk.c and lib/efi_loader_file.c a line before > #include <common.h>. This doesn't provide much output as well: Scanning disk m...@48060000.blk... EFI: Call: efi_install_multiple_protocol_interfaces( &handle, &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, NULL) EFI: 0 returned by efi_install_multiple_protocol_interfaces( &handle, &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, NULL) ** Unrecognized filesystem type ** Scanning disk m...@481d8000.blk... EFI: Call: efi_install_multiple_protocol_interfaces( &handle, &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, NULL) EFI: 0 returned by efi_install_multiple_protocol_interfaces( &handle, &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, NULL) EFI: Call: efi_install_multiple_protocol_interfaces( &handle, &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, NULL) EFI: 0 returned by efi_install_multiple_protocol_interfaces( &handle, &efi_guid_device_path, diskobj->dp, &efi_block_io_guid, &diskobj->ops, NULL) Found 3 disks > Best regards > > Heinrich > > > > > while without the patch, GRUB works as usual. > > Could you please help me to figure out what is going wrong here? > > -- With best regards, Matwey V. Kornilov