Skip to content

Initial Configuration for Wedge800CACT Platform Manager#648

Closed
brandonchuang wants to merge 1 commit into
facebook:mainfrom
brandonchuang:wedge800c_pmgr
Closed

Initial Configuration for Wedge800CACT Platform Manager#648
brandonchuang wants to merge 1 commit into
facebook:mainfrom
brandonchuang:wedge800c_pmgr

Conversation

@brandonchuang

@brandonchuang brandonchuang commented Nov 11, 2025

Copy link
Copy Markdown
Contributor

Summary:

Add the initial platform_manager.json configuration for the Wedge800CACT platform manager.

Description:

Included all platform devices in the platform_manager.json configuration for Wedge800CACT. The configuration was validated on actual Wedge800CACT hardware.

Test Plan:

@meta-cla meta-cla Bot added the CLA Signed label Nov 11, 2025
"address": "0x54",
"kernelDeviceName": "24c02"
},
"pmUnitName": "MCB"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please remove the "pmUnitName" names from all slotTypeConfigs. Since the EEPROM's ProductName field is programmed correctly, this should not be required.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Please remove the "pmUnitName" names from all slotTypeConfigs. Since the EEPROM's ProductName field is programmed correctly, this should not be required.

@somasun
Could we keep that part? We need pmUnitName when the EEPROM is present but still empty (before the ProductName is programmed). Without pmUnitName, the system cannot bring up the associated CPLD device, and therefore cannot disable the CPLD write-protect. This makes the initial EEPROM provisioning process very difficult.

"address": "0x54",
"kernelDeviceName": "24c64"
},
"pmUnitName": "SCM"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

"address": "0x51",
"kernelDeviceName": "24c64"
},
"pmUnitName": "BMC"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

"address": "0x50",
"kernelDeviceName": "24c64"
},
"pmUnitName": "SMB"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

},
"FAN_SLOT": {
"numOutgoingI2cBuses": 0,
"pmUnitName": "FAN"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

"address": "0x37",
"kernelDeviceName": "adc128d818",
"pmUnitScopedName": "MCB_VOLTAGE_MONITOR5",
"initRegSettings": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please add a __comment__ on why this i2cset is needed for this device.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

MCB_VOLTAGE_MONITOR5 only uses IN0–IN5, so Mode 1 is not needed. I’ve removed the initRegSettings for this device. Please help review, thanks.

"address": "0x35",
"kernelDeviceName": "w800_scmcpld",
"pmUnitScopedName": "SCM_CPLD",
"initRegSettings": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please add a __comment__ on why this i2cset is needed for this device.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I’ve added the requested comment. Please help review, thanks.

"address": "0x37",
"kernelDeviceName": "adc128d818",
"pmUnitScopedName": "SCM_VOLTAGE_MONITOR1",
"initRegSettings": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The requested comment has been added here as well.

"address": "0x1f",
"kernelDeviceName": "adc128d818",
"pmUnitScopedName": "SMB_VOLTAGE_MONITOR1",
"initRegSettings": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The requested comment has been added here as well.

"address": "0x35",
"kernelDeviceName": "adc128d818",
"pmUnitScopedName": "SMB_VOLTAGE_MONITOR2",
"initRegSettings": [

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The requested comment has been added here as well.

@meta-codesync

meta-codesync Bot commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

@somasun has imported this pull request. If you are a Meta employee, you can view this in D87571025.

@somasun

somasun commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Can you also please fix wedge800bact config with the above changes.

@brandonchuang

Copy link
Copy Markdown
Contributor Author

Can you also please fix wedge800bact config with the above changes.

Yes, I will update the wedge800bact configuration accordingly and submit a PR with the changes.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@brandonchuang has updated the pull request. You must reimport the pull request before landing.

"chassisEepromDevicePath": "/[CHASSIS_EEPROM]",
"numXcvrs": 33,
"bspKmodsRpmName": "fboss_bsp_kmods",
"bspKmodsRpmVersion": "3.4.0-1",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@brandonchuang , let's bump BSP version to 4.0.0-1, like what we did for wedge800b. Thanks.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

+1

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@brandonchuang , let's bump BSP version to 4.0.0-1, like what we did for wedge800b. Thanks.

@tao-ren @RomanChoporov-Meta
Done. The BSP version has been bumped to 4.0.0-1.

"chassisEepromDevicePath": "/[CHASSIS_EEPROM]",
"numXcvrs": 33,
"bspKmodsRpmName": "fboss_bsp_kmods",
"bspKmodsRpmVersion": "3.4.0-1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

+1

@ghost

ghost commented Dec 22, 2025

Copy link
Copy Markdown

Waiting for a decision regarding pmUnitName in #696 (comment)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@brandonchuang has updated the pull request. You must reimport the pull request before landing.

@brandonchuang

Copy link
Copy Markdown
Contributor Author

Waiting for a decision regarding pmUnitName in #696 (comment)

@RomanChoporov-Meta
Please help check the comment in #696.
I will update the PR based on the conclusion. Thanks.

Summary:
Add the initial platform_manager.json configuration for the Wedge800CACT platform manager.

Description:
Included all platform devices in the platform_manager.json configuration for Wedge800CACT.
The configuration was validated on actual Wedge800CACT hardware.

Test Plan:
- Executed platform_manager with the configuration on Wedge800CACT.
  [w800c_20251125_platform_manager.txt](https://github.com/user-attachments/files/23741725/w800c_20251125_platform_manager.txt)
- Reviewed generated logs to validate correct functionality.
- Loaded and unloaded platform_manager and related kernel modules 10 times on kernel 6.11.1
  [20251111_run_platform_manager_10_times.py_PASSED.txt](https://github.com/user-attachments/files/23468562/20251111_run_platform_manager_10_times.py_PASSED.txt)
- Executed platform_manager_hw_test; all items passed
  [w800c_20251125_platform_manager_hw_test.txt](https://github.com/user-attachments/files/23741726/w800c_20251125_platform_manager_hw_test.txt)
- Verified all sysfs attributes under /run/devmap/cplds/{MCB,SCM,SMB,FAN}_CPLD against i2cget bit values
  [20251111_run_devmap_cplds_sysfs_test.py_PASSED.txt](https://github.com/user-attachments/files/23468556/20251111_run_devmap_cplds_sysfs_test.py_PASSED.txt)
  [20251111_run_devmap_sensors_fan_cpld_test.py_PASSED.txt](https://github.com/user-attachments/files/23468557/20251111_run_devmap_sensors_fan_cpld_test.py_PASSED.txt)
- Triggered the FAN watchdog and confirmed PWM behavior after timeout
  [20251111_run_devmap_watchdog_test.py_PASSED.txt](https://github.com/user-attachments/files/23468559/20251111_run_devmap_watchdog_test.py_PASSED.txt)
- Accessed fan module LEDs via /sys/class/leds/fan1 and confirmed correctness via i2cget
  [20251111_led_fan_module_led_test.py_PASSED.txt](https://github.com/user-attachments/files/23468550/20251111_led_fan_module_led_test.py_PASSED.txt)
- Accessed front panel LEDs via sysfs and confirmed correctness via i2cget
  [20251111_led_sys_led_test.py_PASSED.txt](https://github.com/user-attachments/files/23468552/20251111_led_sys_led_test.py_PASSED.txt)
- Read/write front port LEDs via sysfs and verified expected output. Compared front port LED values with raw devmem reads.
  Sequentially programmed port LEDs and verified ordering and color correctness.
  [20251111_port_led_test.py_PASSED.txt](https://github.com/user-attachments/files/23468555/20251111_port_led_test.py_PASSED.txt)
- Verified that all sensors are detected
  [20251111_run_devmap_sensors_test_strict_version.py_PASSED.txt](https://github.com/user-attachments/files/23468558/20251111_run_devmap_sensors_test_strict_version.py_PASSED.txt)
- Read xcvr_ctl via sysfs and compared against raw devmem values
  [20251111_run_devmap_xcvr_ctrl_sysfs_get_test.py_PASSED.txt](https://github.com/user-attachments/files/23468561/20251111_run_devmap_xcvr_ctrl_sysfs_get_test.py_PASSED.txt)
- Triggered the xcvr_reset attribute and verified EEPROM presence/absence behavior.
  [20251111_run_devmap_xcvr_ctrl_reset_test.py_PASSED.txt](https://github.com/user-attachments/files/23468560/20251111_run_devmap_xcvr_ctrl_reset_test.py_PASSED.txt)
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@brandonchuang has updated the pull request. You must reimport the pull request before landing.

@meta-codesync

meta-codesync Bot commented Jan 20, 2026

Copy link
Copy Markdown
Contributor

@RomanChoporov-Meta merged this pull request in c6be5b0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

4 participants