[U-Boot] [PATCH 01/10] usb: Remove obsolete header file

Pantelis Antoniou panto at antoniou-consulting.com
Thu Nov 29 09:19:00 CET 2012


Hi Lukasz,

On Nov 29, 2012, at 10:13 AM, Lukasz Majewski wrote:

> Hi Pantelis,
> 
>> Hi Lukasz,
>> 
>> On Nov 28, 2012, at 7:46 PM, Lukasz Majewski wrote:
>> 
>>> Hi Pantelis,
>>> 
>>>> Hi Lukasz,
>>>> 
>>>> On Nov 28, 2012, at 6:01 PM, Lukasz Majewski wrote:
>>>> 
>>>>> Hi Tom,
>>>>> 
>>>>>> Hi Pantelis,
>>>>>> 
>>>>>>> usbdescriptors.h conflicts with linux/usb/ch9.h
>>>>>>> Remove it.
>>>>>> 
>>>>> After rebasing on u-boot-usb/next below comment apply:
>>>>> 
>>>>> After applying this patch, I cannot build trats target anymore.
>>>>> 
>>>>> 
>>>>> With u-boot-usb/master I can compile the u-boot for trats board
>>>>> with no warnings and errors.
>>>>> 
>>>>> Unfortunately after flashing with dfu, the u-boot is _NOT_ working
>>>>> properly anymore.
>>>>> It seems, that some parts of the binary weren't correct.
>>>>> 
>>>> 
>>>> Are you writing to a file in a filesystem? I.e. FAT?
>>>> 
>>>> I'm in the middle of doing more extensive tests, but file write to
>>>> an FS might have problems. I am using the raw mmc interface.
>>>> 
>>> 
>>> I've written u-boot to RAW eMMC (based on the LBA addressing).
>>> Moreover I was also able to write data to FAT and EXT4 fs (which
>>> uses standard fat/ext4 load commands).
>>> 
>> 
>> I see. Note that ext4 writes won't work; there is no offset to the
>> write file command. You will have to have use a large enough buffer
>> to handle the file's worst case.
> 
> The 4 MiB buffer size was my wrong simplification. It shall be done as
> you proposed (with transfered data chopped to smaller chunks).
> 
> The ext4write command will write data from DRAM buffer (e.g.
> 0x44000000) to partition formatted with ext4 fs. (one just needs to
> remember that file size is given with hex number).
> I've posted some fixes for ext4 recently to ML.
> 

Nice. There is a big fat warning when you try to write an ext4 file at
an offset other than 0; it should be easy to fix.

>> 
>>>> There could be something there that it's missed. I'm in the middle
>>>> of doing more extensive tests.
>>>> 
>>>> 
>>>>>> It writes u-boot.bin, but in a way that the board is bricked
>>>>>> after flashing.
>>>>> 
>>>>> I need some time to perform the thorough review of core DFU
>>>>> patches (patches 7/10, 09/10, 10/10).
>>>>> 
>>>> 
>>>> OK.
>>>> 
>>>>> 
>>>>> 
>>>>>> BTW: 
>>>>>> 1. What is your target device? What is the output of dfu mmc 0
>>>>>> list command on your device?
>>>>>> 
>>>> 
>>>> I'm on am335x_evm target, actual board is a beaglebone.
>>>> 
>>>> 
>>>>>> On trats it is:
>>>>>> DFU alt settings list:
>>>>>> dev: eMMC alt: 0 name: u-boot layout: RAW_ADDR
>>>>>> dev: eMMC alt: 1 name: uImage layout: FAT
>>>>>> 
>>>> 
>>>> # setenv dfu_alt_info 'test part 0 3'
>>>> # mmc part
>>>> U-Boot# mmc part
>>>> 
>>>> Partition Map for MMC device 0  --   Partition Type: DOS
>>>> 
>>>> Part    Start Sector    Num Sectors     UUID            Type
>>>> 1     63              112392          7a348599-01     0c Boot
>>>> 2     112455          7501331         7a348599-02     83
>>>> 3     7613786         12966           7a348599-03     83
>>>> # dfu mmc 0 list
>>>> DFU alt settings list:
>>>> dev: eMMC alt: 0 name: test layout: RAW_ADDR
>>>> 
>>> Off topic: 
>>> It would be nice to have all partitions listed with dfu mmc 0
>>> list :-) and then have access to it via dfu-util tool (as a separate
>>> alt settings). But this is a task for the future :-).
>>> 
>>> 
>>>> Are you downloading u-boot.bin to the raw nand?
>>>> I.e. there's no boot partition?
>>> 
>>> Yes, there isn't any partition for u-boot. I write to raw eMMC
>>> address.
>>> 
>>>> 
>>>> All my tests have been downloading a small ext3 image to the mmc.
>>>> I'm in the middle of doing more extensive tests but those takes a
>>>> huge amount of time... :(
>>> 
>>> This is because of very low DFU transmission speed (It uses only EP0
>>> with EPS=64B , so it is meant to transfer really small files).
>>> 
>>> Updating rootfs via DFU would take much time. It is OK, to transfer
>>> u-boot, uImage, some log data.
>>> 
>> 
>> We have customers that do want to use DFU for all of their initial
>> programming.
> 
> Ok, I see.
> 
>> 
>> The limitations are known, but the fact is that they find it very
>> convenient for their use. And it's not like you're limited by the USB
>> interface, most of the time is spent writing to the medium.
> 
> So in my opinion there would be nice to have some kind of caching of
> received data before writing to memory.
> 
> Then we could write memory asynchronously, when we "collect" e.g. 1 MiB
> data in a buffer (and in meantime collect next data).
> 

I doubt that would work in a u-boot environment. There are no threads
and I'm pretty sure most mass memory interfaces are PIO.

I'm completely up to date on latest u-boot happenings, maybe this has changed.

Regards

-- Pantelis

> 
>> 
>> BTW, I've just confirmed that larger transfers get corrupted... :(
>> Working on a fix now...
> 
> Ok.
> 
>> 
>>>> 
>>>>>> 2. Please look into the TRATS board (especially the
>>>>>> CONFIG_DFU_ALT constant) for reference.
>>>>>> 
>>>> 
>>>> Already looked there.
>>>> 
>>>>>> 3. What is yours dfu-util version? (Mine is 0.1+svnexported)
>>>>>> 
>>>> 
>>>> Compiled from source git://gitorious.org/dfu-util/dfu-util.git
>>>> Current master.
>>>> 
>>>> Regards
>>>> 
>>>> -- Pantelis
>>>> 
>>>> 
>>>>>>> 
>>>>>>> Signed-off-by: Pantelis Antoniou <panto at antoniou-consulting.com>
>>>>>>> ---
>>>>>>> drivers/usb/gadget/f_dfu.c | 1 -
>>>>>>> include/g_dnl.h            | 1 -
>>>>>>> 2 files changed, 2 deletions(-)
>>>>>>> 
>>>>>>> diff --git a/drivers/usb/gadget/f_dfu.c
>>>>>>> b/drivers/usb/gadget/f_dfu.c index 3ec4c65..10547e3 100644
>>>>>>> --- a/drivers/usb/gadget/f_dfu.c
>>>>>>> +++ b/drivers/usb/gadget/f_dfu.c
>>>>>>> @@ -25,7 +25,6 @@
>>>>>>> #include <malloc.h>
>>>>>>> 
>>>>>>> #include <linux/usb/ch9.h>
>>>>>>> -#include <usbdescriptors.h>
>>>>>>> #include <linux/usb/gadget.h>
>>>>>>> #include <linux/usb/composite.h>
>>>>>>> 
>>>>>>> diff --git a/include/g_dnl.h b/include/g_dnl.h
>>>>>>> index 0ec7440..f47395f 100644
>>>>>>> --- a/include/g_dnl.h
>>>>>>> +++ b/include/g_dnl.h
>>>>>>> @@ -22,7 +22,6 @@
>>>>>>> #define __G_DOWNLOAD_H_
>>>>>>> 
>>>>>>> #include <linux/usb/ch9.h>
>>>>>>> -#include <usbdescriptors.h>
>>>>>>> #include <linux/usb/gadget.h>
>>>>>>> 
>>>>>>> int g_dnl_register(const char *s);
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Best regards,
>>>>> 
>>>>> Lukasz Majewski
>>>>> 
>>>>> Samsung Poland R&D Center | Linux Platform Group
>>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Best regards,
>>> 
>>> Lukasz Majewski
>>> 
>>> Samsung Poland R&D Center | Linux Platform Group
>> 
> 
> 
> 
> -- 
> Best regards,
> 
> Lukasz Majewski
> 
> Samsung Poland R&D Center | Linux Platform Group



More information about the U-Boot mailing list