From 8304ee9424cc7700f2b08ba17553c2e48e0bafa8 Mon Sep 17 00:00:00 2001 From: Atish Patra Date: Fri, 21 Dec 2018 21:31:12 -0800 Subject: [PATCH] Disable all interrupts during warm irqchip init. M mode is not expected to recieve any interrupts. S mode interrupts shouldn't be enabled in M mode. Signed-off-by: Atish Patra --- platform/common/irqchip/plic.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/common/irqchip/plic.c b/platform/common/irqchip/plic.c index ece86a7e..61a6bd01 100644 --- a/platform/common/irqchip/plic.c +++ b/platform/common/irqchip/plic.c @@ -80,11 +80,16 @@ int plic_warm_irqchip_init(u32 target_hart, if (plic_hart_count <= target_hart) return -1; + + if (m_cntx_id > -1) { + for (i = 0; i < ie_words; i++) + plic_set_ie(m_cntx_id, i, 0); + } /* By default, enable all IRQs for S-mode of target HART */ if (s_cntx_id > -1) { for (i = 0; i < ie_words; i++) - plic_set_ie(s_cntx_id, i, -1); + plic_set_ie(s_cntx_id, i, 0); } /* By default, enable M-mode threshold */