mvebu: allow selection of boot device
Subsystems (3)
cover mvebu: allow selection of boot device
Currently the boot device that the generated .kwb image supports is statically set in two places. The BOOT_FROM directive in the per board kwbimage.cfg file, and the CONFIG_SPL_BOOT_DEVICE macro in the board config header file.
The gdsys Controlcenter DC supports build time generation of the kwbimage.cfg file which allows build time selection of the boot device.
This series extends the idea of kwbimage.cfg generation to all 32bit mvebu SoCs. In addition, this series makes Clearfog use the kconfig symbols alone for boot selection, so that no code modification is needed.
The first three patches are cleanup patches that should not change existing behavior.
The fourth patch extends the kwbimage.cfg build time generation support to all mvebu platforms.
The fifth patch adds support for boot from UART.
The last patch removes the static CONFIG_SPL_BOOT_DEVICE definition for Clearfog.
I tested this series on Clearfog Base, booting from SD card, SPI flash, and UART. I ran a number of build tests for other platforms. I would appreciate reports of run tests on affected platforms.
Baruch Siach (6):
mvebu: turris_omnia: use u-boot-spl-dtb.bin
mvebu: a38x: drop duplicate platform id symbols
mvebu: consolidate SPL boot device config symbols
mvebu: select boot device at SoC level
mvebu: support UART boot image
mvebu: clearfog: use kconfig symbols to select boot device
arch/arm/Kconfig | 1 -
.../a38x => arch/arm/mach-mvebu}/.gitignore | 0
arch/arm/mach-mvebu/Kconfig | 17 +++++----
arch/arm/mach-mvebu/Makefile | 33 +++++++++++++++++
arch/arm/mach-mvebu/include/mach/config.h | 4 +--
.../arm/mach-mvebu}/kwbimage.cfg.in | 0
board/CZ.NIC/turris_omnia/kwbimage.cfg | 12 -------
board/Marvell/db-88f6720/kwbimage.cfg | 12 -------
board/Marvell/db-88f6820-amc/kwbimage.cfg | 12 -------
board/Marvell/db-88f6820-gp/kwbimage.cfg | 12 -------
board/Marvell/db-mv784mp-gp/kwbimage.cfg | 12 -------
board/Synology/ds414/kwbimage.cfg | 12 -------
board/gdsys/a38x/Kconfig | 36 -------------------
board/gdsys/a38x/Makefile | 31 ----------------
board/kobol/helios4/kwbimage.cfg | 13 -------
board/maxbcm/kwbimage.cfg | 12 -------
board/solidrun/clearfog/kwbimage.cfg | 12 -------
board/theadorable/kwbimage.cfg | 12 -------
configs/clearfog_defconfig | 2 +-
configs/helios4_defconfig | 2 +-
include/configs/clearfog.h | 16 ++-------
include/configs/turris_omnia.h | 4 +--
22 files changed, 51 insertions(+), 216 deletions(-)
rename {board/gdsys/a38x => arch/arm/mach-mvebu}/.gitignore (100%)
rename {board/gdsys/a38x => arch/arm/mach-mvebu}/kwbimage.cfg.in (100%)
delete mode 100644 board/CZ.NIC/turris_omnia/kwbimage.cfg
delete mode 100644 board/Marvell/db-88f6720/kwbimage.cfg
delete mode 100644 board/Marvell/db-88f6820-amc/kwbimage.cfg
delete mode 100644 board/Marvell/db-88f6820-gp/kwbimage.cfg
delete mode 100644 board/Marvell/db-mv784mp-gp/kwbimage.cfg
delete mode 100644 board/Synology/ds414/kwbimage.cfg
delete mode 100644 board/gdsys/a38x/Kconfig
delete mode 100644 board/kobol/helios4/kwbimage.cfg
delete mode 100644 board/maxbcm/kwbimage.cfg
delete mode 100644 board/solidrun/clearfog/kwbimage.cfg
delete mode 100644 board/theadorable/kwbimage.cfgSignature · 1 line
2.17.1
PATCH 1/6 mvebu: turris_omnia: use u-boot-spl-dtb.bin
u-boot-spl.bin and u-boot-spl-dtb.bin are identical when building the turris_omnia_defconfig. This commit makes Turris Omnia consistent with all other mvebu boards.
--- board/CZ.NIC/turris_omnia/kwbimage.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
board/CZ.NIC/turris_omnia/kwbimage.cfg +1 -1
@@ -9,4 +9,4 @@ VERSION 1 BOOT_FROM spi # Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl.bin 0000005b 00000068 +BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
Signature · 1 line
2.17.1
PATCH 2/6 mvebu: a38x: drop duplicate platform id symbols
In reply to Baruch SiachUse generic mvebu Kconfig symbols like all other mvebu boards.
--- arch/arm/mach-mvebu/Kconfig | 3 +++ board/gdsys/a38x/Kconfig | 12 ------------ 2 files changed, 3 insertions(+), 12 deletions(-)
arch/arm/mach-mvebu/Kconfig +3 -0
@@ -148,6 +148,7 @@ config SYS_BOARD default "ds414" if TARGET_DS414 default "maxbcm" if TARGET_MAXBCM default "theadorable" if TARGET_THEADORABLE + default "a38x" if TARGET_CONTROLCENTERDC config SYS_CONFIG_NAME default "clearfog" if TARGET_CLEARFOG
@@ -163,6 +164,7 @@ config SYS_CONFIG_NAME default "theadorable" if TARGET_THEADORABLE default "turris_omnia" if TARGET_TURRIS_OMNIA default "turris_mox" if TARGET_TURRIS_MOX + default "controlcenterdc" if TARGET_CONTROLCENTERDC config SYS_VENDOR default "Marvell" if TARGET_DB_MV784MP_GP
@@ -176,6 +178,7 @@ config SYS_VENDOR default "Synology" if TARGET_DS414 default "CZ.NIC" if TARGET_TURRIS_OMNIA default "CZ.NIC" if TARGET_TURRIS_MOX + default "gdsys" if TARGET_CONTROLCENTERDC config SYS_SOC default "mvebu"
board/gdsys/a38x/Kconfig +0 -12
@@ -1,17 +1,5 @@ if TARGET_CONTROLCENTERDC -config SYS_BOARD - default "a38x" - -config SYS_VENDOR - default "gdsys" - -config SYS_SOC - default "mvebu" - -config SYS_CONFIG_NAME - default "controlcenterdc" - menu "Controlcenter DC board options" choice
Signature · 1 line
2.17.1
PATCH 3/6 mvebu: consolidate SPL boot device config symbols
In reply to Baruch SiachUse MVEBU_SPL_BOOT_DEVICE_* to select between SPI and MMC, instead of board specific symbols. This commit enables the boot device selection menu to all mvebu platforms, but it is only effective on Turris Omnia and gdsys Controlcenter DC platforms. A following commit will enable boot selection for other platforms.
--- arch/arm/Kconfig | 1 - arch/arm/mach-mvebu/Kconfig | 11 ++++------- board/gdsys/a38x/Kconfig | 24 ------------------------ board/gdsys/a38x/Makefile | 4 ++-- include/configs/turris_omnia.h | 4 ++-- 5 files changed, 8 insertions(+), 36 deletions(-) delete mode 100644 board/gdsys/a38x/Kconfig
arch/arm/Kconfig +0 -1
@@ -1419,7 +1419,6 @@ source "board/freescale/ls1012ardb/Kconfig" source "board/freescale/ls1012afrdm/Kconfig" source "board/freescale/mx35pdk/Kconfig" source "board/freescale/s32v234evb/Kconfig" -source "board/gdsys/a38x/Kconfig" source "board/grinn/chiliboard/Kconfig" source "board/gumstix/pepper/Kconfig" source "board/h2200/Kconfig"
arch/arm/mach-mvebu/Kconfig +4 -7
@@ -183,21 +183,18 @@ config SYS_VENDOR config SYS_SOC default "mvebu" -if TARGET_TURRIS_OMNIA - choice - prompt "Turris Omnia boot method" + prompt "Boot method" -config TURRIS_OMNIA_SPL_BOOT_DEVICE_SPI +config MVEBU_SPL_BOOT_DEVICE_SPI bool "SPI NOR flash" -config TURRIS_OMNIA_SPL_BOOT_DEVICE_MMC +config MVEBU_SPL_BOOT_DEVICE_MMC bool "SDIO/MMC card" + select SPL_LIBDISK_SUPPORT endchoice -endif - config MVEBU_EFUSE bool "Enable eFuse support" default n
board/gdsys/a38x/Kconfig deleted +0 -24
@@ -1,24 +0,0 @@ -if TARGET_CONTROLCENTERDC - -menu "Controlcenter DC board options" - -choice - prompt "Select boot method" - -config SPL_BOOT_DEVICE_SPI - bool "SPI" - -config SPL_BOOT_DEVICE_MMC - bool "MMC" - select SPL_LIBDISK_SUPPORT - -endchoice - -#config SPL_BOOT_DEVICE -# int -# default 1 if SPL_BOOT_DEVICE_SPI -# default 2 if SPL_BOOT_DEVICE_MMC - -endmenu - -endif
board/gdsys/a38x/Makefile +2 -2
@@ -13,10 +13,10 @@ obj-$(CONFIG_TARGET_CONTROLCENTERDC) += hydra.o ihs_phys.o extra-$(CONFIG_TARGET_CONTROLCENTERDC) += kwbimage.cfg KWB_REPLACE += BOOT_FROM -ifneq ($(CONFIG_SPL_BOOT_DEVICE_SPI),) +ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI),) KWB_CFG_BOOT_FROM=spi endif -ifneq ($(CONFIG_SPL_BOOT_DEVICE_MMC),) +ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC),) KWB_CFG_BOOT_FROM=sdio endif
include/configs/turris_omnia.h +2 -2
@@ -93,13 +93,13 @@#define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)#define CONFIG_SPL_DRIVERS_MISC_SUPPORT -#ifdef CONFIG_TURRIS_OMNIA_SPL_BOOT_DEVICE_SPI +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI /* SPL related SPI defines */ # define CONFIG_SYS_SPI_U_BOOT_OFFS 0x24000# define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS#endif -#ifdef CONFIG_TURRIS_OMNIA_SPL_BOOT_DEVICE_MMC +#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC /* SPL related MMC defines */ # define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)# define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
Signature · 1 line
2.17.1
PATCH 4/6 mvebu: select boot device at SoC level
In reply to Baruch SiachMove the gdsys Controlcenter DC specific build time kwbimage.cfg generation code into the mach-mvebu/ directory to be shared by all 32bit mvebu platforms.
Remove board specific kwbimage.cfg files, and use the generated one instead. These files are all identical, with two exceptions. Clearfog and Helios4 use the sdio boot device, whereas all others use spi. Update the defconfigs for the exceptional boards to generate the same kwbimage.cfg as before.
---
.../a38x => arch/arm/mach-mvebu}/.gitignore | 0
arch/arm/mach-mvebu/Makefile | 30 ++++++++++++++++++
arch/arm/mach-mvebu/include/mach/config.h | 4 +--
.../arm/mach-mvebu}/kwbimage.cfg.in | 0
board/CZ.NIC/turris_omnia/kwbimage.cfg | 12 -------
board/Marvell/db-88f6720/kwbimage.cfg | 12 -------
board/Marvell/db-88f6820-amc/kwbimage.cfg | 12 -------
board/Marvell/db-88f6820-gp/kwbimage.cfg | 12 -------
board/Marvell/db-mv784mp-gp/kwbimage.cfg | 12 -------
board/Synology/ds414/kwbimage.cfg | 12 -------
board/gdsys/a38x/Makefile | 31 -------------------
board/kobol/helios4/kwbimage.cfg | 13 --------
board/maxbcm/kwbimage.cfg | 12 -------
board/solidrun/clearfog/kwbimage.cfg | 12 -------
board/theadorable/kwbimage.cfg | 12 -------
configs/clearfog_defconfig | 2 +-
configs/helios4_defconfig | 2 +-
17 files changed, 34 insertions(+), 156 deletions(-)
rename {board/gdsys/a38x => arch/arm/mach-mvebu}/.gitignore (100%)
rename {board/gdsys/a38x => arch/arm/mach-mvebu}/kwbimage.cfg.in (100%)
delete mode 100644 board/CZ.NIC/turris_omnia/kwbimage.cfg
delete mode 100644 board/Marvell/db-88f6720/kwbimage.cfg
delete mode 100644 board/Marvell/db-88f6820-amc/kwbimage.cfg
delete mode 100644 board/Marvell/db-88f6820-gp/kwbimage.cfg
delete mode 100644 board/Marvell/db-mv784mp-gp/kwbimage.cfg
delete mode 100644 board/Synology/ds414/kwbimage.cfg
delete mode 100644 board/kobol/helios4/kwbimage.cfg
delete mode 100644 board/maxbcm/kwbimage.cfg
delete mode 100644 board/solidrun/clearfog/kwbimage.cfg
delete mode 100644 board/theadorable/kwbimage.cfgarch/arm/mach-mvebu/.gitignore renamed from board/gdsys/a38x/.gitignore +0 -0
arch/arm/mach-mvebu/Makefile +30 -0
@@ -25,6 +25,36 @@ obj-$(CONFIG_ARMADA_375) += ../../../drivers/ddr/marvell/axp/xor.o obj-$(CONFIG_ARMADA_38X) += ../../../drivers/ddr/marvell/a38x/xor.o obj-$(CONFIG_ARMADA_XP) += ../../../drivers/ddr/marvell/axp/xor.o obj-$(CONFIG_MVEBU_EFUSE) += efuse.o + +extra-y += kwbimage.cfg + +KWB_REPLACE += BOOT_FROM +ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI),) + KWB_CFG_BOOT_FROM=spi +endif +ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC),) + KWB_CFG_BOOT_FROM=sdio +endif + +ifneq ($(CONFIG_SECURED_MODE_IMAGE),) +KWB_REPLACE += CSK_INDEX +KWB_CFG_CSK_INDEX = $(CONFIG_SECURED_MODE_CSK_INDEX) + +KWB_REPLACE += SEC_BOOT_DEV +KWB_CFG_SEC_BOOT_DEV=$(patsubst "%",%, \ + $(if $(findstring BOOT_SPI_NOR_FLASH,$(CONFIG_SPL_BOOT_DEVICE)),0x34) \ + $(if $(findstring BOOT_SDIO_MMC_CARD,$(CONFIG_SPL_BOOT_DEVICE)),0x31) \ + ) + +KWB_REPLACE += SEC_FUSE_DUMP +KWB_CFG_SEC_FUSE_DUMP = a38x +endif + +$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \ + include/config/auto.conf + $(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V) $(KWB_CFG_$(V))/;)p' \ + <$< >$(dir $<)$(@F) + endif # CONFIG_SPL_BUILD obj-y += gpio.o obj-y += mbus.o
arch/arm/mach-mvebu/include/mach/config.h +2 -2
@@ -32,12 +32,12 @@#endif /* -* By default kwbimage.cfg from board specific folder is used +* By default the generated mvebu kwbimage.cfg is used * If for some board, different configuration file need to be used, * CONFIG_SYS_KWD_CONFIG should be defined in board specific header file */ #ifndef CONFIG_SYS_KWD_CONFIG -#define CONFIG_SYS_KWD_CONFIG $(CONFIG_BOARDDIR)/kwbimage.cfg +#define CONFIG_SYS_KWD_CONFIG arch/arm/mach-mvebu/kwbimage.cfg#endif /* CONFIG_SYS_KWD_CONFIG */ /* Add target to build it automatically upon "make" */
arch/arm/mach-mvebu/kwbimage.cfg.in renamed from board/gdsys/a38x/kwbimage.cfg.in +0 -0
board/CZ.NIC/turris_omnia/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/Marvell/db-88f6720/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/Marvell/db-88f6820-amc/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/Marvell/db-88f6820-gp/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/Marvell/db-mv784mp-gp/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/Synology/ds414/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/gdsys/a38x/Makefile +0 -31
@@ -7,36 +7,5 @@ obj-$(CONFIG_TARGET_CONTROLCENTERDC) += controlcenterdc.o hre.o spl.o keyprogram.o dt_helpers.o ifeq ($(CONFIG_SPL_BUILD),) - obj-$(CONFIG_TARGET_CONTROLCENTERDC) += hydra.o ihs_phys.o - -extra-$(CONFIG_TARGET_CONTROLCENTERDC) += kwbimage.cfg - -KWB_REPLACE += BOOT_FROM -ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI),) - KWB_CFG_BOOT_FROM=spi -endif -ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC),) - KWB_CFG_BOOT_FROM=sdio -endif - -ifneq ($(CONFIG_SECURED_MODE_IMAGE),) -KWB_REPLACE += CSK_INDEX -KWB_CFG_CSK_INDEX = $(CONFIG_SECURED_MODE_CSK_INDEX) - -KWB_REPLACE += SEC_BOOT_DEV -KWB_CFG_SEC_BOOT_DEV=$(patsubst "%",%, \ - $(if $(findstring BOOT_SPI_NOR_FLASH,$(CONFIG_SPL_BOOT_DEVICE)),0x34) \ - $(if $(findstring BOOT_SDIO_MMC_CARD,$(CONFIG_SPL_BOOT_DEVICE)),0x31) \ - ) - -KWB_REPLACE += SEC_FUSE_DUMP -KWB_CFG_SEC_FUSE_DUMP = a38x -endif - -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \ - include/config/auto.conf - $(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V) $(KWB_CFG_$(V))/;)p' \ - <$< >$(dir $<)$(@F) - endif
board/kobol/helios4/kwbimage.cfg deleted +0 -13
@@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+ -# -# Copyright (C) 2015 Stefan Roese <[email protected]> -# - -# Armada 38x use version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM sdio - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/maxbcm/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/solidrun/clearfog/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2015 Stefan Roese <[email protected]> -# - -# Armada 38x use version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM sdio - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
board/theadorable/kwbimage.cfg deleted +0 -12
@@ -1,12 +0,0 @@ -# -# Copyright (C) 2015-2016 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068
configs/clearfog_defconfig +1 -1
@@ -6,12 +6,12 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_TARGET_CLEARFOG=y +CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL=y CONFIG_DEBUG_UART_BASE=0xd0012000 CONFIG_DEBUG_UART_CLOCK=250000000 -CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_DEFAULT_DEVICE_TREE="armada-388-clearfog" CONFIG_DEBUG_UART=y CONFIG_DISTRO_DEFAULTS=y
configs/helios4_defconfig +1 -1
@@ -5,9 +5,9 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_TARGET_HELIOS4=y +CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y -CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL=y CONFIG_DEFAULT_DEVICE_TREE="armada-388-helios4" CONFIG_DEBUG_UART=y
Signature · 1 line
2.17.1
PATCH 5/6 mvebu: support UART boot image
In reply to Baruch SiachThe kwboot utility can use the generated image to boot mvebu SoCs from UART.
--- arch/arm/mach-mvebu/Kconfig | 3 +++ arch/arm/mach-mvebu/Makefile | 3 +++ 2 files changed, 6 insertions(+)
arch/arm/mach-mvebu/Kconfig +3 -0
@@ -193,6 +193,9 @@ config MVEBU_SPL_BOOT_DEVICE_MMC bool "SDIO/MMC card" select SPL_LIBDISK_SUPPORT +config MVEBU_SPL_BOOT_DEVICE_UART + bool "UART" + endchoice config MVEBU_EFUSE
arch/arm/mach-mvebu/Makefile +3 -0
@@ -35,6 +35,9 @@ endif ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC),) KWB_CFG_BOOT_FROM=sdio endif +ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_UART),) + KWB_CFG_BOOT_FROM=uart +endif ifneq ($(CONFIG_SECURED_MODE_IMAGE),) KWB_REPLACE += CSK_INDEX
Signature · 1 line
2.17.1
PATCH 6/6 mvebu: clearfog: use kconfig symbols to select boot device
In reply to Baruch SiachThis allows selection of the boot device at build time without source code modification.
--- include/configs/clearfog.h | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-)
include/configs/clearfog.h +2 -14
@@ -70,16 +70,6 @@"initrd_high=0x10000000\0" /* SPL */ -/* -* Select the boot device here -* -* Currently supported are: -* SPL_BOOT_SPI_NOR_FLASH - Booting via SPI NOR flash -* SPL_BOOT_SDIO_MMC_CARD - Booting via SDIO/MMC card (partition 1) - */ -#define SPL_BOOT_SPI_NOR_FLASH 1 -#define SPL_BOOT_SDIO_MMC_CARD 2 -#define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SDIO_MMC_CARD/* Defines for SPL */ #define CONFIG_SPL_SIZE (140 << 10)
@@ -96,13 +86,11 @@#define CONFIG_SPL_STACK (0x40000000 + ((192 - 16) << 10))#define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4) -#if CONFIG_SPL_BOOT_DEVICE ==SPL_BOOT_SPI_NOR_FLASH +#if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI )/* SPL related SPI defines */ #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x20000#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS -#endif - -#if CONFIG_SPL_BOOT_DEVICE ==SPL_BOOT_SDIO_MMC_CARD +#elif defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC )/* SPL related MMC defines */ #define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
Signature · 1 line
2.17.1
PATCH 4/6 mvebu: select boot device at SoC level
In reply to Baruch SiachHi Baruch,
this patch needs to be rebased on git master as it does not apply.
Thanks
Dennis
El lun, 18-06-2018 a las 21:56 +0300, Baruch Siach escribió:
Quoted 395 lines
Move the gdsys Controlcenter DC specific build time kwbimage.cfg generation code into the mach-mvebu/ directory to be shared by all 32bit
mvebu platforms.Remove board specific kwbimage.cfg files, and use the generated one instead. These files are all identical, with two exceptions. Clearfog and Helios4 use the sdio boot device, whereas all others use spi. Update
the defconfigs for the exceptional boards to generate the same kwbimage.cfg as before.Signed-off-by Baruch Siach <[email protected]>--- .../a38x => arch/arm/mach-mvebu}/.gitignore | 0 arch/arm/mach-mvebu/Makefile | 30 ++++++++++++++++++ arch/arm/mach-mvebu/include/mach/config.h | 4 +-- .../arm/mach-mvebu}/kwbimage.cfg.in | 0 board/CZ.NIC/turris_omnia/kwbimage.cfg | 12 ------- board/Marvell/db-88f6720/kwbimage.cfg | 12 ------- board/Marvell/db-88f6820-amc/kwbimage.cfg | 12 ------- board/Marvell/db-88f6820-gp/kwbimage.cfg | 12 ------- board/Marvell/db-mv784mp-gp/kwbimage.cfg | 12 ------- board/Synology/ds414/kwbimage.cfg | 12 ------- board/gdsys/a38x/Makefile | 31 --------------- ---- board/kobol/helios4/kwbimage.cfg | 13 -------- board/maxbcm/kwbimage.cfg | 12 ------- board/solidrun/clearfog/kwbimage.cfg | 12 ------- board/theadorable/kwbimage.cfg | 12 ------- configs/clearfog_defconfig | 2 +- configs/helios4_defconfig | 2 +- 17 files changed, 34 insertions(+), 156 deletions(-) rename {board/gdsys/a38x => arch/arm/mach-mvebu}/.gitignore (100%) rename {board/gdsys/a38x => arch/arm/mach-mvebu}/kwbimage.cfg.in (100%) delete mode 100644 board/CZ.NIC/turris_omnia/kwbimage.cfg delete mode 100644 board/Marvell/db-88f6720/kwbimage.cfg delete mode 100644 board/Marvell/db-88f6820-amc/kwbimage.cfg delete mode 100644 board/Marvell/db-88f6820-gp/kwbimage.cfg delete mode 100644 board/Marvell/db-mv784mp-gp/kwbimage.cfg delete mode 100644 board/Synology/ds414/kwbimage.cfg delete mode 100644 board/kobol/helios4/kwbimage.cfg delete mode 100644 board/maxbcm/kwbimage.cfg delete mode 100644 board/solidrun/clearfog/kwbimage.cfg delete mode 100644 board/theadorable/kwbimage.cfgarch/arm/mach- renamed from board/gdsys/a38x/.gitignore +0
-0mvebu/.gitignore
similarity index 100%
rename from board/gdsys/a38x/.gitignore
rename toarch/arm/mach-mvebu/.gitignorearch/arm/mach- renamed from arch/arm/mach-mvebu/Makefile +0
-0mvebu/Makefile
indexade7b870646f..d907fac3752d100644arch/arm/mach-mvebu/Makefile +0
-0@@ -25,6 +25,36 @@ obj-$(CONFIG_ARMADA_375) +=
../../../drivers/ddr/marvell/axp/xor.o
obj-$(CONFIG_ARMADA_38X) +=../../../drivers/ddr/marvell/a38x/xor.oobj-$(CONFIG_ARMADA_XP) +=../../../drivers/ddr/marvell/axp/xor.oobj-$(CONFIG_MVEBU_EFUSE) += efuse.oarch/arm/mach-mvebu/Makefile +18
-0+ +extra-y += kwbimage.cfg + +KWB_REPLACE += BOOT_FROM +ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI),) + KWB_CFG_BOOT_FROM=spi +endif +ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC),) + KWB_CFG_BOOT_FROM=sdio +endif + +ifneq ($(CONFIG_SECURED_MODE_IMAGE),) +KWB_REPLACE += CSK_INDEX +KWB_CFG_CSK_INDEX = $(CONFIG_SECURED_MODE_CSK_INDEX) + +KWB_REPLACE += SEC_BOOT_DEV +KWB_CFG_SEC_BOOT_DEV=$(patsubst "%",%, \ + $(if $(findstringBOOT_SPI_NOR_FLASH,$(CONFIG_SPL_BOOT_DEVICE)),0x34) \
arch/arm/mach-mvebu/Makefile +1
-0+ $(if $(findstringBOOT_SDIO_MMC_CARD,$(CONFIG_SPL_BOOT_DEVICE)),0x31) \
arch/arm/mach-mvebu/Makefile +9
-0+ ) + +KWB_REPLACE += SEC_FUSE_DUMP +KWB_CFG_SEC_FUSE_DUMP = a38x +endif + +$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \ + include/config/auto.conf + $(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V)$(KWB_CFG_$(V))/;)p' \
arch/arm/mach-mvebu/Makefile +2
-0+ <$< >$(dir $<)$(@F) + endif # CONFIG_SPL_BUILD obj-y += gpio.o obj-y += mbus.oarch/arm/mach-mvebu/include/mach/config.h +1
-1@@ -32,12 +32,12 @@#endif /* -* By default kwbimage.cfg from board specific folder is used +* By default the generated mvebu kwbimage.cfg is used * If for some board, different configuration file need to be used, * CONFIG_SYS_KWD_CONFIG should be defined in board specific header file
*/
#ifndefCONFIG_SYS_KWD_CONFIG
-#defineCONFIG_SYS_KWD_CONFIG$(CONFIG_BOARDDIR)/kwbimage.c
fg
+#defineCONFIG_SYS_KWD_CONFIGarch/arm/mach-
mvebu/kwbimage.cfg
#endif /*CONFIG_SYS_KWD_CONFIG*//* Add target to build it automatically upon "make" */
arch/arm/mach- renamed from board/gdsys/a38x/kwbimage.cfg.in +0
-0mvebu/kwbimage.cfg.in
similarity index 100%
rename from board/gdsys/a38x/kwbimage.cfg.in
rename toarch/arm/mach-mvebu/kwbimage.cfg.inboard/CZ.NIC/turris_omnia/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/Marvell/db-88f6720/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/Marvell/db-88f6820-amc/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/Marvell/db-88f6820-gp/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/Marvell/db-mv784mp-gp/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/Synology/ds414/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/gdsys/a38x/Makefile +0
-0@@ -7,36 +7,5 @@ obj-$(CONFIG_TARGET_CONTROLCENTERDC) += controlcenterdc.o hre.ospl.o keyprogram.o dt_helpers.o
ifeq ($(CONFIG_SPL_BUILD),)
board/gdsys/a38x/Makefile +0
-19- obj-$(CONFIG_TARGET_CONTROLCENTERDC) += hydra.o ihs_phys.o - -extra-$(CONFIG_TARGET_CONTROLCENTERDC) += kwbimage.cfg - -KWB_REPLACE += BOOT_FROM -ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI),) - KWB_CFG_BOOT_FROM=spi -endif -ifneq ($(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC),) - KWB_CFG_BOOT_FROM=sdio -endif - -ifneq ($(CONFIG_SECURED_MODE_IMAGE),) -KWB_REPLACE += CSK_INDEX -KWB_CFG_CSK_INDEX = $(CONFIG_SECURED_MODE_CSK_INDEX) - -KWB_REPLACE += SEC_BOOT_DEV -KWB_CFG_SEC_BOOT_DEV=$(patsubst "%",%, \ - $(if $(findstringBOOT_SPI_NOR_FLASH,$(CONFIG_SPL_BOOT_DEVICE)),0x34) \
board/gdsys/a38x/Makefile +0
-1- $(if $(findstringBOOT_SDIO_MMC_CARD,$(CONFIG_SPL_BOOT_DEVICE)),0x31) \
board/gdsys/a38x/Makefile +0
-9- ) - -KWB_REPLACE += SEC_FUSE_DUMP -KWB_CFG_SEC_FUSE_DUMP = a38x -endif - -$(src)/kwbimage.cfg: $(src)/kwbimage.cfg.in include/autoconf.mk \ - include/config/auto.conf - $(Q)sed -ne '$(foreach V,$(KWB_REPLACE),s/^#@$(V)/$(V)$(KWB_CFG_$(V))/;)p' \
board/gdsys/a38x/Makefile +0
-2- <$< >$(dir $<)$(@F) - endifboard/kobol/helios4/kwbimage.cfg deleted +0
-13@@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+ -# -# Copyright (C) 2015 Stefan Roese <[email protected]> -# - -# Armada 38x use version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM sdio - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/maxbcm/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2014 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/solidrun/clearfog/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2015 Stefan Roese <[email protected]> -# - -# Armada 38x use version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM sdio - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068board/theadorable/kwbimage.cfg deleted +0
-12@@ -1,12 +0,0 @@ -# -# Copyright (C) 2015-2016 Stefan Roese <[email protected]> -# - -# Armada XP uses version 1 image format -VERSION 1 - -# Boot Media configurations -BOOT_FROM spi - -# Binary Header (bin_hdr) with DDR3 training code -BINARY spl/u-boot-spl-dtb.bin 0000005b 00000068configs/clearfog_defconfig +1
-1@@ -6,12 +6,12 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_TARGET_CLEARFOG=y +CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL=y CONFIG_DEBUG_UART_BASE=0xd0012000 CONFIG_DEBUG_UART_CLOCK=250000000 -CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_DEFAULT_DEVICE_TREE="armada-388-clearfog" CONFIG_DEBUG_UART=y CONFIG_DISTRO_DEFAULTS=yconfigs/helios4_defconfig +1
-1@@ -5,9 +5,9 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_TARGET_HELIOS4=y +CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y -CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL=y CONFIG_DEFAULT_DEVICE_TREE="armada-388-helios4" CONFIG_DEBUG_UART=y
PATCH 4/6 mvebu: select boot device at SoC level
Hi Dennis,
Thanks for taking the time to look into this series.
Quoted 1 line · Dennis Gilmore
this patch needs to be rebased on git master as it does not apply.
The conflict is trivial for git to handle automatically on rebase (remove, remove). I assume 'git am -3' can do the same. Would you like me to send v2 of this series for that?
baruch
Quoted 15 lines
El lun, 18-06-2018 a las 21:56 +0300, Baruch Siach escribió:
Quoted 14 lines
Move the gdsys Controlcenter DC specific build time kwbimage.cfg generation code into the mach-mvebu/ directory to be shared by all 32bit
mvebu platforms.Remove board specific kwbimage.cfg files, and use the generated one instead. These files are all identical, with two exceptions. Clearfog and Helios4 use the sdio boot device, whereas all others use spi. Update
the defconfigs for the exceptional boards to generate the same kwbimage.cfg as before.Signed-off-by Baruch Siach <[email protected]>---
[...]
Quoted 7 lines
Quoted 7 lines
configs/helios4_defconfig +0
-0@@ -5,9 +5,9 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SYS_MALLOC_F_LEN=0x2000
Quoted 8 lines
configs/helios4_defconfig CONFIG_SPL_LIBCOMMON_SUPPORT=y · line 13
Quoted 8 lines
configs/helios4_defconfig +1
-1CONFIG_TARGET_HELIOS4=y +CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y -CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL=y CONFIG_DEFAULT_DEVICE_TREE="armada-388-helios4" CONFIG_DEBUG_UART=y
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
PATCH 4/6 mvebu: select boot device at SoC level
Hi Baruch,
Quoted 10 lines · Baruch Siach
Hi Dennis,
Thanks for taking the time to look into this series.
Quoted 1 line · Dennis Gilmore
this patch needs to be rebased on git master as it does not apply.
The conflict is trivial for git to handle automatically on rebase (remove, remove). I assume 'git am -3' can do the same. Would you like me to send v2 of this series for that?
Seems to be fine. I just tried it and it applies fine, resolving the conflicts automatically. No new version necessary.
Thanks,
Stefan
PATCH 4/6 mvebu: select boot device at SoC level
Weird git am failed for me so I had to tweak the patch. I must have done something wrong on my end. I did test on the helios4 after applying the set and it booted fine
Quoted 20 lines · Stefan Roese
Hi Baruch,
Quoted 9 lines · Baruch Siach
Hi Dennis,
Thanks for taking the time to look into this series.
Quoted 1 line · Dennis Gilmore
this patch needs to be rebased on git master as it does not apply.
The conflict is trivial for git to handle automatically on rebase (remove, remove). I assume 'git am -3' can do the same. Would you
like
Quoted 1 line
me to send v2 of this series for that?
Seems to be fine. I just tried it and it applies fine, resolving the conflicts automatically. No new version necessary.
Thanks,
Stefan
Signature · 1 line
Sent from my Android device with K-9 Mail. Please excuse my brevity.