X-Git-Url: https://git.kernelconcepts.de/?a=blobdiff_plain;f=disk%2Fpart_dos.c;h=887b75ec8874fb409d08e2c13098fcd3cba9806c;hb=f9476902b789b0481b9df49af88d6ca94fb16fa0;hp=133ee7988343aa0e130a19232c0f8933a86143dc;hpb=77ddac9480d63a80b6bb76d7ee4dcc2d1070867e;p=karo-tx-uboot.git diff --git a/disk/part_dos.c b/disk/part_dos.c index 133ee79883..887b75ec88 100644 --- a/disk/part_dos.c +++ b/disk/part_dos.c @@ -35,11 +35,13 @@ #include #include "part_dos.h" -#if ((CONFIG_COMMANDS & CFG_CMD_IDE) || \ - (CONFIG_COMMANDS & CFG_CMD_SCSI) || \ - (CONFIG_COMMANDS & CFG_CMD_USB) || \ - defined(CONFIG_MMC) || \ - defined(CONFIG_SYSTEMACE) ) && defined(CONFIG_DOS_PARTITION) +#if defined(CONFIG_CMD_IDE) || \ + defined(CONFIG_CMD_MG_DISK) || \ + defined(CONFIG_CMD_SATA) || \ + defined(CONFIG_CMD_SCSI) || \ + defined(CONFIG_CMD_USB) || \ + defined(CONFIG_MMC) || \ + defined(CONFIG_SYSTEMACE) /* Convert char[4] in little endian format to the host format integer */ @@ -186,7 +188,8 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part * fdisk does not show the extended partitions that * are not in the MBR */ - if ((pt->sys_ind != 0) && + if (((pt->boot_ind & ~0x80) == 0) && + (pt->sys_ind != 0) && (part_num == which_part) && (is_extended(pt->sys_ind) == 0)) { info->blksz = 512; @@ -194,20 +197,26 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part info->size = le32_to_int (pt->size4); switch(dev_desc->if_type) { case IF_TYPE_IDE: + case IF_TYPE_SATA: case IF_TYPE_ATAPI: - sprintf ((char *)info->name, "hd%c%d\n", 'a' + dev_desc->dev, part_num); + sprintf ((char *)info->name, "hd%c%d", + 'a' + dev_desc->dev, part_num); break; case IF_TYPE_SCSI: - sprintf ((char *)info->name, "sd%c%d\n", 'a' + dev_desc->dev, part_num); + sprintf ((char *)info->name, "sd%c%d", + 'a' + dev_desc->dev, part_num); break; case IF_TYPE_USB: - sprintf ((char *)info->name, "usbd%c%d\n", 'a' + dev_desc->dev, part_num); + sprintf ((char *)info->name, "usbd%c%d", + 'a' + dev_desc->dev, part_num); break; case IF_TYPE_DOC: - sprintf ((char *)info->name, "docd%c%d\n", 'a' + dev_desc->dev, part_num); + sprintf ((char *)info->name, "docd%c%d", + 'a' + dev_desc->dev, part_num); break; default: - sprintf ((char *)info->name, "xx%c%d\n", 'a' + dev_desc->dev, part_num); + sprintf ((char *)info->name, "xx%c%d", + 'a' + dev_desc->dev, part_num); break; } /* sprintf(info->type, "%d, pt->sys_ind); */ @@ -248,4 +257,4 @@ int get_partition_info_dos (block_dev_desc_t *dev_desc, int part, disk_partition } -#endif /* (CONFIG_COMMANDS & CFG_CMD_IDE) && CONFIG_DOS_PARTITION */ +#endif