aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2010-03-27 09:34:00 +0200
committerWill Deacon <will.deacon@arm.com>2015-06-01 16:39:38 +0100
commit7fb218bdd084505954a9a5b69d9833fecb445e04 (patch)
tree46c1a130397e0724125f2fa417f94a8c17e01e95 /main.c
parent009b07588a2f9c14c7ab585d3d4933727279308f (diff)
downloadkvmtool-7fb218bdd084505954a9a5b69d9833fecb445e04.tar.gz
kvm: Load bzImage real-mode boot sector and setup code
We start KVM in 16-bit mode so we should set cs:ip to point to the real-mode boot sector and setup code, not the protected mode kernel that starts at 1M. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'main.c')
-rw-r--r--main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/main.c b/main.c
index ba0aefab..329925b6 100644
--- a/main.c
+++ b/main.c
@@ -1,5 +1,7 @@
#include "kvm/kvm.h"
+#include "util.h"
+
#include <inttypes.h>
#include <stdint.h>
#include <stdlib.h>
@@ -14,7 +16,6 @@ static void usage(char *argv[])
int main(int argc, char *argv[])
{
const char *kernel_filename;
- uint64_t kernel_start;
struct kvm *kvm;
if (argc < 2)
@@ -24,9 +25,10 @@ int main(int argc, char *argv[])
kvm = kvm__init();
- kernel_start = kvm__load_kernel(kvm, kernel_filename);
+ if (!kvm__load_kernel(kvm, kernel_filename))
+ die("unable to load kernel %s", kernel_filename);
- kvm__reset_vcpu(kvm, kernel_start);
+ kvm__reset_vcpu(kvm);
kvm__enable_singlestep(kvm);