• Yadwinder Singh Brar's avatar
    ARM: EXYNOS: Fix low level debug support · 7ed76e08
    Yadwinder Singh Brar authored
    Presently, using exynos_defconfig with CONFIG_DEBUG_LL and CONFIG_EARLY_PRIN
    on, kernel is not booting, we are getting following:
    
    [    0.000000] ------------[ cut here ]------------
    [    0.000000] kernel BUG at mm/vmalloc.c:1134!
    [    0.000000] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
    [    0.000000] Modules linked in:
    [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.11.0-rc1 #633
    [    0.000000] task: c052ec48 ti: c0524000 task.ti: c0524000
    [    0.000000] PC is at vm_area_add_early+0x54/0x94
    [    0.000000] LR is at add_static_vm_early+0xc/0x60
    
    Its because exynos[4/5]_map_io() function ioremaps a single 512KB memory
    size for all the four uart ports which envelopes the mapping created by
    debug_ll_io_init(), called earlier in exynos_init_io().
    
    This patch removes iodesc entries for UART controller for all Samsung SoC's,
    since now the Samsung uart driver does a ioremap during probe and any needed
    iomapping for earlyprintk will be handled by debug_ll_io_init().
    
    Tested on smdk4412 and smdk5250.
    Signed-off-by: default avatarYadwinder Singh Brar <yadi.brar@samsung.com>
    Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
    7ed76e08
common.c 9.74 KB