Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

QSFP/I2C: Ability to request protocol resets

Aperta
#116 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@Aaron-Hartwig ci sta già lavorando.

Dal 17/11/2023.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

Front IO - QSFPx32

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di oxidecomputer/quartz

Tutte le issue di oxidecomputer/quartz

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.