oxidecomputer / oxidecomputer/hubris
SP should not enter A0PlusHP if sequencer shows NIC rails didn't come up.
@bcantrill is already working on this.
Since Jun 5, 2023.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 239
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 23
Description
While debugging one of the T6 issue boards, it was noticed the the FPGA was not passing PERST_L through as expected. This in turn, stemmed from the fact that the sequencer had not seen all the NIC rail PGs and thus was not propagating signals as it was not fully sequenced yet. I'll edit tomorrow with more details about what registers can/should be checked.
A few different options for checking this:
- Can check the NicSMStatus register (0x17) for being in the DONE state. If we want to do this I need to go update the enumerations to bring these in which is fine and easy.
- Can check the NicPwrOk bit in STATUS register (0x11). This is asserted when Nic sequencing is done and nic is happy, kind of the TLDR version of NicSMStatus.
In failure cases, it would be good to put NicStatus register (0x20) into a ring buffer. This is expected to be 0x7F and if it isn't one or more rails failed to come up or the PG indication is broken.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.