Browse Source

bump(prototyper): update aclint and fast-trap versions

Signed-off-by: guttatus <xingzhiang2020@gmail.com>
guttatus 1 day ago
parent
commit
417509397e
2 changed files with 55 additions and 26 deletions
  1. 2 2
      prototyper/prototyper/Cargo.toml
  2. 53 24
      prototyper/prototyper/src/sbi/pmu.rs

+ 2 - 2
prototyper/prototyper/Cargo.toml

@@ -6,7 +6,6 @@ license.workspace = true
 repository.workspace = true
 
 [dependencies]
-aclint = "=0.1.0"
 log = "0.4"
 panic-halt = "1.0.0"
 riscv = "0.12.1"
@@ -23,7 +22,8 @@ sbi-spec = { version = "0.0.8", features = [
     "legacy",
 ], path = "../../library/sbi-spec" }
 serde = { version = "1.0.202", default-features = false, features = ["derive"] }
-fast-trap = { version = "0.1.0", features = ["riscv-m"] }
+aclint = { git = "https://github.com/rustsbi/aclint", rev = "b2136a66" }
+fast-trap = { git = "https://github.com/rustsbi/fast-trap", rev = "8d855afa", features = ["riscv-m"] }
 serde-device-tree = { git = "https://github.com/rustsbi/serde-device-tree", rev = "2a5d6ab7", default-features = false }
 uart_xilinx = { git = "https://github.com/duskmoon314/uart-rs/", rev = "12be9142" }
 xuantie-riscv = { git = "https://github.com/rustsbi/xuantie", rev = "7a521c04" }

+ 53 - 24
prototyper/prototyper/src/sbi/pmu.rs

@@ -1072,30 +1072,59 @@ impl Iterator for CounterMask {
 
 // TODO: If all firmware events are implemented,
 // `PMU_FIRMWARE_EVENT_SUPPORTED` should be removed.
-const PMU_FIRMWARE_EVENT_SUPPORTED: [bool; 22] = [
-    true,  // SBI_PMU_FW_MISALIGNED_LOAD
-    true,  // SBI_PMU_FW_MISALIGNED_STORE
-    false, // SBI_PMU_FW_ACCESS_LOAD
-    false, // SBI_PMU_FW_ACCESS_STORE
-    true,  // SBI_PMU_FW_ILLEGAL_INSN
-    true,  // SBI_PMU_FW_SET_TIMER
-    true,  // SBI_PMU_FW_IPI_SENT
-    true,  // SBI_PMU_FW_IPI_RECEIVED
-    true,  // SBI_PMU_FW_FENCE_I_SENT
-    true,  // SBI_PMU_FW_FENCE_I_RECEIVED
-    true,  // SBI_PMU_FW_SFENCE_VMA_SENT
-    true,  // SBI_PMU_FW_SFENCE_VMA_RECEIVED
-    true,  // SBI_PMU_FW_SFENCE_VMA_ASID_SENT
-    true,  // SBI_PMU_FW_SFENCE_VMA_ASID_RECEIVED
-    true,  // SBI_PMU_FW_HFENCE_GVMA_SENT
-    true,  // SBI_PMU_FW_HFENCE_GVMA_RECEIVED
-    true,  // SBI_PMU_FW_HFENCE_GVMA_VMID_SENT
-    true,  // SBI_PMU_FW_HFENCE_GVMA_VMID_RECEIVED
-    true,  // SBI_PMU_FW_HFENCE_VVMA_SENT
-    true,  // SBI_PMU_FW_HFENCE_VVMA_RECEIVED
-    true,  // SBI_PMU_FW_HFENCE_VVMA_ASID_SENT
-    true,  // SBI_PMU_FW_HFENCE_VVMA_ASID_RECEIVED
-];
+cfg_if::cfg_if! {
+    if #[cfg(feature = "hypervisor")] {
+        const PMU_FIRMWARE_EVENT_SUPPORTED: [bool; 22] = [
+            true,  // SBI_PMU_FW_MISALIGNED_LOAD
+            true,  // SBI_PMU_FW_MISALIGNED_STORE
+            false, // SBI_PMU_FW_ACCESS_LOAD
+            false, // SBI_PMU_FW_ACCESS_STORE
+            true,  // SBI_PMU_FW_ILLEGAL_INSN
+            true,  // SBI_PMU_FW_SET_TIMER
+            true,  // SBI_PMU_FW_IPI_SENT
+            true,  // SBI_PMU_FW_IPI_RECEIVED
+            true,  // SBI_PMU_FW_FENCE_I_SENT
+            true,  // SBI_PMU_FW_FENCE_I_RECEIVED
+            true,  // SBI_PMU_FW_SFENCE_VMA_SENT
+            true,  // SBI_PMU_FW_SFENCE_VMA_RECEIVED
+            true,  // SBI_PMU_FW_SFENCE_VMA_ASID_SENT
+            true,  // SBI_PMU_FW_SFENCE_VMA_ASID_RECEIVED
+            true,  // SBI_PMU_FW_HFENCE_GVMA_SENT
+            true,  // SBI_PMU_FW_HFENCE_GVMA_RECEIVED
+            true,  // SBI_PMU_FW_HFENCE_GVMA_VMID_SENT
+            true,  // SBI_PMU_FW_HFENCE_GVMA_VMID_RECEIVED
+            true,  // SBI_PMU_FW_HFENCE_VVMA_SENT
+            true,  // SBI_PMU_FW_HFENCE_VVMA_RECEIVED
+            true,  // SBI_PMU_FW_HFENCE_VVMA_ASID_SENT
+            true,  // SBI_PMU_FW_HFENCE_VVMA_ASID_RECEIVED
+        ];
+    } else {
+        const PMU_FIRMWARE_EVENT_SUPPORTED: [bool; 22] = [
+            true,  // SBI_PMU_FW_MISALIGNED_LOAD
+            true,  // SBI_PMU_FW_MISALIGNED_STORE
+            false, // SBI_PMU_FW_ACCESS_LOAD
+            false, // SBI_PMU_FW_ACCESS_STORE
+            true,  // SBI_PMU_FW_ILLEGAL_INSN
+            true,  // SBI_PMU_FW_SET_TIMER
+            true,  // SBI_PMU_FW_IPI_SENT
+            true,  // SBI_PMU_FW_IPI_RECEIVED
+            true,  // SBI_PMU_FW_FENCE_I_SENT
+            true,  // SBI_PMU_FW_FENCE_I_RECEIVED
+            true,  // SBI_PMU_FW_SFENCE_VMA_SENT
+            true,  // SBI_PMU_FW_SFENCE_VMA_RECEIVED
+            true,  // SBI_PMU_FW_SFENCE_VMA_ASID_SENT
+            true,  // SBI_PMU_FW_SFENCE_VMA_ASID_RECEIVED
+            false, // SBI_PMU_FW_HFENCE_GVMA_SENT
+            false, // SBI_PMU_FW_HFENCE_GVMA_RECEIVED
+            false, // SBI_PMU_FW_HFENCE_GVMA_VMID_SENT
+            false, // SBI_PMU_FW_HFENCE_GVMA_VMID_RECEIVED
+            false, // SBI_PMU_FW_HFENCE_VVMA_SENT
+            false, // SBI_PMU_FW_HFENCE_VVMA_RECEIVED
+            false, // SBI_PMU_FW_HFENCE_VVMA_ASID_SENT
+            false, // SBI_PMU_FW_HFENCE_VVMA_ASID_RECEIVED
+        ];
+    }
+}
 
 pub fn pmu_firmware_counter_increment(firmware_event: usize) {
     let pmu_state = &mut hart_context_mut(current_hartid()).pmu_state;