Thread (4 messages) 4 messages, 2 authors, 2013-06-26

Re: powerpc/85xx: Move ePAPR paravirt initialization earlier

From: Scott Wood <hidden>
Date: 2013-06-25 23:14:16

On Tue, Mar 05, 2013 at 05:52:36PM +0200, Laurentiu TUDOR wrote:
From: Tudor Laurentiu <redacted>

The ePAPR para-virtualization needs to happen very early
otherwise the bytechannel based console will silently
drop some of the early boot messages.

Before this patch, this is how the kernel log started:
-----------------------------------------------------
 > Brought up 2 CPUs
 > devtmpfs: initialized
 > NET: Registered protocol family 16
 [...]
-----------------------------------------------------

After the patch the early messages show up:
-----------------------------------------------------
 > Using P5020 DS machine description
 > MMU: Supported page sizes
 >          4 KB as direct
 >       4096 KB as direct
 [...]
-----------------------------------------------------

At console init, the kernel tried to flush the log buffer.
Since the paravirt was not yet initialized the console write
function failed silently, thus losing the buffered messages.
[snip]
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 6da881b..ce092ac 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -66,6 +66,7 @@
 #include <asm/code-patching.h>
 #include <asm/kvm_ppc.h>
 #include <asm/hugetlb.h>
+#include <asm/epapr_hcalls.h>
 
 #include "setup.h"
 
@@ -599,6 +600,8 @@ void __init setup_arch(char **cmdline_p)
 	/* Initialize the MMU context management stuff */
 	mmu_context_init();
 
+	epapr_paravirt_init();
+
 	kvm_linear_init();
 
 	/* Interrupt code needs to be 64K-aligned */
Is this early enough?  There's udbg activity before this.  Maybe it
should even go before udbg_early_init...  This would require converting
the code to use the early device tree functions.

-Scott
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help