17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * <Insert copyright here : it must be BSD-like so everyone can use it> 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * Author: Erich Boleyn <erich@uruk.org> http://www.uruk.org/~erich/ 57c478bd9Sstevel@tonic-gate * 67c478bd9Sstevel@tonic-gate * Header file for Intel Architecture local and I/O APIC definitions. 77c478bd9Sstevel@tonic-gate * 87c478bd9Sstevel@tonic-gate * This file was created from information in the Intel Pentium Pro 97c478bd9Sstevel@tonic-gate * Family Developer's Manual, Volume 3: Operating System Writer's 107c478bd9Sstevel@tonic-gate * Manual, order number 242692-001, which can be ordered from the 117c478bd9Sstevel@tonic-gate * Intel literature center. 127c478bd9Sstevel@tonic-gate */ 137c478bd9Sstevel@tonic-gate 147c478bd9Sstevel@tonic-gate #ifndef _APIC_H 157c478bd9Sstevel@tonic-gate #define _APIC_H 167c478bd9Sstevel@tonic-gate 177c478bd9Sstevel@tonic-gate /* 187c478bd9Sstevel@tonic-gate * APIC Defines. 197c478bd9Sstevel@tonic-gate */ 207c478bd9Sstevel@tonic-gate 217c478bd9Sstevel@tonic-gate #define APIC_BROADCAST_ID 0xFF 227c478bd9Sstevel@tonic-gate 237c478bd9Sstevel@tonic-gate /* 247c478bd9Sstevel@tonic-gate * APIC register definitions 257c478bd9Sstevel@tonic-gate */ 267c478bd9Sstevel@tonic-gate 277c478bd9Sstevel@tonic-gate /* 287c478bd9Sstevel@tonic-gate * Shared defines for I/O and local APIC definitions 297c478bd9Sstevel@tonic-gate */ 307c478bd9Sstevel@tonic-gate /* APIC version register */ 317c478bd9Sstevel@tonic-gate #define APIC_VERSION(x) ((x) & 0xFF) 327c478bd9Sstevel@tonic-gate /* if the APIC version is equal or greater than APIC_VER_NEW, it 337c478bd9Sstevel@tonic-gate is a "new" APIC */ 347c478bd9Sstevel@tonic-gate #define APIC_VER_NEW 0x10 357c478bd9Sstevel@tonic-gate /* this next one is used in all cases but an old local APIC, which has 367c478bd9Sstevel@tonic-gate 2 entries in it's LVT */ 377c478bd9Sstevel@tonic-gate #define APIC_MAXREDIR(x) (((x) >> 16) & 0xFF) 387c478bd9Sstevel@tonic-gate /* APIC id register */ 397c478bd9Sstevel@tonic-gate #define APIC_OLD_ID(x) ((x) >> 24) 407c478bd9Sstevel@tonic-gate #define APIC_NEW_ID(x) (((x) >> 24) & 0xF) 417c478bd9Sstevel@tonic-gate 427c478bd9Sstevel@tonic-gate #define IOAPIC_REGSEL 0 437c478bd9Sstevel@tonic-gate #define IOAPIC_RW 0x10 447c478bd9Sstevel@tonic-gate #define IOAPIC_ID 0 457c478bd9Sstevel@tonic-gate #define IOAPIC_VER 1 467c478bd9Sstevel@tonic-gate #define IOAPIC_REDIR 0x10 477c478bd9Sstevel@tonic-gate #define LAPIC_ID 0x20 487c478bd9Sstevel@tonic-gate #define LAPIC_VER 0x30 497c478bd9Sstevel@tonic-gate #define LAPIC_TPR 0x80 507c478bd9Sstevel@tonic-gate #define LAPIC_APR 0x90 517c478bd9Sstevel@tonic-gate #define LAPIC_PPR 0xA0 527c478bd9Sstevel@tonic-gate #define LAPIC_EOI 0xB0 537c478bd9Sstevel@tonic-gate #define LAPIC_LDR 0xD0 547c478bd9Sstevel@tonic-gate #define LAPIC_DFR 0xE0 557c478bd9Sstevel@tonic-gate #define LAPIC_SPIV 0xF0 567c478bd9Sstevel@tonic-gate #define LAPIC_SPIV_ENABLE_APIC 0x100 577c478bd9Sstevel@tonic-gate #define LAPIC_ISR 0x100 587c478bd9Sstevel@tonic-gate #define LAPIC_TMR 0x180 597c478bd9Sstevel@tonic-gate #define LAPIC_IRR 0x200 607c478bd9Sstevel@tonic-gate #define LAPIC_ESR 0x280 617c478bd9Sstevel@tonic-gate #define LAPIC_ICR 0x300 627c478bd9Sstevel@tonic-gate #define LAPIC_DEST_MASK 0xFFFFFF 637c478bd9Sstevel@tonic-gate #define LAPIC_LVTT 0x320 647c478bd9Sstevel@tonic-gate #define LAPIC_LVTPC 0x340 657c478bd9Sstevel@tonic-gate #define LAPIC_LVT0 0x350 667c478bd9Sstevel@tonic-gate #define LAPIC_LVT1 0x360 677c478bd9Sstevel@tonic-gate #define LAPIC_LVTE 0x370 687c478bd9Sstevel@tonic-gate #define LAPIC_TICR 0x380 697c478bd9Sstevel@tonic-gate #define LAPIC_TCCR 0x390 707c478bd9Sstevel@tonic-gate #define LAPIC_TDCR 0x3E0 717c478bd9Sstevel@tonic-gate 727c478bd9Sstevel@tonic-gate #endif /* _APIC_H */ 73