From 5429f5f30945fa2580862b1d14c56c3f76e7e1e0 Mon Sep 17 00:00:00 2001 From: Luiz Otavio O Souza Date: Thu, 6 Jun 2019 21:25:46 +0000 Subject: [PATCH] Do not overwrite the RGMII bits in the CPU port register of Switch. Fixes the network on Espressobin. The GENERIC kernel now boots over NFS. Sponsored by: Rubicon Communications, LLC (Netgate) --- sys/dev/etherswitch/e6000sw/e6000sw.c | 6 ++++-- sys/dev/etherswitch/e6000sw/e6000swreg.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/dev/etherswitch/e6000sw/e6000sw.c b/sys/dev/etherswitch/e6000sw/e6000sw.c index f6301d0abd1..a065970a016 100644 --- a/sys/dev/etherswitch/e6000sw/e6000sw.c +++ b/sys/dev/etherswitch/e6000sw/e6000sw.c @@ -441,10 +441,12 @@ e6000sw_attach(device_t dev) * Force speed, full-duplex, EEE off and flow-control * on. */ + reg &= ~(PSC_CONTROL_SPD2500 | PSC_CONTROL_ALT_SPD | + PSC_CONTROL_FORCED_EEE); if (e6000sw_is_fixed25port(sc, port)) - reg = PSC_CONTROL_SPD2500; + reg |= PSC_CONTROL_SPD2500; else - reg = PSC_CONTROL_SPD1000; + reg |= PSC_CONTROL_SPD1000; reg |= PSC_CONTROL_FORCED_DPX | PSC_CONTROL_FULLDPX | PSC_CONTROL_FORCED_LINK | PSC_CONTROL_LINK_UP | PSC_CONTROL_FORCED_FC | PSC_CONTROL_FC_ON | diff --git a/sys/dev/etherswitch/e6000sw/e6000swreg.h b/sys/dev/etherswitch/e6000sw/e6000swreg.h index e28e74e190b..a0823cd8952 100644 --- a/sys/dev/etherswitch/e6000sw/e6000swreg.h +++ b/sys/dev/etherswitch/e6000sw/e6000swreg.h @@ -74,6 +74,7 @@ struct atu_opt { #define PSC_CONTROL 0x1 #define PSC_CONTROL_FORCED_SPD (1 << 13) +#define PSC_CONTROL_ALT_SPD (1 << 12) #define PSC_CONTROL_EEE_ON (1 << 9) #define PSC_CONTROL_FORCED_EEE (1 << 8) #define PSC_CONTROL_FC_ON (1 << 7)