Re: [PATCH 1/3] arm/km: add support for SUSE2

2020-01-23 Thread Tom Rini
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

2020-01-14 Thread Stefan Roese

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

2020-01-14 Thread Holger Brunck
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

2020-01-14 Thread Stefan Roese

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