Hi Antonio I am not responsible for this part of U-BOOT but your patch contain coding style violation.
Regards, Michal Simek > Logic unit: > Purpose: Add support for bare partitions (no partition table) > Author: Antnoio R. Costa <antonio.costa <at> atmel.com> > Date : 11 Jun 2008 > > Status: > ~~~~~~ > Some SD cards are not formatted with a partition table but with > just a bare partition at the beginnig of the memory. > > I modified get_partition_info_extended to call test_block_type > as done by print_partition_extended. In this way bare FAT partitions > are recognised. Now we need a test for Ext2. > > Signed-off-by: Antonio R. Costa <[EMAIL PROTECTED]> > > diff --git a/disk/part_dos.c b/disk/part_dos.c > index 4d778ec..e5cc8aa 100644 > --- a/disk/part_dos.c > +++ b/disk/part_dos.c > @@ -1,4 +1,7 @@ > /* > + * (C) Copyright 2008 Atmel Corp. > + * Antonio R. Costa <antonio.costa <at> atmel.com> > + * <costa.antonior <at> gmail.com> choose only one email > * (C) Copyright 2001 > * Raymond Lo, [EMAIL PROTECTED] > * Wolfgang Denk, DENX Software Engineering, [EMAIL PROTECTED] > @@ -53,6 +56,11 @@ static inline int le32_to_int(unsigned char *le32) > ); > } > > +static inline int le16_to_int(unsigned char *le16) > +{ > + return ((le16[1] << 8) + le16[0]); > +} > + this should be in header file > static inline int is_extended(int part_type) > { > return (part_type == 0x5 || > @@ -166,12 +174,20 @@ static int get_partition_info_extended > (block_dev_desc_t *dev_desc, int ext_part > unsigned char buffer[DEFAULT_SECTOR_SIZE]; > dos_partition_t *pt; > int i; > - > + Coding style issue. > if (dev_desc->block_read (dev_desc->dev, ext_part_sector, 1, (ulong *) > buffer) != 1) { > printf ("** Can't read partition table on %d:%d **\n", > dev_desc->dev, ext_part_sector); > return -1; > } > + > +/* > + * ARC: This check is bad: > + * unfortunately both MBR and FAT bootsector > + * have a sign 0x55aa @ 0x1FF > + * I replaced it by test_block_type as in > + * print_partition_extended > + > if (buffer[DOS_PART_MAGIC_OFFSET] != 0x55 || > buffer[DOS_PART_MAGIC_OFFSET + 1] != 0xaa) { > printf ("bad MBR sector signature 0x%02x%02x\n", > @@ -179,7 +195,19 @@ static int get_partition_info_extended (block_dev_desc_t > *dev_desc, int ext_part > buffer[DOS_PART_MAGIC_OFFSET + 1]); > return -1; > } > - > +*/ > + i=test_block_type(buffer); > + > + if(i==-1) { > + printf ("bad MBR sector signature 0x%02x%02x\n", > + buffer[DOS_PART_MAGIC_OFFSET], > + buffer[DOS_PART_MAGIC_OFFSET + 1]); > + return -1; > + } > + > + if(i==DOS_PBR) > + return -1; > + > /* Print all primary/logical partitions */ > pt = (dos_partition_t *) (buffer + DOS_PART_TBL_OFFSET); > for (i = 0; i < 4; i++, pt++) { > @@ -193,6 +221,7 @@ static int get_partition_info_extended (block_dev_desc_t > *dev_desc, int ext_part > info->blksz = 512; > info->start = ext_part_sector + le32_to_int > (pt->start4); > info->size = le32_to_int (pt->size4); > + > switch(dev_desc->if_type) { > case IF_TYPE_IDE: > case IF_TYPE_SATA: > @@ -208,6 +237,13 @@ static int get_partition_info_extended (block_dev_desc_t > *dev_desc, int ext_part > case IF_TYPE_DOC: > sprintf ((char *)info->name, > "docd%c%d\n", 'a' + dev_desc->dev, part_num); > break; > + case IF_TYPE_MMC: > + sprintf ((char *)info->name, > "mmc%c%d\n", 'a' + dev_desc->dev, part_num); > + break; > + case IF_TYPE_SD: > + case IF_TYPE_SDHC: > + sprintf ((char *)info->name, > "sd%c%d\n", 'a' + dev_desc->dev, part_num); > + break; > default: > sprintf ((char *)info->name, > "xx%c%d\n", 'a' + dev_desc->dev, part_num); > break; > > Regards, Michal Simek ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users