@ -85,46 +85,41 @@ fat_register_device(block_dev_desc_t *dev_desc, int part_no)
/* no signature found */
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) || \
defined ( CONFIG_CMD_SCSI ) | | \
defined ( CONFIG_CMD_USB ) | | \
( defined ( CONFIG_MMC ) & & defined ( CONFIG_LPC2292 ) ) | | \
defined ( CONFIG_SYSTEMACE ) )
/* First we assume, there is a MBR */
if ( ! get_partition_info ( dev_desc , part_no , & info ) ) {
part_offset = info . start ;
cur_part = part_no ;
} 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 ;
} else {
printf ( " ** Partition %d not valid on device %d ** \n " ,
defined ( CONFIG_MMC ) | | \
defined ( CONFIG_SYSTEMACE ) )
/* First we assume, there is a MBR */
if ( ! get_partition_info ( dev_desc , part_no , & info ) ) {
part_offset = info . start ;
cur_part = part_no ;
} 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 ;
} else {
printf ( " ** Partition %d not valid on device %d ** \n " ,
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
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 ;
}