Skip to contentSkip to conversation

ARM: at91 series: increase size for u-boot and change bootargs

PATCH Superseded Bo Shen 2 participants 3 messages Nov 13, 2012 – Nov 27, 2012 Arm/Microchip (AT91) SoC support

lore
Share & tools
lore

Bo Shen

author
#0 lore raw

PATCH v2 1/1 ARM: at91 series: increase size for u-boot and change bootargs

As to more features are added into the u-boot, which cause the u-boot size larger than 0x40000 (256KiB), so increase the size for u-boot through move offset of the u-boot environment. Or else, when execute saveenv command, which will erase the end of the u-boot causing it can not boot up again.

Also, the linux kernel image is bigger than 2MiB, so change the bootcmd as the same time.

---
Change since v1:
change the bootargs as to the size of mainline linux kernel image size

---
 include/configs/at91sam9260ek.h    |   17 ++++++++---------
 include/configs/at91sam9261ek.h    |   17 ++++++++---------
 include/configs/at91sam9263ek.h    |   15 ++++++++-------
 include/configs/at91sam9m10g45ek.h |   15 +++++++--------
 4 files changed, 31 insertions(+), 33 deletions(-)
include/configs/at91sam9260ek.h +8 -9
index f921fac..905d5c5 100644
@@ -210,16 +210,15 @@
 
 /* bootstrap + u-boot + env + linux in nandflash */
 #define CONFIG_ENV_IS_IN_NAND	1
-#define CONFIG_ENV_OFFSET		0x60000
-#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_OFFSET		0xc0000
+#define CONFIG_ENV_OFFSET_REDUND	0x100000
 #define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
-#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
-#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
-				"root=/dev/mtdblock5 "			\
-				"mtdparts=atmel_nand:128k(bootstrap)ro,"	\
-				"256k(uboot)ro,128k(env1)ro,"		\
-				"128k(env2)ro,2M(linux),-(root) "	\
-				"rw rootfstype=jffs2"
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0x200000 0x300000; bootm"
+#define CONFIG_BOOTARGS							\
+	"console=ttyS0,115200 earlyprintk "				\
+	"mtdparts=atmel_nand:"						\
+	"8M(bootstrap/uboot/kernel)ro,-(rootfs) "			\
+	"root=/dev/mtdblock1 rw rootfstype=jffs2"
 
 #endif
 
include/configs/at91sam9261ek.h +8 -9
index 611e3e2..fc7643b 100644
@@ -212,16 +212,15 @@
 
 /* bootstrap + u-boot + env + linux in nandflash */
 #define CONFIG_ENV_IS_IN_NAND
-#define CONFIG_ENV_OFFSET		0x60000
-#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_OFFSET		0xc0000
+#define CONFIG_ENV_OFFSET_REDUND	0x100000
 #define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
-#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
-#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
-				"root=/dev/mtdblock5 "			\
-				"mtdparts=atmel_nand:128k(bootstrap)ro,"	\
-				"256k(uboot)ro,128k(env1)ro,"		\
-				"128k(env2)ro,2M(linux),-(root) "	\
-				"rw rootfstype=jffs2"
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0x200000 0x300000; bootm"
+#define CONFIG_BOOTARGS							\
+	"console=ttyS0,115200 earlyprintk "				\
+	"mtdparts=atmel_nand:"						\
+	"8M(bootstrap/uboot/kernel)ro,-(rootfs) "			\
+	"root=/dev/mtdblock1 rw rootfstype=jffs2"
 
 #endif
 
include/configs/at91sam9263ek.h +8 -7
index 3503822..fb94bc7 100644
@@ -324,14 +324,15 @@
 
 /* bootstrap + u-boot + env + linux in nandflash */
 #define CONFIG_ENV_IS_IN_NAND		1
-#define CONFIG_ENV_OFFSET		0x60000
-#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_OFFSET		0xc0000
+#define CONFIG_ENV_OFFSET_REDUND	0x100000
 #define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
-#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
-#define CONFIG_BOOTARGS		"console=ttyS0,115200 " \
-				"root=/dev/mtdblock5 " \
-				"mtdparts=atmel_nand:128k(bootstrap)ro,256k(uboot)ro,128k(env1)ro,128k(env2)ro,2M(linux),-(root) " \
-				"rw rootfstype=jffs2"
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0x200000 0x300000; bootm"
+#define CONFIG_BOOTARGS							\
+	"console=ttyS0,115200 earlyprintk "				\
+	"mtdparts=atmel_nand:"						\
+	"8M(bootstrap/uboot/kernel)ro,-(rootfs) "			\
+	"root=/dev/mtdblock1 rw rootfstype=jffs2"
 
 #endif
 
include/configs/at91sam9m10g45ek.h +7 -8
index e988d81..a09acd1 100644
@@ -149,19 +149,18 @@
 
 /* bootstrap + u-boot + env in nandflash */
 #define CONFIG_ENV_IS_IN_NAND
-#define CONFIG_ENV_OFFSET		0x60000
-#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_OFFSET		0xc0000
+#define CONFIG_ENV_OFFSET_REDUND	0x100000
 #define CONFIG_ENV_SIZE			0x20000
 
-#define CONFIG_BOOTCOMMAND	"nand read 0x70000000 0x100000 0x200000;" \
+#define CONFIG_BOOTCOMMAND						\
+	"nand read 0x70000000 0x200000 0x300000;"			\
 	"bootm 0x70000000"
 #define CONFIG_BOOTARGS							\
 	"console=ttyS0,115200 earlyprintk "				\
-	"root=/dev/mtdblock5 "						\
-	"mtdparts=atmel_nand:128k(bootstrap)ro,"			\
-	"256k(uboot)ro,128k(env1)ro,128k(env2)ro,"			\
-	"2M at 1M(linux),-(root) "						\
-	"rw rootfstype=jffs2"
+	"mtdparts=atmel_nand:"						\
+	"8M(bootstrap/uboot/kernel)ro,-(rootfs) "			\
+	"root=/dev/mtdblock1 rw rootfstype=jffs2"
 
 #define CONFIG_BAUDRATE			115200
 
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH v2 1/1 ARM: at91 series: increase size for u-boot and change bootargs

Dear Bo Shen,

Quoted 36 lines · Bo Shen

As to more features are added into the u-boot, which cause the u-boot size larger than 0x40000 (256KiB), so increase the size for u-boot through move offset of the u-boot environment. Or else, when execute saveenv command, which will erase the end of the u-boot causing it can not boot up again.

Also, the linux kernel image is bigger than 2MiB, so change the bootcmd as the same time.

---
Change since v1:
change the bootargs as to the size of mainline linux kernel image size

---
 include/configs/at91sam9260ek.h    |   17 ++++++++---------
 include/configs/at91sam9261ek.h    |   17 ++++++++---------
 include/configs/at91sam9263ek.h    |   15 ++++++++-------
 include/configs/at91sam9m10g45ek.h |   15 +++++++--------
 4 files changed, 31 insertions(+), 33 deletions(-)
include/configs/at91sam9260ek.h +2 -5
index f921fac..905d5c5 100644
@@ -210,16 +210,15 @@
 
 /* bootstrap + u-boot + env + linux in nandflash */
 #define CONFIG_ENV_IS_IN_NAND	1
-#define CONFIG_ENV_OFFSET		0x60000
-#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_OFFSET		0xc0000
+#define CONFIG_ENV_OFFSET_REDUND	0x100000
 #define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
-#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
-#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
-				"root=/dev/mtdblock5 "			\

include/configs/at91sam9260ek.h line 221

Quoted 10 lines
include/configs/at91sam9260ek.h +6 -4
-				"mtdparts=atmel_nand:128k(bootstrap)ro,"	\
-				"256k(uboot)ro,128k(env1)ro,"		\
-				"128k(env2)ro,2M(linux),-(root) "	\
-				"rw rootfstype=jffs2"
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0x200000 0x300000; bootm"
+#define CONFIG_BOOTARGS							\
+	"console=ttyS0,115200 earlyprintk "				\
+	"mtdparts=atmel_nand:"						\
+	"8M(bootstrap/uboot/kernel)ro,-(rootfs) "			\
+	"root=/dev/mtdblock1 rw rootfstype=jffs2"

I personally prefer to change bootlaoder related stuff also from linux. With this change you can not access the env partition from linux therefore you can never use tools like fw_pritnenv/fw_setenv. Can you please change this to a reasonable configuration. I think current setups will require about 1 sector for bootstrap, 1 or 2 sectors for each env, about 4 to 6 sectors for u-boot, another bunch of sectors for linux and maybe some place to store a configuration blob (think of 'Falcon mode' or FDT).

Best regards

Andreas Bie?mann

author
#2 lore raw

PATCH v2 1/1 ARM: at91 series: increase size for u-boot and change bootargs

Hi Andreas,

Quoted 50 lines · Andreas Bie?mann

Dear Bo Shen,

Quoted 36 lines · Bo Shen

As to more features are added into the u-boot, which cause the u-boot size larger than 0x40000 (256KiB), so increase the size for u-boot through move offset of the u-boot environment. Or else, when execute saveenv command, which will erase the end of the u-boot causing it can not boot up again.

Also, the linux kernel image is bigger than 2MiB, so change the bootcmd as the same time.

---
Change since v1:
change the bootargs as to the size of mainline linux kernel image size

---
  include/configs/at91sam9260ek.h    |   17 ++++++++---------
  include/configs/at91sam9261ek.h    |   17 ++++++++---------
  include/configs/at91sam9263ek.h    |   15 ++++++++-------
  include/configs/at91sam9m10g45ek.h |   15 +++++++--------
  4 files changed, 31 insertions(+), 33 deletions(-)
include/configs/at91sam9260ek.h +2 -5
index f921fac..905d5c5 100644
@@ -210,16 +210,15 @@
 
  /* bootstrap + u-boot + env + linux in nandflash */
  #define CONFIG_ENV_IS_IN_NAND	1
-#define CONFIG_ENV_OFFSET		0x60000
-#define CONFIG_ENV_OFFSET_REDUND	0x80000
+#define CONFIG_ENV_OFFSET		0xc0000
+#define CONFIG_ENV_OFFSET_REDUND	0x100000
  #define CONFIG_ENV_SIZE		0x20000		/* 1 sector = 128 kB */
-#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0xA0000 0x200000; bootm"
-#define CONFIG_BOOTARGS		"console=ttyS0,115200 "			\
-				"root=/dev/mtdblock5 "			\

include/configs/at91sam9260ek.h line 221

Quoted 10 lines
include/configs/at91sam9260ek.h +6 -4
-				"mtdparts=atmel_nand:128k(bootstrap)ro,"	\
-				"256k(uboot)ro,128k(env1)ro,"		\
-				"128k(env2)ro,2M(linux),-(root) "	\
-				"rw rootfstype=jffs2"
+#define CONFIG_BOOTCOMMAND	"nand read 0x22000000 0x200000 0x300000; bootm"
+#define CONFIG_BOOTARGS							\
+	"console=ttyS0,115200 earlyprintk "				\
+	"mtdparts=atmel_nand:"						\
+	"8M(bootstrap/uboot/kernel)ro,-(rootfs) "			\
+	"root=/dev/mtdblock1 rw rootfstype=jffs2"
Quoted 8 lines

I personally prefer to change bootlaoder related stuff also from linux. With this change you can not access the env partition from linux therefore you can never use tools like fw_pritnenv/fw_setenv. Can you please change this to a reasonable configuration. I think current setups will require about 1 sector for bootstrap, 1 or 2 sectors for each env, about 4 to 6 sectors for u-boot, another bunch of sectors for linux and maybe some place to store a configuration blob (think of 'Falcon mode' or FDT).

Ok, I will consider this and prepare for the next version. Thanks.

Best Regards,
Bo Shen