QSFP/I2C: Ability to request protocol resets
@Aaron-Hartwig 已经在做这个了。
开始于 2023年11月17日。
评估
这个 Issue 还没有评估数据。
描述
Per SFF-8636 section 5.2.2:
Synchronization issues may cause the master and slave state machines to disagree on the specific bit location currently being transferred, the type of operation or even if an operation is in progress. The 2-wire interface protocol has no explicitly defined reset mechanism. The following procedure may force completion of the current operation and cause the slave to release SDA.
a) The master shall provide up to nine SCL clock cycles (drive low, then high) to the slave.
b) The master shall monitor SDA while SCL is high on each cycle.
c) If the slave releases SDA, it will be high and the master shall initiate a START condition.
d) If SDA remains low after a full nine clock cycles the protocol reset has failed.
The I2CCore::Operation enum should be expanded to accommodate a ProtocolReset variant. Per the above, the I2CCore state machine would need to clock out 9 cycles while reading SDA. If SDA is or transitions high during that period, the peripheral has released the bus. If not, the protocol reset has failed.
From the QsfpModuleController perspective, we will need to decide when this should be done. All our module I2C busses are point to point, so we should never get an unexpected NACK. In the case we do receive one, perhaps we should execute a protocol reset?
- 主要语言
- VHDL
- 星标
- 24
- 派生
- 2
- 平均合并
- 41 分钟
- 30 天内合并 PR
- 6
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
oxidecomputer/quartz 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 35/100
oxidecomputer/quartz#542 ·
-
难度 5/5 一周以上 新手友好度 25/100
oxidecomputer/quartz#535 ·
-
难度 3/5 1-2 天 新手友好度 45/100
oxidecomputer/quartz#534 ·
-
难度 5/5 一周以上 新手友好度 20/100
oxidecomputer/quartz#533 ·
-
FPGA-FPGA link可能重新可做 @nathanaelhuffman 于 38 天前认领,目前没有进行中的 PR。 未关闭
oxidecomputer/quartz#532 · 已指派 1 人 ·