"Synchronous abort handler" when trying to boot a FIT image

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

"Synchronous abort handler" when trying to boot a FIT image

Jump to solution
3,177 Views
jclsn
Contributor IV

I am trying to boot a FIT image using this guide

https://www.thegoodpenguin.co.uk/blog/u-boot-fit-image-overview/

Before I was booting the individual components using these commands

setenv load_recovery "fatload usb 0  0x43100000  vti2/uramdisk-recovery.img"          
setenv load_kernel "fatload usb 0  0x40480000 vti2/uImage"                            
setenv load_fdt "fatload usb 0  0x43000000 vti2/imx8mm-gpv-distec.dtb"                
setenv bootargs "console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200 vt.global
_cursor_default=0 init=/init androidboot.console=ttymxc1 androidboot.hardware=freesca
le androidboot.slot_suffix=_a cma=$(CMASIZE)@0x400M-0xb80M androidboot.primary_displa
y=imx-drm firmware_class.path=/vendor/firmware transparent_hugepage=never loop.max_pa
rt=7 androidboot.selinux=permissive"                                                  
bootm 0x40480000 0x43100000 0x43000000

But when I try to boot the FIT image. I get the following errors

u-boot=> usb start
starting USB...
USB0:   Port not available.
USB1:   USB EHCI 1.00
scanning bus 1 for devices... Warning using limited usb xfer size 1024  
3 USB Device(s) found
      scanning usb for storage devices... 1 Storage Device(s) found
u-boot=> fatload usb 0 0x48000000 vti2/fitImage.itb
42324500 bytes read in 1880 ms (21.5 MiB/s)
u-boot=> setenv bootargs "console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200
vt.global_cursor_default=0 init=/init androidboot.console=ttymxc1 androidboot.hardwar
e=freescale androidboot.slot_suffix=_a cma=$(CMASIZE)@0x400M-0xb80"
u-boot=> bootm 0x48000000
## Loading kernel from FIT Image at 48000000 ...
  Using 'standard' configuration
  Trying 'kernel' kernel subimage
    Description:  Linux kernel
    Type:         Kernel Image
    Compression:  uncompressed
    Data Start:   0x480000e4
    Data Size:    32283200 Bytes = 30.8 MiB
    Architecture: ARM
    OS:           Linux
    Load Address: 0x40480000
    Entry Point:  0x40480000
    Hash algo:    sha1
    Hash value:   774ba6b6e1d76478242a0a87b09590010d6e1c97
  Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 48000000 ...
  Using 'standard' configuration
  Trying 'ramdisk' ramdisk subimage
    Description:  Ramdisk recovery
    Type:         RAMDisk Image
    Compression:  uncompressed
    Data Start:   0x49ed4324
    Data Size:    9996694 Bytes = 9.5 MiB
    Architecture: ARM
    OS:           Linux
    Load Address: unavailable
    Entry Point:  unavailable
    Hash algo:    sha1
    Hash value:   a66cbed6824951d063ac6be6c57169c2e1ad6ac6
  Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 48000000 ...
  Using 'standard' configuration
  Trying 'fdt' fdt subimage
    Description:  Flattened Device Tree blob
    Type:         Flat Device Tree
    Compression:  uncompressed
    Data Start:   0x49ec9c14
    Data Size:    42552 Bytes = 41.6 KiB
    Architecture: ARM
    Load Address: 0x43000000
    Hash algo:    sha1
    Hash value:   3396cba80b2e855d2042c5dd49d4ff93160be866
  Verifying Hash Integrity ... sha1+ OK
  Loading fdt from 0x49ec9c14 to 0x43000000
  Booting using the fdt blob at 0x43000000
  Loading Kernel Image ... OK
  Using Device Tree in place at 0000000043000000, end 000000004300d637

Starting kernel ...

"Synchronous Abort" handler, esr 0x02000000
elr: ffffffffc07d4000 lr : 0000000040201808 (reloc)
elr: 0000000040480000 lr : 00000000bfead808
x0 : 0000000000000000 x1 : 0000000000000000
x2 : 0000000043000000 x3 : 0000000000000000
x4 : 0000000040480000 x5 : 0000000000000000
x6 : 0000000000000008 x7 : 0000000000000000
x8 : 00000000bff3efe8 x9 : 0000000000000002
x10: 000000000a200023 x11: 0000000000000002
x12: 0000000000000002 x13: 000000003249e3c6
x14: 00000011de027011 x15: 00000000bfead388
x16: 000000a63a98e0a6 x17: b7e469ae0b2e855d
x18: 00000000b9eabda0 x19: 00000000bffae798
x20: 0000000000000000 x21: 00000000ba032d18
x22: 0000000000000001 x23: 00000000ba032d18
x24: 0000000000000000 x25: 00000000bff9f7a0
x26: 00000000480000e4 x27: 00000000bfeadc60
x28: 0000000040480000 x29: 00000000b9ea41d0

Resetting CPU ...

resetting ...

Here is the Image Tree Source that I use. I already tried setting 0x43100000 and 0x44000000 as load address for the ramdisk, but with no success.

/dts-v1/;                                                                             
/ {                                                                                   
   description = "Image with single Linux kernel, ramdisk and FDT blob";             
   #address-cells = <1>;                                                             
   images {                                                                          
       kernel {                                                                      
           description = "Linux kernel";                                             
           data = /incbin/("./uImage");                                              
           type = "kernel";                                                          
           arch = "arm";                                                             
           os = "linux";                                                             
           compression = "none";                                                     
           load = <0x40480000>;                                                      
           entry = <0x40480000>;                                                     
           hash {                                                                    
               algo = "sha1";                                                        
           };                                                                        
       };                                                                            
       fdt {                                                                         
           description = "Flattened Device Tree blob";                               
           data = /incbin/("./imx8mm-gpv-distec.dtb");                               
           type = "flat_dt";                                                         
           arch = "arm";                                                             
           load = <0x43000000>;                                                      
           entry = <0x43000000>;                                                     
           compression = "none";                                                     
           hash {                                                                    
               algo = "sha1";                                                        
           };                                                                        
       };                                                                            
       ramdisk {                                                                     
           description = "Ramdisk recovery";                                         
           data = /incbin/("./ramdisk-recovery.img");                                
           type = "ramdisk";                                                         
           arch = "arm";                                                             
           os   = "linux";                                                           
           compression = "none";                                                     
           hash {                                                                    
               algo = "sha1";                                                        
           };                                                                        
       };                                                                            
   };                                                                                
   /* a notable concept of FIT, “configurations” */                                  
   configurations {                                                                  
       default = "standard";                                                         
       standard {                                                                    
           description = "Boot Linux kernel with recovery-ramdisk.img and FDT blob";
           kernel = "kernel";                                                        
           fdt = "fdt";                                                              
           ramdisk = "ramdisk";                                                      
       };                                                                            
   };                                                                                
};                                            

0 Kudos
1 Solution
3,142 Views
jclsn
Contributor IV

I just found my mistakes. I used the uImage instead of the standard image. I also used arm instead of arm64.

View solution in original post

0 Kudos
2 Replies
3,143 Views
jclsn
Contributor IV

I just found my mistakes. I used the uImage instead of the standard image. I also used arm instead of arm64.

0 Kudos
3,174 Views
jclsn
Contributor IV

This was my fifth try to post this. Something seems to be broken in the forum. It seems to only work when I clear all formatting before hitting POST.

0 Kudos