Data abort when starting DFU on SAMA5D2

Alexis Lothoré alexis.lothore at bootlin.com
Tue Aug 1 09:09:18 CEST 2023


Hi,
I am currently using an ATSAMA5D27-WLSOM1-EK1. This boards embeds an
ATSAMA5D27-WLSOM1, which in turns holds an ATSAMA5D27 and a 8MB QSPI flash. I
have been wanting to program u-boot in the QSPI flash thanks to DFU, since the
board is able to boot from QSPI and is supported in uboot. To do so, I have
executed the following steps:
- check out recent uboot version (2023.07.02, but issed described below is
observed on master too)
- load sama5d27_wlsom1_ek_qspiflash_defconfig
- tune the configuration to enable DFU:
  - CONFIG_CMD_DFU=y
  - CONFIG_DFU_SF=y
  - CONFIG_USB_GADGET_DOWNLOAD=y
- build uboot, upload and run it onto external ram thanks to snagrecover ([1]).
  - running "bdinfo" shows that board is properly defined/recognized
  - "sf probe" properly detects the qspi flash chip
- in u-boot console, configure dfu:
  - setenv dfu_alt_info uboot raw 0 0x80000
- start DFU:
  - dfu 0 sf 2:0

Unfortunately, this step systematically and immediately leads to a data abort
with the following log:

=> dfu 0 sf 2:0
data abort
pc : [<2fda9ee0>]	   lr : [<2fd8dc08>]
reloc pc : [<26f3fee0>]lr : [<26f23c08>]
sp : 2f963fe8  ip : 2f9829cc	 fp : 00000000
r10: 2fde1cd9  r9 : 2f969e80	 r8 : 2fdfc304
r7 : 00000000  r6 : 00000000	 r5 : 2fdf3034  r4 : 2f982948
r3 : 0a299cfc  r2 : ffffffec	 r1 : 00000000  r0 : 00000000
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Code: e5843058 e5950004 e3a01000 e5903008 (e5933008)
Resetting CPU ...

resetting ...
System reset not supported on this platform
### ERROR ### Please RESET the board ###

A quick translation with addr2line shows that the data abort occurs in
include/linux/usb/gagdet.h, in usb_ep_alloc_request, likely because of ep being
NULL, which seems confirmed by adding some custom logs in both
usb_ep_alloc_request and its caller (composite_bind). Before digging further,
does anyone have successfully used DFU on SAMA5D2 boards (and if so, am I
missing something in the configuration) ? Or does this data abort show that some
support is still missing to make it work for SAMA5D2 ?

Kind regards,
Alexis

[1] https://github.com/bootlin/snagboot
-- 
Alexis Lothoré, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the U-Boot mailing list