#
af7b0868 |
| 06-Dec-2011 |
Matt Evans <matt@ozlabs.org> |
kvm tools: Split x86 arch-specific bits into x86/
Create a new arch-specific subdirectory to contain architecture-specific code and includes.
The Makefile now adds various arch-specific objects bas
kvm tools: Split x86 arch-specific bits into x86/
Create a new arch-specific subdirectory to contain architecture-specific code and includes.
The Makefile now adds various arch-specific objects based on detected architecture. That aside, this patch should only contain code moves. These include:
- x86-specific kvm_cpu setup, kernel loading, memory setup etc. now in x86/kvm{-cpu}.c - BIOS now lives in x86/bios/ - ioport setup - KVM extensions are asserted in arch-specific kvm.c now, so each architecture can manage its own dependencies. - Various architecture-specific #defines are moved into $(ARCH)/include/kvm{-cpu}.h such as struct kvm_cpu, KVM_NR_CPUS, KVM_32BIT_GAP_SIZE.
Signed-off-by: Matt Evans <matt@ozlabs.org> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
43835ac9 |
| 11-May-2011 |
Sasha Levin <levinsasha928@gmail.com> |
kvm tools: Rename 'self' variables
Give proper names to vars named 'self'.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
|
#
3fdf659d |
| 05-May-2011 |
Sasha Levin <levinsasha928@gmail.com> |
kvm tools: Abolishment of uint*_t types
Clean uint*_t type from the code.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
|
#
9292f776 |
| 08-Jul-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
kvm, bios: Rework BIOS setup
This is a really huge rework of our primitive BIOS emulator.
The initial idea was to implement stack management in BIOS irq handlers. In turn it ends up in re-factoring
kvm, bios: Rework BIOS setup
This is a really huge rework of our primitive BIOS emulator.
The initial idea was to implement stack management in BIOS irq handlers. In turn it ends up in re-factoring of all BIOS code.
Some code details -----------------
1) BIOS stack is placed at predefined constant memory address. 2) BIOS stack is only 64 bytes deep. It must be enough even for future irq handlers. 3) To be able to place irq handlers at almost arbitrary place of guest memory their start address must be 16 byte aligned. This makes easy to compute irq routines local variables addresses. 4) To eliminate address relocations in irq handlers code we use a special loader script.
TODO ----
- Still needs e820 map implements, int15 is dummy at moment
P.S. Thanks H. Peter Anvin for advices.
[ penberg@cs.helsinki.fi: cleanups ] Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
show more ...
|
#
8b8fb6c7 |
| 13-Apr-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
kvm: Kill the bin2c helper
Instead of calling bin2c helper we just include 16-bit pure code with .incbin and export the symbols we need.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-o
kvm: Kill the bin2c helper
Instead of calling bin2c helper we just include 16-bit pure code with .incbin and export the symbols we need.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
show more ...
|
#
305d9054 |
| 01-Apr-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
bios: Add bios stubs generated from assembly files
We substitute hardcoded fake bios handlers with ones generated from assembly sources. This way we may extend them if needed.
In particular new int
bios: Add bios stubs generated from assembly files
We substitute hardcoded fake bios handlers with ones generated from assembly sources. This way we may extend them if needed.
In particular new int0x10 handler just write output into video guest memory so the node machine may read the output anytime it needs (though, to be fair, the kernel uses int0x10 only once at bootup procedure if there was an attempt to boot directly from disk/floppy, any other output is done via video port I/O which is not implemented yet).
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
show more ...
|
#
768e8acc |
| 01-Apr-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
interrupt: Move bios related constants to kvm/bios.h
This will allow us to share them between assembly code and C code as well.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
#
d1a26cf0 |
| 01-Apr-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
interrupt: Add interrupt_table__set helper
In case if some particular interrupt entry needs to be modified we should use interrupt_table__set helper.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.
interrupt: Add interrupt_table__set helper
In case if some particular interrupt entry needs to be modified we should use interrupt_table__set helper.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
show more ...
|
#
22489bb0 |
| 30-Mar-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
kvm: Put fake bios interrupt handlers into known memory area
Instead of hacking boot protocol header better to place interrupt handlers into BDA.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
kvm: Put fake bios interrupt handlers into known memory area
Instead of hacking boot protocol header better to place interrupt handlers into BDA.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
show more ...
|
#
bc75b0ae |
| 29-Mar-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
kvm: Rename ivt_ prefixed entities
Though ivt stands for interrupt vector table it's not that clear, lets use real_intr_desc for that.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off
kvm: Rename ivt_ prefixed entities
Though ivt stands for interrupt vector table it's not that clear, lets use real_intr_desc for that.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
show more ...
|
#
4b62331f |
| 28-Mar-2010 |
Pekka Enberg <penberg@cs.helsinki.fi> |
kvm: Clean up interrupt_table__setup()
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
|
#
da8883c1 |
| 28-Mar-2010 |
Pekka Enberg <penberg@cs.helsinki.fi> |
kvm: Move interrupt table to struct kvm
This patch moves the global interrupt table to struct kvm.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
|
#
68967fcf |
| 28-Mar-2010 |
Pekka Enberg <penberg@cs.helsinki.fi> |
kvm: Clean up kvm/interrupt.h a bit
Add include guards to the header file and remove unnecessary #includes.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
|
#
eda03319 |
| 28-Mar-2010 |
Pekka Enberg <penberg@cs.helsinki.fi> |
kvm: Rename interrupt emulation source files
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
|
#
ea684828 |
| 28-Mar-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
kvm: Setup fake IVT table
Setup fake interrupt handlers for real mode, it consists of iret opcode only.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.h
kvm: Setup fake IVT table
Setup fake interrupt handlers for real mode, it consists of iret opcode only.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
show more ...
|
#
b1b71cd9 |
| 28-Mar-2010 |
Cyrill Gorcunov <gorcunov@gmail.com> |
kvm: Introduce IVT handling
Introduce procedures for handling IVT (Interrupt Vector Table) to be used int real mode bootstrap procedure.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-o
kvm: Introduce IVT handling
Introduce procedures for handling IVT (Interrupt Vector Table) to be used int real mode bootstrap procedure.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
show more ...
|