Re: [PATCH 1/3] arm/km: add support for SUSE2
On Mon, Jan 13, 2020 at 03:34:01PM +0100, Holger Brunck wrote: > This board is similar to SUV31, but the FPGA is reset concept is quite > different. > > Signed-off-by: Holger Brunck > CC: Valentin Longchamp > CC: Stefan Roese > Reviewed-by: Stefan Roese Applied to u-boot/master, thanks! -- Tom signature.asc Description: PGP signature
Re: [PATCH 1/3] arm/km: add support for SUSE2
Hi Holger, On 14.01.20 09:44, Holger Brunck wrote: 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. That's okay. Just keep it as is. Thanks, Stefan
RE: [PATCH 1/3] arm/km: add support for SUSE2
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 > > CC: Valentin Longchamp > > CC: Stefan Roese > > --- > > 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 00..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=0x07d0 > > +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=0xC > > +CONFIG_ENV_SECT_SIZE=0x1 > > +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 > 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=0xD00
Re: [PATCH 1/3] arm/km: add support for SUSE2
Hi Holger, 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 CC: Valentin Longchamp CC: Stefan Roese --- 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 00..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=0x07d0 +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=0xC +CONFIG_ENV_SECT_SIZE=0x1 +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 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=0xD +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=810 +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_ki