15b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* 25b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * <Insert copyright here : it must be BSD-like so everyone can use it> 35b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * 45b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Author: Erich Boleyn <erich@uruk.org> http://www.uruk.org/~erich/ 55b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * 65b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Header file for Intel Architecture local and I/O APIC definitions. 75b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * 85b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * This file was created from information in the Intel Pentium Pro 95b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Family Developer's Manual, Volume 3: Operating System Writer's 105b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Manual, order number 242692-001, which can be ordered from the 115b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Intel literature center. 125b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project */ 135b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 145b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#ifndef _APIC_H 155b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define _APIC_H 165b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 175b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* 185b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * APIC Defines. 195b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project */ 205b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 215b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define APIC_BROADCAST_ID 0xFF 225b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 235b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* 245b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * APIC register definitions 255b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project */ 265b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 275b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* 285b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project * Shared defines for I/O and local APIC definitions 295b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project */ 305b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* APIC version register */ 315b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define APIC_VERSION(x) ((x) & 0xFF) 325b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* if the APIC version is equal or greater than APIC_VER_NEW, it 335b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project is a "new" APIC */ 345b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define APIC_VER_NEW 0x10 355b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* this next one is used in all cases but an old local APIC, which has 365b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 2 entries in it's LVT */ 375b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define APIC_MAXREDIR(x) (((x) >> 16) & 0xFF) 385b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project/* APIC id register */ 395b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define APIC_OLD_ID(x) ((x) >> 24) 405b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define APIC_NEW_ID(x) (((x) >> 24) & 0xF) 415b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 425b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IOAPIC_REGSEL 0 435b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IOAPIC_RW 0x10 445b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IOAPIC_ID 0 455b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IOAPIC_VER 1 465b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define IOAPIC_REDIR 0x10 475b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_ID 0x20 485b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_VER 0x30 495b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_TPR 0x80 505b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_APR 0x90 515b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_PPR 0xA0 525b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_EOI 0xB0 535b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_LDR 0xD0 545b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_DFR 0xE0 555b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_SPIV 0xF0 565b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_SPIV_ENABLE_APIC 0x100 575b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_ISR 0x100 585b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_TMR 0x180 595b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_IRR 0x200 605b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_ESR 0x280 615b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_ICR 0x300 625b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_DEST_MASK 0xFFFFFF 635b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_LVTT 0x320 645b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_LVTPC 0x340 655b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_LVT0 0x350 665b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_LVT1 0x360 675b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_LVTE 0x370 685b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_TICR 0x380 695b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_TCCR 0x390 705b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#define LAPIC_TDCR 0x3E0 715b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project 725b1eb061628a97aae48a9c0bcaa96eb0bfa07aa4The Android Open Source Project#endif /* _APIC_H */ 73