Please note that currently, the IOMMU is hardcoded currently at a specific 
physical address that requires the ACPI stuff to find out dynamically.

*THIS WILL NOT WORK OUT OF THE BOX FOR A DIFFERENT MACHINE CONFIGURATION 
OTHER THAN THE ONES WE BUILT IN MTV*

If you're looking to try it out on another machine, you'll need to find out 
the IOMMU's register bases in the VHRD, and find out which IOMMU maps
to the IOAPIC you want. Then you can change the DMAR_REG_PADDR value in 
kern/arch/x86/iommu.h to whatever the VHRD tells you.

The following changes since commit 0b10f30b9b9b18f0e45390231dbdaf7b045fbd5b:

  Print ${remote}:${head} in link for code review (2015-12-03 12:38:20 
-0500)

are available in the git repository at:

  [email protected]:GanShun/akaros.git 

for you to fetch changes up to dbdd541935111c8d418c77f83ddb885528768b89:

  Swapped IPI sending to a full 64-bit write and APIC writes to msr regs. 
(2015-12-04 11:18:48 -0800)

----------------------------------------------------------------
GanShun (5):
      Switched from APIC to X2APIC mode
      Initialized IOMMU and modified IOAPIC to send remappable interrupts.
      ExtINT mode for IOMMU is working and remaps IOAPIC IRQ 4 to vector 39
      IOMMU Rerouting of Interrupt 4 is now working. Busybox is receiving 
intrs
      Swapped IPI sending to a full 64-bit write and APIC writes to msr 
regs.

 kern/arch/x86/Kbuild          |   1 +
 kern/arch/x86/apic.c          |  34 ++++++++-------
 kern/arch/x86/apic.h          | 105 
++++++++++++++++++++++++-----------------------
 kern/arch/x86/apic9.c         | 174 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
 kern/arch/x86/ioapic.c        |  34 ++++++++++++---
 kern/arch/x86/ioapic.h        |   3 +-
 kern/arch/x86/iommu.c         | 178 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 kern/arch/x86/iommu.h         | 105 
+++++++++++++++++++++++++++++++++++++++++++++++
 kern/arch/x86/mp.c            |   4 +-
 kern/arch/x86/pmap64.c        |   7 +++-
 kern/arch/x86/ros/mmu64.h     |   7 ++--
 kern/arch/x86/smp_boot.c      |   6 ++-
 kern/arch/x86/time.c          |   4 +-
 kern/arch/x86/trap.c          |  30 ++++++++++++++
 kern/arch/x86/trapentry64.S   |   3 +-
 kern/arch/x86/vmm/intel/vmx.c |   9 +++-
 tests/vmm/vmrunkernel.c       |  43 ++++++++++++-------
 17 files changed, 611 insertions(+), 136 deletions(-)
 create mode 100644 kern/arch/x86/iommu.c
 create mode 100644 kern/arch/x86/iommu.h

https://github.com/GanShun/akaros/compare/0b10f30b9b9b18f0e45390231dbdaf7b045fbd5b...dbdd541935111c8d418c77f83ddb885528768b89

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to