All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards
@ 2012-06-13 13:33 Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 01/14] arm/km: add kmnusa board support Holger Brunck
                   ` (13 more replies)
  0 siblings, 14 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

Updated after some comments on the Mailing list.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 01/14] arm/km: add kmnusa board support
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 02/14] arm/km: add kmcoge5un " Holger Brunck
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

This board is similar to portl2, but it has the u-boot environment
in a SPI NOR flash and not in an i2c eeprom like portl2 have.

Some other details:
 - IVM EEPROM is at adress: pca9547:70:9
 - PCI is enabled
 - PIGGY4 is connected via MV88E6352 simple switch. There is no phy
   between the simple switch and the kirkwood.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - rename 128M16-1.cfg to kwbimage_128M16_1.cfg

 MAINTAINERS                                |    1 +
 board/keymile/km_arm/km_arm.c              |    9 +-
 board/keymile/km_arm/kwbimage_128M16_1.cfg |  296 ++++++++++++++++++++++++++++
 boards.cfg                                 |    1 +
 include/configs/km/km_arm.h                |   44 ++++-
 include/configs/km_kirkwood.h              |   67 ++++++-
 6 files changed, 394 insertions(+), 24 deletions(-)
 create mode 100644 board/keymile/km_arm/kwbimage_128M16_1.cfg

diff --git a/MAINTAINERS b/MAINTAINERS
index 0445539..aa11268 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -738,6 +738,7 @@ Sergey Lapin <slapin@ossfans.org>
 Valentin Longchamp <valentin.longchamp@keymile.com>
 
 	km_kirkwood	ARM926EJS (Kirkwood SoC)
+	kmnusa		ARM926EJS (Kirkwood SoC)
 	mgcoge3un	ARM926EJS (Kirkwood SoC)
 	portl2		ARM926EJS (Kirkwood SoC)
 
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index cb3402b..421ee5a 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -134,10 +134,11 @@ int startup_allowed(void)
 }
 #endif
 
-#if (defined(CONFIG_MGCOGE3UN)|defined(CONFIG_PORTL2))
+#if (defined(CONFIG_MGCOGE3UN)|defined(CONFIG_PORTL2)| \
+	defined(CONFIG_KM_PIGGY4_88E6352))
 /*
- * These two boards have always ethernet present. Its connected to the mv
- * switch.
+ * All boards with PIGGY4 connected via a simple switch have ethernet always
+ * present.
  */
 int ethernet_present(void)
 {
@@ -351,7 +352,7 @@ void reset_phy(void)
 	/* reset the phy */
 	miiphy_reset(name, CONFIG_PHY_BASE_ADR);
 }
-#else
+#elif !defined(CONFIG_KM_PIGGY4_88E6352)
 /* Configure and enable MV88E1118 PHY on the piggy*/
 void reset_phy(void)
 {
diff --git a/board/keymile/km_arm/kwbimage_128M16_1.cfg b/board/keymile/km_arm/kwbimage_128M16_1.cfg
new file mode 100644
index 0000000..3e1237b
--- /dev/null
+++ b/board/keymile/km_arm/kwbimage_128M16_1.cfg
@@ -0,0 +1,296 @@
+#
+# (C) Copyright 2012
+# Stefan Bigler, Keymile AG, stefan.bigler at keymile.com
+# Norbert Mayer, Keymile AG, norbert.mayer at keymile.com
+# Deepak Patel, XENTECH Limited, deepak.patel at xentech.co.uk
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+# Refer docs/README.kwimage for more details about how-to configure
+# and create kirkwood boot image
+#
+# This configuration applies to COGE5 design (ARM-part)
+# Two 8-Bit devices are connected on the 16-Bit bus on the same
+# chip-select. The supported devices are
+#   MT47H256M8EB-3IT:C
+#   MT47H256M8EB-25EIT:C
+
+# Boot Media configurations
+BOOT_FROM	spi	# Boot from SPI flash
+
+DATA 0xFFD10000 0x01112222	# MPP Control 0 Register
+# bit 3-0:   2, MPPSel0  SPI_CSn  (1=NF_IO[2])
+# bit 7-4:   2, MPPSel1  SPI_MOSI (1=NF_IO[3])
+# bit 12-8:  2, MPPSel2  SPI_SCK  (1=NF_IO[4])
+# bit 15-12: 2, MPPSel3  SPI_MISO (1=NF_IO[5])
+# bit 19-16: 1, MPPSel4  NF_IO[6]
+# bit 23-20: 1, MPPSel5  NF_IO[7]
+# bit 27-24: 1, MPPSel6  SYSRST_O
+# bit 31-28: 0, MPPSel7  GPO[7]
+
+DATA 0xFFD10004 0x03303300	# MPP Control 1 Register
+# bit 3-0:   0, MPPSel8	 GPIO[8] CPU_SDA bitbanged
+# bit 7-4:   0, MPPSel9  GPIO[9] CPU_SCL bitbanged
+# bit 12-8:  3, MPPSel10 UA0_TXD
+# bit 15-12: 3, MPPSel11 UA0_RXD
+# bit 19-16: 0, MPPSel12 not connected
+# bit 23-20: 3, MPPSel13 GPIO[14]
+# bit 27-24: 3, MPPSel14 GPIO[15]
+# bit 31-28: 0, MPPSel15 GPIO[16] BOOT_FL_SEL (SPI-MUX Signal)
+
+DATA 0xFFD10008 0x00001100	# MPP Control 2 Register
+# bit 3-0:   0, MPPSel16 GPIO[16]
+# bit 7-4:   0, MPPSel17 not connected
+# bit 11-8:  1, MPPSel18 NF_IO[0]
+# bit 15-12: 1, MPPSel19 NF_IO[1]
+# bit 19-16: 0, MPPSel20 GPIO[20]
+# bit 23-20: 0, MPPSel21 GPIO[21]
+# bit 27-24: 0, MPPSel22 GPIO[22]
+# bit 31-28: 0, MPPSel23 GPIO[23]
+
+# MPP Control 3-6 Register untouched (MPP24-49)
+
+DATA 0xFFD100E0 0x1B1B1B1B	# IO Configuration 0 Register
+# bit 2-0:   3, Reserved
+# bit 5-3:   3, Reserved
+# bit 6:     0, Reserved
+# bit 7:     0, RGMII-pads voltage = 3.3V
+# bit 10-8:  3, Reserved
+# bit 13-11: 3, Reserved
+# bit 14:    0, Reserved
+# bit 15:    0, MPP RGMII-pads voltage = 3.3V
+# bit 31-16  0x1B1B, Reserved
+
+DATA 0xFFD20134 0x66666666	# L2 RAM Timing 0 Register
+# bit 0-1:   2, Tag RAM RTC RAM0
+# bit 3-2:   1, Tag RAM WTC RAM0
+# bit 7-4:   6, Reserved
+# bit 9-8:   2, Valid RAM RTC RAM
+# bit 11-10: 1, Valid RAM WTC RAM
+# bit 13-12: 2, Dirty RAM RTC RAM
+# bit 15-14: 1, Dirty RAM WTC RAM
+# bit 17-16: 2, Data RAM RTC RAM0
+# bit 19-18: 1, Data RAM WTC RAM0
+# bit 21-20: 2, Data RAM RTC RAM1
+# bit 23-22: 1, Data RAM WTC RAM1
+# bit 25-24: 2, Data RAM RTC RAM2
+# bit 27-26: 1, Data RAM WTC RAM2
+# bit 29-28: 2, Data RAM RTC RAM3
+# bit 31-30: 1, Data RAM WTC RAM4
+
+DATA 0xFFD20138 0x66666666	# L2 RAM Timing 1 Register
+# bit 15-0:  ?, Reserved
+# bit 17-16: 2, ECC RAM RTC RAM0
+# bit 19-18: 1, ECC RAM WTC RAM0
+# bit 31-20: ?,Reserved
+
+DATA 0xFFD20154 0x00000200	# CPU RAM Management Control3 Register
+# bit 23-0:  0x000200, Addr Config tuning
+# bit 31-24: 0,        Reserved
+
+# ??? Missing register # CPU RAM Management Control2 Register
+
+DATA 0xFFD2014C 0x00001C00	# CPU RAM Management Control1 Register
+# bit 15-0:  0x1C00, Opmux Tuning
+# bit 31-16: 0,      Pc Dp Tuning
+
+DATA 0xFFD20148 0x00000001	# CPU RAM Management Control0 Register
+# bit 1-0:   1, addr clk tune
+# bit 3-2:   0, reserved
+# bit 5-4:   0, dtcmp clk tune
+# bit 7-6:   0, reserved
+# bit 9-8:   0, macdrv clk tune
+# bit 11-10: 0, opmuxgm2 clk tune
+# bit 15-14: 0, rf clk tune
+# bit 17-16: 0, rfbypass clk tune
+# bit 19-18: 0, pc dp clk tune
+# bit 23-20: 0, icache clk tune
+# bit 27:24: 0, dcache clk tune
+# bit 31:28: 0, regfile tunin
+
+# SDRAM initalization
+DATA 0xFFD01400 0x430004E0	# SDRAM Configuration Register
+# bit 13-0:  0x4E0, DDR2 clks refresh rate
+# bit 14:    0, reserved
+# bit 15:    0, reserved
+# bit 16:    0, CPU to Dram Write buffer policy
+# bit 17:    0, Enable Registered DIMM or Equivalent Sampling Logic
+# bit 19-18: 0, reserved
+# bit 23-20: 0, reserved
+# bit 24:    1, enable exit self refresh mode on DDR access
+# bit 25:    1, required
+# bit 29-26: 0, reserved
+# bit 31-30: 1, reserved
+
+DATA 0xFFD01404 0x36543000	# DDR Controller Control Low
+# bit 3-0:   0, reserved
+# bit 4:     0, 2T mode =addr/cmd in same cycle
+# bit 5:     0, clk is driven during self refresh, we don't care for APX
+# bit 6:     0, use recommended falling edge of clk for addr/cmd
+# bit 7-11:  0, reserved
+# bit 12-13: 1, reserved, required 1
+# bit 14:    0, input buffer always powered up
+# bit 17-15: 0, reserved
+# bit 18:    1, cpu lock transaction enabled
+# bit 19:    0, reserved
+# bit 23-20: 5, recommended value for CL=4 and STARTBURST_DEL disabled bit31=0
+# bit 27-24: 6, CL+1, STARTBURST sample stages, freq 200-399MHz, unbuffer DIMM
+# bit 30-28: 3, required
+# bit 31:    0, no additional STARTBURST delay
+
+DATA 0xFFD01408 0x2202444E	# DDR Timing (Low) (active cycles value +1)
+# bit 3-0:   0xe, TRAS = 45ns -> 15 clk cycles
+# bit 7-4:   0x4, TRCD = 15ns -> 5 clk cycles
+# bit 11-8:  0x4, TRP = 15ns -> 5 clk cycles
+# bit 15-12: 0x4, TWR = 15ns -> 5 clk cycles
+# bit 19-16: 0x2, TWTR = 7,5ns -> 3 clk cycles
+# bit 20:      0, extended TRAS msb
+# bit 23-21:   0, reserved
+# bit 27-24: 0x2, TRRD = 7,5ns -> 3 clk cycles
+# bit 31-28: 0x2, TRTP = 7,5ns -> 3 clk cycles
+
+DATA 0xFFD0140C 0x0000003E	#  DDR Timing (High)
+# bit 6-0:   0x3E, TRFC = 195ns -> 63 clk cycles
+# bit 8-7:      0, TR2R
+# bit 10-9:     0, TR2W
+# bit 12-11:    0, TW2W
+# bit 31-13:    0, reserved
+
+DATA 0xFFD01410 0x00000000	#  DDR Address Control
+# bit 1-0:    0, Cs0width=x8 (2 devices)
+# bit 3-2:    0, Cs0size=2Gb
+# bit 5-4:    0, Cs1width=nonexistent
+# bit 7-6:    0, Cs1size =nonexistent
+# bit 9-8:    0, Cs2width=nonexistent
+# bit 11-10:  0, Cs2size =nonexistent
+# bit 13-12:  0, Cs3width=nonexistent
+# bit 15-14:  0, Cs3size =nonexistent
+# bit 16:     0, Cs0AddrSel
+# bit 17:     0, Cs1AddrSel
+# bit 18:     0, Cs2AddrSel
+# bit 19:     0, Cs3AddrSel
+# bit 31-20:  0, required
+
+DATA 0xFFD01414 0x00000000	#  DDR Open Pages Control
+# bit 0:      0,  OpenPage enabled
+# bit 31-1:   0, required
+
+DATA 0xFFD01418 0x00000000	#  DDR Operation
+# bit 3-0:    0, DDR cmd
+# bit 31-4:   0, required
+
+DATA 0xFFD0141C 0x00000652	#  DDR Mode
+# bit 2-0:    2, Burst Length = 4
+# bit 3:      0, Burst Type
+# bit 6-4:    5, CAS Latency = 5
+# bit 7:      0, Test mode
+# bit 8:      0, DLL Reset
+# bit 11-9:   3, Write recovery for auto-precharge must be 3
+# bit 12:     0, Active power down exit time, fast exit
+# bit 14-13:  0, reserved
+# bit 31-15:  0, reserved
+
+DATA 0xFFD01420 0x00000006	#  DDR Extended Mode
+# bit 0:      0, DDR DLL enabled
+# bit 1:      1, DDR drive strenght reduced
+# bit 2:      1, DDR ODT control lsb, 75ohm termination [RTT0]
+# bit 5-3:    0, required
+# bit 6:      0, DDR ODT control msb, 75ohm termination [RTT1]
+# bit 9-7:    0, required
+# bit 10:     0, differential DQS enabled
+# bit 11:     0, required
+# bit 12:     0, DDR output buffer enabled
+# bit 31-13:  0 required
+
+DATA 0xFFD01424 0x0000F17F	#  DDR Controller Control High
+# bit 2-0:    7, required
+# bit 3:      1, MBUS Burst Chop disabled
+# bit 6-4:    7, required
+# bit 7:      0, reserved
+# bit 8:      1, add sample stage required for > 266Mhz
+# bit 9:      0, no half clock cycle addition to dataout
+# bit 10:     0, 1/4 clock cycle skew enabled for addr/ctl signals
+# bit 11:     0, 1/4 clock cycle skew disabled for write mesh
+# bit 15-12:0xf, required
+# bit 31-16:  0, required
+
+DATA 0xFFD01428 0x00084520	# DDR2 SDRAM Timing Low
+# bit 3-0:    0, required
+# bit 7-4:    2, M_ODT assertion 2 cycles after read start command
+# bit 11-8:   5, M_ODT de-assertion 5 cycles after read start command
+#                (ODT turn off delay 2,5 clk cycles)
+# bit 15-12:  4, internal ODT time based on bit 7-4
+#                with the considered SDRAM internal delay
+# bit 19-16:  8, internal ODT de-assertion based on bit 11-8
+#                with the considered SDRAM internal delay
+# bit 31-20:  0, required
+
+DATA 0xFFD0147c 0x00008452	# DDR2 SDRAM Timing High
+# bit 3-0:    2, M_ODT assertion same as bit 11-8
+# bit 7-4:    5, M_ODT de-assertion same as bit 15-12
+# bit 11-8:   4, internal ODT assertion 2 cycles after write start command
+#                with the considered SDRAM internal delay
+# bit 15-12:  8, internal ODT de-assertion 5 cycles after write start command
+#                with the considered SDRAM internal delay
+
+DATA 0xFFD01500 0x00000000	# CS[0]n Base address to 0x0
+# bit 23-0:   0, reserved
+# bit 31-24:  0, CPU CS Window0 Base Address, addr bits [31:24]
+
+DATA 0xFFD01504 0x1FFFFFF1	# CS[0]n Size
+# bit 0:      1, Window enabled
+# bit 1:      0, Write Protect disabled
+# bit 3-2:    0, CS0 hit selected
+# bit 23-4:ones, required
+# bit 31-24:0x1F, Size (i.e. 512MB)
+
+DATA 0xFFD0150C 0x00000000	# CS[1]n Size, window disabled
+DATA 0xFFD01514 0x00000000	# CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000	# CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x00010000	#  DDR ODT Control (Low)
+# bit 3-0:     0, ODT0Rd, MODT[0] not asserted during read from DRAM CS0
+# bit 7-4:     0, ODT0Rd, MODT[1] not asserted
+# bit 11-8:    0, required
+# big 15-11:   0, required
+# bit 19-16:   1, ODT0Wr, MODT[0] asserted during write to DRAM CS0
+# bit 23-20:   0, ODT0Wr, MODT[1] not asserted
+# bit 27-24:   0, required
+# bit 31-28:   0, required
+
+DATA 0xFFD01498 0x00000004	#  DDR ODT Control (High)
+# bit 1-0:     0, ODT0 controlled by ODT Control (low) register above
+# bit 3-2:     1, ODT1 never active
+# bit 31-4:    0, required
+
+DATA 0xFFD0149C 0x0000E801	# CPU ODT Control
+# bit 3-0:     1, ODT0Rd, Internal ODT asserted during read from DRAM bank0
+# bit 7-4:     0, ODT0Wr, Internal ODT not asserted during write to DRAM bank0
+# bit 9-8:     0, ODTEn, controlled by ODT0Rd and ODT0Wr
+# bit 11-10:   2, DQ_ODTSel. ODT select turned on, 75 ohm
+# bit 13-12:   2, STARTBURST ODT buffer selected, 75 ohm
+# bit 14:      1, STARTBURST ODT enabled
+# bit 15:      1, Use ODT Block
+
+DATA 0xFFD01480 0x00000001	# DDR Initialization Control
+# bit 0:       1, enable DDR init upon this register write
+# bit 31-1:    0, reserved
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/boards.cfg b/boards.cfg
index b711e0d..1a4c2ad 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -140,6 +140,7 @@ pogo_e02                     arm         arm926ejs   -                   clouden
 dns325                       arm         arm926ejs   -                   d-link         kirkwood
 km_kirkwood                  arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD,KM_DISABLE_PCI
 km_kirkwood_pci              arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD_PCI,KM_RECONFIG_XLX
+kmnusa                       arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_NUSA
 mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood
 portl2                       arm         arm926ejs   km_arm              keymile        kirkwood
 inetspace_v2                 arm         arm926ejs   netspace_v2         LaCie          kirkwood	lacie_kw:INETSPACE_V2
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h
index 4626e65..9cd909c 100644
--- a/include/configs/km/km_arm.h
+++ b/include/configs/km/km_arm.h
@@ -57,6 +57,13 @@
 #define CONFIG_CMD_SF
 #define CONFIG_SOFT_I2C		/* I2C bit-banged	*/
 
+#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
+#define CONFIG_ENV_SPI_BUS		0
+#define CONFIG_ENV_SPI_CS		0
+#define CONFIG_ENV_SPI_MAX_HZ		5000000
+#define CONFIG_ENV_SPI_MODE		SPI_MODE_3
+#endif
+
 #include "asm/arch/config.h"
 
 #define CONFIG_SYS_TEXT_BASE	0x07d00000	/* code address before reloc */
@@ -211,6 +218,15 @@ int get_scl(void);
 /*
  *  Environment variables configurations
  */
+#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
+#define CONFIG_ENV_IS_IN_SPI_FLASH  /* use SPI-Flash for environment vars */
+#define CONFIG_ENV_OFFSET		0xc0000     /* no bracets! */
+#define CONFIG_ENV_SIZE			0x02000     /* Size of Environment */
+#define CONFIG_ENV_SECT_SIZE		0x10000
+#define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + \
+					CONFIG_ENV_SECT_SIZE)
+#define CONFIG_ENV_TOTAL_SIZE		0x20000     /* no bracets! */
+#else
 #define CONFIG_ENV_IS_IN_EEPROM		/* use EEPROM for environment vars */
 #define CONFIG_SYS_DEF_EEPROM_ADDR	0x50
 #define CONFIG_ENV_EEPROM_IS_ON_I2C
@@ -218,11 +234,11 @@ int get_scl(void);
 #define CONFIG_ENV_OFFSET		0x0 /* no bracets! */
 #define CONFIG_ENV_SIZE			(0x2000 - CONFIG_ENV_OFFSET)
 #define CONFIG_I2C_ENV_EEPROM_BUS	KM_ENV_BUS "\0"
-
-/* offset redund: (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) */
-#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
 #define CONFIG_ENV_OFFSET_REDUND	0x2000 /* no bracets! */
 #define CONFIG_ENV_SIZE_REDUND		(CONFIG_ENV_SIZE)
+#endif
+
+#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
 
 #define CONFIG_SPI_FLASH
 #define CONFIG_SPI_FLASH_STMICRO
@@ -244,17 +260,27 @@ int get_scl(void);
 		"sf probe 0;sf erase 0 +${filesize};"			\
 		"sf write ${load_addr_r} 0 ${filesize};\0"
 
-/*
- * Default environment variables
- */
-#define CONFIG_EXTRA_ENV_SETTINGS					\
-	CONFIG_KM_DEF_ENV						\
+#if defined CONFIG_KM_ENV_IS_IN_SPI_NOR
+#define CONFIG_KM_NEW_ENV						\
+	"newenv=sf probe 0;"						\
+		"sf erase " xstr(CONFIG_ENV_OFFSET) " "			\
+		xstr(CONFIG_ENV_TOTAL_SIZE)"\0"
+#else
+#define CONFIG_KM_NEW_ENV						\
 	"newenv=setenv addr 0x100000 && "				\
 		"i2c dev 1; mw.b ${addr} 0 4 && "			\
 		"eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR)	\
 		" ${addr} " xstr(CONFIG_ENV_OFFSET) " 4 && "		\
 		"eeprom write " xstr(CONFIG_SYS_DEF_EEPROM_ADDR)	\
-		" ${addr} " xstr(CONFIG_ENV_OFFSET_REDUND) " 4\0"	\
+		" ${addr} " xstr(CONFIG_ENV_OFFSET_REDUND) " 4\0"
+#endif
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS					\
+	CONFIG_KM_DEF_ENV						\
+	CONFIG_KM_NEW_ENV						\
 	"arch=arm\0"							\
 	"EEprom_ivm=" KM_IVM_BUS "\0"					\
 	""
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index f639edc..34dd0a6 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -6,8 +6,9 @@
  * (C) Copyright 2009
  * Stefan Roese, DENX Software Engineering, sr at denx.de.
  *
- * (C) Copyright 2011
- * Holger Brunck, Keymile GmbH Hannover, holger.brunck at keymile.de
+ * (C) Copyright 2011-2012
+ * Holger Brunck, Keymile GmbH Hannover, holger.brunck at keymile.com
+ * Valentin Longchamp, Keymile AG, valentin.longchamp at keymile.com
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -36,23 +37,67 @@
 #ifndef _CONFIG_KM_KIRKWOOD_H
 #define _CONFIG_KM_KIRKWOOD_H
 
-/* include common defines/options for all arm based Keymile boards */
-#include "km/km_arm.h"
-
-/*
- * Version number information
- */
 #if defined(CONFIG_KM_KIRKWOOD)
-#define CONFIG_IDENT_STRING	"\nKeymile Kirkwood"
+#define CONFIG_IDENT_STRING		"\nKeymile Kirkwood"
 #undef  CONFIG_KIRKWOOD_PCIE_INIT
+#define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/
 #elif defined(CONFIG_KM_KIRKWOOD_PCI)
-#define CONFIG_IDENT_STRING	"\nKeymile Kirkwood PCI"
+#define CONFIG_IDENT_STRING		"\nKeymile Kirkwood PCI"
+#define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/
+/* KM_NUSA */
+#elif defined(CONFIG_KM_NUSA)
+#define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/
+#define CONFIG_IDENT_STRING		"\nKeymile NUSA"
+#undef CONFIG_SYS_KWD_CONFIG
+#define CONFIG_SYS_KWD_CONFIG \
+		$(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage_128M16_1.cfg
+#define CONFIG_KM_ENV_IS_IN_SPI_NOR
+#define CONFIG_KM_FPGA_CONFIG
+#define CONFIG_KM_PIGGY4_88E6352
+
+#else
+#error ("Board unsupported")
 #endif
 
+/* include common defines/options for all arm based Keymile boards */
+#include "km/km_arm.h"
+
 #define CONFIG_HOSTNAME			km_kirkwood
 
-#define KM_IVM_BUS	"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/
+#ifndef CONFIG_KM_ENV_IS_IN_SPI_NOR
 #define KM_ENV_BUS	"pca9544a:70:d"	/* I2C2 (Mux-Port 5)*/
+#endif
+
+#if defined(CONFIG_KM_PIGGY4_88E6352)
+/*
+ * Some keymile boards like mgcoge5un & nusa1 have their PIGGY4 connected via
+ * an Marvell 88E6352 simple switch.
+ * In this case we have to change the default settings for the etherent mac.
+ * There is NO ethernet phy. The ARM and Switch are conencted directly over
+ * RGMII in MAC-MAC mode
+ * In this case 1GBit full duplex and autoneg off
+ */
+#define PORT_SERIAL_CONTROL_VALUE		( \
+	MVGBE_FORCE_LINK_PASS			    | \
+	MVGBE_DIS_AUTO_NEG_FOR_DUPLX		| \
+	MVGBE_DIS_AUTO_NEG_FOR_FLOW_CTRL	| \
+	MVGBE_ADV_NO_FLOW_CTRL			    | \
+	MVGBE_FORCE_FC_MODE_NO_PAUSE_DIS_TX	| \
+	MVGBE_FORCE_BP_MODE_NO_JAM		    | \
+	(1 << 9) /* Reserved bit has to be 1 */	| \
+	MVGBE_DO_NOT_FORCE_LINK_FAIL		| \
+	MVGBE_DIS_AUTO_NEG_SPEED_GMII		| \
+	MVGBE_DTE_ADV_0				        | \
+	MVGBE_MIIPHY_MAC_MODE			    | \
+	MVGBE_AUTO_NEG_NO_CHANGE		    | \
+	MVGBE_MAX_RX_PACKET_1552BYTE		| \
+	MVGBE_CLR_EXT_LOOPBACK			    | \
+	MVGBE_SET_FULL_DUPLEX_MODE		    | \
+	MVGBE_EN_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX	|\
+	MVGBE_SET_GMII_SPEED_TO_1000	    |\
+	MVGBE_SET_MII_SPEED_TO_100)
+
+#endif
 
 /* GPIO Pin from kirkwood connected to PROGRAM_B pin of the xilinx FPGA */
 #define KM_XLX_PROGRAM_B_PIN    39
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 02/14] arm/km: add kmcoge5un board support
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 01/14] arm/km: add kmnusa board support Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-07-03  8:04   ` Prafulla Wadaskar
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood Holger Brunck
                   ` (11 subsequent siblings)
  13 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

For u-boot this board is similar to mgcoge3un. But some differences
are present. We have a different SDRAM on it and therefore a new
SDRAM config file. Additionaly this board has a direct MAC/MAC
connection from the kirkwood to a marvell simple switch without a
phy inbetween, this needs a new configuration for the mvgbe driver.
The testpin was inverted compared to other km_kirkwood boards, this
is the reason we need the change in post_hotkeys_pressed.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>

Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
---
changes for v2:
 - rename KMCOGE5UN to KM_COGE5UN
 - rename 256M8-1.cfg -> kwbimage_256M8_1.cfg
 - squash 17/20 arm/km: fix testpin detection for kmcoge5un into this
   commit because it should come with the board support patch

 MAINTAINERS                               |    1 +
 board/keymile/km_arm/km_arm.c             |    4 +
 board/keymile/km_arm/kwbimage_256M8_1.cfg |  296 +++++++++++++++++++++++++++++
 boards.cfg                                |    1 +
 include/configs/km_kirkwood.h             |   16 ++-
 5 files changed, 316 insertions(+), 2 deletions(-)
 create mode 100644 board/keymile/km_arm/kwbimage_256M8_1.cfg

diff --git a/MAINTAINERS b/MAINTAINERS
index aa11268..ef57cd6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -740,6 +740,7 @@ Valentin Longchamp <valentin.longchamp@keymile.com>
 	km_kirkwood	ARM926EJS (Kirkwood SoC)
 	kmnusa		ARM926EJS (Kirkwood SoC)
 	mgcoge3un	ARM926EJS (Kirkwood SoC)
+	kmcoge5un	ARM926EJS (Kirkwood SoC)
 	portl2		ARM926EJS (Kirkwood SoC)
 
 Nishanth Menon <nm@ti.com>
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 421ee5a..b1e4178 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -457,7 +457,11 @@ int get_scl(void)
 
 int post_hotkeys_pressed(void)
 {
+#if defined(CONFIG_KMCOGE5UN)
+	return kw_gpio_get_value(KM_POST_EN_L);
+#else
 	return !kw_gpio_get_value(KM_POST_EN_L);
+#endif
 }
 
 ulong post_word_load(void)
diff --git a/board/keymile/km_arm/kwbimage_256M8_1.cfg b/board/keymile/km_arm/kwbimage_256M8_1.cfg
new file mode 100644
index 0000000..3e1237b
--- /dev/null
+++ b/board/keymile/km_arm/kwbimage_256M8_1.cfg
@@ -0,0 +1,296 @@
+#
+# (C) Copyright 2012
+# Stefan Bigler, Keymile AG, stefan.bigler at keymile.com
+# Norbert Mayer, Keymile AG, norbert.mayer at keymile.com
+# Deepak Patel, XENTECH Limited, deepak.patel at xentech.co.uk
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+# Refer docs/README.kwimage for more details about how-to configure
+# and create kirkwood boot image
+#
+# This configuration applies to COGE5 design (ARM-part)
+# Two 8-Bit devices are connected on the 16-Bit bus on the same
+# chip-select. The supported devices are
+#   MT47H256M8EB-3IT:C
+#   MT47H256M8EB-25EIT:C
+
+# Boot Media configurations
+BOOT_FROM	spi	# Boot from SPI flash
+
+DATA 0xFFD10000 0x01112222	# MPP Control 0 Register
+# bit 3-0:   2, MPPSel0  SPI_CSn  (1=NF_IO[2])
+# bit 7-4:   2, MPPSel1  SPI_MOSI (1=NF_IO[3])
+# bit 12-8:  2, MPPSel2  SPI_SCK  (1=NF_IO[4])
+# bit 15-12: 2, MPPSel3  SPI_MISO (1=NF_IO[5])
+# bit 19-16: 1, MPPSel4  NF_IO[6]
+# bit 23-20: 1, MPPSel5  NF_IO[7]
+# bit 27-24: 1, MPPSel6  SYSRST_O
+# bit 31-28: 0, MPPSel7  GPO[7]
+
+DATA 0xFFD10004 0x03303300	# MPP Control 1 Register
+# bit 3-0:   0, MPPSel8	 GPIO[8] CPU_SDA bitbanged
+# bit 7-4:   0, MPPSel9  GPIO[9] CPU_SCL bitbanged
+# bit 12-8:  3, MPPSel10 UA0_TXD
+# bit 15-12: 3, MPPSel11 UA0_RXD
+# bit 19-16: 0, MPPSel12 not connected
+# bit 23-20: 3, MPPSel13 GPIO[14]
+# bit 27-24: 3, MPPSel14 GPIO[15]
+# bit 31-28: 0, MPPSel15 GPIO[16] BOOT_FL_SEL (SPI-MUX Signal)
+
+DATA 0xFFD10008 0x00001100	# MPP Control 2 Register
+# bit 3-0:   0, MPPSel16 GPIO[16]
+# bit 7-4:   0, MPPSel17 not connected
+# bit 11-8:  1, MPPSel18 NF_IO[0]
+# bit 15-12: 1, MPPSel19 NF_IO[1]
+# bit 19-16: 0, MPPSel20 GPIO[20]
+# bit 23-20: 0, MPPSel21 GPIO[21]
+# bit 27-24: 0, MPPSel22 GPIO[22]
+# bit 31-28: 0, MPPSel23 GPIO[23]
+
+# MPP Control 3-6 Register untouched (MPP24-49)
+
+DATA 0xFFD100E0 0x1B1B1B1B	# IO Configuration 0 Register
+# bit 2-0:   3, Reserved
+# bit 5-3:   3, Reserved
+# bit 6:     0, Reserved
+# bit 7:     0, RGMII-pads voltage = 3.3V
+# bit 10-8:  3, Reserved
+# bit 13-11: 3, Reserved
+# bit 14:    0, Reserved
+# bit 15:    0, MPP RGMII-pads voltage = 3.3V
+# bit 31-16  0x1B1B, Reserved
+
+DATA 0xFFD20134 0x66666666	# L2 RAM Timing 0 Register
+# bit 0-1:   2, Tag RAM RTC RAM0
+# bit 3-2:   1, Tag RAM WTC RAM0
+# bit 7-4:   6, Reserved
+# bit 9-8:   2, Valid RAM RTC RAM
+# bit 11-10: 1, Valid RAM WTC RAM
+# bit 13-12: 2, Dirty RAM RTC RAM
+# bit 15-14: 1, Dirty RAM WTC RAM
+# bit 17-16: 2, Data RAM RTC RAM0
+# bit 19-18: 1, Data RAM WTC RAM0
+# bit 21-20: 2, Data RAM RTC RAM1
+# bit 23-22: 1, Data RAM WTC RAM1
+# bit 25-24: 2, Data RAM RTC RAM2
+# bit 27-26: 1, Data RAM WTC RAM2
+# bit 29-28: 2, Data RAM RTC RAM3
+# bit 31-30: 1, Data RAM WTC RAM4
+
+DATA 0xFFD20138 0x66666666	# L2 RAM Timing 1 Register
+# bit 15-0:  ?, Reserved
+# bit 17-16: 2, ECC RAM RTC RAM0
+# bit 19-18: 1, ECC RAM WTC RAM0
+# bit 31-20: ?,Reserved
+
+DATA 0xFFD20154 0x00000200	# CPU RAM Management Control3 Register
+# bit 23-0:  0x000200, Addr Config tuning
+# bit 31-24: 0,        Reserved
+
+# ??? Missing register # CPU RAM Management Control2 Register
+
+DATA 0xFFD2014C 0x00001C00	# CPU RAM Management Control1 Register
+# bit 15-0:  0x1C00, Opmux Tuning
+# bit 31-16: 0,      Pc Dp Tuning
+
+DATA 0xFFD20148 0x00000001	# CPU RAM Management Control0 Register
+# bit 1-0:   1, addr clk tune
+# bit 3-2:   0, reserved
+# bit 5-4:   0, dtcmp clk tune
+# bit 7-6:   0, reserved
+# bit 9-8:   0, macdrv clk tune
+# bit 11-10: 0, opmuxgm2 clk tune
+# bit 15-14: 0, rf clk tune
+# bit 17-16: 0, rfbypass clk tune
+# bit 19-18: 0, pc dp clk tune
+# bit 23-20: 0, icache clk tune
+# bit 27:24: 0, dcache clk tune
+# bit 31:28: 0, regfile tunin
+
+# SDRAM initalization
+DATA 0xFFD01400 0x430004E0	# SDRAM Configuration Register
+# bit 13-0:  0x4E0, DDR2 clks refresh rate
+# bit 14:    0, reserved
+# bit 15:    0, reserved
+# bit 16:    0, CPU to Dram Write buffer policy
+# bit 17:    0, Enable Registered DIMM or Equivalent Sampling Logic
+# bit 19-18: 0, reserved
+# bit 23-20: 0, reserved
+# bit 24:    1, enable exit self refresh mode on DDR access
+# bit 25:    1, required
+# bit 29-26: 0, reserved
+# bit 31-30: 1, reserved
+
+DATA 0xFFD01404 0x36543000	# DDR Controller Control Low
+# bit 3-0:   0, reserved
+# bit 4:     0, 2T mode =addr/cmd in same cycle
+# bit 5:     0, clk is driven during self refresh, we don't care for APX
+# bit 6:     0, use recommended falling edge of clk for addr/cmd
+# bit 7-11:  0, reserved
+# bit 12-13: 1, reserved, required 1
+# bit 14:    0, input buffer always powered up
+# bit 17-15: 0, reserved
+# bit 18:    1, cpu lock transaction enabled
+# bit 19:    0, reserved
+# bit 23-20: 5, recommended value for CL=4 and STARTBURST_DEL disabled bit31=0
+# bit 27-24: 6, CL+1, STARTBURST sample stages, freq 200-399MHz, unbuffer DIMM
+# bit 30-28: 3, required
+# bit 31:    0, no additional STARTBURST delay
+
+DATA 0xFFD01408 0x2202444E	# DDR Timing (Low) (active cycles value +1)
+# bit 3-0:   0xe, TRAS = 45ns -> 15 clk cycles
+# bit 7-4:   0x4, TRCD = 15ns -> 5 clk cycles
+# bit 11-8:  0x4, TRP = 15ns -> 5 clk cycles
+# bit 15-12: 0x4, TWR = 15ns -> 5 clk cycles
+# bit 19-16: 0x2, TWTR = 7,5ns -> 3 clk cycles
+# bit 20:      0, extended TRAS msb
+# bit 23-21:   0, reserved
+# bit 27-24: 0x2, TRRD = 7,5ns -> 3 clk cycles
+# bit 31-28: 0x2, TRTP = 7,5ns -> 3 clk cycles
+
+DATA 0xFFD0140C 0x0000003E	#  DDR Timing (High)
+# bit 6-0:   0x3E, TRFC = 195ns -> 63 clk cycles
+# bit 8-7:      0, TR2R
+# bit 10-9:     0, TR2W
+# bit 12-11:    0, TW2W
+# bit 31-13:    0, reserved
+
+DATA 0xFFD01410 0x00000000	#  DDR Address Control
+# bit 1-0:    0, Cs0width=x8 (2 devices)
+# bit 3-2:    0, Cs0size=2Gb
+# bit 5-4:    0, Cs1width=nonexistent
+# bit 7-6:    0, Cs1size =nonexistent
+# bit 9-8:    0, Cs2width=nonexistent
+# bit 11-10:  0, Cs2size =nonexistent
+# bit 13-12:  0, Cs3width=nonexistent
+# bit 15-14:  0, Cs3size =nonexistent
+# bit 16:     0, Cs0AddrSel
+# bit 17:     0, Cs1AddrSel
+# bit 18:     0, Cs2AddrSel
+# bit 19:     0, Cs3AddrSel
+# bit 31-20:  0, required
+
+DATA 0xFFD01414 0x00000000	#  DDR Open Pages Control
+# bit 0:      0,  OpenPage enabled
+# bit 31-1:   0, required
+
+DATA 0xFFD01418 0x00000000	#  DDR Operation
+# bit 3-0:    0, DDR cmd
+# bit 31-4:   0, required
+
+DATA 0xFFD0141C 0x00000652	#  DDR Mode
+# bit 2-0:    2, Burst Length = 4
+# bit 3:      0, Burst Type
+# bit 6-4:    5, CAS Latency = 5
+# bit 7:      0, Test mode
+# bit 8:      0, DLL Reset
+# bit 11-9:   3, Write recovery for auto-precharge must be 3
+# bit 12:     0, Active power down exit time, fast exit
+# bit 14-13:  0, reserved
+# bit 31-15:  0, reserved
+
+DATA 0xFFD01420 0x00000006	#  DDR Extended Mode
+# bit 0:      0, DDR DLL enabled
+# bit 1:      1, DDR drive strenght reduced
+# bit 2:      1, DDR ODT control lsb, 75ohm termination [RTT0]
+# bit 5-3:    0, required
+# bit 6:      0, DDR ODT control msb, 75ohm termination [RTT1]
+# bit 9-7:    0, required
+# bit 10:     0, differential DQS enabled
+# bit 11:     0, required
+# bit 12:     0, DDR output buffer enabled
+# bit 31-13:  0 required
+
+DATA 0xFFD01424 0x0000F17F	#  DDR Controller Control High
+# bit 2-0:    7, required
+# bit 3:      1, MBUS Burst Chop disabled
+# bit 6-4:    7, required
+# bit 7:      0, reserved
+# bit 8:      1, add sample stage required for > 266Mhz
+# bit 9:      0, no half clock cycle addition to dataout
+# bit 10:     0, 1/4 clock cycle skew enabled for addr/ctl signals
+# bit 11:     0, 1/4 clock cycle skew disabled for write mesh
+# bit 15-12:0xf, required
+# bit 31-16:  0, required
+
+DATA 0xFFD01428 0x00084520	# DDR2 SDRAM Timing Low
+# bit 3-0:    0, required
+# bit 7-4:    2, M_ODT assertion 2 cycles after read start command
+# bit 11-8:   5, M_ODT de-assertion 5 cycles after read start command
+#                (ODT turn off delay 2,5 clk cycles)
+# bit 15-12:  4, internal ODT time based on bit 7-4
+#                with the considered SDRAM internal delay
+# bit 19-16:  8, internal ODT de-assertion based on bit 11-8
+#                with the considered SDRAM internal delay
+# bit 31-20:  0, required
+
+DATA 0xFFD0147c 0x00008452	# DDR2 SDRAM Timing High
+# bit 3-0:    2, M_ODT assertion same as bit 11-8
+# bit 7-4:    5, M_ODT de-assertion same as bit 15-12
+# bit 11-8:   4, internal ODT assertion 2 cycles after write start command
+#                with the considered SDRAM internal delay
+# bit 15-12:  8, internal ODT de-assertion 5 cycles after write start command
+#                with the considered SDRAM internal delay
+
+DATA 0xFFD01500 0x00000000	# CS[0]n Base address to 0x0
+# bit 23-0:   0, reserved
+# bit 31-24:  0, CPU CS Window0 Base Address, addr bits [31:24]
+
+DATA 0xFFD01504 0x1FFFFFF1	# CS[0]n Size
+# bit 0:      1, Window enabled
+# bit 1:      0, Write Protect disabled
+# bit 3-2:    0, CS0 hit selected
+# bit 23-4:ones, required
+# bit 31-24:0x1F, Size (i.e. 512MB)
+
+DATA 0xFFD0150C 0x00000000	# CS[1]n Size, window disabled
+DATA 0xFFD01514 0x00000000	# CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000	# CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x00010000	#  DDR ODT Control (Low)
+# bit 3-0:     0, ODT0Rd, MODT[0] not asserted during read from DRAM CS0
+# bit 7-4:     0, ODT0Rd, MODT[1] not asserted
+# bit 11-8:    0, required
+# big 15-11:   0, required
+# bit 19-16:   1, ODT0Wr, MODT[0] asserted during write to DRAM CS0
+# bit 23-20:   0, ODT0Wr, MODT[1] not asserted
+# bit 27-24:   0, required
+# bit 31-28:   0, required
+
+DATA 0xFFD01498 0x00000004	#  DDR ODT Control (High)
+# bit 1-0:     0, ODT0 controlled by ODT Control (low) register above
+# bit 3-2:     1, ODT1 never active
+# bit 31-4:    0, required
+
+DATA 0xFFD0149C 0x0000E801	# CPU ODT Control
+# bit 3-0:     1, ODT0Rd, Internal ODT asserted during read from DRAM bank0
+# bit 7-4:     0, ODT0Wr, Internal ODT not asserted during write to DRAM bank0
+# bit 9-8:     0, ODTEn, controlled by ODT0Rd and ODT0Wr
+# bit 11-10:   2, DQ_ODTSel. ODT select turned on, 75 ohm
+# bit 13-12:   2, STARTBURST ODT buffer selected, 75 ohm
+# bit 14:      1, STARTBURST ODT enabled
+# bit 15:      1, Use ODT Block
+
+DATA 0xFFD01480 0x00000001	# DDR Initialization Control
+# bit 0:       1, enable DDR init upon this register write
+# bit 31-1:    0, reserved
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/boards.cfg b/boards.cfg
index 1a4c2ad..6b3ca89 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -142,6 +142,7 @@ km_kirkwood                  arm         arm926ejs   km_arm              keymile
 km_kirkwood_pci              arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD_PCI,KM_RECONFIG_XLX
 kmnusa                       arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_NUSA
 mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood
+kmcoge5un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_COGE5UN
 portl2                       arm         arm926ejs   km_arm              keymile        kirkwood
 inetspace_v2                 arm         arm926ejs   netspace_v2         LaCie          kirkwood	lacie_kw:INETSPACE_V2
 net2big_v2                   arm         arm926ejs   net2big_v2          LaCie          kirkwood	lacie_kw:NET2BIG_V2
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index 34dd0a6..d839a02 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -39,15 +39,18 @@
 
 #if defined(CONFIG_KM_KIRKWOOD)
 #define CONFIG_IDENT_STRING		"\nKeymile Kirkwood"
+#define CONFIG_HOSTNAME			km_kirkwood
 #undef  CONFIG_KIRKWOOD_PCIE_INIT
 #define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/
 #elif defined(CONFIG_KM_KIRKWOOD_PCI)
 #define CONFIG_IDENT_STRING		"\nKeymile Kirkwood PCI"
+#define CONFIG_HOSTNAME			km_kirkwood_pci
 #define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/
 /* KM_NUSA */
 #elif defined(CONFIG_KM_NUSA)
 #define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/
 #define CONFIG_IDENT_STRING		"\nKeymile NUSA"
+#define CONFIG_HOSTNAME			kmnusa
 #undef CONFIG_SYS_KWD_CONFIG
 #define CONFIG_SYS_KWD_CONFIG \
 		$(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage_128M16_1.cfg
@@ -55,6 +58,17 @@
 #define CONFIG_KM_FPGA_CONFIG
 #define CONFIG_KM_PIGGY4_88E6352
 
+#elif defined(CONFIG_KM_COGE5UN)
+#define CONFIG_IDENT_STRING		"\nKeymile COGE5UN"
+#define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/
+#undef	CONFIG_SYS_KWD_CONFIG
+#define CONFIG_SYS_KWD_CONFIG \
+		$(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage_256M8_1.cfg
+#define CONFIG_KM_ENV_IS_IN_SPI_NOR
+#define CONFIG_PIGGY_MAC_ADRESS_OFFSET	3
+#define CONFIG_HOSTNAME			kmcoge5un
+#define CONFIG_KM_DISABLE_PCIE
+#define CONFIG_KM_PIGGY4_88E6352
 #else
 #error ("Board unsupported")
 #endif
@@ -62,8 +76,6 @@
 /* include common defines/options for all arm based Keymile boards */
 #include "km/km_arm.h"
 
-#define CONFIG_HOSTNAME			km_kirkwood
-
 #ifndef CONFIG_KM_ENV_IS_IN_SPI_NOR
 #define KM_ENV_BUS	"pca9544a:70:d"	/* I2C2 (Mux-Port 5)*/
 #endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 01/14] arm/km: add kmnusa board support Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 02/14] arm/km: add kmcoge5un " Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-07-03  8:05   ` Prafulla Wadaskar
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 04/14] arm/km: remove portl2.h and use km_kirkwood instead Holger Brunck
                   ` (10 subsequent siblings)
  13 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

Use the generic header km_kirkwood.h and get rid of the
board specific header.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
   - rebased because of changes in other patches

 board/keymile/km_arm/km_arm.c |    9 ++--
 boards.cfg                    |    2 +-
 include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
 include/configs/mgcoge3un.h   |   87 -----------------------------------------
 4 files changed, 51 insertions(+), 93 deletions(-)
 delete mode 100644 include/configs/mgcoge3un.h

diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index b1e4178..09a9538 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -114,7 +114,7 @@ u32 kwmpp_config[] = {
 	0
 };
 
-#if defined(CONFIG_MGCOGE3UN)
+#if defined(CONFIG_KM_MGCOGE3UN)
 /*
  * Wait for startup OK from mgcoge3ne
  */
@@ -134,8 +134,7 @@ int startup_allowed(void)
 }
 #endif
 
-#if (defined(CONFIG_MGCOGE3UN)|defined(CONFIG_PORTL2)| \
-	defined(CONFIG_KM_PIGGY4_88E6352))
+#if (defined(CONFIG_KM_PIGGY4_88E6061)|defined(CONFIG_KM_PIGGY4_88E6352))
 /*
  * All boards with PIGGY4 connected via a simple switch have ethernet always
  * present.
@@ -203,7 +202,7 @@ int misc_init_r(void)
 		printf("Overwriting MACH_TYPE with %d!!!\n", mach_type);
 		gd->bd->bi_arch_number = mach_type;
 	}
-#if defined(CONFIG_MGCOGE3UN)
+#if defined(CONFIG_KM_MGCOGE3UN)
 	char *wait_for_ne;
 	wait_for_ne = getenv("waitforne");
 	if (wait_for_ne != NULL) {
@@ -318,7 +317,7 @@ void dram_init_banksize(void)
 	}
 }
 
-#if (defined(CONFIG_MGCOGE3UN)|defined(CONFIG_PORTL2))
+#if (defined(CONFIG_KM_MGCOGE3UN)|defined(CONFIG_PORTL2))
 
 #define	PHY_LED_SEL	0x18
 #define PHY_LED0_LINK	(0x5)
diff --git a/boards.cfg b/boards.cfg
index 6b3ca89..47d384e 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -141,7 +141,7 @@ dns325                       arm         arm926ejs   -                   d-link
 km_kirkwood                  arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD,KM_DISABLE_PCI
 km_kirkwood_pci              arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD_PCI,KM_RECONFIG_XLX
 kmnusa                       arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_NUSA
-mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood
+mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_MGCOGE3UN
 kmcoge5un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_COGE5UN
 portl2                       arm         arm926ejs   km_arm              keymile        kirkwood
 inetspace_v2                 arm         arm926ejs   netspace_v2         LaCie          kirkwood	lacie_kw:INETSPACE_V2
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index d839a02..f5b9d27 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -58,6 +58,20 @@
 #define CONFIG_KM_FPGA_CONFIG
 #define CONFIG_KM_PIGGY4_88E6352
 
+/* KM_MGCOGE3UN */
+#elif defined(CONFIG_KM_MGCOGE3UN)
+#define CONFIG_IDENT_STRING		"\nKeymile COGE3UN"
+#define CONFIG_HOSTNAME			mgcoge3un
+#define KM_IVM_BUS			"pca9547:70:9" /* I2C2 (Mux-Port 1)*/
+#undef CONFIG_SYS_KWD_CONFIG
+#define CONFIG_SYS_KWD_CONFIG \
+		$(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-memphis.cfg
+#define CONFIG_KM_BOARD_EXTRA_ENV	"waitforne=true\0"
+#define CONFIG_PIGGY_MAC_ADRESS_OFFSET  3
+#define CONFIG_KM_DISABLE_PCIE
+#define CONFIG_KM_PIGGY4_88E6061
+
+/* KMCOGE5UN */
 #elif defined(CONFIG_KM_COGE5UN)
 #define CONFIG_IDENT_STRING		"\nKeymile COGE5UN"
 #define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/
@@ -111,7 +125,39 @@
 
 #endif
 
+#ifdef CONFIG_KM_PIGGY4_88E6061
+/*
+ * Some keymile boards like mgcoge3un have their PIGGY4 connected via
+ * an Marvell 88E6061 simple switch.
+ * In this case we have to change the default settings for the
+ * ethernet phy connected to the kirkwood.
+ * In this case 100MB full duplex and autoneg off
+ */
+#define PORT_SERIAL_CONTROL_VALUE		( \
+	MVGBE_FORCE_LINK_PASS			| \
+	MVGBE_DIS_AUTO_NEG_FOR_DUPLX		| \
+	MVGBE_DIS_AUTO_NEG_FOR_FLOW_CTRL	| \
+	MVGBE_ADV_NO_FLOW_CTRL			| \
+	MVGBE_FORCE_FC_MODE_NO_PAUSE_DIS_TX	| \
+	MVGBE_FORCE_BP_MODE_NO_JAM		| \
+	(1 << 9) /* Reserved bit has to be 1 */	| \
+	MVGBE_DO_NOT_FORCE_LINK_FAIL		| \
+	MVGBE_DIS_AUTO_NEG_SPEED_GMII		| \
+	MVGBE_DTE_ADV_0				| \
+	MVGBE_MIIPHY_MAC_MODE			| \
+	MVGBE_AUTO_NEG_NO_CHANGE		| \
+	MVGBE_MAX_RX_PACKET_1552BYTE		| \
+	MVGBE_CLR_EXT_LOOPBACK			| \
+	MVGBE_SET_FULL_DUPLEX_MODE		| \
+	MVGBE_DIS_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX	|\
+	MVGBE_SET_GMII_SPEED_TO_10_100	|\
+	MVGBE_SET_MII_SPEED_TO_100)
+#endif
+
 /* GPIO Pin from kirkwood connected to PROGRAM_B pin of the xilinx FPGA */
 #define KM_XLX_PROGRAM_B_PIN    39
 
+#ifdef CONFIG_KM_DISABLE_PCI
+#undef  CONFIG_KIRKWOOD_PCIE_INIT
+#endif
 #endif /* _CONFIG_KM_KIRKWOOD */
diff --git a/include/configs/mgcoge3un.h b/include/configs/mgcoge3un.h
deleted file mode 100644
index 156821c..0000000
--- a/include/configs/mgcoge3un.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * (C) Copyright 2009
- * Marvell Semiconductor <www.marvell.com>
- * Prafulla Wadaskar <prafulla@marvell.com>
- *
- * (C) Copyright 2009
- * Stefan Roese, DENX Software Engineering, sr at denx.de.
- *
- * (C) Copyright 2010-2011
- * Holger Brunck, Keymile GmbH Hannover, holger.brunck at keymile.com
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-
-/* for linking errors see
- * http://lists.denx.de/pipermail/u-boot/2009-July/057350.html */
-
-#ifndef _CONFIG_MGCOGE3UN_H
-#define _CONFIG_MGCOGE3UN_H
-
-/* include common defines/options for all arm based Keymile boards */
-#include "km/km_arm.h"
-
-/*
- * Version number information
- */
-#define CONFIG_IDENT_STRING	"\nKeymile MGCOGE3UN"
-#define CONFIG_HOSTNAME		mgcoge3un
-#define CONFIG_MGCOGE3UN
-
-#define KM_IVM_BUS	"pca9547:70:9" /* I2C2 (Mux-Port 1)*/
-#define KM_ENV_BUS	"pca9547:70:d" /* I2C2 (Mux-Port 5)*/
-
-/* we use a new RAM type on mgcoge3un board */
-#undef CONFIG_SYS_KWD_CONFIG
-#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-memphis.cfg
-
-/*
- * mgcoge3un has a fixed link to the marvell switch
- * with 100MB full duplex and autoneg off, for this
- * reason we have to change the default settings
- */
-#define PORT_SERIAL_CONTROL_VALUE		( \
-	MVGBE_FORCE_LINK_PASS			| \
-	MVGBE_DIS_AUTO_NEG_FOR_DUPLX		| \
-	MVGBE_DIS_AUTO_NEG_FOR_FLOW_CTRL	| \
-	MVGBE_ADV_NO_FLOW_CTRL			| \
-	MVGBE_FORCE_FC_MODE_NO_PAUSE_DIS_TX	| \
-	MVGBE_FORCE_BP_MODE_NO_JAM		| \
-	(1 << 9) /* Reserved bit has to be 1 */	| \
-	MVGBE_DO_NOT_FORCE_LINK_FAIL		| \
-	MVGBE_DIS_AUTO_NEG_SPEED_GMII		| \
-	MVGBE_DTE_ADV_0				| \
-	MVGBE_MIIPHY_MAC_MODE			| \
-	MVGBE_AUTO_NEG_NO_CHANGE		| \
-	MVGBE_MAX_RX_PACKET_1552BYTE		| \
-	MVGBE_CLR_EXT_LOOPBACK			| \
-	MVGBE_SET_FULL_DUPLEX_MODE		| \
-	MVGBE_DIS_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX	|\
-	MVGBE_SET_GMII_SPEED_TO_10_100	|\
-	MVGBE_SET_MII_SPEED_TO_100)
-
-#define CONFIG_KM_BOARD_EXTRA_ENV	"waitforne=true\0"
-#define CONFIG_PIGGY_MAC_ADRESS_OFFSET  3
-
-/*
- * PCIe port not used on mgcoge3un
- */
-#undef  CONFIG_KIRKWOOD_PCIE_INIT
-
-#endif /* _CONFIG_MGCOGE3UN_H */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 04/14] arm/km: remove portl2.h and use km_kirkwood instead
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (2 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-07-03  8:12   ` Prafulla Wadaskar
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 05/14] arm/km: correct init of 88e6352 switch in the reset_phy function Holger Brunck
                   ` (9 subsequent siblings)
  13 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

The additional headerfile is unneeded here, we can use the generic
km_kirkwood.h instead. And we can use the better config option
KM_PIGGY4_88E6061 for the specific features for boards with this
design in km_arm.c.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2: -simply rebased

 board/keymile/km_arm/km_arm.c |    2 +-
 boards.cfg                    |    2 +-
 include/configs/km_kirkwood.h |    8 ++++
 include/configs/portl2.h      |   85 -----------------------------------------
 4 files changed, 10 insertions(+), 87 deletions(-)
 delete mode 100644 include/configs/portl2.h

diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 09a9538..89fcab3 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -317,7 +317,7 @@ void dram_init_banksize(void)
 	}
 }
 
-#if (defined(CONFIG_KM_MGCOGE3UN)|defined(CONFIG_PORTL2))
+#if (defined(CONFIG_KM_PIGGY4_88E6061))
 
 #define	PHY_LED_SEL	0x18
 #define PHY_LED0_LINK	(0x5)
diff --git a/boards.cfg b/boards.cfg
index 47d384e..3b63167 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -143,7 +143,7 @@ km_kirkwood_pci              arm         arm926ejs   km_arm              keymile
 kmnusa                       arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_NUSA
 mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_MGCOGE3UN
 kmcoge5un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_COGE5UN
-portl2                       arm         arm926ejs   km_arm              keymile        kirkwood
+portl2                       arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_PORTL2
 inetspace_v2                 arm         arm926ejs   netspace_v2         LaCie          kirkwood	lacie_kw:INETSPACE_V2
 net2big_v2                   arm         arm926ejs   net2big_v2          LaCie          kirkwood	lacie_kw:NET2BIG_V2
 netspace_max_v2              arm         arm926ejs   netspace_v2         LaCie          kirkwood	lacie_kw:NETSPACE_MAX_V2
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index f5b9d27..44a3e7a 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -83,6 +83,14 @@
 #define CONFIG_HOSTNAME			kmcoge5un
 #define CONFIG_KM_DISABLE_PCIE
 #define CONFIG_KM_PIGGY4_88E6352
+
+/* KM_PORTL2 */
+#elif defined(CONFIG_KM_PORTL2)
+#define CONFIG_IDENT_STRING		"\nKeymile Port-L2"
+#define CONFIG_HOSTNAME			portl2
+#define KM_IVM_BUS			"pca9544a:70:9" /* I2C2 (Mux-Port 1)*/
+#define CONFIG_KM_PIGGY4_88E6061
+
 #else
 #error ("Board unsupported")
 #endif
diff --git a/include/configs/portl2.h b/include/configs/portl2.h
deleted file mode 100644
index e436cfe..0000000
--- a/include/configs/portl2.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * (C) Copyright 2009
- * Marvell Semiconductor <www.marvell.com>
- * Prafulla Wadaskar <prafulla@marvell.com>
- *
- * (C) Copyright 2009
- * Stefan Roese, DENX Software Engineering, sr at denx.de.
- *
- * (C) Copyright 2010-2011
- * Holger Brunck, Keymile GmbH Hannover, holger.brunck at keymile.com.
- * Valentin Longchamp, Keymile AG Bern, valentin.longchamp at keymile.com
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
- */
-
-/* for linking errors see
- * http://lists.denx.de/pipermail/u-boot/2009-July/057350.html */
-
-#ifndef _CONFIG_PORTL2_H
-#define _CONFIG_PORTL2_H
-
-/* include common defines/options for all arm based Keymile boards */
-#include "km/km_arm.h"
-
-/*
- * Version number information
- */
-#define CONFIG_IDENT_STRING	"\nKeymile Port-L2"
-#define CONFIG_HOSTNAME			portl2
-#define CONFIG_PORTL2
-
-#define KM_IVM_BUS	"pca9544a:70:9" /* I2C2 (Mux-Port 1)*/
-/*
- * Note: This is only valid for HW > P1A if you got an outdated P1A
- *       use KM_ENV_BUS  "pca9544a:70:a"
- */
-#define KM_ENV_BUS	"pca9544a:70:d"	/* I2C2 (Mux-Port 5)*/
-
-/*
- * portl2 has a fixed link to the XMPP backplane
- * with 100MB full duplex and autoneg off, for this
- * reason we have to change the default settings
- */
-#define PORT_SERIAL_CONTROL_VALUE		( \
-	MVGBE_FORCE_LINK_PASS			| \
-	MVGBE_DIS_AUTO_NEG_FOR_DUPLX		| \
-	MVGBE_DIS_AUTO_NEG_FOR_FLOW_CTRL	| \
-	MVGBE_ADV_NO_FLOW_CTRL			| \
-	MVGBE_FORCE_FC_MODE_NO_PAUSE_DIS_TX	| \
-	MVGBE_FORCE_BP_MODE_NO_JAM		| \
-	(1 << 9) /* Reserved bit has to be 1 */	| \
-	MVGBE_DO_NOT_FORCE_LINK_FAIL		| \
-	MVGBE_DIS_AUTO_NEG_SPEED_GMII		| \
-	MVGBE_DTE_ADV_0				| \
-	MVGBE_MIIPHY_MAC_MODE			| \
-	MVGBE_AUTO_NEG_NO_CHANGE		| \
-	MVGBE_MAX_RX_PACKET_1552BYTE		| \
-	MVGBE_CLR_EXT_LOOPBACK			| \
-	MVGBE_SET_FULL_DUPLEX_MODE		| \
-	MVGBE_DIS_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX	|\
-	MVGBE_SET_GMII_SPEED_TO_10_100	|\
-	MVGBE_SET_MII_SPEED_TO_100)
-
-/*
- * portl2 does use the PCIe Port0
- */
-#define  CONFIG_KIRKWOOD_PCIE_INIT
-
-#endif /* _CONFIG_PORTL2_H */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 05/14] arm/km: correct init of 88e6352 switch in the reset_phy function
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (3 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 04/14] arm/km: remove portl2.h and use km_kirkwood instead Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 06/14] arm/km: enable BOCO2 FPGA download support Holger Brunck
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Valentin Longchamp <valentin.longchamp@keymile.com>

This is achieved thanks to the support read/write regs for the external
88e6352 switch. The functions for this are added into an own file
managed_switch.c. This is compiled if the define CONFIG_KM_MANAGED_SW_ADDR
was set in the board setup. This define specifies the phy address.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Gerlando Falauto <gerlando.falauto@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 board/keymile/common/common.h         |    6 +
 board/keymile/km_arm/Makefile         |    4 +
 board/keymile/km_arm/km_arm.c         |   26 +++++-
 board/keymile/km_arm/managed_switch.c |  166 +++++++++++++++++++++++++++++++++
 include/configs/km_kirkwood.h         |   13 +++
 5 files changed, 214 insertions(+), 1 deletions(-)
 create mode 100644 board/keymile/km_arm/managed_switch.c

diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index 6c1f640..49225b8 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -125,6 +125,12 @@ struct bfticu_iomap {
 int ethernet_present(void);
 int ivm_read_eeprom(void);
 
+
+int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
+	u8 reg, u16 data);
+int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
+	u8 reg, u16 *data);
+
 int set_km_env(void);
 int fdt_set_node_and_value(void *blob,
 			char *nodename,
diff --git a/board/keymile/km_arm/Makefile b/board/keymile/km_arm/Makefile
index aa51255..06079e9 100644
--- a/board/keymile/km_arm/Makefile
+++ b/board/keymile/km_arm/Makefile
@@ -31,6 +31,10 @@ LIB	= $(obj)lib$(BOARD).o
 
 COBJS	:= $(BOARD).o ../common/common.o ../common/ivm.o
 
+ifdef CONFIG_KM_MANAGED_SW_ADDR
+COBJS	+= managed_switch.o
+endif
+
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS))
 SOBJS	:= $(addprefix $(obj),$(SOBJS))
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 89fcab3..66b82d0 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -9,6 +9,9 @@
  * (C) Copyright 2010
  * Heiko Schocher, DENX Software Engineering, hs at denx.de.
  *
+ * (C) Copyright 2011, 2012
+ * Valentin Lontgchamp, Keymile AG, valentin.longchamp at keymile.com
+ *
  * See file CREDITS for list of people who contributed to this
  * project.
  *
@@ -36,6 +39,7 @@
 #include <spi.h>
 #include <asm/io.h>
 #include <asm/arch/cpu.h>
+#include <asm/errno.h>
 #include <asm/arch/kirkwood.h>
 #include <asm/arch/mpp.h>
 
@@ -351,7 +355,27 @@ void reset_phy(void)
 	/* reset the phy */
 	miiphy_reset(name, CONFIG_PHY_BASE_ADR);
 }
-#elif !defined(CONFIG_KM_PIGGY4_88E6352)
+#elif defined(CONFIG_KM_PIGGY4_88E6352)
+
+#if defined(CONFIG_KM_MANAGED_SW_ADDR)
+void reset_phy(void)
+{
+	char *name = "egiga0";
+
+	if (miiphy_set_current_dev(name))
+		return;
+
+	/* enable autoneg on port 0 phy */
+	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 0, 0, 0x3300);
+
+	/* egress broadcast franes on all macs, with forwarding */
+	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 16, 4, 0x000f);
+	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 20, 4, 0x000f);
+	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 21, 4, 0x000f);
+}
+#endif
+
+#else
 /* Configure and enable MV88E1118 PHY on the piggy*/
 void reset_phy(void)
 {
diff --git a/board/keymile/km_arm/managed_switch.c b/board/keymile/km_arm/managed_switch.c
new file mode 100644
index 0000000..482c18d
--- /dev/null
+++ b/board/keymile/km_arm/managed_switch.c
@@ -0,0 +1,166 @@
+/*
+ * (C) Copyright 2012
+ * Valentin Lontgchamp, Keymile AG, valentin.longchamp at keymile.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <common.h>
+#include <miiphy.h>
+#include <asm/errno.h>
+
+#define SMI_HDR		((0x8 | 0x1) << 12)
+#define SMI_BUSY_MASK	(0x8000)
+#define SMIRD_OP	(0x2 << 10)
+#define SMIWR_OP	(0x1 << 10)
+#define SMI_MASK	0x1f
+#define PORT_SHIFT	5
+
+#define COMMAND_REG	0
+#define DATA_REG	1
+
+static int ext_switch_wait_rdy(const char *devname, u8 phy_addr)
+{
+	u16 command;
+	u32 timeout = 100;
+	int ret;
+
+	/* wait till the SMI is not busy */
+	do {
+		/* read command register */
+		ret = miiphy_read(devname, phy_addr, COMMAND_REG, &command);
+		if (ret < 0) {
+			printf("%s: Error reading command register\n",
+				__func__);
+			return ret;
+		}
+		if (timeout-- == 0) {
+			printf("Err..(%s) SMI busy timeout\n", __func__);
+			return -EFAULT;
+		}
+	} while (command & SMI_BUSY_MASK);
+
+	return 0;
+}
+
+int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
+	u8 reg, u16 *data)
+{
+	int ret;
+	u16 command;
+
+	ret = ext_switch_wait_rdy(devname, phy_addr);
+	if (ret)
+		return ret;
+
+	command = SMI_HDR | SMIRD_OP | ((port&SMI_MASK) << PORT_SHIFT) |
+			(reg & SMI_MASK);
+	debug("%s: write to command: %#x\n", __func__, command);
+	ret = miiphy_write(devname, phy_addr, COMMAND_REG, command);
+	if (ret)
+		return ret;
+
+	ret = ext_switch_wait_rdy(devname, phy_addr);
+	if (ret)
+		return ret;
+
+	ret = miiphy_read(devname, phy_addr, DATA_REG, data);
+
+	return ret;
+}
+
+int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
+	u8 reg, u16 data)
+{
+	int ret;
+	u16 value;
+
+	ret = ext_switch_wait_rdy(devname, phy_addr);
+	if (ret)
+		return ret;
+
+	debug("%s: write to data: %#x\n", __func__, data);
+	ret = miiphy_write(devname, phy_addr, DATA_REG, data);
+	if (ret)
+		return ret;
+
+	value = SMI_HDR | SMIWR_OP | ((port & SMI_MASK) << PORT_SHIFT) |
+			(reg & SMI_MASK);
+	debug("%s: write to command: %#x\n", __func__, value);
+	ret = miiphy_write(devname, phy_addr, COMMAND_REG, value);
+	if (ret)
+		return ret;
+
+	ret = ext_switch_wait_rdy(devname, phy_addr);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+int do_sw_reg_read(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	char *name = "egiga0";
+	u16 value = 0, phyaddr, reg, port;
+	int ret;
+
+	if (argc < 4)
+		return cmd_usage(cmdtp);
+
+	phyaddr = simple_strtoul(argv[1], NULL, 16);
+	port = simple_strtoul(argv[2], NULL, 10);
+	reg = simple_strtoul(argv[3], NULL, 10);
+
+	ret = ext_switch_reg_read(name, phyaddr, port, reg, &value);
+	printf("%#x\n", value);
+
+	return ret;
+}
+
+U_BOOT_CMD(
+	sw_reg_read,	4,	1,	do_sw_reg_read,
+	"read the switch registers",
+	"<phyaddr> <port> <reg>\n"
+	);
+
+int do_sw_reg_write(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	char *name = "egiga0";
+	u16 value = 0, phyaddr, reg, port;
+	int ret;
+
+	if (argc < 5)
+		return cmd_usage(cmdtp);
+
+	phyaddr = simple_strtoul(argv[1], NULL, 16);
+	port = simple_strtoul(argv[2], NULL, 10);
+	reg = simple_strtoul(argv[3], NULL, 10);
+	value = simple_strtoul(argv[4], NULL, 16);
+
+	ret = ext_switch_reg_write(name, phyaddr, port, reg, value);
+
+	return ret;
+}
+
+U_BOOT_CMD(
+	sw_reg_write,	5,	1,	do_sw_reg_write,
+	"write the the switch registers",
+	"<phyaddr> <port> <reg> <value>\n"
+	);
+
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index 44a3e7a..503c27d 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -58,6 +58,7 @@
 #define CONFIG_KM_FPGA_CONFIG
 #define CONFIG_KM_PIGGY4_88E6352
 
+#define CONFIG_KM_MANAGED_SW_ADDR	0x10
 /* KM_MGCOGE3UN */
 #elif defined(CONFIG_KM_MGCOGE3UN)
 #define CONFIG_IDENT_STRING		"\nKeymile COGE3UN"
@@ -131,6 +132,18 @@
 	MVGBE_SET_GMII_SPEED_TO_1000	    |\
 	MVGBE_SET_MII_SPEED_TO_100)
 
+/*
+ * There is no phy on the eth interface, but an external switch
+ * For kmcoge5un it is completely unmanaged, so we disable an access to it
+ * For km_nusa, we an MDIO(MII) interface that can configure the switch trough
+ * an indirect access, so we do not disable the MII
+ */
+#ifndef CONFIG_KM_MANAGED_SW_ADDR
+#undef CONFIG_MII
+#undef CONFIG_CMD_MII
+#undef CONFIG_RESET_PHY_R
+#endif
+
 #endif
 
 #ifdef CONFIG_KM_PIGGY4_88E6061
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 06/14] arm/km: enable BOCO2 FPGA download support
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (4 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 05/14] arm/km: correct init of 88e6352 switch in the reset_phy function Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 07/14] arm/km: cleanup km_kirkwood boards Holger Brunck
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Valentin Longchamp <valentin.longchamp@keymile.com>

This adds a first support of the FPGA download for a PCIe FPGA based
on the BOCO2 CPLD.

This takes place in 3 steps, all done accessing the SPICTRL reg of the
BOCO2:
1) start the FPGA config with an access to the FPGA_PROG bit
2) later in the boot sequence, wait for the FPGA_DONE bit to toggle to 1
   for the end of the FPGA configuration (with a timeout)
3) reset the FPGA
4) finally remove the access to its config EEPROM from the FPGA so that
   the CPU can update the FPGA configuration when the kernel is running

The boards with a PCIe FPGA but without BOCO2 still are supported.

The config option name is CONFIG_KM_FPGA_CONFIG

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 board/keymile/common/common.h      |    6 +
 board/keymile/km_arm/Makefile      |    4 +
 board/keymile/km_arm/fpga_config.c |  212 ++++++++++++++++++++++++++++++++++++
 board/keymile/km_arm/km_arm.c      |   21 +++-
 boards.cfg                         |    2 +-
 include/configs/km/km_arm.h        |    3 +
 include/configs/km_kirkwood.h      |    8 +-
 7 files changed, 246 insertions(+), 10 deletions(-)
 create mode 100644 board/keymile/km_arm/fpga_config.c

diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index 49225b8..c58e565 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -131,6 +131,12 @@ int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
 int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
 	u8 reg, u16 *data);
 
+
+int trigger_fpga_config(void);
+int wait_for_fpga_config(void);
+int fpga_reset(void);
+int toggle_eeprom_spi_bus(void);
+
 int set_km_env(void);
 int fdt_set_node_and_value(void *blob,
 			char *nodename,
diff --git a/board/keymile/km_arm/Makefile b/board/keymile/km_arm/Makefile
index 06079e9..bd824e2 100644
--- a/board/keymile/km_arm/Makefile
+++ b/board/keymile/km_arm/Makefile
@@ -31,6 +31,10 @@ LIB	= $(obj)lib$(BOARD).o
 
 COBJS	:= $(BOARD).o ../common/common.o ../common/ivm.o
 
+ifdef CONFIG_KM_FPGA_CONFIG
+COBJS	+= fpga_config.o
+endif
+
 ifdef CONFIG_KM_MANAGED_SW_ADDR
 COBJS	+= managed_switch.o
 endif
diff --git a/board/keymile/km_arm/fpga_config.c b/board/keymile/km_arm/fpga_config.c
new file mode 100644
index 0000000..4356b9a
--- /dev/null
+++ b/board/keymile/km_arm/fpga_config.c
@@ -0,0 +1,212 @@
+/*
+ * (C) Copyright 2012
+ * Valentin Lontgchamp, Keymile AG, valentin.longchamp at keymile.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <common.h>
+#include <i2c.h>
+#include <asm/errno.h>
+
+/* GPIO Pin from kirkwood connected to PROGRAM_B pin of the xilinx FPGA */
+#define KM_XLX_PROGRAM_B_PIN    39
+
+#define BOCO_ADDR	0x10
+
+#define ID_REG		0x00
+#define BOCO2_ID	0x5b
+
+static int check_boco2(void)
+{
+	int ret;
+	u8 id;
+
+	ret = i2c_read(BOCO_ADDR, ID_REG, 1, &id, 1);
+	if (ret) {
+		printf("%s: error reading the BOCO id !!\n", __func__);
+		return ret;
+	}
+
+	return (id == BOCO2_ID);
+}
+
+static int boco_clear_bits(u8 reg, u8 flags)
+{
+	int ret;
+	u8 regval;
+
+	/* give access to the EEPROM from FPGA */
+	ret = i2c_read(BOCO_ADDR, reg, 1, &regval, 1);
+	if (ret) {
+		printf("%s: error reading the BOCO @%#x !!\n",
+			__func__, reg);
+		return ret;
+	}
+	regval &= ~flags;
+	ret = i2c_write(BOCO_ADDR, reg, 1, &regval, 1);
+	if (ret) {
+		printf("%s: error writing the BOCO @%#x !!\n",
+			__func__, reg);
+		return ret;
+	}
+
+	return 0;
+}
+
+static int boco_set_bits(u8 reg, u8 flags)
+{
+	int ret;
+	u8 regval;
+
+	/* give access to the EEPROM from FPGA */
+	ret = i2c_read(BOCO_ADDR, reg, 1, &regval, 1);
+	if (ret) {
+		printf("%s: error reading the BOCO @%#x !!\n",
+			__func__, reg);
+		return ret;
+	}
+	regval |= flags;
+	ret = i2c_write(BOCO_ADDR, reg, 1, &regval, 1);
+	if (ret) {
+		printf("%s: error writing the BOCO @%#x !!\n",
+			__func__, reg);
+		return ret;
+	}
+
+	return 0;
+}
+
+#define SPI_REG		0x06
+#define CFG_EEPROM	0x02
+#define FPGA_PROG	0x04
+#define FPGA_DONE	0x20
+
+int trigger_fpga_config(void)
+{
+	int ret = 0;
+
+	if (check_boco2()) {
+		/* we have a BOCO2, this has to be triggered here */
+
+		/* make sure the FPGA_can access the EEPROM */
+		ret = boco_clear_bits(SPI_REG, CFG_EEPROM);
+		if (ret)
+			return ret;
+
+		/* trigger the config start */
+		ret = boco_clear_bits(SPI_REG, FPGA_PROG);
+		if (ret)
+			return ret;
+
+		/* small delay for the pulse */
+		udelay(10);
+
+		/* up signal for pulse end */
+		ret = boco_set_bits(SPI_REG, FPGA_PROG);
+		if (ret)
+			return ret;
+
+	} else {
+		/* we do it the old way, with the gpio pin */
+		kw_gpio_set_valid(KM_XLX_PROGRAM_B_PIN, 1);
+		kw_gpio_direction_output(KM_XLX_PROGRAM_B_PIN, 0);
+		/* small delay for the pulse */
+		udelay(10);
+		kw_gpio_direction_input(KM_XLX_PROGRAM_B_PIN);
+	}
+
+	return 0;
+}
+
+int wait_for_fpga_config(void)
+{
+	int ret = 0;
+	u8 spictrl;
+	u32 timeout = 20000;
+
+	if (!check_boco2()) {
+		/* we do not have BOCO2, this is not really used */
+		return 0;
+	}
+
+	printf("PCIe FPGA config:");
+	do {
+		ret = i2c_read(BOCO_ADDR, SPI_REG, 1, &spictrl, 1);
+		if (ret) {
+			printf("%s: error reading the BOCO spictrl !!\n",
+				__func__);
+			return ret;
+		}
+		if (timeout-- == 0) {
+			printf(" FPGA_DONE timeout\n");
+			return -EFAULT;
+		}
+		udelay(10);
+	} while (!(spictrl & FPGA_DONE));
+
+	printf(" done\n");
+
+	return 0;
+}
+
+#define PRST1		0x4
+#define BRIDGE_RST	0x4
+
+int fpga_reset(void)
+{
+	int ret = 0;
+
+	if (!check_boco2()) {
+		/* we do not have BOCO2, this is not really used */
+		return 0;
+	}
+
+	ret = boco_clear_bits(PRST1, BRIDGE_RST);
+	if (ret)
+		return ret;
+
+	/* small delay for the pulse */
+	udelay(10);
+
+	ret = boco_set_bits(PRST1, BRIDGE_RST);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+/* the FPGA was configured, we configure the BOCO2 so that the EEPROM
+ * is available from the Bobcat SPI bus */
+int toggle_eeprom_spi_bus(void)
+{
+	int ret = 0;
+
+	if (!check_boco2()) {
+		/* we do not have BOCO2, this is not really used */
+		return 0;
+	}
+
+	ret = boco_set_bits(SPI_REG, CFG_EEPROM);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 66b82d0..5c9ba8f 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -272,12 +272,6 @@ int board_early_init_f(void)
 	kw_gpio_set_valid(KM_KIRKWOOD_ENV_WP, 38);
 	kw_gpio_direction_output(KM_KIRKWOOD_ENV_WP, 1);
 #endif
-#if defined(CONFIG_KM_RECONFIG_XLX)
-	/* trigger the reconfiguration of the xilinx fpga */
-	kw_gpio_set_valid(KM_XLX_PROGRAM_B_PIN, 1);
-	kw_gpio_direction_output(KM_XLX_PROGRAM_B_PIN, 0);
-	kw_gpio_direction_input(KM_XLX_PROGRAM_B_PIN);
-#endif
 	return 0;
 }
 
@@ -286,6 +280,21 @@ int board_init(void)
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
 
+#if defined(CONFIG_KM_FPGA_CONFIG)
+	trigger_fpga_config();
+#endif
+
+	return 0;
+}
+
+int board_late_init(void)
+{
+#if defined(CONFIG_KM_FPGA_CONFIG)
+	wait_for_fpga_config();
+	fpga_reset();
+	toggle_eeprom_spi_bus();
+#endif
+
 	return 0;
 }
 
diff --git a/boards.cfg b/boards.cfg
index 3b63167..da52a49 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -139,7 +139,7 @@ calimain                     arm         arm926ejs   calimain            omicron
 pogo_e02                     arm         arm926ejs   -                   cloudengines   kirkwood
 dns325                       arm         arm926ejs   -                   d-link         kirkwood
 km_kirkwood                  arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD,KM_DISABLE_PCI
-km_kirkwood_pci              arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD_PCI,KM_RECONFIG_XLX
+km_kirkwood_pci              arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD_PCI,KM_FPGA_CONFIG
 kmnusa                       arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_NUSA
 mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_MGCOGE3UN
 kmcoge5un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_COGE5UN
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h
index 9cd909c..5fbb590 100644
--- a/include/configs/km/km_arm.h
+++ b/include/configs/km/km_arm.h
@@ -310,4 +310,7 @@ int get_scl(void);
 #define CONFIG_POST_EXTERNAL_WORD_FUNCS
 #define CONFIG_CMD_DIAG
 
+/* we do the whole PCIe FPGA config stuff here */
+#define	BOARD_LATE_INIT
+
 #endif /* _CONFIG_KM_ARM_H */
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index 503c27d..be0da83 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -175,10 +175,12 @@
 	MVGBE_SET_MII_SPEED_TO_100)
 #endif
 
-/* GPIO Pin from kirkwood connected to PROGRAM_B pin of the xilinx FPGA */
-#define KM_XLX_PROGRAM_B_PIN    39
-
 #ifdef CONFIG_KM_DISABLE_PCI
 #undef  CONFIG_KIRKWOOD_PCIE_INIT
 #endif
+
+#ifndef CONFIG_KM_FPGA_CONFIG
+#undef  BOARD_LATE_INIT
+#endif
+
 #endif /* _CONFIG_KM_KIRKWOOD */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 07/14] arm/km: cleanup km_kirkwood boards
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (5 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 06/14] arm/km: enable BOCO2 FPGA download support Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 08/14] arm/km: redefine piggy 4 reg names to avoid conflicts Holger Brunck
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

Remove config options from boards.cfg and simply add one switch
per board and differ afterwards in km_kirkwood.h between the features.
More boards are upcoming and therefore it's easier to have this
at one place.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 boards.cfg                    |    4 ++--
 include/configs/km_kirkwood.h |    7 ++++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/boards.cfg b/boards.cfg
index da52a49..71630ba 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -138,8 +138,8 @@ enbw_cmc                     arm         arm926ejs   enbw_cmc            enbw
 calimain                     arm         arm926ejs   calimain            omicron        davinci
 pogo_e02                     arm         arm926ejs   -                   cloudengines   kirkwood
 dns325                       arm         arm926ejs   -                   d-link         kirkwood
-km_kirkwood                  arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD,KM_DISABLE_PCI
-km_kirkwood_pci              arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD_PCI,KM_FPGA_CONFIG
+km_kirkwood                  arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD
+km_kirkwood_pci              arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_KIRKWOOD_PCI
 kmnusa                       arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_NUSA
 mgcoge3un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_MGCOGE3UN
 kmcoge5un                    arm         arm926ejs   km_arm              keymile        kirkwood    km_kirkwood:KM_COGE5UN
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index be0da83..b29e1a6 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -37,15 +37,20 @@
 #ifndef _CONFIG_KM_KIRKWOOD_H
 #define _CONFIG_KM_KIRKWOOD_H
 
+/* KM_KIRKWOOD */
 #if defined(CONFIG_KM_KIRKWOOD)
 #define CONFIG_IDENT_STRING		"\nKeymile Kirkwood"
 #define CONFIG_HOSTNAME			km_kirkwood
-#undef  CONFIG_KIRKWOOD_PCIE_INIT
+#define CONFIG_KM_DISABLE_PCIE
 #define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/
+
+/* KM_KIRKWOOD_PCI */
 #elif defined(CONFIG_KM_KIRKWOOD_PCI)
 #define CONFIG_IDENT_STRING		"\nKeymile Kirkwood PCI"
 #define CONFIG_HOSTNAME			km_kirkwood_pci
 #define KM_IVM_BUS			"pca9544a:70:9"	/* I2C2 (Mux-Port 1)*/
+#define CONFIG_KM_FPGA_CONFIG
+
 /* KM_NUSA */
 #elif defined(CONFIG_KM_NUSA)
 #define KM_IVM_BUS			"pca9547:70:9"	/* I2C2 (Mux-Port 1)*/
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 08/14] arm/km: redefine piggy 4 reg names to avoid conflicts
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (6 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 07/14] arm/km: cleanup km_kirkwood boards Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 09/14] arm/km: add support for external switch configuration Holger Brunck
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Valentin Longchamp <valentin.longchamp@keymile.com>

Some very similar #defines for reg addresses are used in a later patch
(managed_switch support for km_arm).

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 board/keymile/km_arm/km_arm.c |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 5c9ba8f..d9cd4a0 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -332,13 +332,13 @@ void dram_init_banksize(void)
 
 #if (defined(CONFIG_KM_PIGGY4_88E6061))
 
-#define	PHY_LED_SEL	0x18
-#define PHY_LED0_LINK	(0x5)
-#define PHY_LED1_ACT	(0x8<<4)
-#define PHY_LED2_INT	(0xe<<8)
-#define	PHY_SPEC_CTRL	0x1c
+#define	PHY_LED_SEL_REG		0x18
+#define PHY_LED0_LINK		(0x5)
+#define PHY_LED1_ACT		(0x8<<4)
+#define PHY_LED2_INT		(0xe<<8)
+#define	PHY_SPEC_CTRL_REG	0x1c
 #define PHY_RGMII_CLK_STABLE	(0x1<<10)
-#define PHY_CLSA	(0x1<<1)
+#define PHY_CLSA		(0x1<<1)
 
 /* Configure and enable MV88E3018 PHY */
 void reset_phy(void)
@@ -350,15 +350,15 @@ void reset_phy(void)
 		return;
 
 	/* RGMII clk transition on data stable */
-	if (miiphy_read(name, CONFIG_PHY_BASE_ADR, PHY_SPEC_CTRL, &reg) != 0)
+	if (!miiphy_read(name, CONFIG_PHY_BASE_ADR, PHY_SPEC_CTRL_REG, &reg))
 		printf("Error reading PHY spec ctrl reg\n");
-	if (miiphy_write(name, CONFIG_PHY_BASE_ADR, PHY_SPEC_CTRL,
-		reg | PHY_RGMII_CLK_STABLE | PHY_CLSA) != 0)
+	if (!miiphy_write(name, CONFIG_PHY_BASE_ADR, PHY_SPEC_CTRL_REG,
+		reg | PHY_RGMII_CLK_STABLE | PHY_CLSA))
 		printf("Error writing PHY spec ctrl reg\n");
 
 	/* leds setup */
-	if (miiphy_write(name, CONFIG_PHY_BASE_ADR, PHY_LED_SEL,
-		PHY_LED0_LINK | PHY_LED1_ACT | PHY_LED2_INT) != 0)
+	if (!miiphy_write(name, CONFIG_PHY_BASE_ADR, PHY_LED_SEL_REG,
+		PHY_LED0_LINK | PHY_LED1_ACT | PHY_LED2_INT))
 		printf("Error writing PHY LED reg\n");
 
 	/* reset the phy */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 09/14] arm/km: add support for external switch configuration
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (7 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 08/14] arm/km: redefine piggy 4 reg names to avoid conflicts Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-26 15:31   ` [U-Boot] [PATCH v3 " Valentin Longchamp
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 10/14] arm/km: enable external switch configuration for kmnusa Holger Brunck
                   ` (4 subsequent siblings)
  13 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Valentin Longchamp <valentin.longchamp@keymile.com>

This can be used if we do not want to use an EEPROM for the
configuration.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 board/keymile/common/common.h         |    7 --
 board/keymile/km_arm/managed_switch.c |  169 +++++++++++++++++++++++++++++++--
 board/keymile/km_arm/managed_switch.h |   99 +++++++++++++++++++
 3 files changed, 258 insertions(+), 17 deletions(-)
 create mode 100644 board/keymile/km_arm/managed_switch.h

diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index c58e565..e9abfcd 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -125,13 +125,6 @@ struct bfticu_iomap {
 int ethernet_present(void);
 int ivm_read_eeprom(void);
 
-
-int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
-	u8 reg, u16 data);
-int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
-	u8 reg, u16 *data);
-
-
 int trigger_fpga_config(void);
 int wait_for_fpga_config(void);
 int fpga_reset(void);
diff --git a/board/keymile/km_arm/managed_switch.c b/board/keymile/km_arm/managed_switch.c
index 482c18d..3b022cd 100644
--- a/board/keymile/km_arm/managed_switch.c
+++ b/board/keymile/km_arm/managed_switch.c
@@ -25,15 +25,43 @@
 #include <miiphy.h>
 #include <asm/errno.h>
 
-#define SMI_HDR		((0x8 | 0x1) << 12)
-#define SMI_BUSY_MASK	(0x8000)
-#define SMIRD_OP	(0x2 << 10)
-#define SMIWR_OP	(0x1 << 10)
-#define SMI_MASK	0x1f
-#define PORT_SHIFT	5
+#include "managed_switch.h"
 
-#define COMMAND_REG	0
-#define DATA_REG	1
+#if defined(CONFIG_KM_NUSA)
+struct switch_reg sw_conf[] = {
+	/* port 0, PIGY4, autoneg */
+	{ PORT(0), PORT_PHY, NO_SPEED_FOR },
+	{ PORT(0), PORT_CTRL, FORWARDING | EGRS_FLD_ALL },
+	{ PHY(0), PHY_CTRL, PHY_100_MBPS | AUTONEG_EN | AUTONEG_RST |
+		FULL_DUPLEX },
+	{ PHY(0), PHY_SPEC_CTRL, AUTO_MDIX_EN },
+	/* port 1, unused */
+	{ PORT(1), PORT_CTRL, PORT_DIS },
+	{ PHY(1), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(1), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 2, unused */
+	{ PORT(2), PORT_CTRL, PORT_DIS },
+	{ PHY(2), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(2), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 3, unused */
+	{ PORT(3), PORT_CTRL, PORT_DIS },
+	{ PHY(3), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(3), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 4, ICNEV, SerDes, SGMII */
+	{ PORT(4), PORT_STATUS, NO_PHY_DETECT },
+	{ PORT(4), PORT_PHY, SPEED_1000_FOR },
+	{ PORT(4), PORT_CTRL, FORWARDING | EGRS_FLD_ALL },
+	{ PHY(4), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(4), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 5, CPU_RGMII */
+	{ PORT(5), PORT_PHY, RX_RGMII_TIM | TX_RGMII_TIM | FLOW_CTRL_EN |
+		FLOW_CTRL_FOR | LINK_VAL | LINK_FOR | FULL_DPX |
+		FULL_DPX_FOR | SPEED_1000_FOR },
+	{ PORT(5), PORT_CTRL, FORWARDING | EGRS_FLD_ALL },
+	/* port 6, unused, this port has no phy */
+	{ PORT(6), PORT_CTRL, PORT_DIS },
+};
+#endif
 
 static int ext_switch_wait_rdy(const char *devname, u8 phy_addr)
 {
@@ -59,7 +87,7 @@ static int ext_switch_wait_rdy(const char *devname, u8 phy_addr)
 	return 0;
 }
 
-int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
+static int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
 	u8 reg, u16 *data)
 {
 	int ret;
@@ -85,7 +113,7 @@ int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
 	return ret;
 }
 
-int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
+static int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
 	u8 reg, u16 data)
 {
 	int ret;
@@ -114,6 +142,127 @@ int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
 	return 0;
 }
 
+static int ppu_enable(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+	u16 reg;
+
+	ret = ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_CTRL, &reg);
+	if (ret) {
+		printf("%s: Error reading global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	reg |= PPU_ENABLE;
+
+	ret = ext_switch_reg_write(devname, phy_addr, GLOBAL, GLOBAL_CTRL, reg);
+	if (ret) {
+		printf("%s: Error writing global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < 1000; i++) {
+		ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_STATUS,
+			&reg);
+		if ((reg & 0xc000) == 0xc000)
+			return 0;
+		udelay(1000);
+	}
+
+	return -ETIMEDOUT;
+}
+
+static int ppu_disable(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+	u16 reg;
+
+	ret = ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_CTRL, &reg);
+	if (ret) {
+		printf("%s: Error reading global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	reg &= ~PPU_ENABLE;
+
+	ret = ext_switch_reg_write(devname, phy_addr, GLOBAL, GLOBAL_CTRL, reg);
+	if (ret) {
+		printf("%s: Error writing global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < 1000; i++) {
+		ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_STATUS,
+			&reg);
+		if ((reg & 0xc000) != 0xc000)
+			return 0;
+		udelay(1000);
+	}
+
+	return -ETIMEDOUT;
+}
+
+int ext_switch_program(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+
+	/* first we need to disable the PPU */
+	ret = ppu_disable(devname, phy_addr);
+	if (ret) {
+		printf("%s: Error disabling PPU\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < ARRAY_SIZE(sw_conf); i++) {
+		ret = ext_switch_reg_write(devname, phy_addr, sw_conf[i].port,
+			sw_conf[i].reg, sw_conf[i].value);
+		if (ret) {
+			printf("%s: Error configuring switch\n", __func__);
+			ppu_enable(devname, phy_addr);
+			return ret;
+		}
+	}
+
+	/* re-enable the PPU */
+	ret = ppu_enable(devname, phy_addr);
+	if (ret) {
+		printf("%s: Error enabling PPU\n", __func__);
+		return ret;
+	}
+
+	return 0;
+}
+
+int ext_switch_reset(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+	u16 reg;
+
+	ret = ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_CTRL, &reg);
+	if (ret) {
+		printf("%s: Error reading global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	reg = SW_RESET | PPU_ENABLE | 0x0400;
+
+	ret = ext_switch_reg_write(devname, phy_addr, GLOBAL, GLOBAL_CTRL, reg);
+	if (ret) {
+		printf("%s: Error writing global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < 1000; i++) {
+		ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_STATUS,
+			&reg);
+		if ((reg & 0xc800) != 0xc800)
+			return 0;
+		udelay(1000);
+	}
+
+	return -ETIMEDOUT;
+}
+
 int do_sw_reg_read(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	char *name = "egiga0";
diff --git a/board/keymile/km_arm/managed_switch.h b/board/keymile/km_arm/managed_switch.h
new file mode 100644
index 0000000..c0dcf82
--- /dev/null
+++ b/board/keymile/km_arm/managed_switch.h
@@ -0,0 +1,99 @@
+/*
+ * (C) Copyright 2012
+ * Valentin Lontgchamp, Keymile AG, valentin.longchamp@keymile.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef __MANAGED_SWITCH_H
+#define __MANAGED_SWITCH_H
+
+#include <common.h>
+
+#define SMI_HDR		((0x8 | 0x1) << 12)
+#define SMI_BUSY_MASK	(0x8000)
+#define SMIRD_OP	(0x2 << 10)
+#define SMIWR_OP	(0x1 << 10)
+#define SMI_MASK	0x1f
+#define PORT_SHIFT	5
+
+#define COMMAND_REG	0
+#define DATA_REG	1
+
+/* global registers */
+#define GLOBAL		0x1b
+
+#define GLOBAL_STATUS	0x00
+#define PPU_STATE	0x8000
+
+#define GLOBAL_CTRL	0x04
+#define SW_RESET	0x8000
+#define PPU_ENABLE	0x4000
+
+/* PHY registers */
+#define PHY(itf)	(itf)
+
+#define PHY_CTRL	0x00
+#define PHY_100_MBPS	0x2000
+#define AUTONEG_EN	0x1000
+#define AUTONEG_RST	0x0200
+#define FULL_DUPLEX	0x0100
+#define PHY_PWR_DOWN	0x0800
+
+#define PHY_STATUS	0x01
+
+#define PHY_SPEC_CTRL	0x10
+#define SPEC_PWR_DOWN	0x0004
+#define AUTO_MDIX_EN	0x0060
+
+/* PORT or MAC registers */
+#define PORT(itf)	(itf+0x10)
+
+#define PORT_STATUS	0x00
+#define NO_PHY_DETECT	0x0000
+
+#define PORT_PHY	0x01
+#define RX_RGMII_TIM	0x8000
+#define TX_RGMII_TIM	0x4000
+#define FLOW_CTRL_EN	0x0080
+#define FLOW_CTRL_FOR	0x0040
+#define LINK_VAL	0x0020
+#define LINK_FOR	0x0010
+#define FULL_DPX	0x0008
+#define FULL_DPX_FOR	0x0004
+#define NO_SPEED_FOR	0x0003
+#define SPEED_1000_FOR	0x0002
+#define SPEED_100_FOR	0x0001
+#define SPEED_10_FOR	0x0000
+
+#define PORT_CTRL	0x04
+#define FORWARDING	0x0003
+#define EGRS_FLD_ALL	0x000c
+#define PORT_DIS	0x0000
+
+struct switch_reg {
+	u8 port;
+	u8 reg;
+	u16 value;
+};
+
+int ext_switch_reset(const char *devname, u8 phy_addr);
+int ext_switch_program(const char *devname, u8 phy_addr);
+
+#endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 10/14] arm/km: enable external switch configuration for kmnusa
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (8 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 09/14] arm/km: add support for external switch configuration Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 11/14] arm/km: skip FPGA config when already configured Holger Brunck
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Valentin Longchamp <valentin.longchamp@keymile.com>

The configuration EEPROM should be removed for P1B.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 board/keymile/km_arm/km_arm.c         |   11 +++++------
 board/keymile/km_arm/managed_switch.c |    3 ++-
 board/keymile/km_arm/managed_switch.h |    7 +++++++
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index d9cd4a0..1348186 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -44,6 +44,7 @@
 #include <asm/arch/mpp.h>
 
 #include "../common/common.h"
+#include "managed_switch.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -374,13 +375,11 @@ void reset_phy(void)
 	if (miiphy_set_current_dev(name))
 		return;
 
-	/* enable autoneg on port 0 phy */
-	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 0, 0, 0x3300);
+#if defined(CONFIG_KM_NUSA)
+	ext_switch_program(name, CONFIG_KM_MANAGED_SW_ADDR);
+#endif
 
-	/* egress broadcast franes on all macs, with forwarding */
-	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 16, 4, 0x000f);
-	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 20, 4, 0x000f);
-	ext_switch_reg_write(name, CONFIG_KM_MANAGED_SW_ADDR, 21, 4, 0x000f);
+	ext_switch_reset(name, CONFIG_KM_MANAGED_SW_ADDR);
 }
 #endif
 
diff --git a/board/keymile/km_arm/managed_switch.c b/board/keymile/km_arm/managed_switch.c
index 3b022cd..a776f1d 100644
--- a/board/keymile/km_arm/managed_switch.c
+++ b/board/keymile/km_arm/managed_switch.c
@@ -32,9 +32,10 @@ struct switch_reg sw_conf[] = {
 	/* port 0, PIGY4, autoneg */
 	{ PORT(0), PORT_PHY, NO_SPEED_FOR },
 	{ PORT(0), PORT_CTRL, FORWARDING | EGRS_FLD_ALL },
+	{ PHY(0), PHY_1000_CTRL, NO_ADV },
+	{ PHY(0), PHY_SPEC_CTRL, AUTO_MDIX_EN },
 	{ PHY(0), PHY_CTRL, PHY_100_MBPS | AUTONEG_EN | AUTONEG_RST |
 		FULL_DUPLEX },
-	{ PHY(0), PHY_SPEC_CTRL, AUTO_MDIX_EN },
 	/* port 1, unused */
 	{ PORT(1), PORT_CTRL, PORT_DIS },
 	{ PHY(1), PHY_CTRL, PHY_PWR_DOWN },
diff --git a/board/keymile/km_arm/managed_switch.h b/board/keymile/km_arm/managed_switch.h
index c0dcf82..d5b938a 100644
--- a/board/keymile/km_arm/managed_switch.h
+++ b/board/keymile/km_arm/managed_switch.h
@@ -51,6 +51,7 @@
 
 #define PHY_CTRL	0x00
 #define PHY_100_MBPS	0x2000
+#define PHY_1_GBPS	0x0040
 #define AUTONEG_EN	0x1000
 #define AUTONEG_RST	0x0200
 #define FULL_DUPLEX	0x0100
@@ -62,6 +63,12 @@
 #define SPEC_PWR_DOWN	0x0004
 #define AUTO_MDIX_EN	0x0060
 
+#define PHY_1000_CTRL	0x9
+
+#define NO_ADV		0x0000
+#define ADV_1000_FDPX	0x0200
+#define ADV_1000_HDPX	0x0100
+
 /* PORT or MAC registers */
 #define PORT(itf)	(itf+0x10)
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 11/14] arm/km: skip FPGA config when already configured
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (9 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 10/14] arm/km: enable external switch configuration for kmnusa Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 12/14] arm/km: support the 2 PCIe fpga resets Holger Brunck
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Valentin Longchamp <valentin.longchamp@keymile.com>

In order to be able to perform board resets without interrupting the
traffic, the configuration of an already properly configured FPGA is
skipped.

This is because some PCIe FPGAs embed some other function that must
continue to work over reset.

It is then the responsibility of the application to trigger a
reconfiguration when needed. This is done by lowering the FPGA_INIT_B
pin for delaying the configuration to u-boot @ next reboot, and then
lower the FPGA_PROGRAM_B signal.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
   - nothing

 board/keymile/km_arm/fpga_config.c |   41 +++++++++++++++++++++++++++++++++++-
 1 files changed, 40 insertions(+), 1 deletions(-)

diff --git a/board/keymile/km_arm/fpga_config.c b/board/keymile/km_arm/fpga_config.c
index 4356b9a..8ac6393 100644
--- a/board/keymile/km_arm/fpga_config.c
+++ b/board/keymile/km_arm/fpga_config.c
@@ -96,12 +96,43 @@ static int boco_set_bits(u8 reg, u8 flags)
 #define SPI_REG		0x06
 #define CFG_EEPROM	0x02
 #define FPGA_PROG	0x04
+#define FPGA_INIT_B	0x10
 #define FPGA_DONE	0x20
 
+static int fpga_done()
+{
+	int ret = 0;
+	u8 regval;
+
+	/* this is only supported with the boco2 design */
+	if (!check_boco2())
+		return 0;
+
+	ret = i2c_read(BOCO_ADDR, SPI_REG, 1, &regval, 1);
+	if (ret) {
+		printf("%s: error reading the BOCO @%#x !!\n",
+			__func__, SPI_REG);
+		return 0;
+	}
+
+	return regval & FPGA_DONE ? 1 : 0;
+}
+
+int skip;
+
 int trigger_fpga_config(void)
 {
 	int ret = 0;
 
+	/* if the FPGA is already configured, we do not want to
+	 * reconfigure it */
+	skip = 0;
+	if (fpga_done()) {
+		printf("PCIe FPGA config: skipped\n");
+		skip = 1;
+		return 0;
+	}
+
 	if (check_boco2()) {
 		/* we have a BOCO2, this has to be triggered here */
 
@@ -111,7 +142,7 @@ int trigger_fpga_config(void)
 			return ret;
 
 		/* trigger the config start */
-		ret = boco_clear_bits(SPI_REG, FPGA_PROG);
+		ret = boco_clear_bits(SPI_REG, FPGA_PROG | FPGA_INIT_B);
 		if (ret)
 			return ret;
 
@@ -123,6 +154,11 @@ int trigger_fpga_config(void)
 		if (ret)
 			return ret;
 
+		/* finally, raise INIT_B to remove the config delay */
+		ret = boco_set_bits(SPI_REG, FPGA_INIT_B);
+		if (ret)
+			return ret;
+
 	} else {
 		/* we do it the old way, with the gpio pin */
 		kw_gpio_set_valid(KM_XLX_PROGRAM_B_PIN, 1);
@@ -141,6 +177,9 @@ int wait_for_fpga_config(void)
 	u8 spictrl;
 	u32 timeout = 20000;
 
+	if (skip)
+		return 0;
+
 	if (!check_boco2()) {
 		/* we do not have BOCO2, this is not really used */
 		return 0;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 12/14] arm/km: support the 2 PCIe fpga resets
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (10 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 11/14] arm/km: skip FPGA config when already configured Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 13/14] arm/km: add implementation for read_dip_switch Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 14/14] arm/km: remove calls to kw_gpio_* in board_early_init_f Holger Brunck
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Valentin Longchamp <valentin.longchamp@keymile.com>

The PCIe FPGAs now have to support 2 resets: one for the non traffic
affecting part (PCIe) and one for the traffic affecting part.

When the FPGA is not reconfigured, we only reset the PCIe part.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 board/keymile/km_arm/fpga_config.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/board/keymile/km_arm/fpga_config.c b/board/keymile/km_arm/fpga_config.c
index 8ac6393..fcc5fe6 100644
--- a/board/keymile/km_arm/fpga_config.c
+++ b/board/keymile/km_arm/fpga_config.c
@@ -99,7 +99,7 @@ static int boco_set_bits(u8 reg, u8 flags)
 #define FPGA_INIT_B	0x10
 #define FPGA_DONE	0x20
 
-static int fpga_done()
+static int fpga_done(void)
 {
 	int ret = 0;
 	u8 regval;
@@ -206,25 +206,30 @@ int wait_for_fpga_config(void)
 }
 
 #define PRST1		0x4
-#define BRIDGE_RST	0x4
+#define PCIE_RST	0x10
+#define TRAFFIC_RST	0x04
 
 int fpga_reset(void)
 {
 	int ret = 0;
+	u8 resets;
 
 	if (!check_boco2()) {
 		/* we do not have BOCO2, this is not really used */
 		return 0;
 	}
 
-	ret = boco_clear_bits(PRST1, BRIDGE_RST);
+	/* if we have skipped, we only want to reset the PCIe part */
+	resets = skip ? PCIE_RST : PCIE_RST | TRAFFIC_RST;
+
+	ret = boco_clear_bits(PRST1, resets);
 	if (ret)
 		return ret;
 
 	/* small delay for the pulse */
 	udelay(10);
 
-	ret = boco_set_bits(PRST1, BRIDGE_RST);
+	ret = boco_set_bits(PRST1, resets);
 	if (ret)
 		return ret;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 13/14] arm/km: add implementation for read_dip_switch
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (11 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 12/14] arm/km: support the 2 PCIe fpga resets Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 14/14] arm/km: remove calls to kw_gpio_* in board_early_init_f Holger Brunck
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

From: Thomas Herzmann <thomas.herzmann@keymile.com>

Add a function to read the dip_switch on kmcoge5un. If the
switch is set the actual_bank is set to 0 and this SW is
booted.

Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com>
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - nothing

 board/keymile/km_arm/km_arm.c |   14 +++++++++++++-
 include/configs/km_kirkwood.h |    3 ---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 1348186..7e8bdfe 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -290,12 +290,24 @@ int board_init(void)
 
 int board_late_init(void)
 {
+#if defined(CONFIG_KMCOGE5UN)
+/* I/O pin to erase flash RGPP09 = MPP43 */
+#define KM_FLASH_ERASE_ENABLE	43
+	u8 dip_switch = kw_gpio_get_value(KM_FLASH_ERASE_ENABLE);
+
+	/* if pin 1 do full erase */
+	if (dip_switch != 0) {
+		/* start bootloader */
+		puts("DIP:   Enabled\n");
+		setenv("actual_bank", "0");
+	}
+#endif
+
 #if defined(CONFIG_KM_FPGA_CONFIG)
 	wait_for_fpga_config();
 	fpga_reset();
 	toggle_eeprom_spi_bus();
 #endif
-
 	return 0;
 }
 
diff --git a/include/configs/km_kirkwood.h b/include/configs/km_kirkwood.h
index b29e1a6..c42d0cb 100644
--- a/include/configs/km_kirkwood.h
+++ b/include/configs/km_kirkwood.h
@@ -184,8 +184,5 @@
 #undef  CONFIG_KIRKWOOD_PCIE_INIT
 #endif
 
-#ifndef CONFIG_KM_FPGA_CONFIG
-#undef  BOARD_LATE_INIT
-#endif
 
 #endif /* _CONFIG_KM_KIRKWOOD */
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 14/14] arm/km: remove calls to kw_gpio_* in board_early_init_f
  2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
                   ` (12 preceding siblings ...)
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 13/14] arm/km: add implementation for read_dip_switch Holger Brunck
@ 2012-06-13 13:33 ` Holger Brunck
  13 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-06-13 13:33 UTC (permalink / raw)
  To: u-boot

These functions tried to access two static tables before relocation
(board_early_init_f is executed before relocation). But these static
tables lie in the bss section which is not valid before relocation.
These accesses then overwrote some parts of u-boot binary before it was
relocated. For the kmnusa build, this results in a corrupted important
env variable (bootcmd) but it may be that some other parts of the u-boot
binary are corrupted.

This patch solves this problem by moving all the kw_gpio_* calls to
board_init, which should be early enough in the boot sequence. The only
calls that could not be moved is the one for the SOFT (bitbang) I2C, and
they have been replaced by a direct access to the GPIO dataout Control
register to set the two GPIOs as output.


Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
changes for v2:
  - fix comment syntax
  - rebase

 board/keymile/km_arm/km_arm.c |   43 ++++++++++++++++++++++++++--------------
 include/configs/km/km_arm.h   |    1 +
 2 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c
index 7e8bdfe..7169fd1 100644
--- a/board/keymile/km_arm/km_arm.c
+++ b/board/keymile/km_arm/km_arm.c
@@ -248,38 +248,51 @@ int misc_init_r(void)
 
 int board_early_init_f(void)
 {
+#if defined(CONFIG_SOFT_I2C)
 	u32 tmp;
 
+	/* set the 2 bitbang i2c pins as output gpios */
+	tmp = readl(KW_GPIO0_BASE + 4);
+	writel(tmp & (~KM_KIRKWOOD_SOFT_I2C_GPIOS) , KW_GPIO0_BASE + 4);
+#endif
+
 	kirkwood_mpp_conf(kwmpp_config, NULL);
+	return 0;
+}
 
+int board_init(void)
+{
 	/*
-	 * The FLASH_GPIO_PIN switches between using a
+	 * arch number of board
+	 */
+	gd->bd->bi_arch_number = MACH_TYPE_KM_KIRKWOOD;
+
+	/* address of boot parameters */
+	gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
+
+	/*
+	 * The KM_FLASH_GPIO_PIN switches between using a
 	 * NAND or a SPI FLASH. Set this pin on start
 	 * to NAND mode.
 	 */
-	tmp = readl(KW_GPIO0_BASE);
-	writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
-	tmp = readl(KW_GPIO0_BASE + 4);
-	writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE + 4);
+	kw_gpio_set_valid(KM_FLASH_GPIO_PIN, 1);
+	kw_gpio_direction_output(KM_FLASH_GPIO_PIN, 1);
 
 #if defined(CONFIG_SOFT_I2C)
-	/* init the GPIO for I2C Bitbang driver */
+	/*
+	 * Reinit the GPIO for I2C Bitbang driver so that the now
+	 * available gpio framework is consistent. The calls to
+	 * direction output in are not necessary, they are already done in
+	 * board_early_init_f
+	 */
 	kw_gpio_set_valid(KM_KIRKWOOD_SDA_PIN, 1);
 	kw_gpio_set_valid(KM_KIRKWOOD_SCL_PIN, 1);
-	kw_gpio_direction_output(KM_KIRKWOOD_SDA_PIN, 0);
-	kw_gpio_direction_output(KM_KIRKWOOD_SCL_PIN, 0);
 #endif
+
 #if defined(CONFIG_SYS_EEPROM_WREN)
 	kw_gpio_set_valid(KM_KIRKWOOD_ENV_WP, 38);
 	kw_gpio_direction_output(KM_KIRKWOOD_ENV_WP, 1);
 #endif
-	return 0;
-}
-
-int board_init(void)
-{
-	/* address of boot parameters */
-	gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
 
 #if defined(CONFIG_KM_FPGA_CONFIG)
 	trigger_fpga_config();
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h
index 5fbb590..8a6b345 100644
--- a/include/configs/km/km_arm.h
+++ b/include/configs/km/km_arm.h
@@ -192,6 +192,7 @@ int get_sda(void);
 int get_scl(void);
 #define KM_KIRKWOOD_SDA_PIN	8
 #define KM_KIRKWOOD_SCL_PIN	9
+#define KM_KIRKWOOD_SOFT_I2C_GPIOS	0x0300
 #define KM_KIRKWOOD_ENV_WP	38
 
 #define I2C_ACTIVE	__set_direction(KM_KIRKWOOD_SDA_PIN, 0)
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v3 09/14] arm/km: add support for external switch configuration
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 09/14] arm/km: add support for external switch configuration Holger Brunck
@ 2012-06-26 15:31   ` Valentin Longchamp
  0 siblings, 0 replies; 40+ messages in thread
From: Valentin Longchamp @ 2012-06-26 15:31 UTC (permalink / raw)
  To: u-boot

This patch add support for the configuration of an external switch from
the 88E6xxx series from Marvell trough an MDIO link using indirect
adressing. This can be used if we do not want to use an EEPROM for the
configuration.

This driver is not generic and was not tested on a lot of switches,
that's why we keep it in our keymile specific code, where the
assumptions of the implementations remain true.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
---
changes for v2:
  - nothing
changes for v3:
  - more complete commit message

 board/keymile/common/common.h         |    7 --
 board/keymile/km_arm/managed_switch.c |  169 +++++++++++++++++++++++++++++++--
 board/keymile/km_arm/managed_switch.h |   99 +++++++++++++++++++
 3 files changed, 258 insertions(+), 17 deletions(-)
 create mode 100644 board/keymile/km_arm/managed_switch.h

diff --git a/board/keymile/common/common.h b/board/keymile/common/common.h
index c58e565..e9abfcd 100644
--- a/board/keymile/common/common.h
+++ b/board/keymile/common/common.h
@@ -125,13 +125,6 @@ struct bfticu_iomap {
 int ethernet_present(void);
 int ivm_read_eeprom(void);
 
-
-int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
-	u8 reg, u16 data);
-int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
-	u8 reg, u16 *data);
-
-
 int trigger_fpga_config(void);
 int wait_for_fpga_config(void);
 int fpga_reset(void);
diff --git a/board/keymile/km_arm/managed_switch.c b/board/keymile/km_arm/managed_switch.c
index 482c18d..3b022cd 100644
--- a/board/keymile/km_arm/managed_switch.c
+++ b/board/keymile/km_arm/managed_switch.c
@@ -25,15 +25,43 @@
 #include <miiphy.h>
 #include <asm/errno.h>
 
-#define SMI_HDR		((0x8 | 0x1) << 12)
-#define SMI_BUSY_MASK	(0x8000)
-#define SMIRD_OP	(0x2 << 10)
-#define SMIWR_OP	(0x1 << 10)
-#define SMI_MASK	0x1f
-#define PORT_SHIFT	5
+#include "managed_switch.h"
 
-#define COMMAND_REG	0
-#define DATA_REG	1
+#if defined(CONFIG_KM_NUSA)
+struct switch_reg sw_conf[] = {
+	/* port 0, PIGY4, autoneg */
+	{ PORT(0), PORT_PHY, NO_SPEED_FOR },
+	{ PORT(0), PORT_CTRL, FORWARDING | EGRS_FLD_ALL },
+	{ PHY(0), PHY_CTRL, PHY_100_MBPS | AUTONEG_EN | AUTONEG_RST |
+		FULL_DUPLEX },
+	{ PHY(0), PHY_SPEC_CTRL, AUTO_MDIX_EN },
+	/* port 1, unused */
+	{ PORT(1), PORT_CTRL, PORT_DIS },
+	{ PHY(1), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(1), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 2, unused */
+	{ PORT(2), PORT_CTRL, PORT_DIS },
+	{ PHY(2), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(2), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 3, unused */
+	{ PORT(3), PORT_CTRL, PORT_DIS },
+	{ PHY(3), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(3), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 4, ICNEV, SerDes, SGMII */
+	{ PORT(4), PORT_STATUS, NO_PHY_DETECT },
+	{ PORT(4), PORT_PHY, SPEED_1000_FOR },
+	{ PORT(4), PORT_CTRL, FORWARDING | EGRS_FLD_ALL },
+	{ PHY(4), PHY_CTRL, PHY_PWR_DOWN },
+	{ PHY(4), PHY_SPEC_CTRL, SPEC_PWR_DOWN },
+	/* port 5, CPU_RGMII */
+	{ PORT(5), PORT_PHY, RX_RGMII_TIM | TX_RGMII_TIM | FLOW_CTRL_EN |
+		FLOW_CTRL_FOR | LINK_VAL | LINK_FOR | FULL_DPX |
+		FULL_DPX_FOR | SPEED_1000_FOR },
+	{ PORT(5), PORT_CTRL, FORWARDING | EGRS_FLD_ALL },
+	/* port 6, unused, this port has no phy */
+	{ PORT(6), PORT_CTRL, PORT_DIS },
+};
+#endif
 
 static int ext_switch_wait_rdy(const char *devname, u8 phy_addr)
 {
@@ -59,7 +87,7 @@ static int ext_switch_wait_rdy(const char *devname, u8 phy_addr)
 	return 0;
 }
 
-int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
+static int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
 	u8 reg, u16 *data)
 {
 	int ret;
@@ -85,7 +113,7 @@ int ext_switch_reg_read(const char *devname, u8 phy_addr, u8 port,
 	return ret;
 }
 
-int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
+static int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
 	u8 reg, u16 data)
 {
 	int ret;
@@ -114,6 +142,127 @@ int ext_switch_reg_write(const char *devname, u8 phy_addr, u8 port,
 	return 0;
 }
 
+static int ppu_enable(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+	u16 reg;
+
+	ret = ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_CTRL, &reg);
+	if (ret) {
+		printf("%s: Error reading global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	reg |= PPU_ENABLE;
+
+	ret = ext_switch_reg_write(devname, phy_addr, GLOBAL, GLOBAL_CTRL, reg);
+	if (ret) {
+		printf("%s: Error writing global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < 1000; i++) {
+		ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_STATUS,
+			&reg);
+		if ((reg & 0xc000) == 0xc000)
+			return 0;
+		udelay(1000);
+	}
+
+	return -ETIMEDOUT;
+}
+
+static int ppu_disable(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+	u16 reg;
+
+	ret = ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_CTRL, &reg);
+	if (ret) {
+		printf("%s: Error reading global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	reg &= ~PPU_ENABLE;
+
+	ret = ext_switch_reg_write(devname, phy_addr, GLOBAL, GLOBAL_CTRL, reg);
+	if (ret) {
+		printf("%s: Error writing global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < 1000; i++) {
+		ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_STATUS,
+			&reg);
+		if ((reg & 0xc000) != 0xc000)
+			return 0;
+		udelay(1000);
+	}
+
+	return -ETIMEDOUT;
+}
+
+int ext_switch_program(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+
+	/* first we need to disable the PPU */
+	ret = ppu_disable(devname, phy_addr);
+	if (ret) {
+		printf("%s: Error disabling PPU\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < ARRAY_SIZE(sw_conf); i++) {
+		ret = ext_switch_reg_write(devname, phy_addr, sw_conf[i].port,
+			sw_conf[i].reg, sw_conf[i].value);
+		if (ret) {
+			printf("%s: Error configuring switch\n", __func__);
+			ppu_enable(devname, phy_addr);
+			return ret;
+		}
+	}
+
+	/* re-enable the PPU */
+	ret = ppu_enable(devname, phy_addr);
+	if (ret) {
+		printf("%s: Error enabling PPU\n", __func__);
+		return ret;
+	}
+
+	return 0;
+}
+
+int ext_switch_reset(const char *devname, u8 phy_addr)
+{
+	int i, ret = 0;
+	u16 reg;
+
+	ret = ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_CTRL, &reg);
+	if (ret) {
+		printf("%s: Error reading global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	reg = SW_RESET | PPU_ENABLE | 0x0400;
+
+	ret = ext_switch_reg_write(devname, phy_addr, GLOBAL, GLOBAL_CTRL, reg);
+	if (ret) {
+		printf("%s: Error writing global ctrl reg\n", __func__);
+		return ret;
+	}
+
+	for (i = 0; i < 1000; i++) {
+		ext_switch_reg_read(devname, phy_addr, GLOBAL, GLOBAL_STATUS,
+			&reg);
+		if ((reg & 0xc800) != 0xc800)
+			return 0;
+		udelay(1000);
+	}
+
+	return -ETIMEDOUT;
+}
+
 int do_sw_reg_read(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	char *name = "egiga0";
diff --git a/board/keymile/km_arm/managed_switch.h b/board/keymile/km_arm/managed_switch.h
new file mode 100644
index 0000000..c0dcf82
--- /dev/null
+++ b/board/keymile/km_arm/managed_switch.h
@@ -0,0 +1,99 @@
+/*
+ * (C) Copyright 2012
+ * Valentin Lontgchamp, Keymile AG, valentin.longchamp@keymile.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef __MANAGED_SWITCH_H
+#define __MANAGED_SWITCH_H
+
+#include <common.h>
+
+#define SMI_HDR		((0x8 | 0x1) << 12)
+#define SMI_BUSY_MASK	(0x8000)
+#define SMIRD_OP	(0x2 << 10)
+#define SMIWR_OP	(0x1 << 10)
+#define SMI_MASK	0x1f
+#define PORT_SHIFT	5
+
+#define COMMAND_REG	0
+#define DATA_REG	1
+
+/* global registers */
+#define GLOBAL		0x1b
+
+#define GLOBAL_STATUS	0x00
+#define PPU_STATE	0x8000
+
+#define GLOBAL_CTRL	0x04
+#define SW_RESET	0x8000
+#define PPU_ENABLE	0x4000
+
+/* PHY registers */
+#define PHY(itf)	(itf)
+
+#define PHY_CTRL	0x00
+#define PHY_100_MBPS	0x2000
+#define AUTONEG_EN	0x1000
+#define AUTONEG_RST	0x0200
+#define FULL_DUPLEX	0x0100
+#define PHY_PWR_DOWN	0x0800
+
+#define PHY_STATUS	0x01
+
+#define PHY_SPEC_CTRL	0x10
+#define SPEC_PWR_DOWN	0x0004
+#define AUTO_MDIX_EN	0x0060
+
+/* PORT or MAC registers */
+#define PORT(itf)	(itf+0x10)
+
+#define PORT_STATUS	0x00
+#define NO_PHY_DETECT	0x0000
+
+#define PORT_PHY	0x01
+#define RX_RGMII_TIM	0x8000
+#define TX_RGMII_TIM	0x4000
+#define FLOW_CTRL_EN	0x0080
+#define FLOW_CTRL_FOR	0x0040
+#define LINK_VAL	0x0020
+#define LINK_FOR	0x0010
+#define FULL_DPX	0x0008
+#define FULL_DPX_FOR	0x0004
+#define NO_SPEED_FOR	0x0003
+#define SPEED_1000_FOR	0x0002
+#define SPEED_100_FOR	0x0001
+#define SPEED_10_FOR	0x0000
+
+#define PORT_CTRL	0x04
+#define FORWARDING	0x0003
+#define EGRS_FLD_ALL	0x000c
+#define PORT_DIS	0x0000
+
+struct switch_reg {
+	u8 port;
+	u8 reg;
+	u16 value;
+};
+
+int ext_switch_reset(const char *devname, u8 phy_addr);
+int ext_switch_program(const char *devname, u8 phy_addr);
+
+#endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 02/14] arm/km: add kmcoge5un board support
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 02/14] arm/km: add kmcoge5un " Holger Brunck
@ 2012-07-03  8:04   ` Prafulla Wadaskar
  2012-07-03  9:37     ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-03  8:04 UTC (permalink / raw)
  To: u-boot

Dear Holger

> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 13 June 2012 19:03
> To: u-boot at lists.denx.de
> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar; Thomas
> Herzmann
> Subject: [PATCH v2 02/14] arm/km: add kmcoge5un board support
> 
> For u-boot this board is similar to mgcoge3un. But some differences
> are present. We have a different SDRAM on it and therefore a new
> SDRAM config file. Additionaly this board has a direct MAC/MAC
> connection from the kirkwood to a marvell simple switch without a
> phy inbetween, this needs a new configuration for the mvgbe driver.
> The testpin was inverted compared to other km_kirkwood boards, this
> is the reason we need the change in post_hotkeys_pressed.
> 
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> cc: Prafulla Wadaskar <prafulla@marvell.com>
> 
> Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com>
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> ---
> changes for v2:
>  - rename KMCOGE5UN to KM_COGE5UN
>  - rename 256M8-1.cfg -> kwbimage_256M8_1.cfg
>  - squash 17/20 arm/km: fix testpin detection for kmcoge5un into this
>    commit because it should come with the board support patch
> 
>  MAINTAINERS                               |    1 +
>  board/keymile/km_arm/km_arm.c             |    4 +
>  board/keymile/km_arm/kwbimage_256M8_1.cfg |  296
> +++++++++++++++++++++++++++++

There is anther file coming in patch 01/14 i.e.
board/keymile/km_arm/kwbimage_128M16_1.cfg |  296 ++++++++++++++++++++++++++++

I think the change is only RAM size supported, this must be effectively managed using post-configuration in the function
board_early_init_f()

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood Holger Brunck
@ 2012-07-03  8:05   ` Prafulla Wadaskar
  2012-07-03 10:37     ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-03  8:05 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 13 June 2012 19:03
> To: u-boot at lists.denx.de
> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
> Subject: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> km_kirkwood
> 
> Use the generic header km_kirkwood.h and get rid of the
> board specific header.
> 
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> cc: Prafulla Wadaskar <prafulla@marvell.com>
> ---
> changes for v2:
>    - rebased because of changes in other patches
> 
>  board/keymile/km_arm/km_arm.c |    9 ++--
>  boards.cfg                    |    2 +-
>  include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
>  include/configs/mgcoge3un.h   |   87 --------------------------------
> ---------
>  4 files changed, 51 insertions(+), 93 deletions(-)
>  delete mode 100644 include/configs/mgcoge3un.h

This patch makes sense to me since it since it shrinks overall code.
Doe not have dependency in patch series, can be accepted if outside the series.

Regards...
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 04/14] arm/km: remove portl2.h and use km_kirkwood instead
  2012-06-13 13:33 ` [U-Boot] [PATCH v2 04/14] arm/km: remove portl2.h and use km_kirkwood instead Holger Brunck
@ 2012-07-03  8:12   ` Prafulla Wadaskar
  0 siblings, 0 replies; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-03  8:12 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 13 June 2012 19:03
> To: u-boot at lists.denx.de
> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
> Subject: [PATCH v2 04/14] arm/km: remove portl2.h and use km_kirkwood
> instead
> 
> The additional headerfile is unneeded here, we can use the generic
> km_kirkwood.h instead. And we can use the better config option
> KM_PIGGY4_88E6061 for the specific features for boards with this
> design in km_arm.c.
> 
> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> cc: Prafulla Wadaskar <prafulla@marvell.com>
> ---
> changes for v2: -simply rebased
> 
>  board/keymile/km_arm/km_arm.c |    2 +-
>  boards.cfg                    |    2 +-
>  include/configs/km_kirkwood.h |    8 ++++
>  include/configs/portl2.h      |   85 --------------------------------
> ---------
>  4 files changed, 10 insertions(+), 87 deletions(-)
>  delete mode 100644 include/configs/portl2.h
> 

Even this too, if outside the patch series can be accepted easily

Regards...
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 02/14] arm/km: add kmcoge5un board support
  2012-07-03  8:04   ` Prafulla Wadaskar
@ 2012-07-03  9:37     ` Holger Brunck
  0 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-07-03  9:37 UTC (permalink / raw)
  To: u-boot

On 07/03/2012 10:04 AM, Prafulla Wadaskar wrote:
> Dear Holger
> 
>> -----Original Message-----
>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>> Sent: 13 June 2012 19:03
>> To: u-boot at lists.denx.de
>> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar; Thomas
>> Herzmann
>> Subject: [PATCH v2 02/14] arm/km: add kmcoge5un board support
>>
>> For u-boot this board is similar to mgcoge3un. But some differences
>> are present. We have a different SDRAM on it and therefore a new
>> SDRAM config file. Additionaly this board has a direct MAC/MAC
>> connection from the kirkwood to a marvell simple switch without a
>> phy inbetween, this needs a new configuration for the mvgbe driver.
>> The testpin was inverted compared to other km_kirkwood boards, this
>> is the reason we need the change in post_hotkeys_pressed.
>>
>> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
>> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
>> cc: Prafulla Wadaskar <prafulla@marvell.com>
>>
>> Signed-off-by: Thomas Herzmann <thomas.herzmann@keymile.com>
>> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
>> ---
>> changes for v2:
>>  - rename KMCOGE5UN to KM_COGE5UN
>>  - rename 256M8-1.cfg -> kwbimage_256M8_1.cfg
>>  - squash 17/20 arm/km: fix testpin detection for kmcoge5un into this
>>    commit because it should come with the board support patch
>>
>>  MAINTAINERS                               |    1 +
>>  board/keymile/km_arm/km_arm.c             |    4 +
>>  board/keymile/km_arm/kwbimage_256M8_1.cfg |  296
>> +++++++++++++++++++++++++++++
> 
> There is anther file coming in patch 01/14 i.e.
> board/keymile/km_arm/kwbimage_128M16_1.cfg |  296 ++++++++++++++++++++++++++++
> 
> I think the change is only RAM size supported, this must be effectively managed using post-configuration in the function
> board_early_init_f()
> 

no the SDRAM size isn't the only difference. If you had a look at these files
there are also differences for other SDRAM controller register e.g. for DDR
timing. So I see no chance for an improvement here.

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03  8:05   ` Prafulla Wadaskar
@ 2012-07-03 10:37     ` Holger Brunck
  2012-07-03 11:19       ` Prafulla Wadaskar
  0 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-03 10:37 UTC (permalink / raw)
  To: u-boot

Hi Prafulla,

On 07/03/2012 10:05 AM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>> Sent: 13 June 2012 19:03
>> To: u-boot at lists.denx.de
>> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
>> Subject: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
>> km_kirkwood
>>
>> Use the generic header km_kirkwood.h and get rid of the
>> board specific header.
>>
>> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
>> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
>> cc: Prafulla Wadaskar <prafulla@marvell.com>
>> ---
>> changes for v2:
>>    - rebased because of changes in other patches
>>
>>  board/keymile/km_arm/km_arm.c |    9 ++--
>>  boards.cfg                    |    2 +-
>>  include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
>>  include/configs/mgcoge3un.h   |   87 --------------------------------
>> ---------
>>  4 files changed, 51 insertions(+), 93 deletions(-)
>>  delete mode 100644 include/configs/mgcoge3un.h
> 
> This patch makes sense to me since it since it shrinks overall code.
> Doe not have dependency in patch series, can be accepted if outside the series.
> 

again, but there are a lot of dependencies between 01-02 and 03-04 because all
doing a lot in km_kirkwood.h.  So do you have any particular objections against
the first two patches, beside your input for the kwbimage.cfg which I answered
in a different mail?

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 10:37     ` Holger Brunck
@ 2012-07-03 11:19       ` Prafulla Wadaskar
  2012-07-03 12:31         ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-03 11:19 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 03 July 2012 16:08
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; Valentin Longchamp
> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> km_kirkwood
> 
> Hi Prafulla,
> 
> On 07/03/2012 10:05 AM, Prafulla Wadaskar wrote:
> >
> >
> >> -----Original Message-----
> >> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> >> Sent: 13 June 2012 19:03
> >> To: u-boot at lists.denx.de
> >> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
> >> Subject: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> >> km_kirkwood
> >>
> >> Use the generic header km_kirkwood.h and get rid of the
> >> board specific header.
> >>
> >> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> >> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> >> cc: Prafulla Wadaskar <prafulla@marvell.com>
> >> ---
> >> changes for v2:
> >>    - rebased because of changes in other patches
> >>
> >>  board/keymile/km_arm/km_arm.c |    9 ++--
> >>  boards.cfg                    |    2 +-
> >>  include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
> >>  include/configs/mgcoge3un.h   |   87 -----------------------------
> ---
> >> ---------
> >>  4 files changed, 51 insertions(+), 93 deletions(-)
> >>  delete mode 100644 include/configs/mgcoge3un.h
> >
> > This patch makes sense to me since it since it shrinks overall code.
> > Doe not have dependency in patch series, can be accepted if outside
> the series.
> >
> 
> again, but there are a lot of dependencies between 01-02 and 03-04
> because all
> doing a lot in km_kirkwood.h.  So do you have any particular
> objections against
> the first two patches, beside your input for the kwbimage.cfg which I
> answered
> in a different mail?

As I suggested earlier

You may have patch series for the bugfixes/improvements to the currently supported code.

You may have new board support as separate patch, if those have dependency, get it addressed first.

As such I do not have any objection about longer patch series but
Generally having a long patch series requires longer time to be get pulled in.

Regards...
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 11:19       ` Prafulla Wadaskar
@ 2012-07-03 12:31         ` Holger Brunck
  2012-07-03 12:38           ` Prafulla Wadaskar
  0 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-03 12:31 UTC (permalink / raw)
  To: u-boot

On 07/03/2012 01:19 PM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>> Sent: 03 July 2012 16:08
>> To: Prafulla Wadaskar
>> Cc: u-boot at lists.denx.de; Valentin Longchamp
>> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
>> km_kirkwood
>>
>> Hi Prafulla,
>>
>> On 07/03/2012 10:05 AM, Prafulla Wadaskar wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>>>> Sent: 13 June 2012 19:03
>>>> To: u-boot at lists.denx.de
>>>> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
>>>> Subject: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
>>>> km_kirkwood
>>>>
>>>> Use the generic header km_kirkwood.h and get rid of the
>>>> board specific header.
>>>>
>>>> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
>>>> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
>>>> cc: Prafulla Wadaskar <prafulla@marvell.com>
>>>> ---
>>>> changes for v2:
>>>>    - rebased because of changes in other patches
>>>>
>>>>  board/keymile/km_arm/km_arm.c |    9 ++--
>>>>  boards.cfg                    |    2 +-
>>>>  include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
>>>>  include/configs/mgcoge3un.h   |   87 -----------------------------
>> ---
>>>> ---------
>>>>  4 files changed, 51 insertions(+), 93 deletions(-)
>>>>  delete mode 100644 include/configs/mgcoge3un.h
>>>
>>> This patch makes sense to me since it since it shrinks overall code.
>>> Doe not have dependency in patch series, can be accepted if outside
>> the series.
>>>
>>
>> again, but there are a lot of dependencies between 01-02 and 03-04
>> because all
>> doing a lot in km_kirkwood.h.  So do you have any particular
>> objections against
>> the first two patches, beside your input for the kwbimage.cfg which I
>> answered
>> in a different mail?
> 
> As I suggested earlier
> 
> You may have patch series for the bugfixes/improvements to the currently supported code.
> 
> You may have new board support as separate patch, if those have dependency, get it addressed first.
> 
> As such I do not have any objection about longer patch series but
> Generally having a long patch series requires longer time to be get pulled in.
> 

so and when do you think to pull this in? AFAIK we are shortly before rc1. And I
would like to  see this in, everything was published before the merge window was
closed and we have reacted on every input you gave. But we can't react on inputs
which are not clearly stated.

So how do we proceed here to get this in for v2012.07? If I summarize the
situation you don't have any particular objections against 01-08 of this series.
So should I resend these eight patches as a standalone serie to get at least
these patches in?

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 12:31         ` Holger Brunck
@ 2012-07-03 12:38           ` Prafulla Wadaskar
  2012-07-03 13:00             ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-03 12:38 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 03 July 2012 18:02
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; Valentin Longchamp;
> albert.u.boot at aribaud.net
> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> km_kirkwood
> 
> On 07/03/2012 01:19 PM, Prafulla Wadaskar wrote:
> >
> >
> >> -----Original Message-----
> >> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> >> Sent: 03 July 2012 16:08
> >> To: Prafulla Wadaskar
> >> Cc: u-boot at lists.denx.de; Valentin Longchamp
> >> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> >> km_kirkwood
> >>
> >> Hi Prafulla,
> >>
> >> On 07/03/2012 10:05 AM, Prafulla Wadaskar wrote:
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> >>>> Sent: 13 June 2012 19:03
> >>>> To: u-boot at lists.denx.de
> >>>> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
> >>>> Subject: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> >>>> km_kirkwood
> >>>>
> >>>> Use the generic header km_kirkwood.h and get rid of the
> >>>> board specific header.
> >>>>
> >>>> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> >>>> Signed-off-by: Valentin Longchamp
> <valentin.longchamp@keymile.com>
> >>>> cc: Prafulla Wadaskar <prafulla@marvell.com>
> >>>> ---
> >>>> changes for v2:
> >>>>    - rebased because of changes in other patches
> >>>>
> >>>>  board/keymile/km_arm/km_arm.c |    9 ++--
> >>>>  boards.cfg                    |    2 +-
> >>>>  include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
> >>>>  include/configs/mgcoge3un.h   |   87 ---------------------------
> --
> >> ---
> >>>> ---------
> >>>>  4 files changed, 51 insertions(+), 93 deletions(-)
> >>>>  delete mode 100644 include/configs/mgcoge3un.h
> >>>
> >>> This patch makes sense to me since it since it shrinks overall
> code.
> >>> Doe not have dependency in patch series, can be accepted if
> outside
> >> the series.
> >>>
> >>
> >> again, but there are a lot of dependencies between 01-02 and 03-04
> >> because all
> >> doing a lot in km_kirkwood.h.  So do you have any particular
> >> objections against
> >> the first two patches, beside your input for the kwbimage.cfg which
> I
> >> answered
> >> in a different mail?
> >
> > As I suggested earlier
> >
> > You may have patch series for the bugfixes/improvements to the
> currently supported code.
> >
> > You may have new board support as separate patch, if those have
> dependency, get it addressed first.
> >
> > As such I do not have any objection about longer patch series but
> > Generally having a long patch series requires longer time to be get
> pulled in.
> >
> 
> so and when do you think to pull this in? AFAIK we are shortly before
> rc1. And I
> would like to  see this in, everything was published before the merge
> window was
> closed and we have reacted on every input you gave. But we can't react
> on inputs
> which are not clearly stated.
> 
> So how do we proceed here to get this in for v2012.07? If I summarize
> the
> situation you don't have any particular objections against 01-08 of
> this series.
> So should I resend these eight patches as a standalone serie to get at
> least
> these patches in?

Yes, Please send the patch series for bug fix and improvements ONLY, I will pull them ASAP.

The others we can converge soon.

Regards...
Prafulla . . . 

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 12:38           ` Prafulla Wadaskar
@ 2012-07-03 13:00             ` Holger Brunck
  2012-07-03 13:07               ` Prafulla Wadaskar
  0 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-03 13:00 UTC (permalink / raw)
  To: u-boot

On 07/03/2012 02:38 PM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>> Sent: 03 July 2012 18:02
>> To: Prafulla Wadaskar
>> Cc: u-boot at lists.denx.de; Valentin Longchamp;
>> albert.u.boot at aribaud.net
>> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
>> km_kirkwood
>>
>> On 07/03/2012 01:19 PM, Prafulla Wadaskar wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>>>> Sent: 03 July 2012 16:08
>>>> To: Prafulla Wadaskar
>>>> Cc: u-boot at lists.denx.de; Valentin Longchamp
>>>> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
>>>> km_kirkwood
>>>>
>>>> Hi Prafulla,
>>>>
>>>> On 07/03/2012 10:05 AM, Prafulla Wadaskar wrote:
>>>>>
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>>>>>> Sent: 13 June 2012 19:03
>>>>>> To: u-boot at lists.denx.de
>>>>>> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
>>>>>> Subject: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
>>>>>> km_kirkwood
>>>>>>
>>>>>> Use the generic header km_kirkwood.h and get rid of the
>>>>>> board specific header.
>>>>>>
>>>>>> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
>>>>>> Signed-off-by: Valentin Longchamp
>> <valentin.longchamp@keymile.com>
>>>>>> cc: Prafulla Wadaskar <prafulla@marvell.com>
>>>>>> ---
>>>>>> changes for v2:
>>>>>>    - rebased because of changes in other patches
>>>>>>
>>>>>>  board/keymile/km_arm/km_arm.c |    9 ++--
>>>>>>  boards.cfg                    |    2 +-
>>>>>>  include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
>>>>>>  include/configs/mgcoge3un.h   |   87 ---------------------------
>> --
>>>> ---
>>>>>> ---------
>>>>>>  4 files changed, 51 insertions(+), 93 deletions(-)
>>>>>>  delete mode 100644 include/configs/mgcoge3un.h
>>>>>
>>>>> This patch makes sense to me since it since it shrinks overall
>> code.
>>>>> Doe not have dependency in patch series, can be accepted if
>> outside
>>>> the series.
>>>>>
>>>>
>>>> again, but there are a lot of dependencies between 01-02 and 03-04
>>>> because all
>>>> doing a lot in km_kirkwood.h.  So do you have any particular
>>>> objections against
>>>> the first two patches, beside your input for the kwbimage.cfg which
>> I
>>>> answered
>>>> in a different mail?
>>>
>>> As I suggested earlier
>>>
>>> You may have patch series for the bugfixes/improvements to the
>> currently supported code.
>>>
>>> You may have new board support as separate patch, if those have
>> dependency, get it addressed first.
>>>
>>> As such I do not have any objection about longer patch series but
>>> Generally having a long patch series requires longer time to be get
>> pulled in.
>>>
>>
>> so and when do you think to pull this in? AFAIK we are shortly before
>> rc1. And I
>> would like to  see this in, everything was published before the merge
>> window was
>> closed and we have reacted on every input you gave. But we can't react
>> on inputs
>> which are not clearly stated.
>>
>> So how do we proceed here to get this in for v2012.07? If I summarize
>> the
>> situation you don't have any particular objections against 01-08 of
>> this series.
>> So should I resend these eight patches as a standalone serie to get at
>> least
>> these patches in?
> 
> Yes, Please send the patch series for bug fix and improvements ONLY, I will pull them ASAP.
> 
> The others we can converge soon.
> 

But 01-08 are not only bugfixes there are also two new boards in these patches.
So will you pull these eight patches in if I post them again without 09-14?

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 13:00             ` Holger Brunck
@ 2012-07-03 13:07               ` Prafulla Wadaskar
  2012-07-03 13:43                 ` Holger Brunck
  2012-07-03 14:00                 ` Detlev Zundel
  0 siblings, 2 replies; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-03 13:07 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 03 July 2012 18:31
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; Valentin Longchamp;
> albert.u.boot at aribaud.net
> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> km_kirkwood
> 
> On 07/03/2012 02:38 PM, Prafulla Wadaskar wrote:
> >
> >
> >> -----Original Message-----
> >> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> >> Sent: 03 July 2012 18:02
> >> To: Prafulla Wadaskar
> >> Cc: u-boot at lists.denx.de; Valentin Longchamp;
> >> albert.u.boot at aribaud.net
> >> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> >> km_kirkwood
> >>
> >> On 07/03/2012 01:19 PM, Prafulla Wadaskar wrote:
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> >>>> Sent: 03 July 2012 16:08
> >>>> To: Prafulla Wadaskar
> >>>> Cc: u-boot at lists.denx.de; Valentin Longchamp
> >>>> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> >>>> km_kirkwood
> >>>>
> >>>> Hi Prafulla,
> >>>>
> >>>> On 07/03/2012 10:05 AM, Prafulla Wadaskar wrote:
> >>>>>
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> >>>>>> Sent: 13 June 2012 19:03
> >>>>>> To: u-boot at lists.denx.de
> >>>>>> Cc: Holger Brunck; Valentin Longchamp; Prafulla Wadaskar
> >>>>>> Subject: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> >>>>>> km_kirkwood
> >>>>>>
> >>>>>> Use the generic header km_kirkwood.h and get rid of the
> >>>>>> board specific header.
> >>>>>>
> >>>>>> Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
> >>>>>> Signed-off-by: Valentin Longchamp
> >> <valentin.longchamp@keymile.com>
> >>>>>> cc: Prafulla Wadaskar <prafulla@marvell.com>
> >>>>>> ---
> >>>>>> changes for v2:
> >>>>>>    - rebased because of changes in other patches
> >>>>>>
> >>>>>>  board/keymile/km_arm/km_arm.c |    9 ++--
> >>>>>>  boards.cfg                    |    2 +-
> >>>>>>  include/configs/km_kirkwood.h |   46 +++++++++++++++++++++
> >>>>>>  include/configs/mgcoge3un.h   |   87 -------------------------
> --
> >> --
> >>>> ---
> >>>>>> ---------
> >>>>>>  4 files changed, 51 insertions(+), 93 deletions(-)
> >>>>>>  delete mode 100644 include/configs/mgcoge3un.h
> >>>>>
> >>>>> This patch makes sense to me since it since it shrinks overall
> >> code.
> >>>>> Doe not have dependency in patch series, can be accepted if
> >> outside
> >>>> the series.
> >>>>>
> >>>>
> >>>> again, but there are a lot of dependencies between 01-02 and 03-
> 04
> >>>> because all
> >>>> doing a lot in km_kirkwood.h.  So do you have any particular
> >>>> objections against
> >>>> the first two patches, beside your input for the kwbimage.cfg
> which
> >> I
> >>>> answered
> >>>> in a different mail?
> >>>
> >>> As I suggested earlier
> >>>
> >>> You may have patch series for the bugfixes/improvements to the
> >> currently supported code.
> >>>
> >>> You may have new board support as separate patch, if those have
> >> dependency, get it addressed first.
> >>>
> >>> As such I do not have any objection about longer patch series but
> >>> Generally having a long patch series requires longer time to be
> get
> >> pulled in.
> >>>
> >>
> >> so and when do you think to pull this in? AFAIK we are shortly
> before
> >> rc1. And I
> >> would like to  see this in, everything was published before the
> merge
> >> window was
> >> closed and we have reacted on every input you gave. But we can't
> react
> >> on inputs
> >> which are not clearly stated.
> >>
> >> So how do we proceed here to get this in for v2012.07? If I
> summarize
> >> the
> >> situation you don't have any particular objections against 01-08 of
> >> this series.
> >> So should I resend these eight patches as a standalone serie to get
> at
> >> least
> >> these patches in?
> >
> > Yes, Please send the patch series for bug fix and improvements ONLY,
> I will pull them ASAP.
> >
> > The others we can converge soon.
> >
> 
> But 01-08 are not only bugfixes there are also two new boards in these
> patches.
> So will you pull these eight patches in if I post them again without
> 09-14?

Pls post bug fixes and improvement patches first those will be pulled faster.

Regards...
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 13:07               ` Prafulla Wadaskar
@ 2012-07-03 13:43                 ` Holger Brunck
  2012-07-03 14:39                   ` Prafulla Wadaskar
  2012-07-03 14:00                 ` Detlev Zundel
  1 sibling, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-03 13:43 UTC (permalink / raw)
  To: u-boot

On 07/03/2012 03:07 PM, Prafulla Wadaskar wrote:
>>>>>>>
>>>>>>> This patch makes sense to me since it since it shrinks overall
>>>> code.
>>>>>>> Doe not have dependency in patch series, can be accepted if
>>>> outside
>>>>>> the series.
>>>>>>>
>>>>>>
>>>>>> again, but there are a lot of dependencies between 01-02 and 03-
>> 04
>>>>>> because all
>>>>>> doing a lot in km_kirkwood.h.  So do you have any particular
>>>>>> objections against
>>>>>> the first two patches, beside your input for the kwbimage.cfg
>> which
>>>> I
>>>>>> answered
>>>>>> in a different mail?
>>>>>
>>>>> As I suggested earlier
>>>>>
>>>>> You may have patch series for the bugfixes/improvements to the
>>>> currently supported code.
>>>>>
>>>>> You may have new board support as separate patch, if those have
>>>> dependency, get it addressed first.
>>>>>
>>>>> As such I do not have any objection about longer patch series but
>>>>> Generally having a long patch series requires longer time to be
>> get
>>>> pulled in.
>>>>>
>>>>
>>>> so and when do you think to pull this in? AFAIK we are shortly
>> before
>>>> rc1. And I
>>>> would like to  see this in, everything was published before the
>> merge
>>>> window was
>>>> closed and we have reacted on every input you gave. But we can't
>> react
>>>> on inputs
>>>> which are not clearly stated.
>>>>
>>>> So how do we proceed here to get this in for v2012.07? If I
>> summarize
>>>> the
>>>> situation you don't have any particular objections against 01-08 of
>>>> this series.
>>>> So should I resend these eight patches as a standalone serie to get
>> at
>>>> least
>>>> these patches in?
>>>
>>> Yes, Please send the patch series for bug fix and improvements ONLY,
>> I will pull them ASAP.
>>>
>>> The others we can converge soon.
>>>
>>
>> But 01-08 are not only bugfixes there are also two new boards in these
>> patches.
>> So will you pull these eight patches in if I post them again without
>> 09-14?
> 
> Pls post bug fixes and improvement patches first those will be pulled faster.
> 
This was already done from my side:
http://lists.denx.de/pipermail/u-boot/2012-May/125219.html

Sorry Prafulla but I have admit that this whole discussion costs a lot of time
which I do not have. We are moving in circles your last comment was already
discussed several times e.g.:
http://lists.denx.de/pipermail/u-boot/2012-June/126081.html

So again you have no specific inputs of improvements for 01-08 right? All you
rephrase are some general comments which are not very helpfull to improve our
situation and to get our own board code into mainline.

We try to stick to every rule which is valid for u-boot development. But we
can't stick to rules which are not clearly stated.

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 13:07               ` Prafulla Wadaskar
  2012-07-03 13:43                 ` Holger Brunck
@ 2012-07-03 14:00                 ` Detlev Zundel
  1 sibling, 0 replies; 40+ messages in thread
From: Detlev Zundel @ 2012-07-03 14:00 UTC (permalink / raw)
  To: u-boot

Hi Prafulla,

[...]

>> But 01-08 are not only bugfixes there are also two new boards in these
>> patches.
>> So will you pull these eight patches in if I post them again without
>> 09-14?
>
> Pls post bug fixes and improvement patches first those will be pulled
> faster.

May I please ask you to reconsider your stance on the patch sets from
Holger?  As far as I can see, he explained a few times by now why and
how he grouped the patches like he did.  And to be honest, I _can_
understand his reasoning and believe it to be well-founded.

After all, our requirements come from _practical_ considerations,
i.e. bisectability, code size reductions, etc. but in the end they are
all compromises in one way or another.  So usually we do not invent new
requirements for the sake of requirements, but in order to improve the
situation if the net effect is positive for the project as a whole.

Of course it is a fact that the effort for reviewers is non-negligible,
but we have to draw a line somewhere in the area where the
"well-formedness" of patch sets and the "ease" of reviewing them needs
to be compromised.  I do not like to see added complexity in patch sets
so that reviewing gets easier.  

As far as I can see, this is the current situation and thus I would like
you to reconsider and rather spend some more time on the review process
of the whole patch series as it is.

Thanks in advance
  Detlev

-- 
"The number you have dialed is imaginary. Please rotate your phone 90
degrees and try again."
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 13:43                 ` Holger Brunck
@ 2012-07-03 14:39                   ` Prafulla Wadaskar
  2012-07-03 18:00                     ` Wolfgang Denk
  2012-07-04  8:24                     ` Holger Brunck
  0 siblings, 2 replies; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-03 14:39 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 03 July 2012 19:13
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; Valentin Longchamp;
> albert.u.boot at aribaud.net; Detlev Zundel
> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> km_kirkwood
> 
> On 07/03/2012 03:07 PM, Prafulla Wadaskar wrote:
> >>>>>>>
> >>>>>>> This patch makes sense to me since it since it shrinks overall
> >>>> code.
> >>>>>>> Doe not have dependency in patch series, can be accepted if
> >>>> outside
> >>>>>> the series.
> >>>>>>>
> >>>>>>
> >>>>>> again, but there are a lot of dependencies between 01-02 and
> 03-
> >> 04
> >>>>>> because all
> >>>>>> doing a lot in km_kirkwood.h.  So do you have any particular
> >>>>>> objections against
> >>>>>> the first two patches, beside your input for the kwbimage.cfg
> >> which
> >>>> I
> >>>>>> answered
> >>>>>> in a different mail?
> >>>>>
> >>>>> As I suggested earlier
> >>>>>
> >>>>> You may have patch series for the bugfixes/improvements to the
> >>>> currently supported code.
> >>>>>
> >>>>> You may have new board support as separate patch, if those have
> >>>> dependency, get it addressed first.
> >>>>>
> >>>>> As such I do not have any objection about longer patch series
> but
> >>>>> Generally having a long patch series requires longer time to be
> >> get
> >>>> pulled in.
> >>>>>
> >>>>
> >>>> so and when do you think to pull this in? AFAIK we are shortly
> >> before
> >>>> rc1. And I
> >>>> would like to  see this in, everything was published before the
> >> merge
> >>>> window was
> >>>> closed and we have reacted on every input you gave. But we can't
> >> react
> >>>> on inputs
> >>>> which are not clearly stated.
> >>>>
> >>>> So how do we proceed here to get this in for v2012.07? If I
> >> summarize
> >>>> the
> >>>> situation you don't have any particular objections against 01-08
> of
> >>>> this series.
> >>>> So should I resend these eight patches as a standalone serie to
> get
> >> at
> >>>> least
> >>>> these patches in?
> >>>
> >>> Yes, Please send the patch series for bug fix and improvements
> ONLY,
> >> I will pull them ASAP.
> >>>
> >>> The others we can converge soon.
> >>>
> >>
> >> But 01-08 are not only bugfixes there are also two new boards in
> these
> >> patches.
> >> So will you pull these eight patches in if I post them again
> without
> >> 09-14?
> >
> > Pls post bug fixes and improvement patches first those will be
> pulled faster.
> >
> This was already done from my side:
> http://lists.denx.de/pipermail/u-boot/2012-May/125219.html
> 
> Sorry Prafulla but I have admit that this whole discussion costs a lot
> of time
> which I do not have. We are moving in circles your last comment was
> already
> discussed several times e.g.:
> http://lists.denx.de/pipermail/u-boot/2012-June/126081.html

Dear Hogler

Do you think I should pull this patch series, I hope it applies cleanly on the recent master branch.
Please confirm.

> 
> So again you have no specific inputs of improvements for 01-08 right?
> All you
> rephrase are some general comments which are not very helpfull to
> improve our
> situation and to get our own board code into mainline.

Well.. we can keep discussing patches here until all the patches in the patch series gets acked.
This adds time/cost to the developer and reviewer too.
My old experience tells me that shorter is simpler and easier to accept.

I personally don't wish to hold any thing that sounds good to me.
The idea is how the development can be shared across the community.

So I had certain questions in my mind about your development for which I don't want any answers. You can treat them as feedback for your future development.

1. Why do you modify the board parameters so frequently? I see several patches for these, cant you freeze all this well before posting board support patch?
2. Why do you use your own keymile-common.h, can't you migrate to use mv_common.h which mainly created for the same purpose?
3. When you support any generic peripheral can't you think of generic use case?

> 
> We try to stick to every rule which is valid for u-boot development.
> But we
> can't stick to rules which are not clearly stated.

You better can have your own world, and maintain the code the way you want, not necessarily you need u-boot for this.

We both have different thinking hats :-D
In your view, your code is important to get mainlined, may be you don't care other things.
In my view, how any support can be added in simpler, shorter, reusable, cleaner way in-sync with development strategy. I am just trying to follow this.
I might have done mistakes, I express grand SORRY for that :-(

I am always there to help everybody with my limited resources and time.

Regards...
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 14:39                   ` Prafulla Wadaskar
@ 2012-07-03 18:00                     ` Wolfgang Denk
  2012-07-04  9:21                       ` Prafulla Wadaskar
  2012-07-04  8:24                     ` Holger Brunck
  1 sibling, 1 reply; 40+ messages in thread
From: Wolfgang Denk @ 2012-07-03 18:00 UTC (permalink / raw)
  To: u-boot

Dear Prafulla,

In message <F766E4F80769BD478052FB6533FA745D1A2FE3028D@SC-VEXCH4.marvell.com> you wrote:
> 
> Do you think I should pull this patch series, I hope it applies cleanly on the recent master branch.
> Please confirm.

I have to admit that I neither reviewed the patches in question, nor
did I follow the whole thread of communication in this patch series.
But the general rule is that if there are no strong argumentents
against a patch (like a clear NAK or a specific request for changes)
we will apply it.

> 1. Why do you modify the board parameters so frequently? I see
> several patches for these, cant you freeze all this well before
> posting board support patch?

Actually it's this question which triggered my reply.  From a
developer's point of view it makes a lot of sense to push patches
upstream as soon as possible, to have at least the major bunch of code
maintained with the mainline source tree, even if board configuration
and other board specific code still needs to be changed.

We all complain frequently aboutquestions for obsolete code in some
out-of-tree ports, so we should strongly support such early patch
submissions, and not discourage it.

And frankly, as long as its strictly board specific code only, we
don't even have to care if it works.  

> 2. Why do you use your own keymile-common.h, can't you migrate to
> use mv_common.h which mainly created for the same purpose?

Probably for the same reasons: patches get submitted early, when
configurationhas not stabilized yet, and it's much easier for all
involved parties to change some board or vendor specific file instead
of one that gets used for the whole architecture.

> 3. When you support any generic peripheral can't you think of generic use case?
> 
> >
> > We try to stick to every rule which is valid for u-boot development.
> > But we
> > can't stick to rules which are not clearly stated.
> 
> You better can have your own world, and maintain the code the way
> you want, not necessarily you need u-boot for this.

I don't understand what you mean here.  As a custodian you have a
responsibility to support a submitter.  Yes, this may include that you
reject incorrect code, maybe even if it's only violating the Coing
Style.  But from what I've seen so far I think Keymile really strives
hard to play by the rules.

If there are violations of any documented rules, then please say so
clearly, and NAK the patch.  If there are other things that should be
fixed, where rules are not clear, then we should discuss the problem,
the way how we would like to see this fixed, and document these new
rules for future cases.

> In your view, your code is important to get mainlined, may be you
> don't care other things.

In our view it is also important to get this code mainlined, as it is
always important to help users to have their submissions mainlined.
This is one of the major responsibilities of us maintainers to the
community.  If we were free to ignore the users, we would probably
quickly be free of any community, too.

> In my view, how any support can be added in simpler, shorter,
> reusable, cleaner way in-sync with development strategy. I am just
> trying to follow this.

The question is how many iterations really make sense.  In this case
there appear to have been too many already.  If there are no clear,
hard deficiencies in the code that need fixing, then I think we have
to put an end to such dicussions earlier.

> I might have done mistakes, I express grand SORRY for that :-(
> 
> I am always there to help everybody with my limited resources and time.

We all apprecate your efforts. Please don't misunderstand me, I don't
intend to interfere with your job as a custodian here. You just
happen to trigger my message whichis actually directed to all
custodians: please help to get patches accepted, for the sake of
encouraging users to submit their code. If we frighten off such users,
all sides lose - the users, and us.

Thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
As far as the laws of mathematics refer to reality, they are not cer-
tain, and as far as they are certain, they do not refer  to  reality.
                                                   -- Albert Einstein

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 14:39                   ` Prafulla Wadaskar
  2012-07-03 18:00                     ` Wolfgang Denk
@ 2012-07-04  8:24                     ` Holger Brunck
  2012-07-04  9:23                       ` Prafulla Wadaskar
  1 sibling, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-04  8:24 UTC (permalink / raw)
  To: u-boot

Hi Prafulla,

On 07/03/2012 04:39 PM, Prafulla Wadaskar wrote:
>> On 07/03/2012 03:07 PM, Prafulla Wadaskar wrote:
>>>>>
>>>>
>>>> But 01-08 are not only bugfixes there are also two new boards in
>> these
>>>> patches.
>>>> So will you pull these eight patches in if I post them again
>> without
>>>> 09-14?
>>>
>>> Pls post bug fixes and improvement patches first those will be
>> pulled faster.
>>>
>> This was already done from my side:
>> http://lists.denx.de/pipermail/u-boot/2012-May/125219.html
>>
>> Sorry Prafulla but I have admit that this whole discussion costs a lot
>> of time
>> which I do not have. We are moving in circles your last comment was
>> already
>> discussed several times e.g.:
>> http://lists.denx.de/pipermail/u-boot/2012-June/126081.html
> 
> 
> Do you think I should pull this patch series, I hope it applies cleanly on the recent master branch.
> Please confirm.
> 

at time of submission it applied cleanly, now I see some merge conlicts due to
some underlying changes in boards.cfg in your current master. But if you are now
fine with the patch serie I can provide an update which applies cleanly again.

>>
>> So again you have no specific inputs of improvements for 01-08 right?
>> All you
>> rephrase are some general comments which are not very helpfull to
>> improve our
>> situation and to get our own board code into mainline.
> 
> Well.. we can keep discussing patches here until all the patches in the patch series gets acked.
> This adds time/cost to the developer and reviewer too.
> My old experience tells me that shorter is simpler and easier to accept.
> 

yes I agree but if you add new boards and new features there is sometimes no
chance to make everything small and simple.

> I personally don't wish to hold any thing that sounds good to me.
> The idea is how the development can be shared across the community.
> 
> So I had certain questions in my mind about your development for which I don't want any answers. You can treat them as feedback for your future development.
> 
> 1. Why do you modify the board parameters so frequently? I see several patches for these, cant you freeze all this well before posting board support patch?
> 2. Why do you use your own keymile-common.h, can't you migrate to use mv_common.h which mainly created for the same purpose?

The mentioned keymile-common.h has a completely different intention then
mv-common.h. Our header is mainly to collect all features for our boards which
are common for our ppc and arm based boards (environment variables, cmd features
etc.). And including mv-common.h into our environment for our arm based boards
was investigated. But many many features which are used in this header is not
valid for our boards, so it would end up in a big set of #ifdefs.

> 3. When you support any generic peripheral can't you think of generic use case?
> 
>>
>> We try to stick to every rule which is valid for u-boot development.
>> But we
>> can't stick to rules which are not clearly stated.
> 
> You better can have your own world, and maintain the code the way you want, not necessarily you need u-boot for this.
> 
> We both have different thinking hats :-D
> In your view, your code is important to get mainlined, may be you don't care other things.
> In my view, how any support can be added in simpler, shorter, reusable, cleaner way in-sync with development strategy. I am just trying to follow this.
> I might have done mistakes, I express grand SORRY for that :-(
> 
> I am always there to help everybody with my limited resources and time.
> 

yes and I don't want to offend anybody here. At the end we should benefit from
each other. Our side that we have our boards in mainline and you and others in
the community which take advantage from the bugfixes and bug reports we provide
for common code, as already done at several places.

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-03 18:00                     ` Wolfgang Denk
@ 2012-07-04  9:21                       ` Prafulla Wadaskar
  2012-07-05  5:54                         ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-04  9:21 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Wolfgang Denk [mailto:wd at denx.de]
> Sent: 03 July 2012 23:31
> To: Prafulla Wadaskar
> Cc: Holger Brunck; u-boot at lists.denx.de; Valentin Longchamp
> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
> target to km_kirkwood
> 
> Dear Prafulla,
> 
> In message <F766E4F80769BD478052FB6533FA745D1A2FE3028D@SC-
> VEXCH4.marvell.com> you wrote:
> >
> > Do you think I should pull this patch series, I hope it applies
> cleanly on the recent master branch.
> > Please confirm.
> 
> I have to admit that I neither reviewed the patches in question, nor
> did I follow the whole thread of communication in this patch series.
> But the general rule is that if there are no strong argumentents
> against a patch (like a clear NAK or a specific request for changes)
> we will apply it.

Hi Wolfgang,
This patch series was too old, I was trying to save my effors ;-D
Finally I pulled these patches and tried to apply, but as I doubted it failed :-(
 
Hi Hogler

I could not apply the said patch series to the latest u-boot-marvell.git master branch

Pls re-submit it.

git-am U-Boot-1-9-arm-km-add-board-type-to-boards.cfg.patch

Applying arm/km: add board type to boards.cfg

error: patch failed: boards.cfg:138
error: boards.cfg: patch does not apply
error: patch failed: include/configs/km_kirkwood.h:42
error: include/configs/km_kirkwood.h: patch does not apply
Patch failed at 0001.
When you have resolved this problem run "git-am --resolved".
If you would prefer to skip this patch, instead run "git-am --skip"

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-04  8:24                     ` Holger Brunck
@ 2012-07-04  9:23                       ` Prafulla Wadaskar
  0 siblings, 0 replies; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-04  9:23 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 04 July 2012 13:55
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; Valentin Longchamp;
> albert.u.boot at aribaud.net; Detlev Zundel
> Subject: Re: [PATCH v2 03/14] arm/km: convert mgcoge3un target to
> km_kirkwood
> 
> Hi Prafulla,
> 
> On 07/03/2012 04:39 PM, Prafulla Wadaskar wrote:
> >> On 07/03/2012 03:07 PM, Prafulla Wadaskar wrote:
> >>>>>
> >>>>
> >>>> But 01-08 are not only bugfixes there are also two new boards in
> >> these
> >>>> patches.
> >>>> So will you pull these eight patches in if I post them again
> >> without
> >>>> 09-14?
> >>>
> >>> Pls post bug fixes and improvement patches first those will be
> >> pulled faster.
> >>>
> >> This was already done from my side:
> >> http://lists.denx.de/pipermail/u-boot/2012-May/125219.html
> >>
> >> Sorry Prafulla but I have admit that this whole discussion costs a
> lot
> >> of time
> >> which I do not have. We are moving in circles your last comment was
> >> already
> >> discussed several times e.g.:
> >> http://lists.denx.de/pipermail/u-boot/2012-June/126081.html
> >
> >
> > Do you think I should pull this patch series, I hope it applies
> cleanly on the recent master branch.
> > Please confirm.
> >
> 
> at time of submission it applied cleanly, now I see some merge
> conlicts due to
> some underlying changes in boards.cfg in your current master. But if
> you are now
> fine with the patch serie I can provide an update which applies
> cleanly again.

No I am not fine with this patch series.
Pls provide updates

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-04  9:21                       ` Prafulla Wadaskar
@ 2012-07-05  5:54                         ` Holger Brunck
  2012-07-05  6:04                           ` Prafulla Wadaskar
  0 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-05  5:54 UTC (permalink / raw)
  To: u-boot

On 07/04/2012 11:21 AM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Wolfgang Denk [mailto:wd at denx.de]
>> Sent: 03 July 2012 23:31
>> To: Prafulla Wadaskar
>> Cc: Holger Brunck; u-boot at lists.denx.de; Valentin Longchamp
>> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
>> target to km_kirkwood
>>
>> Dear Prafulla,
>>
>> In message <F766E4F80769BD478052FB6533FA745D1A2FE3028D@SC-
>> VEXCH4.marvell.com> you wrote:
>>>
>>> Do you think I should pull this patch series, I hope it applies
>> cleanly on the recent master branch.
>>> Please confirm.
>>
>> I have to admit that I neither reviewed the patches in question, nor
>> did I follow the whole thread of communication in this patch series.
>> But the general rule is that if there are no strong argumentents
>> against a patch (like a clear NAK or a specific request for changes)
>> we will apply it.
> 
> Hi Wolfgang,
> This patch series was too old, I was trying to save my effors ;-D
> Finally I pulled these patches and tried to apply, but as I doubted it failed :-(
>  
> Hi Hogler
> 
> I could not apply the said patch series to the latest u-boot-marvell.git master branch
> 
> Pls re-submit it.
> 
> git-am U-Boot-1-9-arm-km-add-board-type-to-boards.cfg.patch
> 
> Applying arm/km: add board type to boards.cfg
> 
> error: patch failed: boards.cfg:138
> error: boards.cfg: patch does not apply
> error: patch failed: include/configs/km_kirkwood.h:42
> error: include/configs/km_kirkwood.h: patch does not apply
> Patch failed at 0001.
> When you have resolved this problem run "git-am --resolved".
> If you would prefer to skip this patch, instead run "git-am --skip"
> 

sorry but now I am completely confused. Here you say you want to apply 01-09
which includes
[PATCH v2 05/14] arm/km: correct init of 88e6352 switch in the reset_phy function
and
[PATCH v2 09/14] arm/km: add support for external switch configuration

this includes basic infrastructure for the managed switch.

In another thread you NAK the whole driver:
http://lists.denx.de/pipermail/u-boot/2012-July/127529.html

In a further different thread where I asked if I should provide updates which
apply cleanly you say no there are general updates needed:
http://lists.denx.de/pipermail/u-boot/2012-July/127531.html

For me these statements are conflicting.

So can you please state clearly which updates you request from myside for which
patch and which are from your point of view not acceptable and why? Thanks

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-05  5:54                         ` Holger Brunck
@ 2012-07-05  6:04                           ` Prafulla Wadaskar
  2012-07-05  7:15                             ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-05  6:04 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 05 July 2012 11:24
> To: Prafulla Wadaskar
> Cc: Wolfgang Denk; u-boot at lists.denx.de; Valentin Longchamp
> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
> target to km_kirkwood
> 
> On 07/04/2012 11:21 AM, Prafulla Wadaskar wrote:
> >
> >
> >> -----Original Message-----
> >> From: Wolfgang Denk [mailto:wd at denx.de]
> >> Sent: 03 July 2012 23:31
> >> To: Prafulla Wadaskar
> >> Cc: Holger Brunck; u-boot at lists.denx.de; Valentin Longchamp
> >> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
> >> target to km_kirkwood
> >>
> >> Dear Prafulla,
> >>
> >> In message <F766E4F80769BD478052FB6533FA745D1A2FE3028D@SC-
> >> VEXCH4.marvell.com> you wrote:
> >>>
> >>> Do you think I should pull this patch series, I hope it applies
> >> cleanly on the recent master branch.
> >>> Please confirm.
> >>
> >> I have to admit that I neither reviewed the patches in question,
> nor
> >> did I follow the whole thread of communication in this patch
> series.
> >> But the general rule is that if there are no strong argumentents
> >> against a patch (like a clear NAK or a specific request for
> changes)
> >> we will apply it.
> >
> > Hi Wolfgang,
> > This patch series was too old, I was trying to save my effors ;-D
> > Finally I pulled these patches and tried to apply, but as I doubted
> it failed :-(
> >
> > Hi Hogler
> >
> > I could not apply the said patch series to the latest u-boot-
> marvell.git master branch
> >
> > Pls re-submit it.
> >
> > git-am U-Boot-1-9-arm-km-add-board-type-to-boards.cfg.patch
> >
> > Applying arm/km: add board type to boards.cfg
> >
> > error: patch failed: boards.cfg:138
> > error: boards.cfg: patch does not apply
> > error: patch failed: include/configs/km_kirkwood.h:42
> > error: include/configs/km_kirkwood.h: patch does not apply
> > Patch failed at 0001.
> > When you have resolved this problem run "git-am --resolved".
> > If you would prefer to skip this patch, instead run "git-am --skip"
> >
> 
> sorry but now I am completely confused. Here you say you want to apply
> 01-09
> which includes
> [PATCH v2 05/14] arm/km: correct init of 88e6352 switch in the
> reset_phy function
> and
> [PATCH v2 09/14] arm/km: add support for external switch configuration
> 
> this includes basic infrastructure for the managed switch.
> 
> In another thread you NAK the whole driver:
> http://lists.denx.de/pipermail/u-boot/2012-July/127529.html
> 
> In a further different thread where I asked if I should provide
> updates which
> apply cleanly you say no there are general updates needed:
> http://lists.denx.de/pipermail/u-boot/2012-July/127531.html
> 
> For me these statements are conflicting.
> 
> So can you please state clearly which updates you request from myside
> for which
> patch and which are from your point of view not acceptable and why?
> Thanks

Dear Holger

To avoid any further confusion let's keep aside all the past.
1. Pls post the new patch series that is just targeted for bugfixes and updates (no addition of new boards or drivers)
2. You may post anther patch series for addition of new boards which does not have any dependencies (if you have such)
3. You may post a standalone patch for a switch driver, needed ack from Joe, that might go to u-boot-net.git
4. You may post a board support patch using this switch.

#1,#2 I hope will be pulled faster, rest may take some time.

Regards...
Prafulla . . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-05  6:04                           ` Prafulla Wadaskar
@ 2012-07-05  7:15                             ` Holger Brunck
  2012-07-05 12:09                               ` Prafulla Wadaskar
  0 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-05  7:15 UTC (permalink / raw)
  To: u-boot

On 07/05/2012 08:04 AM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>> Sent: 05 July 2012 11:24
>> To: Prafulla Wadaskar
>> Cc: Wolfgang Denk; u-boot at lists.denx.de; Valentin Longchamp
>> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
>> target to km_kirkwood
>>
>> On 07/04/2012 11:21 AM, Prafulla Wadaskar wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Wolfgang Denk [mailto:wd at denx.de]
>>>> Sent: 03 July 2012 23:31
>>>> To: Prafulla Wadaskar
>>>> Cc: Holger Brunck; u-boot at lists.denx.de; Valentin Longchamp
>>>> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
>>>> target to km_kirkwood
>>>>
>>>> Dear Prafulla,
>>>>
>>>> In message <F766E4F80769BD478052FB6533FA745D1A2FE3028D@SC-
>>>> VEXCH4.marvell.com> you wrote:
>>>>>
>>>>> Do you think I should pull this patch series, I hope it applies
>>>> cleanly on the recent master branch.
>>>>> Please confirm.
>>>>
>>>> I have to admit that I neither reviewed the patches in question,
>> nor
>>>> did I follow the whole thread of communication in this patch
>> series.
>>>> But the general rule is that if there are no strong argumentents
>>>> against a patch (like a clear NAK or a specific request for
>> changes)
>>>> we will apply it.
>>>
>>> Hi Wolfgang,
>>> This patch series was too old, I was trying to save my effors ;-D
>>> Finally I pulled these patches and tried to apply, but as I doubted
>> it failed :-(
>>>
>>> Hi Hogler
>>>
>>> I could not apply the said patch series to the latest u-boot-
>> marvell.git master branch
>>>
>>> Pls re-submit it.
>>>
>>> git-am U-Boot-1-9-arm-km-add-board-type-to-boards.cfg.patch
>>>
>>> Applying arm/km: add board type to boards.cfg
>>>
>>> error: patch failed: boards.cfg:138
>>> error: boards.cfg: patch does not apply
>>> error: patch failed: include/configs/km_kirkwood.h:42
>>> error: include/configs/km_kirkwood.h: patch does not apply
>>> Patch failed at 0001.
>>> When you have resolved this problem run "git-am --resolved".
>>> If you would prefer to skip this patch, instead run "git-am --skip"
>>>
>>
>> sorry but now I am completely confused. Here you say you want to apply
>> 01-09
>> which includes
>> [PATCH v2 05/14] arm/km: correct init of 88e6352 switch in the
>> reset_phy function
>> and
>> [PATCH v2 09/14] arm/km: add support for external switch configuration
>>
>> this includes basic infrastructure for the managed switch.
>>
>> In another thread you NAK the whole driver:
>> http://lists.denx.de/pipermail/u-boot/2012-July/127529.html
>>
>> In a further different thread where I asked if I should provide
>> updates which
>> apply cleanly you say no there are general updates needed:
>> http://lists.denx.de/pipermail/u-boot/2012-July/127531.html
>>
>> For me these statements are conflicting.
>>
>> So can you please state clearly which updates you request from myside
>> for which
>> patch and which are from your point of view not acceptable and why?
>> Thanks
> 
> Dear Holger
> 
> To avoid any further confusion let's keep aside all the past.
> 1. Pls post the new patch series that is just targeted for bugfixes and updates (no addition of new boards or drivers)

Ok so there are again no inputs to specific patches and no change request for a
specific patch (beside the input to the managed switch). What you do is to
rephrase a requirement for patch series in general. So there seems to be a rule
that if you a) add new boards and b) cleanup and maintain existing boards in the
same patch serie the patches needs to be in a special order. Please show me the
pointer in u-boot guidlines to this if there is one. I know that such tasks
should be seperated  into different patches what this serie defenitely does. If
not please discuss this as a new requirement with other custodians as Wolfgang
suggested in the same thread. I don't think that such a requirement would be a
benefit for board maintainers and custodians, because code maintaining and
improvement is always a good thing. Your requirement in practice would mean,
stop code maintaining for board series during the time you need to add new boards.

> 2. You may post anther patch series for addition of new boards which does not have any dependencies (if you have such)
> 3. You may post a standalone patch for a switch driver, needed ack from Joe, that might go to u-boot-net.git

Ok we can remove this very limited driver from the patch serie.

So what we can do is providing a patch serie where the driver for this managed
switch is not in. But as far as I understood this does not be in accordance what
you requested?

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-05  7:15                             ` Holger Brunck
@ 2012-07-05 12:09                               ` Prafulla Wadaskar
  2012-07-05 13:43                                 ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-05 12:09 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 05 July 2012 12:46
> To: Prafulla Wadaskar
> Cc: Wolfgang Denk; u-boot at lists.denx.de; Valentin Longchamp
> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
> target to km_kirkwood
...snip...
> >
> > Dear Holger
> >
> > To avoid any further confusion let's keep aside all the past.
> > 1. Pls post the new patch series that is just targeted for bugfixes
> and updates (no addition of new boards or drivers)
> 
> Ok so there are again no inputs to specific patches and no change
> request for a
> specific patch (beside the input to the managed switch). What you do
> is to
> rephrase a requirement for patch series in general. So there seems to
> be a rule
> that if you a) add new boards and b) cleanup and maintain existing
> boards in the
> same patch serie the patches needs to be in a special order. Please
> show me the
> pointer in u-boot guidlines to this if there is one. I know that such
> tasks
> should be seperated  into different patches what this serie defenitely
> does. If
> not please discuss this as a new requirement with other custodians as
> Wolfgang
> suggested in the same thread. I don't think that such a requirement
> would be a
> benefit for board maintainers and custodians, because code maintaining
> and
> improvement is always a good thing. Your requirement in practice would
> mean,
> stop code maintaining for board series during the time you need to add
> new boards.

Dear Holger,

I think custodian should pull entire patch series if all the patches in the series are ACKED.
If any patch within patch series is NACKED, the patch series does not stand valid to pull.
Someone may correct me if I am wrong.

> 
> > 2. You may post anther patch series for addition of new boards which
> does not have any dependencies (if you have such)
> > 3. You may post a standalone patch for a switch driver, needed ack
> from Joe, that might go to u-boot-net.git
> 
> Ok we can remove this very limited driver from the patch serie.
> 
> So what we can do is providing a patch serie where the driver for this
> managed
> switch is not in. But as far as I understood this does not be in
> accordance what
> you requested?

Ideally, the answer is same as above. There will be no issues if all patches in the patch series are ACKED.

I always love smaller patch series specific to the objective.

Regards...
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-05 12:09                               ` Prafulla Wadaskar
@ 2012-07-05 13:43                                 ` Holger Brunck
  2012-07-05 13:48                                   ` Prafulla Wadaskar
  0 siblings, 1 reply; 40+ messages in thread
From: Holger Brunck @ 2012-07-05 13:43 UTC (permalink / raw)
  To: u-boot

On 07/05/2012 02:09 PM, Prafulla Wadaskar wrote:
>>>
>>> To avoid any further confusion let's keep aside all the past.
>>> 1. Pls post the new patch series that is just targeted for bugfixes
>> and updates (no addition of new boards or drivers)
>>
>> Ok so there are again no inputs to specific patches and no change
>> request for a
>> specific patch (beside the input to the managed switch). What you do
>> is to
>> rephrase a requirement for patch series in general. So there seems to
>> be a rule
>> that if you a) add new boards and b) cleanup and maintain existing
>> boards in the
>> same patch serie the patches needs to be in a special order. Please
>> show me the
>> pointer in u-boot guidlines to this if there is one. I know that such
>> tasks
>> should be seperated  into different patches what this serie defenitely
>> does. If
>> not please discuss this as a new requirement with other custodians as
>> Wolfgang
>> suggested in the same thread. I don't think that such a requirement
>> would be a
>> benefit for board maintainers and custodians, because code maintaining
>> and
>> improvement is always a good thing. Your requirement in practice would
>> mean,
>> stop code maintaining for board series during the time you need to add
>> new boards.
> 
> Dear Holger,
> 
> I think custodian should pull entire patch series if all the patches in the series are ACKED.
> If any patch within patch series is NACKED, the patch series does not stand valid to pull.
> Someone may correct me if I am wrong.
> 

yes of course this is a common rule. But what has this to do with my question above?

>>
>>> 2. You may post anther patch series for addition of new boards which
>> does not have any dependencies (if you have such)
>>> 3. You may post a standalone patch for a switch driver, needed ack
>> from Joe, that might go to u-boot-net.git
>>
>> Ok we can remove this very limited driver from the patch serie.
>>
>> So what we can do is providing a patch serie where the driver for this
>> managed
>> switch is not in. But as far as I understood this does not be in
>> accordance what
>> you requested?
> 
> Ideally, the answer is same as above. There will be no issues if all patches in the patch series are ACKED.
> 

and whats the answer here on my question?

Again. You NAK the simple driver in our own board code. Ok. So the question here
is if I remove the three patches which are concerning this driver. This are:
[U-Boot,v2,05/14] arm/km: correct init of 88e6352 switch in the reset_phy function
[U-Boot,v2,09/14] arm/km: add support for external switch configuration
[U-Boot,v2,10/14] arm/km: enable external switch configuration for kmnusa

And if I resend the remaining eleven patches in the same order as beneath
these are:
[U-Boot,v2,01/14] arm/km: add kmnusa board support
[U-Boot,v2,02/14] arm/km: add kmcoge5un board support
[U-Boot,v2,03/14] arm/km: convert mgcoge3un target to km_kirkwood
[U-Boot,v2,04/14] arm/km: remove portl2.h and use km_kirkwood instead
[U-Boot,v2,06/14] arm/km: enable BOCO2 FPGA download support
[U-Boot,v2,07/14] arm/km: cleanup km_kirkwood boards
[U-Boot,v2,08/14] arm/km: redefine piggy 4 reg names to avoid conflicts
[U-Boot,v2,11/14] arm/km: skip FPGA config when already configured
[U-Boot,v2,12/14] arm/km: support the 2 PCIe fpga resets
[U-Boot,v2,13/14] arm/km: add implementation for read_dip_switch
[U-Boot,v2,14/14] arm/km: remove calls to kw_gpio_* in board_early_init_f

as another patch serie do you accept this?

We already have so many different patch series for this serie on patchwork that
I want to be sure that I don't generate another one which will also be
unacceptable. I think this is already reviewed. But if you have still other
inputs then let me know and refer to the specific patch. Thanks.

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-05 13:43                                 ` Holger Brunck
@ 2012-07-05 13:48                                   ` Prafulla Wadaskar
  2012-07-05 15:44                                     ` Holger Brunck
  0 siblings, 1 reply; 40+ messages in thread
From: Prafulla Wadaskar @ 2012-07-05 13:48 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Holger Brunck [mailto:holger.brunck at keymile.com]
> Sent: 05 July 2012 19:14
> To: Prafulla Wadaskar
> Cc: Wolfgang Denk; u-boot at lists.denx.de; Valentin Longchamp
> Subject: Re: [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un
> target to km_kirkwood
> 
> On 07/05/2012 02:09 PM, Prafulla Wadaskar wrote:
> >>>
> >>> To avoid any further confusion let's keep aside all the past.
> >>> 1. Pls post the new patch series that is just targeted for
> bugfixes
> >> and updates (no addition of new boards or drivers)
> >>
> >> Ok so there are again no inputs to specific patches and no change
> >> request for a
> >> specific patch (beside the input to the managed switch). What you
> do
> >> is to
> >> rephrase a requirement for patch series in general. So there seems
> to
> >> be a rule
> >> that if you a) add new boards and b) cleanup and maintain existing
> >> boards in the
> >> same patch serie the patches needs to be in a special order. Please
> >> show me the
> >> pointer in u-boot guidlines to this if there is one. I know that
> such
> >> tasks
> >> should be seperated  into different patches what this serie
> defenitely
> >> does. If
> >> not please discuss this as a new requirement with other custodians
> as
> >> Wolfgang
> >> suggested in the same thread. I don't think that such a requirement
> >> would be a
> >> benefit for board maintainers and custodians, because code
> maintaining
> >> and
> >> improvement is always a good thing. Your requirement in practice
> would
> >> mean,
> >> stop code maintaining for board series during the time you need to
> add
> >> new boards.
> >
> > Dear Holger,
> >
> > I think custodian should pull entire patch series if all the patches
> in the series are ACKED.
> > If any patch within patch series is NACKED, the patch series does
> not stand valid to pull.
> > Someone may correct me if I am wrong.
> >
> 
> yes of course this is a common rule. But what has this to do with my
> question above?
> 
> >>
> >>> 2. You may post anther patch series for addition of new boards
> which
> >> does not have any dependencies (if you have such)
> >>> 3. You may post a standalone patch for a switch driver, needed ack
> >> from Joe, that might go to u-boot-net.git
> >>
> >> Ok we can remove this very limited driver from the patch serie.
> >>
> >> So what we can do is providing a patch serie where the driver for
> this
> >> managed
> >> switch is not in. But as far as I understood this does not be in
> >> accordance what
> >> you requested?
> >
> > Ideally, the answer is same as above. There will be no issues if all
> patches in the patch series are ACKED.
> >
> 
> and whats the answer here on my question?
> 
> Again. You NAK the simple driver in our own board code. Ok. So the
> question here
> is if I remove the three patches which are concerning this driver.
> This are:
> [U-Boot,v2,05/14] arm/km: correct init of 88e6352 switch in the
> reset_phy function
> [U-Boot,v2,09/14] arm/km: add support for external switch
> configuration
> [U-Boot,v2,10/14] arm/km: enable external switch configuration for
> kmnusa
> 
> And if I resend the remaining eleven patches in the same order as
> beneath
> these are:
> [U-Boot,v2,01/14] arm/km: add kmnusa board support
> [U-Boot,v2,02/14] arm/km: add kmcoge5un board support
> [U-Boot,v2,03/14] arm/km: convert mgcoge3un target to km_kirkwood
> [U-Boot,v2,04/14] arm/km: remove portl2.h and use km_kirkwood instead
> [U-Boot,v2,06/14] arm/km: enable BOCO2 FPGA download support
> [U-Boot,v2,07/14] arm/km: cleanup km_kirkwood boards
> [U-Boot,v2,08/14] arm/km: redefine piggy 4 reg names to avoid
> conflicts
> [U-Boot,v2,11/14] arm/km: skip FPGA config when already configured
> [U-Boot,v2,12/14] arm/km: support the 2 PCIe fpga resets
> [U-Boot,v2,13/14] arm/km: add implementation for read_dip_switch
> [U-Boot,v2,14/14] arm/km: remove calls to kw_gpio_* in
> board_early_init_f
> 
> as another patch serie do you accept this?

YES.

> 
> We already have so many different patch series for this serie on
> patchwork that
> I want to be sure that I don't generate another one which will also be
> unacceptable. I think this is already reviewed. But if you have still
> other
> inputs then let me know and refer to the specific patch. Thanks.

I don't have any further inputs.

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 40+ messages in thread

* [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood
  2012-07-05 13:48                                   ` Prafulla Wadaskar
@ 2012-07-05 15:44                                     ` Holger Brunck
  0 siblings, 0 replies; 40+ messages in thread
From: Holger Brunck @ 2012-07-05 15:44 UTC (permalink / raw)
  To: u-boot

On 07/05/2012 03:48 PM, Prafulla Wadaskar wrote:
>>
>> And if I resend the remaining eleven patches in the same order as
>> beneath
>> these are:
>> [U-Boot,v2,01/14] arm/km: add kmnusa board support
>> [U-Boot,v2,02/14] arm/km: add kmcoge5un board support
>> [U-Boot,v2,03/14] arm/km: convert mgcoge3un target to km_kirkwood
>> [U-Boot,v2,04/14] arm/km: remove portl2.h and use km_kirkwood instead
>> [U-Boot,v2,06/14] arm/km: enable BOCO2 FPGA download support
>> [U-Boot,v2,07/14] arm/km: cleanup km_kirkwood boards
>> [U-Boot,v2,08/14] arm/km: redefine piggy 4 reg names to avoid
>> conflicts
>> [U-Boot,v2,11/14] arm/km: skip FPGA config when already configured
>> [U-Boot,v2,12/14] arm/km: support the 2 PCIe fpga resets
>> [U-Boot,v2,13/14] arm/km: add implementation for read_dip_switch
>> [U-Boot,v2,14/14] arm/km: remove calls to kw_gpio_* in
>> board_early_init_f
>>
>> as another patch serie do you accept this?
> 
> YES.
> 

ok done.

Unfortunately after sending v3 I saw that already in v2 I introduced a bug
during renaming the kwbimage.cfg in the first patch. I already sent a patch wich
corrected this as a v4. But only this patch as v4 because the other ten patches
don't need to be changed, because  of this.

Regards
Holger

^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2012-07-05 15:44 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-13 13:33 [U-Boot] [PATCH v2 00/14] updates for Keymile Marvell boards Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 01/14] arm/km: add kmnusa board support Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 02/14] arm/km: add kmcoge5un " Holger Brunck
2012-07-03  8:04   ` Prafulla Wadaskar
2012-07-03  9:37     ` Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 03/14] arm/km: convert mgcoge3un target to km_kirkwood Holger Brunck
2012-07-03  8:05   ` Prafulla Wadaskar
2012-07-03 10:37     ` Holger Brunck
2012-07-03 11:19       ` Prafulla Wadaskar
2012-07-03 12:31         ` Holger Brunck
2012-07-03 12:38           ` Prafulla Wadaskar
2012-07-03 13:00             ` Holger Brunck
2012-07-03 13:07               ` Prafulla Wadaskar
2012-07-03 13:43                 ` Holger Brunck
2012-07-03 14:39                   ` Prafulla Wadaskar
2012-07-03 18:00                     ` Wolfgang Denk
2012-07-04  9:21                       ` Prafulla Wadaskar
2012-07-05  5:54                         ` Holger Brunck
2012-07-05  6:04                           ` Prafulla Wadaskar
2012-07-05  7:15                             ` Holger Brunck
2012-07-05 12:09                               ` Prafulla Wadaskar
2012-07-05 13:43                                 ` Holger Brunck
2012-07-05 13:48                                   ` Prafulla Wadaskar
2012-07-05 15:44                                     ` Holger Brunck
2012-07-04  8:24                     ` Holger Brunck
2012-07-04  9:23                       ` Prafulla Wadaskar
2012-07-03 14:00                 ` Detlev Zundel
2012-06-13 13:33 ` [U-Boot] [PATCH v2 04/14] arm/km: remove portl2.h and use km_kirkwood instead Holger Brunck
2012-07-03  8:12   ` Prafulla Wadaskar
2012-06-13 13:33 ` [U-Boot] [PATCH v2 05/14] arm/km: correct init of 88e6352 switch in the reset_phy function Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 06/14] arm/km: enable BOCO2 FPGA download support Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 07/14] arm/km: cleanup km_kirkwood boards Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 08/14] arm/km: redefine piggy 4 reg names to avoid conflicts Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 09/14] arm/km: add support for external switch configuration Holger Brunck
2012-06-26 15:31   ` [U-Boot] [PATCH v3 " Valentin Longchamp
2012-06-13 13:33 ` [U-Boot] [PATCH v2 10/14] arm/km: enable external switch configuration for kmnusa Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 11/14] arm/km: skip FPGA config when already configured Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 12/14] arm/km: support the 2 PCIe fpga resets Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 13/14] arm/km: add implementation for read_dip_switch Holger Brunck
2012-06-13 13:33 ` [U-Boot] [PATCH v2 14/14] arm/km: remove calls to kw_gpio_* in board_early_init_f Holger Brunck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.