Hi Jason, > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Jason Jin > Sent: Friday, September 19, 2008 11:33 AM > To: [EMAIL PROTECTED] > Cc: u-boot@lists.denx.de; Jason Jin > Subject: [U-Boot] [PATCH 1/4] Fix the NAND size overflow issue. > > > When the NAND size is or large than 4G, the size will overflow, > The adjustment in this patch try to fix this. > > Signed-off-by: Jason Jin <[EMAIL PROTECTED]> > --- > drivers/mtd/nand/nand.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/nand/nand.c b/drivers/mtd/nand/nand.c > index ebd2acd..71a0e4b 100644 > --- a/drivers/mtd/nand/nand.c > +++ b/drivers/mtd/nand/nand.c > @@ -63,11 +63,11 @@ void nand_init(void) > unsigned int size = 0; > for (i = 0; i < CFG_MAX_NAND_DEVICE; i++) { > nand_init_chip(&nand_info[i], &nand_chip[i], > base_address[i]); > - size += nand_info[i].size; > + size += nand_info[i].size / 1024; > if (nand_curr_device == -1) > nand_curr_device = i; > } > - printf("%u MiB\n", size / (1024 * 1024)); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ According to this line I suppose, the value of nand_info[i].size is in Bytes. So, if the NAND chip is >= 4 GiB this variable has already been overflowed, when nand_init_chip returns. Indeed, I didn't check the source code of the NAND driver. Am I wrong or did you modify the driver?
Kind Regards, Jens _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot