[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