• Resolved

Linux/AM3354: U-boot showing data abort error

Part Number: AM3354

Tool/software: Linux

I running the Kernel version 4.9.28 and uboot 2017.1 in the custom board which design is similar to beagle-bone black, kernel is not booting. U-boot is booting with some warnings, kindly check the logs stated below.

U-Boot SPL 2017.01-00319-g7752743-dirty (Sep 22 2017 - 10:28:50)
tps65217: Set UVLO
Trying to boot from MMC1
spl: falcon_args_file not set in environment, falling back to default
reading args
spl_load_image_fat_os: error reading image args, err - -1
reading u-boot.img
reading u-boot.img


U-Boot 2017.01-00319-g7752743-dirty (Sep 22 2017 - 10:28:50 +0530)

CPU  : AM335X-GP rev 2.1
I2C:   ready
DRAM:  512 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
** First descriptor is NOT a primary desc on 1:1 **
Net:   <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Error: usb_ether address not set.

Press SPACE to abort autoboot in 2 seconds
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
3051 bytes read in 154 ms (18.6 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...

I tried running below commands to boot zimage:

1. Press SPACE to abort autoboot in 2 seconds
=> run mmcboot
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
3051 bytes read in 154 ms (18.6 KiB/s)
Loaded environment from uEnv.txt
Importing environment from mmc ...
(Note:not going forward after this)
2. Press SPACE to abort autoboot in 2 seconds
=> go 0x80200000
## Starting application at 0x80200000 ...
undefined instruction
pc : [<801ff000>]          lr : [<80200004>]
reloc pc : [<60aac000>]    lr : [<60aad004>]
sp : 9df32d78  ip : 0000001c     fp : 00000002
r10: 9ffa0b58  r9 : 9df32ed8     r8 : 9df360c8
r7 : 9ff5450d  r6 : 00000002     r5 : 80200000  r4 : 9df360cc
r3 : 80200000  r2 : 9df360cc     r1 : 9df360cc  r0 : 00000001
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32
Resetting CPU ...

resetting ...
(Note:not going forward after this)
Please find the attached uEnv file.
  • Hi,
    if your custom board is similar to BBB, can you try to boot the BBB's uboot and kernel binaries on your custom board? Share your observations.

    thanks,
    Prabhuraj
    BlackPepper Technologies

    http://www.blackpeppertech.com/

  • In reply to prabhuraj tavag20:

    Hi,
    I tried the BBB's binaries, it is showing nothing . Even uboot is not booting. The binaries i tried is working in BBB.
  • In reply to madhu sundar:

    In the same board, 3.14 kernel is running properly. Now i want to upgrade it to 4.9.28. In 3.14 kernel the loadaddr is 0x80200000. So address should be correct.
  • In reply to madhu sundar:

    Press SPACE to abort autoboot in 2 seconds
    => loadx
    ## Ready for binary (xmodem) download to 0x80200000 at 115200 bps...
    C mode, 30847(SOH)/0(STX)/0(CAN) packets, 1 retries
    ## Total Size = 0x003c3f50 = 3948368 Bytes
    => go 0x80200000
    ## Starting application at 0x80200000 ...

    I loaded kernel via xmodem, now the data abort error is not coming. But kernel is hanging after starting kernel

    => bootz

    Starting kernel ...
  • In reply to madhu sundar:

    Have you loaded the fdt at address 0x88000000?
  • In reply to Kemal R. Shakir:

    I loaded via xmodem, it is taking only loadaddr(0x80200000). How i can load fdt addr via xmodem. Tftp booting is not available in my board.
  • In reply to madhu sundar:

    See the usage, there is an offset which can be changed.

    => help loadx
    loadx - load binary file over serial line (xmodem mode)

    Usage:
    loadx [ off ] [ baud ]
    - load binary file over serial line with offset 'off' and baudrate 'baud'
  • In reply to Kemal R. Shakir:

    Thank you for ur response. It is helpful for me upload dtb via xmodem.

    But still it seems like, it is not accepting the dts. I tried with am335x_boneblack.dtb and the custom board dts file(which is working fine in 3.14 kernel).

    => bootz

    Starting kernel ...


    Error: unrecognized/unsupported machine ID (r1 = 0x0000157d).

    Available machine support:

    ID (hex) NAME
    ffffffff Generic DT based system
    ffffffff Generic DRA72X (Flattened Device Tree)
    ffffffff Generic DRA74X (Flattened Device Tree)
    ffffffff Generic AM43 (Flattened Device Tree)
    ffffffff Generic OMAP5 (Flattened Device Tree)
    ffffffff Generic OMAP4 (Flattened Device Tree)
    ffffffff Generic AM33XX (Flattened Device Tree)
    ffffffff Generic ti816x (Flattened Device Tree)
    ffffffff Generic ti814x (Flattened Device Tree)
    ffffffff Generic AM3517 (Flattened Device Tree)
    ffffffff Generic OMAP3-GP (Flattened Device Tree)
    ffffffff Generic OMAP36xx (Flattened Device Tree)
    ffffffff Generic OMAP3 (Flattened Device Tree)
    ffffffff Nokia RX-51 board
    ffffffff Generic OMAP2430 (Flattened Device Tree)
    ffffffff Generic OMAP2420 (Flattened Device Tree)

    Please check your kernel config and/or bootloader.

    As in theory Device Tree files should work across kernel versions, it is very likely that your 3.14 Device Tree file simply won't work as-is with Linux 4.9, i have to adjust it. But unable to get how to modify it.. Can u please help.
  • In reply to madhu sundar:

    You are not passing the fdt address to bootz command. Please, try this line.
    bootz ${loadaddr} - ${fdtaddr}

  • In reply to Kemal R. Shakir:

    Press SPACE to abort autoboot in 2 seconds
    => bootz 0x80200000 - 0x88000000
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    reserving fdt memory region: addr=88000000 size=9000
    Using Device Tree in place at 88000000, end 8800bfff

    Starting kernel ...

    After few seconds, it is restarting automatically. It is hanging in Starting kernel, i tried enabling earlyprintk. please suggest.