diff options
Diffstat (limited to 'roms/opensbi/include/sbi_utils/irqchip')
-rw-r--r-- | roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h | 26 | ||||
-rw-r--r-- | roms/opensbi/include/sbi_utils/irqchip/plic.h | 29 |
2 files changed, 55 insertions, 0 deletions
diff --git a/roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h b/roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h new file mode 100644 index 000000000..13ef6f711 --- /dev/null +++ b/roms/opensbi/include/sbi_utils/irqchip/fdt_irqchip.h @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020 Western Digital Corporation or its affiliates. + * + * Authors: + * Anup Patel <anup.patel@wdc.com> + */ + +#ifndef __FDT_IRQCHIP_H__ +#define __FDT_IRQCHIP_H__ + +#include <sbi/sbi_types.h> + +struct fdt_irqchip { + const struct fdt_match *match_table; + int (*cold_init)(void *fdt, int nodeoff, const struct fdt_match *match); + int (*warm_init)(void); + void (*exit)(void); +}; + +void fdt_irqchip_exit(void); + +int fdt_irqchip_init(bool cold_boot); + +#endif diff --git a/roms/opensbi/include/sbi_utils/irqchip/plic.h b/roms/opensbi/include/sbi_utils/irqchip/plic.h new file mode 100644 index 000000000..0e56d801e --- /dev/null +++ b/roms/opensbi/include/sbi_utils/irqchip/plic.h @@ -0,0 +1,29 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2019 Western Digital Corporation or its affiliates. + * + * Authors: + * Anup Patel <anup.patel@wdc.com> + */ + +#ifndef __IRQCHIP_PLIC_H__ +#define __IRQCHIP_PLIC_H__ + +#include <sbi/sbi_types.h> + +struct plic_data { + unsigned long addr; + unsigned long num_src; +}; + +int plic_warm_irqchip_init(struct plic_data *plic, + int m_cntx_id, int s_cntx_id); + +int plic_cold_irqchip_init(struct plic_data *plic); + +void plic_set_thresh(struct plic_data *plic, u32 cntxid, u32 val); + +void plic_set_ie(struct plic_data *plic, u32 cntxid, u32 word_index, u32 val); + +#endif |