irq: gicv2: fix GIC not response to USB OTG IRQ

It handles the issue when the bootflow without Miniloader,
i.e. Maskrom => Trust(optional) => U-Boot.

Change-Id: I445225d5cce9abd2117ef468f15774e3fa57e16d
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
Joseph Chen 2019-09-19 15:31:51 +08:00
parent b073251d9c
commit eca6f1ffbf
1 changed files with 11 additions and 2 deletions

View File

@ -330,8 +330,17 @@ static int gic_irq_init(void)
#ifdef CONFIG_GICV2
u32 val;
/* end of interrupt */
gicc_writel(PLATFORM_GIC_MAX_IRQ, GICC_EOIR);
/*
* If system boot without Miniloader:
* "Maskrom => Trust(optional) => U-Boot"
*
* IRQ_USB_OTG must be acked by GICC_EIO due to maskrom jumps to the
* U-Boot in its USB interrupt. Without this ack, the GICC_IAR always
* return a spurious interrupt ID 1023 for USB OTG interrupt.
*/
#ifdef IRQ_USB_OTG
gicc_writel(IRQ_USB_OTG, GICC_EOIR);
#endif
/* disable gicc and gicd */
gicc_writel(0, GICC_CTLR);