A Disappearing Service Processor
5 months ago
- #Hardware Debugging
- #Rust
- #Embedded Systems
- 氧化机架设计优先考虑网络访问而非物理访问,服务处理器(SP)可通过管理网络进行连接。
- 调试SP从网络断开的问题时,需分析CPU活动、网络计数器、风扇状态等系统指标。
- SP专用操作系统Hubris采用任务优先级机制,曾推测无限崩溃循环导致任务饥饿,后通过调整任务重启延迟解决。
- 考虑到手动栈大小分配,曾怀疑Hubris存在栈溢出问题,但内核栈余量充足,故排除该可能性。
- 升级至使用SWD调试接口后发现CPU无法暂停,指向FPGA与FMC总线可能存在故障。
- 采用向量捕获复位技术保留Hubris内存状态,实现不完全停止CPU的调试。
- 修复FPGA时序问题后故障依旧,进而研究CPU缓存行为与内存访问属性。
- 根本原因是内核与任务访问FMC总线时内存属性不匹配,通过将FMC基地址与设备内存属性对齐解决。
- 该案例凸显了厂商文档在调试硬件-软件复杂交互时的重要性。