ioapic.h 942 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * From coreboot file of the same name
  3. *
  4. * Copyright (C) 2010 coresystems GmbH
  5. *
  6. * SPDX-License-Identifier: GPL-2.0
  7. */
  8. #ifndef __ASM_IOAPIC_H
  9. #define __ASM_IOAPIC_H
  10. #define IO_APIC_ADDR 0xfec00000
  11. #define IO_APIC_INDEX IO_APIC_ADDR
  12. #define IO_APIC_DATA (IO_APIC_ADDR + 0x10)
  13. #define IO_APIC_INTERRUPTS 24
  14. #define ALL (0xff << 24)
  15. #define NONE 0
  16. #define DISABLED (1 << 16)
  17. #define ENABLED (0 << 16)
  18. #define TRIGGER_EDGE (0 << 15)
  19. #define TRIGGER_LEVEL (1 << 15)
  20. #define POLARITY_HIGH (0 << 13)
  21. #define POLARITY_LOW (1 << 13)
  22. #define PHYSICAL_DEST (0 << 11)
  23. #define LOGICAL_DEST (1 << 11)
  24. #define ExtINT (7 << 8)
  25. #define NMI (4 << 8)
  26. #define SMI (2 << 8)
  27. #define INT (1 << 8)
  28. u32 io_apic_read(u32 ioapic_base, u32 reg);
  29. void io_apic_write(u32 ioapic_base, u32 reg, u32 value);
  30. void set_ioapic_id(u32 ioapic_base, u8 ioapic_id);
  31. void setup_ioapic(u32 ioapic_base, u8 ioapic_id);
  32. void clear_ioapic(u32 ioapic_base);
  33. #endif