Skip to content

Commit

Permalink
Merge pull request riscv#435 from rivos-inc/dev/kbroch/dependabot-upd…
Browse files Browse the repository at this point in the history
…ate-docs-resources-submodule

add dependabot to create PR to update the submodules to latest
  • Loading branch information
wmat authored and hirooih committed Feb 10, 2025
2 parents 7c3cbf6 + 71c19a6 commit 77c0868
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem
version: 2
updates:
- package-ecosystem: gitsubmodule
directory: /
schedule:
interval: daily
19 changes: 12 additions & 7 deletions src/clic.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1004,12 +1004,19 @@ NOTE: Vertical interrupts to higher privilege modes will be taken
preemptively by the hardware, so {mnxti} effectively only ever handles
the next interrupt in the same privilege mode.

Pseudo-code for csrrsi rd, mnxti, uimm[4:0] in M mode:
Pseudo-code for csrrsi|csrrci rd, mnxti, uimm[4:0] in M mode:
[source]
----
// clic.priv, clic.level, clic.id represent the highest-ranked
// interrupt currently present in the CLIC
mstatus |= uimm[4:0]; // Performed regardless of interrupt readiness.
// Performed regardless of interrupt readiness.
if (funct3 == csrrsi) {
mstatus.mie |= uimm[3];
mstatus.sie |= uimm[1];
} else { // csrrci
mstatus.mie &= !uimm[3];
mstatus.sie &= !uimm[1];
}
if (clic.priv==M && clic.level > mcause.mpil && clic.level > mintthresh.th) {
// There is an available interrupt.
if (uimm[4:0] != 0) { // Side-effects should occur.
Expand All @@ -1026,8 +1033,6 @@ Pseudo-code for csrrsi rd, mnxti, uimm[4:0] in M mode:
// No interrupt or in non-CLIC mode.
rd = 0;
}
// When a different CSR instruction is used, the update of mstatus and the test
// for whether side-effects should occur are modified accordingly.
// When a different privileges xnxti CSR is accessed then clic.priv is compared with
// the corresponding privilege and xstatus, xintstatus.xil, xcause.exccode are the
// corresponding privileges CSRs.
Expand All @@ -1039,7 +1044,9 @@ Pseudo-code for csrrs rd, mnxti, rs1 in M mode:
// clic.priv, clic.level, clic.id represent the highest-ranked interrupt currently present in the CLIC
if (rs1 != x0)
{
mstatus |= rs1[4:0]; // Performed regardless of interrupt readiness.
// Performed regardless of interrupt readiness.
mstatus.mie |= rs1[3];
mstatus.sie |= rs1[1];
}
if (clic.priv==M && clic.level > rs1[23:16] && clic.level > mintthresh.th) {
// There is an available interrupt.
Expand All @@ -1058,8 +1065,6 @@ Pseudo-code for csrrs rd, mnxti, rs1 in M mode:
rd = 0;
}
// When a different CSR instruction is used, the update of mstatus and the test
// for whether side-effects should occur are modified accordingly.
// When a different privileges mnxti CSR is accessed then clic.priv is compared with
// the corresponding privilege and mstatus, mintstatus.mil, mcause.exccode are the
// corresponding privileges CSRs.
Expand Down

0 comments on commit 77c0868

Please sign in to comment.