Case study
p2afan: mapping ASPEED BMC fan control through the P2A bridge
p2afan investigates the Tyan FT77C-B7079 BMC and controls its ASPEED AST2400 fan PWM registers from the host through the PCIe-to-AHB bridge. Its write-up maps BAR1, the PWM block and firmware layout, while the Python controller computes duty from IPMI, hwmon or command output.
- Targets
- Firmware
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Evidence class
- C2 code & docs, no demo or download
- Stars
- 1
- Last commit
- 2026-10-02
- Language
- Python
- License (GitHub)
- MIT
GitHub data as of 2026-11-10
Evidence
- Observed
- Code and documentation observed; no download method or demo found.
- Checked
- 2026-11-08
Requirements & limits
- Prerequisites: ASPEED AST2400/AST2500 BMC with an enabled, unlocked P2A bridge; root access, ipmitool and /dev/ipmi0.
- Prerequisites: Source installation requires Python 3.11–3.14.
- Limits: The measured register and sensor values come from one Tyan FT77C-B7079 chassis and must be re-derived for other machines.
- License: MIT license.
Cite
BibTeX
@misc{p2afan-case,
title = {{p2afan: mapping ASPEED BMC fan control through the P2A bridge}},
howpublished = {\url{https://github.com/larkinwc/p2afan}},
url = {https://github.com/larkinwc/p2afan},
urldate = {2026-11-06},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/p2afan-case/}}
}Plain text
p2afan: mapping ASPEED BMC fan control through the P2A bridge. https://github.com/larkinwc/p2afan (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/p2afan-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- docs/bmc-re.md GitHub · larkinwc/p2afan · Revision 2fe3417
- README.md GitHub · larkinwc/p2afan · Revision 2fe3417
- re/firmware-findings.md GitHub · larkinwc/p2afan · Revision 2fe3417
More in Firmware and hardware
- Cisco CP-9951 DOOM: mapping phone input for a native game port · Case study
- Zeppelin Air: reconstructing USB firmware recovery · Case study
- EmuWorks: emulating NumWorks N0110 calculator hardware · Case study
- CH899: reconstructing the clock's MM32–ESP exchange · Case study
- telink-usb-ota: reconstructing Telink USB-HID firmware updates · Case study
- K2 OpenKlipper: reconstructing the Creality K2 control stack · Case study
All 260 entries in Firmware and hardwareFirmware and hardware case studies (175)