From f7b50f4721e95f5a677416bcc4c4a10b3e310906 Mon Sep 17 00:00:00 2001 From: David Harris Date: Fri, 25 Aug 2023 18:41:03 -0700 Subject: [PATCH] Preparing to merge with CBO* changes --- config/buildroot/config.vh | 12 ++++++------ config/fpga/config.vh | 12 ++++++------ config/rv64gc/config.vh | 8 ++++---- src/ieu/controller.sv | 4 +++- src/mmu/tlb/tlbmixer.sv | 2 +- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/config/buildroot/config.vh b/config/buildroot/config.vh index b8d9608f1..38960c735 100644 --- a/config/buildroot/config.vh +++ b/config/buildroot/config.vh @@ -42,12 +42,12 @@ localparam ZICNTR_SUPPORTED = 1; localparam ZIHPM_SUPPORTED = 1; localparam COUNTERS = 12'd32; localparam ZFH_SUPPORTED = 0; -localparam SSTC_SUPPORTED = 0; -localparam ZICBOM_SUPPORTED = 0; -localparam ZICBOZ_SUPPORTED = 0; -localparam ZICBOP_SUPPORTED = 0; -localparam SVPBMT_SUPPORTED = 0; -localparam SVNAPOT_SUPPORTED = 0; +localparam SSTC_SUPPORTED = 1; +localparam ZICBOM_SUPPORTED = 1; +localparam ZICBOZ_SUPPORTED = 1; +localparam ZICBOP_SUPPORTED = 1; +localparam SVPBMT_SUPPORTED = 1; +localparam SVNAPOT_SUPPORTED = 1; localparam SVINVAL_SUPPORTED = 1; // LSU microarchitectural Features diff --git a/config/fpga/config.vh b/config/fpga/config.vh index bd08cd11d..7e582fabb 100644 --- a/config/fpga/config.vh +++ b/config/fpga/config.vh @@ -44,12 +44,12 @@ localparam COUNTERS = 12'd32; localparam ZICNTR_SUPPORTED = 1; localparam ZIHPM_SUPPORTED = 1; localparam ZFH_SUPPORTED = 0; -localparam SSTC_SUPPORTED = 0; -localparam ZICBOM_SUPPORTED = 0; -localparam ZICBOZ_SUPPORTED = 0; -localparam ZICBOP_SUPPORTED = 0; -localparam SVPBMT_SUPPORTED = 0; -localparam SVNAPOT_SUPPORTED = 0; +localparam SSTC_SUPPORTED = 1; +localparam ZICBOM_SUPPORTED = 1; +localparam ZICBOZ_SUPPORTED = 1; +localparam ZICBOP_SUPPORTED = 1; +localparam SVPBMT_SUPPORTED = 1; +localparam SVNAPOT_SUPPORTED = 1; localparam SVINVAL_SUPPORTED = 1; // LSU microarchitectural Features diff --git a/config/rv64gc/config.vh b/config/rv64gc/config.vh index bd4e2f050..16e50b899 100644 --- a/config/rv64gc/config.vh +++ b/config/rv64gc/config.vh @@ -48,10 +48,10 @@ localparam ZIHPM_SUPPORTED = 1; localparam ZFH_SUPPORTED = 0; localparam SSTC_SUPPORTED = 1; localparam ZICBOM_SUPPORTED = 1; -localparam ZICBOZ_SUPPORTED = 0; -localparam ZICBOP_SUPPORTED = 0; -localparam SVPBMT_SUPPORTED = 0; -localparam SVNAPOT_SUPPORTED = 0; +localparam ZICBOZ_SUPPORTED = 1; +localparam ZICBOP_SUPPORTED = 1; +localparam SVPBMT_SUPPORTED = 1; +localparam SVNAPOT_SUPPORTED = 1; localparam SVINVAL_SUPPORTED = 1; // LSU microarchitectural Features diff --git a/src/ieu/controller.sv b/src/ieu/controller.sv index ecb1e6076..e923f1e3f 100644 --- a/src/ieu/controller.sv +++ b/src/ieu/controller.sv @@ -375,12 +375,14 @@ module controller import cvw::*; #(parameter cvw_t P) ( LSUPrefetchD = 1'b0; ImmSrcD = PreImmSrcD; if (P.ZICBOP_SUPPORTED & (InstrD[14:0] == 15'b110_00000_0010011)) begin // ori with destiation x0 is hint for Prefetch - case (Rs2D) // which type of prefectch? Note: prefetch.r and .w are handled the same in Wally + /* verilator lint_off CASEINCOMPLETE */ + case (Rs2D) // which type of prefectch? Note: prefetch.r and .w are handled the same in Wally 5'b00000: IFUPrefetchD = 1'b1; // prefetch.i 5'b00001: LSUPrefetchD = 1'b1; // prefetch.r 5'b00011: LSUPrefetchD = 1'b1; // prefetch.w // default: not a prefetch hint endcase + /* verilator lint_on CASEINCOMPLETE */ if (IFUPrefetchD | LSUPrefetchD) ImmSrcD = 3'b001; // use S-type immediate format for prefetches end end diff --git a/src/mmu/tlb/tlbmixer.sv b/src/mmu/tlb/tlbmixer.sv index a19d5a2eb..9652e21ef 100644 --- a/src/mmu/tlb/tlbmixer.sv +++ b/src/mmu/tlb/tlbmixer.sv @@ -64,7 +64,7 @@ module tlbmixer import cvw::*; #(parameter cvw_t P) ( if (P.SVNAPOT_SUPPORTED) begin // 64 KiB contiguous NAPOT translations suported logic [3:0] PPNMixedBot; - mux2 #(4) napotmux(PPNMixed[3:0], VPN, PTE_N, PPNMixedBot); + mux2 #(4) napotmux(PPNMixed[3:0], VPN[3:0], PTE_N, PPNMixedBot); assign PPNMixed2 = {PPNMixed[P.PPN_BITS-1:4], PPNMixedBot}; /* // Generalized NAPOT implementation supporting various sized contiguous regions