[PATCH] Fix sequoia flash autodetection (finally correct)
authorStefan Roese <sr@denx.de>
Fri, 22 Dec 2006 13:29:40 +0000 (14:29 +0100)
committerStefan Roese <sr@denx.de>
Fri, 22 Dec 2006 13:29:40 +0000 (14:29 +0100)
Now 32MByte and 64MByte FLASH is know to work and other
configurations should work too.

Signed-off-by: Stefan Roese <sr@denx.de>
board/amcc/sequoia/sequoia.c

index ccf6f0c8039bdceb9de6727d60017655888ab72a..ff211aef2d703120f6e80d16433859c2e4d323e1 100644 (file)
@@ -31,6 +31,8 @@ DECLARE_GLOBAL_DATA_PTR;
 
 extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips   */
 
+ulong flash_get_size (ulong base, int banknum);
+
 int board_early_init_f(void)
 {
        unsigned long sdr0_cust0;
@@ -152,6 +154,11 @@ int misc_init_r(void)
         */
 
        /* Re-do sizing to get full correct info */
+
+       /* adjust flash start and offset */
+       gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize;
+       gd->bd->bi_flashoffset = 0;
+
 #if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)
        mtdcr(ebccfga, pb3cr);
 #else
@@ -192,9 +199,10 @@ int misc_init_r(void)
 #endif
        mtdcr(ebccfgd, pbcr);
 
-       /* adjust flash start and offset */
-       gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize;
-       gd->bd->bi_flashoffset = 0;
+       /*
+        * Re-check to get correct base address
+        */
+       flash_get_size(gd->bd->bi_flashstart, 0);
 
 #ifdef CFG_ENV_IS_IN_FLASH
        /* Monitor protection ON by default */