[U-Boot-Users] USB SUPPORT & get_vfatname
Ken.Fuchs at bench.com
Ken.Fuchs at bench.com
Thu Apr 24 18:13:12 CEST 2008
My include/fat.h is identical to the fat.h in both
git repository u-boot and git repository u-boot-at91,
except that I put the CHECKCLUST() macro in fat.c
rather than fat.h.
Ken
> -----Original Message-----
> From: michael [mailto:trimarchi at gandalf.sssup.it]
> Sent: Thursday, April 24, 2008 03:00
> To: Fuchs, Ken
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] USB SUPPORT & get_vfatname
>
>
> Ken.Fuchs at bench.com wrote:
> Ok,
>
> check your fat.h and your fsdata
>
>
> typedef struct {
> __u8 fatbuf[FATBUFSIZE]; /* Current FAT buffer */
> int fatsize; /* Size of FAT in bits */
> __u16 fatlength; /* Length of FAT in sectors */
> __u16 fat_sect; /* Starting sector of the FAT */
> __u16 rootdir_sect; /* Start sector of root directory */
> __u16 clust_size; /* Size of clusters in sectors */
> short data_begin; /* The sector of the first
> cluster, can
> be negative */
> int fatbufnum; /* Used by get_fatent, init to -1 */
> } fsdata;
>
> The fatbuf is on the top?
>
> Regards Michael
>
>
>
> > Michael,
> >
> > Sorry, your latest get_vfatname patch doesn't work either.
> >
> > FAT16 works perfectly, so the USB code is probably _not_ at
> fault. I see only problems with FAT32, but only for _some_
> long collections of files.
> >
> > Thus, there may still be a problem with fs/fat/fat.c.
> Maybe there is something wrong with my copy of fat.c I
> attached it; Perhaps you can see a problem with it.
> >
> > Sincerely,
> >
> > Ken Fuchs
> >
> >
> >> -----Original Message-----
> >> From: michael [mailto:trimarchi at gandalf.sssup.it]
> >> Sent: Wednesday, April 23, 2008 06:16
> >> To: michael
> >> Cc: Fuchs, Ken; u-boot-users at lists.sourceforge.net; Wolfgang Denk
> >> Subject: Re: [U-Boot-Users] USB SUPPORT & get_vfatname
> >>
> >>
> >> Hi,
> >>
> >> michael wrote:
> >>
> >>> Hi,
> >>>
> >>> Can you try this one?
> >>>
> >>> Revert my last one patch?
> >>> It change the test code, before the while. I use your script on a
> >>> Compact Flash and it looks fine for me (under linux).
> >>>
> >>> Regards Michael
> >>>
> >>>
> >>>
> >> --------------------------------------------------------------
> >> ----------
> >>
> >>> Check if the entry is a valid dir_slot entry, otherwise it
> >>>
> >> is a dentry and the
> >>
> >>> name has to be taken by the get_name function
> >>>
> >>> Signed-off-by: michael trimarchi <trimarchi at gandalf.sssup.it>
> >>>
> >>> ---
> >>> fs/fat/fat.c | 7 +++++++
> >>> 1 files changed, 7 insertions(+), 0 deletions(-)
> >>>
> >>> diff --git a/fs/fat/fat.c b/fs/fat/fat.c
> >>> index 49c78ed..bc37cec 100644
> >>> --- a/fs/fat/fat.c
> >>> +++ b/fs/fat/fat.c
> >>> @@ -473,8 +473,14 @@ get_vfatname(fsdata *mydata, int
> >>>
> >> curclust, __u8 *cluster,
> >>
> >>> while (slotptr2->id > 0x01) {
> >>> slotptr2++;
> >>> }
> >>> +
> >>> /* Save the real directory entry */
> >>> realdent = (dir_entry*)slotptr2 + 1;
> >>> + if (slotptr2->attr != ATTR_VFAT) {
> >>> + get_name ((dir_entry *)realdent, l_name);
> >>> + goto out;
> >>> + }
> >>> +
> >>> while ((__u8*)slotptr2 >= get_vfatname_block) {
> >>> slot2str(slotptr2, l_name, &idx);
> >>> slotptr2--;
> >>> @@ -494,6 +500,7 @@ get_vfatname(fsdata *mydata, int
> >>>
> >> curclust, __u8 *cluster,
> >>
> >>> else if (*l_name == aRING) *l_name = 'å';
> >>> downcase(l_name);
> >>>
> >>> +out:
> >>> /* Return the real directory entry */
> >>> memcpy(retdent, realdent, sizeof(dir_entry));
> >>>
> >>>
> >>>
> >> The scripts in this thread can be used to test the fat32
> >> filesystem. I
> >> do some tests using Compact Flash
> >> device and this patchs work for me. I would like to know
> if is a fat
> >> layer problem or usb layer problem.
> >>
> >> Michael
> >>
> >>
> >>
>
>
More information about the U-Boot
mailing list