How to debug u-boot data abort

qianfan qianfanguijin at 163.com
Wed Mar 23 08:45:56 CET 2022


在 2022/3/23 10:28, qianfan 写道:
>
> Hi:
>
> I had a custom AM335X board connected my computer by usbnet. It always report 
> data abort when 'dhcp':
>
> Next it the log:
>
> U-Boot 2022.01-rc1-00183-gfa5b4e2d19-dirty (Feb 25 2022 - 15:45:02 +0800)
>
> CPU  : AM335X-GP rev 2.1
> Model: WISDOM AM335X CCT
> DRAM:  512 MiB
> NAND:  256 MiB
> MMC:   OMAP SD/MMC: 0
> Loading Environment from NAND... *** Warning - bad CRC, using default environment
>
> Net:   Could not get PHY for ethernet at 4a100000: addr 0
> eth2: ethernet at 4a100000, eth3: usb_ether
> Hit any key to stop autoboot:  0
> => setenv autoload no
> => dhcp
> using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
> MAC de:ad:be:ef:00:01
> HOST MAC de:ad:be:ef:00:00
> RNDIS ready
> musb-hdrc: peripheral reset irq lost!
> high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
> USB RNDIS network up!
> BOOTP broadcast 1
> BOOTP broadcast 2
> BOOTP broadcast 3
> DHCP client bound to address 192.168.200.4 (757 ms)
> data abort
> pc : [<9fe9b0a2>]          lr : [<9febbc3f>]
> reloc pc : [<808130a2>]    lr : [<80833c3f>]
> sp : 9de53410  ip : 9de53578     fp : 00000001
> r10: 9de5345c  r9 : 9de67e80     r8 : 9febbae5
> r7 : 9de72c30  r6 : 9feec710     r5 : 0000000d  r4 : 00000018
> r3 : 3fdd8e04  r2 : 00000002     r1 : 9feec728  r0 : 9feec700
> Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32 (T)
> Code: f023 0303 60ca 4403 (6091) 685a
> Resetting CPU ...
>
> resetting ...
>
>
> It's there has any doc about how to debug data abort? Or is the bug is already 
> fixed?
>
> Thanks
>
This bug doesn't fixed on master code. I found v2021.01 is good and v2021.04-rc2 
is bad.

Also I had tested this on beaglebone black with am335x_evm_defconfig, has the 
simliar problem.

find the first bug commit via 'git bisect': it told me that commit 
e97eb638de0dc8f6e989e20eaeb0342f103cb917 broke it. But it is very strange due to 
this commit doesn't touch any dhcp or network code.

➜  u-boot-main git:(e97eb638de) ✗ git bisect bug
e97eb638de0dc8f6e989e20eaeb0342f103cb917 is the first bug commit
commit e97eb638de0dc8f6e989e20eaeb0342f103cb917
Author: Heinrich Schuchardt <xypron.glpk at gmx.de>
Date:   Wed Jan 20 22:21:53 2021 +0100

     fs: fat: consistent error handling for flush_dir()

     Provide function description for flush_dir().
     Move all error messages for flush_dir() from the callers to the function.
     Move mapping of errors to -EIO to the function.
     Always check return value of flush_dir() (Coverity CID 316362).

     In fat_unlink() return -EIO if flush_dirty_fat_buffer() fails.

     Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>

:040000 040000 2281a449f2d134078d7faa1ee735a367b55aad7e 
77d188b1c99181fd71f2167fdeee3434a09db209 M      fs


184aa6504143b452132e28cd3ebecc7b941cdfa1 is the first commit before 
e97eb638de0dc8f6e989e20eaeb0342f103cb917:

* e97eb638de0dc8f6e989e20eaeb0342f103cb917 fs: fat: consistent error handling 
for flush_dir()
*   184aa6504143b452132e28cd3ebecc7b941cdfa1 Merge tag 
'u-boot-rockchip-20210121' of 
https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip
|\
| * 9ddc0787bd660214366e386ce689dd78299ac9d0 pci: Add Rockchip dwc based PCIe 
controller driver

I checked 184aa6504143b452132e28cd3ebecc7b941cdfa1 can work fine.

U-Boot 2021.01-00688-g184aa65041-dirty (Mar 23 2022 - 15:07:56 +0800)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM:  512 MiB
WDT:   Started with servicing (60s timeout)
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from FAT... <ethaddr> not set. Validating first E-fuse MAC
Net:   eth2: ethernet at 4a100000, eth3: usb_ether
Hit any key to stop autoboot:  0
=> dhcp
ethernet at 4a100000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC de:ad:be:ef:00:01
HOST MAC de:ad:be:ef:00:00
RNDIS ready
musb-hdrc: peripheral reset irq lost!
high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
USB RNDIS network up!
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
DHCP client bound to address 192.168.200.157 (757 ms)
Using usb_ether device
TFTP from server 192.168.200.1; our IP address is 192.168.200.157
Filename 'u-boot.img'.
Load address: 0x82000000
Loading: #################################################################
#################################################################
#################################################################
          #########################
          2.5 MiB/s
done
Bytes transferred = 1123888 (112630 hex)
=>


More information about the U-Boot mailing list