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.bru...@ch.abb.com> > > CC: Valentin Longchamp <valentin.longch...@ch.abb.com> > > CC: Stefan Roese <s...@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