msidef.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef _ASM_X86_MSIDEF_H
  2. #define _ASM_X86_MSIDEF_H
  3. /*
  4. * Constants for Intel APIC based MSI messages.
  5. */
  6. /*
  7. * Shifts for MSI data
  8. */
  9. #define MSI_DATA_VECTOR_SHIFT 0
  10. #define MSI_DATA_VECTOR_MASK 0x000000ff
  11. #define MSI_DATA_VECTOR(v) (((v) << MSI_DATA_VECTOR_SHIFT) & \
  12. MSI_DATA_VECTOR_MASK)
  13. #define MSI_DATA_DELIVERY_MODE_SHIFT 8
  14. #define MSI_DATA_DELIVERY_FIXED (0 << MSI_DATA_DELIVERY_MODE_SHIFT)
  15. #define MSI_DATA_DELIVERY_LOWPRI (1 << MSI_DATA_DELIVERY_MODE_SHIFT)
  16. #define MSI_DATA_LEVEL_SHIFT 14
  17. #define MSI_DATA_LEVEL_DEASSERT (0 << MSI_DATA_LEVEL_SHIFT)
  18. #define MSI_DATA_LEVEL_ASSERT (1 << MSI_DATA_LEVEL_SHIFT)
  19. #define MSI_DATA_TRIGGER_SHIFT 15
  20. #define MSI_DATA_TRIGGER_EDGE (0 << MSI_DATA_TRIGGER_SHIFT)
  21. #define MSI_DATA_TRIGGER_LEVEL (1 << MSI_DATA_TRIGGER_SHIFT)
  22. /*
  23. * Shift/mask fields for msi address
  24. */
  25. #define MSI_ADDR_BASE_HI 0
  26. #define MSI_ADDR_BASE_LO 0xfee00000
  27. #define MSI_ADDR_DEST_MODE_SHIFT 2
  28. #define MSI_ADDR_DEST_MODE_PHYSICAL (0 << MSI_ADDR_DEST_MODE_SHIFT)
  29. #define MSI_ADDR_DEST_MODE_LOGICAL (1 << MSI_ADDR_DEST_MODE_SHIFT)
  30. #define MSI_ADDR_REDIRECTION_SHIFT 3
  31. #define MSI_ADDR_REDIRECTION_CPU (0 << MSI_ADDR_REDIRECTION_SHIFT)
  32. /* dedicated cpu */
  33. #define MSI_ADDR_REDIRECTION_LOWPRI (1 << MSI_ADDR_REDIRECTION_SHIFT)
  34. /* lowest priority */
  35. #define MSI_ADDR_DEST_ID_SHIFT 12
  36. #define MSI_ADDR_DEST_ID_MASK 0x00ffff0
  37. #define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \
  38. MSI_ADDR_DEST_ID_MASK)
  39. #define MSI_ADDR_EXT_DEST_ID(dest) ((dest) & 0xffffff00)
  40. #define MSI_ADDR_IR_EXT_INT (1 << 4)
  41. #define MSI_ADDR_IR_SHV (1 << 3)
  42. #define MSI_ADDR_IR_INDEX1(index) ((index & 0x8000) >> 13)
  43. #define MSI_ADDR_IR_INDEX2(index) ((index & 0x7fff) << 5)
  44. #endif /* _ASM_X86_MSIDEF_H */