[U-Boot] [PATCH] LaCie kirkwood boards: allow disk > 2TB

Albert ARIBAUD albert.u.boot at aribaud.net
Thu Jun 13 15:21:15 CEST 2013


Hi Frédéric,

On Thu, 13 Jun 2013 15:03:49 +0200, Frédéric Leroy <fredo at starox.org>
wrote:

> Le 13/06/2013 13:33, Albert ARIBAUD a écrit :
> > With gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) this patch causes
> > the following warning for all boards:
> >
> > cmd_ide.c:992:4: warning: right shift count >= width of type [enabled
> > by default]
> >
> > Amicalement,
> 
> I will  convert every ide block number to 64 bit for disk and partitions.

Be careful that some struct fields representing sector / block number
might be 32-bit for an external reason, e.g. in partition tables.

> I guess CONFIG_LBA48 is also broken in common/cmd_ide.c :
> 
> ulong ide_write(int device, ulong blknr, lbaint_t blkcnt, const void
> *buffer)
> {
>     ulong n = 0;
>     unsigned char c;
> 
> #ifdef CONFIG_LBA48
>     unsigned char lba48 = 0;
> 
>     if (blknr & 0x0000fffff0000000ULL) {                          <= issue
>         /* more than 28 bits used, use 48bit mode */
>         lba48 = 1;
>     }
> #endif

How is this broken exactly, and what is the fix?

> I hope this won't break anything, it is a big change impacting everybody :(

It would affect everybody but within a well-delimited feature, which is
disk access. Tests on a few targets with disks of various sizes should
be enough.

> Sincèrement,

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list