Skip to content
Snippets Groups Projects
Commit fecb5ade authored by Jason Jin's avatar Jason Jin Committed by Wolfgang Denk
Browse files

Fix the NAND size overflow issue.


When the total size of all NAND devices exceeds 4 GiB, the size  will
overflow. This patch tries to fix this.

Note that we still have a problem when a single NAND device 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".

Signed-off-by: default avatarJason Jin <Jason.jin@freescale.com>
Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
parent 65d4a75f
No related branches found
No related tags found
Loading
...@@ -63,11 +63,11 @@ void nand_init(void) ...@@ -63,11 +63,11 @@ void nand_init(void)
unsigned int size = 0; unsigned int size = 0;
for (i = 0; i < CFG_MAX_NAND_DEVICE; i++) { for (i = 0; i < CFG_MAX_NAND_DEVICE; i++) {
nand_init_chip(&nand_info[i], &nand_chip[i], base_address[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) if (nand_curr_device == -1)
nand_curr_device = i; nand_curr_device = i;
} }
printf("%u MiB\n", size / (1024 * 1024)); printf("%u MiB\n", size / 1024);
#ifdef CFG_NAND_SELECT_DEVICE #ifdef CFG_NAND_SELECT_DEVICE
/* /*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment