[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v7 01/19] xen: add PV/PVH kernel entry point
On 12/19/2013 06:54 PM, Roger Pau Monne wrote: Add the PV/PVH entry point and the low level functions for PVH initialization. --- sys/amd64/amd64/locore.S | 53 +++++++++++++++++++++++++++++++ sys/amd64/amd64/machdep.c | 72 ++++++++++++++++++++++++++++++++++++++++++ sys/amd64/include/asmacros.h | 26 +++++++++++++++ sys/i386/xen/xen_machdep.c | 2 + sys/x86/xen/hvm.c | 1 + sys/xen/xen-os.h | 4 ++ 6 files changed, 158 insertions(+), 0 deletions(-) [..] diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index eae657b..a73e33e 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -146,10 +146,17 @@ __FBSDID("$FreeBSD$"); #include <isa/isareg.h> #include <isa/rtc.h> +#ifdef XENHVM +#include <xen/xen-os.h> +#endif + /* Sanity check for __curthread() */ CTASSERT(offsetof(struct pcpu, pc_curthread) == 0); extern u_int64_t hammer_time(u_int64_t, u_int64_t); +#ifdef XENHVM +extern u_int64_t hammer_time_xen(start_info_t *, u_int64_t); +#endif extern void printcpuinfo(void); /* XXX header file */ extern void identify_cpu(void); @@ -1683,6 +1690,71 @@ do_next: msgbufp = (struct msgbuf *)PHYS_TO_DMAP(phys_avail[pa_indx]); } +#ifdef XENHVM +/* + * First function called by the Xen PVH boot sequence. + * + * Set some Xen global variables and prepare the environment so it is + * as similar as possible to what native FreeBSD init function expects. + */ +u_int64_t +hammer_time_xen(start_info_t *si, u_int64_t xenstack) +{ + u_int64_t physfree; + u_int64_t *PT4 = (u_int64_t *)xenstack; + u_int64_t *PT3 = (u_int64_t *)(xenstack + PAGE_SIZE); + u_int64_t *PT2 = (u_int64_t *)(xenstack + 2 * PAGE_SIZE); + int i; + + KASSERT((si != NULL && xenstack != 0), + ("invalid start_info or xenstack")); If I'm not mistaken, the user won't see the error if the assert failed (the console is not yet initialized). Perhaps xc_printf is more suitable here. -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |