---
sys/xen/xenstore/xenstore.c | 18 +-
1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/sys/xen/xenstore/xenstore.c b/sys/xen/xenstore/xenstore.c
index b5cf413..7fa08cc 100644
--- a/sys/xen/xenstore/xenstore.c
+++ b/sys/xen/xenstore/xenstore.c
@@ -229,13 +229,11 @
This hook will only be implemented for bare metal, Xen doesn't require
any bootstrap code since APs are started in long mode with paging
enabled.
---
sys/amd64/amd64/machdep.c |6 +-
sys/amd64/include/sysarch.h |1 +
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/sys/
On PVH we don't need to init the shared info page, or disable emulated
devices. Also, make sure PV IPIs are set before starting the APs.
---
sys/x86/xen/hvm.c | 17 -
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/sys/x86/xen/hvm.c b/sys/x86/xen/hvm.c
index 9a041
Add the PV shutdown hook to PVH.
---
sys/dev/xen/control/control.c | 37 ++---
1 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/sys/dev/xen/control/control.c b/sys/dev/xen/control/control.c
index bc0609d..78894ba 100644
--- a/sys/dev/xen/control/co
---
sys/xen/gnttab.c | 26 +-
1 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/sys/xen/gnttab.c b/sys/xen/gnttab.c
index 03c32b7..6949be5 100644
--- a/sys/xen/gnttab.c
+++ b/sys/xen/gnttab.c
@@ -25,6 +25,7 @@ __FBSDID("$FreeBSD$");
#include
#include
#i
PVH guests don't have an emulated lapic.
---
sys/amd64/amd64/mp_machdep.c | 10 ++
sys/amd64/include/apicvar.h |1 +
sys/i386/include/apicvar.h |1 +
sys/i386/xen/xen_machdep.c |2 ++
sys/x86/x86/local_apic.c |8 +---
sys/x86/xen/pv.c |3 +++
Since Xen PVH guests doesn't have ACPI, we need to create a dummy
bus so top level Xen devices can attach to it (instead of
attaching directly to the nexus) and a pvcpu device that will be used
to fill the pcpu->pc_device field.
---
sys/conf/files.amd64 |1 +
sys/conf/files.i386 |1 +
sys
Introduce a Xen specific nexus that is going to be in charge for
attaching Xen specific devices.
---
sys/conf/files.amd64 |1 +
sys/conf/files.i386 |1 +
sys/dev/xen/console/console.c |2 +-
sys/dev/xen/timer/timer.c |4 +-
sys/dev/xen/xenpci/xenpci.c | 6
Since there's no ACPI on PVH guests, we need to create a dummy CPU
device in order to fill the pcpu->pc_device field.
---
sys/conf/files|1 +
sys/dev/xen/pvcpu/pvcpu.c | 101 +
2 files changed, 102 insertions(+), 0 deletions(-)
create m
AP startup on PVH follows the PV method, so we need to add a hook in
order to diverge from bare metal.
---
sys/amd64/amd64/mp_machdep.c | 14 +++---
sys/amd64/include/cpu.h |1 +
sys/amd64/include/smp.h |1 +
sys/x86/xen/hvm.c| 12 +-
sys/x86/xen/pv.c
---
sys/x86/isa/isa.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/sys/x86/isa/isa.c b/sys/x86/isa/isa.c
index 1a57137..9287ff2 100644
--- a/sys/x86/isa/isa.c
+++ b/sys/x86/isa/isa.c
@@ -241,3 +241,6 @@ isa_release_resource(device_t bus, device_t child, int
type, int
---
sys/amd64/amd64/machdep.c | 41 --
sys/amd64/include/sysarch.h | 12 ++
sys/x86/xen/pv.c| 82 +++
3 files changed, 124 insertions(+), 11 deletions(-)
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/ma
---
sys/conf/files.amd64 |1 +
sys/x86/xen/pvcpu_enum.c | 136 ++
2 files changed, 137 insertions(+), 0 deletions(-)
create mode 100644 sys/x86/xen/pvcpu_enum.c
diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index 109a796..a3491da 10
---
sys/amd64/include/xen/hypercall.h |7 ---
sys/i386/i386/locore.s|9 +
sys/i386/include/xen/hypercall.h |8
sys/x86/xen/hvm.c | 24 ++--
4 files changed, 19 insertions(+), 29 deletions(-)
diff --git a/sys/amd64
This adds and enables the console used on XEN kernels.
---
sys/conf/files |4 +-
sys/dev/xen/console/console.c | 37 +--
sys/dev/xen/console/xencons_ring.c | 15 +
sys/i386/include/xen/xen-os.h |1 -
sys/i386/xen
This series is a split of the previous patch "Xen x86 DomU PVH
support", with the aim to make the review of the code easier.
The series can also be found on my git repo:
git://xenbits.xen.org/people/royger/freebsd.git pvh_v10
or
http://xenbits.xen.org/gitweb/?p=people/royger/freebsd.git;a=shor
@@
+/*-
+ * Copyright (c) 2003 Peter Wemm
+ * Copyright (c) 2013 Roger Pau Monne
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code
When running as a PVH guest, there's no emulated i8254, so we need to
use the Xen PV timer as the early source for DELAY. This change allows
for different implementations of the early DELAY function and
implements a Xen variant for it.
---
sys/amd64/amd64/machdep.c |6 ++-
sys/amd64/include/
---
sys/amd64/amd64/machdep.c | 50 ++
sys/amd64/include/pc/bios.h |2 +
sys/amd64/include/sysarch.h |1 +
sys/x86/xen/pv.c| 25 +
4 files changed, 59 insertions(+), 19 deletions(-)
diff --git a/sys/amd64/amd64/
---
sys/xen/xen-os.h |7 +++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/sys/xen/xen-os.h b/sys/xen/xen-os.h
index c7474d8..e8a5a99 100644
--- a/sys/xen/xen-os.h
+++ b/sys/xen/xen-os.h
@@ -82,6 +82,13 @@ xen_hvm_domain(void)
return (xen_domain_type == XEN_HVM_DOM
This should not introduce any functional change, and makes the
functions suitable to be called before we have actually mapped the
vcpu_info struct on a per-cpu basis.
---
sys/dev/xen/timer/timer.c | 29 -
1 files changed, 20 insertions(+), 9 deletions(-)
diff --git a
---
sys/xen/gnttab.c | 26 +-
1 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/sys/xen/gnttab.c b/sys/xen/gnttab.c
index 03c32b7..6949be5 100644
--- a/sys/xen/gnttab.c
+++ b/sys/xen/gnttab.c
@@ -25,6 +25,7 @@ __FBSDID("$FreeBSD$");
#include
#include
#i
PVH guests don't have an emulated lapic.
---
sys/amd64/amd64/mp_machdep.c | 10 ++
sys/amd64/include/apicvar.h |1 +
sys/i386/include/apicvar.h |1 +
sys/i386/xen/xen_machdep.c |2 ++
sys/x86/x86/local_apic.c |8 +---
sys/x86/xen/pv.c |3 +++
Since Xen PVH guests doesn't have ACPI, we need to create a dummy
bus so top level Xen devices can attach to it (instead of
attaching directly to the nexus) and a pvcpu device that will be used
to fill the pcpu->pc_device field.
---
sys/conf/files.amd64 |1 +
sys/conf/files.i386 |1 +
sys
AP startup on PVH follows the PV method, so we need to add a hook in
order to diverge from bare metal.
---
sys/amd64/amd64/mp_machdep.c | 14 +++---
sys/amd64/include/cpu.h |1 +
sys/amd64/include/smp.h |1 +
sys/x86/xen/hvm.c| 12 +-
sys/x86/xen/pv.c
Introduce a Xen specific nexus that is going to be in charge for
attaching Xen specific devices.
---
sys/conf/files.amd64 |1 +
sys/conf/files.i386 |1 +
sys/dev/xen/console/console.c |2 +-
sys/dev/xen/timer/timer.c |4 +-
sys/dev/xen/xenpci/xenpci.c |
On PVH we don't need to init the shared info page, or disable emulated
devices. Also, make sure PV IPIs are set before starting the APs.
---
sys/x86/xen/hvm.c | 17 -
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/sys/x86/xen/hvm.c b/sys/x86/xen/hvm.c
index 9a041
---
sys/x86/isa/isa.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/sys/x86/isa/isa.c b/sys/x86/isa/isa.c
index 1a57137..9287ff2 100644
--- a/sys/x86/isa/isa.c
+++ b/sys/x86/isa/isa.c
@@ -241,3 +241,6 @@ isa_release_resource(device_t bus, device_t child, int
type, int
---
sys/xen/xenstore/xenstore.c | 18 +-
1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/sys/xen/xenstore/xenstore.c b/sys/xen/xenstore/xenstore.c
index b5cf413..7fa08cc 100644
--- a/sys/xen/xenstore/xenstore.c
+++ b/sys/xen/xenstore/xenstore.c
@@ -229,13 +229,11 @
Add the PV shutdown hook to PVH.
---
sys/dev/xen/control/control.c | 37 ++---
1 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/sys/dev/xen/control/control.c b/sys/dev/xen/control/control.c
index bc0609d..78894ba 100644
--- a/sys/dev/xen/control/co
This hook will only be implemented for bare metal, Xen doesn't require
any bootstrap code since APs are started in long mode with paging
enabled.
---
sys/amd64/amd64/machdep.c |6 +-
sys/amd64/include/sysarch.h |1 +
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/sys/
This adds and enables the console used on XEN kernels.
---
sys/conf/files |4 +-
sys/dev/xen/console/console.c | 37 +--
sys/dev/xen/console/xencons_ring.c | 15 +
sys/i386/include/xen/xen-os.h |1 -
sys/i386/xen
This should not introduce any functional change, and makes the
functions suitable to be called before we have actually mapped the
vcpu_info struct on a per-cpu basis.
---
sys/dev/xen/timer/timer.c | 29 -
1 files changed, 20 insertions(+), 9 deletions(-)
diff --git a
---
sys/amd64/amd64/machdep.c | 41 --
sys/amd64/include/sysarch.h | 12 ++
sys/x86/xen/pv.c| 82 +++
3 files changed, 124 insertions(+), 11 deletions(-)
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/ma
When running as a PVH guest, there's no emulated i8254, so we need to
use the Xen PV timer as the early source for DELAY. This change allows
for different implementations of the early DELAY function and
implements a Xen variant for it.
---
sys/amd64/amd64/machdep.c |6 ++-
sys/amd64/include/
This series is a split of the previous patch "Xen x86 DomU PVH
support", with the aim to make the review of the code easier.
The series can also be found on my git repo:
git://xenbits.xen.org/people/royger/freebsd.git pvh_v9
or
http://xenbits.xen.org/gitweb/?p=people/royger/freebsd.git;a=short
Also disable a couple of ACPI devices that are not usable under Dom0.
---
sys/x86/xen/xen_nexus.c | 24 +---
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/sys/x86/xen/xen_nexus.c b/sys/x86/xen/xen_nexus.c
index 288e6b6..823b3bc 100644
--- a/sys/x86/xen/xen_n
Add a new event that will fire each time a PCI device is added to the
system, and allows us to register the device with Xen.
---
sys/dev/pci/pci.c |1 +
sys/sys/eventhandler.h |5 +
sys/x86/xen/pv.c| 21 +
sys/x86/xen/xen_nexus.c |6 ++
sys/
This patch includes changes to xenstore in order to boot as Dom0. This
is different from booting as a guest, since when booted as Dom0
xenstore is not available. This patch sets up a memory page, an
event channel for xenstore and disables xenbus device probing at boot.
It contains a workaround for
Xen PV guests doesn't have a lapic, so disable the lapic call in mca
initialization.
---
sys/x86/x86/mca.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sys/x86/x86/mca.c b/sys/x86/x86/mca.c
index f1369cd..e9d2c1d 100644
--- a/sys/x86/x86/mca.c
+++ b/sys/x86/x86/mca.c
@
Lower the quality of the MADT ACPI enumerator, so on Xen Dom0 we can
force the usage of the Xen mptable enumerator even when ACPI is
detected.
---
sys/x86/acpica/madt.c |2 +-
sys/x86/xen/mptable.c |2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys/x86/acpica/madt.c
Use madt_setup_io (from madt.c) on Xen apic_enumerator, in order to
parse the interrupt sources from the IO APIC.
I would like to get opinions, but I think we should rename and move
madt_setup_io to io_apic.c.
---
sys/amd64/include/apicvar.h |1 +
sys/i386/include/apicvar.h |1 +
sys/x86
Create some hooks for IO APIC operations that will diverge from bare
metal when implemented for Xen Dom0.
This patch should not introduce any changes in functionality, it's a
preparatory patch for the implementation of the Xen IO APIC hooks.
---
sys/amd64/include/apicvar.h | 13
sys/i3
Implement a different set of hooks for IO APIC to use when running
under Xen Dom0.
---
sys/x86/xen/pv.c | 44
1 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/sys/x86/xen/pv.c b/sys/x86/xen/pv.c
index ab4afba..e5ad200 100644
--- a/sys/x
Minor fixes and workarounds to make the Xen Dom0 console work.
---
sys/dev/xen/console/xencons_ring.c | 16
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/sys/dev/xen/console/xencons_ring.c
b/sys/dev/xen/console/xencons_ring.c
index d826363..ea97f7b 100644
---
We need to do some tweaking of the hardware e820 map, since the memory
layout provided by Xen and the e820 map doesn't match.
This consists in clamping the e820 map so that regions above max_pfn
are marked as unusuable.
---
sys/x86/xen/pv.c | 35 +--
1 files chan
Event channels should be masked while chaning affinity, or else we
might get spurious/lost interrupts.
---
sys/x86/xen/xen_intr.c | 15 ---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/sys/x86/xen/xen_intr.c b/sys/x86/xen/xen_intr.c
index fd36e68..bc0781e 100644
--
This hook will only be implemented for bare metal, Xen doesn't require
any bootstrap code since APs are started in long mode with paging
enabled.
---
sys/amd64/amd64/machdep.c |6 +-
sys/amd64/include/sysarch.h |3 +++
2 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/sy
---
sys/x86/isa/isa.c |3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/sys/x86/isa/isa.c b/sys/x86/isa/isa.c
index 1a57137..09d1ab7 100644
--- a/sys/x86/isa/isa.c
+++ b/sys/x86/isa/isa.c
@@ -241,3 +241,6 @@ isa_release_resource(device_t bus, device_t child, int
type, int
AP startup on PVH follows the PV method, so we need to add a hook in
order to diverge from bare metal.
---
sys/amd64/amd64/mp_machdep.c | 16 ---
sys/amd64/include/cpu.h |1 +
sys/x86/xen/hvm.c| 17 +++-
sys/x86/xen/pv.c | 90 +
Add the PV shutdown hook to PVH.
---
sys/dev/xen/control/control.c | 37 ++---
1 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/sys/dev/xen/control/control.c b/sys/dev/xen/control/control.c
index bc0609d..78894ba 100644
--- a/sys/dev/xen/control/co
PVH guests don't have an emulated lapic.
---
sys/amd64/amd64/mp_machdep.c | 10 ++
sys/amd64/include/apicvar.h |1 +
sys/i386/include/apicvar.h |1 +
sys/i386/xen/xen_machdep.c |2 ++
sys/x86/x86/local_apic.c |8 +---
sys/x86/xen/pv.c |3 +++
Introduce a Xen specific nexus that is going to be in charge for
attaching Xen specific devices. Remove the identify routine from Xen
devices and instead attach them from the nexus (PV/PVH) or xenpci
(HVM).
---
sys/conf/files.amd64|1 +
sys/conf/files.i386 |1 +
sys/dev/xen
---
sys/xen/xenstore/xenstore.c | 21 ++---
1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/sys/xen/xenstore/xenstore.c b/sys/xen/xenstore/xenstore.c
index bcf6357..2893c84 100644
--- a/sys/xen/xenstore/xenstore.c
+++ b/sys/xen/xenstore/xenstore.c
@@ -229,13 +229
---
sys/xen/gnttab.c | 26 +-
1 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/sys/xen/gnttab.c b/sys/xen/gnttab.c
index 03c32b7..6949be5 100644
--- a/sys/xen/gnttab.c
+++ b/sys/xen/gnttab.c
@@ -25,6 +25,7 @@ __FBSDID("$FreeBSD$");
#include
#include
#i
Since Xen PVH guests doesn't have ACPI, we need to create a dummy
pvcpu device that will be used to fill the pcpu->pc_device field.
---
sys/conf/files.amd64 |1 +
sys/x86/xen/pvcpu.c | 84 ++
2 files changed, 85 insertions(+), 0 deletions(-)
On PVH we don't need to init the shared info page, or disable emulated
devices. Also, make sure PV IPIs are set before starting the APs.
---
sys/x86/xen/hvm.c | 17 -
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/sys/x86/xen/hvm.c b/sys/x86/xen/hvm.c
index 9a041
---
sys/amd64/amd64/machdep.c | 50 ++
sys/amd64/include/pc/bios.h |2 +
sys/amd64/include/sysarch.h |1 +
sys/x86/xen/pv.c| 26 ++
4 files changed, 60 insertions(+), 19 deletions(-)
diff --git a/sys/amd64/amd64
---
sys/amd64/amd64/machdep.c | 45 +
sys/amd64/include/sysarch.h | 12 +
sys/conf/files.amd64|1 +
sys/x86/xen/pv.c| 114 +++
sys/xen/pv.h| 28 +++
5 files changed, 189 insertions(
This adds and enables the console used on XEN kernels.
---
sys/amd64/amd64/machdep.c |4 +++
sys/conf/files |4 +-
sys/dev/xen/console/console.c | 45 ++-
sys/dev/xen/console/xencons_ring.c | 15
sys/i386/in
---
sys/conf/files.amd64 |1 +
sys/x86/xen/mptable.c | 136 +
2 files changed, 137 insertions(+), 0 deletions(-)
create mode 100644 sys/x86/xen/mptable.c
diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index bdc1517..3bdc05e 100644
-
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/
This should not introduce any functional change, and makes the
functions suitable to be called before we have actually mapped the
vcpu_info struct on a per-cpu basis.
---
sys/dev/xen/timer/timer.c | 29 -
1 files changed, 20 insertions(+), 9 deletions(-)
diff --git a
---
sys/xen/xen-os.h |7 +++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/sys/xen/xen-os.h b/sys/xen/xen-os.h
index c7474d8..e8a5a99 100644
--- a/sys/xen/xen-os.h
+++ b/sys/xen/xen-os.h
@@ -82,6 +82,13 @@ xen_hvm_domain(void)
return (xen_domain_type == XEN_HVM_DOM
This series is a split of the previous patch "Xen x86 DomU PVH
support", with the aim to make the review of the code easier.
The series can also be found on my git repo:
git://xenbits.xen.org/people/royger/freebsd.git pvh_v7
or
http://xenbits.xen.org/gitweb/?p=people/royger/freebsd.git;a=short
r254804 and r254807 changed the types of some of the members of the
mbuf struct, and introduced some compile time errors in netback
debug messages that prevented compiling a XENHVM kernel.
Cc: an...@freebsd.org
---
sys/dev/xen/netback/netback.c |8
1 files changed, 4 insertions(+), 4
66 matches
Mail list logo