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