mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-16 17:58:23 +00:00
Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master
This commit is contained in:
commit
80adb27616
1 changed files with 30 additions and 35 deletions
65
fs/fat/fat.c
65
fs/fat/fat.c
|
@ -85,46 +85,41 @@ fat_register_device(block_dev_desc_t *dev_desc, int part_no)
|
||||||
/* no signature found */
|
/* no signature found */
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if(!strncmp((char *)&buffer[DOS_FS_TYPE_OFFSET],"FAT",3)) {
|
|
||||||
/* ok, we assume we are on a PBR only */
|
|
||||||
cur_part = 1;
|
|
||||||
part_offset=0;
|
|
||||||
} else {
|
|
||||||
#if (defined(CONFIG_CMD_IDE) || \
|
#if (defined(CONFIG_CMD_IDE) || \
|
||||||
defined(CONFIG_CMD_SCSI) || \
|
defined(CONFIG_CMD_SCSI) || \
|
||||||
defined(CONFIG_CMD_USB) || \
|
defined(CONFIG_CMD_USB) || \
|
||||||
(defined(CONFIG_MMC) && defined(CONFIG_LPC2292)) || \
|
defined(CONFIG_MMC) || \
|
||||||
defined(CONFIG_SYSTEMACE) )
|
defined(CONFIG_SYSTEMACE) )
|
||||||
/* First we assume, there is a MBR */
|
/* First we assume, there is a MBR */
|
||||||
if (!get_partition_info (dev_desc, part_no, &info)) {
|
if (!get_partition_info (dev_desc, part_no, &info)) {
|
||||||
part_offset = info.start;
|
part_offset = info.start;
|
||||||
cur_part = part_no;
|
cur_part = part_no;
|
||||||
} else if (!strncmp((char *)&buffer[DOS_FS_TYPE_OFFSET], "FAT", 3)) {
|
} else if (!strncmp((char *)&buffer[DOS_FS_TYPE_OFFSET], "FAT", 3)) {
|
||||||
/* ok, we assume we are on a PBR only */
|
/* ok, we assume we are on a PBR only */
|
||||||
cur_part = 1;
|
cur_part = 1;
|
||||||
part_offset = 0;
|
part_offset = 0;
|
||||||
} else {
|
} else {
|
||||||
printf ("** Partition %d not valid on device %d **\n",
|
printf ("** Partition %d not valid on device %d **\n",
|
||||||
part_no, dev_desc->dev);
|
part_no, dev_desc->dev);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
#else
|
|
||||||
if(!strncmp((char *)&buffer[DOS_FS_TYPE_OFFSET],"FAT",3)) {
|
|
||||||
/* ok, we assume we are on a PBR only */
|
|
||||||
cur_part = 1;
|
|
||||||
part_offset = 0;
|
|
||||||
info.start = part_offset;
|
|
||||||
} else {
|
|
||||||
/* FIXME we need to determine the start block of the
|
|
||||||
* partition where the DOS FS resides. This can be done
|
|
||||||
* by using the get_partition_info routine. For this
|
|
||||||
* purpose the libpart must be included.
|
|
||||||
*/
|
|
||||||
part_offset = 32;
|
|
||||||
cur_part = 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
if (!strncmp((char *)&buffer[DOS_FS_TYPE_OFFSET],"FAT",3)) {
|
||||||
|
/* ok, we assume we are on a PBR only */
|
||||||
|
cur_part = 1;
|
||||||
|
part_offset = 0;
|
||||||
|
info.start = part_offset;
|
||||||
|
} else {
|
||||||
|
/* FIXME we need to determine the start block of the
|
||||||
|
* partition where the DOS FS resides. This can be done
|
||||||
|
* by using the get_partition_info routine. For this
|
||||||
|
* purpose the libpart must be included.
|
||||||
|
*/
|
||||||
|
part_offset = 32;
|
||||||
|
cur_part = 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue