Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1529086
| From | sunil.kovvuri@gmail.com |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 1/4] net: thunderx: 80xx BGX0 configuration changes |
| Date | 2016-11-24 10:20 +0100 |
| Message-ID | <sGYme-HF-7@gated-at.bofh.it> (permalink) |
| References | <sGYmd-HF-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Sunil Goutham <sgoutham@cavium.com>
On 80xx only one lane of DLM0 and DLM1 (of BGX0) can be used
, so even though lmac count may be 2 but LMAC1 should use
serdes lane of DLM1. Since it's not possible to distinguish
80xx from 81xx as PCI devid are same, this patch adds this
config support by replying on what firmware configures the
lmacs with.
Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
---
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 050e21f..1d6214b 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -970,11 +970,25 @@ static void bgx_set_lmac_config(struct bgx *bgx, u8 idx)
lmac_set_training(bgx, lmac, lmac->lmacid);
lmac_set_lane2sds(bgx, lmac);
- /* Set LMAC type of other lmac on same DLM i.e LMAC 1/3 */
olmac = &bgx->lmac[idx + 1];
- olmac->lmac_type = lmac->lmac_type;
+ /* Check if other LMAC on the same DLM is already configured by
+ * firmware, if so use the same config or else set as same, as
+ * that of LMAC 0/2.
+ * This check is needed as on 80xx only one lane of each of the
+ * DLM of BGX0 is used, so have to rely on firmware for
+ * distingushing 80xx from 81xx.
+ */
+ cmr_cfg = bgx_reg_read(bgx, idx + 1, BGX_CMRX_CFG);
+ lmac_type = (u8)((cmr_cfg >> 8) & 0x07);
+ lane_to_sds = (u8)(cmr_cfg & 0xFF);
+ if ((lmac_type == 0) && (lane_to_sds == 0xE4)) {
+ olmac->lmac_type = lmac->lmac_type;
+ lmac_set_lane2sds(bgx, olmac);
+ } else {
+ olmac->lmac_type = lmac_type;
+ olmac->lane_to_sds = lane_to_sds;
+ }
lmac_set_training(bgx, olmac, olmac->lmacid);
- lmac_set_lane2sds(bgx, olmac);
}
}
--
2.7.4
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/4] net: thunderx: Support for 80xx, RED, PFC e.t.c sunil.kovvuri@gmail.com - 2016-11-24 10:20 +0100 [PATCH 1/4] net: thunderx: 80xx BGX0 configuration changes sunil.kovvuri@gmail.com - 2016-11-24 10:20 +0100 [PATCH 4/4] net: thunderx: Pause frame support sunil.kovvuri@gmail.com - 2016-11-24 10:40 +0100 [PATCH 2/4] net: thunderx: Add ethtool support for supported ports and link modes. sunil.kovvuri@gmail.com - 2016-11-24 10:40 +0100 [PATCH 3/4] net: thunderx: Configure RED and backpressure levels sunil.kovvuri@gmail.com - 2016-11-24 13:00 +0100
csiph-web