[PATCH] configs: layerscape: Disable the EFI_LOADER feature

Z.Q. Hou zhiqiang.hou at nxp.com
Thu Aug 12 08:15:02 CEST 2021



> -----Original Message-----
> From: Mian Yousaf Kaukab <ykaukab at suse.de>
> Sent: 2021年8月3日 22:52
> To: Z.Q. Hou <zhiqiang.hou at nxp.com>
> Cc: Michael Walle <michael at walle.cc>; Tom Rini <trini at konsulko.com>;
> Heinrich Schuchardt <xypron.glpk at gmx.de>; u-boot at lists.denx.de; Priyanka
> Jain <priyanka.jain at nxp.com>
> Subject: Re: [PATCH] configs: layerscape: Disable the EFI_LOADER feature
> 
> On Mon, Jul 26, 2021 at 07:37:53AM +0000, Z.Q. Hou wrote:
> > Hi Micheal,
> >
> > Pasted the log below, the direct cause seems the u-boot DTB doesn't have
> /cpus node.
> >
> > => run bootcmd_mmc0
> > switch to partitions #0, OK
> > mmc0 is current device
> > Scanning mmc 0:1...
> > libfdt fdt_check_header(): FDT_ERR_BADMAGIC Scanning disk
> > esdhc at 1560000.blk...
> > Found 5 disks
> > No EFI system partition
> > couldn't find /cpus
> > "Synchronous Abort" handler, esr 0x96000006
> > elr: 0000000082004a6c lr : 0000000082004a30 (reloc)
> > elr: 00000000fbd25a6c lr : 00000000fbd25a30
> > x0 : 0000000087f00a88 x1 : 000000001cfbfd5e
> > x2 : efbeaddeefbeadde x3 : 00000000efbeadde
> > x4 : 00000000fffffffc x5 : 0000000087f037d2
> > x6 : 0000000000000a58 x7 : 0000000000000003
> > x8 : 0000000087f00000 x9 : 0000000000000008
> > x10: 0000000000000a44 x11: 00000000fbc17c6c
> > x12: 00000000000009e4 x13: 0000000000000000
> > x14: 0000000087f00000 x15: 00000000fbc180d8
> > x16: 00000000fbd742d0 x17: 0000000000000000
> > x18: 00000000fbc1cdb0 x19: 00000000000009e4
> > x20: 0000000087f00000 x21: 00000000fbdb3404
> > x22: 00000000fbdb4a97 x23: 0000000000000018
> > x24: 00000000fbde5d44 x25: 0000000000000000
> > x26: 0000000000000000 x27: 0000000000000000
> > x28: 00000000fbc5ba60 x29: 00000000fbc17d30
> >
> > Code: a94153f3 a9425bf5 a8c47bfd d65f03c0 (b8617803) Resetting CPU ...
> >
> >
> > >
> > > And why don't you fix the fdt_addr then? Shouldn't it be unset if there is
> no
> > > actual device tree present in a ROM section? (I don't say there isn't
> another
> > > underlying problem when you use an invalid fdt_addr).
> >
> > The problem shown in above log is triggered when unset the fdt_addr.
> On which platform are you seeing this issue?
> 
> I have tested v2021.07 on ls1043a-rdb and it doesn't reproduce.

On LS1043ARDB, the fdt_addr points to the NOR flash, so no this issue.
Reproduce on LS1046ARDB, on which no NOR flash is mapped to that space.

> 
> Board is booting from NOR and I have two mmc partitions:
> Device           Start      End  Sectors  Size Type
> /dev/mmcblk0p1    2048  1048576  1046529  511M Linux filesystem
> /dev/mmcblk0p2 1050624 15523806 14473183  6.9G Linux filesystem
> 
> => run bootcmd_mmc0
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> Scanning disk esdhc at 1560000.blk...
> Found 3 disks
> No EFI system partition
> PCIe1: pcie at 3400000 disabled
> PCIe2: pcie at 3500000 Root Complex: no link
> PCIe3: pcie at 3600000 Root Complex: no link
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> BootOrder not defined
> EFI boot manager: Cannot load any image
> Scanning mmc 0:2...
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> BootOrder not defined
> EFI boot manager: Cannot load any image
> =>
> 
> I still don't see the issue even if I remove fdt_addr:
> => setenv fdt_addr
> => run bootcmd_mmc0
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> BootOrder not defined
> EFI boot manager: Cannot load any image
> Scanning mmc 0:2...
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> WARNING failed to get smmu node: FDT_ERR_NOTFOUND
> BootOrder not defined
> EFI boot manager: Cannot load any image
> =>
 
Dig deeper, it's a NXP internal patch that results in the SError, upsteam doesn't have this problem. The SError is triggered during the DT setup phase of bootefi when using the u-boot packaged fdt.
To resolve the 'Sync Abort' issue, I'll send a patch to remove the 'fdt_addr' env, it was added by mistake since the DTB is loaded from boot filesystem instead of hardware ROM.

Thanks,
Zhiqiang

> 
> > If it not unset, the SError is triggered when to check the magic of the fdt
> header.
> >
> > Thanks,
> > Zhiqiang
> >
> > >
> > > -michael
> BR,
> Yousaf


More information about the U-Boot mailing list