[U-Boot] [PATCH v4 0/9] LS2080ARDB: Enable EFI boot support

Alexander Graf agraf at suse.de
Thu Jun 23 09:34:12 CEST 2016



> Am 23.06.2016 um 07:30 schrieb Prabhakar Kushwaha <prabhakar.kushwaha at nxp.com>:
> 
> Hi Alex,
> 
>> -----Original Message-----
>> From: Alexander Graf [mailto:agraf at suse.de]
>> Sent: Tuesday, June 21, 2016 4:37 AM
>> To: u-boot at lists.denx.de
>> Cc: york sun <york.sun at nxp.com>; Prabhakar Kushwaha
>> <prabhakar.kushwaha at nxp.com>
>> Subject: [PATCH v4 0/9] LS2080ARDB: Enable EFI boot support
>> 
>> We now have EFI support in U-Boot which worked out of the box on all
>> systems that I tried it on so far. Except for the LS2080ARDB. With this patch
>> set I can successfully boot grub2 and Linux from there on such a system -
>> even using PXE.
>> 
>> v3 -> v4:
>> 
>>  - Add CONFIG_CMD_FS_GENERIC to defconfig
>>  - Move code into generic quiesce weak function
>>  - Exit device for real when going to Linux
>>  - Only apply DPL if we have something to apply
>>  - New: armv8: ls2080a: Declare spin tables as reserved for efi loader
>>  - New: efi_loader: Allow boards to implement get_time and reset_system
>>  - New: armv8: fsl-layerscape: Add support for efi_loader RTS reset
>>  - New: efi_loader: Declare secure memory as reserved
>>  - New: efi_loader: Allow bouncing for network
>> 
>> Alexander Graf (9):
>>  ls2080: Exit dpaa only right before exiting U-Boot
>>  efi_loader: AArch64: Run EFI payloads in EL2 if U-Boot runs in EL3
>>  ls2080ardb: Reserve DP-DDR RAM
>>  ls2080ardb: Convert to distro boot
>>  armv8: ls2080a: Declare spin tables as reserved for efi loader
>>  efi_loader: Allow boards to implement get_time and reset_system
>>  armv8: fsl-layerscape: Add support for efi_loader RTS reset
>>  efi_loader: Declare secure memory as reserved
>>  efi_loader: Allow bouncing for network
>> 
>> arch/arm/cpu/armv8/fsl-layerscape/cpu.c  |  33 +++++++++-
>> arch/arm/cpu/armv8/fsl-layerscape/fdt.c  |   6 ++
>> arch/arm/include/asm/armv8/mmu.h         |  19 +++---
>> arch/arm/include/asm/u-boot-arm.h        |   1 +
>> arch/arm/lib/bootm.c                     |   7 +++
>> board/freescale/ls2080a/ls2080a.c        |   6 +-
>> board/freescale/ls2080aqds/ls2080aqds.c  |  11 ++--
>> board/freescale/ls2080ardb/ls2080ardb.c  |  20 ++++--
>> cmd/bootefi.c                            |  15 +++++
>> configs/ls2080a_emu_defconfig            |   1 +
>> configs/ls2080a_simu_defconfig           |   1 +
>> configs/ls2080aqds_SECURE_BOOT_defconfig |   1 +
>> configs/ls2080aqds_defconfig             |   1 +
>> configs/ls2080aqds_nand_defconfig        |   1 +
>> configs/ls2080ardb_SECURE_BOOT_defconfig |   1 +
>> configs/ls2080ardb_defconfig             |   1 +
>> configs/ls2080ardb_nand_defconfig        |   1 +
>> drivers/net/fsl-mc/mc.c                  |  24 +++++++-
>> include/configs/ls2080ardb.h             |  26 +++++++-
>> include/efi_loader.h                     |  18 ++++++
>> lib/efi_loader/efi_boottime.c            |   2 +
>> lib/efi_loader/efi_memory.c              |  15 +++++
>> lib/efi_loader/efi_net.c                 |   7 +++
>> lib/efi_loader/efi_runtime.c             | 101 +++++++++++++++++++++++++++-
>> ---
> 
> I am testing your patch set on ls2080ardb. 
> Observation:-
> 1. Linux boot no more crashing with e1000#0, DPMAC5 at XSGMII. Even tried with default bootcmd. 
> 2. Grub2 crash while booting :(
> 
> I have applied your patch on top of commit " 9f823615af919c6b89f0b80197f009f78299dcde"
> 
> Please find log below.
> 
> 
> => usb start
> starting USB...
> USB0:   Register 200017f NbrPorts 2
> Starting the controller
> USB XHCI 1.00
> scanning bus 0 for devices... 2 USB Device(s) found
> USB1:   Register 200017f NbrPorts 2
> Starting the controller
> USB XHCI 1.00
> scanning bus 1 for devices... 1 USB Device(s) found
>       scanning usb for storage devices... 1 Storage Device(s) found
> => edit ethact
> edit: DPMAC5 at xgmii
> => tftp 0x80000000 fsl-ls2080a-rdb.dtb; fdt addr 0x80000000; fdt boardsetup;tftp 0xa0000000 grubaa64.efi; bootefi a0000000 0x80000000
> Using DPMAC5 at xgmii device
> TFTP from server 192.168.1.1; our IP address is 192.168.1.34
> Filename 'fsl-ls2080a-rdb.dtb'.
> Load address: 0x80000000
> Loading: ###
>         2 KiB/s
> done
> Bytes transferred = 10549 (2935 hex)
> WARNING: could not set reg FDT_ERR_NOSPACE.
> ERROR: could not set fsl,usb-erratum-a008751 for snps,dwc3: FDT_ERR_NOSPACE.
> ERROR: could not set fsl,usb-erratum-a008751 for snps,dwc3: FDT_ERR_NOSPACE.
> Using DPMAC5 at xgmii device
> TFTP from server 192.168.1.1; our IP address is 192.168.1.34
> Filename 'grubaa64.efi'.
> Load address: 0xa0000000
> Loading: #################################################################
>         #################################################################
>         ###########################################
>         85.9 KiB/s
> done
> Bytes transferred = 884224 (d7e00 hex)
> ## Starting EFI application at 0xa0000000 ...
> Scanning disks on scsi...
> Scanning disks on usb...
> Scanning disks on mmc...
> MMC: no card present
> MMC Device 1 not found
> MMC Device 2 not found
> MMC Device 3 not found
> Found 4 disks

So it crashes in U-Boot disk enumeration code ...

> "Synchronous Abort" handler, esr 0x8a000000
> ELR:     97ffeee9d5033fdf

... trying to access an instruction that is completely bogus.

Can you please add #define DEBUG at the beginning of efi_disk.c and try to isolate where it crashes from there?

Alex




More information about the U-Boot mailing list