ppc4xx: Update flash size in reg property of the NOR flash node
authorStefan Roese <sr@denx.de>
Fri, 16 Oct 2009 08:01:09 +0000 (10:01 +0200)
committerStefan Roese <sr@denx.de>
Fri, 23 Oct 2009 13:56:32 +0000 (15:56 +0200)
Till now only the ranges in the ebc node are updated with the values
currently configured in the PPC4xx EBC controller. With this patch now
the NOR flash size is updated in the device tree blob as well. This is
done by scanning the compatible nodes "cfi-flash" and "jedec-flash"
for the correct chip select number.

This size fixup is enabled for all AMCC eval board right now. Other
4xx boards may want to enable it as well, if this problem with multiple
NOR FLASH sizes exists.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
cpu/ppc4xx/fdt.c
include/configs/amcc-common.h

index b3108327f45a556648900bb27fdd65f58280fe2a..15a184b5c624cf27ae9c2a2be5e756b3298ace74 100644 (file)
@@ -59,11 +59,17 @@ void __ft_board_setup(void *blob, bd_t *bd)
                        *p++ = 0;
                        *p++ = bxcr & EBC_BXCR_BAS_MASK;
                        *p++ = EBC_BXCR_BANK_SIZE(bxcr);
+
+#ifdef CONFIG_FDT_FIXUP_NOR_FLASH_SIZE
+                       /* Try to update reg property in nor flash node too */
+                       fdt_fixup_nor_flash_size(blob, i,
+                                                EBC_BXCR_BANK_SIZE(bxcr));
+#endif
                }
        }
 
        /* Some 405 PPC's have EBC as direct PLB child in the dts */
-       if (fdt_path_offset(blob, "/plb/opb/ebc") < 0)
+       if (fdt_path_offset(blob, ebc_path) < 0)
                strcpy(ebc_path, "/plb/ebc");
        rc = fdt_find_and_setprop(blob, ebc_path, "ranges", ranges,
                                  (p - ranges) * sizeof(u32), 1);
index 51128a3b566d9334db31d4fd6379740fca741518..8cd97b86da13bb35744d2a35c77fb32e013c71ef 100644 (file)
  */
 #define CONFIG_OF_LIBFDT
 #define CONFIG_OF_BOARD_SETUP
+/* Update size in "reg" property of NOR FLASH device tree nodes */
+#define CONFIG_FDT_FIXUP_NOR_FLASH_SIZE
 
 /*
  * Booting and default environment