Skip to content

Commit 0a9d7a2

Browse files
carl-nokiadflynn-NokiaCarl Keene
authored
[devices]: Add support for the Nokia-7215 platform (#5827)
Platform: armhf-nokia_ixs7215_52x-r0 HwSKU: Nokia-7215 ASIC: marvell Port Config: 48x1G + 4x10G Co-authored-by: dflynn <dennis.flynn@nokia.com> Co-authored-by: Carl Keene <keene@nokia.com>
1 parent 3be3f4d commit 0a9d7a2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+4316
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{%- set default_cable = '300m' %}
2+
3+
{%- macro generate_port_lists(PORT_ALL) %}
4+
{# Generate list of ports #}
5+
{% for port_idx in range(0,32) %}
6+
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
7+
{% endfor %}
8+
{%- endmacro %}
9+
10+
{%- macro generate_buffer_pool_and_profiles() %}
11+
"BUFFER_POOL": {
12+
"ingress_lossless_pool": {
13+
"size": "12766208",
14+
"type": "ingress",
15+
"mode": "dynamic"
16+
},
17+
"egress_lossless_pool": {
18+
"size": "12766208",
19+
"type": "egress",
20+
"mode": "static"
21+
},
22+
"egress_lossy_pool": {
23+
"size": "7326924",
24+
"type": "egress",
25+
"mode": "dynamic"
26+
}
27+
},
28+
"BUFFER_PROFILE": {
29+
"ingress_lossy_profile": {
30+
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
31+
"size":"0",
32+
"dynamic_th":"3"
33+
},
34+
"egress_lossless_profile": {
35+
"pool":"[BUFFER_POOL|egress_lossless_pool]",
36+
"size":"0",
37+
"static_th":"12766208"
38+
},
39+
"egress_lossy_profile": {
40+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
41+
"size":"1518",
42+
"dynamic_th":"3"
43+
}
44+
},
45+
{%- endmacro %}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# name lanes alias index speed
2+
Ethernet0 1 Ethernet0 1 1000
3+
Ethernet1 2 Ethernet1 2 1000
4+
Ethernet2 3 Ethernet2 3 1000
5+
Ethernet3 4 Ethernet3 4 1000
6+
Ethernet4 5 Ethernet4 5 1000
7+
Ethernet5 6 Ethernet5 6 1000
8+
Ethernet6 7 Ethernet6 7 1000
9+
Ethernet7 8 Ethernet7 8 1000
10+
Ethernet8 9 Ethernet8 9 1000
11+
Ethernet9 10 Ethernet9 10 1000
12+
Ethernet10 11 Ethernet10 11 1000
13+
Ethernet11 12 Ethernet11 12 1000
14+
Ethernet12 13 Ethernet12 13 1000
15+
Ethernet13 14 Ethernet13 14 1000
16+
Ethernet14 15 Ethernet14 15 1000
17+
Ethernet15 16 Ethernet15 16 1000
18+
Ethernet16 17 Ethernet16 17 1000
19+
Ethernet17 18 Ethernet17 18 1000
20+
Ethernet18 19 Ethernet18 19 1000
21+
Ethernet19 20 Ethernet19 20 1000
22+
Ethernet20 21 Ethernet20 21 1000
23+
Ethernet21 22 Ethernet21 22 1000
24+
Ethernet22 23 Ethernet22 23 1000
25+
Ethernet23 24 Ethernet23 24 1000
26+
Ethernet24 25 Ethernet24 25 1000
27+
Ethernet25 26 Ethernet25 26 1000
28+
Ethernet26 27 Ethernet26 27 1000
29+
Ethernet27 28 Ethernet27 28 1000
30+
Ethernet28 29 Ethernet28 29 1000
31+
Ethernet29 30 Ethernet29 30 1000
32+
Ethernet30 31 Ethernet30 31 1000
33+
Ethernet31 32 Ethernet31 32 1000
34+
Ethernet32 33 Ethernet32 33 1000
35+
Ethernet33 34 Ethernet33 34 1000
36+
Ethernet34 35 Ethernet34 35 1000
37+
Ethernet35 36 Ethernet35 36 1000
38+
Ethernet36 37 Ethernet36 37 1000
39+
Ethernet37 38 Ethernet37 38 1000
40+
Ethernet38 39 Ethernet38 39 1000
41+
Ethernet39 40 Ethernet39 40 1000
42+
Ethernet40 41 Ethernet40 41 1000
43+
Ethernet41 42 Ethernet41 42 1000
44+
Ethernet42 43 Ethernet42 43 1000
45+
Ethernet43 44 Ethernet43 44 1000
46+
Ethernet44 45 Ethernet44 45 1000
47+
Ethernet45 46 Ethernet45 46 1000
48+
Ethernet46 47 Ethernet46 47 1000
49+
Ethernet47 48 Ethernet47 48 1000
50+
Ethernet48 49 Ethernet48 49 10000
51+
Ethernet49 50 Ethernet49 50 10000
52+
Ethernet50 51 Ethernet50 51 10000
53+
Ethernet51 52 Ethernet51 52 10000
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# name lanes alias index speed
2+
Ethernet0 1 Ethernet0 1 1000
3+
Ethernet1 2 Ethernet1 2 1000
4+
Ethernet2 3 Ethernet2 3 1000
5+
Ethernet3 4 Ethernet3 4 1000
6+
Ethernet4 5 Ethernet4 5 1000
7+
Ethernet5 6 Ethernet5 6 1000
8+
Ethernet6 7 Ethernet6 7 1000
9+
Ethernet7 8 Ethernet7 8 1000
10+
Ethernet8 9 Ethernet8 9 1000
11+
Ethernet9 10 Ethernet9 10 1000
12+
Ethernet10 11 Ethernet10 11 1000
13+
Ethernet11 12 Ethernet11 12 1000
14+
Ethernet12 13 Ethernet12 13 1000
15+
Ethernet13 14 Ethernet13 14 1000
16+
Ethernet14 15 Ethernet14 15 1000
17+
Ethernet15 16 Ethernet15 16 1000
18+
Ethernet16 17 Ethernet16 17 1000
19+
Ethernet17 18 Ethernet17 18 1000
20+
Ethernet18 19 Ethernet18 19 1000
21+
Ethernet19 20 Ethernet19 20 1000
22+
Ethernet20 21 Ethernet20 21 1000
23+
Ethernet21 22 Ethernet21 22 1000
24+
Ethernet22 23 Ethernet22 23 1000
25+
Ethernet23 24 Ethernet23 24 1000
26+
Ethernet24 25 Ethernet24 25 1000
27+
Ethernet25 26 Ethernet25 26 1000
28+
Ethernet26 27 Ethernet26 27 1000
29+
Ethernet27 28 Ethernet27 28 1000
30+
Ethernet28 29 Ethernet28 29 1000
31+
Ethernet29 30 Ethernet29 30 1000
32+
Ethernet30 31 Ethernet30 31 1000
33+
Ethernet31 32 Ethernet31 32 1000
34+
Ethernet32 33 Ethernet32 33 1000
35+
Ethernet33 34 Ethernet33 34 1000
36+
Ethernet34 35 Ethernet34 35 1000
37+
Ethernet35 36 Ethernet35 36 1000
38+
Ethernet36 37 Ethernet36 37 1000
39+
Ethernet37 38 Ethernet37 38 1000
40+
Ethernet38 39 Ethernet38 39 1000
41+
Ethernet39 40 Ethernet39 40 1000
42+
Ethernet40 41 Ethernet40 41 1000
43+
Ethernet41 42 Ethernet41 42 1000
44+
Ethernet42 43 Ethernet42 43 1000
45+
Ethernet43 44 Ethernet43 44 1000
46+
Ethernet44 45 Ethernet44 45 1000
47+
Ethernet45 46 Ethernet45 46 1000
48+
Ethernet46 47 Ethernet46 47 1000
49+
Ethernet48 49 Ethernet48 49 10000
50+
Ethernet49 50 Ethernet49 50 10000
51+
Ethernet50 51 Ethernet50 51 10000
52+
Ethernet51 52 Ethernet51 52 10000
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# name lanes alias index speed
2+
Ethernet0 1 Ethernet0 1 1000
3+
Ethernet1 2 Ethernet1 2 1000
4+
Ethernet2 3 Ethernet2 3 1000
5+
Ethernet3 4 Ethernet3 4 1000
6+
Ethernet4 5 Ethernet4 5 1000
7+
Ethernet5 6 Ethernet5 6 1000
8+
Ethernet6 7 Ethernet6 7 1000
9+
Ethernet7 8 Ethernet7 8 1000
10+
Ethernet8 9 Ethernet8 9 1000
11+
Ethernet9 10 Ethernet9 10 1000
12+
Ethernet10 11 Ethernet10 11 1000
13+
Ethernet11 12 Ethernet11 12 1000
14+
Ethernet12 13 Ethernet12 13 1000
15+
Ethernet13 14 Ethernet13 14 1000
16+
Ethernet14 15 Ethernet14 15 1000
17+
Ethernet15 16 Ethernet15 16 1000
18+
Ethernet16 17 Ethernet16 17 1000
19+
Ethernet17 18 Ethernet17 18 1000
20+
Ethernet18 19 Ethernet18 19 1000
21+
Ethernet19 20 Ethernet19 20 1000
22+
Ethernet20 21 Ethernet20 21 1000
23+
Ethernet21 22 Ethernet21 22 1000
24+
Ethernet22 23 Ethernet22 23 1000
25+
Ethernet23 24 Ethernet23 24 1000
26+
Ethernet24 25 Ethernet24 25 1000
27+
Ethernet25 26 Ethernet25 26 1000
28+
Ethernet26 27 Ethernet26 27 1000
29+
Ethernet27 28 Ethernet27 28 1000
30+
Ethernet28 29 Ethernet28 29 1000
31+
Ethernet29 30 Ethernet29 30 1000
32+
Ethernet30 31 Ethernet30 31 1000
33+
Ethernet31 32 Ethernet31 32 1000
34+
Ethernet32 33 Ethernet32 33 1000
35+
Ethernet33 34 Ethernet33 34 1000
36+
Ethernet34 35 Ethernet34 35 1000
37+
Ethernet35 36 Ethernet35 36 1000
38+
Ethernet36 37 Ethernet36 37 1000
39+
Ethernet37 38 Ethernet37 38 1000
40+
Ethernet38 39 Ethernet38 39 1000
41+
Ethernet39 40 Ethernet39 40 1000
42+
Ethernet40 41 Ethernet40 41 1000
43+
Ethernet41 42 Ethernet41 42 1000
44+
Ethernet42 43 Ethernet42 43 1000
45+
Ethernet43 44 Ethernet43 44 1000
46+
Ethernet44 45 Ethernet44 45 1000
47+
Ethernet45 46 Ethernet45 46 1000
48+
Ethernet46 47 Ethernet46 47 1000
49+
Ethernet47 48 Ethernet47 48 1000
50+
Ethernet48 49 Ethernet48 49 10000
51+
Ethernet49 50 Ethernet49 50 10000
52+
Ethernet50 51 Ethernet50 51 10000
53+
Ethernet51 52 Ethernet51 52 10000
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
switchMacAddress=XX:XX:XX:XX:XX:XX
2+
ledMode=ac3x97bits
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
switchMacAddress=XX:XX:XX:XX:XX:XX
2+
inbandMgmtPortNum=48
3+
ledMode=ac3x97bits
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
switchMacAddress=XX:XX:XX:XX:XX:XX
2+
ledMode=ac3x97bits
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
mode=1
2+
hwId=et6448m
3+
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/profile.ini
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Nokia-7215 l2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"chassis": {
3+
"7215 IXS-T1": {
4+
"component": {
5+
"U-Boot": { },
6+
"System-CPLD": { }
7+
}
8+
}
9+
}
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
try:
2+
import os
3+
from sonic_eeprom import eeprom_tlvinfo
4+
except ImportError as e:
5+
raise ImportError(str(e) + "- required module not found")
6+
7+
8+
class board(eeprom_tlvinfo.TlvInfoDecoder):
9+
10+
def __init__(self, name, path, cpld_root, ro):
11+
self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0053/eeprom"
12+
if not os.path.exists(self.eeprom_path):
13+
os.system("echo 24c02 0x53 > /sys/class/i2c-adapter/i2c-0/new_device")
14+
super(board, self).__init__(self.eeprom_path, 0, '', True)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#
2+
# led_control.py
3+
#
4+
# Platform-specific LED control functionality for SONiC
5+
#
6+
7+
try:
8+
from sonic_led.led_control_base import LedControlBase
9+
import os
10+
import time
11+
import syslog
12+
import sonic_platform.platform
13+
import sonic_platform.chassis
14+
except ImportError as e:
15+
raise ImportError(str(e) + " - required module not found")
16+
17+
smbus_present = 1
18+
19+
try:
20+
import smbus
21+
except ImportError as e:
22+
smbus_present = 0
23+
24+
25+
def DBG_PRINT(str):
26+
syslog.openlog("nokia-led")
27+
syslog.syslog(syslog.LOG_INFO, str)
28+
syslog.closelog()
29+
30+
31+
class LedControl(LedControlBase):
32+
"""Platform specific LED control class"""
33+
34+
# Constructor
35+
def __init__(self):
36+
self.chassis = sonic_platform.platform.Platform().get_chassis()
37+
self._initDefaultConfig()
38+
39+
def _initDefaultConfig(self):
40+
# For the D1 box the port leds are controlled by Trident3 LED program
41+
# The fan tray leds will be managed with the new thermalctl daemon / chassis class based API
42+
# leaving only the system leds to be done old style
43+
DBG_PRINT("starting system leds")
44+
self._initSystemLed()
45+
DBG_PRINT(" led done")
46+
47+
def _set_i2c_register(self, reg_file, value):
48+
# On successful write, the value read will be written on
49+
# reg_name and on failure returns 'ERR'
50+
rv = 'ERR'
51+
52+
if (not os.path.isfile(reg_file)):
53+
return rv
54+
try:
55+
with open(reg_file, 'w') as fd:
56+
rv = fd.write(str(value))
57+
except Exception as e:
58+
rv = 'ERR'
59+
60+
return rv
61+
62+
def _initSystemLed(self):
63+
# Front Panel System LEDs setting
64+
oldfan = 0xf
65+
oldpsu = 0xf
66+
67+
# Write sys led
68+
if smbus_present == 0:
69+
DBG_PRINT(" PMON LED SET ERROR -> smbus present = 0 ")
70+
else:
71+
bus = smbus.SMBus(0)
72+
DEVICE_ADDRESS = 0x41
73+
DEVICEREG = 0x7
74+
bus.write_byte_data(DEVICE_ADDRESS, DEVICEREG, 0x02)
75+
DBG_PRINT(" System LED set O.K. ")
76+
77+
while True:
78+
# Front Panel FAN Panel LED setting in register 0x08
79+
if (self.chassis.get_fan(0).get_status() == self.chassis.get_fan(1).get_status() == True):
80+
if oldfan != 0x1:
81+
if (os.path.isfile("/sys/class/gpio/fanLedAmber/value")):
82+
self._set_i2c_register("/sys/class/gpio/fanLedAmber/value", 0)
83+
self._set_i2c_register("/sys/class/gpio/fanLedGreen/value", 1)
84+
oldfan = 0x1
85+
else:
86+
if oldfan != 0x0:
87+
if (os.path.isfile("/sys/class/gpio/fanLedGreen/value")):
88+
self._set_i2c_register("/sys/class/gpio/fanLedGreen/value", 0)
89+
self._set_i2c_register("/sys/class/gpio/fanLedAmber/value", 1)
90+
oldfan = 0x0
91+
92+
# Front Panel PSU Panel LED setting in register 0x09
93+
if (self.chassis.get_psu(0).get_status() == self.chassis.get_psu(1).get_status() == True):
94+
if oldpsu != 0x1:
95+
if (os.path.isfile("/sys/class/gpio/psuLedAmber/value")):
96+
self._set_i2c_register("/sys/class/gpio/psuLedAmber/value", 0)
97+
self._set_i2c_register("/sys/class/gpio/psuLedGreen/value", 1)
98+
oldpsu = 0x1
99+
else:
100+
if oldpsu != 0x0:
101+
if (os.path.isfile("/sys/class/gpio/psuLedGreen/value")):
102+
self._set_i2c_register("/sys/class/gpio/psuLedGreen/value", 0)
103+
self._set_i2c_register("/sys/class/gpio/psuLedAmber/value", 1)
104+
oldpsu = 0x0
105+
time.sleep(6)
106+
107+
# Helper method to map SONiC port name to index
108+
def _port_name_to_index(self, port_name):
109+
# Strip "Ethernet" off port name
110+
if not port_name.startswith(self.SONIC_PORT_NAME_PREFIX):
111+
return -1
112+
113+
port_idx = int(port_name[len(self.SONIC_PORT_NAME_PREFIX):])
114+
return port_idx
115+
116+
def _port_state_to_mode(self, port_idx, state):
117+
DBG_PRINT("_port_state_to_mode")
118+
119+
def _port_led_mode_update(self, port_idx, ledMode):
120+
DBG_PRINT("_port_led_mode_update")
121+
122+
# called when port states change- implementation of port_link_state_change() method if needed
123+
def port_link_state_change(self, portname, state):
124+
# DBG_PRINT("port_link_state_change ")
125+
return

0 commit comments

Comments
 (0)