lowRISC / lowRISC/opentitan

[reggen] Allow placing interrupt and alert registers at specific offsets

Open
#26,748 0 comments 0 reactions 0 assignees View on GitHub
Tool:reggen
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

### Description

Some IPs currently set `no_auto_intr_regs` or `no_auto_alert_regs` to `True` but then still manually add the respective interrupt/alert registers. This is sometimes done to be able to place them at very specific offsets.
However, this creates issues with automatic testing.
To solve this and to avoid the manual placement we should change the IP hjson format to allow us to specify where the CIP-standard alert / interrupt CSRs are placed.

The following IP blocks could benefit from this change:
- rv_timer
- aon_timer
- racl_ctrl
- rv_plic

Contributor guide

Open the contributing guide

Research direction

Review the reggen IP HJSON format and register-generation paths for rv_timer, aon_timer, racl_ctrl, and rv_plic. Define how requested offsets should be represented and ensure the generated CIP-standard alert and interrupt CSRs are placed accordingly, with automatic testing covering the affected blocks.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.