Fix the pirq routing stuff.

This commit is contained in:
Eric W. Biederman 2001-08-08 20:35:11 +00:00
commit 064f2b32fd
11 changed files with 33 additions and 32 deletions

View file

@ -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)

View file

@ -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);

View file

@ -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

View file

@ -1,5 +1,5 @@
#include <subr.h>
#include <arch/pirq_routing.h>
/*
* This table must be located between 0x000f0000 and 0x000fffff.

View file

@ -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.

View file

@ -1,4 +1,4 @@
#include <i386_subr.h>
#include <arch/pirq_routing.h>
#ifndef SIS630S
#define CHECKSUM 0xe6

View file

@ -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 = {

View file

@ -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

View file

@ -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 = {

View file

@ -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 = {

View file

@ -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 = {