Remove wrong/useless mxr logic in PMP
This commit is contained in:
parent
5894ddf15c
commit
5819f8eb7e
|
@ -784,8 +784,6 @@ if (PMP_REGIONS > 0) begin: have_pmp
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.rst_n (rst_n),
|
.rst_n (rst_n),
|
||||||
|
|
||||||
.mstatus_mxr (1'b0), // Only used when S mode present
|
|
||||||
|
|
||||||
.cfg_addr (x_pmp_cfg_addr),
|
.cfg_addr (x_pmp_cfg_addr),
|
||||||
.cfg_wen (x_pmp_cfg_wen),
|
.cfg_wen (x_pmp_cfg_wen),
|
||||||
.cfg_wdata (x_pmp_cfg_wdata),
|
.cfg_wdata (x_pmp_cfg_wdata),
|
||||||
|
|
|
@ -12,7 +12,6 @@ module hazard3_pmp #(
|
||||||
) (
|
) (
|
||||||
input wire clk,
|
input wire clk,
|
||||||
input wire rst_n,
|
input wire rst_n,
|
||||||
input wire mstatus_mxr, // make executable readable
|
|
||||||
|
|
||||||
// Config interface passed through CSR block
|
// Config interface passed through CSR block
|
||||||
input wire [11:0] cfg_addr,
|
input wire [11:0] cfg_addr,
|
||||||
|
@ -190,7 +189,6 @@ reg d_m; // Hazard3 extension (M-mode without locking)
|
||||||
reg d_l;
|
reg d_l;
|
||||||
reg d_r;
|
reg d_r;
|
||||||
reg d_w;
|
reg d_w;
|
||||||
reg d_x; // needed because of MXR
|
|
||||||
|
|
||||||
always @ (*) begin: check_d_match
|
always @ (*) begin: check_d_match
|
||||||
integer i;
|
integer i;
|
||||||
|
@ -199,7 +197,6 @@ always @ (*) begin: check_d_match
|
||||||
d_l = 1'b0;
|
d_l = 1'b0;
|
||||||
d_r = 1'b0;
|
d_r = 1'b0;
|
||||||
d_w = 1'b0;
|
d_w = 1'b0;
|
||||||
d_x = 1'b0;
|
|
||||||
// Lowest-numbered match wins, so work down from the top. This should be
|
// Lowest-numbered match wins, so work down from the top. This should be
|
||||||
// inferred as a priority mux structure (cascade mux).
|
// inferred as a priority mux structure (cascade mux).
|
||||||
for (i = PMP_REGIONS - 1; i >= 0; i = i - 1) begin
|
for (i = PMP_REGIONS - 1; i >= 0; i = i - 1) begin
|
||||||
|
@ -209,7 +206,6 @@ always @ (*) begin: check_d_match
|
||||||
d_l = pmpcfg_l[i];
|
d_l = pmpcfg_l[i];
|
||||||
d_r = pmpcfg_r[i];
|
d_r = pmpcfg_r[i];
|
||||||
d_w = pmpcfg_w[i];
|
d_w = pmpcfg_w[i];
|
||||||
d_x = pmpcfg_x[i];
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -279,7 +275,7 @@ end
|
||||||
// M-mode gets to ignore protections, unless the lock bit is set.
|
// M-mode gets to ignore protections, unless the lock bit is set.
|
||||||
|
|
||||||
assign d_kill = (!d_m_mode || d_l || d_m) && (
|
assign d_kill = (!d_m_mode || d_l || d_m) && (
|
||||||
(!d_write && !(d_r || (d_x && mstatus_mxr))) ||
|
(!d_write && !d_r) ||
|
||||||
( d_write && !d_w)
|
( d_write && !d_w)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue