[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