[U-Boot] [PATCH] fat: Handle moved FAT32 root directory

Romain Izard romain.izard.pro at gmail.com
Fri Jun 10 09:36:08 CEST 2011


The default location of the root directory in a FAT32 partition is the
same as its location in a FAT12/16 partition. But a difference is that
in FAT32, it is possible for the root directory to move.

This fix ensures that the parsing uses the root directory location
stored in the PBR, instead of always using the default location.

Signed-off-by: Romain Izard <romain.izard.pro at gmail.com>
---
 fs/fat/fat.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index c450bf6..22d34d3 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -798,6 +798,8 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize,
 	if (mydata->fatsize == 32) {
 		mydata->data_begin = mydata->rootdir_sect -
 					(mydata->clust_size * 2);
+		cursect = mydata->data_begin +
+				(root_cluster * mydata->clust_size);
 	} else {
 		rootdir_size = ((bs.dir_entries[1]  * (int)256 +
 				 bs.dir_entries[0]) *
-- 
1.7.0.4



More information about the U-Boot mailing list