summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorroyger <royger@FreeBSD.org>2014-03-11 10:07:01 +0000
committerroyger <royger@FreeBSD.org>2014-03-11 10:07:01 +0000
commit5dd05db7ff9533415fbe0d4aedbadb5b115d9509 (patch)
tree6272bb4211bd811ce759def6aa759b755cd86415 /sys/i386
parent27026f4f2afc8cf9ffb8d965b2b70a91fd318239 (diff)
downloadFreeBSD-src-5dd05db7ff9533415fbe0d4aedbadb5b115d9509.zip
FreeBSD-src-5dd05db7ff9533415fbe0d4aedbadb5b115d9509.tar.gz
xen: add PV/PVH kernel entry point
Add the PV/PVH entry point and the low level functions for PVH early initialization. Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/genassym.c: - Add __FreeBSD_version define to assym.s so it can be used for the Xen notes. amd64/amd64/locore.S: - Make bootstack global so it can be used from Xen kernel entry point. amd64/amd64/xen-locore.S: - Add Xen notes to the kernel. - Add the Xen PV entry point, that is going to call hammer_time_xen. amd64/include/asmacros.h: - Add ELFNOTE macros. i386/xen/xen_machdep.c: - Define HYPERVISOR_start_info for the XEN i386 PV port, which is going to be used in some shared code between PV and PVH. x86/xen/hvm.c: - Define HYPERVISOR_start_info for the PVH port. x86/xen/pv.c: - Introduce hammer_time_xen which is going to perform early setup for Xen PVH: - Setup shared Xen variables start_info, shared_info and xen_store. - Set guest type. - Create initial page tables as FreeBSD expects to find them. - Call into native init function (hammer_time). xen/xen-os.h: - Declare HYPERVISOR_start_info. conf/files.amd64: - Add amd64/amd64/locore.S and x86/xen/pv.c to the list of files.
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/xen/xen_machdep.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/i386/xen/xen_machdep.c b/sys/i386/xen/xen_machdep.c
index 7049be6..fd575ee 100644
--- a/sys/i386/xen/xen_machdep.c
+++ b/sys/i386/xen/xen_machdep.c
@@ -89,6 +89,7 @@ IDTVEC(div), IDTVEC(dbg), IDTVEC(nmi), IDTVEC(bpt), IDTVEC(ofl),
int xendebug_flags;
start_info_t *xen_start_info;
+start_info_t *HYPERVISOR_start_info;
shared_info_t *HYPERVISOR_shared_info;
xen_pfn_t *xen_machine_phys = machine_to_phys_mapping;
xen_pfn_t *xen_phys_machine;
@@ -927,6 +928,7 @@ initvalues(start_info_t *startinfo)
HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments_notify);
#endif
xen_start_info = startinfo;
+ HYPERVISOR_start_info = startinfo;
xen_phys_machine = (xen_pfn_t *)startinfo->mfn_list;
IdlePTD = (pd_entry_t *)((uint8_t *)startinfo->pt_base + PAGE_SIZE);
OpenPOWER on IntegriCloud