vic.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /* Copyright (C) 1999,2001
  2. *
  3. * Author: J.E.J.Bottomley@HansenPartnership.com
  4. *
  5. * Standard include definitions for the NCR Voyager Interrupt Controller */
  6. /* The eight CPI vectors. To activate a CPI, you write a bit mask
  7. * corresponding to the processor set to be interrupted into the
  8. * relevant register. That set of CPUs will then be interrupted with
  9. * the CPI */
  10. static const int VIC_CPI_Registers[] =
  11. {0xFC00, 0xFC01, 0xFC08, 0xFC09,
  12. 0xFC10, 0xFC11, 0xFC18, 0xFC19 };
  13. #define VIC_PROC_WHO_AM_I 0xfc29
  14. # define QUAD_IDENTIFIER 0xC0
  15. # define EIGHT_SLOT_IDENTIFIER 0xE0
  16. #define QIC_EXTENDED_PROCESSOR_SELECT 0xFC72
  17. #define VIC_CPI_BASE_REGISTER 0xFC41
  18. #define VIC_PROCESSOR_ID 0xFC21
  19. # define VIC_CPU_MASQUERADE_ENABLE 0x8
  20. #define VIC_CLAIM_REGISTER_0 0xFC38
  21. #define VIC_CLAIM_REGISTER_1 0xFC39
  22. #define VIC_REDIRECT_REGISTER_0 0xFC60
  23. #define VIC_REDIRECT_REGISTER_1 0xFC61
  24. #define VIC_PRIORITY_REGISTER 0xFC20
  25. #define VIC_PRIMARY_MC_BASE 0xFC48
  26. #define VIC_SECONDARY_MC_BASE 0xFC49
  27. #define QIC_PROCESSOR_ID 0xFC71
  28. # define QIC_CPUID_ENABLE 0x08
  29. #define QIC_VIC_CPI_BASE_REGISTER 0xFC79
  30. #define QIC_CPI_BASE_REGISTER 0xFC7A
  31. #define QIC_MASK_REGISTER0 0xFC80
  32. /* NOTE: these are masked high, enabled low */
  33. # define QIC_PERF_TIMER 0x01
  34. # define QIC_LPE 0x02
  35. # define QIC_SYS_INT 0x04
  36. # define QIC_CMN_INT 0x08
  37. /* at the moment, just enable CMN_INT, disable SYS_INT */
  38. # define QIC_DEFAULT_MASK0 (~(QIC_CMN_INT /* | VIC_SYS_INT */))
  39. #define QIC_MASK_REGISTER1 0xFC81
  40. # define QIC_BOOT_CPI_MASK 0xFE
  41. /* Enable CPI's 1-6 inclusive */
  42. # define QIC_CPI_ENABLE 0x81
  43. #define QIC_INTERRUPT_CLEAR0 0xFC8A
  44. #define QIC_INTERRUPT_CLEAR1 0xFC8B
  45. /* this is where we place the CPI vectors */
  46. #define VIC_DEFAULT_CPI_BASE 0xC0
  47. /* this is where we place the QIC CPI vectors */
  48. #define QIC_DEFAULT_CPI_BASE 0xD0
  49. #define VIC_BOOT_INTERRUPT_MASK 0xfe
  50. extern void smp_vic_timer_interrupt(void);