[U-Boot] [PATCH 0/3] Improved NAND support for mx28evk

This patchset improves the mx28evk default environment so it is easier to use by users when testing the NAND support.
It provides a set of new environment routines as:
- update_nand_kernel - update_nand_fdt - update_nand_filesystem
and allow for easy NAND boot using:
'run nandboot'
This has been tested using:
Samsung 4G NAND, part-#: K9LBG08U0D-PCB0
Otavio Salvador (3): mx28evk: Use 512k for fdt partition to align it mx28evk: Add 'nandboot' environment command mx28evk: Extend environment to easy write of NAND system
include/configs/mx28evk.h | 55 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-)

Using 512k for fdt partition allow it to be aligned with the other small partitions and 512k erase block size.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- include/configs/mx28evk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index 07f88ca..27b1a41 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -97,7 +97,7 @@ "512k(environment)," \ "512k(redundant-environment)," \ "4m(kernel)," \ - "128k(fdt)," \ + "512k(fdt)," \ "8m(ramdisk)," \ "-(filesystem)" #endif

This reads the kernel, ftd and boot into ubifs filesystem. While on that, the SD firmware filename definition has been moved next to the other SD related commands.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- include/configs/mx28evk.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index 27b1a41..e40df09 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -163,7 +163,6 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "update_nand_full_filename=u-boot.nand\0" \ "update_nand_firmware_filename=u-boot.sb\0" \ - "update_sd_firmware_filename=u-boot.sd\0" \ "update_nand_firmware_maxsz=0x100000\0" \ "update_nand_stride=0x40\0" /* MX28 datasheet ch. 12.12 */ \ "update_nand_count=0x4\0" /* MX28 datasheet ch. 12.12 */ \ @@ -191,6 +190,23 @@ "nand write ${loadaddr} ${fcb_sz} ${filesize} ; " \ "nand write ${loadaddr} ${fw_off} ${filesize} ; " \ "fi\0" \ + "nandargs=setenv bootargs console=${console_mainline},${baudrate} " \ + "rootfstype=ubifs ubi.mtd=6 root=ubi0_0 ${mtdparts}\0" \ + "nandboot=" /* Boot from NAND */ \ + "mtdparts default; " \ + "run nandargs; " \ + "nand read ${loadaddr} kernel 0x00400000; " \ + "if test ${boot_fdt} = yes; then " \ + "nand read ${fdt_addr} fdt 0x00080000; " \ + "bootm ${loadaddr} - ${fdt_addr}; " \ + "else " \ + "if test ${boot_fdt} = no; then " \ + "bootm; " \ + "else " \ + "echo "ERROR: Set boot_fdt to yes or no."; " \ + "fi; " \ + "fi\0" \ + "update_sd_firmware_filename=u-boot.sd\0" \ "update_sd_firmware=" /* Update the SD firmware partition */ \ "if mmc rescan ; then " \ "if tftp ${update_sd_firmware_filename} ; then " \

This adds following new targets:
- update_nand_kernel - update_nand_fdt - update_nand_filesystem
and to avoid confusion, the 'update_nand_full' has been renamed to 'update_nand_firmware_full'.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br --- include/configs/mx28evk.h | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h index e40df09..5e43226 100644 --- a/include/configs/mx28evk.h +++ b/include/configs/mx28evk.h @@ -161,6 +161,7 @@
/* Extra Environment */ #define CONFIG_EXTRA_ENV_SETTINGS \ + "ubifs_file=filesystem.ubifs\0" \ "update_nand_full_filename=u-boot.nand\0" \ "update_nand_firmware_filename=u-boot.sb\0" \ "update_nand_firmware_maxsz=0x100000\0" \ @@ -171,7 +172,7 @@ "nand info ; " \ "setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \ "setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \ - "update_nand_full=" /* Update FCB, DBBT and FW */ \ + "update_nand_firmware_full=" /* Update FCB, DBBT and FW */ \ "if tftp ${update_nand_full_filename} ; then " \ "run update_nand_get_fcb_size ; " \ "nand scrub -y 0x0 ${filesize} ; " \ @@ -190,6 +191,38 @@ "nand write ${loadaddr} ${fcb_sz} ${filesize} ; " \ "nand write ${loadaddr} ${fw_off} ${filesize} ; " \ "fi\0" \ + "update_nand_kernel=" /* Update kernel */ \ + "mtdparts default; " \ + "nand erase.part kernel; " \ + "if test ${ip_dyn} = yes; then " \ + "setenv get_cmd dhcp; " \ + "else " \ + "setenv get_cmd tftp; " \ + "fi; " \ + "${get_cmd} ${uimage}; " \ + "nand write ${loadaddr} kernel ${filesize}\0" \ + "update_nand_fdt=" /* Update fdt */ \ + "mtdparts default; " \ + "nand erase.part fdt; " \ + "if test ${ip_dyn} = yes; then " \ + "setenv get_cmd dhcp; " \ + "else " \ + "setenv get_cmd tftp; " \ + "fi; " \ + "${get_cmd} ${fdt_file}; " \ + "nand write ${loadaddr} fdt ${filesize}\0" \ + "update_nand_filesystem=" /* Update filesystem */ \ + "mtdparts default; " \ + "nand erase.part filesystem; " \ + "if test ${ip_dyn} = yes; then " \ + "setenv get_cmd dhcp; " \ + "else " \ + "setenv get_cmd tftp; " \ + "fi; " \ + "${get_cmd} ${ubifs_file}; " \ + "ubi part filesystem; " \ + "ubi create filesystem; " \ + "ubi write ${loadaddr} filesystem ${filesize}\0" \ "nandargs=setenv bootargs console=${console_mainline},${baudrate} " \ "rootfstype=ubifs ubi.mtd=6 root=ubi0_0 ${mtdparts}\0" \ "nandboot=" /* Boot from NAND */ \
participants (1)
-
Otavio Salvador