[U-Boot-Users] [PATCH 1/1] FAT Bare Partition Support

Michal Simek monstr at seznam.cz
Tue Jun 17 13:13:14 CEST 2008


If you can't find who is it - because I think there is no any special custodian
for disks, Wolfgang Denk is that person.

And please send your emails about U-BOOT directly to mailing list not personally
to me. If you want use to me for a support, we can sign a contract.

Michal


> Sorry Michael but I'm pretty new... how can I know who is it?
> I looked into MAINTAINERS and CREDITS but no disk/ directory found.
> 
> Regards,
> Antonio
> 
> 2008/6/16 Michal Simek <monstr at seznam.cz <mailto:monstr at seznam.cz>>:
> 
> 
> 
>     > 2008/6/16 Michal Simek <monstr at seznam.cz <mailto:monstr at seznam.cz>
>     <mailto:monstr at seznam.cz <mailto:monstr at seznam.cz>>>:
>     >
>     >     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
>     <http://atmel.com>
>     >     <http://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 <antonio.costa at atmel.com
>     <mailto:antonio.costa at atmel.com>
>     >     <mailto:antonio.costa at atmel.com <mailto:antonio.costa at atmel.com>>>
>     >     >
>     >     > 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
>     <http://atmel.com> <http://atmel.com>>
>     >     > + *                  <costa.antonior <at> gmail.com
>     <http://gmail.com>
>     >     <http://gmail.com>>
>     >
>     >     choose only one email
>     >
>     >
>     > Ok
>     >
>     >
>     >
>     >
>     >     >   * (C) Copyright 2001
>     >     >   * Raymond Lo, lo at routefree.com <mailto:lo at routefree.com>
>     <mailto:lo at routefree.com <mailto:lo at routefree.com>>
>     >     >   * Wolfgang Denk, DENX Software Engineering, wd at denx.de
>     <mailto:wd at denx.de>
>     >     <mailto:wd at denx.de <mailto:wd at denx.de>>.
>     >     > @@ -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
>     >
>     >
>     > why? le32_to_int is defined in this file just above my function ???
>     >
>     OK, keep it.
> 
>     >
>     >     >  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.
>     >
>     >     What is this ? Some kind of white spaces instead tabs or what?
> 
>     In our initial patch, you had on this line tab - look at it.
> 
>     And send this patch with cc to person who is responsible for this
>     part of u-boot.
> 
>     Michal
> 
>     >     >       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
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 
> No virus found in this incoming message.
> Checked by AVG. 
> Version: 8.0.100 / Virus Database: 270.3.0/1504 - Release Date: 15.6.2008 05:52




More information about the U-Boot mailing list