[platform] Add as7512 sfp/eeprom utils (#531)
* Cavm platfrom modules insmod on start Signed-off-by: Nadiya.Stetskovych <Nadiya.Stetskovych@cavium.com> * Add as77512 platform utils Signed-off-by: Nadiya.Stetskovych <Nadiya.Stetskovych@cavium.com> * Move platform related init to platform modules Signed-off-by: Nadiya.Stetskovych <Nadiya.Stetskovych@cavium.com>
This commit is contained in:
parent
71e3ee8bf2
commit
a7fbd775c6
33
device/accton/x86_64-accton_as7512_32x-r0/plugins/eeprom.py
Normal file
33
device/accton/x86_64-accton_as7512_32x-r0/plugins/eeprom.py
Normal file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#############################################################################
|
||||
# Cavium
|
||||
#
|
||||
# Platform and model specific eeprom subclass, inherits from the base class,
|
||||
# and provides the followings:
|
||||
# - the eeprom format definition
|
||||
# - specific encoder/decoder if there is special need
|
||||
#############################################################################
|
||||
|
||||
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"
|
||||
super(board, self).__init__(self.eeprom_path, 0, '', True)
|
||||
|
25
device/accton/x86_64-accton_as7512_32x-r0/plugins/sfputil.py
Normal file
25
device/accton/x86_64-accton_as7512_32x-r0/plugins/sfputil.py
Normal file
@ -0,0 +1,25 @@
|
||||
#! /usr/bin/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 = {}
|
||||
_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):
|
||||
self.port_to_eeprom_mapping[x] = eeprom_path.format(x + 18)
|
||||
sfputilbase.__init__(self, port_num)
|
@ -5,6 +5,7 @@ SHELL = /bin/bash
|
||||
MAIN_TARGET = cavm_platform_modules.deb
|
||||
DEB_BUILD_DIR = cavm-platform-modules-deb
|
||||
SCRIPT_SRC = $(DEB_BUILD_DIR)/
|
||||
SYSTEMD_DIR = /etc/systemd/system
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
# get sources
|
||||
@ -18,9 +19,13 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
popd
|
||||
mkdir -p $(DEB_BUILD_DIR)/lib/modules/$(KVERSION)
|
||||
mkdir -p $(DEB_BUILD_DIR)/usr/bin
|
||||
mkdir -p $(DEB_BUILD_DIR)$(SYSTEMD_DIR)/multi-user.target.wants/
|
||||
|
||||
cp SONiC/AS7512-32X/module/*.ko $(DEB_BUILD_DIR)/lib/modules/$(KVERSION)
|
||||
cp SONiC/AS7512-32X/accton_as7512_util.py $(DEB_BUILD_DIR)/usr/bin
|
||||
chmod +x $(DEB_BUILD_DIR)/usr/bin/accton_as7512_util.py
|
||||
cp as7512-platform-init.service $(DEB_BUILD_DIR)$(SYSTEMD_DIR)
|
||||
ln -s $(SYSTEMD_DIR)/as7512-platform-init.service $(DEB_BUILD_DIR)$(SYSTEMD_DIR)/multi-user.target.wants/as7512-platform-init.service
|
||||
cp -r DEBIAN $(DEB_BUILD_DIR)
|
||||
dpkg-deb -b $(DEB_BUILD_DIR) $(MAIN_TARGET)
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Accton AS7512-32X Platform initialization service
|
||||
Before=pmon.service
|
||||
DefaultDependencies=no
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/accton_as7512_util.py install
|
||||
ExecStop=/usr/bin/accton_as7512_util.py clean
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Reference in New Issue
Block a user