[Marvell]: Add support for SLM5401-54x device (#1307)
* Marvell's updates for SONiC.201712 & SAI v1.0 * [Platform] Add Marvell's SLM5401-54x for branch 201712
This commit is contained in:
parent
ce3690fc3b
commit
9a66152d4c
@ -0,0 +1,55 @@
|
|||||||
|
# name lanes
|
||||||
|
Ethernet0 0
|
||||||
|
Ethernet1 1
|
||||||
|
Ethernet2 2
|
||||||
|
Ethernet3 3
|
||||||
|
Ethernet4 4
|
||||||
|
Ethernet5 5
|
||||||
|
Ethernet6 6
|
||||||
|
Ethernet7 7
|
||||||
|
Ethernet8 8
|
||||||
|
Ethernet9 9
|
||||||
|
Ethernet10 10
|
||||||
|
Ethernet11 11
|
||||||
|
Ethernet12 12
|
||||||
|
Ethernet13 13
|
||||||
|
Ethernet14 14
|
||||||
|
Ethernet15 15
|
||||||
|
Ethernet16 16
|
||||||
|
Ethernet17 17
|
||||||
|
Ethernet18 18
|
||||||
|
Ethernet19 19
|
||||||
|
Ethernet20 20
|
||||||
|
Ethernet21 21
|
||||||
|
Ethernet22 22
|
||||||
|
Ethernet23 23
|
||||||
|
Ethernet24 24
|
||||||
|
Ethernet25 25
|
||||||
|
Ethernet26 26
|
||||||
|
Ethernet27 27
|
||||||
|
Ethernet28 28
|
||||||
|
Ethernet29 29
|
||||||
|
Ethernet30 30
|
||||||
|
Ethernet31 31
|
||||||
|
Ethernet32 32
|
||||||
|
Ethernet33 33
|
||||||
|
Ethernet34 34
|
||||||
|
Ethernet35 35
|
||||||
|
Ethernet36 36
|
||||||
|
Ethernet37 37
|
||||||
|
Ethernet38 38
|
||||||
|
Ethernet39 39
|
||||||
|
Ethernet40 40
|
||||||
|
Ethernet41 41
|
||||||
|
Ethernet42 42
|
||||||
|
Ethernet43 43
|
||||||
|
Ethernet44 44
|
||||||
|
Ethernet45 45
|
||||||
|
Ethernet46 46
|
||||||
|
Ethernet47 47
|
||||||
|
Ethernet48 48
|
||||||
|
Ethernet49 49
|
||||||
|
Ethernet50 50
|
||||||
|
Ethernet51 51
|
||||||
|
Ethernet52 52
|
||||||
|
Ethernet53 53
|
@ -0,0 +1,2 @@
|
|||||||
|
mode=1
|
||||||
|
hwId=slm5401-54x
|
@ -0,0 +1,3 @@
|
|||||||
|
CONSOLE_PORT=0x2f8
|
||||||
|
CONSOLE_DEV=1
|
||||||
|
CONSOLE_SPEED=115200
|
1074
device/marvell/x86_64-marvell_slm5401_54x-r0/minigraph.xml
Normal file
1074
device/marvell/x86_64-marvell_slm5401_54x-r0/minigraph.xml
Normal file
File diff suppressed because it is too large
Load Diff
@ -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,60 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
try:
|
||||||
|
from sonic_sfp.sfputilbase import sfputilbase
|
||||||
|
except ImportError, e:
|
||||||
|
raise ImportError (str(e) + "- required module not found")
|
||||||
|
|
||||||
|
|
||||||
|
class sfputil(sfputilbase):
|
||||||
|
"""Platform specific sfputil class"""
|
||||||
|
|
||||||
|
port_start = 0
|
||||||
|
port_end = 31
|
||||||
|
ports_in_block = 32
|
||||||
|
|
||||||
|
port_to_eeprom_mapping = {}
|
||||||
|
port_to_i2c_mapping = {
|
||||||
|
9 : 18,
|
||||||
|
10 : 19,
|
||||||
|
11 : 20,
|
||||||
|
12 : 21,
|
||||||
|
1 : 22,
|
||||||
|
2 : 23,
|
||||||
|
3 : 24,
|
||||||
|
4 : 25,
|
||||||
|
6 : 26,
|
||||||
|
5 : 27,
|
||||||
|
8 : 28,
|
||||||
|
7 : 29,
|
||||||
|
13 : 30,
|
||||||
|
14 : 31,
|
||||||
|
15 : 32,
|
||||||
|
16 : 33,
|
||||||
|
17 : 34,
|
||||||
|
18 : 35,
|
||||||
|
19 : 36,
|
||||||
|
20 : 37,
|
||||||
|
25 : 38,
|
||||||
|
26 : 39,
|
||||||
|
27 : 40,
|
||||||
|
28 : 41,
|
||||||
|
29 : 42,
|
||||||
|
30 : 43,
|
||||||
|
31 : 44,
|
||||||
|
32 : 45,
|
||||||
|
21 : 46,
|
||||||
|
22 : 47,
|
||||||
|
23 : 48,
|
||||||
|
24 : 49,
|
||||||
|
}
|
||||||
|
|
||||||
|
_qsfp_ports = range(0, ports_in_block + 1)
|
||||||
|
|
||||||
|
def __init__(self, port_num):
|
||||||
|
# Override port_to_eeprom_mapping for class initialization
|
||||||
|
eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp_eeprom'
|
||||||
|
for x in range(self.port_start, self.port_end + 1):
|
||||||
|
port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x+1])
|
||||||
|
self.port_to_eeprom_mapping[x] = port_eeprom_path
|
||||||
|
sfputilbase.__init__(self, port_num)
|
Loading…
Reference in New Issue
Block a user