Software APIs
sw
device
lib
testing
rv_plic_testutils.c
1
// Copyright lowRISC contributors (OpenTitan project).
2
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3
// SPDX-License-Identifier: Apache-2.0
4
5
#include "sw/device/lib/testing/rv_plic_testutils.h"
6
7
#include "
sw/device/lib/dif/dif_base.h
"
8
#include "
sw/device/lib/dif/dif_rv_plic.h
"
9
#include "
sw/device/lib/runtime/log.h
"
10
#include "sw/device/lib/testing/rand_testutils.h"
11
#include "sw/device/lib/testing/test_framework/check.h"
12
13
void
rv_plic_testutils_irq_range_enable(dif_rv_plic_t *plic,
14
dif_rv_plic_target_t
target,
15
dif_rv_plic_irq_id_t
start_irq_id,
16
dif_rv_plic_irq_id_t
end_irq_id) {
17
for
(
dif_rv_plic_irq_id_t
irq_id = start_irq_id; irq_id <= end_irq_id;
18
++irq_id) {
19
uint32_t priority = rand_testutils_gen32_range(
kDifRvPlicMinPriority
+ 1,
20
kDifRvPlicMaxPriority
);
21
CHECK_DIF_OK(
dif_rv_plic_irq_set_priority
(plic, irq_id, priority));
22
CHECK_DIF_OK(
23
dif_rv_plic_irq_set_enabled
(plic, irq_id, target,
kDifToggleEnabled
));
24
}
25
CHECK_DIF_OK(
26
dif_rv_plic_target_set_threshold
(plic, target,
kDifRvPlicMinPriority
));
27
}
Return to
OpenTitan Documentation