Skip to content

Commit a1268b3

Browse files
arunlk-dellArun LK
authored andcommitted
DellEMC: S5248F - Platform API 2.0 implementation (sonic-net#7930)
#### Why I did it Support API 2.0 for S5248F platform #### How I did it Making changes to S5248F platform specific directory Co-authored-by: Arun LK <[email protected]>
1 parent b7344e8 commit a1268b3

File tree

19 files changed

+2916
-0
lines changed

19 files changed

+2916
-0
lines changed

platform/broadcom/sonic-platform-modules-dell/common/sonic_platform/hwaccess.py

+17
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,23 @@ def pci_get_value(resource, offset):
1919
mm.close()
2020
return val
2121

22+
def pci_mem_write(memmap, offset, data):
23+
""" Write PCI device """
24+
memmap.seek(offset)
25+
memmap.write(struct.pack('I', data))
26+
27+
def pci_set_value(resource, val, offset):
28+
""" Set a value to PCI device """
29+
with open(resource, 'w+b') as filed:
30+
memmap = None
31+
try:
32+
memmap = mmap.mmap(filed.fileno(), 0)
33+
pci_mem_write(memmap, offset, val)
34+
except EnvironmentError:
35+
pass
36+
if memmap is not None:
37+
memmap.close()
38+
2239
# Read I2C device
2340

2441
def i2c_get(bus, i2caddr, ofs):

platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s5248f.install

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ s5248f/scripts/sensors usr/bin
55
s5248f/scripts/qsfp_irq_enable.py usr/bin
66
s5248f/cfg/s5248f-modules.conf etc/modules-load.d
77
s5248f/systemd/platform-modules-s5248f.service etc/systemd/system
8+
s5248f/modules/sonic_platform-1.0-py3-none-any.whl usr/share/sonic/device/x86_64-dellemc_s5248f_c3538-r0
89
common/platform_reboot usr/share/sonic/device/x86_64-dellemc_s5248f_c3538-r0
910
common/fw-updater usr/local/bin
1011
common/onie_mode_set usr/local/bin

platform/broadcom/sonic-platform-modules-dell/debian/rules

+10
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ override_dh_auto_build:
4545
python2.7 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
4646
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
4747
cd $(MOD_SRC_DIR); \
48+
elif [ $$mod = "s5248f" ]; then \
49+
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
50+
cd $(MOD_SRC_DIR)/$${mod}; \
51+
python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
52+
cd $(MOD_SRC_DIR); \
4853
elif [ $$mod = "z9332f" ]; then \
4954
cp $(COMMON_DIR)/ipmihelper.py $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
5055
cd $(MOD_SRC_DIR)/$${mod}; \
@@ -103,6 +108,11 @@ override_dh_clean:
103108
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
104109
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
105110
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
111+
elif [ $$mod = "s5248f" ]; then \
112+
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
113+
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \
114+
rm -rf $(MOD_SRC_DIR)/$${mod}/build; \
115+
rm -rf $(MOD_SRC_DIR)/$${mod}/build/*.egg-info; \
106116
elif [ $$mod = "z9332f" ]; then \
107117
rm -f $(MOD_SRC_DIR)/$${mod}/sonic_platform/ipmihelper.py; \
108118
rm -f $(MOD_SRC_DIR)/$${mod}/modules/*.whl; \

platform/broadcom/sonic-platform-modules-dell/s5248f/scripts/s5248f_platform.sh

+16
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,20 @@ switch_board_modsel() {
8686
done
8787
}
8888

89+
install_python_api_package() {
90+
device="/usr/share/sonic/device"
91+
platform=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform)
92+
93+
rv=$(pip3 install $device/$platform/sonic_platform-1.0-py3-none-any.whl)
94+
}
95+
96+
remove_python_api_package() {
97+
rv=$(pip3 show sonic-platform > /dev/null 2>/dev/null)
98+
if [ $? -eq 0 ]; then
99+
rv=$(pip3 uninstall -y sonic-platform > /dev/null 2>/dev/null)
100+
fi
101+
}
102+
89103
platform_firmware_versions() {
90104
FIRMWARE_VERSION_FILE=/var/log/firmware_versions
91105
rm -rf ${FIRMWARE_VERSION_FILE}
@@ -146,13 +160,15 @@ if [ "$1" == "init" ]; then
146160
switch_board_modsel
147161
switch_board_led_default
148162
#/usr/bin/qsfp_irq_enable.py
163+
install_python_api_package
149164
platform_firmware_versions
150165

151166
elif [ "$1" == "deinit" ]; then
152167
sys_eeprom "delete_device"
153168
switch_board_qsfp "delete_device"
154169
switch_board_qsfp_mux "delete_device"
155170

171+
remove_python_api_package
156172
modprobe -r i2c-mux-pca954x
157173
modprobe -r i2c-dev
158174
else
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from setuptools import setup
2+
3+
setup(
4+
name='sonic-platform',
5+
version='1.0',
6+
description='SONiC platform API implementation on DellEmc Platforms',
7+
license='Apache 2.0',
8+
author='SONiC Team',
9+
author_email='[email protected]',
10+
url='https://github.com/Azure/sonic-buildimage',
11+
maintainer='DellEMC',
12+
maintainer_email='[email protected]',
13+
packages=[
14+
'sonic_platform',
15+
],
16+
classifiers=[
17+
'Development Status :: 3 - Alpha',
18+
'Environment :: Plugins',
19+
'Intended Audience :: Developers',
20+
'Intended Audience :: Information Technology',
21+
'Intended Audience :: System Administrators',
22+
'License :: OSI Approved :: Apache Software License',
23+
'Natural Language :: English',
24+
'Operating System :: POSIX :: Linux',
25+
'Programming Language :: Python :: 3.7',
26+
'Topic :: Utilities',
27+
],
28+
keywords='sonic SONiC platform PLATFORM',
29+
)
30+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
__all__ = ["platform", "chassis", "sfp", "eeprom", "component", "thermal", "psu", "fan", "fan_drawer", "watchdog"]
2+
from sonic_platform import *
3+

0 commit comments

Comments
 (0)