• Tony Lindgren's avatar
    ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init · 57df5380
    Tony Lindgren authored
    Some omaps are producing imprecise external aborts because we are
    wrongly trying to init SRAM for device tree based booting. Only
    omap3 is still using the legacy SRAM code, so we need to make it
    omap3 specific. Otherwise we can get errors like this on at least
    dm814x:
    
    Unhandled fault: imprecise external abort (0xc06) at 0xc08b156c
    ...
    (omap_rev) from [<c08b12e0>] (omap_sram_init+0xf8/0x3e0)
    (omap_sram_init) from [<c08aca0c>] (omap_sdrc_init+0x10/0xb0)
    (omap_sdrc_init) from [<c08b581c>] (pdata_quirks_init+0x18/0x44)
    (pdata_quirks_init) from [<c08b5478>] (omap_generic_init+0x10/0x1c)
    (omap_generic_init) from [<c08a57e0>] (customize_machine+0x1c/0x40)
    (customize_machine) from [<c00098a4>] (do_one_initcall+0x80/0x1dc)
    (do_one_initcall) from [<c08a2ec4>] (kernel_init_freeable+0x218/0x2e8)
    (kernel_init_freeable) from [<c063a554>] (kernel_init+0x8/0xec)
    (kernel_init) from [<c000f890>] (ret_from_fork+0x14/0x24)
    
    Let's fix the issue by making sure omap_sdrc_init only gets called for
    omap3. To do that, we need to have compatible "ti,omap3" in the dts
    files. And let's also use "ti,omap3630" instead of "ti,omap36xx" like
    we're supposed to.
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    57df5380
board-generic.c 8.55 KB