[U-Boot] Query on the ci_udc driver for USB client implementation

Sanchayan Maity maitysanchayan at gmail.com
Wed Nov 5 11:20:04 CET 2014



On Tuesday 04 November 2014 09:58 PM, Lukasz Majewski wrote:
> Hi Sanchayan,
> 
>> On Tuesday 04 November 2014 10:25 AM, Marek Vasut wrote:
>>> On Monday, November 03, 2014 at 04:46:48 PM, Fabio Estevam wrote:
>>>> On Mon, Nov 3, 2014 at 3:33 AM, Sanchayan Maity
>>>>
>>>> <maitysanchayan at gmail.com> wrote:
>>>>> Hello,
>>>>>
>>>>> Any pointers?
>>>>
>>>> Adding Marek and Stefan on Cc in case they can provide some help.
>>>>
>>>> Regards,
>>>>
>>>> Fabio Estevam
>>>>
>>>>> Thanks & Regards,
>>>>> Sanchayan Maity.
>>>>>
>>>>> On Thursday 30 October 2014 11:14 AM, Sanchayan Maity wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I am currently implementing USB Host and client support for
>>>>>> Freescale Vybrid platform in u-boot. I managed to get the host
>>>>>> implementation working.
>>>>>>
>>>>>> For the host side, usb start calls usb_init(), which in turns
>>>>>> call, usb_lowlevel_init(), from there into the ehic_hcd_init()
>>>>>> of my implementation. So, setting up the necessary clocks and
>>>>>> plls for USB in my implementation and then setting up the
>>>>>> usb_ehci, ehci_hccr and echi_hcor structures was all. The flow
>>>>>> and setup required i was able to trace.
>>>>>>
>>>>>> The USB client part is not clear to me. I was thinking i can use
>>>>>> the ci_udc driver somehow to implement the client part. How can
>>>>>> i use the ci_udc driver to implement client functionality?. From
>>>>>> what i could see, the usb_gadget_driver_register() is suppose to
>>>>>> be the first call. But, i couldn't trace from where this gets
>>>>>> called or the flow and setup is suppose to be. OR Is a separate
>>>>>> client driver required and nothing generic can be used akin to
>>>>>> how it could be done for host?
>>>
>>> See include/configs/sansa_fuze_plus.h , you need the gadget driver
>>> for the function you want to implement , in this case it's ethernet
>>> for example (selected via CONFIG_USB_ETH_CDC ).
>>>
>>> An example of DFU/UMS can be found in
>>> include/configs/exynos4-common.h and to activate those, you need to
>>> use the 'dfu' or 'ums' commands.
>>
>> Thank you Marek. I had enabled usb ether options already and was
>> trying to test USB client functionality with RNDIS. For some reason
>> it was not working and i was not able to trace the issue and
>> subsequently was not sure about the client part. Your inputs cleared
>> my doubts. I tried UMS and DFU. UMS is working just fine and i can
>> download the respective images through DFU. Though this DFU is not
>> working full proof, but, i can figure that out now i feel. 
> 
> I'm very happy that UMS is working seamlessly. What kind of trouble do
> you have with DFU?

Hello,

I have a memory alignment problem with DFU as of now. 

mtdparts is as below
device nand0 <fsl_nfc>, # parts = 4
 #: name                size            offset          mask_flags
 0: vf-bcb              0x00020000      0x00000000      1
 1: u-boot              0x00160000      0x00020000      1
 2: u-boot-env          0x00080000      0x00180000      0
 3: ubi                 0x3fe00000      0x00200000      0

active partition: nand0,0 - (vf-bcb) 0x00020000 @ 0x00000000

defaults:
mtdids  : nand0=fsl_nfc
mtdparts: mtdparts=fsl_nfc:128k(vf-bcb)ro,1408k(u-boot)ro,512k(u-boot-env),-(ubi)

As per the above, setenv dfu_alt_info "vf-bcb part 0,1;u-boot part 0,2;ubi part 0,4"
and CONFIG_SYS_CACHELINE_SIZE is 32.

I have a ubifs image and i was trying to write it by running "dfu 0 nand 4" in u-boot
and "sudo dfu-util -D ubifs.img -a ubi" on the host. I got the error as below.

"dfu_get_buf: Could not memalign 0x800000 bytes

Setting CONFIG_SYS_DFU_DATA_BUF_SIZE to (1024*1024) resolved this. After this, trying
an update as above, did not give me an updated ubi (which i check by booting to user space)
and doing a nand erase.part on ubi partition and then repeating the procedure results in 
""Bad Linux ARM zImage magic!". After looking a bit online, at the below two links

http://lists.denx.de/pipermail/u-boot/2013-May/155089.html
http://www.linux-mtd.infradead.org/faq/ubifs.html#L_mkfubifs

I started trying ubinize. Getting the memory alignment issues again now :). I have 
tried 1, 2, 4 and 8Mb for the dfu data buffer size. So i am trying to figure this 
out at the moment. I am probably missing something. :)

--Best Regards,
Sanchayan.

> 
>>
>> Thanks again for your inputs. Cheers!
>>
>> Best Regards,
>> Sanchayan.
>>
>>>
>>>>>> Sorry if i am asking this question in the wrong place. I
>>>>>> couldn't find anyone in the u-boot IRC channel nor find
>>>>>> something similar to the kernel-newbies mailing list.
>>>
>>> There isn't any, so ask away ;-)
>>>
>>>>>> Hope i am asking the right questions.
>>> [...]
>>>
>>> Best regards,
>>> Marek Vasut
>>>
> 
> 
> 


More information about the U-Boot mailing list