USB mass storage gadget on SAMA5D2

Cristian.Birsan at microchip.com Cristian.Birsan at microchip.com
Thu May 25 19:16:07 CEST 2023


Hi,

On 5/22/23 12:00, admin LI wrote:
> 	
> 
> I think there may be some racing in the driver. (Purely assumption as a tinyusb maintainer)
> If I enable DBG_ALL in atmel_usba_udc.h, the block device is enermurated although with I/O error.

What are you trying to achieve ? If you want to just program the eMMC you can do it easily with SAM-BA[1].

The mass storage gadget works well in Linux kernel. You can have a look at the driver we have in the kernel
here[2].


[1] https://www.microchip.com/en-us/development-tool/SAM-BA-In-system-Programmer
[2] https://github.com/linux4microchip/linux/blob/linux-6.1-mchp/drivers/usb/gadget/udc/atmel_usba_udc.c

Regards,
Cristian

> 
> [1337613.189788] usb 1-1: new high-speed USB device number 7 using xhci_hcd
> [1337613.674551] usb 1-1: New USB device found, idVendor=dead, idProduct=beef, bcdDevice= 2.17
> [1337613.674565] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
> [1337613.674568] usb 1-1: Product: USB download gadget
> [1337613.674572] usb 1-1: Manufacturer: U-Boot
> [1337613.866033] usb-storage 1-1:1.0: USB Mass Storage device detected
> [1337613.866645] scsi host0: usb-storage 1-1:1.0
> [1337614.997803] scsi 0:0:0:0: Direct-Access     Linux    UMS disk 0       ffff PQ: 0 ANSI: 2
> [1337615.230004] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337615.706637] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337616.183308] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337616.659937] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337617.140086] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337617.616632] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337618.073323] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337618.549927] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337619.026540] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337619.499944] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337619.976679] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337620.453285] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337620.916597] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337621.393267] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337621.869676] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337622.346597] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337622.823361] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337623.293287] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337623.635357] sd 0:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
> [1337623.635369] sd 0:0:0:0: [sda] Sense not available.
> [1337623.635376] sd 0:0:0:0: [sda] 0 512-byte logical blocks: (0 B/0 B)
> [1337623.635379] sd 0:0:0:0: [sda] 0-byte physical blocks
> [1337623.756597] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337624.233274] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337624.709945] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337625.186639] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337625.663266] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337626.136617] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337626.478078] sd 0:0:0:0: [sda] Write Protect is off
> [1337626.478088] sd 0:0:0:0: [sda] Mode Sense: 00 00 00 00
> [1337626.599928] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337627.076606] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337627.553276] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337628.029936] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337628.499858] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337628.973267] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337629.313846] sd 0:0:0:0: [sda] Asking for cache data failed
> [1337629.313861] sd 0:0:0:0: [sda] Assuming drive cache: write through
> [1337629.314517] sd 0:0:0:0: [sda] Attached SCSI removable disk
> [1337629.436603] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337629.906353] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337630.373268] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337630.843284] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337631.306595] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337631.783253] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337632.259935] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337632.736612] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337633.213283] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337633.689933] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337634.146549] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337634.626586] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337635.096677] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337635.569893] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337636.043195] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337636.519877] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337636.993235] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337637.463216] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337637.926268] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337638.403221] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337638.879961] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337639.343221] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337639.813267] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337640.293319] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337640.756596] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337641.233227] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337641.709903] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337642.183232] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337642.649871] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337643.123263] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337643.586595] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337644.063281] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337644.539952] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337645.016640] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337645.493347] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337645.969975] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337646.433307] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337646.906317] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337647.366610] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337647.836558] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337648.309969] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337648.773280] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337649.243256] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337649.723285] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337650.199907] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337650.663212] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337651.139885] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337651.613205] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337652.878455] sd 0:0:0:0: [sda] 7471104 512-byte logical blocks: (3.83 GB/3.56 GiB)
> [1337653.056594] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337653.533299] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337654.009932] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337654.486656] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337654.963248] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337655.439945] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337655.903277] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337656.379957] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337656.853260] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337657.326598] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337657.803280] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337658.279946] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337658.620594] sda: detected capacity change from 0 to 7471104
> [1337658.743259] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337659.213281] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337659.689931] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337660.169887] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337660.639886] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337661.113316] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337661.576555] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337662.046598] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337662.523268] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337662.999945] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337663.479877] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337663.956609] usb 1-1: reset high-speed USB device number 7 using xhci_hcd
> [1337664.294581] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK cmd_age=2s
> [1337664.294593] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
> [1337664.294597] I/O error, dev sda, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
> [1337664.294611] Buffer I/O error on dev sda, logical block 0, async page read
> 
> 
> => ums 0 mmc 0
> UMS: LUN 0, dev mmc 0, hwpart 0, sector 0x0, count 0x720000
> udc: ep_alloc_request: 2fb6ee28, 0x0
> udc: irq, status=0x000022
> udc: Suspend detected
> udc: Wake Up CPU detected
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000000
> udc: irq, status=0x000020
> udc: Wake Up CPU detected
> udc: irq, status=0x000011
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [0]: s/80855000 c/00001001
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 18
> udc: req 80.06, length 64, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/00014000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 18), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 18), done
> udc: ep0 [1]: s/01254800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/00000040 c/00000001
> udc: irq, status=0x000031
> udc: Wake Up CPU detected
> udc: ep0: req 2fb740f8 complete: status -104, actual 18
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000001
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000029
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000129
> udc: Wake Up CPU detected
> udc: ep0 [0]: s/80845000 c/00001001
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: setting address 2...
> udc: req 00.05, length 0, state 5, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [5]: s/00004400 c/00001401
> udc: ep0 [0]: s/00004000 c/00001001
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [0]: s/80855000 c/00001001
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 18
> udc: req 80.06, length 18, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/00014000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 18), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 18), done
> udc: ep0 [1]: s/01254800 c/00001401
> udc: irq, status=0x000129
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8085d400 c/00001401
> udc: ep0 [4]: s/8085d000 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 18
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 9
> udc: req 80.06, length 9, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/0001c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 9), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 9), done
> udc: ep0 [1]: s/0095c800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8085d400 c/00001401
> udc: ep0 [4]: s/8085d000 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 9
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 32
> udc: req 80.06, length 32, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/0001c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 32), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 32), done
> udc: ep0 [1]: s/0205c800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8085d400 c/00001401
> udc: ep0 [4]: s/8085d000 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 32
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 4
> udc: req 80.06, length 255, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/0001c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 4), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 4), done
> udc: ep0 [1]: s/0045c800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8085d400 c/00001401
> udc: ep0 [4]: s/8085d000 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 4
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 40
> udc: req 80.06, length 255, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/0001c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 40), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 40), done
> udc: ep0 [1]: s/0285c800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8085d400 c/00001401
> udc: ep0 [4]: s/8085d000 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 40
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 14
> udc: req 80.06, length 255, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/0001c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 14), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 14), done
> udc: ep0 [1]: s/00e5c800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8084d400 c/00001401
> udc: ep0 [4]: s/8084d000 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 14
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 0
> udc: req 00.09, length 0, state 3, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [3]: s/0000c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 0), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 0), done
> udc: ep0 [3]: s/0004c800 c/00001401
> udc: ep1: ep_enable: desc=2ffe5ca0
> udc: ep1: EPT_SIZE = 6 (maxpacket = 512)
> udc: EPT_CFG1 after init: 0x8000006e
> udc: INT_ENB after init: 0x000352
> udc: ep2: ep_enable: desc=2ffe5ca9
> udc: ep2: EPT_SIZE = 6 (maxpacket = 512)
> udc: EPT_CFG2 after init: 0x80000066
> udc: INT_ENB after init: 0x000752
> udc: ep_alloc_request: 2fb6ee78, 0x0
> udc: ep_alloc_request: 2fb6eec8, 0x0
> udc: ep_alloc_request: 2fb6ee78, 0x0
> udc: ep_alloc_request: 2fb6eec8, 0x0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [3]: s/8085d400 c/00001401
> udc: ep0: req 2fb740f8 complete: status 0, actual 0
> udc: ep0 [0]: s/8085d000 c/00001001
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 40
> udc: req 80.06, length 255, state 1, ret 0
> udc: ep2: queue req 2fb75ef0, len 512
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/0001c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 40), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 40), done
> udc: ep0 [1]: s/0285c800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8085d400 c/00001401
> udc: ep0 [4]: s/8085d000 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 40
> udc: Packet length: 8
> udc: Copying ctrl request from 0x00300000:
> udc: ep0: queue req 2fb740f8, len 26
> udc: req 80.06, length 255, state 1, ret 0
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/0001c000 c/00001801
> udc: ep0: submit_request: req 2fb740f8 (length 26), dma: 0
> udc: ep0: submit_transaction, req 2fb740f8 (length 26), done
> udc: ep0 [1]: s/01a5c800 c/00001401
> udc: irq, status=0x000125
> udc: Wake Up CPU detected
> udc: ep0 [1]: s/8005c640 c/00001401
> udc: ep0 [4]: s/8005c240 c/00001201
> udc: ep0: req 2fb740f8 complete: status 0, actual 26
> udc: ep0 [0]: s/0001c040 c/00001001
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> udc: irq, status=0x000025
> udc: Wake Up CPU detected
> 
> On Sun, May 21, 2023 at 9:09 AM Eugen Hristev <eugen.hristev at collabora.com <mailto:eugen.hristev at collabora.com>> wrote:
> 
>     Hi,
> 
>     I believe someone from Microchip have tried this before
>     Some people in CC added
> 
>     You can also open a case on support.microchip.com <http://support.microchip.com>
> 
>     Eugen
> 
>     On 5/19/23 23:18, admin LI wrote:
>      > Hi,
>      >
>      > I'm trying to use ums to access EMMC on our SAMA5D2 board without success.
>      >
>      > My board_init(), without adding usba_udc_probe() ums will cause data abort
>      > error:
>      > int board_init(void)
>      > {
>      > /* address of boot parameters */
>      > gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
>      >
>      > #ifdef CONFIG_USB_GADGET_ATMEL_USBA
>      > at91_udp_hw_init();
>      > usba_udc_probe(&pdata);
>      > #endif
>      >
>      > return 0;
>      > }
>      >
>      > USB related config:
>      > CONFIG_USB=y
>      > CONFIG_USB_EHCI_HCD=y
>      > CONFIG_USB_STORAGE=y
>      > CONFIG_USB_GADGET=y
>      > CONFIG_USB_GADGET_VENDOR_NUM=0xdead
>      > CONFIG_USB_GADGET_PRODUCT_NUM=0xbeef
>      > CONFIG_USB_GADGET_ATMEL_USBA=y
>      > CONFIG_USB_GADGET_VBUS_DRAW=500
>      > CONFIG_USB_GADGET_DOWNLOAD=y
>      > CONFIG_USB_ETHER=y
>      >
>      > EMMC can be successfully accessed, Linux boot is ok:
>      > => mmc list
>      > sdio-host at a0000000: 0 (eMMC)
>      >
>      > => mmc info
>      > Device: sdio-host at a0000000
>      > Manufacturer ID: 70
>      > OEM: 100
>      > Name: M6270
>      > Bus Speed: 52000000
>      > Mode: MMC High Speed (52MHz)
>      > Rd Block Len: 512
>      > MMC version 5.1
>      > High Capacity: Yes
>      > Capacity: 3.6 GiB
>      > Bus Width: 4-bit
>      > Erase Group Size: 512 KiB
>      > HC WP Group Size: 4 MiB
>      > User Capacity: 3.6 GiB
>      > Boot Capacity: 2 MiB ENH
>      > RPMB Capacity: 512 KiB ENH
>      > Boot area 0 is not write protected
>      > Boot area 1 is not write protected
>      >
>      > => mmc part
>      >
>      > Partition Map for MMC device 0  --   Partition Type: DOS
>      >
>      > Part    Start Sector    Num Sectors     UUID            Type
>      >    1     2048            1044480         0508e2bf-01     83
>      >
>      > However, when I use "ums 0 mmc 0", the USB device is partially enumerated
>      > without a block device available, in the console the rotation cursor spins
>      > about 20s then USB is disconnected.
>      >
>      > On u-boot:
>      > => ums 0 mmc 0
>      > UMS: LUN 0, dev mmc 0, hwpart 0, sector 0x0, count 0x720000
>      > -=> (self-exit after 20s)
>      >
>      > On Linux:
>      > [  699.920316] usb 3-5: new high-speed USB device number 5 using xhci_hcd
>      > [  700.060766] usb 3-5: New USB device found, idVendor=dead,
>      > idProduct=beef, bcdDevice= 2.17
>      > [  700.060772] usb 3-5: New USB device strings: Mfr=1, Product=2,
>      > SerialNumber=0
>      > [  700.060774] usb 3-5: Product: USB download gadget
>      > [  700.060776] usb 3-5: Manufacturer: U-Boot
>      > [  700.081573] usb-storage 3-5:1.0: USB Mass Storage device detected
>      > [  700.081780] scsi host0: usb-storage 3-5:1.0
>      > [  700.081874] usbcore: registered new interface driver usb-storage
>      > [  700.088339] usbcore: registered new interface driver uas
>      > [  722.407008] usb 3-5: USB disconnect, device number 5
>      >
>      >
>      > Thanks,
> 



More information about the U-Boot mailing list