[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