• Tony Lindgren's avatar
    ARM: dts: Fix booting for secure omaps · f2e2c9d9
    Tony Lindgren authored
    Commit 7ce93f31 (ARM: OMAP2+: Fix more missing data for omap3.dtsi file)
    fixed missing device tree data for omaps, but did not account for some of the
    hardware modules being inaccessible for secure omaps. This causes the
    following error on secure omaps:
    
    Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa0c5048
    SMP ARM
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W    3.13.0-rc2+ #446
    task: ce057b40 ti: ce058000 task.ti: ce058000
    PC is at omap_aes_dma_stop+0x24/0x3c
    LR is at omap_aes_probe+0x1cc/0x584
       psr: 60000113
    sp : ce059e20  ip : ce0b4ee0  fp : 00000000
    r10: c0573ae8  r9 : c0749508  r8 : 00000000
    r7 : ce0b4e00  r6 : 00000000  r5 : ce0b4e10  r4 : ce274890
    r3 : fa0c5048  r2 : 00000048  r1 : 0000002c  r0 : ce274890
    Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    Control: 10c5387d  Table: 80004019  DAC: 00000015
    Process swapper/0 (pid: 1, stack limit = 0xce058248)
    Stack: (0xce059e20 to 0xce05a000)
    9e20: c0749508 0000a1ff 00000000 c016cd8c c06b5a06 ce2a45f0 ce2a4570 ce0b5fb0
    9e40: 00000000 480c5000 480c504f c0abe4e4 00000200 00000000 00000000 00000000
    9e60: ce0b4e10 ce0b4e10 c082da3c c082da3c c02b8c70 c077c610 c0749508 00000000
    9e80: 00000000 c02b9e7c c02b9e64 ce0b4e10 00000000 c02b8b20 ce0b4e10 ce0b4e44
    9ea0: c082da3c c02b8cd8 00000000 ce059eb8 c082da3c c02b7408 ce079edc ce0b1a34
    9ec0: c082da3c c082da3c ce2a0280 00000000 c08158d8 c02b8358 c0663405 c0663405
    9ee0: 00000073 c082da3c c079e4e8 c07ab3bc c0844340 c02b9334 00000000 00000006
    9f00: c079e4e8 c0008920 c067f6bf c0ac7c6b 00000000 c0712e28 00000000 00000000
    9f20: c0712e38 ce059f38 00000093 c0ac7c82 00000000 c0058994 00000000 c07130e8
    9f40: c07127b8 00000093 00000006 00000006 00000001 00000006 00000006 c079e4e8
    9f60: c07ab3bc c0844340 00000093 c0749508 c079e4f4 c0749c64 00000006 00000006
    9f80: c0749508 00000000 00000000 c0517e2c 00000000 00000000 00000000 00000000
    9fa0: 00000000 c0517e34 00000000 c000dfb8 00000000 00000000 00000000 00000000
    9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
    (omap_aes_probe+0x1cc/0x584)
    (platform_drv_probe+0x18/0x48)
    (driver_probe_device+0xb0/0x200)
    (__driver_attach+0x68/0x8c)
    (bus_for_each_dev+0x50/0x88)
    (bus_add_driver+0xcc/0x1c8)
    (driver_register+0x9c/0xe0)
    (do_one_initcall+0x98/0x140)
    (kernel_init_freeable+0x16c/0x23c)
    (kernel_init+0x8/0x100)
    (ret_from_fork+0x14/0x3c)
    Code: e1811002 e5932020 e590300c e0833002 (e593c000)
    
    Let's fix the issue by adding omap34xx-hs.dtsi and omap36xx-hs.dtsi and make
    n900, n9 and n950 to use them. This way we have the aes, sham and timer12
    disabled for secure devices the same way legacy booting does based on the
    omap34xx_gp_hwmod_ocp_ifs and omap36xx_gp_hwmod_ocp_ifs arrays in
    omap_hwmod_3xxx_data.c.
    Reported-by: default avatarSebastian Reichel <sre@debian.org>
    Acked-By: default avatarSebastian Reichel <sre@debian.org>
    Tested-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    f2e2c9d9
omap3-n950-n9.dtsi 3.44 KB