Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


9 years agoCleanup of locking in host device interface
Peter Dinda [Tue, 19 May 2015 16:36:11 +0000]
Cleanup of locking in host device interface

9 years agoAddition of basic multiboot functionality plus refactor of HVM
Peter Dinda [Tue, 19 May 2015 16:27:47 +0000]
Addition of basic multiboot functionality plus refactor of HVM
functionality to extend multiboot

9 years agoMinor compile warning fixup and error checks
Peter Dinda [Tue, 28 Apr 2015 17:03:40 +0000]
Minor compile warning fixup and error checks

9 years agoGeneralization of constraints on page allocation and implementation/use
Peter Dinda [Fri, 17 Apr 2015 17:11:43 +0000]
Generalization of constraints on page allocation and implementation/use

The idea here is to allow Palacios code to request pages that satisfy some
filter function.  For example, a filter function might reject allocations
above the 4GB line, or it might reject allocations that map to undesirable
cache lines.

- it removes the notion of a constraint mask in page allocation
- eliminates the < 4GB flag
- adds the notion of constraints in page allocation as filter
  functions
- modifies the implementation and uses to match

9 years agoExpose vmalloc-like os interface to Palacios, and updates to use it
Peter Dinda [Fri, 17 Apr 2015 15:11:53 +0000]
Expose vmalloc-like os interface to Palacios, and updates to use it

The purpose of finally exposing virtually contiguous /
not necessarily physically contiguous allocations to Palacios
is to get around a catch-22.   We support arbitrarily small
base region chunks at this point, down to a page size.  We
also support host kernels that do not provide large contiguous
physical page allocations.    The result is that we can
end up needing to build a base region chunk array that is
larger than the amount of memory we can either malloc or
contiguously page alloc to support it. Yet the base region
array itself does not need to be physically contiguous.

Two places where this currently burns us is:   large memory
VM allocated over linux host that does not support hot remove;
moderate memory VM using tiny chunk size, for example in
cache partitioning

9 years agoQCOW2 block storage backend for Palacios
Yang Yang and Weixiao Fu [Wed, 1 Apr 2015 20:57:51 +0000]
QCOW2 block storage backend for Palacios

This commit adds a new backend, qcowdisk, that allows
the use of QCOW2 format files as the storage for
virtual hard drives, cds, virtio block devices, etc.

- Backing stores are supported
- Snapshots are not supported
- Encryption is not supported

9 years agoMinor tweak to fix accidental new feature leak
Peter Dinda [Wed, 1 Apr 2015 20:55:49 +0000]
Minor tweak to fix accidental new feature leak

9 years agoTypo fix
Peter Dinda [Wed, 25 Mar 2015 21:24:24 +0000]
Typo fix

9 years agoBasic HRT startup for HVM, plus assorted cleanup
Peter Dinda [Wed, 25 Mar 2015 21:18:53 +0000]
Basic HRT startup for HVM, plus assorted cleanup

This builds and launches a basic guest environment for an HRT
It does not yet handle ELF load, but it is able to bootstrap
a simple code blob, including with interrupts, on HRT cores
while ROS cores happily run Linux

9 years agoSupport HVM partitioning for APICs
Peter Dinda [Mon, 23 Mar 2015 21:13:19 +0000]
Support HVM partitioning for APICs

This allows us to treat the APICs as belonging to two
groups:  the "ROS" group and the "HRT" group.   Semantics
for lowest priority, broadcast, etc, are determined by
the HVM logic for an HVM VM.

9 years agoHVM configuration logic (create mptables, acpi tables, etc, based on ROS config)
Peter Dinda [Mon, 23 Mar 2015 21:11:00 +0000]
HVM configuration logic (create mptables, acpi tables, etc, based on ROS config)

This updates the various ways we tell the guest what hardware is available.
In an HVM, we describe only the ROS components of the guest, not the
additional components (e.g., cores, memory, etc) that the HRT can also see.

9 years agoAdd HVM configuration capability, init/deinit, etc
Peter Dinda [Mon, 23 Mar 2015 21:09:33 +0000]
Add HVM configuration capability, init/deinit, etc

9 years agoHVM updates to support apic partitioning
Peter Dinda [Mon, 23 Mar 2015 20:59:03 +0000]
HVM updates to support apic partitioning

9 years agoBasic HVM data structures and functions
Peter Dinda [Sun, 22 Mar 2015 23:06:04 +0000]
Basic HVM data structures and functions

9 years agoUse page allocation for base memory region array
Peter Dinda [Sun, 22 Mar 2015 23:02:40 +0000]
Use page allocation for base memory region array

This allows us to support a much larger number of base regions
than the heap allocation allows.   Important for page-by-page
management, for example for swapping and cache partitioning

9 years agoAdd proper cleanup for a nested VMX guest This also fixes a bug that was preventing...
Peter Dinda [Thu, 12 Mar 2015 02:00:40 +0000]
Add proper cleanup for a nested VMX guest This also fixes a bug that was preventing such a guest from being freed

9 years agoIDE/ATA enhancements and bug-fixing: DMA operation
Peter Dinda [Thu, 5 Mar 2015 00:46:43 +0000]
IDE/ATA enhancements and bug-fixing:   DMA operation

This makes DMA operation with ATA hard drives work
by fixing multiple issues and making it conform to
the physical hardware model

Remaining issues:
   DMA disabled on CDs due to bad identity info
   UDMA5 not seen (probably not consequential since
     programatic model is identical to all the rest)

9 years agoPCI Fix: do not let buggy guest turn off I/O bit in an I/O BAR
Peter Dinda [Thu, 5 Mar 2015 00:40:00 +0000]
PCI Fix: do not let buggy guest turn off I/O bit in an I/O BAR

An example of such a "guest" is the fucking SEABIOS

9 years agoIDE/ATA enhancements: read/write multiple, lba48 addressing, cleanup
Peter Dinda [Wed, 4 Mar 2015 21:24:22 +0000]
IDE/ATA enhancements: read/write multiple, lba48 addressing, cleanup

This commit cleans up the code and adds:

- ATA PIO READ/WRITE MULTIPLE support
- LBA48 Addressing (Allowing >128 GB volumes)
- General cleanup of type sizes, and assorted other
  mods to support LBA48

9 years agoIDE / ATA rewrites (1st step)
Peter Dinda [Wed, 4 Mar 2015 18:22:21 +0000]
IDE / ATA rewrites (1st step)

This adds functional support for ATA hard drives in PIO mode
giving both read and write access.  It also does a bit of
bugfixing throughout.

10 years agoFPU stub change to support more recent kernels
Kyle Hale [Mon, 29 Dec 2014 19:54:15 +0000]
FPU stub change to support more recent kernels

10 years agoMissing user space library
Kyle Hale [Mon, 22 Dec 2014 22:21:33 +0000]
Missing user space library

10 years agoUserspace tool compile fix
Peter Dinda [Mon, 22 Dec 2014 22:21:04 +0000]
Userspace tool compile fix

10 years agoMore debugging output (APIC, LDT, etc)
Maciek Swiech [Thu, 9 Oct 2014 22:44:30 +0000]
More debugging output (APIC, LDT, etc)

- APIC state can now be dumped
- LDT is included
- LDT/GDT/IDT/TSS can now be dumped via v3_debug

10 years ago Added guest GDT and IDT printing
Maciek Swiech [Thu, 9 Oct 2014 18:16:55 +0000]
 Added guest GDT and IDT printing

- 32bit functionality untested
- LDT printing unsupported

10 years agoRevert mistakenly overwritten lazy FP change (no functional change)
Peter Dinda [Sun, 21 Sep 2014 20:13:01 +0000]
Revert mistakenly overwritten lazy FP change (no functional change)

10 years agoInitial cut at handling configuration of qemu devices
Peter Dinda [Thu, 11 Sep 2014 22:24:38 +0000]
Initial cut at handling configuration of qemu devices

10 years agoadd ability to load custom BIOS ROMs.
Kyle Hale [Tue, 26 Aug 2014 18:13:51 +0000]
add ability to load custom BIOS ROMs.

This patch allows you to override the default ROMBIOS and VGABIOS with
your own ROM binaries in the guest pal file.

here's an example overriding the default rombios and vgabios, with
another non-default BIOS rom:

<files>
    <file id="somebios" filename="/path/to/mybios.bin"/>
    <file id="somevgabios" filename="/path/to/myvgabios.bin"/>
    <file id="somerombin" filename="/path/to/myrom.bin"/>
</files>

here's the new PAL syntax:

<bioses>
    <disable_rombios/> <--- kills the default rombios
    <disable_vgabios/> <--- kills the default vgabios
    <bios file="somebios" address="0xf0000"/>
    <bios file="somevgabios" address="0xc0000"/>
    <bios file="somerombin" address="0xe70000"/>
</bioses>

10 years agoadd userspace shared library for QEMU use
Kyle Hale [Tue, 26 Aug 2014 18:10:23 +0000]
add userspace shared library for QEMU use

This is more or less a wrapper around v3_user_host_dev but
is intended to encompass anything that is QEMU-specific.

10 years agochanges and fixes to support QEMU integration with pci_front
Kyle Hale [Tue, 26 Aug 2014 18:06:29 +0000]
changes and fixes to support QEMU integration with pci_front

Most of these changes (in pci.c and pci_front.c) involve properly
directing PCI config space  and BAR reads and writes down to
the host device. Other changes are minor.

10 years agoprevent oops in generic device when port mode not correctly provided
Kyle Hale [Tue, 26 Aug 2014 18:04:19 +0000]
prevent oops in generic device when port mode not correctly provided

10 years agoP-State more detailed hw info from ACPI
Peter Dinda [Sun, 31 Aug 2014 22:00:07 +0000]
P-State more detailed hw info from ACPI

10 years agoP-State control - minor tweaks and change to proc interface
Peter Dinda [Sun, 31 Aug 2014 20:10:22 +0000]
P-State control - minor tweaks and change to proc interface

10 years agoP-State: add notifier block for linux frequency transitions, bug fixes
Kyle Hale [Wed, 27 Aug 2014 22:23:04 +0000]
P-State: add notifier block for linux frequency transitions, bug fixes

10 years agofix pstate set lockup by setting frequency using linux work queues
Kyle Hale [Wed, 27 Aug 2014 20:02:43 +0000]
fix pstate set lockup by setting frequency using linux work queues

10 years agoP-State (DVFS) Enhancements
Peter Dinda [Tue, 26 Aug 2014 15:41:40 +0000]
P-State (DVFS) Enhancements

- Change of pstate interface to be opaque 64 bit number
- Nearly complete "direct" implementation for Intel

10 years agoadded linux cpufreq interface to dvfs code.
Kyle Hale [Sat, 23 Aug 2014 03:40:10 +0000]
added linux cpufreq interface to dvfs code.

Writes (setting of frequency/governors) currently
occur in sysfs via linux userspace helper API.
Reads occur through the cpufreq policy interface.

10 years agoDVFS - added forgotten user-space library
Peter Dinda [Wed, 20 Aug 2014 14:35:38 +0000]
DVFS - added forgotten user-space library

10 years agoAdditional functionality for pstate-ctrl
Peter Dinda [Fri, 15 Aug 2014 18:29:43 +0000]
Additional functionality for pstate-ctrl

10 years agoP-State control on Linux - User Utility and Library
Kyle Hale, Shiva Rao, and Peter Dinda [Wed, 13 Aug 2014 00:05:25 +0000]
P-State control on Linux - User Utility and Library

10 years agoP-State control interface - Linux implementation
Kyle Hale, Shiva Rao, and Peter Dinda [Wed, 13 Aug 2014 00:03:12 +0000]
P-State control interface - Linux implementation

10 years agoP-State (DVFS) control host interface
Kyle Hale, Shiva Rao, and Peter Dinda [Wed, 13 Aug 2014 00:02:08 +0000]
P-State (DVFS) control host interface

10 years agoUpdate host device framework to support PCI and other interrupt types
Peter Dinda [Sun, 27 Jul 2014 20:33:40 +0000]
Update host device framework to support PCI and other interrupt types

10 years agov3_cpu_mapper_admit_vm function call moved from start_thread to create_thread
Oscar Mondragon [Mon, 25 Aug 2014 01:34:36 +0000]
v3_cpu_mapper_admit_vm function call moved from start_thread to create_thread

10 years agoBug fix and cleanup
Peter Dinda [Sun, 24 Aug 2014 20:22:17 +0000]
Bug fix and cleanup

- fix create/start thread distinction
- clean up distinction to make it clearer what happens throughout vmm and kernel module
- compilation tweak for swapping

10 years agoHook for thread creation split into create and start thread
Oscar Mondragon [Mon, 18 Aug 2014 21:37:57 +0000]
Hook for thread creation split into create and start thread

10 years agochange default guest name in guest config script
Kyle Hale [Tue, 22 Jul 2014 18:30:54 +0000]
change default guest name in guest config script

since there is a directory in the palacios tree named 'guest',
v3_config_guest shouldn't use this as the default guest directory

10 years agoMissing commit (compilation with memmory tracking off)
Peter Dinda [Mon, 7 Jul 2014 21:13:37 +0000]
Missing commit (compilation with memmory tracking off)

10 years agoAssorted bug fixes and defensive programming
Peter Dinda [Mon, 7 Jul 2014 18:43:42 +0000]
Assorted bug fixes and defensive programming

- Sanity check top-level v3_ calls from host
- Eliminate vm free bug when config of shadow-paging vm terminates before passthrough paging is initialized
- Linux module - avoid v3_stop/free on cleanup for orphaned VMs (guest_map out of sync)

10 years agoIDE bug fix
Peter Dinda [Mon, 7 Jul 2014 18:42:21 +0000]
IDE bug fix

- corrected interrupt assignment for secondary channel

10 years agoMinor cleanup in memory tracking
Peter Dinda [Mon, 30 Jun 2014 22:35:59 +0000]
Minor cleanup in memory tracking

10 years agoVisualization and stats scripts for memory access tracking
Peter Dinda [Mon, 30 Jun 2014 22:35:05 +0000]
Visualization and stats scripts for memory access tracking

10 years agoBetter support for dynamic changes to page event callbacks
Peter Dinda [Mon, 30 Jun 2014 19:25:10 +0000]
Better support for dynamic changes to page event callbacks

10 years agoAdd shared-exclusive (readers-writer) locks
Peter Dinda [Mon, 30 Jun 2014 19:22:07 +0000]
Add shared-exclusive (readers-writer) locks

10 years agoLinux user-space tools for memory tracking functionality
Peter Dinda [Fri, 27 Jun 2014 00:55:36 +0000]
Linux user-space tools for memory tracking functionality

10 years agoLinux front-end for memory tracking interface
Peter Dinda [Fri, 27 Jun 2014 00:54:50 +0000]
Linux front-end for memory tracking interface

10 years agoAdd memory tracking functionality to Palacios
Peter Dinda [Fri, 27 Jun 2014 00:52:56 +0000]
Add memory tracking functionality to Palacios

This creates an abstraction for tracking memory references
at the granularity of pages, regardless of the paging mechanism
being used.

10 years agoGuest control cleanup
Peter Dinda [Mon, 23 Jun 2014 18:05:13 +0000]
Guest control cleanup

10 years agoExpose swapping and pinning to host + add visibility to linux module
Peter Dinda [Sun, 22 Jun 2014 23:05:39 +0000]
Expose swapping and pinning to host + add visibility to linux module

/proc/v3vee/v3-guests-details will now show the swapped or pinned state
of regions

10 years agoMinor bug fixes and defensive programming
Peter Dinda [Sun, 22 Jun 2014 23:04:20 +0000]
Minor bug fixes and defensive programming

10 years agoAdd swapping and pinning capability to Palacios
Daniel Zuo, Nikhat Karimi, Ahalya Srinivasan, Peter Dinda [Sat, 21 Jun 2014 02:08:54 +0000]
Add swapping and pinning capability to Palacios

This commit adds allows swapping of VMs at the granularity of
base regions.  Since base regions down to the page granularity are
possible, this swapper can swap down to page granularity as well.

The functionality can be selected at compile time, and the use of
swapping is determined at run time with a new "swapping" block, like
this:

  <mem ... >N_MB</mem>             Size of memory in the GPA

  <swapping enable="y">
     <allocated>M_MB</allocated>   Allocated space (M_MB <= N_MB)
     <file>FILENAME</file>         Where to swap to
     <strategy>STRATEGY</strategy> Victim picker to use NEXT_FIT, RANDOM (default), LRU, DEFAULT
  </swapping>

Pinning is also supported

10 years agoMake newly created files 0600 by default
Peter Dinda [Sat, 21 Jun 2014 01:33:33 +0000]
Make newly created files 0600 by default

10 years agoMinor fixes
Peter Dinda [Mon, 9 Jun 2014 23:01:46 +0000]
Minor fixes

- friendlier yield in vtime
- VMM launch observes started vcores (from checkpoint resume with >1 vcores)

10 years agoRefactoring and additions to direct paging (nested and passthrough)
Peter Dinda [Mon, 9 Jun 2014 22:38:27 +0000]
Refactoring and additions to direct paging (nested and passthrough)

- SVM and VMX nested paging are better integrated, so there
  is now a single concept of "nested paging" at the "v3_" level
- VMX nested paging now has a parallel interface to SVM nested paging,
  so you can, for example invalidate regions, etc.
- Nested paging now has an event callback mechanism
- Direct paging now has an event callback mechanism
- v3_ functions related to nested and direct paging
  now return the GPA ranges they affect, as do
  the new event callbacks

10 years agoConvert shadow paging to use 32 PAE (Remove 32 Bit Restrictions)
Chunxiao Diao, Daniel Zuo, Yuanbo Fan [Mon, 26 May 2014 21:23:04 +0000]
Convert shadow paging to use 32 PAE (Remove 32 Bit Restrictions)

This changes shadow paging to use, at minimum, 32PAE
shadow page tables.   This makes it possible to place
a guest using shadow paging anywhere in host physical
memory instead of just the first 4 GB

This patch removes the concept of "Shadow Safe" memory
from Palacios, and it removes all places where it was used,
most importantly, in the allocation of the guest itself.

These patches must be used together.

10 years agoConvert shadow paging to use 32 PAE (Require Long Mode)
Peter Dinda [Mon, 26 May 2014 21:20:01 +0000]
Convert shadow paging to use 32 PAE (Require Long Mode)

This changes shadow paging to use, at minimum, 32PAE
shadow page tables.   This makes it possible to place
a guest using shadow paging anywhere in host physical
memory instead of just the first 4 GB

This change requires Palacios to be initialized and
run in long mode.   At minimum, we need PAE to be
available, and ideally, we want the version of PAE
developed for long mode to the one we use, not
the Intel legacy PAE stuff for 32 bit mode.

These patches need to be used together.

10 years agoConvert shadow paging to use 32 PAE (VMX)
Peter Dinda [Mon, 26 May 2014 21:15:24 +0000]
Convert shadow paging to use 32 PAE (VMX)

This changes shadow paging to use, at minimum, 32PAE
shadow page tables.   This makes it possible to place
a guest using shadow paging anywhere in host physical
memory instead of just the first 4 GB

This patch adds support to VMX for this functionality:

- cr4 is read-shadowed to the shadow pager's guest cr4
- PAE is forced on
- vmx assist does not overwrite cr4 control, just masks it
- cleaner activation of passthrough PTs

Note that this is able to boot a BOCHS BIOS and a Linux guest.
It fails to boot the SEABIOS (Trap 0x8), but then that bug
is confirmed to be independent of these patches.

10 years agoConvert shadow paging to use 32 PAE (SVM)
Chunxiao Diao, Daniel Zuo, Yuanbo Fan [Mon, 26 May 2014 21:11:44 +0000]
Convert shadow paging to use 32 PAE (SVM)

This changes shadow paging to use, at minimum, 32PAE
shadow page tables.   This makes it possible to place
a guest using shadow paging anywhere in host physical
memory instead of just the first 4 GB

This patch updates SVM so that the shadow pts are activated
and CR4 reads as well as writes are intercepted.

Note that all patches with this name need to be used together
for this to work.

10 years agoConvert shadow paging to use 32 PAE (Direct Paging)
Chunxiao Diao, Daniel Zuo, Yuanbo Fan [Mon, 26 May 2014 20:58:49 +0000]
Convert shadow paging to use 32 PAE (Direct Paging)

This changes shadow paging to use, at minimum, 32PAE
shadow page tables.   This makes it possible to place
a guest using shadow paging anywhere in host physical
memory instead of just the first 4 GB

This patch converts the direct pager to use 32PAE.
The direct pager is active when the guest has no
installed page tables.   All patches of this name
need to be applied for this to work.

10 years agoConvert shadow paging to use 32 PAE (Core)
Chunxiao Diao, Daniel Zuo, Yuanbo Fan [Mon, 26 May 2014 20:54:18 +0000]
Convert shadow paging to use 32 PAE (Core)

This changes shadow paging to use, at minimum, 32PAE
shadow page tables.   This makes it possible to place
a guest using shadow paging anywhere in host physical
memory instead of just the first 4 GB

This first patch adds core functionality to the VTLB
pager, as well as change to CR4 handling.   The
other patches with this name need to be applied for
this to work.

10 years agoCorrected corner case in VTLB (shadow paging) handling
Chunxiao Diao [Sun, 6 Apr 2014 22:13:49 +0000]
Corrected corner case in VTLB (shadow paging) handling

10 years agoAssorted minor fixes to the transactional memory code
Peter Dinda [Sun, 6 Apr 2014 21:48:21 +0000]
Assorted minor fixes to the transactional memory code

10 years agodon't let PCI BAR updates go through when device IO-space disabled
Kyle Hale [Mon, 24 Mar 2014 17:43:16 +0000]
don't let PCI BAR updates go through when device IO-space disabled

10 years agoXEND instruction now correctly generates GPF when not in RTM mode
Kyle Hale [Wed, 26 Mar 2014 05:35:31 +0000]
XEND instruction now correctly generates GPF when not in RTM mode

10 years agosmall fixes in RTM code
Kyle Hale [Wed, 26 Mar 2014 00:44:24 +0000]
small fixes in RTM code

10 years agoRTM code: abort on extern irqs and fixed bug in abort handling
Kyle Hale [Wed, 26 Mar 2014 00:06:09 +0000]
RTM code: abort on extern irqs and fixed bug in abort handling

10 years agocorrect XTEST behavior in RTM code
Kyle Hale [Tue, 25 Mar 2014 22:02:59 +0000]
correct XTEST behavior in RTM code

10 years agosteps toward correct exception emulation in RTM code
Kyle Hale [Tue, 25 Mar 2014 21:55:19 +0000]
steps toward correct exception emulation in RTM code

10 years agoRAX is now set with a status code on aborts for RTM, as per Intel spec
Kyle Hale [Tue, 25 Mar 2014 21:15:20 +0000]
RAX is now set with a status code on aborts for RTM, as per Intel spec

10 years agoexpose RTM cap in CPUID
Kyle Hale [Tue, 25 Mar 2014 18:44:50 +0000]
expose RTM cap in CPUID

10 years agoaddition of print macros for RTM code
Maciek Swiech [Tue, 25 Mar 2014 15:44:31 +0000]
addition of print macros for RTM code

10 years agosignificant refactoring of RTM emulation code
Kyle Hale [Tue, 25 Mar 2014 00:09:37 +0000]
significant refactoring of RTM emulation code

This is the first cut at a refactor of the transactional memory
extension. Most changes have been to reduce large function sizes, and
to reduce footprint in changes to Palacios core files. There are
several bug fixes as well, and this gets us to the point where we
can run thousand-transaction benchmarks on single-core.

At this point our main limitations are yet-to-be implemented
architectural features (coming soon) and limitations in the
quix86 decoder.

Signed-off-by: Maciek Swiech <dotpyfe@u.northwestern.edu>

10 years agoAdd comment
Kevin Pedretti [Fri, 4 Apr 2014 21:53:36 +0000]
Add comment

10 years agoFix xed build error
Kevin Pedretti [Fri, 4 Apr 2014 21:49:37 +0000]
Fix xed build error

10 years agoIgnore frees of null in all cases (kfree, vfree, pagefree)
Peter Dinda [Mon, 24 Mar 2014 21:59:03 +0000]
Ignore frees of null in all cases (kfree, vfree, pagefree)

10 years agoadd ability to destroy hashtable iterators
Kyle Hale [Mon, 24 Mar 2014 21:42:39 +0000]
add ability to destroy hashtable iterators

10 years agodoc fix for config_v3vee
Kyle Hale [Sun, 23 Mar 2014 20:02:59 +0000]
doc fix for config_v3vee

10 years agoHPET does not abort load/save
Peter Dinda [Tue, 11 Mar 2014 16:09:42 +0000]
HPET does not abort load/save

10 years agoMinor bug fix
Peter Dinda [Thu, 6 Mar 2014 19:33:35 +0000]
Minor bug fix

10 years agoAdded HPET (High Precision Event Timer) device
Kyle Hale [Thu, 6 Mar 2014 19:19:28 +0000]
Added HPET (High Precision Event Timer) device

This is an initial implementation of a virtual HPET. Does not support
checkpoint save/restore yet. The HPET is currently defined to run at
1/16th of guest time

Note that a typical guest will check for the existence of the HPET
via an ACPI table.   To force the current SeaBios to build this table
apply the following patch to it.  This will eventually be automatic.

rem diff --git a/bios/seabios/src/acpi.c b/bios/seabios/src/acpi.c
rem index 95575a1..da7c9e9 100644
rem --- a/bios/seabios/src/acpi.c
rem +++ b/bios/seabios/src/acpi.c
rem @@ -673,9 +673,9 @@ acpi_bios_init(void)
rem     ACPI_INIT_TABLE(build_fadt(pci));
rem     ACPI_INIT_TABLE(build_ssdt());
rem     ACPI_INIT_TABLE(build_madt());
rem -   if (pci) {
rem +   //if (pci) {
rem        ACPI_INIT_TABLE(build_hpet());
rem -   }
rem +   //}
rem     ACPI_INIT_TABLE(build_srat());
rem
rem     u16 i, external_tables = qemu_cfg_acpi_additional_tables();

10 years agoAPIC bugfix - corrected MSR read/write behavior
Peter Dinda [Sat, 22 Feb 2014 00:26:17 +0000]
APIC bugfix - corrected MSR read/write behavior

10 years agovirtio-blk now handles config requests for non-declared config info
Jack Lange [Thu, 20 Feb 2014 18:47:48 +0000]
virtio-blk now handles config requests for non-declared config info

10 years agoMinor cleanups on shadow paging build/debug
Peter Dinda [Tue, 18 Feb 2014 01:18:57 +0000]
Minor cleanups on shadow paging build/debug

10 years agoAddition of state to checkpoint
Maciek Swiech [Wed, 22 Jan 2014 22:54:08 +0000]
Addition of state to checkpoint

- now includes memory and cpu modes and CPL
- CPL sanity check

10 years agov3_stream argument number bugfix
Maciek Swiech [Fri, 17 Jan 2014 22:20:35 +0000]
v3_stream argument number bugfix

10 years agoAdditional sanity-checks for guest configuration (v3_config_guest.pl)
Peter Dinda [Tue, 14 Jan 2014 00:13:08 +0000]
Additional sanity-checks for guest configuration (v3_config_guest.pl)

10 years agoError checking fixes, minor bug in keyed stream, minor bug in checkpoint
Peter Dinda [Tue, 14 Jan 2014 00:04:02 +0000]
Error checking fixes, minor bug in keyed stream, minor bug in checkpoint

All allocations now zeroed by default

10 years agoApic initialization bugfix
Maciej Swiech [Fri, 10 Jan 2014 23:23:28 +0000]
Apic initialization bugfix

10 years agoAdded ATA PIO write, other ide cleanup
Kyle Hale [Tue, 7 Jan 2014 23:31:45 +0000]
Added ATA PIO write, other ide cleanup

10 years agoarg length bugfix in v3_stream
Kyle Hale [Mon, 6 Jan 2014 17:46:28 +0000]
arg length bugfix in v3_stream