blob: b2fec229363b9d2f5024fa30af71fabb9de6f4e6 [file] [edit]
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (c) 2025 Yao Zi <ziyao@disroot.org>
*/
#include <asm/io.h>
#include <cpu_func.h>
#include <linux/bitops.h>
#define CSR_MHCR 0x7c1
#define CSR_MHCR_IE BIT(0)
#define CSR_MHCR_DE BIT(1)
#if CONFIG_IS_ENABLED(RISCV_MMODE)
void icache_enable(void)
{
csr_write(CSR_MHCR, csr_read(CSR_MHCR) | CSR_MHCR_IE);
}
void dcache_enable(void)
{
csr_write(CSR_MHCR, csr_read(CSR_MHCR) | CSR_MHCR_DE);
}
int icache_status(void)
{
return (csr_read(CSR_MHCR) & CSR_MHCR_IE) != 0;
}
int dcache_status(void)
{
return (csr_read(CSR_MHCR) & CSR_MHCR_DE) != 0;
}
#endif /* CONFIG_IS_ENABLED(RISCV_MMODE) */