Fix the pirq routing stuff.
This commit is contained in:
parent
aedca3d806
commit
064f2b32fd
11 changed files with 33 additions and 32 deletions
|
|
@ -4,9 +4,32 @@
|
|||
#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
|
||||
#define PIRQ_VERSION 0x0100
|
||||
|
||||
struct irq_info {
|
||||
u8 bus, devfn; /* Bus, device and function */
|
||||
struct {
|
||||
u8 link; /* IRQ line ID, chipset dependent, 0=not routed */
|
||||
u16 bitmap; /* Available IRQs */
|
||||
} __attribute__((packed)) irq[4];
|
||||
u8 slot; /* Slot number, 0=onboard */
|
||||
u8 rfu;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct irq_routing_table {
|
||||
u32 signature; /* PIRQ_SIGNATURE should be here */
|
||||
u16 version; /* PIRQ_VERSION */
|
||||
u16 size; /* Table size in bytes */
|
||||
u8 rtr_bus, rtr_devfn; /* Where the interrupt router lies */
|
||||
u16 exclusive_irqs; /* IRQs devoted exclusively to PCI usage */
|
||||
u16 rtr_vendor, rtr_device; /* Vendor and device ID of interrupt router */
|
||||
u32 miniport_data; /* Crap */
|
||||
u8 rfu[11];
|
||||
u8 checksum; /* Modulo 256 checksum must give zero */
|
||||
struct irq_info slots[0];
|
||||
} __attribute__((packed));
|
||||
|
||||
extern const struct irq_routing_table intel_irq_routing_table;
|
||||
|
||||
#if !defined(DEBUG) && defined(HAVE_PIRQ_TABLE)
|
||||
#if defined(DEBUG) && defined(HAVE_PIRQ_TABLE)
|
||||
void check_pirq_routing_table(void);
|
||||
#else
|
||||
#define check_pirq_routing_table() do {} while(0)
|
||||
|
|
|
|||
|
|
@ -35,29 +35,6 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq);
|
|||
|
||||
/* pci-irq.c */
|
||||
|
||||
struct irq_info {
|
||||
u8 bus, devfn; /* Bus, device and function */
|
||||
struct {
|
||||
u8 link; /* IRQ line ID, chipset dependent, 0=not routed */
|
||||
u16 bitmap; /* Available IRQs */
|
||||
} __attribute__((packed)) irq[4];
|
||||
u8 slot; /* Slot number, 0=onboard */
|
||||
u8 rfu;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct irq_routing_table {
|
||||
u32 signature; /* PIRQ_SIGNATURE should be here */
|
||||
u16 version; /* PIRQ_VERSION */
|
||||
u16 size; /* Table size in bytes */
|
||||
u8 rtr_bus, rtr_devfn; /* Where the interrupt router lies */
|
||||
u16 exclusive_irqs; /* IRQs devoted exclusively to PCI usage */
|
||||
u16 rtr_vendor, rtr_device; /* Vendor and device ID of interrupt router */
|
||||
u32 miniport_data; /* Crap */
|
||||
u8 rfu[11];
|
||||
u8 checksum; /* Modulo 256 checksum must give zero */
|
||||
struct irq_info slots[0];
|
||||
} __attribute__((packed));
|
||||
|
||||
extern unsigned int pcibios_irq_mask;
|
||||
|
||||
void pcibios_irq_init(void);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <i386_subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
/* NOTE -- THIS IS A PLACEHOLDER -- WE NEED TO FIX THIS */
|
||||
#define CHECKSUM 0xe6
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
#include <subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
/*
|
||||
* This table must be located between 0x000f0000 and 0x000fffff.
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ Need to define PIIX4_DEVFN=0x38 as compile time flag
|
|||
*/
|
||||
|
||||
#include <subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
/*
|
||||
* This table must be located between 0x000f0000 and 0x000fffff.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <i386_subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
#ifndef SIS630S
|
||||
#define CHECKSUM 0xe6
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <i386_subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
#define CHECKSUM 0xe6
|
||||
const struct irq_routing_table intel_irq_routing_table = {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <i386_subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
/* NOTE -- THIS IS A PLACEHOLDER -- WE NEED TO FIX THIS */
|
||||
#define CHECKSUM 0xe6
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <i386_subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
#define CHECKSUM 0x14
|
||||
const struct irq_routing_table intel_irq_routing_table = {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <i386_subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
#define CHECKSUM 0xe6
|
||||
const struct irq_routing_table intel_irq_routing_table = {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#include <i386_subr.h>
|
||||
#include <arch/pirq_routing.h>
|
||||
|
||||
#define CHECKSUM 0x1F
|
||||
const struct irq_routing_table intel_irq_routing_table = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue