Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

device: netberg: Add Aurora 420 switch support #2400

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

sergeypopovich-ord
Copy link

@sergeypopovich-ord sergeypopovich-ord commented Dec 24, 2018

Support for new platform and device

Netberg Aurora 420

Short info about device

Based on Broadcom Trident II chip with 48x10G ports and 6x40G as flex ports or 24x10G configured as regular ports.

Similar to Accton-AS5712-54X that also has 72x10G and same Broadcom chip.

SAI initialization log entries for device:

Dec 24 08:47:55.986247 sonic INFO syncd#supervisord: syncd PCI unit 0: Dev 0xb854, Rev 0x03, Chip BCM56854_A2, Driver BCM56850_A0#015
Dec 24 08:47:55.986887 sonic INFO syncd#supervisord: syncd #15#015
Dec 24 08:47:55.987048 sonic INFO syncd#supervisord: syncd Initializing platform#015#015
Dec 24 08:47:56.098952 sonic INFO syncd#supervisord: syncd SOC unit 0 attached to PCI device BCM56854_A2#015
Dec 24 08:47:56.100334 sonic INFO syncd#supervisord: syncd Boot flags: Cold boot#015
Dec 24 08:47:56.101852 sonic INFO syncd#supervisord: syncd rc: unit 0 device BCM56854_A2#015

Porting details

Note that porting is done according to Porting Guide wiki page.

  • management nic implemented by Intel I354 controller with BCM54616 PHY requiring specific initialization code (patch for sonic-linux-kernel submitted via pull request igb: Add BCM54616 initialization code for I354 mgmt on Netberg Aurora 420 sonic-linux-kernel#76)
  • sai.profile and config.bcm: using 6x40G to 24x10G breakout due to missing flex port support
  • default_sku file to describe model
  • installer.conf, set serial port to ttyS1
  • led_proc_init.soc, Broadcom LED microcode. LED status autoupdate turned off, led_control.py is
    used to set colors properly for 6x40G to 24x10G breakout.
  • led_control.py update port leds as well as control "SYS_STAT" led. Functionality is done by
    communicating to drivshell via syncd socket bind mounted as read-only to "pmon" container (see
    commit 6002bd4a8c7b ("device: netberg: Add System EEPROM, PSU, SFP and LED util modules" in
    this pull request for more information). Communication is done with respect to "bcmcmd" and
    "bcmsh" and does not block socket communication for longer than necessary (send, read response,
    explicitly release socket).
  • sensors.conf and fancontrol are implemented by platform driver "hardware_monitor" added
    with "sonic-platform-modules-netberg" package. Since this driver implements thermal policy
    internally there is no reason for "fancontrol" and there is no pwm* entries exposed to userspace.
    Information provided to lm-sensors is readonly and reflects voltage, FANs speed, before/after ASIC
    temperature. For PSU1,2 power in/out, current out, FAN speeds and temperature.
  • psuutil.py - Read status for two PSUs
  • eeprom.py - Read system EEPROM
  • sfputil.py - Read and provide presence information for SFPs. No SFP reset and low power mode
    support present at the moment.

@msftclas
Copy link

msftclas commented Dec 24, 2018

CLA assistant check
All CLA requirements met.

@sergeypopovich-ord
Copy link
Author

Note that CI check fails may be due to missing sonic-net/sonic-linux-kernel#76 in sonic-linux-kernel.

.gitmodules Outdated
@@ -62,3 +62,6 @@
[submodule "src/redis-dump-load"]
path = src/redis-dump-load
url = https://github.com/p/redis-dump-load.git
[submodule "platform/broadcom/sonic-platform-modules-netberg"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we no longer accept submodule, please have source code checked in in the buildimage rep.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, will do that. there is at least one platform still uses that and I used their approach.

First make this device boot at least with correct serial, config.bcm,
port config, LED microcode and minigraph.xml.

Signed-off-by: Sergey Popovich <sergey.popovich@ordnance.co>
Add sonic-platform-modules-netberg initial infrastructure for platform
specific modules and common hardware monitoring kernel module to monitor
SFP, PSU, FAN status on all Netberg platforms.

Signed-off-by: Sergey Popovich <sergey.popovich@ordnance.co>
To provide interface between SONiC and platform hardware monitor driver
add eeprom.py, led_control.py, psuutil.py and sfputil.py modules.

Note that led_control.py only implements constructor and destructor to
light green system stat LED when ledd starts and turn off it when ledd
finishes.

Signed-off-by: Sergey Popovich <sergey.popovich@ordnance.co>
Now hardware monitoring platform driver implements lm-sensors compatible
sysfs ABI we can add sensors.conf file to describe various platforms
features with their subfeatures to sensord(8) running in pmon container.

Now both sensors(1) and "show environment" work well from SONiC cmdline.

Note that hardware_monitor platform driver is in change of controlling
FAN speed and implements thermal policy: there is no need in fancontrol
configuration for platforms handled by this driver.

Adjust platform modules package version and update submodules reference.

Signed-off-by: Sergey Popovich <sergey.popovich@ordnance.co>
@sergeypopovich-ord sergeypopovich-ord requested a review from a team as a code owner June 10, 2022 02:01
stephenxs added a commit to stephenxs/sonic-buildimage that referenced this pull request Aug 9, 2022
dc8bc1c [portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (sonic-net#2333)
6565b50 Revert "[portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (sonic-net#2333)" (sonic-net#2396)
dc88d55 Revert hwinfo count change (sonic-net#2383)
75fc965 [DualToR] Handle race condition between tunnel_decap and mux orchestrator (sonic-net#2397)
525a57f Fix for remote system interface not getting created (sonic-net#2364)
3161eaa portsorch: initial support for link-training (sonic-net#2359)
dc477fb [swss/cfgmgr] teammgr configure lacp rate (sonic-net#2121)
2489ad5 Improve pytest speend by grouping 20 tests together. (sonic-net#2390)
168bd3b [EVPN]Modified tunnel creation logic when creating tunnel in VRF-VNI map creation flow (sonic-net#2404)
1e1438e [portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (sonic-net#2400)
9f2e27b [QoS] Fix issue: the WRED profile can not be set if current min > new max or current max < new min (sonic-net#2379)
d36c17d [asan][aclorch] fix a memory leak in the SaiAttrWrapper::swap() (sonic-net#2382)

Signed-off-by: Stephen Sun <stephens@nvidia.com>
prgeor pushed a commit that referenced this pull request Aug 10, 2022
* Advance sonic-utilities pointer

7919077f Add FEC correctable and uncorrectable port stats (#2027)
ecb91367 Add CLI to configure YANG config validation (#2147)
e9ab5235 Add override testcase to verify removal (#2288)
c6794b55 Fix version in db_migrator  for `PORT_QOS_MAP|global` (#2289)
92b889b7 [intfutil] Check whether the FEC mode is supported on the platform before configuring it to CONFIG_DB (#2223)
dab0d065 Transfer organization from Azure to sonic-net (#2284)
6de18a1d [watermarkstat] Fix CLI script for unconfigured PG counters (#2239)
ac2f5530 Improve the way to check port type of RJ45 port (#2249)
142185c9 Fix the issue that sonic_platform is not installed on vs image (#2300)
ca14133f [crm] add checking for CRM interval range (#2293)

Signed-off-by: Stephen Sun <stephens@nvidia.com>

* Advance swss

dc8bc1c [portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (#2333)
6565b50 Revert "[portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (#2333)" (#2396)
dc88d55 Revert hwinfo count change (#2383)
75fc965 [DualToR] Handle race condition between tunnel_decap and mux orchestrator (#2397)
525a57f Fix for remote system interface not getting created (#2364)
3161eaa portsorch: initial support for link-training (#2359)
dc477fb [swss/cfgmgr] teammgr configure lacp rate (#2121)
2489ad5 Improve pytest speend by grouping 20 tests together. (#2390)
168bd3b [EVPN]Modified tunnel creation logic when creating tunnel in VRF-VNI map creation flow (#2404)
1e1438e [portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (#2400)
9f2e27b [QoS] Fix issue: the WRED profile can not be set if current min > new max or current max < new min (#2379)
d36c17d [asan][aclorch] fix a memory leak in the SaiAttrWrapper::swap() (#2382)

Signed-off-by: Stephen Sun <stephens@nvidia.com>

* More sonic-utilities PRs

be1866fd Fix GCU bug when backend service modifying config (#2295)
bcf36eb3 Fix issues for sonic_installer upgrade-docker and sonic_installer rollback-docker (#2278)

Signed-off-by: Stephen Sun <stephens@nvidia.com>

Signed-off-by: Stephen Sun <stephens@nvidia.com>
yxieca added a commit to yxieca/sonic-buildimage that referenced this pull request Aug 12, 2022
…submodule head

Kernel:
* 86c4b66 2022-07-28 | [Mellanox] Add new kernel patches from HW-MGMT package V.7.0020.3005 (sonic-net#287) (HEAD -> 202205) [Kebo Liu]
* 3a8416a 2022-07-05 | [patch] mlxsw: i2c: Prevent transaction execution for special chip (sonic-net#279) [Stepan Blyshchak]

swss:
* 3f69944 2022-08-10 | Set internal class state to reflect the actual state (sonic-net#2410) (HEAD -> 202205, tag: foo) [Prince Sunny]
* 87e98eb 2022-08-09 | [portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (sonic-net#2400) [Stephen Sun]
* e71ab99 2022-07-29 | portsorch: initial support for link-training (sonic-net#2359) [Dante (Kuo-Jung) Su]
* ed5e5be 2022-07-08 | Port configuration incremental update support (sonic-net#2305) [Junchao-Mellanox]

utilities:
* 0df3ba8 2022-08-12 | Revert "Improve the way to check port type of RJ45 port (sonic-net#2249)" (HEAD -> 202205) [Ying Xie]
* 9b21903 2022-08-12 | Fix test failure in dump table test in 202205 (sonic-net#2307) (HEAD -> 202205, github/202205) [Stephen Sun]
* 750d1db 2022-08-11 | Convert IPv6 addresses to lowercase in apply-patch (sonic-net#2299) (HEAD -> 202205) [dbarashinvd]
* 555947e 2022-08-09 | [config][muxcable] add support to enable/disable ycable telemetry (sonic-net#2297) [vdahiya12]
* 978f416 2022-08-09 | Fix GCU bug when backend service modifying config (sonic-net#2295) [jingwenxie]
* 8fed381 2022-08-02 | [intfutil] Check whether the FEC mode is supported on the platform before configuring it to CONFIG_DB (sonic-net#2223) (github/202205) [Stephen Sun]
* a1a09e4 2022-07-29 | Improve the way to check port type of RJ45 port (sonic-net#2249) [Stephen Sun]
* 9bdbfb8 2022-05-19 | sonic-utils: initial support for link-training (sonic-net#2071) [Dante (Kuo-Jung) Su]
* c088ec4 2022-08-10 | Support to enable fips for the command sonic_installer (sonic-net#2154) (sonic-net#2303) [xumia]

platform-daemon:
* 767cfb6 2022-08-09 | [ycabled] add capability to enable/disable telemetry (sonic-net#279) (HEAD -> 202205) [vdahiya12]

linkmgrd:
* cf1ba2b 2022-08-12 | wait for handler to be completed (sonic-net#114) (HEAD -> 202205, github/202205) [Jing Zhang]
* e99026c 2022-08-11 | [lgtm]: add uuid-dev to lgtm prepare (sonic-net#112) (HEAD -> 202205) [Jing Zhang]
* bd1b7f0 2022-08-11 | Adjust `DbInterfaceRaceConditionCheck` to Wait Longer for Handlers to be executed (sonic-net#111) (HEAD -> 202205, github/202205) [Jing Zhang]
* e9dc6b2 2022-08-11 | Backoff mux probing for server down scenario (sonic-net#106) [Jing Zhang]
* 0d61171 2022-08-09 | Fix race condition caused by strand `wrap` method (sonic-net#104) [Jing Zhang]
* e9ede7d 2022-07-02 | Enforce switch after config mux to active (sonic-net#95) [Longxiang Lyu]
* 15dbc30 2022-06-30 | Add unittest to verify mux toggle active (sonic-net#94) [Longxiang Lyu]

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
yxieca added a commit that referenced this pull request Aug 13, 2022
…submodule head (#11705)

Kernel:
* 86c4b66 2022-07-28 | [Mellanox] Add new kernel patches from HW-MGMT package V.7.0020.3005 (#287) (HEAD -> 202205) [Kebo Liu]
* 3a8416a 2022-07-05 | [patch] mlxsw: i2c: Prevent transaction execution for special chip (#279) [Stepan Blyshchak]

swss:
* 3f69944 2022-08-10 | Set internal class state to reflect the actual state (#2410) (HEAD -> 202205, tag: foo) [Prince Sunny]
* 87e98eb 2022-08-09 | [portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (#2400) [Stephen Sun]
* e71ab99 2022-07-29 | portsorch: initial support for link-training (#2359) [Dante (Kuo-Jung) Su]
* ed5e5be 2022-07-08 | Port configuration incremental update support (#2305) [Junchao-Mellanox]

utilities:
* 0df3ba8 2022-08-12 | Revert "Improve the way to check port type of RJ45 port (#2249)" (HEAD -> 202205) [Ying Xie]
* 9b21903 2022-08-12 | Fix test failure in dump table test in 202205 (#2307) (HEAD -> 202205, github/202205) [Stephen Sun]
* 750d1db 2022-08-11 | Convert IPv6 addresses to lowercase in apply-patch (#2299) (HEAD -> 202205) [dbarashinvd]
* 555947e 2022-08-09 | [config][muxcable] add support to enable/disable ycable telemetry (#2297) [vdahiya12]
* 978f416 2022-08-09 | Fix GCU bug when backend service modifying config (#2295) [jingwenxie]
* 8fed381 2022-08-02 | [intfutil] Check whether the FEC mode is supported on the platform before configuring it to CONFIG_DB (#2223) (github/202205) [Stephen Sun]
* a1a09e4 2022-07-29 | Improve the way to check port type of RJ45 port (#2249) [Stephen Sun]
* 9bdbfb8 2022-05-19 | sonic-utils: initial support for link-training (#2071) [Dante (Kuo-Jung) Su]
* c088ec4 2022-08-10 | Support to enable fips for the command sonic_installer (#2154) (#2303) [xumia]

platform-daemon:
* 767cfb6 2022-08-09 | [ycabled] add capability to enable/disable telemetry (#279) (HEAD -> 202205) [vdahiya12]

linkmgrd:
* cf1ba2b 2022-08-12 | wait for handler to be completed (#114) (HEAD -> 202205, github/202205) [Jing Zhang]
* e99026c 2022-08-11 | [lgtm]: add uuid-dev to lgtm prepare (#112) (HEAD -> 202205) [Jing Zhang]
* bd1b7f0 2022-08-11 | Adjust `DbInterfaceRaceConditionCheck` to Wait Longer for Handlers to be executed (#111) (HEAD -> 202205, github/202205) [Jing Zhang]
* e9dc6b2 2022-08-11 | Backoff mux probing for server down scenario (#106) [Jing Zhang]
* 0d61171 2022-08-09 | Fix race condition caused by strand `wrap` method (#104) [Jing Zhang]
* e9ede7d 2022-07-02 | Enforce switch after config mux to active (#95) [Longxiang Lyu]
* 15dbc30 2022-06-30 | Add unittest to verify mux toggle active (#94) [Longxiang Lyu]

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
skbarista pushed a commit to skbarista/sonic-buildimage that referenced this pull request Aug 17, 2022
…submodule head (sonic-net#11705)

Kernel:
* 86c4b66 2022-07-28 | [Mellanox] Add new kernel patches from HW-MGMT package V.7.0020.3005 (sonic-net#287) (HEAD -> 202205) [Kebo Liu]
* 3a8416a 2022-07-05 | [patch] mlxsw: i2c: Prevent transaction execution for special chip (sonic-net#279) [Stepan Blyshchak]

swss:
* 3f69944 2022-08-10 | Set internal class state to reflect the actual state (sonic-net#2410) (HEAD -> 202205, tag: foo) [Prince Sunny]
* 87e98eb 2022-08-09 | [portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (sonic-net#2400) [Stephen Sun]
* e71ab99 2022-07-29 | portsorch: initial support for link-training (sonic-net#2359) [Dante (Kuo-Jung) Su]
* ed5e5be 2022-07-08 | Port configuration incremental update support (sonic-net#2305) [Junchao-Mellanox]

utilities:
* 0df3ba8 2022-08-12 | Revert "Improve the way to check port type of RJ45 port (sonic-net#2249)" (HEAD -> 202205) [Ying Xie]
* 9b21903 2022-08-12 | Fix test failure in dump table test in 202205 (sonic-net#2307) (HEAD -> 202205, github/202205) [Stephen Sun]
* 750d1db 2022-08-11 | Convert IPv6 addresses to lowercase in apply-patch (sonic-net#2299) (HEAD -> 202205) [dbarashinvd]
* 555947e 2022-08-09 | [config][muxcable] add support to enable/disable ycable telemetry (sonic-net#2297) [vdahiya12]
* 978f416 2022-08-09 | Fix GCU bug when backend service modifying config (sonic-net#2295) [jingwenxie]
* 8fed381 2022-08-02 | [intfutil] Check whether the FEC mode is supported on the platform before configuring it to CONFIG_DB (sonic-net#2223) (github/202205) [Stephen Sun]
* a1a09e4 2022-07-29 | Improve the way to check port type of RJ45 port (sonic-net#2249) [Stephen Sun]
* 9bdbfb8 2022-05-19 | sonic-utils: initial support for link-training (sonic-net#2071) [Dante (Kuo-Jung) Su]
* c088ec4 2022-08-10 | Support to enable fips for the command sonic_installer (sonic-net#2154) (sonic-net#2303) [xumia]

platform-daemon:
* 767cfb6 2022-08-09 | [ycabled] add capability to enable/disable telemetry (sonic-net#279) (HEAD -> 202205) [vdahiya12]

linkmgrd:
* cf1ba2b 2022-08-12 | wait for handler to be completed (sonic-net#114) (HEAD -> 202205, github/202205) [Jing Zhang]
* e99026c 2022-08-11 | [lgtm]: add uuid-dev to lgtm prepare (sonic-net#112) (HEAD -> 202205) [Jing Zhang]
* bd1b7f0 2022-08-11 | Adjust `DbInterfaceRaceConditionCheck` to Wait Longer for Handlers to be executed (sonic-net#111) (HEAD -> 202205, github/202205) [Jing Zhang]
* e9dc6b2 2022-08-11 | Backoff mux probing for server down scenario (sonic-net#106) [Jing Zhang]
* 0d61171 2022-08-09 | Fix race condition caused by strand `wrap` method (sonic-net#104) [Jing Zhang]
* e9ede7d 2022-07-02 | Enforce switch after config mux to active (sonic-net#95) [Longxiang Lyu]
* 15dbc30 2022-06-30 | Add unittest to verify mux toggle active (sonic-net#94) [Longxiang Lyu]

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
tshalvi pushed a commit to tshalvi/sonic-buildimage that referenced this pull request Dec 20, 2022
…FEC mode is supported before setting it (sonic-net#2400)

* Revert "Revert "[portsorch] Expose supported FEC modes to STABE_DB and check whether FEC mode is supported before setting it (sonic-net#2333)" (sonic-net#2396)"

This reverts commit 6565b50.

* Adjust the prototype of setPortFec

Signed-off-by: Stephen Sun <stephens@nvidia.com>
tshalvi pushed a commit to tshalvi/sonic-buildimage that referenced this pull request Dec 20, 2022
Why I did:

PR: sonic-net#2400 made change to pass <string> as argument to API setPortFecMode but did not updated the corresponding gbsyncd API call
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants