[PATCH 1/3] arm/km: add support for SUSE2
Holger Brunck
holger.brunck at ch.abb.com
Tue Jan 14 09:44:25 CET 2020
Hi Stefan,
> On 13.01.20 15:34, Holger Brunck wrote:
> > This board is similar to SUV31, but the FPGA is reset concept is quite
> > different.
> >
> > Signed-off-by: Holger Brunck <holger.brunck at ch.abb.com>
> > CC: Valentin Longchamp <valentin.longchamp at ch.abb.com>
> > CC: Stefan Roese <sr at denx.de>
> > ---
> > board/keymile/km_arm/Kconfig | 12 +++++++
> > board/keymile/km_arm/MAINTAINERS | 1 +
> > board/keymile/km_arm/fpga_config.c | 15 ++++++--
> > configs/kmsuse2_defconfig | 58 ++++++++++++++++++++++++++++++
> > include/configs/km_kirkwood.h | 8 +++++
> > scripts/config_whitelist.txt | 1 +
> > 6 files changed, 93 insertions(+), 2 deletions(-)
> > create mode 100644 configs/kmsuse2_defconfig
> >
> > diff --git a/board/keymile/km_arm/Kconfig
> > b/board/keymile/km_arm/Kconfig index be6b162815..4b21db8573 100644
> > --- a/board/keymile/km_arm/Kconfig
> > +++ b/board/keymile/km_arm/Kconfig
> > @@ -7,6 +7,18 @@ config KM_FPGA_CONFIG
> > help
> > Include capability to change FPGA configuration.
> >
> > +config KM_FPGA_FORCE_CONFIG
> > + bool "FPGA reconfiguration"
> > + default n
> > + help
> > + If yes we force to reconfigure the FPGA always
> > +
> > +config KM_FPGA_NO_RESET
> > + bool "FPGA skip reset"
> > + default n
> > + help
> > + If yes we skip triggering a reset of the FPGA
> > +
> > config KM_ENV_IS_IN_SPI_NOR
> > bool "Environment in SPI NOR"
> > default n
> > diff --git a/board/keymile/km_arm/MAINTAINERS
> > b/board/keymile/km_arm/MAINTAINERS
> > index 17926017c3..538f90f48b 100644
> > --- a/board/keymile/km_arm/MAINTAINERS
> > +++ b/board/keymile/km_arm/MAINTAINERS
> > @@ -9,4 +9,5 @@ F: configs/km_kirkwood_pci_defconfig
> > F: configs/kmcoge5un_defconfig
> > F: configs/kmnusa_defconfig
> > F: configs/kmsugp1_defconfig
> > +F: configs/kmsuse2_defconfig
> > F: configs/kmsuv31_defconfig
> > diff --git a/board/keymile/km_arm/fpga_config.c
> > b/board/keymile/km_arm/fpga_config.c
> > index 051e167fd5..99bea009fa 100644
> > --- a/board/keymile/km_arm/fpga_config.c
> > +++ b/board/keymile/km_arm/fpga_config.c
> > @@ -82,6 +82,7 @@ static int boco_set_bits(u8 reg, u8 flags)
> > #define FPGA_INIT_B 0x10
> > #define FPGA_DONE 0x20
> >
> > +#ifndef CONFIG_KM_FPGA_FORCE_CONFIG
> > static int fpga_done(void)
> > {
> > int ret = 0;
> > @@ -100,13 +101,16 @@ static int fpga_done(void)
> >
> > return regval & FPGA_DONE ? 1 : 0;
> > }
> > +#endif /* CONFIG_KM_FPGA_FORCE_CONFIG */
> >
> > -int skip;
> > +static int skip;
> >
> > int trigger_fpga_config(void)
> > {
> > int ret = 0;
> >
> > + skip = 0;
> > +#ifndef CONFIG_KM_FPGA_FORCE_CONFIG
> > /* if the FPGA is already configured, we do not want to
> > * reconfigure it */
> > skip = 0;
> > @@ -115,6 +119,7 @@ int trigger_fpga_config(void)
> > skip = 1;
> > return 0;
> > }
> > +#endif /* CONFIG_KM_FPGA_FORCE_CONFIG */
> >
> > if (check_boco2()) {
> > /* we have a BOCO2, this has to be triggered here */ @@
> > -188,7 +193,13 @@ int wait_for_fpga_config(void)
> > return 0;
> > }
> >
> > -#if defined(KM_PCIE_RESET_MPP7)
> > +#if defined(CONFIG_KM_FPGA_NO_RESET)
> > +int fpga_reset(void)
> > +{
> > + /* no dedicated reset pin for FPGA */
> > + return 0;
> > +}
> > +#elif defined(KM_PCIE_RESET_MPP7)
> >
> > #define KM_PEX_RST_GPIO_PIN 7
> > int fpga_reset(void)
> > diff --git a/configs/kmsuse2_defconfig b/configs/kmsuse2_defconfig new
> > file mode 100644 index 0000000000..e6726ebd0c
> > --- /dev/null
> > +++ b/configs/kmsuse2_defconfig
> > @@ -0,0 +1,58 @@
> > +CONFIG_ARM=y
> > +CONFIG_SYS_DCACHE_OFF=y
> > +CONFIG_ARCH_CPU_INIT=y
> > +CONFIG_KIRKWOOD=y
> > +CONFIG_SYS_TEXT_BASE=0x07d00000
> > +CONFIG_TARGET_KM_KIRKWOOD=y
> > +CONFIG_KM_FPGA_CONFIG=y
> > +CONFIG_KM_FPGA_FORCE_CONFIG=y
> > +CONFIG_KM_FPGA_NO_RESET=y
> > +CONFIG_KM_ENV_IS_IN_SPI_NOR=y
> > +CONFIG_ENV_SIZE=0x2000
> > +CONFIG_ENV_OFFSET=0xC0000
> > +CONFIG_ENV_SECT_SIZE=0x10000
> > +CONFIG_IDENT_STRING="\nABB SUSE2"
> > +CONFIG_SYS_EXTRA_OPTIONS="KM_SUSE2"
> > +CONFIG_MISC_INIT_R=y
> > +CONFIG_VERSION_VARIABLE=y
> > +# CONFIG_DISPLAY_BOARDINFO is not set CONFIG_HUSH_PARSER=y
> > +CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Hit
> <SPACE> key to
> > +stop autoboot in %2ds\n"
> > +CONFIG_AUTOBOOT_STOP_STR=" "
> > +CONFIG_CMD_ASKENV=y
> > +CONFIG_CMD_GREPENV=y
> > +CONFIG_CMD_EEPROM=y
> > +# CONFIG_CMD_FLASH is not set
> > +CONFIG_CMD_I2C=y
> > +CONFIG_CMD_NAND=y
> > +CONFIG_CMD_DHCP=y
> > +CONFIG_CMD_MII=y
> > +CONFIG_CMD_PING=y
> > +CONFIG_CMD_JFFS2=y
> > +CONFIG_CMD_MTDPARTS=y
> > +CONFIG_MTDIDS_DEFAULT="nand0=orion_nand"
> > +CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:-(ubi0);"
> > +CONFIG_CMD_UBI=y
> > +# CONFIG_CMD_UBIFS is not set
> > +CONFIG_OF_CONTROL=y
> > +CONFIG_DEFAULT_DEVICE_TREE="kirkwood-km_kirkwood"
> > +CONFIG_ENV_IS_IN_SPI_FLASH=y
> > +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
> > +CONFIG_ENV_OFFSET_REDUND=0xD0000
> > +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> > +CONFIG_BOOTCOUNT_LIMIT=y
> > +CONFIG_BOOTCOUNT_RAM=y
> > +CONFIG_BOOTCOUNT_BOOTLIMIT=3
> > +# CONFIG_MMC is not set
> > +CONFIG_MTD=y
> > +CONFIG_MTD_RAW_NAND=y
> > +CONFIG_SF_DEFAULT_SPEED=8100000
> > +CONFIG_SPI_FLASH_STMICRO=y
> > +CONFIG_SPI_FLASH_MACRONIX=y
> > +CONFIG_MVGBE=y
> > +CONFIG_MII=y
> > +CONFIG_SYS_NS16550=y
> > +CONFIG_SPI=y
> > +CONFIG_KIRKWOOD_SPI=y
> > +CONFIG_BCH=y
> > diff --git a/include/configs/km_kirkwood.h
> > b/include/configs/km_kirkwood.h index 064097a631..ea24964f54 100644
> > --- a/include/configs/km_kirkwood.h
> > +++ b/include/configs/km_kirkwood.h
> > @@ -65,6 +65,14 @@
> > #define CONFIG_SYS_KWD_CONFIG
> $(CONFIG_BOARDDIR)/kwbimage_128M16_1.cfg
> > #define CONFIG_KM_UBI_PART_BOOT_OPTS ",2048"
> > #define CONFIG_SYS_NAND_NO_SUBPAGE_WRITE
> > +
> > +/* KM_SUSE2 */
> > +#elif defined(CONFIG_KM_SUSE2)
> > +#define CONFIG_HOSTNAME "kmsuse2"
> > +#undef CONFIG_SYS_KWD_CONFIG
> > +#define CONFIG_SYS_KWD_CONFIG
> $(CONFIG_BOARDDIR)/kwbimage_128M16_1.cfg
> > +#define CONFIG_KM_UBI_PART_BOOT_OPTS ",2048"
> > +#define CONFIG_SYS_NAND_NO_SUBPAGE_WRITE
> > #else
> > #error ("Board unsupported")
> > #endif
> > diff --git a/scripts/config_whitelist.txt
> > b/scripts/config_whitelist.txt index cd154738a4..4524350403 100644
> > --- a/scripts/config_whitelist.txt
> > +++ b/scripts/config_whitelist.txt
> > @@ -943,6 +943,7 @@ CONFIG_KM_NEW_ENV
> > CONFIG_KM_NUSA
> > CONFIG_KM_ROOTFSSIZE
> > CONFIG_KM_SUGP1
> > +CONFIG_KM_SUSE2
> > CONFIG_KM_SUV31
> > CONFIG_KM_UBI_LINUX_MTD
> > CONFIG_KM_UBI_PARTITION_NAME_APP
> >
>
> I understand that the board is very similar to SUV31. Can't you add some
> runtime detection of this board and use one U-Boot binary on both boards
> instead?
>
yes would be better if we would keep SUV31. But in the 3/3 of this series I remove SUV31 as this board is unsupported. I could squash these two if you prefer this, but I thought in this way it's more clear.
Best regards
Holger
More information about the U-Boot
mailing list