[S6000]: Dell S6000 ON related Port numbering and eeprom changes (#2315)

This commit is contained in:
Sudharsan D.G 2018-11-29 11:27:50 +05:30 committed by lguohan
parent 6ddf3cdda0
commit 1467434e4c
3 changed files with 389 additions and 491 deletions

View File

@ -1,33 +1,33 @@
# name lanes alias
Ethernet0 29,30,31,32 fortyGigE0/0
Ethernet4 25,26,27,28 fortyGigE0/4
Ethernet8 37,38,39,40 fortyGigE0/8
Ethernet12 33,34,35,36 fortyGigE0/12
Ethernet16 41,42,43,44 fortyGigE0/16
Ethernet20 45,46,47,48 fortyGigE0/20
Ethernet24 5,6,7,8 fortyGigE0/24
Ethernet28 1,2,3,4 fortyGigE0/28
Ethernet32 9,10,11,12 fortyGigE0/32
Ethernet36 13,14,15,16 fortyGigE0/36
Ethernet40 21,22,23,24 fortyGigE0/40
Ethernet44 17,18,19,20 fortyGigE0/44
Ethernet48 49,50,51,52 fortyGigE0/48
Ethernet52 53,54,55,56 fortyGigE0/52
Ethernet56 61,62,63,64 fortyGigE0/56
Ethernet60 57,58,59,60 fortyGigE0/60
Ethernet64 65,66,67,68 fortyGigE0/64
Ethernet68 69,70,71,72 fortyGigE0/68
Ethernet72 77,78,79,80 fortyGigE0/72
Ethernet76 73,74,75,76 fortyGigE0/76
Ethernet80 105,106,107,108 fortyGigE0/80
Ethernet84 109,110,111,112 fortyGigE0/84
Ethernet88 117,118,119,120 fortyGigE0/88
Ethernet92 113,114,115,116 fortyGigE0/92
Ethernet96 121,122,123,124 fortyGigE0/96
Ethernet100 125,126,127,128 fortyGigE0/100
Ethernet104 85,86,87,88 fortyGigE0/104
Ethernet108 81,82,83,84 fortyGigE0/108
Ethernet112 89,90,91,92 fortyGigE0/112
Ethernet116 93,94,95,96 fortyGigE0/116
Ethernet120 97,98,99,100 fortyGigE0/120
Ethernet124 101,102,103,104 fortyGigE0/124
Ethernet0 25,26,27,28 fortyGigE0/0
Ethernet4 29,30,31,32 fortyGigE0/4
Ethernet8 33,34,35,36 fortyGigE0/8
Ethernet12 37,38,39,40 fortyGigE0/12
Ethernet16 45,46,47,48 fortyGigE0/16
Ethernet20 41,42,43,44 fortyGigE0/20
Ethernet24 1,2,3,4 fortyGigE0/24
Ethernet28 5,6,7,8 fortyGigE0/28
Ethernet32 13,14,15,16 fortyGigE0/32
Ethernet36 9,10,11,12 fortyGigE0/36
Ethernet40 17,18,19,20 fortyGigE0/40
Ethernet44 21,22,23,24 fortyGigE0/44
Ethernet48 53,54,55,56 fortyGigE0/48
Ethernet52 49,50,51,52 fortyGigE0/52
Ethernet56 57,58,59,60 fortyGigE0/56
Ethernet60 61,62,63,64 fortyGigE0/60
Ethernet64 69,70,71,72 fortyGigE0/64
Ethernet68 65,66,67,68 fortyGigE0/68
Ethernet72 73,74,75,76 fortyGigE0/72
Ethernet76 77,78,79,80 fortyGigE0/76
Ethernet80 109,110,111,112 fortyGigE0/80
Ethernet84 105,106,107,108 fortyGigE0/84
Ethernet88 113,114,115,116 fortyGigE0/88
Ethernet92 117,118,119,120 fortyGigE0/92
Ethernet96 125,126,127,128 fortyGigE0/96
Ethernet100 121,122,123,124 fortyGigE0/100
Ethernet104 81,82,83,84 fortyGigE0/104
Ethernet108 85,86,87,88 fortyGigE0/108
Ethernet112 93,94,95,96 fortyGigE0/112
Ethernet116 89,90,91,92 fortyGigE0/116
Ethernet120 101,102,103,104 fortyGigE0/120
Ethernet124 97,98,99,100 fortyGigE0/124

View File

@ -38,49 +38,49 @@ pbmp_xport_xe=0x000007fffffffffffffffffffffffffe
# Ports configuration
# xe0 (40G)
portmap_1=29:40
portmap_1=25:40
xgxs_rx_lane_map_1=0x213
xgxs_tx_lane_map_1=0x213
phy_xaui_rx_polarity_flip_1=0xc
phy_xaui_tx_polarity_flip_1=0x9
serdes_driver_current_lane0_xe0=0x6
serdes_driver_current_lane1_xe0=0x7
serdes_driver_current_lane2_xe0=0x6
serdes_driver_current_lane3_xe0=0x6
serdes_pre_driver_current_lane0_xe0=0x6
serdes_pre_driver_current_lane1_xe0=0x7
serdes_pre_driver_current_lane2_xe0=0x6
serdes_pre_driver_current_lane3_xe0=0x6
serdes_preemphasis_lane0_xe0=0xc2f0
serdes_preemphasis_lane1_xe0=0xd2b0
xgxs_tx_lane_map_1=0x2031
phy_xaui_rx_polarity_flip_1=0xe
phy_xaui_tx_polarity_flip_1=0x2
serdes_driver_current_lane0_xe0=0x5
serdes_driver_current_lane1_xe0=0x5
serdes_driver_current_lane2_xe0=0x5
serdes_driver_current_lane3_xe0=0x5
serdes_pre_driver_current_lane0_xe0=0x5
serdes_pre_driver_current_lane1_xe0=0x5
serdes_pre_driver_current_lane2_xe0=0x5
serdes_pre_driver_current_lane3_xe0=0x5
serdes_preemphasis_lane0_xe0=0xcad0
serdes_preemphasis_lane1_xe0=0xc6e0
serdes_preemphasis_lane2_xe0=0xc6e0
serdes_preemphasis_lane3_xe0=0xc2f0
serdes_preemphasis_lane3_xe0=0xd2b0
# xe1 (40G)
portmap_2=25:40
portmap_2=29:40
xgxs_rx_lane_map_2=0x213
xgxs_tx_lane_map_2=0x2031
phy_xaui_rx_polarity_flip_2=0xe
phy_xaui_tx_polarity_flip_2=0x2
serdes_driver_current_lane0_xe1=0x5
serdes_driver_current_lane1_xe1=0x5
serdes_driver_current_lane2_xe1=0x5
serdes_driver_current_lane3_xe1=0x5
serdes_pre_driver_current_lane0_xe1=0x5
serdes_pre_driver_current_lane1_xe1=0x5
serdes_pre_driver_current_lane2_xe1=0x5
serdes_pre_driver_current_lane3_xe1=0x5
serdes_preemphasis_lane0_xe1=0xcad0
serdes_preemphasis_lane1_xe1=0xc6e0
xgxs_tx_lane_map_2=0x213
phy_xaui_rx_polarity_flip_2=0xc
phy_xaui_tx_polarity_flip_2=0x9
serdes_driver_current_lane0_xe1=0x6
serdes_driver_current_lane1_xe1=0x7
serdes_driver_current_lane2_xe1=0x6
serdes_driver_current_lane3_xe1=0x6
serdes_pre_driver_current_lane0_xe1=0x6
serdes_pre_driver_current_lane1_xe1=0x7
serdes_pre_driver_current_lane2_xe1=0x6
serdes_pre_driver_current_lane3_xe1=0x6
serdes_preemphasis_lane0_xe1=0xc2f0
serdes_preemphasis_lane1_xe1=0xd2b0
serdes_preemphasis_lane2_xe1=0xc6e0
serdes_preemphasis_lane3_xe1=0xd2b0
serdes_preemphasis_lane3_xe1=0xc2f0
# xe2 (40G)
portmap_3=37:40
portmap_3=33:40
xgxs_rx_lane_map_3=0x213
xgxs_tx_lane_map_3=0x1203
phy_xaui_rx_polarity_flip_3=0x3
phy_xaui_tx_polarity_flip_3=0xe
xgxs_tx_lane_map_3=0x132
phy_xaui_rx_polarity_flip_3=0xe
phy_xaui_tx_polarity_flip_3=0x2
serdes_driver_current_lane0_xe2=0x4
serdes_driver_current_lane1_xe2=0x4
serdes_driver_current_lane2_xe2=0x4
@ -89,17 +89,17 @@ serdes_pre_driver_current_lane0_xe2=0x4
serdes_pre_driver_current_lane1_xe2=0x4
serdes_pre_driver_current_lane2_xe2=0x4
serdes_pre_driver_current_lane3_xe2=0x4
serdes_preemphasis_lane0_xe2=0xcad0
serdes_preemphasis_lane1_xe2=0xcad0
serdes_preemphasis_lane2_xe2=0xc2f0
serdes_preemphasis_lane3_xe2=0xc2f0
serdes_preemphasis_lane0_xe2=0xc6e0
serdes_preemphasis_lane1_xe2=0xc6e0
serdes_preemphasis_lane2_xe2=0xc6e0
serdes_preemphasis_lane3_xe2=0xc6e0
# xe3 (40G)
portmap_4=33:40
portmap_4=37:40
xgxs_rx_lane_map_4=0x213
xgxs_tx_lane_map_4=0x132
phy_xaui_rx_polarity_flip_4=0xe
phy_xaui_tx_polarity_flip_4=0x2
xgxs_tx_lane_map_4=0x1203
phy_xaui_rx_polarity_flip_4=0x3
phy_xaui_tx_polarity_flip_4=0xe
serdes_driver_current_lane0_xe3=0x4
serdes_driver_current_lane1_xe3=0x4
serdes_driver_current_lane2_xe3=0x4
@ -108,17 +108,17 @@ serdes_pre_driver_current_lane0_xe3=0x4
serdes_pre_driver_current_lane1_xe3=0x4
serdes_pre_driver_current_lane2_xe3=0x4
serdes_pre_driver_current_lane3_xe3=0x4
serdes_preemphasis_lane0_xe3=0xc6e0
serdes_preemphasis_lane1_xe3=0xc6e0
serdes_preemphasis_lane2_xe3=0xc6e0
serdes_preemphasis_lane3_xe3=0xc6e0
serdes_preemphasis_lane0_xe3=0xcad0
serdes_preemphasis_lane1_xe3=0xcad0
serdes_preemphasis_lane2_xe3=0xc2f0
serdes_preemphasis_lane3_xe3=0xc2f0
# xe4 (40G)
portmap_5=41:40
portmap_5=45:40
xgxs_rx_lane_map_5=0x213
xgxs_tx_lane_map_5=0x3021
phy_xaui_rx_polarity_flip_5=0x3
phy_xaui_tx_polarity_flip_5=0xb
xgxs_tx_lane_map_5=0x213
phy_xaui_rx_polarity_flip_5=0xe
phy_xaui_tx_polarity_flip_5=0x8
serdes_driver_current_lane0_xe4=0x4
serdes_driver_current_lane1_xe4=0x4
serdes_driver_current_lane2_xe4=0x4
@ -127,17 +127,17 @@ serdes_pre_driver_current_lane0_xe4=0x4
serdes_pre_driver_current_lane1_xe4=0x4
serdes_pre_driver_current_lane2_xe4=0x4
serdes_pre_driver_current_lane3_xe4=0x4
serdes_preemphasis_lane0_xe4=0xc6e0
serdes_preemphasis_lane0_xe4=0xc2f0
serdes_preemphasis_lane1_xe4=0xc2f0
serdes_preemphasis_lane2_xe4=0xc2f0
serdes_preemphasis_lane3_xe4=0xcad0
serdes_preemphasis_lane3_xe4=0xc2f0
# xe5 (40G)
portmap_6=45:40
portmap_6=41:40
xgxs_rx_lane_map_6=0x213
xgxs_tx_lane_map_6=0x213
phy_xaui_rx_polarity_flip_6=0xe
phy_xaui_tx_polarity_flip_6=0x8
xgxs_tx_lane_map_6=0x3021
phy_xaui_rx_polarity_flip_6=0x3
phy_xaui_tx_polarity_flip_6=0xb
serdes_driver_current_lane0_xe5=0x4
serdes_driver_current_lane1_xe5=0x4
serdes_driver_current_lane2_xe5=0x4
@ -146,93 +146,93 @@ serdes_pre_driver_current_lane0_xe5=0x4
serdes_pre_driver_current_lane1_xe5=0x4
serdes_pre_driver_current_lane2_xe5=0x4
serdes_pre_driver_current_lane3_xe5=0x4
serdes_preemphasis_lane0_xe5=0xc2f0
serdes_preemphasis_lane0_xe5=0xc6e0
serdes_preemphasis_lane1_xe5=0xc2f0
serdes_preemphasis_lane2_xe5=0xc2f0
serdes_preemphasis_lane3_xe5=0xc2f0
serdes_preemphasis_lane3_xe5=0xcad0
# xe6 (40G)
portmap_7=5:40
portmap_7=1:40
xgxs_rx_lane_map_7=0x213
xgxs_tx_lane_map_7=0x1203
phy_xaui_rx_polarity_flip_7=0xc
phy_xaui_tx_polarity_flip_7=0x1
serdes_driver_current_lane0_xe6=0x4
serdes_driver_current_lane1_xe6=0x4
serdes_driver_current_lane2_xe6=0x4
serdes_driver_current_lane3_xe6=0x4
serdes_pre_driver_current_lane0_xe6=0x4
serdes_pre_driver_current_lane1_xe6=0x4
serdes_pre_driver_current_lane2_xe6=0x4
serdes_pre_driver_current_lane3_xe6=0x4
xgxs_tx_lane_map_7=0x2031
phy_xaui_rx_polarity_flip_7=0xe
phy_xaui_tx_polarity_flip_7=0xd
serdes_driver_current_lane0_xe6=0x5
serdes_driver_current_lane1_xe6=0x5
serdes_driver_current_lane2_xe6=0x5
serdes_driver_current_lane3_xe6=0x5
serdes_pre_driver_current_lane0_xe6=0x5
serdes_pre_driver_current_lane1_xe6=0x5
serdes_pre_driver_current_lane2_xe6=0x5
serdes_pre_driver_current_lane3_xe6=0x5
serdes_preemphasis_lane0_xe6=0xc6e0
serdes_preemphasis_lane1_xe6=0xc6e0
serdes_preemphasis_lane1_xe6=0xcad0
serdes_preemphasis_lane2_xe6=0xc6e0
serdes_preemphasis_lane3_xe6=0xc6e0
serdes_preemphasis_lane3_xe6=0xcad0
# xe7 (40G)
portmap_8=1:40
portmap_8=5:40
xgxs_rx_lane_map_8=0x213
xgxs_tx_lane_map_8=0x2031
phy_xaui_rx_polarity_flip_8=0xe
phy_xaui_tx_polarity_flip_8=0xd
serdes_driver_current_lane0_xe7=0x5
serdes_driver_current_lane1_xe7=0x5
serdes_driver_current_lane2_xe7=0x5
serdes_driver_current_lane3_xe7=0x5
serdes_pre_driver_current_lane0_xe7=0x5
serdes_pre_driver_current_lane1_xe7=0x5
serdes_pre_driver_current_lane2_xe7=0x5
serdes_pre_driver_current_lane3_xe7=0x5
xgxs_tx_lane_map_8=0x1203
phy_xaui_rx_polarity_flip_8=0xc
phy_xaui_tx_polarity_flip_8=0x1
serdes_driver_current_lane0_xe7=0x4
serdes_driver_current_lane1_xe7=0x4
serdes_driver_current_lane2_xe7=0x4
serdes_driver_current_lane3_xe7=0x4
serdes_pre_driver_current_lane0_xe7=0x4
serdes_pre_driver_current_lane1_xe7=0x4
serdes_pre_driver_current_lane2_xe7=0x4
serdes_pre_driver_current_lane3_xe7=0x4
serdes_preemphasis_lane0_xe7=0xc6e0
serdes_preemphasis_lane1_xe7=0xcad0
serdes_preemphasis_lane1_xe7=0xc6e0
serdes_preemphasis_lane2_xe7=0xc6e0
serdes_preemphasis_lane3_xe7=0xcad0
serdes_preemphasis_lane3_xe7=0xc6e0
# xe9 (40G)
portmap_9=9:40
xgxs_rx_lane_map_9=0x3120
xgxs_tx_lane_map_9=0x3021
phy_xaui_rx_polarity_flip_9=0x0
phy_xaui_tx_polarity_flip_9=0x4
serdes_driver_current_lane0_xe8=0x3
# xe8 (40G)
portmap_9=13:40
xgxs_rx_lane_map_9=0x213
xgxs_tx_lane_map_9=0x132
phy_xaui_rx_polarity_flip_9=0xe
phy_xaui_tx_polarity_flip_9=0x0
serdes_driver_current_lane0_xe8=0x2
serdes_driver_current_lane1_xe8=0x3
serdes_driver_current_lane2_xe8=0x3
serdes_driver_current_lane3_xe8=0x3
serdes_pre_driver_current_lane0_xe8=0x3
serdes_driver_current_lane2_xe8=0x2
serdes_driver_current_lane3_xe8=0x2
serdes_pre_driver_current_lane0_xe8=0x2
serdes_pre_driver_current_lane1_xe8=0x3
serdes_pre_driver_current_lane2_xe8=0x3
serdes_pre_driver_current_lane3_xe8=0x3
serdes_preemphasis_lane0_xe8=0xc2f0
serdes_preemphasis_lane1_xe8=0xc6e0
serdes_preemphasis_lane2_xe8=0xbf00
serdes_preemphasis_lane3_xe8=0xc2f0
serdes_pre_driver_current_lane2_xe8=0x2
serdes_pre_driver_current_lane3_xe8=0x2
serdes_preemphasis_lane0_xe8=0xb270
serdes_preemphasis_lane1_xe8=0xbb10
serdes_preemphasis_lane2_xe8=0xb720
serdes_preemphasis_lane3_xe8=0xb720
# xe9 (40G)
portmap_10=13:40
xgxs_rx_lane_map_10=0x213
xgxs_tx_lane_map_10=0x132
phy_xaui_rx_polarity_flip_10=0xe
phy_xaui_tx_polarity_flip_10=0x0
serdes_driver_current_lane0_xe9=0x2
portmap_10=9:40
xgxs_rx_lane_map_10=0x3120
xgxs_tx_lane_map_10=0x3021
phy_xaui_rx_polarity_flip_10=0x0
phy_xaui_tx_polarity_flip_10=0x4
serdes_driver_current_lane0_xe9=0x3
serdes_driver_current_lane1_xe9=0x3
serdes_driver_current_lane2_xe9=0x2
serdes_driver_current_lane3_xe9=0x2
serdes_pre_driver_current_lane0_xe9=0x2
serdes_driver_current_lane2_xe9=0x3
serdes_driver_current_lane3_xe9=0x3
serdes_pre_driver_current_lane0_xe9=0x3
serdes_pre_driver_current_lane1_xe9=0x3
serdes_pre_driver_current_lane2_xe9=0x2
serdes_pre_driver_current_lane3_xe9=0x2
serdes_preemphasis_lane0_xe9=0xb270
serdes_preemphasis_lane1_xe9=0xbb10
serdes_preemphasis_lane2_xe9=0xb720
serdes_preemphasis_lane3_xe9=0xb720
serdes_pre_driver_current_lane2_xe9=0x3
serdes_pre_driver_current_lane3_xe9=0x3
serdes_preemphasis_lane0_xe9=0xc2f0
serdes_preemphasis_lane1_xe9=0xc6e0
serdes_preemphasis_lane2_xe9=0xbf00
serdes_preemphasis_lane3_xe9=0xc2f0
# xe10 (40G)
portmap_11=21:40
xgxs_rx_lane_map_11=0x123
xgxs_tx_lane_map_11=0x1203
phy_xaui_rx_polarity_flip_11=0xc
phy_xaui_tx_polarity_flip_11=0xe
portmap_11=17:40
xgxs_rx_lane_map_11=0x213
xgxs_tx_lane_map_11=0x132
phy_xaui_rx_polarity_flip_11=0xe
phy_xaui_tx_polarity_flip_11=0x0
serdes_driver_current_lane0_xe10=0x2
serdes_driver_current_lane1_xe10=0x2
serdes_driver_current_lane2_xe10=0x2
@ -242,16 +242,16 @@ serdes_pre_driver_current_lane1_xe10=0x2
serdes_pre_driver_current_lane2_xe10=0x2
serdes_pre_driver_current_lane3_xe10=0x2
serdes_preemphasis_lane0_xe10=0xb330
serdes_preemphasis_lane1_xe10=0xb330
serdes_preemphasis_lane2_xe10=0xb330
serdes_preemphasis_lane3_xe10=0xb330
serdes_preemphasis_lane1_xe10=0xbb10
serdes_preemphasis_lane2_xe10=0xbb10
serdes_preemphasis_lane3_xe10=0xbb10
# xe11 (40G)
portmap_12=17:40
xgxs_rx_lane_map_12=0x213
xgxs_tx_lane_map_12=0x132
phy_xaui_rx_polarity_flip_12=0xe
phy_xaui_tx_polarity_flip_12=0x0
portmap_12=21:40
xgxs_rx_lane_map_12=0x123
xgxs_tx_lane_map_12=0x1203
phy_xaui_rx_polarity_flip_12=0xc
phy_xaui_tx_polarity_flip_12=0xe
serdes_driver_current_lane0_xe11=0x2
serdes_driver_current_lane1_xe11=0x2
serdes_driver_current_lane2_xe11=0x2
@ -261,16 +261,16 @@ serdes_pre_driver_current_lane1_xe11=0x2
serdes_pre_driver_current_lane2_xe11=0x2
serdes_pre_driver_current_lane3_xe11=0x2
serdes_preemphasis_lane0_xe11=0xb330
serdes_preemphasis_lane1_xe11=0xbb10
serdes_preemphasis_lane2_xe11=0xbb10
serdes_preemphasis_lane3_xe11=0xbb10
serdes_preemphasis_lane1_xe11=0xb330
serdes_preemphasis_lane2_xe11=0xb330
serdes_preemphasis_lane3_xe11=0xb330
# xe12 (40G)
portmap_13=49:40
xgxs_rx_lane_map_13=0x1302
xgxs_tx_lane_map_13=0x2031
phy_xaui_rx_polarity_flip_13=0xb
phy_xaui_tx_polarity_flip_13=0x3
portmap_13=53:40
xgxs_rx_lane_map_13=0x213
xgxs_tx_lane_map_13=0x231
phy_xaui_rx_polarity_flip_13=0x1
phy_xaui_tx_polarity_flip_13=0x0
serdes_driver_current_lane0_xe12=0x2
serdes_driver_current_lane1_xe12=0x2
serdes_driver_current_lane2_xe12=0x2
@ -279,17 +279,17 @@ serdes_pre_driver_current_lane0_xe12=0x2
serdes_pre_driver_current_lane1_xe12=0x2
serdes_pre_driver_current_lane2_xe12=0x2
serdes_pre_driver_current_lane3_xe12=0x2
serdes_preemphasis_lane0_xe12=0xa760
serdes_preemphasis_lane1_xe12=0xa760
serdes_preemphasis_lane2_xe12=0xa760
serdes_preemphasis_lane3_xe12=0xa760
serdes_preemphasis_lane0_xe12=0xaf40
serdes_preemphasis_lane1_xe12=0xaf40
serdes_preemphasis_lane2_xe12=0xaf40
serdes_preemphasis_lane3_xe12=0xaf40
# xe13 (40G)
portmap_14=53:40
xgxs_rx_lane_map_14=0x213
xgxs_tx_lane_map_14=0x231
phy_xaui_rx_polarity_flip_14=0x1
phy_xaui_tx_polarity_flip_14=0x0
portmap_14=49:40
xgxs_rx_lane_map_14=0x1302
xgxs_tx_lane_map_14=0x2031
phy_xaui_rx_polarity_flip_14=0xb
phy_xaui_tx_polarity_flip_14=0x3
serdes_driver_current_lane0_xe13=0x2
serdes_driver_current_lane1_xe13=0x2
serdes_driver_current_lane2_xe13=0x2
@ -298,55 +298,55 @@ serdes_pre_driver_current_lane0_xe13=0x2
serdes_pre_driver_current_lane1_xe13=0x2
serdes_pre_driver_current_lane2_xe13=0x2
serdes_pre_driver_current_lane3_xe13=0x2
serdes_preemphasis_lane0_xe13=0xaf40
serdes_preemphasis_lane1_xe13=0xaf40
serdes_preemphasis_lane2_xe13=0xaf40
serdes_preemphasis_lane3_xe13=0xaf40
serdes_preemphasis_lane0_xe13=0xa760
serdes_preemphasis_lane1_xe13=0xa760
serdes_preemphasis_lane2_xe13=0xa760
serdes_preemphasis_lane3_xe13=0xa760
# xe14 (40G)
portmap_15=61:40
xgxs_rx_lane_map_15=0x132
xgxs_tx_lane_map_15=0x213
phy_xaui_rx_polarity_flip_15=0x0
portmap_15=57:40
xgxs_rx_lane_map_15=0x213
xgxs_tx_lane_map_15=0x2031
phy_xaui_rx_polarity_flip_15=0x1
phy_xaui_tx_polarity_flip_15=0x0
serdes_driver_current_lane0_xe14=0x2
serdes_driver_current_lane1_xe14=0x2
serdes_driver_current_lane2_xe14=0x2
serdes_driver_current_lane3_xe14=0x2
serdes_pre_driver_current_lane0_xe14=0x2
serdes_pre_driver_current_lane1_xe14=0x2
serdes_pre_driver_current_lane2_xe14=0x2
serdes_pre_driver_current_lane3_xe14=0x2
serdes_driver_current_lane0_xe14=0x1
serdes_driver_current_lane1_xe14=0x1
serdes_driver_current_lane2_xe14=0x1
serdes_driver_current_lane3_xe14=0x1
serdes_pre_driver_current_lane0_xe14=0x1
serdes_pre_driver_current_lane1_xe14=0x1
serdes_pre_driver_current_lane2_xe14=0x1
serdes_pre_driver_current_lane3_xe14=0x1
serdes_preemphasis_lane0_xe14=0xa760
serdes_preemphasis_lane1_xe14=0xa760
serdes_preemphasis_lane2_xe14=0xa760
serdes_preemphasis_lane3_xe14=0xa760
# xe15 (40G)
portmap_16=57:40
xgxs_rx_lane_map_16=0x213
xgxs_tx_lane_map_16=0x2031
phy_xaui_rx_polarity_flip_16=0x1
portmap_16=61:40
xgxs_rx_lane_map_16=0x132
xgxs_tx_lane_map_16=0x213
phy_xaui_rx_polarity_flip_16=0x0
phy_xaui_tx_polarity_flip_16=0x0
serdes_driver_current_lane0_xe15=0x1
serdes_driver_current_lane1_xe15=0x1
serdes_driver_current_lane2_xe15=0x1
serdes_driver_current_lane3_xe15=0x1
serdes_pre_driver_current_lane0_xe15=0x1
serdes_pre_driver_current_lane1_xe15=0x1
serdes_pre_driver_current_lane2_xe15=0x1
serdes_pre_driver_current_lane3_xe15=0x1
serdes_driver_current_lane0_xe15=0x2
serdes_driver_current_lane1_xe15=0x2
serdes_driver_current_lane2_xe15=0x2
serdes_driver_current_lane3_xe15=0x2
serdes_pre_driver_current_lane0_xe15=0x2
serdes_pre_driver_current_lane1_xe15=0x2
serdes_pre_driver_current_lane2_xe15=0x2
serdes_pre_driver_current_lane3_xe15=0x2
serdes_preemphasis_lane0_xe15=0xa760
serdes_preemphasis_lane1_xe15=0xa760
serdes_preemphasis_lane2_xe15=0xa760
serdes_preemphasis_lane3_xe15=0xa760
# xe16 (40G)
portmap_17=65:40
xgxs_rx_lane_map_17=0x132
xgxs_tx_lane_map_17=0x2031
phy_xaui_rx_polarity_flip_17=0x3
phy_xaui_tx_polarity_flip_17=0x9
portmap_17=69:40
xgxs_rx_lane_map_17=0x213
xgxs_tx_lane_map_17=0x2130
phy_xaui_rx_polarity_flip_17=0x1
phy_xaui_tx_polarity_flip_17=0xf
serdes_driver_current_lane0_xe16=0x1
serdes_driver_current_lane1_xe16=0x1
serdes_driver_current_lane2_xe16=0x1
@ -355,17 +355,17 @@ serdes_pre_driver_current_lane0_xe16=0x1
serdes_pre_driver_current_lane1_xe16=0x1
serdes_pre_driver_current_lane2_xe16=0x1
serdes_pre_driver_current_lane3_xe16=0x1
serdes_preemphasis_lane0_xe16=0xa370
serdes_preemphasis_lane1_xe16=0xa370
serdes_preemphasis_lane2_xe16=0xa370
serdes_preemphasis_lane3_xe16=0xa370
serdes_preemphasis_lane0_xe16=0xa760
serdes_preemphasis_lane1_xe16=0xa760
serdes_preemphasis_lane2_xe16=0xa760
serdes_preemphasis_lane3_xe16=0xa760
# xe17 (40G)
portmap_18=69:40
xgxs_rx_lane_map_18=0x213
xgxs_tx_lane_map_18=0x2130
phy_xaui_rx_polarity_flip_18=0x1
phy_xaui_tx_polarity_flip_18=0xf
portmap_18=65:40
xgxs_rx_lane_map_18=0x132
xgxs_tx_lane_map_18=0x2031
phy_xaui_rx_polarity_flip_18=0x3
phy_xaui_tx_polarity_flip_18=0x9
serdes_driver_current_lane0_xe17=0x1
serdes_driver_current_lane1_xe17=0x1
serdes_driver_current_lane2_xe17=0x1
@ -374,17 +374,17 @@ serdes_pre_driver_current_lane0_xe17=0x1
serdes_pre_driver_current_lane1_xe17=0x1
serdes_pre_driver_current_lane2_xe17=0x1
serdes_pre_driver_current_lane3_xe17=0x1
serdes_preemphasis_lane0_xe17=0xa760
serdes_preemphasis_lane1_xe17=0xa760
serdes_preemphasis_lane2_xe17=0xa760
serdes_preemphasis_lane3_xe17=0xa760
serdes_preemphasis_lane0_xe17=0xa370
serdes_preemphasis_lane1_xe17=0xa370
serdes_preemphasis_lane2_xe17=0xa370
serdes_preemphasis_lane3_xe17=0xa370
# xe19 (40G)
portmap_19=77:40
xgxs_rx_lane_map_19=0x123
xgxs_tx_lane_map_19=0x1203
phy_xaui_rx_polarity_flip_19=0x3
phy_xaui_tx_polarity_flip_19=0xe
# xe18 (40G)
portmap_19=73:40
xgxs_rx_lane_map_19=0x213
xgxs_tx_lane_map_19=0x2031
phy_xaui_rx_polarity_flip_19=0x1
phy_xaui_tx_polarity_flip_19=0x0
serdes_driver_current_lane0_xe18=0x2
serdes_driver_current_lane1_xe18=0x2
serdes_driver_current_lane2_xe18=0x2
@ -393,17 +393,17 @@ serdes_pre_driver_current_lane0_xe18=0x2
serdes_pre_driver_current_lane1_xe18=0x2
serdes_pre_driver_current_lane2_xe18=0x2
serdes_pre_driver_current_lane3_xe18=0x2
serdes_preemphasis_lane0_xe18=0xaf40
serdes_preemphasis_lane1_xe18=0xaf40
serdes_preemphasis_lane2_xe18=0xaf40
serdes_preemphasis_lane3_xe18=0xaf40
serdes_preemphasis_lane0_xe18=0xa760
serdes_preemphasis_lane1_xe18=0xa760
serdes_preemphasis_lane2_xe18=0xa760
serdes_preemphasis_lane3_xe18=0xa760
# xe19 (40G)
portmap_20=73:40
xgxs_rx_lane_map_20=0x213
xgxs_tx_lane_map_20=0x2031
phy_xaui_rx_polarity_flip_20=0x1
phy_xaui_tx_polarity_flip_20=0x0
portmap_20=77:40
xgxs_rx_lane_map_20=0x123
xgxs_tx_lane_map_20=0x1203
phy_xaui_rx_polarity_flip_20=0x3
phy_xaui_tx_polarity_flip_20=0xe
serdes_driver_current_lane0_xe19=0x2
serdes_driver_current_lane1_xe19=0x2
serdes_driver_current_lane2_xe19=0x2
@ -412,93 +412,93 @@ serdes_pre_driver_current_lane0_xe19=0x2
serdes_pre_driver_current_lane1_xe19=0x2
serdes_pre_driver_current_lane2_xe19=0x2
serdes_pre_driver_current_lane3_xe19=0x2
serdes_preemphasis_lane0_xe19=0xa760
serdes_preemphasis_lane1_xe19=0xa760
serdes_preemphasis_lane2_xe19=0xa760
serdes_preemphasis_lane3_xe19=0xa760
serdes_preemphasis_lane0_xe19=0xaf40
serdes_preemphasis_lane1_xe19=0xaf40
serdes_preemphasis_lane2_xe19=0xaf40
serdes_preemphasis_lane3_xe19=0xaf40
# xe20 (40G)
portmap_21=105:40
xgxs_rx_lane_map_21=0x1320
xgxs_tx_lane_map_21=0x3021
phy_xaui_rx_polarity_flip_21=0xd
phy_xaui_tx_polarity_flip_21=0xb
portmap_21=109:40
xgxs_rx_lane_map_21=0x132
xgxs_tx_lane_map_21=0x132
phy_xaui_rx_polarity_flip_21=0x8
phy_xaui_tx_polarity_flip_21=0x0
serdes_driver_current_lane0_xe20=0x1
serdes_driver_current_lane1_xe20=0x1
serdes_driver_current_lane2_xe20=0x1
serdes_driver_current_lane3_xe20=0x1
serdes_driver_current_lane3_xe20=0x2
serdes_pre_driver_current_lane0_xe20=0x1
serdes_pre_driver_current_lane1_xe20=0x1
serdes_pre_driver_current_lane2_xe20=0x1
serdes_pre_driver_current_lane3_xe20=0x1
serdes_pre_driver_current_lane3_xe20=0x2
serdes_preemphasis_lane0_xe20=0xb330
serdes_preemphasis_lane1_xe20=0xb330
serdes_preemphasis_lane2_xe20=0xb330
serdes_preemphasis_lane3_xe20=0xb330
serdes_preemphasis_lane3_xe20=0xbff0
# xe21 (40G)
portmap_22=109:40
xgxs_rx_lane_map_22=0x132
xgxs_tx_lane_map_22=0x132
phy_xaui_rx_polarity_flip_22=0x8
phy_xaui_tx_polarity_flip_22=0x0
portmap_22=105:40
xgxs_rx_lane_map_22=0x1320
xgxs_tx_lane_map_22=0x3021
phy_xaui_rx_polarity_flip_22=0xd
phy_xaui_tx_polarity_flip_22=0xb
serdes_driver_current_lane0_xe21=0x1
serdes_driver_current_lane1_xe21=0x1
serdes_driver_current_lane2_xe21=0x1
serdes_driver_current_lane3_xe21=0x2
serdes_driver_current_lane3_xe21=0x1
serdes_pre_driver_current_lane0_xe21=0x1
serdes_pre_driver_current_lane1_xe21=0x1
serdes_pre_driver_current_lane2_xe21=0x1
serdes_pre_driver_current_lane3_xe21=0x2
serdes_pre_driver_current_lane3_xe21=0x1
serdes_preemphasis_lane0_xe21=0xb330
serdes_preemphasis_lane1_xe21=0xb330
serdes_preemphasis_lane2_xe21=0xb330
serdes_preemphasis_lane3_xe21=0xbff0
serdes_preemphasis_lane3_xe21=0xb330
# xe22 (40G)
portmap_23=117:40
xgxs_rx_lane_map_23=0x231
xgxs_tx_lane_map_23=0x1203
phy_xaui_rx_polarity_flip_23=0x3
phy_xaui_tx_polarity_flip_23=0xe
serdes_driver_current_lane0_xe22=0x3
serdes_driver_current_lane1_xe22=0x5
serdes_driver_current_lane2_xe22=0x3
serdes_driver_current_lane3_xe22=0x3
serdes_pre_driver_current_lane0_xe22=0x3
serdes_pre_driver_current_lane1_xe22=0x5
serdes_pre_driver_current_lane2_xe22=0x3
serdes_pre_driver_current_lane3_xe22=0x3
serdes_preemphasis_lane0_xe22=0xc6e0
serdes_preemphasis_lane1_xe22=0xc6e0
serdes_preemphasis_lane2_xe22=0xc6e0
serdes_preemphasis_lane3_xe22=0xc6e0
portmap_23=113:40
xgxs_rx_lane_map_23=0x132
xgxs_tx_lane_map_23=0x132
phy_xaui_rx_polarity_flip_23=0x8
phy_xaui_tx_polarity_flip_23=0x0
serdes_driver_current_lane0_xe22=0x1
serdes_driver_current_lane1_xe22=0x1
serdes_driver_current_lane2_xe22=0x1
serdes_driver_current_lane3_xe22=0x1
serdes_pre_driver_current_lane0_xe22=0x1
serdes_pre_driver_current_lane1_xe22=0x1
serdes_pre_driver_current_lane2_xe22=0x1
serdes_pre_driver_current_lane3_xe22=0x1
serdes_preemphasis_lane0_xe22=0xbb10
serdes_preemphasis_lane1_xe22=0xbb10
serdes_preemphasis_lane2_xe22=0xbb10
serdes_preemphasis_lane3_xe22=0xc2f0
# xe23 (40G)
portmap_24=113:40
xgxs_rx_lane_map_24=0x132
xgxs_tx_lane_map_24=0x132
phy_xaui_rx_polarity_flip_24=0x8
phy_xaui_tx_polarity_flip_24=0x0
serdes_driver_current_lane0_xe23=0x1
serdes_driver_current_lane1_xe23=0x1
serdes_driver_current_lane2_xe23=0x1
serdes_driver_current_lane3_xe23=0x1
serdes_pre_driver_current_lane0_xe23=0x1
serdes_pre_driver_current_lane1_xe23=0x1
serdes_pre_driver_current_lane2_xe23=0x1
serdes_pre_driver_current_lane3_xe23=0x1
serdes_preemphasis_lane0_xe23=0xbb10
serdes_preemphasis_lane1_xe23=0xbb10
serdes_preemphasis_lane2_xe23=0xbb10
serdes_preemphasis_lane3_xe23=0xc2f0
portmap_24=117:40
xgxs_rx_lane_map_24=0x231
xgxs_tx_lane_map_24=0x1203
phy_xaui_rx_polarity_flip_24=0x3
phy_xaui_tx_polarity_flip_24=0xe
serdes_driver_current_lane0_xe23=0x3
serdes_driver_current_lane1_xe23=0x5
serdes_driver_current_lane2_xe23=0x3
serdes_driver_current_lane3_xe23=0x3
serdes_pre_driver_current_lane0_xe23=0x3
serdes_pre_driver_current_lane1_xe23=0x5
serdes_pre_driver_current_lane2_xe23=0x3
serdes_pre_driver_current_lane3_xe23=0x3
serdes_preemphasis_lane0_xe23=0xc6e0
serdes_preemphasis_lane1_xe23=0xc6e0
serdes_preemphasis_lane2_xe23=0xc6e0
serdes_preemphasis_lane3_xe23=0xc6e0
# xe24 (40G)
portmap_25=121:40
xgxs_rx_lane_map_25=0x1320
xgxs_tx_lane_map_25=0x3021
phy_xaui_rx_polarity_flip_25=0xd
phy_xaui_tx_polarity_flip_25=0xb
portmap_25=125:40
xgxs_rx_lane_map_25=0x132
xgxs_tx_lane_map_25=0x132
phy_xaui_rx_polarity_flip_25=0x8
phy_xaui_tx_polarity_flip_25=0x0
serdes_driver_current_lane0_xe24=0x4
serdes_driver_current_lane1_xe24=0x4
serdes_driver_current_lane2_xe24=0x4
@ -510,14 +510,14 @@ serdes_pre_driver_current_lane3_xe24=0x4
serdes_preemphasis_lane0_xe24=0xc6e0
serdes_preemphasis_lane1_xe24=0xc6e0
serdes_preemphasis_lane2_xe24=0xc6e0
serdes_preemphasis_lane3_xe24=0xc6e0
serdes_preemphasis_lane3_xe24=0xcec0
# xe25 (40G)
portmap_26=125:40
xgxs_rx_lane_map_26=0x132
xgxs_tx_lane_map_26=0x132
phy_xaui_rx_polarity_flip_26=0x8
phy_xaui_tx_polarity_flip_26=0x0
portmap_26=121:40
xgxs_rx_lane_map_26=0x1320
xgxs_tx_lane_map_26=0x3021
phy_xaui_rx_polarity_flip_26=0xd
phy_xaui_tx_polarity_flip_26=0xb
serdes_driver_current_lane0_xe25=0x4
serdes_driver_current_lane1_xe25=0x4
serdes_driver_current_lane2_xe25=0x4
@ -529,52 +529,52 @@ serdes_pre_driver_current_lane3_xe25=0x4
serdes_preemphasis_lane0_xe25=0xc6e0
serdes_preemphasis_lane1_xe25=0xc6e0
serdes_preemphasis_lane2_xe25=0xc6e0
serdes_preemphasis_lane3_xe25=0xcec0
serdes_preemphasis_lane3_xe25=0xc6e0
# xe26 (40G)
portmap_27=85:40
xgxs_rx_lane_map_27=0x213
xgxs_tx_lane_map_27=0x1203
phy_xaui_rx_polarity_flip_27=0xc
phy_xaui_tx_polarity_flip_27=0xe
serdes_driver_current_lane0_xe26=0x4
serdes_driver_current_lane1_xe26=0x5
serdes_driver_current_lane2_xe26=0x4
serdes_driver_current_lane3_xe26=0x5
serdes_pre_driver_current_lane0_xe26=0x4
serdes_pre_driver_current_lane1_xe26=0x5
serdes_pre_driver_current_lane2_xe26=0x4
serdes_pre_driver_current_lane3_xe26=0x5
serdes_preemphasis_lane0_xe26=0xc2f0
serdes_preemphasis_lane1_xe26=0xc6e0
serdes_preemphasis_lane2_xe26=0xc6e0
serdes_preemphasis_lane3_xe26=0xc6e0
portmap_27=81:40
xgxs_rx_lane_map_27=0x1320
xgxs_tx_lane_map_27=0x2031
phy_xaui_rx_polarity_flip_27=0x1
phy_xaui_tx_polarity_flip_27=0x2
serdes_driver_current_lane0_xe26=0x2
serdes_driver_current_lane1_xe26=0x2
serdes_driver_current_lane2_xe26=0x2
serdes_driver_current_lane3_xe26=0x2
serdes_pre_driver_current_lane0_xe26=0x2
serdes_pre_driver_current_lane1_xe26=0x2
serdes_pre_driver_current_lane2_xe26=0x2
serdes_pre_driver_current_lane3_xe26=0x2
serdes_preemphasis_lane0_xe26=0xbb10
serdes_preemphasis_lane1_xe26=0xbb10
serdes_preemphasis_lane2_xe26=0xbf00
serdes_preemphasis_lane3_xe26=0xbb10
# xe27 (40G)
portmap_28=81:40
xgxs_rx_lane_map_28=0x1320
xgxs_tx_lane_map_28=0x2031
phy_xaui_rx_polarity_flip_28=0x1
phy_xaui_tx_polarity_flip_28=0x2
serdes_driver_current_lane0_xe27=0x2
serdes_driver_current_lane1_xe27=0x2
serdes_driver_current_lane2_xe27=0x2
serdes_driver_current_lane3_xe27=0x2
serdes_pre_driver_current_lane0_xe27=0x2
serdes_pre_driver_current_lane1_xe27=0x2
serdes_pre_driver_current_lane2_xe27=0x2
serdes_pre_driver_current_lane3_xe27=0x2
serdes_preemphasis_lane0_xe27=0xbb10
serdes_preemphasis_lane1_xe27=0xbb10
serdes_preemphasis_lane2_xe27=0xbf00
serdes_preemphasis_lane3_xe27=0xbb10
portmap_28=85:40
xgxs_rx_lane_map_28=0x213
xgxs_tx_lane_map_28=0x1203
phy_xaui_rx_polarity_flip_28=0xc
phy_xaui_tx_polarity_flip_28=0xe
serdes_driver_current_lane0_xe27=0x4
serdes_driver_current_lane1_xe27=0x5
serdes_driver_current_lane2_xe27=0x4
serdes_driver_current_lane3_xe27=0x5
serdes_pre_driver_current_lane0_xe27=0x4
serdes_pre_driver_current_lane1_xe27=0x5
serdes_pre_driver_current_lane2_xe27=0x4
serdes_pre_driver_current_lane3_xe27=0x5
serdes_preemphasis_lane0_xe27=0xc2f0
serdes_preemphasis_lane1_xe27=0xc6e0
serdes_preemphasis_lane2_xe27=0xc6e0
serdes_preemphasis_lane3_xe27=0xc6e0
# xe29 (40G)
portmap_29=89:40
# xe28 (40G)
portmap_29=93:40
xgxs_rx_lane_map_29=0x1320
xgxs_tx_lane_map_29=0x3021
phy_xaui_rx_polarity_flip_29=0x2
phy_xaui_tx_polarity_flip_29=0xb
xgxs_tx_lane_map_29=0x2031
phy_xaui_rx_polarity_flip_29=0x1
phy_xaui_tx_polarity_flip_29=0x2
serdes_driver_current_lane0_xe28=0x4
serdes_driver_current_lane1_xe28=0x4
serdes_driver_current_lane2_xe28=0x4
@ -583,17 +583,17 @@ serdes_pre_driver_current_lane0_xe28=0x4
serdes_pre_driver_current_lane1_xe28=0x4
serdes_pre_driver_current_lane2_xe28=0x4
serdes_pre_driver_current_lane3_xe28=0x4
serdes_preemphasis_lane0_xe28=0xcad0
serdes_preemphasis_lane1_xe28=0xc6e0
serdes_preemphasis_lane2_xe28=0xc6e0
serdes_preemphasis_lane3_xe28=0xc6e0
serdes_preemphasis_lane0_xe28=0xc2f0
serdes_preemphasis_lane1_xe28=0xc2f0
serdes_preemphasis_lane2_xe28=0xc2f0
serdes_preemphasis_lane3_xe28=0xc2f0
# xe29 (40G)
portmap_30=93:40
portmap_30=89:40
xgxs_rx_lane_map_30=0x1320
xgxs_tx_lane_map_30=0x2031
phy_xaui_rx_polarity_flip_30=0x1
phy_xaui_tx_polarity_flip_30=0x2
xgxs_tx_lane_map_30=0x3021
phy_xaui_rx_polarity_flip_30=0x2
phy_xaui_tx_polarity_flip_30=0xb
serdes_driver_current_lane0_xe29=0x4
serdes_driver_current_lane1_xe29=0x4
serdes_driver_current_lane2_xe29=0x4
@ -602,45 +602,45 @@ serdes_pre_driver_current_lane0_xe29=0x4
serdes_pre_driver_current_lane1_xe29=0x4
serdes_pre_driver_current_lane2_xe29=0x4
serdes_pre_driver_current_lane3_xe29=0x4
serdes_preemphasis_lane0_xe29=0xc2f0
serdes_preemphasis_lane1_xe29=0xc2f0
serdes_preemphasis_lane2_xe29=0xc2f0
serdes_preemphasis_lane3_xe29=0xc2f0
serdes_preemphasis_lane0_xe29=0xcad0
serdes_preemphasis_lane1_xe29=0xc6e0
serdes_preemphasis_lane2_xe29=0xc6e0
serdes_preemphasis_lane3_xe29=0xc6e0
# xe30 (40G)
portmap_31=97:40
xgxs_rx_lane_map_31=0x213
xgxs_tx_lane_map_31=0x2031
phy_xaui_rx_polarity_flip_31=0xc
phy_xaui_tx_polarity_flip_31=0x3
serdes_driver_current_lane0_xe30=0x5
serdes_driver_current_lane1_xe30=0x5
serdes_driver_current_lane2_xe30=0x5
serdes_driver_current_lane3_xe30=0x5
serdes_pre_driver_current_lane0_xe30=0x5
serdes_pre_driver_current_lane1_xe30=0x5
serdes_pre_driver_current_lane2_xe30=0x5
serdes_pre_driver_current_lane3_xe30=0x5
serdes_preemphasis_lane0_xe30=0xcad0
serdes_preemphasis_lane1_xe30=0xcad0
portmap_31=101:40
xgxs_rx_lane_map_31=0x1320
xgxs_tx_lane_map_31=0x1203
phy_xaui_rx_polarity_flip_31=0x1
phy_xaui_tx_polarity_flip_31=0x6
serdes_driver_current_lane0_xe30=0x6
serdes_driver_current_lane1_xe30=0x6
serdes_driver_current_lane2_xe30=0x6
serdes_driver_current_lane3_xe30=0x7
serdes_pre_driver_current_lane0_xe30=0x6
serdes_pre_driver_current_lane1_xe30=0x6
serdes_pre_driver_current_lane2_xe30=0x6
serdes_pre_driver_current_lane3_xe30=0x7
serdes_preemphasis_lane0_xe30=0xcec0
serdes_preemphasis_lane1_xe30=0xcec0
serdes_preemphasis_lane2_xe30=0xcad0
serdes_preemphasis_lane3_xe30=0xcad0
serdes_preemphasis_lane3_xe30=0xc6e0
# xe31 (40G)
portmap_32=101:40
xgxs_rx_lane_map_32=0x1320
xgxs_tx_lane_map_32=0x1203
phy_xaui_rx_polarity_flip_32=0x1
phy_xaui_tx_polarity_flip_32=0x6
serdes_driver_current_lane0_xe31=0x6
serdes_driver_current_lane1_xe31=0x6
serdes_driver_current_lane2_xe31=0x6
serdes_driver_current_lane3_xe31=0x7
serdes_pre_driver_current_lane0_xe31=0x6
serdes_pre_driver_current_lane1_xe31=0x6
serdes_pre_driver_current_lane2_xe31=0x6
serdes_pre_driver_current_lane3_xe31=0x7
serdes_preemphasis_lane0_xe31=0xcec0
serdes_preemphasis_lane1_xe31=0xcec0
portmap_32=97:40
xgxs_rx_lane_map_32=0x213
xgxs_tx_lane_map_32=0x2031
phy_xaui_rx_polarity_flip_32=0xc
phy_xaui_tx_polarity_flip_32=0x3
serdes_driver_current_lane0_xe31=0x5
serdes_driver_current_lane1_xe31=0x5
serdes_driver_current_lane2_xe31=0x5
serdes_driver_current_lane3_xe31=0x5
serdes_pre_driver_current_lane0_xe31=0x5
serdes_pre_driver_current_lane1_xe31=0x5
serdes_pre_driver_current_lane2_xe31=0x5
serdes_pre_driver_current_lane3_xe31=0x5
serdes_preemphasis_lane0_xe31=0xcad0
serdes_preemphasis_lane1_xe31=0xcad0
serdes_preemphasis_lane2_xe31=0xcad0
serdes_preemphasis_lane3_xe31=0xc6e0
serdes_preemphasis_lane3_xe31=0xcad0

View File

@ -10,115 +10,13 @@
#############################################################################
try:
import exceptions
import binascii
import time
import optparse
import warnings
import os
import sys
import subprocess
from sonic_eeprom import eeprom_base
from sonic_eeprom import eeprom_tlvinfo
except ImportError, e:
raise ImportError (str(e) + "- required module not found")
class board(eeprom_tlvinfo.TlvInfoDecoder):
_TLV_INFO_MAX_LEN = 128
_TLV_HDR_ENABLED = 0
_TLV_BLOCK_NUMBER = 3
_TLV_BLOCK_HDR_STRING = "\x3a\x29"
_TLV_CODE_MFG = 0x20
_TLV_CODE_SW = 0x1f
_TLV_CODE_MAC = 0x21
def __init__(self, name, path, cpld_root, ro):
self.eeprom_path = "/sys/class/i2c-adapter/i2c-10/10-0053/eeprom"
super(board, self).__init__(self.eeprom_path, 0, '', True)
def decode_eeprom(self, e):
tlv_block_index = 0
tlv_index = self.eeprom_start
tlv_end = self._TLV_INFO_MAX_LEN
print "TLV Name Len Value"
print "-------------------- --- -----"
while tlv_block_index < self._TLV_BLOCK_NUMBER:
if not self.is_valid_block(e[tlv_index:]):
print "Invalid TLV field starting at EEPROM offset %d" % (tlv_index,)
return
print self.decoder(None, e[tlv_index:tlv_index + ord(e[tlv_index+2])])
if not self.is_valid_block_checksum(e[tlv_index:tlv_index + ord(e[tlv_index+2])]):
print "(*** checksum invalid)"
tlv_index += ord(e[tlv_index+2])
tlv_block_index += 1
def is_valid_block(self, e):
return (len(e) >= 8 and ord(e[2]) <= len(e) and \
e[0:2] == self._TLV_BLOCK_HDR_STRING)
def is_valid_block_checksum(self, e):
crc = self.compute_dell_crc(e[:-2])
tlv_crc = ord(e[-1]) << 8 | ord(e[-2])
return crc == tlv_crc
def decoder(self, s, t):
ret = ""
if ord(t[4]) == self._TLV_CODE_MFG:
name = "PPID"
value = t[6:8] + "-" + t[8:14] + "-" + t[14:19] + "-" + \
t[19:22] + "-" + t[22:26]
ret += "%-20s %3d %s\n" % (name, 20, value)
name = "DPN Rev"
ret += "%-20s %3d %s\n" % (name, 3, t[26:29])
name = "Service Tag"
ret += "%-20s %3d %s\n" % (name, 7, t[29:36])
name = "Part Number"
ret += "%-20s %3d %s\n" % (name, 10, t[36:46])
name = "Part Number Rev"
ret += "%-20s %3d %s\n" % (name, 3, t[46:49])
name = "Mfg Test Results"
ret += "%-20s %3d %s" % (name, 2, t[49:51])
if ord(t[4]) == self._TLV_CODE_SW:
name = "Card ID"
ret += "%-20s %3d 0x%s\n" % (name, 2, t[6:8].encode('hex'))
name = "Module ID"
ret += "%-20s %3d %s" % (name, 2, ord(t[8:9]))
if ord(t[4]) == self._TLV_CODE_MAC:
name = "Base MAC Address"
value = ":".join([binascii.b2a_hex(T) for T in t[6:12]]).upper()
ret += "%-20s %3d %s" % (name, 12, value)
return ret
def is_checksum_valid(self, e):
# Checksum is already calculated before
return (True, 0)
def get_tlv_index(self, e, code):
tlv_index = 0
while tlv_index < len(e):
if not self.is_valid_block(e[tlv_index:]):
return (False, 0)
if ord(e[tlv_index+4]) == code:
if not self.is_valid_block_checksum(e[tlv_index:tlv_index + ord(e[tlv_index+2])]):
print "(*** checksum invalid)"
return (True, tlv_index)
tlv_index += ord(e[tlv_index+2])
return (Flase, 0)
def base_mac_addr(self, e):
(is_valid, t) = self.get_tlv_index(e, self._TLV_CODE_MAC)
if not is_valid:
return "Bad base MAC address"
return ":".join([binascii.b2a_hex(T) for T in e[t:][6:12]]).upper()
def serial_number_str(self, e):
''' Return Service Tag '''
(is_valid, t) = self.get_tlv_index(e, self._TLV_CODE_MFG)
if not is_valid:
return "Bad service tag"
t = e[t:]
return t[29:36]