[PATCH] arm: kirkwood: Enable bootstd and other modernization for OpenRD boards

Stefan Roese sr at denx.de
Fri Nov 29 09:22:36 CET 2024


On 27.11.24 01:57, Tony Dinh wrote:
> Enable bootstd for OpenRD boards
> Update defconfigs to the latest u-boot requirements
> Remove JFFS2 support. See JFFS2 Vulnerability[1].
> Move default envs to text-base environment
> 
> [1] https://lore.kernel.org/u-boot/20241114233005.GN3600562@bill-the-cat/T/#m2fc25da1d2c019bc3cd8676991fdd64b8a21aa9b
> 
> Signed-off-by: Tony Dinh <mibodhi at gmail.com>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
> 
>   arch/arm/mach-kirkwood/Kconfig    |  1 +
>   board/Marvell/openrd/openrd.env   | 20 ++++++++++++++++++++
>   configs/openrd_base_defconfig     | 18 +++++-------------
>   configs/openrd_client_defconfig   | 18 +++++-------------
>   configs/openrd_ultimate_defconfig | 18 +++++-------------
>   include/configs/openrd.h          | 18 ------------------
>   6 files changed, 36 insertions(+), 57 deletions(-)
>   create mode 100644 board/Marvell/openrd/openrd.env
> 
> diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
> index 031d4e5ecd..6761a9cb39 100644
> --- a/arch/arm/mach-kirkwood/Kconfig
> +++ b/arch/arm/mach-kirkwood/Kconfig
> @@ -38,6 +38,7 @@ config TARGET_OPENRD
>   	bool "Marvell OpenRD Board"
>   	select KW88F6281
>   	select SHEEVA_88SV131
> +	select KIRKWOOD_COMMON
>   
>   config TARGET_DREAMPLUG
>   	bool "DreamPlug Board"
> diff --git a/board/Marvell/openrd/openrd.env b/board/Marvell/openrd/openrd.env
> new file mode 100644
> index 0000000000..70ca704b73
> --- /dev/null
> +++ b/board/Marvell/openrd/openrd.env
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (C) 2024 Tony Dinh <mibodhi at gmail.com>
> + *
> + *  Environment variables configurations
> + */
> +
> +kernel_addr_r=0x800000
> +fdt_addr_r=0x2c00000
> +ramdisk_addr_r=0x01100000
> +scriptaddr=0x200000
> +fdtfile=CONFIG_DEFAULT_DEVICE_TREE.dtb
> +mtdparts=CONFIG_MTDPARTS_DEFAULT
> +console=ttyS0,115200
> +
> +/* Standard Boot */
> +bootcmd=
> +	bootflow scan -lb
> +failed=
> +	echo CONFIG_SYS_BOARD boot failed - please check your image
> diff --git a/configs/openrd_base_defconfig b/configs/openrd_base_defconfig
> index 708bf5eefd..1ca0b45d93 100644
> --- a/configs/openrd_base_defconfig
> +++ b/configs/openrd_base_defconfig
> @@ -4,22 +4,22 @@ CONFIG_SYS_DCACHE_OFF=y
>   CONFIG_ARCH_CPU_INIT=y
>   CONFIG_SYS_THUMB_BUILD=y
>   CONFIG_ARCH_KIRKWOOD=y
> +CONFIG_SUPPORT_PASSING_ATAGS=y
> +CONFIG_CMDLINE_TAG=y
> +CONFIG_INITRD_TAG=y
>   CONFIG_SYS_KWD_CONFIG="board/Marvell/openrd/kwbimage.cfg"
>   CONFIG_TEXT_BASE=0x600000
>   CONFIG_NR_DRAM_BANKS=2
> -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc8012000
>   CONFIG_TARGET_OPENRD=y
>   CONFIG_ENV_SIZE=0x20000
>   CONFIG_ENV_OFFSET=0x80000
>   CONFIG_DEFAULT_DEVICE_TREE="marvell/kirkwood-openrd-base"
>   CONFIG_SYS_LOAD_ADDR=0x800000
>   CONFIG_IDENT_STRING="\nOpenRD-Base"
> -# CONFIG_SYS_MALLOC_F is not set
>   CONFIG_HAS_BOARD_SIZE_LIMIT=y
>   CONFIG_BOARD_SIZE_LIMIT=524288
> +CONFIG_BOOTSTD_FULL=y
>   CONFIG_BOOTDELAY=3
> -CONFIG_USE_BOOTCOMMAND=y
> -CONFIG_BOOTCOMMAND="${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; ${x_bootcmd_usb}; bootm 0x6400000;"
>   CONFIG_USE_PREBOOT=y
>   CONFIG_LOGLEVEL=2
>   # CONFIG_DISPLAY_BOARDINFO is not set
> @@ -30,23 +30,17 @@ CONFIG_CMD_MMC=y
>   CONFIG_CMD_NAND=y
>   CONFIG_CMD_USB=y
>   # CONFIG_CMD_SETEXPR is not set
> -CONFIG_CMD_DHCP=y
> -CONFIG_CMD_MII=y
> -CONFIG_CMD_PING=y
> -CONFIG_CMD_EXT2=y
> -CONFIG_CMD_FAT=y
> -CONFIG_CMD_JFFS2=y
>   CONFIG_CMD_MTDPARTS=y
>   CONFIG_MTDIDS_DEFAULT="nand0=nand_mtd"
>   CONFIG_MTDPARTS_DEFAULT="mtdparts=nand_mtd:0x100000 at 0x000000(uboot),0x400000 at 0x100000(uImage),0x1fb00000 at 0x500000(rootfs)"
>   CONFIG_CMD_UBI=y
> -CONFIG_ISO_PARTITION=y
>   CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_SYS_FAULT_ECHO_LINK_DOWN=y
> +CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_SYS_ATA_STRIDE=4
>   CONFIG_SYS_ATA_DATA_OFFSET=0x100
>   CONFIG_SYS_ATA_REG_OFFSET=0x100
> @@ -59,7 +53,5 @@ CONFIG_MTD=y
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_MVGBE=y
>   CONFIG_MII=y
> -CONFIG_SYS_NS16550_SERIAL=y
> -CONFIG_SYS_NS16550_REG_SIZE=-4
>   CONFIG_USB=y
>   CONFIG_USB_EHCI_HCD=y
> diff --git a/configs/openrd_client_defconfig b/configs/openrd_client_defconfig
> index 82a9c77761..e0cc2e65db 100644
> --- a/configs/openrd_client_defconfig
> +++ b/configs/openrd_client_defconfig
> @@ -4,10 +4,12 @@ CONFIG_SYS_DCACHE_OFF=y
>   CONFIG_ARCH_CPU_INIT=y
>   CONFIG_SYS_THUMB_BUILD=y
>   CONFIG_ARCH_KIRKWOOD=y
> +CONFIG_SUPPORT_PASSING_ATAGS=y
> +CONFIG_CMDLINE_TAG=y
> +CONFIG_INITRD_TAG=y
>   CONFIG_SYS_KWD_CONFIG="board/Marvell/openrd/kwbimage.cfg"
>   CONFIG_TEXT_BASE=0x600000
>   CONFIG_NR_DRAM_BANKS=2
> -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc8012000
>   CONFIG_TARGET_OPENRD=y
>   CONFIG_BOARD_IS_OPENRD_CLIENT=y
>   CONFIG_ENV_SIZE=0x20000
> @@ -15,12 +17,10 @@ CONFIG_ENV_OFFSET=0x80000
>   CONFIG_DEFAULT_DEVICE_TREE="marvell/kirkwood-openrd-client"
>   CONFIG_SYS_LOAD_ADDR=0x800000
>   CONFIG_IDENT_STRING="\nOpenRD-Client"
> -# CONFIG_SYS_MALLOC_F is not set
>   CONFIG_HAS_BOARD_SIZE_LIMIT=y
>   CONFIG_BOARD_SIZE_LIMIT=524288
> +CONFIG_BOOTSTD_FULL=y
>   CONFIG_BOOTDELAY=3
> -CONFIG_USE_BOOTCOMMAND=y
> -CONFIG_BOOTCOMMAND="${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; ${x_bootcmd_usb}; bootm 0x6400000;"
>   CONFIG_USE_PREBOOT=y
>   CONFIG_LOGLEVEL=2
>   # CONFIG_DISPLAY_BOARDINFO is not set
> @@ -31,23 +31,17 @@ CONFIG_CMD_MMC=y
>   CONFIG_CMD_NAND=y
>   CONFIG_CMD_USB=y
>   # CONFIG_CMD_SETEXPR is not set
> -CONFIG_CMD_DHCP=y
> -CONFIG_CMD_MII=y
> -CONFIG_CMD_PING=y
> -CONFIG_CMD_EXT2=y
> -CONFIG_CMD_FAT=y
> -CONFIG_CMD_JFFS2=y
>   CONFIG_CMD_MTDPARTS=y
>   CONFIG_MTDIDS_DEFAULT="nand0=nand_mtd"
>   CONFIG_MTDPARTS_DEFAULT="mtdparts=nand_mtd:0x100000 at 0x000000(uboot),0x400000 at 0x100000(uImage),0x1fb00000 at 0x500000(rootfs)"
>   CONFIG_CMD_UBI=y
> -CONFIG_ISO_PARTITION=y
>   CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_SYS_FAULT_ECHO_LINK_DOWN=y
> +CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_SYS_ATA_STRIDE=4
>   CONFIG_SYS_ATA_DATA_OFFSET=0x100
>   CONFIG_SYS_ATA_REG_OFFSET=0x100
> @@ -60,7 +54,5 @@ CONFIG_MTD=y
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_MVGBE=y
>   CONFIG_MII=y
> -CONFIG_SYS_NS16550_SERIAL=y
> -CONFIG_SYS_NS16550_REG_SIZE=-4
>   CONFIG_USB=y
>   CONFIG_USB_EHCI_HCD=y
> diff --git a/configs/openrd_ultimate_defconfig b/configs/openrd_ultimate_defconfig
> index 10b46e2ec1..a115691daa 100644
> --- a/configs/openrd_ultimate_defconfig
> +++ b/configs/openrd_ultimate_defconfig
> @@ -4,10 +4,12 @@ CONFIG_SYS_DCACHE_OFF=y
>   CONFIG_ARCH_CPU_INIT=y
>   CONFIG_SYS_THUMB_BUILD=y
>   CONFIG_ARCH_KIRKWOOD=y
> +CONFIG_SUPPORT_PASSING_ATAGS=y
> +CONFIG_CMDLINE_TAG=y
> +CONFIG_INITRD_TAG=y
>   CONFIG_SYS_KWD_CONFIG="board/Marvell/openrd/kwbimage.cfg"
>   CONFIG_TEXT_BASE=0x600000
>   CONFIG_NR_DRAM_BANKS=2
> -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc8012000
>   CONFIG_TARGET_OPENRD=y
>   CONFIG_BOARD_IS_OPENRD_ULTIMATE=y
>   CONFIG_ENV_SIZE=0x20000
> @@ -15,12 +17,10 @@ CONFIG_ENV_OFFSET=0x80000
>   CONFIG_DEFAULT_DEVICE_TREE="marvell/kirkwood-openrd-ultimate"
>   CONFIG_SYS_LOAD_ADDR=0x800000
>   CONFIG_IDENT_STRING="\nOpenRD-Ultimate"
> -# CONFIG_SYS_MALLOC_F is not set
>   CONFIG_HAS_BOARD_SIZE_LIMIT=y
>   CONFIG_BOARD_SIZE_LIMIT=524288
> +CONFIG_BOOTSTD_FULL=y
>   CONFIG_BOOTDELAY=3
> -CONFIG_USE_BOOTCOMMAND=y
> -CONFIG_BOOTCOMMAND="${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; ${x_bootcmd_usb}; bootm 0x6400000;"
>   CONFIG_USE_PREBOOT=y
>   CONFIG_LOGLEVEL=2
>   # CONFIG_DISPLAY_BOARDINFO is not set
> @@ -31,23 +31,17 @@ CONFIG_CMD_MMC=y
>   CONFIG_CMD_NAND=y
>   CONFIG_CMD_USB=y
>   # CONFIG_CMD_SETEXPR is not set
> -CONFIG_CMD_DHCP=y
> -CONFIG_CMD_MII=y
> -CONFIG_CMD_PING=y
> -CONFIG_CMD_EXT2=y
> -CONFIG_CMD_FAT=y
> -CONFIG_CMD_JFFS2=y
>   CONFIG_CMD_MTDPARTS=y
>   CONFIG_MTDIDS_DEFAULT="nand0=nand_mtd"
>   CONFIG_MTDPARTS_DEFAULT="mtdparts=nand_mtd:0x100000 at 0x000000(uboot),0x400000 at 0x100000(uImage),0x1fb00000 at 0x500000(rootfs)"
>   CONFIG_CMD_UBI=y
> -CONFIG_ISO_PARTITION=y
>   CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_SYS_FAULT_ECHO_LINK_DOWN=y
> +CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_SYS_ATA_STRIDE=4
>   CONFIG_SYS_ATA_DATA_OFFSET=0x100
>   CONFIG_SYS_ATA_REG_OFFSET=0x100
> @@ -60,7 +54,5 @@ CONFIG_MTD=y
>   CONFIG_MTD_RAW_NAND=y
>   CONFIG_MVGBE=y
>   CONFIG_MII=y
> -CONFIG_SYS_NS16550_SERIAL=y
> -CONFIG_SYS_NS16550_REG_SIZE=-4
>   CONFIG_USB=y
>   CONFIG_USB_EHCI_HCD=y
> diff --git a/include/configs/openrd.h b/include/configs/openrd.h
> index 1e6b16b4e7..f91e62a2e4 100644
> --- a/include/configs/openrd.h
> +++ b/include/configs/openrd.h
> @@ -15,22 +15,4 @@
>   
>   #include "mv-common.h"
>   
> -/*
> - *  Environment variables configurations
> - */
> -/*
> - * max 4k env size is enough, but in case of nand
> - * it has to be rounded to sector size
> - */
> -
> -/*
> - * Default environment variables
> - */
> -
> -#define CFG_EXTRA_ENV_SETTINGS	"x_bootargs=console=ttyS0,115200 " \
> -	CONFIG_MTDPARTS_DEFAULT " rw ubi.mtd=2,2048\0" \
> -	"x_bootcmd_kernel=nand read 0x6400000 0x100000 0x300000\0"	\
> -	"x_bootcmd_usb=usb start\0"					\
> -	"x_bootargs_root=root=ubi0:rootfs rootfstype=ubifs\0"
> -
>   #endif /* _CONFIG_OPENRD_BASE_H */

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de



More information about the U-Boot mailing list