Skip to content

Commit

Permalink
ARM: exynos: add debug_ll_io_init() call in exynos_init_io()
Browse files Browse the repository at this point in the history
If the early MMU mapping of the UART happens to get booted out of the
TLB between the start of paging_init() and when we finally re-add the
UART at the very end of s3c_init_cpu(), we'll get a hang at bootup if
we've got early_printk enabled.  Avoid this hang by calling
debug_ll_io_init() early.

Without this patch, you can reliably reproduce a hang when early
printk is enabled by adding flush_tlb_all() at the start of
exynos_init_io().  After this patch the hang goes away.

Signed-off-by: Doug Anderson <[email protected]>
Acked-by: Kukjin Kim <[email protected]>
Signed-off-by: Olof Johansson <[email protected]>
  • Loading branch information
dianders authored and olofj committed Jun 8, 2013
1 parent fb565ff commit 9c1fcdc
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/arm/mach-exynos/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,8 @@ int __init exynos_fdt_map_chipid(unsigned long node, const char *uname,

void __init exynos_init_io(struct map_desc *mach_desc, int size)
{
debug_ll_io_init();

#ifdef CONFIG_OF
if (initial_boot_params)
of_scan_flat_dt(exynos_fdt_map_chipid, NULL);
Expand Down

0 comments on commit 9c1fcdc

Please sign in to comment.