Conversation
Signed-off-by: Jackie425 <jackiejiang425@outlook.com>
There was a problem hiding this comment.
🟡 Changes recommended
The stage-0 st0_req_is_uncacheable change forces uncacheable when cfg_enable_i=0 for all request sources, which can unintentionally suppress scrubber cachedata reads and effectively disable ECC scrubbing while disabled.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR adjusts HPDcache control logic so that CMO prefetch ignores pma.uncacheable only when the cache is enabled, aligning behavior with the “Don’t Care” specification noted in Issue #151 and preventing prefetch from being routed to the uncacheable/error path in that mode.
Changes:
- Updates stage-0 decode of
st0_req_is_uncacheableto special-case CMO prefetch whencfg_enable_i=1. - Updates stage-1 decode of
st1_req_is_uncacheablesimilarly, ensuring prefetch is treated as cacheable when enabled.
File summaries
| File | Description |
|---|---|
| rtl/src/hpdcache_ctrl.sv | Alters stage-0 and stage-1 “uncacheable” classification to ignore pma.uncacheable for CMO prefetch when the cache is enabled. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Signed-off-by: Jackie425 <jackiejiang425@outlook.com>
There was a problem hiding this comment.
🟢 Approval recommended
The change is localized, consistent across stage 0/1 decoding, and directly addresses the reported misrouting of CMO prefetch under pma.uncacheable when the cache is enabled.
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0 new
- Review effort level: Lite
Hi,
Based on #151, this PR proposes one possible way to handle CMO prefetch with
pma.uncacheable.The proposed behavior is:
cfg_enable_i = 0, fence/invalidate/flush can still be handled normally, while prefetch remains load-like and is forced to the uncacheable path, which results in an error.cfg_enable_i = 1, the three other CMO operations keep their current behavior, and prefetch could also treatpma.uncacheableas Don't Care, consistent with the specification.This change implements that interpretation by ignoring
pma.uncacheablefor prefetch only when the cache is enabled.Could you please confirm whether this matches the intended behavior, or whether prefetch is intentionally expected to be treated differently from the other CMO operations?
Thanks.