Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debian 11 instructions for LX2 fail: "Bad DPL image" / "Synchronous Abort" #6

Open
laf0rge opened this issue Jun 21, 2022 · 3 comments

Comments

@laf0rge
Copy link

laf0rge commented Jun 21, 2022

I'm using the instructions step-by-step but it fails to boot the kernel, using the concatenation of https://deb.debian.org/debian/dists/bullseye/main/installer-arm64/current/images/netboot/SD-card-images/firmware.none.img.gz and
https://deb.debian.org/debian/dists/bullseye/main/installer-arm64/current/images/netboot/SD-card-images/partition.img.gz on a USB storage device.

Hit any key to stop autoboot:  0 
=> 
=> wdt dev watchdog@23a0000
=>  wdt stop
=> setenv bootargs arm-smmu.disable-bypass=0
=> setenv boot_targets usb0
=> boot
Device: FSL_SDHC
Manufacturer ID: 41
OEM: 3432
Name: ASTCBus Speed: 50000000
Mode: SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes

MMC read: dev # 0, block # 26624, count 2048 ... 2048 blocks read: OK
starting USB...
Bus usb3@3100000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb3@3110000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@3100000 for devices... 1 USB Device(s) found
scanning bus usb3@3110000 for devices... 5 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Device 0: Vendor: Intenso  Rev: 1100 Prod: Rainbow Line    
            Type: Removable Hard Disk
            Capacity: 7620.0 MB = 7.4 GB (15605760 x 512)
... is now current device
Scanning usb 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
144 bytes read in 3 ms (46.9 KiB/s)
1:      Debian-Installer
Retrieving file: /initrd.gz
29271227 bytes read in 1695 ms (16.5 MiB/s)
Retrieving file: /vmlinuz
27535232 bytes read in 1615 ms (16.3 MiB/s)
Retrieving file: /dtbs/fsl-lx2160a-clearfog-cx.dtb
Failed to load '/dtbs/fsl-lx2160a-clearfog-cx.dtb'
Moving Image from 0x81100000 to 0x81200000, end=82ce0000
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
SCRIPT FAILED: continuing...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk [email protected]...
Scanning disk [email protected]...
Scanning disk usb_mass_storage.lun0...
Found 6 disks
No EFI system partition
ERROR: invalid device tree
Trying load from sd card..
Device: FSL_SDHC
Manufacturer ID: 41
OEM: 3432
Name: ASTCBus Speed: 50000000
Mode: SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes

MMC read: dev # 0, block # 32768, count 81920 ... 81920 blocks read: OK
## Loading kernel from FIT Image at a0000000 ...
   Using 'lx2160acex7' configuration
   Trying 'kernel' kernel subimage
     Description:  ARM64 Kernel
     Created:      2022-06-09  10:04:53 UTC
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0xa00000d0
     Data Size:    15614354 Bytes = 14.9 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x80080000
     Entry Point:  0x80080000
     Hash algo:    crc32
     Hash value:   5d037c97
   Verifying Hash Integrity ... crc32+ OK
## Loading ramdisk from FIT Image at a0000000 ...
   Using 'lx2160acex7' configuration
   Trying 'initrd' ramdisk subimage
     Description:  initrd for arm64
     Created:      2022-06-09  10:04:53 UTC
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0xa0ee4344
     Data Size:    11535243 Bytes = 11 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00000000
     Entry Point:  0x00000000
     Hash algo:    crc32
     Hash value:   c150f71f
   Verifying Hash Integrity ... crc32+ OK
## Loading fdt from FIT Image at a0000000 ...
   Using 'lx2160acex7' configuration
   Trying 'lx2160acex7-dtb' fdt subimage
     Description:  lx2160acex7-dtb
     Created:      2022-06-09  10:04:53 UTC
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0xa19e47b4
     Data Size:    45111 Bytes = 44.1 KiB
     Architecture: AArch64
     Load Address: 0x90000000
     Hash algo:    crc32
     Hash value:   45113c35
   Verifying Hash Integrity ... crc32+ OK
   Loading fdt from 0xa19e47b4 to 0x90000000
   Booting using the fdt blob at 0x90000000
   Uncompressing Kernel Image
   Loading Device Tree to 000000009fff1000, end 000000009ffff036 ... OK
Releasing fan controller full speed gpio

fsl-mc: ERROR: Bad DPL image (bad header)
fsl-mc: DPL not deployed, DPAA2 ethernet not work
Error: Timeout waiting for MC response
dpbp_destroy() failed: -110
dpbp_exit() failed: -110

Starting kernel ...

"Synchronous Abort" handler, esr 0x02000000
elr: 000000000635d000 lr : 0000000082005e40 (reloc)
elr: 0000000080080000 lr : 00000000fbd28e40
x0 : 000000009fff1000 x1 : 0000000000000000
x2 : 0000000000000000 x3 : 0000000000000000
x4 : 0000000080080000 x5 : 0000000000000001
x6 : 0000000000000008 x7 : 0000000000000000
x8 : 00000000fbb1b1c0 x9 : 0000010000000000
x10: 000000000a200023 x11: 0000000000000002
x12: 0000000000000002 x13: 00000000000087a0
x14: 00000000fbb1b228 x15: 00000000fbd25c1c
x16: 000000000000001f x17: 0000000000000000
x18: 00000000fbb1ed80 x19: 00000000fbde67b0
x20: 0000000000000000 x21: 0000000000000000
x22: 0000000000000001 x23: 00000000fbb558f8
x24: 0000000000000001 x25: 00000000fbb558f8
x26: 00000000fbdcffc8 x27: 0000000000000001
x28: 00000000a00000d0 x29: 00000000fbd28e08

Code: 00000000 00000000 00000000 00000000 (00000000) 
Resetting CPU ...
@laf0rge
Copy link
Author

laf0rge commented Jun 21, 2022

somehow it looks like the above log still tries to load some stuff from SD.

Using slightly modified instructions I get a bit further:

=> wdt dev watchdog@23a0000
=> wdt stop
=> setenv bootargs arm-smmu.disable-bypass=0
=> usb start
starting USB...
Bus usb3@3100000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb3@3110000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@3100000 for devices... 1 USB Device(s) found
scanning bus usb3@3110000 for devices... 5 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
=> devnum=0; run usb_boot

Device 0: Vendor: Intenso  Rev: 1100 Prod: Rainbow Line    
            Type: Removable Hard Disk
            Capacity: 7620.0 MB = 7.4 GB (15605760 x 512)
... is now current device
Scanning usb 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
144 bytes read in 3 ms (46.9 KiB/s)
1:      Debian-Installer
Retrieving file: /initrd.gz
29271227 bytes read in 1694 ms (16.5 MiB/s)
Retrieving file: /vmlinuz
27535232 bytes read in 1613 ms (16.3 MiB/s)
Retrieving file: /dtbs/fsl-lx2160a-clearfog-cx.dtb
Failed to load '/dtbs/fsl-lx2160a-clearfog-cx.dtb'
Moving Image from 0x81100000 to 0x81200000, end=82ce0000
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
SCRIPT FAILED: continuing...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk [email protected]...
Scanning disk [email protected]...
Scanning disk usb_mass_storage.lun0...
Found 6 disks
No EFI system partition
ERROR: invalid device tree

So somehow the debian image is missing the dtb files? Strangely enough, http://debian.parspack.com/debian/dists/stable/main/installer-arm64/current/images/device-tree/freescale/ lists them...

@laf0rge
Copy link
Author

laf0rge commented Jun 21, 2022

mounting the USB drive showed that the dtb is in /dtbs/freescale and not in /dtbs where it is apparently expected. I've copied the file manually using cp dtbs/freescale/fsl-lx2160a-clearfog-cx.dtb dtbs/. This appears to make it boot, I'm now seeing the d-i user interface... until it crashes in some usb storage related code while detecting the network hardware

[   50.848946] Unable to handle kernel paging request at virtual address 0000000002000112
[   50.856861] Mem abort info:                                              │   
[   50.859652]   ESR = 0x96000004   
[   50.862701]   EC = 0x25: DABT (current EL), IL = 32 bits                     
[   50.868006]   SET = 0, FnV = 0                                               
[   50.871054]   EA = 0, S1PTW = 0                                              
[   50.874183] Data abort info:                                                 
[   50.877058]   ISV = 0, ISS = 0x00000004                                      
[   50.880885]   CM = 0, WnR = 0                                                
[   50.883848] user pgtable: 4k pages, 48-bit VAs, pgdp=000000208a703000        
[   50.890284] [0000000002000112] pgd=0000000000000000, p4d=0000000000000000    
[   50.897076] Internal error: Oops: 96000004 [#1] SMP                          
[   50.901943] Modules linked in: sd_mod t10_pi crc_t10dif crct10dif_common uas usb_storage scsi_mod xhci_plat_hcd xhci_hcd usbcore at803x xgmac_mdio dwc3 of_mdio sdhci_of_esdhc udc_core fixed_phy sdhci_pltfm libphy dpaa2_console roles ulpi sdhci usb_common spi_nxp_fspi fixed
[   50.926121] CPU: 1 PID: 737 Comm: usb-storage Not tainted 5.10.0-13-arm64 #1 Debian 5.10.106-1
[   50.934720] Hardware name: SolidRun LX2160A Clearfog CX (DT)
[   50.940369] pstate: 20000005 (nzCv daif -PAN -UAO -TCO BTYPE=--)
[   50.946371] pc : __pi_memcmp+0xd8/0x1c0
[   50.950205] lr : descriptors_changed+0x134/0x2bc [usbcore]
[   50.955679] sp : ffff8000113bbba0
[   50.958982] x29: ffff8000113bbba0 x28: 0000000000000000 
[   50.964285] x27: ffff6031019d1850 x26: 0000000000000000 
[   50.969587] x25: 0000000000000000 x24: 0000000000000000 
[   50.974889] x23: ffff60310972d900 x22: 0000000000000008 
[   50.985493] x19: ffff6031019d1800 x18: 00000000fffffffe 
[   50.990795] x17: 0000000000000000 x16: 0000000000000000 
[   50.996098] x15: 0000000000000020 x14: 6463682d69636878 
[   51.001399] x13: 20676e6973752034 x12: 0000000000000000 
[   51.006701] x11: 0000000000000008 x10: 0000000000000002 
[   51.012003] x9 : 0000000000000006 x8 : 0000000000000008 
[   51.017305] x7 : ffff91fbe33e0000 x6 : 0000000000000000 
[   51.022607] x5 : 0000000000000000 x4 : 0000000000000020 
[   51.027908] x3 : 0000000000000009 x2 : 0000000000000018 
[   51.033210] x1 : 4000000002000112 x0 : ffff60310972d901 
[   51.038517] Call trace:
[   51.038521]  __pi_memcmp+0xd8/0x1c0
[   51.038527]  usb_reset_and_verify_device+0x180/0x430 [usbcore]
[   51.038532]  usb_reset_device+0xf4/0x270 [usbcore]
[   51.038539]  usb_stor_port_reset+0x70/0x84 [usb_storage]
[   51.060349]  usb_stor_invoke_transport+0x258/0x7ec [usb_storage]
[   51.060351]  usb_stor_transparent_scsi_command+0x1c/0x30 [usb_storage]
[   51.060356]  usb_stor_control_thread+0x294/0x314 [usb_storage]
[   51.078692]  kthread+0x130/0x13c
[   51.078696]  ret_from_fork+0x10/0x38
[   51.078701] Code: eb09010a 9a89810b cb0b0042 38401403 (38401424) 
[   51.091563] ---[ end trace ca34e69be2530b40 ]---

@laf0rge
Copy link
Author

laf0rge commented Jun 22, 2022

ok, the kernel panic related to usb-storage seems to be some general USB instability that I'm seeing, also with many USB devices not beeing properly recognized, u-boot complaining about XHCI errors, etc. So I did manage to fully install bullseye with the modified image (copying the dtb as described above).

I don't have sufficient experince with distro-boot etc. to judge whose fault it is. Should the solid-run u-boot look for the file in a different path? should it try multiple paths before giving up? should the documentation simply be updated? I guess this needs input from @jnettlet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant