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
---
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 ==
---
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
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 ++-
@@
+/*-
+ * Copyright (c) 2003 Peter Wemm pe...@freebsd.org
+ * Copyright (c) 2013 Roger Pau Monne roy...@freebsd.org
+ * 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
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
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/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
---
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
---
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
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,
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
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 |
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/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 sys/lock.h
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
---
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
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
---
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 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
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/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
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
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 -
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
---
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
---
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
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
---
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,
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
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 +
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 +++
---
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 sys/lock.h
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
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
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
---
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
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 +
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
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
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 ++
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
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
---
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
---
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 ==
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
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/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
---
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
---
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
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
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
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(-)
---
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 sys/lock.h
---
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
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 +
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 +++
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
---
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
---
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,
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
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(+),
66 matches
Mail list logo