arm-ccn: disable HN-I node reporting error to MN node
The ARM's ccn-504 consists of MN/DT/HN-I/SBSX/HN-F/RN-I/XP components. And HN-I/SBSX/HN-F/RN-F/XP will report error event to MN component. But in ccn driver arm-ccn.c, it only registers 2 handlers to handle events from DT(pmu) and HN-F(l3 cache edac). So when there is an error from HN-I component, the irq handler for ccn won't handle it and it becomes a "nobody cared" irq. [ 0.184044] irq 15: nobody cared (try booting with the "irqpoll" option) [ 0.184049] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.57-rt47-yocto-preempt-rt #1 [ 0.184054] Hardware name: AXM56xx Victoria (DT) [ 0.184057] Call trace: [ 0.184058] dump_backtrace+0x0/0x1a0 [ 0.184069] show_stack+0x24/0x30 [ 0.184075] dump_stack+0xcc/0x108 [ 0.184081] __report_bad_irq+0x54/0xe4 [ 0.184087] note_interrupt+0x2b4/0x300 [ 0.184093] handle_irq_event_percpu+0xb8/0xc0 [ 0.184098] handle_irq_event+0x88/0xf0 [ 0.184102] handle_fasteoi_irq+0xc8/0x2a0 [ 0.184107] __handle_domain_irq+0xbc/0x140 [ 0.184111] gic_handle_irq+0x94/0x160 [ 0.184115] el1_irq+0xcc/0x180 For now I can't figure out why this HN-I error happens and there are some clues as below: 1) The value in HN-I Error Syndrome 0 register is 0x80000de88111291 and the value in HN-I Error Syndrome 1 register is 0x80310232c0. It means that the error happens when some CPU want to access 0x80310232c0. 2) The error happens when kernel call psci_ops.cpu_on, so root cause should be in atf. For this I make a workaround that disable HN-I node reporting error to MN mode. Signed-off-by:Quanyang Wang <quanyang.wang@windriver.com> Signed-off-by:
Bruce Ashfield <bruce.ashfield@gmail.com>
Loading