summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython
diff options
context:
space:
mode:
authorPatrick NC Lin <patrick.nc.lin.wiwynn@gmail.com>2025-06-25 06:05:50 +0300
committerPatrick Williams <patrick@stwcx.xyz>2025-07-02 21:33:42 +0300
commit12d8a2fe3bc1924fe714c18097910b08c5bd3af2 (patch)
tree86c405c01c73752d8521ba622afe4238b417dd43 /meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython
parente030b774f8eab385f8e9f03ba6308d6e27233326 (diff)
downloadopenbmc-12d8a2fe3bc1924fe714c18097910b08c5bd3af2.tar.xz
meta-facebook: yosemite4: Add fan missing detection mechanism
Summary: Introduce two-stage fan missing handling to protect the system from thermal risks due to insufficient cooling. Description: This commit adds mechanisms to detect and respond to fan rotor missing events, covering both pre-boot and runtime conditions. Case 1: Fan board missing before power-on If the fan board is missing before power-on, its FRU will not be detected. A new `monitor-fan-sensor.service` is introduced to run after `multi-user.target` is reached. It checks the number of functional fan rotors. If < 22 rotors are detected, it restarts the fan sensor once and checks again. If there are still more than 2 missing rotors, an event log is recorded and 8 blades are shut down via AC off. If the rotor count recovers, no shutdown is triggered. Case 2: Fan rotor missing at runtime If fan rotors become missing during runtime, its DBus property will show `"Value" = NaN`, `"Available" = true`, and `"Functional" = false`. A new D-Bus monitor file named `fan-rotor-missing-poweroff.yaml` is added to detect this condition. If more than 2 rotors are missing, the system restarts the fan sensor and checks again. If more than 2 rotors are still missing, it logs an event and shuts down 8 blades via AC off. If rotor count recovers, no shutdown occurs. Additional fix: While testing Case 1, it was found that if the system fails to detect a fanboard FRU during boot-up, it hangs at `yosemite4-schematic-init`. This blocks other services from proceeding. To resolve this, a timeout is added when reading the fanboard FRU. If still missing after timeout, the FSC source falls back to `"Unknown"`. This ensures the Watchdog timeout uses a default value, allowing system boot to proceed. Motivation: Requested by the Thermal team. The goal is to ensure the system has protection to avoid thermal damage when fans are missing. Test Plan: - Build and flash the firmware. - Simulate power-on with fan board removed and confirm the mechanism logs an event and shuts down 8 blades if more than 2 rotors remain missing. - Simulate fan rotor missing at runtime and confirm the system retries once, logs event, and shuts down 8 blades if missing count persists. Change-Id: I6e4c6da932660804efca5ec1b7b09d9380ea6d34 Signed-off-by: Patrick NC Lin <patrick.nc.lin.wiwynn@gmail.com>
Diffstat (limited to 'meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython')
0 files changed, 0 insertions, 0 deletions