blob: cf60553f0c91d0fee534c67101bc3b3af6bb0e49 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
interrupt problem x86_64
Hello.
I'm studing the x86_64 arch to port colinux to this new architecture.
For who does not know, colinux is a port of linux that runs on windows NATIVELY. Colinux is
1) a small windows driver
2) a kernel patched
3) some windows user-space application that talk with linux kernel (network, console, ...)
I have written the more internal part of colinux, that is the code that switch between windows and linux.
This is done saving and restore the machine state :
1) CR3
2) IDT
3) registers
The problem I see is that after the switch I see the reboot of my virtual machine.
I would say that the new IDT and/or CR3 is not flushed.
My code is written in asm/C so I can follow the code step by step.
I can say exactly the instruction that is broken.
All my code runs nicely on bochs.
I don't have an x86_64 real PC.
If someone wants to repair this bug .... I'm here.
Paolo Minazzi
|