Skip to content

Commit

Permalink
DellEMC S6100: Determine pcie.yaml revision based on firmware (sonic-…
Browse files Browse the repository at this point in the history
…net#7875)

Why I did it
To determine the revision of the pcie.yaml to be used based on BIOS version in DellEMC S6100 platform.

Depends on: sonic-net/sonic-platform-common#195

How I did it
Added two revisions of pcie.yaml pcie_1.yaml and pcie_2.yaml
Included a platform-specific Pcie class to provide the revision of the pcie.yaml to be used by pcieutil/pcied.
How to verify it
Execute pcieutil check (sonic-net/sonic-utilities#1672) command and verify the list of PCIe devices displayed.
Logs: UT_logs.txt
  • Loading branch information
ArunSaravananBalachandran authored and Carl Keene committed Aug 7, 2021
1 parent b382452 commit a3f84c5
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 0 deletions.
50 changes: 50 additions & 0 deletions device/dell/x86_64-dell_s6100_c2538-r0/pcie_2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
- bus: '00'
dev: '01'
fn: '0'
id: 1f10
name: 'PCI bridge: Intel Corporation Atom processor C2000 PCIe Root Port 1'
- bus: '00'
dev: '03'
fn: '0'
id: 1f12
name: 'PCI bridge: Intel Corporation Atom processor C2000 PCIe Root Port 3'
- bus: '00'
dev: '04'
fn: '0'
id: 1f13
name: 'PCI bridge: Intel Corporation Atom processor C2000 PCIe Root Port 4'
- bus: '00'
dev: 0f
fn: '0'
id: 1f16
name: 'IOMMU: Intel Corporation Atom processor C2000 RCEC'
- bus: '00'
dev: '13'
fn: '0'
id: 1f15
name: 'System peripheral: Intel Corporation Atom processor C2000 SMBus 2.0'
- bus: '00'
dev: '14'
fn: '0'
id: 1f41
name: 'Ethernet controller: Intel Corporation Ethernet Connection I354'
- bus: '00'
dev: '14'
fn: '1'
id: 1f41
name: 'Ethernet controller: Intel Corporation Ethernet Connection I354'
- bus: '00'
dev: '14'
fn: '2'
id: 1f41
name: 'Ethernet controller: Intel Corporation Ethernet Connection I354'
- bus: '01'
dev: '00'
fn: '0'
id: b960
name: 'Ethernet controller: Broadcom Limited Broadcom BCM56960 Switch ASIC'
- bus: '01'
dev: '00'
fn: '1'
id: b960
name: 'Ethernet controller: Broadcom Limited Broadcom BCM56960 Switch ASIC'
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
########################################################################
#
# DELLEMC S6100
#
# Module contains a platform specific implementation of SONiC Platform
# Base PCIe class
#
########################################################################

try:
from sonic_platform.component import Component
from sonic_platform_base.sonic_pcie.pcie_common import PcieUtil
except ImportError as e:
raise ImportError(str(e) + "- required module not found")


class Pcie(PcieUtil):
"""DellEMC Platform-specific PCIe class"""

def __init__(self, platform_path):
PcieUtil.__init__(self, platform_path)
bios = Component(component_index=0)
bios_ver = bios.get_firmware_version()

versions = bios_ver.split("-")
if (len(versions) == 2) and int(versions[1], 10) > 5:
self._conf_rev = "2"
else:
self._conf_rev = "1"

0 comments on commit a3f84c5

Please sign in to comment.