From: Wolfgang Denk <wd@fifi.denx.de>
Date: Mon, 14 Aug 2006 20:05:26 +0000 (+0200)
Subject: Fix fatload command on FAT32 formatted partitions.
X-Git-Tag: U-Boot-1_1_5~57^2~3
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=80f0c0f58f6a39f893101d14a79169504e3c93fd;p=oweals%2Fu-boot.git

Fix fatload command on FAT32 formatted partitions.
Patch by Joachim Jaeger, 18 Nov 2005
---

diff --git a/CHANGELOG b/CHANGELOG
index 2247a24af4..6c8043ff7c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Fix fatload command on FAT32 formatted partitions.
+  Patch by Joachim Jaeger, 18 Nov 2005
+
 * Fix drivers/dm9000.c when configured in 32 bit mode.
   Patch by Eric Benard, 17 Nov 2005
 
diff --git a/include/fat.h b/include/fat.h
index 0645458f17..92638d535e 100644
--- a/include/fat.h
+++ b/include/fat.h
@@ -175,15 +175,19 @@ typedef struct dir_slot {
 	__u8    name11_12[4];	/* Last 2 characters in name */
 } dir_slot;
 
-/* Private filesystem parameters */
+/* Private filesystem parameters
+ *
+ * Note: FAT buffer has to be 32 bit aligned
+ * (see FAT32 accesses)
+ */
 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 */
-	__u8	fatbuf[FATBUFSIZE]; /* Current FAT buffer */
 	int	fatbufnum;	/* Used by get_fatent, init to -1 */
 } fsdata;