diff options
author | Laurentiu TUDOR <Laurentiu.Tudor@freescale.com> | 2013-07-03 17:13:15 +0300 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2013-08-07 18:38:06 -0500 |
commit | 4e21b94c9c644c43223878f4c848e852743e789c (patch) | |
tree | 70671b6571cb5c92752264d26a174cbc0d9034b8 /arch/powerpc/kernel/setup_32.c | |
parent | f31dd9443afd35696a833c2a32d584a9257abd40 (diff) | |
download | op-kernel-dev-4e21b94c9c644c43223878f4c848e852743e789c.zip op-kernel-dev-4e21b94c9c644c43223878f4c848e852743e789c.tar.gz |
powerpc/85xx: Move ePAPR paravirt initialization earlier
At console init, when the kernel tries to flush the log buffer
the ePAPR byte-channel based console write fails silently,
losing the buffered messages.
This happens because The ePAPR para-virtualization init isn't
done early enough so that the hcall instruction to be set,
causing the byte-channel write hcall to be a nop.
To fix, change the ePAPR para-virt init to use early device
tree functions and move it in early init.
Signed-off-by: Laurentiu Tudor <Laurentiu.Tudor@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/kernel/setup_32.c')
-rw-r--r-- | arch/powerpc/kernel/setup_32.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index a8f54ec..a4bbcae 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c @@ -38,6 +38,7 @@ #include <asm/serial.h> #include <asm/udbg.h> #include <asm/mmu_context.h> +#include <asm/epapr_hcalls.h> #include "setup.h" @@ -128,6 +129,8 @@ notrace void __init machine_init(u64 dt_ptr) /* Do some early initialization based on the flat device tree */ early_init_devtree(__va(dt_ptr)); + epapr_paravirt_early_init(); + early_init_mmu(); probe_machine(); @@ -326,5 +329,4 @@ void __init setup_arch(char **cmdline_p) /* Initialize the MMU context management stuff */ mmu_context_init(); - } |