[JIRA-SONIC-14250] Add AS9647-32D platform device files #720
Open
viclin-ec wants to merge 33 commits into
Open
[JIRA-SONIC-14250] Add AS9647-32D platform device files #720viclin-ec wants to merge 33 commits into
viclin-ec wants to merge 33 commits into
Conversation
- Copied ES9618XX platform files to create the AS9647-32D placeholder. - Renamed file prefixes to "as9647-32d" to clearly distinguish future AS9647-32D–specific modifications. This commit only introduces the base platform structure; functional adaptations will be added in subsequent commits. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
- Added initial support for the AS9647-32D platform. - The platform is based on the X2 ASIC. - Supports SFP112, SFP56, and SFP28 transceiver modules. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
Removed unused by XDRV keys. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
XSW-11234 - fix lanes 4_1 and 4_7 by turning rx_inverse to false. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com> Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com>
After switching to multispeed breakout definitions in platform.json, the Accton-AS9647-32D-Q32x400G configuration now also covers the Q32x100G variant. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com> Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com>
Originally, the transceivers were turned on by the CPLD during boot. This behavior was later changed so that the CPLD defaults to Low Power mode, allowing the transceivers to be brought up gradually in order to reduce the power spike at startup. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
SONiC does not display transceivers for ports 16-32. The transciver numbers have been fixed in the creation paths for '/sys/bus/i2c/devices/15-0062/' for 'module_lpmode', 'module_present' and 'module_reset'. Signed-off-by: Vadym Sodolevsky <vadyms@xsightlabs.com>
This reverts commit 3f9dd00b09b4e40a1e0d5bc6c08224e74bbb9753. Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com>
This reverts commit 0abd281b3ccbac5ec36d72ecc6f8a52872fb7e70. Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com>
Xsight's SDK doesn't support run time ports speed changing within a single IFU. Currently only static and dymamic port breakouts are supported, but speed of ports which belong to same IFU must be the same. So this commits synchronize platform.json with current SDK implementation Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com>
Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com>
Originally, we used the /opt/xplt/utils/xcvrs tools in our lab for SI characterization of modules on our Ubuntu-based XsightOS NOS. When we began working with SONiC, these tools helped fill the gap caused by limited CMIS and SI configuration support in earlier versions. Given their reliability across different environments, we extended their use to the SONiC 202311 release. This has been a temporary measure, and we’re now aligning with the community's standard approach moving forward. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
Align PFC watchdog enabled queues with PFC-enabled queues (3,4) Signed-off-by: Borys Barkauskas <bbarkauskas@larch-networks.net>
Fix sfp `get_name` API as done in the commit: "SON-2256: es9618xx: fix sfp get_name API failure" This fix prevent the followin error for example: File "/usr/local/lib/python3.9/dist-packages/sonic_platform/sfp.py", line 124, in get_name sfputil_helper.read_porttab_mappings(self.__get_path_to_port_config_file()) File "/usr/local/lib/python3.9/dist-packages/sonic_platform/sfp.py", line 108, in __get_path_to_port_config_file platform_json_path = platform_path if self.__is_host() else self.PMON_JSON_PATH TypeError: __is_host() takes 0 positional arguments but 1 was given Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Increase fan speed tolerance from 15% to 20% to accommodate possible fan series–related speed variations ad done in the commit: "SON-2097: es9618xx: fix fan not ok indication" Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Copy support for reading XCVR temperatures via `SfpThermal` class from the following paths: - `platform/barefoot/sonic-platform-modules-arista/arista/utils/sonic_platform/thermal.py` - `platform/barefoot/sonic-platform-modules-arista/arista/utils/sonic_platform/sfp.py` This support abstracts XCVR thermals for automatic reading in `thermalctld`. Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Update XCVR thermal sensor names and temperature resolution. Change cache type for threshold readings. Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Move temperature calculations and overheat detection to `thermal_infos.py`
Add thermal control policies for faulty sensor and critical warning
Replace exceptions with logger messages for consistent execution flow
Prevent duplicate thermal policy exception when reloading configurations
Update sensor names and threshold pairs for all thermal sensors
Update thresholds for `PCB Top Front` and `PCB Bottom Front` sensors to
maintain cooling level index 0 at room temperature (38% RPM fan speed)
Remove `ASIC diode` thermal sensor
Align `sensors` command thresholds with thermal control thresholds
Return 0 for target/configured fan speed if fan is not present or read fails
Rename `get_configured_speed` to `_get_configured_speed` for internal use
Fix duplicate policy exception: `Policy {} already exists`
Remove all logic from `led_control.py` since the system LED is already
handled by the `healthd` daemon
Rename service from `as9647-32d-platform-monitor.service` to
`as9647-32d-platform-init.service` as monitoring is no longer required;
critical thermal overheat action changed to system reboot
Remove unused functions and classes in thermal control modules
Add helper API to determine whether the current NOS is SONIC or another NOS.
Adjust the ASIC thermal warning and critical thresholds
to prevent false power-cycles under normal heavy load.
Under normal heavy load, ASIC temperature readings reach
approximately 90 C, which previously caused false power-cycles.
Set minimum_thermal and maximum_thermal to None. Update them
only in get_minimum_recorded() and get_maximum_recorded() when
get_temperature() returns a valid float.
Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Copy `watchdog.py` from `platform/barefoot/sonic-platform-modules-arista/arista/utils/sonic_platform/watchdog.py` into `fan_watchdog.py`, adjusting indentation from 3 to 4 spaces. Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Adapt watchdog module to the fan CPLD watchdog. Enable fan watchdog to protect the thermal control main loop. Remove fan watchdog disable when manually setting fan speed via sysfs. Reduce thermal control interval to 30 to improve watchdog responsiveness. This change has also been implemented in Arista’s Barefoot and Broadcom platforms for interval of 20 seconds. Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Add fan speed delay to the `platform.json` file to prevent community tests false failures in fan speed tests when fan speed transitions between full-scale values. Signed-off-by: Asher Oved <ashero@xsightlabs.com>
The syslog identifier is configured per process, not per module. Because of this, when any Python module within a daemon invokes `syslog.openlog` for the first time, it overrides the syslog identifier for all subsequent log messages emitted by that daemon. Previously, `sfp.py` called `syslog.openlog` with `sfp` identifier, causing all PMON daemons to inherit the `sfp` identifier. As a result, log messages appeared incorrectly, for example: `sonic INFO pmon#sfp: Start init LED` `sonic NOTICE pmon#sfp: Ethernet48: Got SFP inserted event` The fix removes the explicit syslog identifier configuration from `sfp.py`, allowing to inherit the correct identifier based on the daemon’s own name. After the fix, logs appear correctly: `sonic INFO pmon#ledd: Start init LED` `sonic NOTICE pmon#xcvrd: Ethernet48: Got SFP inserted event` Signed-off-by: Asher Oved <ashero@xsightlabs.com>
The sequence `\s` is not a standard Python string escape sequence.
However, it is a standard escape sequence in regular expressions (regex)
to match a whitespace character.
When Python's compiler sees `\s` in a regular string, it doesn't interpret
it as a special character but issues a warning to prompt you to fix the
potential issue before it becomes an error in an upcoming Python release.
It can be fixed by using a raw string literal `r'()`, making the code
future-proof and preventing the warning.
The printed warning is:
DeprecationWarning: invalid escape sequence \s
'(0x[0-9a-fA-F]{2})([\s]+[\S]+[\s]+)([\S]+)', line)
Signed-off-by: Asher Oved <ashero@xsightlabs.com>
…ontrol policy Integrate XCVR-aware thermal fan control logic from XsightOS commits: "XSW-12873: accton: integrate XCVR temperatures into thermal fan control policy" "XSW-12873: accton: move critical overheat fan control from action code to policy JSON" "XSW-12873: accton: unify chassis and XCVR overheat data APIs" "XSW-12873: accton: reorder policy actions and fix critical overheat test" Add XCVR-aware thermal fan control. When any optical module exceeds its EEPROM-reported warning or critical threshold, fans are forced to 100% to prevent coherent modules from triggering self-protection (laser off). Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Fix QSFP detection for QSFP with CMIS transceivers in the `show platform temperature` table. Before the fix, a QSFP module with CMIS was detected as the default SFP type, after the fix, it is correctly detected as QSFP. Signed-off-by: Asher Oved <ashero@xsightlabs.com>
Fix newline errors in led_control.py. The issue caused the following error log: "The sonic ERR pmon#ledd[36]: Failed to load ledutil: invalid non-printable character U+200B (led_control.py, line 8)" Signed-off-by: Asher Oved <ashero@xsightlabs.com>
- Remove chassis_test.py (unused) - Remove run_interactive_command and pci_get_value from helper.py - Remove Python 2 compat (sys.version_info) in eeprom.py - Remove unused __run_command (component.py) and __read_txt_file, __is_host (chassis.py) - Remove utils.py and fread/fread_str/fread_int, use read_txt_file in watchdog.py Signed-off-by: Vadym Sodolevsky <vadyms@xsightlabs.com>
Merge 32 x 4-lane ports into 16 x 8-lane ports to match actual hardware topology, and add full set of breakout modes (2x400G, 4x200G, 8x100G, 1x400G, 2x200G, 4x100G, 8x50G, 2x100G, 8x25G, 8x10G). (cherry picked from commit 9d5513f67f5fb62aa6f5ade679c90bc54bf70bab) Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com> Signed-off-by: Gal Dembinsky <gald@xsightlabs.com>
device/accton/x86_64-accton_as9647_32d-r0/platform.json file was updated recently, but hwsku.json also need to be updated with a new breakout modes Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com>
Due to a typo in the start.sh file, the referenced x2_reset.sh instead of reset_x2.sh prevented X2 chip resetting. Signed-off-by: Anton Parkhomenko <aparkhomenko@larch-networks.com> Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
…GitHub Replace internal Nexus repository URLs (http://172.20.4.62:8081) with public GitHub raw URLs for es9632xq, as9647-32d, and x2evb XPLT packages, allowing the SONiC build to run without access to the internal network. Signed-off-by: Michael Zaidman <michaelz@xsightlabs.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why I did it
Work item tracking
How I did it
How to verify it
Which release branch to backport (provide reason below if selected)
Tested branch (Please provide the tested image version)
Description for the changelog
Link to config_db schema for YANG module changes
A picture of a cute animal (not mandatory but encouraged)