More cleanup to prepare for ioapic support
authorRonald G. Minnich <rminnich@google.com>
Fri, 28 Feb 2014 21:59:30 +0000 (13:59 -0800)
committerRonald G. Minnich <rminnich@google.com>
Fri, 28 Feb 2014 21:59:30 +0000 (13:59 -0800)
Signed-off-by: Ronald G. Minnich <rminnich@google.com>
kern/arch/x86/init.c
kern/arch/x86/ioapic.h

index e1b2311..b9fd6e5 100644 (file)
@@ -6,9 +6,7 @@
 
 #include <smp.h>
 
-#include <arch/mptables.h>
 #include <arch/pci.h>
-#include <arch/ioapic.h>
 #include <arch/console.h>
 #include <arch/perfmon.h>
 #include <arch/init.h>
index b3de524..d6f493a 100644 (file)
@@ -6,53 +6,8 @@
 #ifndef ROS_KERN_IOAPIC_H
 #define ROS_KERN_IOAPIC_H
 
-#include <ros/common.h>
-
 /* Physical address of the IOAPIC, can be changed.  Currently, it's mapped at
  * the VADDR IOAPIC_BASE */
 #define IOAPIC_PBASE                           0xfec00000 /* default *physical* address */
 
-/* These are things like level sensitive, edge triggered, fixed, nmi, extint, etc
- * This is based on the x58 chipset spec. There are only 2 combinations so
- * Paul didn't bother to spell them out bit by bit and or them together.
- */
-#define IOAPIC_PCI_FLAGS                       0xa0
-#define IOAPIC_ISA_FLAGS                       0x00
-/* This says how we should treat PCI interrupts that are listed as ISA by mptables.
- * This was determined by trial and error in the VM's. All current VMs that have this
- * 'feature' use ISA style flags. 
- * Author's note: Paul really hates whoever wrote the bochs bios (which is
- * the source of this problem for bochs/kvm/qemu).
- */
-#define IOAPIC_BROKEN_PCI_FLAGS                IOAPIC_ISA_FLAGS 
-
-// Obvious
-#define IOAPIC_MAX_ID                          256
-
-// The magic bits we write to kill unroute an irq. The 16th bit is the important one, being set to 1. 
-// Other bits are just to restore it to a clean boot-like state.
-#define IOAPIC_UNROUTE_LOW                     0x00010000
-#define IOAPIC_UNROUTE_HIGH                    0x00000000
-
-// Mem mapped register magic numbers. Oo magic!
-#define IOAPIC_REDIRECT_OFFSET         0x10
-#define IOAPIC_WRITE_WINDOW_OFFSET     0x10
-
-/* Structure used to define an interrupt redirection entry. 
- * This structure encapsulates:
- *             An IRQ
- *             The flags used for rerouting (edge sensitive, level triggered, etc)
- *             Ioapic ADDR (physical Addr)
- */
-typedef struct IOAPICREDIRECT {
-    uintptr_t          ioapic_address; /* 0 means invalid */
-       uint8_t                 ioapic_flags;
-       uint8_t                 ioapic_int;
-} ioapic_redirect_t;
-
-// Everyone loves a protoype.
-void ioapic_init();
-void ioapic_route_irq(uint8_t irq, uint8_t dest);
-void ioapic_unroute_irq(uint8_t irq);
-
 #endif /* ROS_KERN_IOAPIC_H */