[cheriot,rtl] Debug Mode: bounds override results, silent SR fault, forwarded suppressed write
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- operating-systems
Línea de trabajo
Start with the Debug Mode section in debug.rst and the cited RTL locations: ibex_cheriot_ex.sv:774-775, ibex_cheriot_ex.sv:858, ibex_controller.sv:239-241, and ibex_wb_stage.sv:191. Trace the bounds, SR fault, and writeback forwarding behavior against the provided SymbiYosys observations. Done means the intended RTL or documentation changes are decided and the suppressed-value forwarding case is addressed.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The "Debug Mode in CHERIoT" section that #2555 added to debug.rst does not cover three details yet. Two are questions on whether the RTL or the text should change. The third looks like a defect. All three predate #2555.
The bounds override changes instruction results, not only the load and store checks. In Debug Mode, the bounds check never reports a violation (ibex_cheriot_ex.sv:774-775). So CTestSubset can return 1 when the second capability's bounds extend outside the first. CSeal and CUnseal can keep a tag that their Sail bounds test would clear. Dropping the override would change only these three results, because the load and store fault has its own Debug Mode term (ibex_cheriot_ex.sv:858). Should the override go, or should the list in debug.rst mention these results?
The SR check on CSpecialRW also differs from the one on CSR accesses. In Debug Mode, when PCC lacks SR, a CSpecialRW of an implemented SCR writes neither its destination register nor the SCR, and raises no exception. An access to an SR-protected CSR such as dpc still traps in that state (ibex_controller.sv:239-241). PCC can lose SR in Debug Mode through a CJALR to a tagged, executable capability without SR. Should the SR fault also trap in Debug Mode, as a CSR access does, or should debug.rst say that the SCR access is suppressed?
The next instruction can still see the suppressed value. With the writeback stage present, forwarding follows rf_write_wb_o (ibex_wb_stage.sv:191). That signal still includes the decoder's write enable. The fault clears the CHERIoT write enable, not the decoder's. The register write on line 184 uses the CHERIoT one, so in this sequence c11 keeps its old value. The CMove can still copy mscratchc into c10:
cspecialrw c11, mscratchc, c6 # PCC lacks SR
cmove c10, c11
A CJALR whose fault is masked forwards its link capability the same way. This looks worth fixing whichever way the SR question goes.
I checked these with SymbiYosys on ibex_core at master d513671d. The parameters are based on opentitan, with CHERIoT on and the register file included. Each run starts from reset and has no data-memory transactions. In Debug Mode each case is reachable in a few instructions from the reset capabilities. Outside Debug Mode the proof shows that, for well-formed operands, CTestSubset returns 1 and CSeal or CUnseal keep the tag only when the bounds condition holds. On a local tree where the SR fault traps, and with other masked faults excluded, no following instruction completes with the suppressed value. I did not simulate these, because no upstream bench enables CHERIoT.
- Lenguaje dominante
- SystemVerilog
- Estrellas
- 2.2k
- Forks
- 836
- Merge medio
- 5 d 8 h
- PR fusionados (30 d)
- 22
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de lowRISC/ibex
-
[Bug Report] rvfi_intr is not set on the first instruction of an exception handlerPosiblemente ocupada @h-filali la tomó hace 6 días. AbiertoType:Bug
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
lowRISC/ibex#2556 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Type:Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
lowRISC/ibex#2528 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
mip documentation errorAbiertoType:Bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 2 días
-
[doc] Document basic commands for running/checking IbexPosiblemente ocupada @shrutikbalwan la tomó hace 46 días. AbiertoComponent:Doc Good First Issue Type:Task
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
lowRISC/ibex#741 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
Los mantenedores suelen responder en 2 días
Todos los issues de lowRISC/ibex
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 89/100
-
Ship /Local/Applications, the Local domain's Applications folderPosiblemente ocupada @pkgdemon la tomó hoy. Abiertoarea:base enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 94/100
nextbsd/nextbsd-userland#612 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día