Browse Source

Improve PMP number/granularity error messages

pull/1233/head
Andrew Waterman 3 years ago
parent
commit
570eca63d8
  1. 7
      riscv/processor.cc

7
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();
}

Loading…
Cancel
Save