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

The configuration EEPROM should be removed for P1B.

Signed-off-by: Valentin Longchamp <valentin.longch...@keymile.com>
cc: Holger Brunck <holger.bru...@keymile.com>
cc: Prafulla Wadaskar <prafu...@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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to