USB mass storage gadget on SAMA5D2

admin LI admin at hifiphile.com
Fri May 26 16:40:13 CEST 2023


Hi Mihai,

Thanks for your reply, although it's meaningless.

As I said, what we need is block level access to eMMC, in order to modify
partition table or access files of rootfs, SAM-BA can't do it.

Besides SAM-BA can only be launched when eMMC is empty, no way to launch
SAM-BA from u-Boot unless erase bootstrap.

I've also tested with a SD card on SAMA5D27-WLSOM1-EK, which failed with
the same symptom (support case 01275010)
To reduce unknown factors we can use this platform for testing.

Regards,
Zixun

On Fri, May 26, 2023 at 3:20 PM <Mihai.Sain at microchip.com> wrote:

> Hi Zixun,
>
> I recommend to use sam-ba in order to flash the eMMC partitions: boot1,
> boot2, user0.
> sam-ba download links:
>
> https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/SoftwareLibraries/Firmware/sam-ba_v3.7-linux_x86_64.tar.gz
>
> https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/SoftwareLibraries/Firmware/sam-ba_v3.7-win32.zip
>
> For writing the bootstrap binary into boot1 partition, run the following
> command:
>
> sam-ba -p serial -d sama5d2:0:1 -a sdmmc:0:1:1:8:4 -c writeboot:boot.bin
> -c enablebootpartition:1
>
> For help please run:
>
> sam-ba -p serial -d sama5d2 -a sdmmc:help
>
> Syntax:
> sdmmc:[<instance>]:[<ioset>]:[<partition>]:[<bus_width>]:[<voltages>]
> Parameters:
>     instance   SDMMC controller number
>     ioset      SDMMC I/O set
>     partition  Partition number (0=user partition, x>0=boot partition x)
>     bus_width  Data bus width (0=controller max, 1=1-bit, 4=4-bit, 8=8-bit)
>     voltages   Supported voltages (bitfield: 1=1.8V, 2=3.0V, 4=3.3V)
>
> Regards,
> Mihai
>
>
> ------------------------------
> *From:* admin LI <admin at hifiphile.com>
> *Sent:* Friday, May 26, 2023 15:13
> *To:* Cristian Birsan - M91496 <Cristian.Birsan at microchip.com>
> *Cc:* eugen.hristev at collabora.com <eugen.hristev at collabora.com>;
> lukma at denx.de <lukma at denx.de>; marex at denx.de <marex at denx.de>;
> u-boot at lists.denx.de <u-boot at lists.denx.de>; Mihai Sain - M19926 <
> Mihai.Sain at microchip.com>
> *Subject:* Re: USB mass storage gadget on SAMA5D2
>
> You don't often get email from admin at hifiphile.com. Learn why this is
> important <https://aka.ms/LearnAboutSenderIdentification>
> EXTERNAL EMAIL: Do not click links or open attachments unless you know
> the content is safe
> Hi Cristian,
>
> > What are you trying to achieve ? If you want to just program the eMMC
> you can do it easily with SAM-BA[1].
> On our board the MPU boot from the eMMC boot partition, by exposing the
> whole user partition as a block device we can modify the target system
> easily, like modifying the partition table.
>
> I've tested the gadget works well in Linux, but it's not possible to
> expose the whole disk.
>
> For reference I've implemented at91bootstrap eMMC boot partition support,
> both at91bootstrap and U-Boot are inside the boot partition.
> https://github.com/linux4sam/at91bootstrap/pull/163
> https://github.com/linux4sam/at91bootstrap/pull/164
>
> Regards,
> Zixun
>
> On Thu, May 25, 2023 at 7:16 PM <Cristian.Birsan at microchip.com> wrote:
>
> 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