coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
clint.c
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#include <
mcall.h
>
4
#include <
device/mmio.h
>
5
6
#define SPIKE_CLINT_BASE 0x02000000
7
8
/* This function is used to initialize HLS()->time/HLS()->timecmp */
9
void
mtime_init
(
void
)
10
{
11
long
hart_id = read_csr(mhartid);
12
HLS
()->time = (
uint64_t
*)(
SPIKE_CLINT_BASE
+ 0xbff8);
13
HLS
()->timecmp = (
uint64_t
*)(
SPIKE_CLINT_BASE
+ 0x4000 + 8 * hart_id);
14
}
15
16
void
set_msip
(
int
hartid,
int
val
)
17
{
18
write32
((
void
*)(
SPIKE_CLINT_BASE
+ 4 * (
uintptr_t
)hartid), !!
val
);
19
}
write32
static void write32(void *addr, uint32_t val)
Definition:
mmio.h:40
mmio.h
set_msip
void set_msip(int hartid, int val)
Definition:
clint.c:15
mtime_init
void mtime_init(void)
Definition:
clint.c:8
SPIKE_CLINT_BASE
#define SPIKE_CLINT_BASE
Definition:
clint.c:6
mcall.h
HLS
#define HLS()
Definition:
mcall.h:63
uintptr_t
unsigned long uintptr_t
Definition:
stdint.h:21
uint64_t
unsigned long long uint64_t
Definition:
stdint.h:17
val
u8 val
Definition:
sys.c:300
src
mainboard
emulation
spike-riscv
clint.c
Generated by
1.9.1