e300: increase CONFIG_SYS_BOOTMAPSZ to allow booting large kernels
authorIra W. Snyder <iws@ovro.caltech.edu>
Fri, 10 Sep 2010 22:42:32 +0000 (15:42 -0700)
committerWolfgang Denk <wd@denx.de>
Thu, 23 Sep 2010 19:13:32 +0000 (21:13 +0200)
Newer Linux kernels can overrun the initial memory window used for
booting with their BSS area. When this happens, they overwrite the FDT
and silently fail to boot.

On e300 CPUs, the Linux kernel uses an initial BAT covering the first
256MB of RAM. See arch/powerpc/kernel/head_32.S for details. Increase
the value of CONFIG_SYS_BOOTMAPSZ to accommodate the maximum value
allowed by Linux. This will allow very large kernels to boot.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
22 files changed:
include/configs/MPC8308RDB.h
include/configs/MPC8313ERDB.h
include/configs/MPC8315ERDB.h
include/configs/MPC8323ERDB.h
include/configs/MPC832XEMDS.h
include/configs/MPC8349EMDS.h
include/configs/MPC8349ITX.h
include/configs/MPC8360EMDS.h
include/configs/MPC8360ERDK.h
include/configs/MPC837XEMDS.h
include/configs/MPC837XERDB.h
include/configs/MVBLM7.h
include/configs/SIMPC8313.h
include/configs/TQM834x.h
include/configs/aria.h
include/configs/kmeter1.h
include/configs/mecp5123.h
include/configs/mpc5121ads.h
include/configs/pdm360ng.h
include/configs/sbc8349.h
include/configs/ve8313.h
include/configs/vme8349.h

index c6f12bd729b1b0cd45b1d22dcad4f27f814d4516..d919871ee3420bf39942f914fbc8ab991a937474 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20) /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index adf05ee439a23b747d4da7fa2ddfc64472a308d4..3fdd1b0d2fa9acbf978ee7ebfa39c22928888dfe 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 #define CONFIG_SYS_RCWH_PCIHOST 0x80000000     /* PCIHOST  */
 
index a5d4375ae1a27718c5802fa851041b7cafb0b55e..abc29c04fef7b3d1b753eacf60aec5101d099471 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20) /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index 590005d9279dd5382e4184d5e919ef03ee39caf6..0719fcea32468d9c2da136135b802b0ec1661af4 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20)       /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20)     /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index 99577563bafc186fec8c717e01e914122175af12..bed62bd6eb4304509cf5063490fc90625dd30f03 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20)       /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20)     /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index eaa8a9deff189e4ba05b4e2d3d09677c82bffda3..55e9de01ae5149b20a2fc19d6296964e226bf3ea 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 #define CONFIG_SYS_RCWH_PCIHOST 0x80000000 /* PCIHOST  */
 
index 4c6c2737f4737d811a85f8479081ce5579e134a8..117f745f26162417a476fb4618761b2238b9f686 100644 (file)
@@ -538,10 +538,10 @@ boards, we say we have two, but don't display a message if we find only one. */
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 #define CONFIG_SYS_HRCW_LOW (\
        HRCWL_LCL_BUS_TO_SCB_CLK_1X1 |\
index c8db10b2b91f903c95181ea0b2a8fc238f28e979..d7381aad32dd273f57ba84800ec69e73d3fefdf9 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20) /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index 2685deed78d803fd345f64208a55b3e15f396912..fc53ecc67a11c73d641628960c2f61d2b5d7acd3 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20) /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index bdf8a2a0bf9cc1755824851b7f8a4d6fa89137d9..8546ebc31f3f5ea286186940f44fae90fc21eb1a 100644 (file)
@@ -536,10 +536,10 @@ extern int board_pci_host_broken(void);
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20) /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index 675021cf516bf4c4214af45c2b102c7ffb3e471d..20c23045fbbb65635932940aa5083f3e173f02f6 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20) /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index 5b12b88c8c4c76a006e1c7bc8d401cf938d67146..25d807731409fccf54e767b64e3b68217a9303b4 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 #define CONFIG_SYS_HRCW_LOW    0x0
 #define CONFIG_SYS_HRCW_HIGH   0x0
index 70b7489ab1c90f95d1c60dd14de74224e490795c..9c8c318573fc344c04546db889b6bc93c98a8cda 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20)     /* Initial Memory map for Linux*/
 
 #define CONFIG_SYS_RCWH_PCIHOST                0x80000000      /* PCIHOST */
 
index be0fe7228c5678a9249379425b2b9bb5093ebc1f..d0c6a4dc5dae5906279175cc5a071bb2d02b9fe3 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 #define CONFIG_SYS_HRCW_LOW (\
        HRCWL_LCL_BUS_TO_SCB_CLK_1X1 |\
index 01e347e6900e4c339aa2d7a26974d70b544f085a..c5a3febd0fd23b51b46d61fb7d9ab2fd3dda27d3 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)
 
 /* Cache Configuration */
 #define CONFIG_SYS_DCACHE_SIZE         32768
index 1dcdeab9bb37cff0455a6842dd48593663488ab2..4794256160e4f96fb498cdd74000fb0a5050c69b 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ           (8 << 20) /* Initial Memory map for Linux */
+#define CONFIG_SYS_BOOTMAPSZ           (256 << 20) /* Initial Memory map for Linux */
 
 /*
  * Core HID Setup
index 539c8c18fbff78634fcfd2cb8709f7fe51a85771..a26de0bcb40a431e6b8f78fba424aa1cec4ef873 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Linux initial memory map */
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Linux initial memory map */
 
 /* Cache Configuration */
 #define CONFIG_SYS_DCACHE_SIZE         32768
index e999e0609dfce25fbf8d155159d52d1cd8bbbc9f..3740316d6b9be54f48586c26aa54cf6bbc3e1880 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 /* Cache Configuration */
 #define CONFIG_SYS_DCACHE_SIZE         32768
index 718abdf42b25bfef1027849a03464cecabe0031a..f073fcd7d848c76fcdd9bebec27e8906035f6f90 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
 /* Initial Memory map for Linux */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)
 
 /* Cache Configuration */
 #define CONFIG_SYS_DCACHE_SIZE         32768
index e85e8f7ef41e1d67ade5df70091d7ac419c7d2af..b8f4b6eee8467d4d262e1a8481407222b577054a 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 #define CONFIG_SYS_RCWH_PCIHOST 0x80000000 /* PCIHOST  */
 
index 56d24f90140b3e6f7c988afdae52856b347653f4..45976db217a44ccf2771a318b539fbf011c52d35 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Initial Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Initial Memory map for Linux*/
 
 /* 0x64050000 */
 #define CONFIG_SYS_HRCW_LOW (\
index ec533b8f356e0352b48ac20542a29eb8737fade0..f2fb59203f714c3379fcc881fc65b32a089722eb 100644 (file)
 
 /*
  * For booting Linux, the board info and command line data
- * have to be in the first 8 MB of memory, since this is
+ * have to be in the first 256 MB of memory, since this is
  * the maximum mapped by the Linux kernel during initialization.
  */
-#define CONFIG_SYS_BOOTMAPSZ   (8 << 20)       /* Init Memory map for Linux*/
+#define CONFIG_SYS_BOOTMAPSZ   (256 << 20)     /* Init Memory map for Linux*/
 
 #define CONFIG_SYS_RCWH_PCIHOST 0x80000000 /* PCIHOST  */