diff options
author | Andrew Waterman <andrew@sifive.com> | 2023-01-19 17:35:26 -0800 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2023-01-19 17:35:26 -0800 |
commit | 570eca63d847a423d140e7e29f62236dc944b2d5 (patch) | |
tree | 2211c5f725c8c323bf76cee65c6258a641625f55 | |
parent | 42ddc543ed4a64b7f8ebf8035e6ee4b1ab569f1b (diff) | |
download | spike-570eca63d847a423d140e7e29f62236dc944b2d5.zip spike-570eca63d847a423d140e7e29f62236dc944b2d5.tar.gz spike-570eca63d847a423d140e7e29f62236dc944b2d5.tar.bz2 |
Improve PMP number/granularity error messages
-rw-r--r-- | riscv/processor.cc | 7 |
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(); } |