Hey guys, I merged in my emulation code to the master branch. The highlights of what was added are: * Intercept all interrupts except for FIQ (Linux doesn't use FIQ). IRQs interrupts are handled as we discussed (couldn't drive this while the guest was running though) * Changed kvmarm_handle_swi to be called kvmarm_handle_exit, added framework for handling each type of host interrupt * Handle UNDEFINED interrupt by driving kvmarm_emulate_undefined_instr * Exception emulation (not thoroughly tested, working on ways to build scaffolding and get this done) * Coprocessor emulation, currently handles the basic get/set type regs (CR0, CR1). Other instructions such as TLB control/cache control, etc not implemented Note that kvmtest will now show the final regs as if the next instruction to occur is the SVC interrupt handler (the PC is set to 0x00000008). This is because kvmtest adds an SWI at the end, and the exception emulation code gets driven. After the emulation code, there is a temporary bit of code in kvmarm_handle_exit that tells arm_interrupts to return control to the host so we don't get stuck in the guest. I would like to meet before the weekend, when are you guys free? Brian