summaryrefslogtreecommitdiff
path: root/na/drivers/plic.cc
blob: f640a2a58eb10b819b7fd3448bded47024908644 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright (C) 2026 Richard Qin */

/*
 * plic.cc — Platform-Level Interrupt Controller stub
 */

#include <lume/fdt.h>
#include <lume/vmm.h>
#include <arch/config.h>

void plic_init() {
    /* 
     * In a fully implemented driver, we would discover the PLIC base 
     * and size via FDT. For now, we map the default QEMU virt PLIC.
     */
    uint64 plic_pa = arch::kDefaultPlicPA;
    /* QEMU virt PLIC is 0x4000000 in size */
    vmm_map_kernel_mmio(plic_pa, 0x4000000);
}

void plic_init_ap() {
    /* AP per-CPU init */
}