Software APIs
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
10#include "sw/device/lib/testing/rand_testutils.h"
11#include "sw/device/lib/testing/test_framework/check.h"
12
13void rv_plic_testutils_irq_range_enable(dif_rv_plic_t *plic,
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}