aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2023-01-19 17:35:26 -0800
committerAndrew Waterman <andrew@sifive.com>2023-01-19 17:35:26 -0800
commit570eca63d847a423d140e7e29f62236dc944b2d5 (patch)
tree2211c5f725c8c323bf76cee65c6258a641625f55
parent42ddc543ed4a64b7f8ebf8035e6ee4b1ab569f1b (diff)
downloadspike-570eca63d847a423d140e7e29f62236dc944b2d5.zip
spike-570eca63d847a423d140e7e29f62236dc944b2d5.tar.gz
spike-570eca63d847a423d140e7e29f62236dc944b2d5.tar.bz2
Improve PMP number/granularity error messages
-rw-r--r--riscv/processor.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/riscv/processor.cc b/riscv/processor.cc
index 39096e9..27ca995 100644
--- a/riscv/processor.cc
+++ b/riscv/processor.cc
@@ -583,7 +583,7 @@ void processor_t::set_pmp_num(reg_t n)
{
// check the number of pmp is in a reasonable range
if (n > state.max_pmp) {
- fprintf(stderr, "error: bad number of pmp regions: '%ld' from the dtb\n", (unsigned long)n);
+ fprintf(stderr, "error: number of PMP regions requested (%" PRIu64 ") exceeds maximum (%d)\n", n, state.max_pmp);
abort();
}
n_pmp = n;
@@ -592,8 +592,9 @@ void processor_t::set_pmp_num(reg_t n)
void processor_t::set_pmp_granularity(reg_t gran)
{
// check the pmp granularity is set from dtb(!=0) and is power of 2
- if (gran < (1 << PMP_SHIFT) || (gran & (gran - 1)) != 0) {
- fprintf(stderr, "error: bad pmp granularity '%ld' from the dtb\n", (unsigned long)gran);
+ unsigned min = 1 << PMP_SHIFT;
+ if (gran < min || (gran & (gran - 1)) != 0) {
+ fprintf(stderr, "error: PMP granularity (%" PRIu64 ") must be a power of two and at least %u\n", gran, min);
abort();
}