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

transceivers: pull in power enable status fix #2009

Merged
merged 1 commit into from
Feb 10, 2025

Conversation

Aaron-Hartwig
Copy link
Contributor

@Aaron-Hartwig Aaron-Hartwig commented Feb 10, 2025

This pulls in an update QSFP front IO FPGA at oxidecomputer/quartz@9209c85. This FPGA change makes it more clear if power is actually enabled to a module or not by splitting out the software power enable register from a hardware readback power enable register. In practice the FPGA gated on the enable bit being set and module presence, but that was not reflected in the power_enable field of module status. The only adjustment needed in the server is that we must write to the new QSFP_SW_POWER_ENx registers instead of the old QSFP_POWER_ENx registers which are now read only.

@Aaron-Hartwig Aaron-Hartwig marked this pull request as ready for review February 10, 2025 18:44
@Aaron-Hartwig
Copy link
Contributor Author

With the current code you can see that all the power_enable bits are set as that is the default state:

aaron@niles ~ $ pfexec humility -t sidecar-b hiffy -c Transceivers.get_module_status
humility: attached to 0483:3754:002600184D4B500E20373831 via ST-Link V3
Transceivers.get_module_status() => ModuleStatus { power_enable: 0xffffffff, power_good: 0x101213d, power_good_timeout: 0x0, power_good_fault: 0x0, resetl: 0x101213d, lpmode_txdis: 0x101213d, modprsl: 0xfefedec2, intl_rxlosl: 0x0 }

With this update, power_enabled is set for only the ports we have a module inserted and the SW power enable bit set:

aaron@niles ~ $ pfexec humility -t sidecar-b-aaron hiffy -c Transceivers.get_module_status
humility: attached to 0483:3754:002600184D4B500E20373831 via ST-Link V3
Transceivers.get_module_status() => ModuleStatus { power_enable: 0x101213d, power_good: 0x101213d, power_good_timeout: 0x0, power_good_fault: 0x0, resetl: 0x101213d, lpmode_txdis: 0x101213d, modprsl: 0xfefedec2, intl_rxlosl: 0x0 }

Copy link
Contributor

@nathanaelhuffman nathanaelhuffman left a comment

Choose a reason for hiding this comment

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

lgtm

@Aaron-Hartwig Aaron-Hartwig merged commit 729ef60 into master Feb 10, 2025
125 checks passed
@Aaron-Hartwig Aaron-Hartwig deleted the aaron/qsfp-enable-clarity branch February 10, 2025 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants