Dear Jason Jin,
In message <[EMAIL PROTECTED]> you wrote:
> 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));
> + printf("%u MiB\n", size / 1024);
I think the comment is misleading.
Assuming we have a single NAND device that is bigger than 4 GiB, then
the overflow would actually happen earlier, i. e. when storing the
size in nand_info[].size, as nand_info[].size is an "u_int32_t".
So the only situation your patch can fix is when there are several
NAND devices, each of them smaller than 4 GiB, but the total size
exceeds this limit.
Applied after changing the comment.
Thanks.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [EMAIL PROTECTED]
I think it's a new feature. Don't tell anyone it was an accident. :-)
-- Larry Wall on s/foo/bar/eieio in <[EMAIL PROTECTED]>
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot