| 1 |
1633 |
jcastillo |
#ifndef __ASM_I82489_H
|
| 2 |
|
|
#define __ASM_I82489_H
|
| 3 |
|
|
|
| 4 |
|
|
/*
|
| 5 |
|
|
* Offsets for programming the 82489 and Pentium integrated APIC
|
| 6 |
|
|
*
|
| 7 |
|
|
* Alan Cox <Alan.Cox@linux.org>, 1995.
|
| 8 |
|
|
*/
|
| 9 |
|
|
|
| 10 |
|
|
#define APIC_ID 0x20
|
| 11 |
|
|
#define GET_APIC_ID(x) (((x)>>24)&0x0F)
|
| 12 |
|
|
#define APIC_VERSION 0x30
|
| 13 |
|
|
#define APIC_TASKPRI 0x80
|
| 14 |
|
|
#define APIC_TPRI_MASK 0xFF
|
| 15 |
|
|
#define APIC_ARBPRI 0x90
|
| 16 |
|
|
#define APIC_PROCPRI 0xA0
|
| 17 |
|
|
#define APIC_EOI 0xB0
|
| 18 |
|
|
#define APIC_EIO_ACK 0x0 /* Write this to the EOI register */
|
| 19 |
|
|
#define APIC_RRR 0xC0
|
| 20 |
|
|
#define APIC_LDR 0xD0
|
| 21 |
|
|
#define GET_APIC_LOGICAL_ID(x) (((x)>>24)&0xFF)
|
| 22 |
|
|
#define APIC_DFR 0xE0
|
| 23 |
|
|
#define GET_APIC_DFR(x) (((x)>>28)&0x0F)
|
| 24 |
|
|
#define SET_APIC_DFR(x) ((x)<<28)
|
| 25 |
|
|
#define APIC_SPIV 0xF0
|
| 26 |
|
|
#define APIC_ISR 0x100
|
| 27 |
|
|
#define APIC_TMR 0x180
|
| 28 |
|
|
#define APIC_IRR 0x200
|
| 29 |
|
|
#define APIC_ESR 0x280
|
| 30 |
|
|
#define APIC_ESR_SEND_CS 0x00001
|
| 31 |
|
|
#define APIC_ESR_RECV_CS 0x00002
|
| 32 |
|
|
#define APIC_ESR_SEND_ACC 0x00004
|
| 33 |
|
|
#define APIC_ESR_RECV_ACC 0x00008
|
| 34 |
|
|
#define APIC_ESR_SENDILL 0x00020
|
| 35 |
|
|
#define APIC_ESR_RECVILL 0x00040
|
| 36 |
|
|
#define APIC_ESR_ILLREGA 0x00080
|
| 37 |
|
|
#define APIC_ICR 0x300
|
| 38 |
|
|
#define APIC_DEST_FIELD 0x00000
|
| 39 |
|
|
#define APIC_DEST_SELF 0x40000
|
| 40 |
|
|
#define APIC_DEST_ALLINC 0x80000
|
| 41 |
|
|
#define APIC_DEST_ALLBUT 0xC0000
|
| 42 |
|
|
#define APIC_DEST_RR_MASK 0x30000
|
| 43 |
|
|
#define APIC_DEST_RR_INVALID 0x00000
|
| 44 |
|
|
#define APIC_DEST_RR_INPROG 0x10000
|
| 45 |
|
|
#define APIC_DEST_RR_VALID 0x20000
|
| 46 |
|
|
#define APIC_DEST_LEVELTRIG 0x08000
|
| 47 |
|
|
#define APIC_DEST_ASSERT 0x04000
|
| 48 |
|
|
#define APIC_DEST_BUSY 0x01000
|
| 49 |
|
|
#define APIC_DEST_LOGICAL 0x00800
|
| 50 |
|
|
#define APIC_DEST_DM_FIXED 0x00000
|
| 51 |
|
|
#define APIC_DEST_DM_LOWEST 0x00100
|
| 52 |
|
|
#define APIC_DEST_DM_SMI 0x00200
|
| 53 |
|
|
#define APIC_DEST_DM_REMRD 0x00300
|
| 54 |
|
|
#define APIC_DEST_DM_NMI 0x00400
|
| 55 |
|
|
#define APIC_DEST_DM_INIT 0x00500
|
| 56 |
|
|
#define APIC_DEST_DM_STARTUP 0x00600
|
| 57 |
|
|
#define APIC_DEST_VECTOR_MASK 0x000FF
|
| 58 |
|
|
#define APIC_ICR2 0x310
|
| 59 |
|
|
#define GET_APIC_DEST_FIELD(x) (((x)>>24)&0xFF)
|
| 60 |
|
|
#define SET_APIC_DEST_FIELD(x) ((x)<<24)
|
| 61 |
|
|
#define APIC_LVTT 0x320
|
| 62 |
|
|
#define APIC_LVT0 0x350
|
| 63 |
|
|
#define APIC_LVT_TIMER_PERIODIC (1<<17)
|
| 64 |
|
|
#define APIC_LVT_MASKED (1<<16)
|
| 65 |
|
|
#define APIC_LVT_LEVEL_TRIGGER (1<<15)
|
| 66 |
|
|
#define APIC_LVT_REMOTE_IRR (1<<14)
|
| 67 |
|
|
#define APIC_INPUT_POLARITY (1<<13)
|
| 68 |
|
|
#define APIC_SEND_PENDING (1<<12)
|
| 69 |
|
|
#define GET_APIC_DELIVERY_MODE(x) (((x)>>8)&0x7)
|
| 70 |
|
|
#define SET_APIC_DELIVERY_MODE(x,y) (((x)&~0x700)|((y)<<8))
|
| 71 |
|
|
#define APIC_MODE_FIXED 0x0
|
| 72 |
|
|
#define APIC_MODE_NMI 0x4
|
| 73 |
|
|
#define APIC_MODE_EXINT 0x7
|
| 74 |
|
|
#define APIC_LVT1 0x360
|
| 75 |
|
|
#define APIC_LVERR 0x370
|
| 76 |
|
|
#define APIC_TMICT 0x380
|
| 77 |
|
|
#define APIC_TMCCT 0x390
|
| 78 |
|
|
#define APIC_TDCR 0x3E0
|
| 79 |
|
|
#define APIC_TDR_DIV_1 0xB
|
| 80 |
|
|
#define APIC_TDR_DIV_2 0x0
|
| 81 |
|
|
#define APIC_TDR_DIV_4 0x1
|
| 82 |
|
|
#define APIC_TDR_DIV_8 0x2
|
| 83 |
|
|
#define APIC_TDR_DIV_16 0x3
|
| 84 |
|
|
#define APIC_TDR_DIV_32 0x8
|
| 85 |
|
|
#define APIC_TDR_DIV_64 0x9
|
| 86 |
|
|
#define APIC_TDR_DIV_128 0xA
|
| 87 |
|
|
|
| 88 |
|
|
#endif
|