On Mon, Jan 30, 2023 at 03:34:01PM +0100, Christophe Leroy wrote:

> Both U-boot and Linux kernel have grown over the last releases
> and don't fit anymore in the 2M EPROM of the board.
> 
> So, rework the setup to allow storing the Linux kernel image
> on the UBIFS NAND Flash.
> 
> Also add support to FIT images as this is what the Linux kernel
> look like nowadays.
> 
> Also increase CONFIG_SYS_BOOTMAPSZ to 32Mbytes and define
> CONFIG_SYS_BOOTM_LEN with the same value, otherwise it defaults
> to 8M which is not sufficient anymore with nowadays Linux kernels.
> 
> Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
> Reviewed-by: FRANJOU Stephane <stephane.fran...@csgroup.eu>
> ---
>  configs/MCR3000_defconfig |  8 ++++++--
>  include/configs/MCR3000.h | 42 ++++++++++++++++++---------------------
>  2 files changed, 25 insertions(+), 25 deletions(-)
> 
> diff --git a/configs/MCR3000_defconfig b/configs/MCR3000_defconfig
> index 6c41d7c88d1..2e9d8c24329 100644
> --- a/configs/MCR3000_defconfig
> +++ b/configs/MCR3000_defconfig
> @@ -20,6 +20,7 @@ CONFIG_SYS_SCCR=0x00C20000
>  CONFIG_SYS_SCCR_MASK=0x60000000
>  CONFIG_SYS_DER=0x2002000F
>  CONFIG_SYS_MONITOR_LEN=327680
> +CONFIG_FIT=y
>  CONFIG_OF_BOARD_SETUP=y
>  CONFIG_SYS_MONITOR_BASE=0x04000000
>  CONFIG_BOOTDELAY=5
> @@ -35,11 +36,12 @@ CONFIG_HUSH_PARSER=y
>  CONFIG_SYS_PBSIZE=278
>  # CONFIG_CMD_BDI is not set
>  # CONFIG_CMD_CONSOLE is not set
> -CONFIG_SYS_BOOTM_LEN=0x800000
> +CONFIG_SYS_BOOTM_LEN=0x2000000
>  # CONFIG_CMD_IMI is not set
>  CONFIG_CMD_ASKENV=y
>  # CONFIG_CMD_LOADB is not set
>  # CONFIG_CMD_LOADS is not set
> +CONFIG_CMD_MTD=y
>  CONFIG_CMD_NAND=y
>  # CONFIG_CMD_ECHO is not set
>  # CONFIG_CMD_ITEST is not set
> @@ -50,6 +52,8 @@ CONFIG_CMD_MII=y
>  CONFIG_MII_INIT=y
>  CONFIG_CMD_PING=y
>  # CONFIG_CMD_SLEEP is not set
> +CONFIG_CMD_MTDPARTS=y
> +CONFIG_CMD_UBI=y
>  CONFIG_OF_CONTROL=y
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_ENV_IS_IN_FLASH=y
> @@ -80,6 +84,7 @@ CONFIG_SYS_BR7_PRELIM=0x1C000001
>  CONFIG_SYS_OR7_PRELIM=0xFFFF810A
>  # CONFIG_MMC is not set
>  CONFIG_MTD=y
> +CONFIG_DM_MTD=y
>  CONFIG_MTD_NOR_FLASH=y
>  CONFIG_FLASH_CFI_DRIVER=y
>  CONFIG_SYS_FLASH_CFI=y
> @@ -89,5 +94,4 @@ CONFIG_MPC8XX_FEC=y
>  # CONFIG_PCI is not set
>  CONFIG_DM_SERIAL=y
>  CONFIG_WDT=y
> -CONFIG_SHA256=y
>  CONFIG_LZMA=y
> diff --git a/include/configs/MCR3000.h b/include/configs/MCR3000.h
> index b0809332bb5..62c3404415c 100644
> --- a/include/configs/MCR3000.h
> +++ b/include/configs/MCR3000.h
> @@ -12,45 +12,40 @@
>  #define CONFIG_EXTRA_ENV_SETTINGS                                    \
>       "sdram_type=SDRAM\0"                                            \
>       "flash_type=AM29LV160DB\0"                                      \
> -     "loadaddr=0x400000\0"                                           \
> -     "filename=uImage.lzma\0"                                        \
> -     "nfsroot=/opt/ofs\0"                                            \
> +     "loadaddr=0x1200000\0"                                          \
> +     "filename=mcr3000.itb\0"                                        \
>       "dhcp_ip=ip=:::::eth0:dhcp\0"                                   \
>       "console_args=console=ttyCPM0,115200N8\0"                       \
> +     "loadkernel=ubi part nand0;ubifsmount ubi0;"                    \
> +             "ubifsload ${loadaddr} /boot/${filename};"              \
> +             "ubifsumount; ubi detach\0"                             \
> +     "bootcmd=run flashboot\0"                                       \
>       "flashboot=setenv bootargs "                                    \
>               "${console_args} "                                      \
>               "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:"     \
>               "mcr3k:eth0:off;"                                       \
>               "${ofl_args}; "                                         \
> -             "bootm 0x04060000 - 0x04050000\0"                       \
> +             "run loadkernel; "                                      \
> +             "bootm ${loadaddr}\0"                                   \
>       "tftpboot=setenv bootargs "                                     \
>               "${console_args} "                                      \
>               "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:"     \
>               "mcr3k:eth0:off "                                       \
>               "${ofl_args}; "                                         \
>               "tftp ${loadaddr} ${filename};"                         \
> -             "tftp 0xf00000 mcr3000.dtb;"                            \
> -             "bootm ${loadaddr} - 0xf00000\0"                        \
> -     "netboot=dhcp ${loadaddr} ${filename};"                         \
> -             "tftp 0xf00000 mcr3000.dtb;"                            \
> -             "setenv bootargs "                                      \
> -             "root=/dev/nfs rw "                                     \
> -             "${console_args} "                                      \
> -             "${dhcp_ip};"                                           \
> -             "bootm ${loadaddr} - 0xf00000\0"                        \
> -     "nfsboot=setenv bootargs "                                      \
> -             "root=/dev/nfs rw nfsroot=${serverip}:${nfsroot} "      \
> -             "${console_args} "                                      \
> -             "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:"     \
> -             "mcr3k:eth0:off;"                                       \
> -             "bootm 0x04060000 - 0x04050000\0"                       \
> +             "bootm ${loadaddr}\0"                                   \
>       "dhcpboot=dhcp ${loadaddr} ${filename};"                        \
> -             "tftp 0xf00000 mcr3000.dtb;"                            \
>               "setenv bootargs "                                      \
>               "${console_args} "                                      \
>               "${dhcp_ip} "                                           \
>               "${ofl_args}; "                                         \
> -             "bootm ${loadaddr} - 0xf00000\0"
> +             "bootm ${loadaddr}\0"                                   \
> +     "update=echo 'Updating ubi image'; "                            \
> +             "if tftp 0x2000 $ubifile; then "                        \
> +             "nand erase.chip; "                                     \
> +             "nand write 0x2000 0x00 $filesize; "                    \
> +             "fi;\0 "
> +

I would like to see this move instead to using the plain text
environment as can be see in commits such as 5c3f6a320678
("dragonboard410c: Migrate to using CONFIG_EXTRA_ENV_TEXT").

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to