@@ -268,6 +268,12 @@ interface core_ibex_pmp_fcov_if import ibex_pkg::*; #(
268
268
(binsof (cp_req_type_iside) intersect { PMP_ACC_EXEC } &&
269
269
binsof (cp_region_priv_bits) intersect { X , XW , XR , XWR , LX , LXW , LXR , LXWR } &&
270
270
binsof (pmp_iside_req_err) intersect { 1 } );
271
+ illegal_bins illegal_deny_exec_machine_unlocked =
272
+ // Ensuring in machine mode when MML is low, we are in X allowed configuration
273
+ (binsof (cp_region_priv_bits) intersect { R , W , WR } &&
274
+ binsof (cp_req_type_iside) intersect { PMP_ACC_EXEC } &&
275
+ binsof (cp_priv_lvl_iside) intersect { PRIV_LVL_M } &&
276
+ binsof (pmp_iside_req_err) intersect { 1 } );
271
277
illegal_bins illegal_machine_deny_exec =
272
278
// Ensuring MML is high and we are in a X allowed configuration in Machine Mode
273
279
(binsof (cp_region_priv_bits) intersect { NONE , MML_XM_XU , MML_XRM_XU , MML_XRM ,
@@ -320,6 +326,12 @@ interface core_ibex_pmp_fcov_if import ibex_pkg::*; #(
320
326
(binsof (cp_region_priv_bits) intersect { X , XW , XR , XWR , LX , LXW , LXR , LXWR } &&
321
327
binsof (cp_req_type_iside2) intersect { PMP_ACC_EXEC } &&
322
328
binsof (pmp_iside2_req_err) intersect { 1 } );
329
+ illegal_bins illegal_deny_exec_machine_unlocked =
330
+ // Ensuring in machine mode when MML is low, we are in X allowed configuration
331
+ (binsof (cp_region_priv_bits) intersect { R , W , WR } &&
332
+ binsof (cp_req_type_iside2) intersect { PMP_ACC_EXEC } &&
333
+ binsof (cp_priv_lvl_iside2) intersect { PRIV_LVL_M } &&
334
+ binsof (pmp_iside2_req_err) intersect { 1 } );
323
335
illegal_bins illegal_machine_deny_exec =
324
336
// Ensuring MML is high and we are in a X allowed configuration in Machine Mode
325
337
(binsof (cp_region_priv_bits) intersect { NONE , MML_XM_XU , MML_XRM_XU , MML_XRM , MML_XM } &&
0 commit comments