• Magnus Damm's avatar
    ARM: shmobile: r8a7778: Instantiate GIC from C board code in legacy builds · 1fbbc3f0
    Magnus Damm authored
    As of commit 9a1091ef ("irqchip: gic: Support hierarchy irq
    domain."), Bock-W legacy hangs during boot with:
    
    Unable to handle kernel paging request at virtual address cf86a128
    pgd = c0004000
    [cf86a128] *pgd=6f80041e(bad)
    Internal error: Oops: 8000000d [#1] SMP ARM
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-rc4 #1
    Hardware name: bockw
    task: cf823b40 ti: cf824000 task.ti: cf824000
    PC is at 0xcf86a128
    LR is at request_threaded_irq+0xbc/0x124
    
    This happens because the IRQ numbers of the GIC are now virtual, and no
    longer match the hardcoded hardware IRQ numbers in the platform board
    code.
    
    To fix this, instantiate the GIC from platform board code when compiling
    a legacy kernel, like is done for the sh73a0 and r8a7740 legacy code.
    
    Follows same style as the r8a7740 legacy GIC fix by Geert Uytterhoeven,
    thanks to him for the initial work.
    Signed-off-by: default avatarMagnus Damm <damm+renesas@opensource.se>
    Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
    1fbbc3f0
setup-r8a7778.c 17.3 KB