[device]: Add a new supported device AS7312-54XS (#1821)
* Switch Vendor: Edge-core * Switch SKU: AS7312-54XS * ASIC Vendor: Broadcom * Swich ASIC: Tomahawk+ * Port Configuration: 48x25G + 6x100G * SONiC Image: SONiC-ONIE-Broadcom Signed-off-by: polly_hsu@edge-core.com
This commit is contained in:
parent
5ad7d24d16
commit
043435958c
@ -0,0 +1,55 @@
|
|||||||
|
# name lanes alias index
|
||||||
|
Ethernet0 41 twentyfiveGigE1 0
|
||||||
|
Ethernet1 42 twentyfiveGigE2 1
|
||||||
|
Ethernet2 43 twentyfiveGigE3 2
|
||||||
|
Ethernet3 44 twentyfiveGigE4 3
|
||||||
|
Ethernet4 49 twentyfiveGigE5 4
|
||||||
|
Ethernet5 50 twentyfiveGigE6 5
|
||||||
|
Ethernet6 51 twentyfiveGigE7 6
|
||||||
|
Ethernet7 52 twentyfiveGigE8 7
|
||||||
|
Ethernet8 53 twentyfiveGigE9 8
|
||||||
|
Ethernet9 54 twentyfiveGigE10 9
|
||||||
|
Ethernet10 55 twentyfiveGigE11 10
|
||||||
|
Ethernet11 56 twentyfiveGigE12 11
|
||||||
|
Ethernet12 65 twentyfiveGigE13 12
|
||||||
|
Ethernet13 66 twentyfiveGigE14 13
|
||||||
|
Ethernet14 67 twentyfiveGigE15 14
|
||||||
|
Ethernet15 68 twentyfiveGigE16 15
|
||||||
|
Ethernet16 33 twentyfiveGigE17 16
|
||||||
|
Ethernet17 34 twentyfiveGigE18 17
|
||||||
|
Ethernet18 35 twentyfiveGigE19 18
|
||||||
|
Ethernet19 36 twentyfiveGigE20 19
|
||||||
|
Ethernet20 37 twentyfiveGigE21 20
|
||||||
|
Ethernet21 38 twentyfiveGigE22 21
|
||||||
|
Ethernet22 39 twentyfiveGigE23 22
|
||||||
|
Ethernet23 40 twentyfiveGigE24 23
|
||||||
|
Ethernet24 69 twentyfiveGigE25 24
|
||||||
|
Ethernet25 70 twentyfiveGigE26 25
|
||||||
|
Ethernet26 71 twentyfiveGigE27 26
|
||||||
|
Ethernet27 72 twentyfiveGigE28 27
|
||||||
|
Ethernet28 81 twentyfiveGigE29 28
|
||||||
|
Ethernet29 82 twentyfiveGigE30 29
|
||||||
|
Ethernet30 83 twentyfiveGigE31 30
|
||||||
|
Ethernet31 84 twentyfiveGigE32 31
|
||||||
|
Ethernet32 85 twentyfiveGigE33 32
|
||||||
|
Ethernet33 86 twentyfiveGigE34 33
|
||||||
|
Ethernet34 87 twentyfiveGigE35 34
|
||||||
|
Ethernet35 88 twentyfiveGigE36 35
|
||||||
|
Ethernet36 97 twentyfiveGigE37 36
|
||||||
|
Ethernet37 98 twentyfiveGigE38 37
|
||||||
|
Ethernet38 99 twentyfiveGigE39 38
|
||||||
|
Ethernet39 100 twentyfiveGigE40 39
|
||||||
|
Ethernet40 101 twentyfiveGigE41 40
|
||||||
|
Ethernet41 102 twentyfiveGigE42 41
|
||||||
|
Ethernet42 103 twentyfiveGigE43 42
|
||||||
|
Ethernet43 104 twentyfiveGigE44 43
|
||||||
|
Ethernet44 105 twentyfiveGigE45 44
|
||||||
|
Ethernet45 106 twentyfiveGigE46 45
|
||||||
|
Ethernet46 107 twentyfiveGigE47 46
|
||||||
|
Ethernet47 108 twentyfiveGigE48 47
|
||||||
|
Ethernet48 5,6,7,8 hundredGigE49 48
|
||||||
|
Ethernet52 1,2,3,4 hundredGigE50 52
|
||||||
|
Ethernet56 109,110,111,112 hundredGigE51 56
|
||||||
|
Ethernet60 21,22,23,24 hundredGigE52 60
|
||||||
|
Ethernet64 9,10,11,12 hundredGigE53 64
|
||||||
|
Ethernet68 117,118,119,120 hundredGigE54 68
|
@ -0,0 +1 @@
|
|||||||
|
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th-as7312-48x25G+6x100G.config.bcm
|
@ -0,0 +1,519 @@
|
|||||||
|
# accton_as7312_54x 48x25G+6x100G SDK config
|
||||||
|
os=unix
|
||||||
|
schan_intr_enable=0
|
||||||
|
|
||||||
|
l2_mem_entries=40960
|
||||||
|
l2xmsg_mode=1
|
||||||
|
l3_mem_entries=40960
|
||||||
|
mem_cache_enable=0
|
||||||
|
parity_correction=0
|
||||||
|
parity_enable=0
|
||||||
|
mmu_lossless=1
|
||||||
|
|
||||||
|
pbmp_oversubscribe=0x0407ffc00ff00ff003fc3ffc00200222
|
||||||
|
pbmp_xport_xe=0x0407ffd00ff00ff403fc3ffc00200222
|
||||||
|
|
||||||
|
## FC10 ##
|
||||||
|
dport_map_port_42=1
|
||||||
|
dport_map_port_43=2
|
||||||
|
dport_map_port_44=3
|
||||||
|
dport_map_port_45=4
|
||||||
|
|
||||||
|
## FC12 ##
|
||||||
|
dport_map_port_50=5
|
||||||
|
dport_map_port_51=6
|
||||||
|
dport_map_port_52=7
|
||||||
|
dport_map_port_53=8
|
||||||
|
|
||||||
|
## FC13 ##
|
||||||
|
dport_map_port_54=9
|
||||||
|
dport_map_port_55=10
|
||||||
|
dport_map_port_56=11
|
||||||
|
dport_map_port_57=12
|
||||||
|
|
||||||
|
## FC16 ##
|
||||||
|
dport_map_port_68=13
|
||||||
|
dport_map_port_69=14
|
||||||
|
dport_map_port_70=15
|
||||||
|
dport_map_port_71=16
|
||||||
|
|
||||||
|
## FC8 ##
|
||||||
|
dport_map_port_34=17
|
||||||
|
dport_map_port_35=18
|
||||||
|
dport_map_port_36=19
|
||||||
|
dport_map_port_37=20
|
||||||
|
|
||||||
|
## FC9 ##
|
||||||
|
dport_map_port_38=21
|
||||||
|
dport_map_port_39=22
|
||||||
|
dport_map_port_40=23
|
||||||
|
dport_map_port_41=24
|
||||||
|
|
||||||
|
## FC17 ##
|
||||||
|
dport_map_port_72=25
|
||||||
|
dport_map_port_73=26
|
||||||
|
dport_map_port_74=27
|
||||||
|
dport_map_port_75=28
|
||||||
|
|
||||||
|
## FC20 ##
|
||||||
|
dport_map_port_84=29
|
||||||
|
dport_map_port_85=30
|
||||||
|
dport_map_port_86=31
|
||||||
|
dport_map_port_87=32
|
||||||
|
|
||||||
|
## FC21 ##
|
||||||
|
dport_map_port_88=33
|
||||||
|
dport_map_port_89=34
|
||||||
|
dport_map_port_90=35
|
||||||
|
dport_map_port_91=36
|
||||||
|
|
||||||
|
## FC24 ##
|
||||||
|
dport_map_port_102=37
|
||||||
|
dport_map_port_103=38
|
||||||
|
dport_map_port_104=39
|
||||||
|
dport_map_port_105=40
|
||||||
|
|
||||||
|
## FC25 ##
|
||||||
|
dport_map_port_106=41
|
||||||
|
dport_map_port_107=42
|
||||||
|
dport_map_port_108=43
|
||||||
|
dport_map_port_109=44
|
||||||
|
|
||||||
|
## FC26 ##
|
||||||
|
dport_map_port_110=45
|
||||||
|
dport_map_port_111=46
|
||||||
|
dport_map_port_112=47
|
||||||
|
dport_map_port_113=48
|
||||||
|
|
||||||
|
## FC1 ##
|
||||||
|
dport_map_port_5=49
|
||||||
|
|
||||||
|
## FC0 ##
|
||||||
|
dport_map_port_1=50
|
||||||
|
|
||||||
|
## FC27 ##
|
||||||
|
dport_map_port_114=51
|
||||||
|
|
||||||
|
## FC5 ##
|
||||||
|
dport_map_port_21=52
|
||||||
|
|
||||||
|
## FC2 ##
|
||||||
|
dport_map_port_9=53
|
||||||
|
|
||||||
|
## FC29 ##
|
||||||
|
dport_map_port_122=54
|
||||||
|
|
||||||
|
#for KR
|
||||||
|
#dport_map_port_66=55
|
||||||
|
#dport_map_port_100=56
|
||||||
|
|
||||||
|
/* Port Map */
|
||||||
|
## FC10 ##
|
||||||
|
portmap_42=41:25
|
||||||
|
portmap_43=42:25
|
||||||
|
portmap_44=43:25
|
||||||
|
portmap_45=44:25
|
||||||
|
|
||||||
|
## FC12 ##
|
||||||
|
portmap_50=49:25
|
||||||
|
portmap_51=50:25
|
||||||
|
portmap_52=51:25
|
||||||
|
portmap_53=52:25
|
||||||
|
|
||||||
|
|
||||||
|
## FC13 ##
|
||||||
|
portmap_54=53:25
|
||||||
|
portmap_55=54:25
|
||||||
|
portmap_56=55:25
|
||||||
|
portmap_57=56:25
|
||||||
|
|
||||||
|
## FC16 ##
|
||||||
|
portmap_68=65:25
|
||||||
|
portmap_69=66:25
|
||||||
|
portmap_70=67:25
|
||||||
|
portmap_71=68:25
|
||||||
|
|
||||||
|
|
||||||
|
## FC8 ##
|
||||||
|
portmap_34=33:25
|
||||||
|
portmap_35=34:25
|
||||||
|
portmap_36=35:25
|
||||||
|
portmap_37=36:25
|
||||||
|
|
||||||
|
## FC9 ##
|
||||||
|
portmap_38=37:25
|
||||||
|
portmap_39=38:25
|
||||||
|
portmap_40=39:25
|
||||||
|
portmap_41=40:25
|
||||||
|
|
||||||
|
## FC17 ##
|
||||||
|
portmap_72=69:25
|
||||||
|
portmap_73=70:25
|
||||||
|
portmap_74=71:25
|
||||||
|
portmap_75=72:25
|
||||||
|
|
||||||
|
## FC20 ##
|
||||||
|
portmap_84=81:25
|
||||||
|
portmap_85=82:25
|
||||||
|
portmap_86=83:25
|
||||||
|
portmap_87=84:25
|
||||||
|
|
||||||
|
|
||||||
|
## FC21 ##
|
||||||
|
portmap_88=85:25
|
||||||
|
portmap_89=86:25
|
||||||
|
portmap_90=87:25
|
||||||
|
portmap_91=88:25
|
||||||
|
|
||||||
|
## FC24 ##
|
||||||
|
portmap_102=97:25
|
||||||
|
portmap_103=98:25
|
||||||
|
portmap_104=99:25
|
||||||
|
portmap_105=100:25
|
||||||
|
|
||||||
|
## FC25 ##
|
||||||
|
portmap_106=101:25
|
||||||
|
portmap_107=102:25
|
||||||
|
portmap_108=103:25
|
||||||
|
portmap_109=104:25
|
||||||
|
|
||||||
|
## FC26 ##
|
||||||
|
portmap_110=105:25
|
||||||
|
portmap_111=106:25
|
||||||
|
portmap_112=107:25
|
||||||
|
portmap_113=108:25
|
||||||
|
|
||||||
|
## FC1 ##
|
||||||
|
portmap_5=5:100
|
||||||
|
|
||||||
|
## FC0 ##
|
||||||
|
portmap_1=1:100
|
||||||
|
|
||||||
|
## FC27 ##
|
||||||
|
portmap_114=109:100
|
||||||
|
|
||||||
|
## FC5 ##
|
||||||
|
portmap_21=21:100
|
||||||
|
|
||||||
|
## FC2 ##
|
||||||
|
portmap_9=9:100
|
||||||
|
|
||||||
|
## FC29 ##
|
||||||
|
portmap_122=117:100
|
||||||
|
|
||||||
|
# CPU to MAC
|
||||||
|
# TSC-E management port 1
|
||||||
|
#portmap_66=129:10
|
||||||
|
# TSC-E management port 2
|
||||||
|
#portmap_100=131:10
|
||||||
|
|
||||||
|
xgxs_rx_lane_map_42=0x2310
|
||||||
|
xgxs_rx_lane_map_43=0x2310
|
||||||
|
xgxs_rx_lane_map_44=0x2310
|
||||||
|
xgxs_rx_lane_map_45=0x2310
|
||||||
|
xgxs_rx_lane_map_50=0x3210
|
||||||
|
xgxs_rx_lane_map_51=0x3210
|
||||||
|
xgxs_rx_lane_map_52=0x3210
|
||||||
|
xgxs_rx_lane_map_53=0x3210
|
||||||
|
xgxs_rx_lane_map_54=0x3210
|
||||||
|
xgxs_rx_lane_map_55=0x3210
|
||||||
|
xgxs_rx_lane_map_56=0x3210
|
||||||
|
xgxs_rx_lane_map_57=0x3210
|
||||||
|
xgxs_rx_lane_map_68=0x0123
|
||||||
|
xgxs_rx_lane_map_69=0x0123
|
||||||
|
xgxs_rx_lane_map_70=0x0123
|
||||||
|
xgxs_rx_lane_map_71=0x0123
|
||||||
|
xgxs_rx_lane_map_34=0x0123
|
||||||
|
xgxs_rx_lane_map_35=0x0123
|
||||||
|
xgxs_rx_lane_map_36=0x0123
|
||||||
|
xgxs_rx_lane_map_37=0x0123
|
||||||
|
xgxs_rx_lane_map_38=0x0123
|
||||||
|
xgxs_rx_lane_map_39=0x0123
|
||||||
|
xgxs_rx_lane_map_40=0x0123
|
||||||
|
xgxs_rx_lane_map_41=0x0123
|
||||||
|
xgxs_rx_lane_map_72=0x3210
|
||||||
|
xgxs_rx_lane_map_73=0x3210
|
||||||
|
xgxs_rx_lane_map_74=0x3210
|
||||||
|
xgxs_rx_lane_map_75=0x3210
|
||||||
|
xgxs_rx_lane_map_84=0x1032
|
||||||
|
xgxs_rx_lane_map_85=0x1032
|
||||||
|
xgxs_rx_lane_map_86=0x1032
|
||||||
|
xgxs_rx_lane_map_87=0x1032
|
||||||
|
xgxs_rx_lane_map_88=0x2301
|
||||||
|
xgxs_rx_lane_map_89=0x2301
|
||||||
|
xgxs_rx_lane_map_90=0x2301
|
||||||
|
xgxs_rx_lane_map_91=0x2301
|
||||||
|
xgxs_rx_lane_map_102=0x0123
|
||||||
|
xgxs_rx_lane_map_103=0x0123
|
||||||
|
xgxs_rx_lane_map_104=0x0123
|
||||||
|
xgxs_rx_lane_map_105=0x0123
|
||||||
|
xgxs_rx_lane_map_106=0x3210
|
||||||
|
xgxs_rx_lane_map_107=0x3210
|
||||||
|
xgxs_rx_lane_map_108=0x3210
|
||||||
|
xgxs_rx_lane_map_109=0x3210
|
||||||
|
xgxs_rx_lane_map_110=0x1032
|
||||||
|
xgxs_rx_lane_map_111=0x1032
|
||||||
|
xgxs_rx_lane_map_112=0x1032
|
||||||
|
xgxs_rx_lane_map_113=0x1032
|
||||||
|
xgxs_rx_lane_map_5=0x3210
|
||||||
|
xgxs_rx_lane_map_1=0x3210
|
||||||
|
xgxs_rx_lane_map_114=0x0123
|
||||||
|
xgxs_rx_lane_map_21=0x0213
|
||||||
|
xgxs_rx_lane_map_9=0x3210
|
||||||
|
xgxs_rx_lane_map_122=0x1230
|
||||||
|
|
||||||
|
xgxs_tx_lane_map_42=0x0132
|
||||||
|
xgxs_tx_lane_map_43=0x0132
|
||||||
|
xgxs_tx_lane_map_44=0x0132
|
||||||
|
xgxs_tx_lane_map_45=0x0132
|
||||||
|
xgxs_tx_lane_map_50=0x3210
|
||||||
|
xgxs_tx_lane_map_51=0x3210
|
||||||
|
xgxs_tx_lane_map_52=0x3210
|
||||||
|
xgxs_tx_lane_map_53=0x3210
|
||||||
|
xgxs_tx_lane_map_54=0x3210
|
||||||
|
xgxs_tx_lane_map_55=0x3210
|
||||||
|
xgxs_tx_lane_map_56=0x3210
|
||||||
|
xgxs_tx_lane_map_57=0x3210
|
||||||
|
xgxs_tx_lane_map_68=0x0123
|
||||||
|
xgxs_tx_lane_map_69=0x0123
|
||||||
|
xgxs_tx_lane_map_70=0x0123
|
||||||
|
xgxs_tx_lane_map_71=0x0123
|
||||||
|
xgxs_tx_lane_map_34=0x0123
|
||||||
|
xgxs_tx_lane_map_35=0x0123
|
||||||
|
xgxs_tx_lane_map_36=0x0123
|
||||||
|
xgxs_tx_lane_map_37=0x0123
|
||||||
|
xgxs_tx_lane_map_38=0x0123
|
||||||
|
xgxs_tx_lane_map_39=0x0123
|
||||||
|
xgxs_tx_lane_map_40=0x0123
|
||||||
|
xgxs_tx_lane_map_41=0x0123
|
||||||
|
xgxs_tx_lane_map_72=0x0123
|
||||||
|
xgxs_tx_lane_map_73=0x0123
|
||||||
|
xgxs_tx_lane_map_74=0x0123
|
||||||
|
xgxs_tx_lane_map_75=0x0123
|
||||||
|
xgxs_tx_lane_map_84=0x0123
|
||||||
|
xgxs_tx_lane_map_85=0x0123
|
||||||
|
xgxs_tx_lane_map_86=0x0123
|
||||||
|
xgxs_tx_lane_map_87=0x0123
|
||||||
|
xgxs_tx_lane_map_88=0x2301
|
||||||
|
xgxs_tx_lane_map_89=0x2301
|
||||||
|
xgxs_tx_lane_map_90=0x2301
|
||||||
|
xgxs_tx_lane_map_91=0x2301
|
||||||
|
xgxs_tx_lane_map_102=0x0123
|
||||||
|
xgxs_tx_lane_map_103=0x0123
|
||||||
|
xgxs_tx_lane_map_104=0x0123
|
||||||
|
xgxs_tx_lane_map_105=0x0123
|
||||||
|
xgxs_tx_lane_map_106=0x3210
|
||||||
|
xgxs_tx_lane_map_107=0x3210
|
||||||
|
xgxs_tx_lane_map_108=0x3210
|
||||||
|
xgxs_tx_lane_map_109=0x3210
|
||||||
|
xgxs_tx_lane_map_110=0x1032
|
||||||
|
xgxs_tx_lane_map_111=0x1032
|
||||||
|
xgxs_tx_lane_map_112=0x1032
|
||||||
|
xgxs_tx_lane_map_113=0x1032
|
||||||
|
xgxs_tx_lane_map_5=0x3210
|
||||||
|
xgxs_tx_lane_map_1=0x3210
|
||||||
|
xgxs_tx_lane_map_114=0x0123
|
||||||
|
xgxs_tx_lane_map_21=0x3210
|
||||||
|
xgxs_tx_lane_map_9=0x3210
|
||||||
|
xgxs_tx_lane_map_122=0x3210
|
||||||
|
|
||||||
|
#Polarity RX
|
||||||
|
phy_xaui_rx_polarity_flip_34=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_35=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_36=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_37=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_38=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_39=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_40=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_41=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_84=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_85=0x0
|
||||||
|
phy_xaui_rx_polarity_flip_86=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_87=0x0
|
||||||
|
phy_xaui_rx_polarity_flip_88=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_89=0x0
|
||||||
|
phy_xaui_rx_polarity_flip_90=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_91=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_102=0x0
|
||||||
|
phy_xaui_rx_polarity_flip_103=0x0
|
||||||
|
phy_xaui_rx_polarity_flip_104=0x1
|
||||||
|
phy_xaui_rx_polarity_flip_105=0x0
|
||||||
|
phy_xaui_rx_polarity_flip_122=0xf
|
||||||
|
#Polarity TX
|
||||||
|
phy_xaui_tx_polarity_flip_42=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_43=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_44=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_45=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_34=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_35=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_36=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_37=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_38=0x0
|
||||||
|
phy_xaui_tx_polarity_flip_39=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_40=0x0
|
||||||
|
phy_xaui_tx_polarity_flip_41=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_72=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_73=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_74=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_75=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_84=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_85=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_86=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_87=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_88=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_89=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_90=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_91=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_102=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_103=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_104=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_105=0x1
|
||||||
|
phy_xaui_tx_polarity_flip_122=0xb
|
||||||
|
|
||||||
|
#Driver Current
|
||||||
|
serdes_driver_current_42=0x8
|
||||||
|
serdes_driver_current_43=0x8
|
||||||
|
serdes_driver_current_44=0x8
|
||||||
|
serdes_driver_current_45=0x8
|
||||||
|
serdes_driver_current_50=0x8
|
||||||
|
serdes_driver_current_51=0x8
|
||||||
|
serdes_driver_current_52=0x8
|
||||||
|
serdes_driver_current_53=0x8
|
||||||
|
serdes_driver_current_54=0x8
|
||||||
|
serdes_driver_current_55=0x8
|
||||||
|
serdes_driver_current_56=0x8
|
||||||
|
serdes_driver_current_57=0x8
|
||||||
|
serdes_driver_current_68=0x8
|
||||||
|
serdes_driver_current_69=0x8
|
||||||
|
serdes_driver_current_70=0x8
|
||||||
|
serdes_driver_current_71=0x8
|
||||||
|
serdes_driver_current_34=0x8
|
||||||
|
serdes_driver_current_35=0x8
|
||||||
|
serdes_driver_current_36=0x8
|
||||||
|
serdes_driver_current_37=0x8
|
||||||
|
serdes_driver_current_38=0x8
|
||||||
|
serdes_driver_current_39=0x8
|
||||||
|
serdes_driver_current_40=0x8
|
||||||
|
serdes_driver_current_41=0x8
|
||||||
|
serdes_driver_current_72=0x8
|
||||||
|
serdes_driver_current_73=0x8
|
||||||
|
serdes_driver_current_74=0x8
|
||||||
|
serdes_driver_current_75=0x8
|
||||||
|
serdes_driver_current_84=0x8
|
||||||
|
serdes_driver_current_85=0x8
|
||||||
|
serdes_driver_current_86=0x8
|
||||||
|
serdes_driver_current_87=0x8
|
||||||
|
serdes_driver_current_88=0x8
|
||||||
|
serdes_driver_current_89=0x8
|
||||||
|
serdes_driver_current_90=0x8
|
||||||
|
serdes_driver_current_91=0x8
|
||||||
|
serdes_driver_current_102=0x8
|
||||||
|
serdes_driver_current_103=0x8
|
||||||
|
serdes_driver_current_104=0x8
|
||||||
|
serdes_driver_current_105=0x8
|
||||||
|
serdes_driver_current_106=0x8
|
||||||
|
serdes_driver_current_107=0x8
|
||||||
|
serdes_driver_current_108=0x8
|
||||||
|
serdes_driver_current_109=0x8
|
||||||
|
serdes_driver_current_110=0x8
|
||||||
|
serdes_driver_current_111=0x8
|
||||||
|
serdes_driver_current_112=0x8
|
||||||
|
serdes_driver_current_113=0x8
|
||||||
|
serdes_driver_current_lane0_5=0x8
|
||||||
|
serdes_driver_current_lane1_5=0x8
|
||||||
|
serdes_driver_current_lane2_5=0x8
|
||||||
|
serdes_driver_current_lane3_5=0x8
|
||||||
|
serdes_driver_current_lane0_1=0x8
|
||||||
|
serdes_driver_current_lane1_1=0x8
|
||||||
|
serdes_driver_current_lane2_1=0x8
|
||||||
|
serdes_driver_current_lane3_1=0x8
|
||||||
|
serdes_driver_current_lane0_114=0x8
|
||||||
|
serdes_driver_current_lane1_114=0x8
|
||||||
|
serdes_driver_current_lane2_114=0x8
|
||||||
|
serdes_driver_current_lane3_114=0x8
|
||||||
|
serdes_driver_current_lane0_21=0x8
|
||||||
|
serdes_driver_current_lane1_21=0x8
|
||||||
|
serdes_driver_current_lane2_21=0x8
|
||||||
|
serdes_driver_current_lane3_21=0x8
|
||||||
|
serdes_driver_current_lane0_9=0x8
|
||||||
|
serdes_driver_current_lane1_9=0x8
|
||||||
|
serdes_driver_current_lane2_9=0x8
|
||||||
|
serdes_driver_current_lane3_9=0x8
|
||||||
|
serdes_driver_current_lane0_122=0x8
|
||||||
|
serdes_driver_current_lane1_122=0x8
|
||||||
|
serdes_driver_current_lane2_122=0x8
|
||||||
|
serdes_driver_current_lane3_122=0x8
|
||||||
|
|
||||||
|
#Preemphasis
|
||||||
|
serdes_preemphasis_42=0x264006
|
||||||
|
serdes_preemphasis_43=0x264006
|
||||||
|
serdes_preemphasis_44=0x254106
|
||||||
|
serdes_preemphasis_45=0x254106
|
||||||
|
serdes_preemphasis_50=0x254106
|
||||||
|
serdes_preemphasis_51=0x254106
|
||||||
|
serdes_preemphasis_52=0x254106
|
||||||
|
serdes_preemphasis_53=0x254106
|
||||||
|
serdes_preemphasis_54=0x254106
|
||||||
|
serdes_preemphasis_55=0x254106
|
||||||
|
serdes_preemphasis_56=0x254106
|
||||||
|
serdes_preemphasis_57=0x234306
|
||||||
|
serdes_preemphasis_68=0x234306
|
||||||
|
serdes_preemphasis_69=0x204606
|
||||||
|
serdes_preemphasis_70=0x204606
|
||||||
|
serdes_preemphasis_71=0x204606
|
||||||
|
serdes_preemphasis_34=0x234306
|
||||||
|
serdes_preemphasis_35=0x234306
|
||||||
|
serdes_preemphasis_36=0x234306
|
||||||
|
serdes_preemphasis_37=0x234306
|
||||||
|
serdes_preemphasis_38=0x234306
|
||||||
|
serdes_preemphasis_39=0x234306
|
||||||
|
serdes_preemphasis_40=0x234306
|
||||||
|
serdes_preemphasis_41=0x234306
|
||||||
|
serdes_preemphasis_72=0x1e4806
|
||||||
|
serdes_preemphasis_73=0x1e4806
|
||||||
|
serdes_preemphasis_74=0x1e4806
|
||||||
|
serdes_preemphasis_75=0x1e4806
|
||||||
|
serdes_preemphasis_84=0x1e4806
|
||||||
|
serdes_preemphasis_85=0x1a4c06
|
||||||
|
serdes_preemphasis_86=0x1a4c06
|
||||||
|
serdes_preemphasis_87=0x1b4b06
|
||||||
|
serdes_preemphasis_88=0x1b4b06
|
||||||
|
serdes_preemphasis_89=0x1e4806
|
||||||
|
serdes_preemphasis_90=0x1e4806
|
||||||
|
serdes_preemphasis_91=0x1e4806
|
||||||
|
serdes_preemphasis_102=0x1e4806
|
||||||
|
serdes_preemphasis_103=0x1e4806
|
||||||
|
serdes_preemphasis_104=0x1e4806
|
||||||
|
serdes_preemphasis_105=0x1e4806
|
||||||
|
serdes_preemphasis_106=0x1e4806
|
||||||
|
serdes_preemphasis_107=0x1e4806
|
||||||
|
serdes_preemphasis_108=0x1e4806
|
||||||
|
serdes_preemphasis_109=0x1e4806
|
||||||
|
serdes_preemphasis_110=0x1e4806
|
||||||
|
serdes_preemphasis_111=0x1d4906
|
||||||
|
serdes_preemphasis_112=0x234306
|
||||||
|
serdes_preemphasis_113=0x1f4706
|
||||||
|
serdes_preemphasis_lane0_5=0x294106
|
||||||
|
serdes_preemphasis_lane1_5=0x294106
|
||||||
|
serdes_preemphasis_lane2_5=0x294106
|
||||||
|
serdes_preemphasis_lane3_5=0x294106
|
||||||
|
serdes_preemphasis_lane0_1=0x294106
|
||||||
|
serdes_preemphasis_lane1_1=0x294106
|
||||||
|
serdes_preemphasis_lane2_1=0x294106
|
||||||
|
serdes_preemphasis_lane3_1=0x294106
|
||||||
|
serdes_preemphasis_lane0_114=0x2a4006
|
||||||
|
serdes_preemphasis_lane1_114=0x2a4006
|
||||||
|
serdes_preemphasis_lane2_114=0x2a4006
|
||||||
|
serdes_preemphasis_lane3_114=0x2a4006
|
||||||
|
serdes_preemphasis_lane0_21=0x2c3c08
|
||||||
|
serdes_preemphasis_lane1_21=0x2a4006
|
||||||
|
serdes_preemphasis_lane2_21=0x2a4006
|
||||||
|
serdes_preemphasis_lane3_21=0x2a4006
|
||||||
|
serdes_preemphasis_lane0_9=0x284206
|
||||||
|
serdes_preemphasis_lane1_9=0x284206
|
||||||
|
serdes_preemphasis_lane2_9=0x284206
|
||||||
|
serdes_preemphasis_lane3_9=0x284206
|
||||||
|
serdes_preemphasis_lane0_122=0x283e06
|
||||||
|
serdes_preemphasis_lane1_122=0x283e06
|
||||||
|
serdes_preemphasis_lane2_122=0x283e06
|
||||||
|
serdes_preemphasis_lane3_122=0x294601
|
@ -0,0 +1,3 @@
|
|||||||
|
CONSOLE_PORT=0x2f8
|
||||||
|
CONSOLE_DEV=1
|
||||||
|
CONSOLE_SPEED=115200
|
79
device/accton/x86_64-accton_as7312_54xs-r0/led_proc_init.soc
Executable file
79
device/accton/x86_64-accton_as7312_54xs-r0/led_proc_init.soc
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
# accton_as7312_54x 48x25G+6x100G SDK port LED macro init SOC
|
||||||
|
s CMIC_LEDUP0_DATA_RAM 0
|
||||||
|
s CMIC_LEDUP1_DATA_RAM 0
|
||||||
|
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=63 REMAP_PORT_1=63 REMAP_PORT_2=63 REMAP_PORT_3=63
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=63 REMAP_PORT_5=63 REMAP_PORT_6=63 REMAP_PORT_7=63
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=27 REMAP_PORT_9=26 REMAP_PORT_10=25 REMAP_PORT_11=24
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=63 REMAP_PORT_13=63 REMAP_PORT_14=63 REMAP_PORT_15=63
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=63 REMAP_PORT_17=63 REMAP_PORT_18=63 REMAP_PORT_19=63
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=31 REMAP_PORT_21=30 REMAP_PORT_22=29 REMAP_PORT_23=28
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=15 REMAP_PORT_25=14 REMAP_PORT_26=13 REMAP_PORT_27=12
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=19 REMAP_PORT_29=18 REMAP_PORT_30=17 REMAP_PORT_31=16
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=63 REMAP_PORT_33=63 REMAP_PORT_34=63 REMAP_PORT_35=63
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=63 REMAP_PORT_37=63 REMAP_PORT_38=63 REMAP_PORT_39=63
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=35 REMAP_PORT_41=34 REMAP_PORT_42=33 REMAP_PORT_43=32
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=63 REMAP_PORT_45=63 REMAP_PORT_46=63 REMAP_PORT_47=63
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=23 REMAP_PORT_49=22 REMAP_PORT_50=21 REMAP_PORT_51=20
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4
|
||||||
|
m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0
|
||||||
|
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=19 REMAP_PORT_1=18 REMAP_PORT_2=17 REMAP_PORT_3=16
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=23 REMAP_PORT_5=22 REMAP_PORT_6=21 REMAP_PORT_7=20
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=3 REMAP_PORT_9=2 REMAP_PORT_10=1 REMAP_PORT_11=0
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=63 REMAP_PORT_13=63 REMAP_PORT_14=63 REMAP_PORT_15=63
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=7 REMAP_PORT_17=6 REMAP_PORT_18=5 REMAP_PORT_19=4
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=11 REMAP_PORT_21=10 REMAP_PORT_22=9 REMAP_PORT_23=8
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=63 REMAP_PORT_25=63 REMAP_PORT_26=63 REMAP_PORT_27=63
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=63 REMAP_PORT_29=63 REMAP_PORT_30=63 REMAP_PORT_31=63
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=15 REMAP_PORT_33=14 REMAP_PORT_34=13 REMAP_PORT_35=12
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=27 REMAP_PORT_37=26 REMAP_PORT_38=25 REMAP_PORT_39=24
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=63 REMAP_PORT_41=63 REMAP_PORT_42=63 REMAP_PORT_43=63
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=63 REMAP_PORT_45=63 REMAP_PORT_46=63 REMAP_PORT_47=63
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=31 REMAP_PORT_49=30 REMAP_PORT_50=29 REMAP_PORT_51=28
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=35 REMAP_PORT_53=34 REMAP_PORT_54=33 REMAP_PORT_55=32
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=63 REMAP_PORT_57=63 REMAP_PORT_58=63 REMAP_PORT_59=63
|
||||||
|
m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=63 REMAP_PORT_62=63 REMAP_PORT_63=63
|
||||||
|
|
||||||
|
led 0 stop
|
||||||
|
led 0 prog \
|
||||||
|
02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 7E \
|
||||||
|
02 FB 42 24 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \
|
||||||
|
67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \
|
||||||
|
86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \
|
||||||
|
3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \
|
||||||
|
98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \
|
||||||
|
4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \
|
||||||
|
F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \
|
||||||
|
71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \
|
||||||
|
52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \
|
||||||
|
74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \
|
||||||
|
98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \
|
||||||
|
88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \
|
||||||
|
88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \
|
||||||
|
84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
led 0 start
|
||||||
|
led auto on
|
||||||
|
|
||||||
|
led 1 stop
|
||||||
|
led 1 prog \
|
||||||
|
02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 7E \
|
||||||
|
02 FB 42 24 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \
|
||||||
|
67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \
|
||||||
|
86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \
|
||||||
|
3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \
|
||||||
|
98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \
|
||||||
|
4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \
|
||||||
|
F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \
|
||||||
|
71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \
|
||||||
|
52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \
|
||||||
|
74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \
|
||||||
|
98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \
|
||||||
|
88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \
|
||||||
|
88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \
|
||||||
|
84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
led 1 start
|
||||||
|
led auto on
|
1184
device/accton/x86_64-accton_as7312_54xs-r0/minigraph.xml
Normal file
1184
device/accton/x86_64-accton_as7312_54xs-r0/minigraph.xml
Normal file
File diff suppressed because it is too large
Load Diff
24
device/accton/x86_64-accton_as7312_54xs-r0/plugins/eeprom.py
Normal file
24
device/accton/x86_64-accton_as7312_54xs-r0/plugins/eeprom.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
try:
|
||||||
|
import exceptions
|
||||||
|
import binascii
|
||||||
|
import time
|
||||||
|
import optparse
|
||||||
|
import warnings
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from sonic_eeprom import eeprom_base
|
||||||
|
from sonic_eeprom import eeprom_tlvinfo
|
||||||
|
import subprocess
|
||||||
|
except ImportError, e:
|
||||||
|
raise ImportError (str(e) + "- required module not found")
|
||||||
|
|
||||||
|
class board(eeprom_tlvinfo.TlvInfoDecoder):
|
||||||
|
_TLV_INFO_MAX_LEN = 256
|
||||||
|
def __init__(self, name, path, cpld_root, ro):
|
||||||
|
self.eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom"
|
||||||
|
#Two i2c buses might get flipped order, check them both.
|
||||||
|
if not os.path.exists(self.eeprom_path):
|
||||||
|
self.eeprom_path = "/sys/bus/i2c/devices/0-0057/eeprom"
|
||||||
|
super(board, self).__init__(self.eeprom_path, 0, '', True)
|
@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Accton
|
||||||
|
#
|
||||||
|
# Module contains an implementation of SONiC PSU Base API and
|
||||||
|
# provides the PSUs status which are available in the platform
|
||||||
|
#
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
try:
|
||||||
|
from sonic_psu.psu_base import PsuBase
|
||||||
|
except ImportError as e:
|
||||||
|
raise ImportError (str(e) + "- required module not found")
|
||||||
|
|
||||||
|
class PsuUtil(PsuBase):
|
||||||
|
"""Platform-specific PSUutil class"""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
PsuBase.__init__(self)
|
||||||
|
|
||||||
|
self.psu_path = "/sys/bus/i2c/devices/"
|
||||||
|
self.psu_presence = "/psu_present"
|
||||||
|
self.psu_oper_status = "/psu_power_good"
|
||||||
|
self.psu_mapping = {
|
||||||
|
2: "11-0053",
|
||||||
|
1: "10-0050",
|
||||||
|
}
|
||||||
|
|
||||||
|
def get_num_psus(self):
|
||||||
|
return len(self.psu_mapping)
|
||||||
|
|
||||||
|
def get_psu_status(self, index):
|
||||||
|
if index is None:
|
||||||
|
return False
|
||||||
|
|
||||||
|
status = 0
|
||||||
|
node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status
|
||||||
|
try:
|
||||||
|
with open(node, 'r') as power_status:
|
||||||
|
status = int(power_status.read())
|
||||||
|
except IOError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return status == 1
|
||||||
|
|
||||||
|
def get_psu_presence(self, index):
|
||||||
|
if index is None:
|
||||||
|
return False
|
||||||
|
|
||||||
|
status = 0
|
||||||
|
node = self.psu_path + self.psu_mapping[index] + self.psu_presence
|
||||||
|
try:
|
||||||
|
with open(node, 'r') as presence_status:
|
||||||
|
status = int(presence_status.read())
|
||||||
|
except IOError:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return status == 1
|
215
device/accton/x86_64-accton_as7312_54xs-r0/plugins/sfputil.py
Normal file
215
device/accton/x86_64-accton_as7312_54xs-r0/plugins/sfputil.py
Normal file
@ -0,0 +1,215 @@
|
|||||||
|
# sfputil.py
|
||||||
|
#
|
||||||
|
# Platform-specific SFP transceiver interface for SONiC
|
||||||
|
#
|
||||||
|
|
||||||
|
try:
|
||||||
|
import time
|
||||||
|
from sonic_sfp.sfputilbase import SfpUtilBase
|
||||||
|
except ImportError as e:
|
||||||
|
raise ImportError("%s - required module not found" % str(e))
|
||||||
|
|
||||||
|
|
||||||
|
class SfpUtil(SfpUtilBase):
|
||||||
|
"""Platform-specific SfpUtil class"""
|
||||||
|
|
||||||
|
PORT_START = 0
|
||||||
|
PORT_END = 71
|
||||||
|
PORTS_IN_BLOCK = 72
|
||||||
|
QSFP_PORT_START = 48
|
||||||
|
QSFP_PORT_END = 72
|
||||||
|
|
||||||
|
BASE_VAL_PATH = "/sys/class/i2c-adapter/i2c-{0}/{1}-0050/"
|
||||||
|
|
||||||
|
_port_to_is_present = {}
|
||||||
|
_port_to_lp_mode = {}
|
||||||
|
|
||||||
|
_port_to_eeprom_mapping = {}
|
||||||
|
_cpld_mapping = {
|
||||||
|
0: "4-0060",
|
||||||
|
1: "5-0062",
|
||||||
|
2: "6-0064",
|
||||||
|
}
|
||||||
|
_port_to_i2c_mapping = {
|
||||||
|
0: 18,
|
||||||
|
1: 19,
|
||||||
|
2: 20,
|
||||||
|
3: 21,
|
||||||
|
4: 22,
|
||||||
|
5: 23,
|
||||||
|
6: 24,
|
||||||
|
7: 25,
|
||||||
|
8: 26,
|
||||||
|
9: 27,
|
||||||
|
10: 28,
|
||||||
|
11: 29,
|
||||||
|
12: 30,
|
||||||
|
13: 31,
|
||||||
|
14: 32,
|
||||||
|
15: 33,
|
||||||
|
16: 34,
|
||||||
|
17: 35,
|
||||||
|
18: 36,
|
||||||
|
19: 37,
|
||||||
|
20: 38,
|
||||||
|
21: 39,
|
||||||
|
22: 40,
|
||||||
|
23: 41,
|
||||||
|
24: 42,
|
||||||
|
25: 43,
|
||||||
|
26: 44,
|
||||||
|
27: 45,
|
||||||
|
28: 46,
|
||||||
|
29: 47,
|
||||||
|
30: 48,
|
||||||
|
31: 49,
|
||||||
|
32: 50,
|
||||||
|
33: 51,
|
||||||
|
34: 52,
|
||||||
|
35: 53,
|
||||||
|
36: 54,
|
||||||
|
37: 55,
|
||||||
|
38: 56,
|
||||||
|
39: 57,
|
||||||
|
40: 58,
|
||||||
|
41: 59,
|
||||||
|
42: 60,
|
||||||
|
43: 61,
|
||||||
|
44: 62,
|
||||||
|
45: 63,
|
||||||
|
46: 64,
|
||||||
|
47: 65,
|
||||||
|
48: 66, #QSFP49
|
||||||
|
49: 66,
|
||||||
|
50: 66,
|
||||||
|
51: 66,
|
||||||
|
52: 67, #QSFP50
|
||||||
|
53: 67,
|
||||||
|
54: 67,
|
||||||
|
55: 67,
|
||||||
|
56: 68, #QSFP51
|
||||||
|
57: 68,
|
||||||
|
58: 68,
|
||||||
|
59: 68,
|
||||||
|
60: 69, #QSFP52
|
||||||
|
61: 69,
|
||||||
|
62: 69,
|
||||||
|
63: 69,
|
||||||
|
64: 70, #QSFP53
|
||||||
|
65: 70,
|
||||||
|
66: 70,
|
||||||
|
67: 70,
|
||||||
|
68: 71, #QSFP54
|
||||||
|
69: 71,
|
||||||
|
70: 71,
|
||||||
|
71: 71,
|
||||||
|
}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def port_start(self):
|
||||||
|
return self.PORT_START
|
||||||
|
|
||||||
|
@property
|
||||||
|
def port_end(self):
|
||||||
|
return self.PORT_END
|
||||||
|
|
||||||
|
@property
|
||||||
|
def qsfp_port_start(self):
|
||||||
|
return self.QSFP_PORT_START
|
||||||
|
|
||||||
|
@property
|
||||||
|
def qsfp_port_end(self):
|
||||||
|
return self.QSFP_PORT_END
|
||||||
|
|
||||||
|
@property
|
||||||
|
def qsfp_ports(self):
|
||||||
|
return range(self.QSFP_PORT_START, self.PORTS_IN_BLOCK + 1)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def port_to_eeprom_mapping(self):
|
||||||
|
return self._port_to_eeprom_mapping
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
eeprom_path = '/sys/bus/i2c/devices/{0}-0050/eeprom'
|
||||||
|
for x in range(0, self.port_end+1):
|
||||||
|
self.port_to_eeprom_mapping[x] = eeprom_path.format(
|
||||||
|
self._port_to_i2c_mapping[x])
|
||||||
|
|
||||||
|
SfpUtilBase.__init__(self)
|
||||||
|
|
||||||
|
|
||||||
|
# For port 48~51 are QSFP, here presumed they're all split to 4 lanes.
|
||||||
|
def get_cage_num(self, port_num):
|
||||||
|
cage_num = port_num
|
||||||
|
if (port_num >= self.QSFP_PORT_START):
|
||||||
|
cage_num = (port_num - self.QSFP_PORT_START)/4
|
||||||
|
cage_num = cage_num + self.QSFP_PORT_START
|
||||||
|
|
||||||
|
return cage_num
|
||||||
|
|
||||||
|
# For cage 0~23 and 48~51 are at cpld2, others are at cpld3.
|
||||||
|
def get_cpld_num(self, port_num):
|
||||||
|
cpld_i = 1
|
||||||
|
cage_num = self.get_cage_num(port_num)
|
||||||
|
if (port_num > 23 and port_num < self.QSFP_PORT_START):
|
||||||
|
cpld_i = 2
|
||||||
|
|
||||||
|
if (cage_num >= 52):
|
||||||
|
cpld_i = 2
|
||||||
|
|
||||||
|
return cpld_i
|
||||||
|
|
||||||
|
def get_presence(self, port_num):
|
||||||
|
# Check for invalid port_num
|
||||||
|
if port_num < self.port_start or port_num > self.port_end:
|
||||||
|
return False
|
||||||
|
|
||||||
|
cage_num = self.get_cage_num(port_num)
|
||||||
|
cpld_i = self.get_cpld_num(port_num)
|
||||||
|
|
||||||
|
cpld_ps = self._cpld_mapping[cpld_i]
|
||||||
|
path = "/sys/bus/i2c/devices/{0}/module_present_{1}"
|
||||||
|
port_ps = path.format(cpld_ps, cage_num+1)
|
||||||
|
|
||||||
|
try:
|
||||||
|
val_file = open(port_ps)
|
||||||
|
except IOError as e:
|
||||||
|
print "Error: unable to open file: %s" % str(e)
|
||||||
|
return False
|
||||||
|
|
||||||
|
content = val_file.readline().rstrip()
|
||||||
|
val_file.close()
|
||||||
|
|
||||||
|
# content is a string, either "0" or "1"
|
||||||
|
if content == "1":
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def get_low_power_mode(self, port_num):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def set_low_power_mode(self, port_num, lpmode):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def reset(self, port_num):
|
||||||
|
if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end:
|
||||||
|
return False
|
||||||
|
|
||||||
|
cage_num = self.get_cage_num(port_num)
|
||||||
|
cpld_i = self.get_cpld_num(port_num)
|
||||||
|
cpld_ps = self._cpld_mapping[cpld_i]
|
||||||
|
path = "/sys/bus/i2c/devices/{0}/module_reset_{1}"
|
||||||
|
port_ps = path.format(cpld_ps, cage_num+1)
|
||||||
|
try:
|
||||||
|
reg_file = open(port_ps, 'w')
|
||||||
|
except IOError as e:
|
||||||
|
print "Error: unable to open file: %s" % str(e)
|
||||||
|
return False
|
||||||
|
|
||||||
|
reg_value = '0'
|
||||||
|
|
||||||
|
reg_file.write(reg_value)
|
||||||
|
reg_file.close()
|
||||||
|
|
||||||
|
return True
|
Loading…
Reference in New Issue
Block a user