QSFP/I2C: Ability to request protocol resets
@Aaron-Hartwig ci sta già lavorando.
Dal 17/11/2023.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
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?
- Lingua principale
- VHDL
- Stelle
- 24
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di oxidecomputer/quartz
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
oxidecomputer/quartz#535 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
oxidecomputer/quartz#534 ·
-
VHDL ignition controllerAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
oxidecomputer/quartz#533 ·
-
FPGA-FPGA linkForse già presa @nathanaelhuffman l’ha presa 19 giorni fa. Aperta
oxidecomputer/quartz#532 · 1 assegnatario ·
-
QSFP module controlAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
oxidecomputer/quartz#531 ·