From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Thu, 06 Nov 2014 10:07:24 +0100 Subject: [U-Boot] Query on the ci_udc driver for USB client implementation In-Reply-To: <5459F9D4.5010507@gmail.com> References: <5451D039.1090609@gmail.com> <545713AF.5090008@gmail.com> <201411040555.00521.marex@denx.de> <5458DD17.1080105@gmail.com> <20141104172822.694593e4@amdc2363> <5459F9D4.5010507@gmail.com> Message-ID: <20141106100724.0e9e6b6c@amdc2363> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Sanchayan, > > > 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 > >>>> > >>>> 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 , # 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. :) On our boards we have eMMC memory, so I'm not so familiar with NAND DFU problems. However, I would advise you to pose this question to any of AM335x boards maintainer (e.g. Tom Rini) since they use NAND on their boards. > > --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 > >>> > > > > > > -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group