EFI from usb HDD

AKASHI Takahiro takahiro.akashi at linaro.org
Wed Aug 18 07:13:49 CEST 2021


On Tue, Aug 17, 2021 at 09:20:31AM +0200, Michal Simek wrote:
> 
> 
> On 8/12/21 11:43 AM, AKASHI Takahiro wrote:
> > On Fri, Jul 30, 2021 at 08:22:18AM +0200, Michal Simek wrote:
> >>
> >>
> >> On 7/30/21 7:33 AM, AKASHI Takahiro wrote:
> >>> On Fri, Jul 30, 2021 at 06:41:01AM +0200, Michal Simek wrote:
> >>>>
> >>>>
> >>>> On 7/30/21 4:35 AM, AKASHI Takahiro wrote:
> >>>>> On Thu, Jul 29, 2021 at 04:09:32PM +0200, Michal Simek wrote:
> >>>>>> Hi,
> >>>>>>
> >>>>>> On 6/10/21 2:59 PM, AKASHI Takahiro wrote:
> >>>>>>> On Thu, Jun 10, 2021 at 02:31:46PM +0200, Michal Simek wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 6/10/21 12:51 PM, Heinrich Schuchardt wrote:
> >>>>>>>>> On 6/10/21 12:04 PM, Michal Simek wrote:
> >>>>>>>>>> Hi,
> >>>>>>>>>>
> >>>>>>>>>> On 6/10/21 11:47 AM, Heinrich Schuchardt wrote:
> >>>>>>>>>>> On 6/10/21 10:44 AM, Michal Simek wrote:
> >>>>>>>>>>>> Hi,
> >>>>>>>>>>>>
> >>>>>>>>>>>> I am playing with booting from USB via EFI. And I see very weird
> >>>>>>>>>>>> behavior. I have burnt image with grub to USB flashdisk and I have
> >>>>>>>>>>>> tested it on 3 zynqmp boards. zcu102, zcu104 and SOM Kria board.
> >>>>>>>>>>>> On zcu102 grub is going to boot menu and everything is working fine as
> >>>>>>>>>>>> expected.
> >>>>>>>>>>>> On zcu104 and SOM Kria I am able to get grub not to menu. When I list
> >>>>>>>>>>>> partitions in grub I see that only SDs are listed:
> >>>>>>>>>>>> grub> ls
> >>>>>>>>>>>> (hd0) (hd0,msdos1) (hd1) (hd1,msdos1)
> >>>>>>>>>>>
> >>>>>>>>>>> Hello Michal,
> >>>>>>>>>>>
> >>>>>>>>>>> thanks for sharing your observations.
> >>>>>>>>>>>
> >>>>>>>>>>> What devices do hd0 and hd1 relate to?
> >>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> On zcu102(working board) I also see usb(gpt) partitions and SD.
> >>>>>>>>>>>> grub> ls
> >>>>>>>>>>>> (hd0) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,msdos1)
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> GPT and MBR partitioning are independent of the device type.
> >>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> On zcu104 I see one more error message
> >>>>>>>>>>>> "PE image measurement failed"
> >>>>>>>>>>>
> >>>>>>>>>>> This is related to CONFIG_EFI_TCG2_PROTOCOL=y. Do you have a TPMv2? This
> >>>>>>>>>>> will not stop disk enumeration.
> >>>>>>>>>>>
> >>>>>>>>>>>> But I can't see it on SOM.
> >>>>>>>>>>>>
> >>>>>>>>>>>> U-Boot image is just the same for all boards. I am using generic
> >>>>>>>>>>>> xilinx_zynqmp_virt_defconfig.
> >>>>>>>>>>>>
> >>>>>>>>>>>> When I compare DT description for USB between zcu102 and zcu104 they
> >>>>>>>>>>>> are
> >>>>>>>>>>>> the same. SOM doesn't have usb enabled by default (but I enabled it)
> >>>>>>>>>>>> but
> >>>>>>>>>>>> grub starts which means that communication with USB is fine.
> >>>>>>>>>>>>
> >>>>>>>>>>>> It is based on my latest patches available here.
> >>>>>>>>>>>> u-boot/custodians/u-boot-microblaze.git (usb-efi-issue branch)
> >>>>>>>>>>>>
> >>>>>>>>>>>> Also when I list usb I see all partitions just fine.
> >>>>>>>>>>>> ZynqMP> part list usb 0
> >>>>>>>>>>>>
> >>>>>>>>>>>> Partition Map for USB device 0  --   Partition Type: EFI
> >>>>>>>>>>>>
> >>>>>>>>>>>> Part    Start LBA       End LBA         Name
> >>>>>>>>>>>>           Attributes
> >>>>>>>>>>>>           Type GUID
> >>>>>>>>>>>>           Partition GUID
> >>>>>>>>>>>>     1     0x00000800      0x001007fe      "Microsoft basic data"
> >>>>>>>>>>>>           attrs:  0x0000000000000000
> >>>>>>>>>>>>           type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
> >>>>>>>>>>>>           type:   data
> >>>>>>>>>>>>           guid:   0e7f8b3d-296b-4720-be9d-c4687d3c4a77
> >>>>>>>>>>>>     2     0x00100800      0x001197fe      "Microsoft basic data"
> >>>>>>>>>>>>           attrs:  0x0000000000000000
> >>>>>>>>>>>>           type:   ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
> >>>>>>>>>>>>           type:   data
> >>>>>>>>>>>>           guid:   8892eddc-231a-4e6e-a5e1-c310f4482fb7
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Do you have any idea why on one system is working fine to get to menu
> >>>>>>>>>>>> and on others there is an issue to get all partitions even u-boot is
> >>>>>>>>>>>> able to see them and can work with them.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Thanks,
> >>>>>>>>>>>> Michal
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> Where is the GRUB binary? - If it is in EFI/boot/bootaa64.efi, it could
> >>>>>>>>>>> be that the USB sub-system is simply not initialized yet when the boot
> >>>>>>>>>>> manager is called by distroboot.
> >>>>>>>>>>>
> >>>>>>>>>>> For testing partition detection in the UEFI sub-system it is enough
> >>>>>>>>>>> to run
> >>>>>>>>>>>
> >>>>>>>>>>>      efidebug devices
> >>>>>>>>>>>
> >>>>>>>>>>> Until yesterday we had a problem with partition numbers >= 10, cf.
> >>>>>>>>>>>
> >>>>>>>>>>> efi_loader: partition numbers are hexadecimal
> >>>>>>>>>>> https://source.denx.de/u-boot/u-boot/-/commit/3dca77b1dc1b6dbf9c8b51572fe4b0553cef009f
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> Block devices are enumerated in efi_disk_register(). Please, try to add
> >>>>>>>>>>> debug output there to elucidate the problem.
> >>>>>>>>>>
> >>>>>>>>>> I found where the problem is. First of all zcu102 didn't use the same
> >>>>>>>>>> image as others (it wasn't updated properly).
> >>>>>>>>>> When you have CONFIG_EFI_CAPSULE_ON_DISK_EARLY that efi_disk_register()
> >>>>>>>>>> is called before usb block devices are detected and registered that's
> >>>>>>>>>> why grub doesn't see them.
> >>>>>>>>>
> >>>>>>>>> The problem is CONFIG_EFI_SETUP_EARLY=y required by
> >>>>>>>>> CONFIG_EFI_CAPSULE_ON_DISK_EARLY.
> >>>>>>>>>
> >>>>>>>>> Why is USB initialized later then MMC?
> >>>>>>>>
> >>>>>>>> It is not just usb. SCSI/sata are behaving in the same way too.
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Overall we have a deficiency in the UEFI implementation in that we
> >>>>>>>>> cannot deal with block devices added or removed after initialization.
> >>>>>>>>>
> >>>>>>>>> Here integration with the driver model is missing.
> >>>>>>>>
> >>>>>>>> Right. And also there are commands which can create MBR partitions and I
> >>>>>>>> expect when you write image to SD and then run rescan or so you could
> >>>>>>>> get other partitions too.
> >>>>>>>> Maybe hook via part_init()? with removing efi_disk_register.
> >>>>>>>
> >>>>>>> For the record, I have proposed my ideas several times[1], [2].
> >>>>>>> I'm, however, no longer working on this issue as I have shifted
> >>>>>>> my focus to UEFI secure boot and capsule update.
> >>>>>>>
> >>>>>>> -Takahiro Akashi
> >>>>>>>
> >>>>>>> [1] https://lists.denx.de/pipermail/u-boot/2018-November/347491.html
> >>>>>>> [2] https://lists.denx.de/pipermail/u-boot/2019-February/357923.html
> >>>>>>
> >>>>>> I want to continue on this thread. I have disabled
> >>>>>> EFI_CAPSULE_ON_DISK_EARLY some time ago and trying to workaround that
> >>>>>> usb/scsi detection by simply calling usb reset and scsi reset as the
> >>>>>> part of PREBOOT. Then all disks are recorded and visible by grub.
> >>>>>>
> >>>>>> But I found another issue which is kind of weird. We are using
> >>>>>> distroboot with soft of fixed sequence. Important part of sequence is
> >>>>>> sd, usb, scsi.
> >>>>>>
> >>>>>> I have added grub on scsi and when I boot directly via run bootcmd_scsi0
> >>>>>> everything is working fine. When I let distroboot to do the job it or
> >>>>>> run printenv -e before bootcmd_scsi0 I am getting exception.
> >>>>>> From debug it is visible that it is exception called from
> >>>>>> efi_disk_read_blocks.
> >>>>>>
> >>>>>>     0  0x7ff5d188 hang()+20: include/bootstage.h, line 389
> >>>>>>     1  0x7ff5f908 __assert_fail(): lib/panic.c, line 25
> >>>>>>     2  0x7fe976a8 do_irq(): arch/arm/lib/interrupts_64.c, line 123
> >>>>>>     3  0x7fe96a0c _restore_regs()+124: arch/arm/cpu/armv8/exceptions.S,
> >>>>>> line 141
> >>>>>>     4  0x7ff43740 efi_disk_read_blocks()+160: lib/efi_loader/efi_disk.c,
> >>>>>> line 102
> >>>>>
> >>>>> How and when did you get this stack trace?
> >>>>
> >>>> When Abort happened I connected Xilinx debugger via jtag and look at cpu
> >>>> backtrace.
> >>>
> >>> OK, but we are already in grub here and such a trace (in U-Boot)
> >>> doesn't make sense. Right?
> >>
> >> Correct grub already started. But I expect it is still using U-Boot
> >> drivers and all exception handlers are still in place from u-boot.
> > 
> > Yeah, but what I didn't understand was:
> > 
> > !"Synchronous Abort" handler, esr 0x02000000
> > !elr: ffffffffa816c5b0 lr : 000000000805e218 (reloc)
> > !elr: 00000000200005b0 lr : 000000007fef2218
> > (snip)
> > !Code: 000165fa 0b2d05de 0000ffff 00000000 (20000590)
> > !UEFI image [0x0000000077d48000:0x0000000077de5fff] '/efi\boot\bootaa64.efi'
> > 
> > "Code:" at the exception doesn't seem to be sane assembler, and
> > "elr" is not within the code of neither U-Boot nor shim/grub(bootaa64.efi).
> > ("esr" doesn't tell us anything.)
> > So I wondered where the backtrace came from.
> > 
> > BTW, can you please confirm which function sits at the address of
> > "lr" (=0x7fe2218)?
> 
> I don't have that images anymore.
> 
> > 
> >> Maybe it is just sata/scsi related issue in EFI but weird is that when
> >> disks are scan just before command everything is working fine.
> > 
> > What do you mean by "when disks are scanned just before the command"?
> > The case when you ran "run bootcmd_scsi" without "printenv -e"?
> > 
> > Do you reproduce the problem even if you revert the patch,
> > "xilinx: zynqmp: Initialize usb and scsi via preboot", and
> > run the commands, "run scsi_init; [printenv -e;] run bootcmd_scsi?
> > 
> > Can you also try other EFI commands, like "efidebug devices"?
> 
> I found that there is a difference if you run scsi reset or run
> scsi_init. When scsi_init is used I can't see any issue.

Here you have tried three cases:
(1) scsi reset; efidebug devices; boot (hence distro_bootcmd)
(2) run scsi_init; efidebug devices; boot
(3) scsi rescan; efidebug devices; boot

Only case(2) succeeded to boot the system. Right?

Please double-check that you don't see this problem
in all those cases if you don't execute "efidebug devices"
(or "printenv -e").
# make sure that no efi command will be executed before
# booting from scsi.

> Variable looks like this
> scsi_init=if ${scsi_need_init}; then scsi_need_init=false; scsi scan; fi
> 
> And when you run scsi scan (last log) you see that problem again. It
> means when scsi reset/scan is called twice issue is observed. In all

If this is true, my guess is:

* In the scenarios above, all the block devices are enumerated by
  scsi_scan() in the first "run reset" or "run rescan" and
  new blk_desc's are created.
* efidebug is expected to execute efi_init_obj_list().
  Please note:
  EFI subsystem uses U-Boot's blk_desc internally to access block devices.
  Mapping between U-Boot's blk_desc and UEFI's efi_disk_obj (aka handle)
  is created only once and statically at the initialization in
  efi_init_obj_list().

* Now that scsi_scan() is executed again in the scond scsi command, all
  the block devices, hence blk_desc structures, will be freed by
  blk_unbind_all() and blk_desc's will be *re-created* by scsi probing.
* Nevertheless, the binding between blk_desc and efi_disk_obj is
  maintained even at this point, so any succeeding r/w operations
  via UEFI interfaces can point to bogus data of old blk_desc and
  therefore block accesses will get corrupted.

My guess above seems to be likely, but it doesn't explain well
that loading/starting "grub" binary succeeds any way.

-Takahiro Akashi


> cases efidebug devices are showing disk properly.
> 
> Thanks,
> Michal
> 
> U-Boot SPL 2021.10-rc1-00278-gf17a954b24ad (Aug 17 2021 - 09:14:08 +0200)
> PMUFW:  v1.1
> Loading new PMUFW cfg obj (2024 bytes)
> Silicon version:        3
> EL Level:       EL3
> Chip ID:        zu9eg
> Multiboot:      0
> Trying to boot from MMC2
> spl: could not initialize mmc. error: -19
> Trying to boot from MMC1
> spl_load_image_fat_os: error reading image u-boot.bin, err - -2
> NOTICE:  BL31: Secure code at 0x7e000000
> NOTICE:  BL31: Non secure code at 0x8000000
> NOTICE:  BL31: v2.4(release):v2.4-592-gb5a757e853be
> NOTICE:  BL31: Built : 07:08:43, Aug 12 2021
> 
> 
> U-Boot 2021.10-rc1-00278-gf17a954b24ad (Aug 17 2021 - 09:14:08 +0200)
> 
> CPU:   ZynqMP
> Silicon: v3
> Model: ZynqMP ZCU102 Rev1.0
> Board: Xilinx ZynqMP
> DRAM:  4 GiB
> PMUFW:  v1.1
> Xilinx I2C Legacy format at nvmem0:
>  Board name:    zcu102
>  Board rev:     1.0
>  Board SN:      847316301727-67998
>  Ethernet mac:  00:0a:35:03:70:f6
> EL Level:       EL2
> Chip ID:        zu9eg
> WDT:   Not found!
> NAND:  0 MiB
> MMC:   mmc at ff170000: 0
> Loading Environment from FAT... *** Error - No Valid Environment Area found
> *** Warning - bad env area, using default environment
> 
> In:    serial
> Out:   serial
> Err:   serial
> Bootmode: LVL_SHFT_SD_MODE1
> Reset reason:   SRST
> Net:
> ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
> eth0: ethernet at ff0e0000
> starting USB...
> Bus dwc3 at fe200000: Register 2000440 NbrPorts 2
> Starting the controller
> USB XHCI 1.00
> scanning bus dwc3 at fe200000 for devices... 1 USB Device(s) found
>        scanning usb for storage devices... 0 Storage Device(s) found
> Hit any key to stop autoboot:  0
> ZynqMP>
> ZynqMP>
> ZynqMP> scsi reset
> 
> Reset SCSI
> scanning bus for devices...
> SATA link 0 timeout.
> Target spinup took 0 ms.
> AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
> flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst
>   Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> ZynqMP> efidebug devices
> Scanning disk mmc at ff170000.blk...
> Scanning disk ahci_scsi.id1lun0...
> Found 5 disks
> ** Unable to read file ubootefi.var **
> Failed to load EFI variables
> Unable to find TPMv2 device
> DFU alt info setting: done
> Device           Device Path
> ================ ====================
> 000000007be20810 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)
> 000000007be25800 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)
> 000000007be259d0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,0x01,0,0x2000,0x1cd2000)
> 000000007be25e30 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)
> 000000007be350d0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(1,GPT,85b731b6-a4b2-47f4-b1c6-aef6e0f2ce81,0x800,0xfffff)
> 000000007be35520
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(2,GPT,ac600dc7-3160-4f3c-a824-496d00e3d007,0x100800,0x18fff)
> 000000007be26210
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/MAC(000a350370f6,1)
> ZynqMP> boot
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> JTAG: Trying to boot script at 20000000
> ## Executing script at 20000000
> Wrong image format for "source" command
> JTAG: SCRIPT FAILED: continuing...
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> MMC Device 1 not found
> no mmc device at slot 1
> SF: Detected n25q512a with page size 256 Bytes, erase size 64 KiB, total
> 64 MiB
> device 0 offset 0x3e80000, size 0x80000
> SF: 524288 bytes @ 0x3e80000 Read: OK
> QSPI: Trying to boot script at 20000000
> ## Executing script at 20000000
> Wrong image format for "source" command
> QSPI: SCRIPT FAILED: continuing...
> 
> 
> no devices available
> NAND: SCRIPT FAILED: continuing...
> 
> Device 0: unknown device
> 
> Device 1: unknown device
> scanning bus for devices...
>   Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> 
> Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> ... is now current device
> Scanning scsi 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> Found EFI removable media binary efi/boot/bootaa64.efi
> 647168 bytes read in 15 ms (41.1 MiB/s)
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Booting /efi\boot\bootaa64.efi
> PE image measurement failed
> Welcome to GRUB!
> 
> "Synchronous Abort" handler, esr 0x02000000
> elr: ffffffffa816d690 lr : 000000000805f08c (reloc)
> elr: 0000000020000690 lr : 000000007fef208c
> x0 : 0000000000000020 x1 : 0000000000000000
> x2 : 00000000000003e0 x3 : 0000000077c88400
> x4 : 0000000020000690 x5 : 000000007be178f0
> x6 : 000000007ffa5038 x7 : 000000007ffa5038
> x8 : 0000000000000006 x9 : fffffffffffffff0
> x10: 000000007473696c x11: 000000007be178f0
> x12: 00000000000003e0 x13: 0000000000000200
> x14: 000000007fe94208 x15: 0000000000000000
> x16: 000000007fecdcbc x17: 0000000000000000
> x18: 000000007be12da0 x19: 000000007be253e0
> x20: 0000000000000020 x21: 00000000000003e0
> x22: 0000000000000000 x23: 0000000077c88400
> x24: 0000000000000000 x25: 0000000000000100
> x26: 000000000000000f x27: 00000000000001ff
> x28: 000000007be4bed0 x29: 000000007be04920
> 
> Code: ffffffff ffffffff ffffffff ffffffff (ffffffff)
> UEFI image [0x0000000077d46000:0x0000000077de3fff] '/efi\boot\bootaa64.efi'
> Resetting CPU ...
> 
> ### ERROR ### Please RESET the board ###
> 
> U-Boot SPL 2021.10-rc1-00278-gf17a954b24ad (Aug 17 2021 - 09:14:08 +0200)
> PMUFW:  v1.1
> Loading new PMUFW cfg obj (2024 bytes)
> Silicon version:        3
> EL Level:       EL3
> Chip ID:        zu9eg
> Multiboot:      0
> Trying to boot from MMC2
> spl: could not initialize mmc. error: -19
> Trying to boot from MMC1
> spl_load_image_fat_os: error reading image u-boot.bin, err - -2
> NOTICE:  BL31: Secure code at 0x7e000000
> NOTICE:  BL31: Non secure code at 0x8000000
> NOTICE:  BL31: v2.4(release):v2.4-592-gb5a757e853be
> NOTICE:  BL31: Built : 07:08:43, Aug 12 2021
> 
> 
> U-Boot 2021.10-rc1-00278-gf17a954b24ad (Aug 17 2021 - 09:14:08 +0200)
> 
> CPU:   ZynqMP
> Silicon: v3
> Model: ZynqMP ZCU102 Rev1.0
> Board: Xilinx ZynqMP
> DRAM:  4 GiB
> PMUFW:  v1.1
> Xilinx I2C Legacy format at nvmem0:
>  Board name:    zcu102
>  Board rev:     1.0
>  Board SN:      847316301727-67998
>  Ethernet mac:  00:0a:35:03:70:f6
> EL Level:       EL2
> Chip ID:        zu9eg
> WDT:   Not found!
> NAND:  0 MiB
> MMC:   mmc at ff170000: 0
> Loading Environment from FAT... *** Error - No Valid Environment Area found
> *** Warning - bad env area, using default environment
> 
> In:    serial
> Out:   serial
> Err:   serial
> Bootmode: LVL_SHFT_SD_MODE1
> Reset reason:   SRST
> Net:
> ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
> eth0: ethernet at ff0e0000
> starting USB...
> Bus dwc3 at fe200000: Register 2000440 NbrPorts 2
> Starting the controller
> USB XHCI 1.00
> scanning bus dwc3 at fe200000 for devices... 1 USB Device(s) found
>        scanning usb for storage devices... 0 Storage Device(s) found
> Hit any key to stop autoboot:  0
> ZynqMP>
> ZynqMP>
> ZynqMP> run scsi_init
> scanning bus for devices...
> SATA link 0 timeout.
> Target spinup took 0 ms.
> AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
> flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst
>   Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> ZynqMP> efidebug devices
> Scanning disk mmc at ff170000.blk...
> Scanning disk ahci_scsi.id1lun0...
> Found 5 disks
> ** Unable to read file ubootefi.var **
> Failed to load EFI variables
> Unable to find TPMv2 device
> DFU alt info setting: done
> Device           Device Path
> ================ ====================
> 000000007be20790 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)
> 000000007be257e0 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)
> 000000007be259b0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,0x01,0,0x2000,0x1cd2000)
> 000000007be25e10 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)
> 000000007be350d0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(1,GPT,85b731b6-a4b2-47f4-b1c6-aef6e0f2ce81,0x800,0xfffff)
> 000000007be354f0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(2,GPT,ac600dc7-3160-4f3c-a824-496d00e3d007,0x100800,0x18fff)
> 000000007be261f0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/MAC(000a350370f6,1)
> ZynqMP> boot
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> JTAG: Trying to boot script at 20000000
> ## Executing script at 20000000
> Wrong image format for "source" command
> JTAG: SCRIPT FAILED: continuing...
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> MMC Device 1 not found
> no mmc device at slot 1
> SF: Detected n25q512a with page size 256 Bytes, erase size 64 KiB, total
> 64 MiB
> device 0 offset 0x3e80000, size 0x80000
> SF: 524288 bytes @ 0x3e80000 Read: OK
> QSPI: Trying to boot script at 20000000
> ## Executing script at 20000000
> Wrong image format for "source" command
> QSPI: SCRIPT FAILED: continuing...
> 
> 
> no devices available
> NAND: SCRIPT FAILED: continuing...
> 
> Device 0: unknown device
> 
> Device 1: unknown device
> 
> Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> ... is now current device
> Scanning scsi 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> Found EFI removable media binary efi/boot/bootaa64.efi
> 647168 bytes read in 15 ms (41.1 MiB/s)
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Booting /efi\boot\bootaa64.efi
> PE image measurement failed
> Welcome to GRUB!
> 
> 
> 
>                                                GNU GRUB  version 2.11
> 
>  ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
>  │*Linux BusyBox
>> 
> 
> U-Boot SPL 2021.10-rc1-00278-gf17a954b24ad (Aug 17 2021 - 09:14:08 +0200)
> PMUFW:  v1.1
> Loading new PMUFW cfg obj (2024 bytes)
> Silicon version:        3
> EL Level:       EL3
> Chip ID:        zu9eg
> Multiboot:      0
> Trying to boot from MMC2
> spl: could not initialize mmc. error: -19
> Trying to boot from MMC1
> spl_load_image_fat_os: error reading image u-boot.bin, err - -2
> NOTICE:  BL31: Secure code at 0x7e000000
> NOTICE:  BL31: Non secure code at 0x8000000
> NOTICE:  BL31: v2.4(release):v2.4-592-gb5a757e853be
> NOTICE:  BL31: Built : 07:08:43, Aug 12 2021
> 
> 
> U-Boot 2021.10-rc1-00278-gf17a954b24ad (Aug 17 2021 - 09:14:08 +0200)
> 
> CPU:   ZynqMP
> Silicon: v3
> Model: ZynqMP ZCU102 Rev1.0
> Board: Xilinx ZynqMP
> DRAM:  4 GiB
> PMUFW:  v1.1
> Xilinx I2C Legacy format at nvmem0:
>  Board name:    zcu102
>  Board rev:     1.0
>  Board SN:      847316301727-67998
>  Ethernet mac:  00:0a:35:03:70:f6
> EL Level:       EL2
> Chip ID:        zu9eg
> WDT:   Not found!
> NAND:  0 MiB
> MMC:   mmc at ff170000: 0
> Loading Environment from FAT... *** Error - No Valid Environment Area found
> *** Warning - bad env area, using default environment
> 
> In:    serial
> Out:   serial
> Err:   serial
> Bootmode: LVL_SHFT_SD_MODE1
> Reset reason:   SRST
> Net:
> ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
> eth0: ethernet at ff0e0000
> starting USB...
> Bus dwc3 at fe200000: Register 2000440 NbrPorts 2
> Starting the controller
> USB XHCI 1.00
> scanning bus dwc3 at fe200000 for devices... 1 USB Device(s) found
>        scanning usb for storage devices... 0 Storage Device(s) found
> Hit any key to stop autoboot:  0
> ZynqMP>
> ZynqMP>
> ZynqMP> scsi scan
> scanning bus for devices...
> SATA link 0 timeout.
> Target spinup took 0 ms.
> AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
> flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst
>   Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> ZynqMP> efidebug devices
> Scanning disk mmc at ff170000.blk...
> Scanning disk ahci_scsi.id1lun0...
> Found 5 disks
> ** Unable to read file ubootefi.var **
> Failed to load EFI variables
> Unable to find TPMv2 device
> DFU alt info setting: done
> Device           Device Path
> ================ ====================
> 000000007be20810 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)
> 000000007be25800 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)
> 000000007be259d0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,0x01,0,0x2000,0x1cd2000)
> 000000007be25e30 /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)
> 000000007be350d0
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(1,GPT,85b731b6-a4b2-47f4-b1c6-aef6e0f2ce81,0x800,0xfffff)
> 000000007be35520
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(1,0)/HD(2,GPT,ac600dc7-3160-4f3c-a824-496d00e3d007,0x100800,0x18fff)
> 000000007be26210
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/MAC(000a350370f6,1)
> ZynqMP> boot
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> JTAG: Trying to boot script at 20000000
> ## Executing script at 20000000
> Wrong image format for "source" command
> JTAG: SCRIPT FAILED: continuing...
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> MMC Device 1 not found
> no mmc device at slot 1
> SF: Detected n25q512a with page size 256 Bytes, erase size 64 KiB, total
> 64 MiB
> device 0 offset 0x3e80000, size 0x80000
> SF: 524288 bytes @ 0x3e80000 Read: OK
> QSPI: Trying to boot script at 20000000
> ## Executing script at 20000000
> Wrong image format for "source" command
> QSPI: SCRIPT FAILED: continuing...
> 
> 
> no devices available
> NAND: SCRIPT FAILED: continuing...
> 
> Device 0: unknown device
> 
> Device 1: unknown device
> scanning bus for devices...
>   Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> 
> Device 0: (1:0) Vendor: ATA Prod.: Maxtor 7V300F0 Rev: VA11
>             Type: Hard Disk
>             Capacity: 286188.8 MB = 279.4 GB (586114704 x 512)
> ... is now current device
> Scanning scsi 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> BootOrder not defined
> EFI boot manager: Cannot load any image
> Found EFI removable media binary efi/boot/bootaa64.efi
> 647168 bytes read in 14 ms (44.1 MiB/s)
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Booting /efi\boot\bootaa64.efi
> PE image measurement failed
> Welcome to GRUB!
> 
> "Synchronous Abort" handler, esr 0x02000000
> elr: ffffffffa816d690 lr : 000000000805f08c (reloc)
> elr: 0000000020000690 lr : 000000007fef208c
> x0 : 0000000000000020 x1 : 0000000000000000
> x2 : 00000000000003e0 x3 : 0000000077c88400
> x4 : 0000000020000690 x5 : 000000007be178f0
> x6 : 000000007ffa5038 x7 : 000000007ffa5038
> x8 : 0000000000000006 x9 : fffffffffffffff0
> x10: 000000007473696c x11: 000000007be178f0
> x12: 00000000000003e0 x13: 0000000000000200
> x14: 000000007fe94208 x15: 0000000000000000
> x16: 000000007fecdcbc x17: 0000000000000000
> x18: 000000007be12da0 x19: 000000007be253e0
> x20: 0000000000000020 x21: 00000000000003e0
> x22: 0000000000000000 x23: 0000000077c88400
> x24: 0000000000000000 x25: 0000000000000100
> x26: 000000000000000f x27: 00000000000001ff
> x28: 000000007be4bed0 x29: 000000007be04920
> 
> Code: ffffffff ffffffff ffffffff ffffffff (ffffffff)
> UEFI image [0x0000000077d46000:0x0000000077de3fff] '/efi\boot\bootaa64.efi'
> Resetting CPU ...
> 
> ### ERROR ### Please RESET the board ###
> 


More information about the U-Boot mailing list