[PATCH v10 07/20] xen: implement hook to fetch e820 memory map

2014-01-14 Thread Roger Pau Monne
--- 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

[PATCH v10 06/20] xen: implement an early timer for Xen PVH

2014-01-14 Thread Roger Pau Monne
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 ++-

[PATCH v10 03/20] xen: add and enable Xen console for PVH guests

2014-01-14 Thread Roger Pau Monne
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 -

[PATCH v10 09/20] xen: add a apic_enumerator for PVH

2014-01-14 Thread Roger Pau Monne
--- 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

[PATCH v10 05/20] xen: rework xen timer so it can be used early in boot process

2014-01-14 Thread Roger Pau Monne
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

[PATCH v10 08/20] xen: use the same hypercall mechanism for XEN and XENHVM

2014-01-14 Thread Roger Pau Monne
--- 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

[PATCH v10 20/20] isa: allow ISA bus to attach to xenpv device

2014-01-14 Thread Roger Pau Monne
--- 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,

[PATCH v10 19/20] xen: changes to gnttab for PVH

2014-01-14 Thread Roger Pau Monne
--- 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

[PATCH v10 16/20] xen: create a Xen nexus to use in PV/PVH

2014-01-14 Thread Roger Pau Monne
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 |

[PATCH v10 14/20] xen: introduce xenpv bus and a dummy pvcpu device

2014-01-14 Thread Roger Pau Monne
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 +

[PATCH v10 10/20] xen: add hook for AP bootstrap memory reservation

2014-01-14 Thread Roger Pau Monne
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

[PATCH v10 15/20] xen: create a PV CPU device for PVH guests

2014-01-14 Thread Roger Pau Monne
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

[PATCH v10 13/20] xen: introduce flag to disable the local apic

2014-01-14 Thread Roger Pau Monne
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 +++

[PATCH v10 17/20] xen: add shutdown hook for PVH

2014-01-14 Thread Roger Pau Monne
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 ---

[PATCH v10 11/20] xen: changes to hvm code in order to support PVH guests

2014-01-14 Thread Roger Pau Monne
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

[PATCH v10 12/20] xen: add a hook to perform AP startup

2014-01-14 Thread Roger Pau Monne
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

[PATCH v9 04/19] amd64: introduce hook for custom preload metadata parsers

2014-01-02 Thread Roger Pau Monne
--- 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

[PATCH v9 00/19] FreeBSD PVH DomU support

2014-01-02 Thread Roger Pau Monne
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

[PATCH v9 05/19] xen: rework xen timer so it can be used early in boot process

2014-01-02 Thread Roger Pau Monne
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

[PATCH v9 02/19] xen: add macro to detect if running as Dom0

2014-01-02 Thread Roger Pau Monne
--- 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 ==

[PATCH v9 06/19] xen: implement an early timer for Xen PVH

2014-01-02 Thread Roger Pau Monne
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 ++-

[PATCH v9 07/19] xen: implement hook to fetch e820 memory map

2014-01-02 Thread Roger Pau Monne
--- 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

[PATCH v9 03/19] xen: add and enable Xen console for PVH guests

2014-01-02 Thread Roger Pau Monne
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 -

[PATCH v9 10/19] xen: add hook for AP bootstrap memory reservation

2014-01-02 Thread Roger Pau Monne
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

[PATCH v9 17/19] xen: xenstore changes to support PVH

2014-01-02 Thread Roger Pau Monne
--- 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

[PATCH v9 18/19] xen: changes to gnttab for PVH

2014-01-02 Thread Roger Pau Monne
--- 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

[PATCH v9 13/19] xen: introduce flag to disable the local apic

2014-01-02 Thread Roger Pau Monne
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 +++

[PATCH v9 12/19] xen: add a hook to perform AP startup

2014-01-02 Thread Roger Pau Monne
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

[PATCH v9 15/19] xen: create a Xen nexus to use in PV/PVH

2014-01-02 Thread Roger Pau Monne
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 |

[PATCH v9 14/19] xen: introduce xenpv bus and a dummy pvcpu device

2014-01-02 Thread Roger Pau Monne
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 +

[PATCH RFC 08/13] xen: change order of Xen intr init and IO APIC registration

2013-12-24 Thread Roger Pau Monne
Change order of some of the services in the SI_SUB_INTR stage, so that it follows the order: - System intr initialization - Xen intr initalization - IO APIC source registration --- sys/x86/x86/local_apic.c |2 +- sys/x86/xen/xen_intr.c |2 +- 2 files changed, 2 insertions(+), 2

[PATCH RFC 03/13] xen: mask event channels while changing affinity

2013-12-24 Thread Roger Pau Monne
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

[PATCH RFC 01/13] xen: use the hardware e820 map on Dom0

2013-12-24 Thread Roger Pau Monne
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

[PATCH RFC 07/13] xen: implement IO APIC support in Xen mptable parser

2013-12-24 Thread Roger Pau Monne
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 +

[PATCH RFC 05/13] xen: implement Xen IO APIC ops

2013-12-24 Thread Roger Pau Monne
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 ---

[PATCH RFC 02/13] ioapic: introduce hooks for some ioapic ops

2013-12-24 Thread Roger Pau Monne
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

[PATCH RFC 13/13] xenstore: changes needed to boot in Dom0 mode

2013-12-24 Thread Roger Pau Monne
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

[PATCH RFC 11/13] pci: introduce a new event on PCI device detection

2013-12-24 Thread Roger Pau Monne
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 ++

[PATCH RFC 12/13] mca: disable cmc enable on Xen PV

2013-12-24 Thread Roger Pau Monne
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

[PATCH RFC 10/13] xen: add ACPI bus to xen_nexus when running as Dom0

2013-12-24 Thread Roger Pau Monne
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 ---

[PATCH v7 00/19] FreeBSD PVH DomU support

2013-12-19 Thread Roger Pau Monne
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

[PATCH v7 07/19] xen: implement hook to fetch e820 memory map

2013-12-19 Thread Roger Pau Monne
--- 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

[PATCH v7 08/19] xen: use the same hypercall mechanism for XEN and XENHVM

2013-12-19 Thread Roger Pau Monne
--- 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

[PATCH v7 09/19] xen: add a apic_enumerator for PVH

2013-12-19 Thread Roger Pau Monne
--- 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

[PATCH v7 17/19] xen: xenstore changes to support PVH

2013-12-19 Thread Roger Pau Monne
--- 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

[PATCH v7 18/19] xen: changes to gnttab for PVH

2013-12-19 Thread Roger Pau Monne
--- 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

[PATCH v7 10/19] xen: add hook for AP bootstrap memory reservation

2013-12-19 Thread Roger Pau Monne
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

[PATCH v7 14/19] xen: introduce a dummy pvcpu device

2013-12-19 Thread Roger Pau Monne
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(-)

[PATCH v7 12/19] xen: add a hook to perform AP startup

2013-12-19 Thread Roger Pau Monne
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

[PATCH v7 16/19] xen: add shutdown hook for PVH

2013-12-19 Thread Roger Pau Monne
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 ---

[PATCH v7 19/19] isa: allow ISA bus to attach to the nexus

2013-12-19 Thread Roger Pau Monne
--- 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,