Subversion Repositories HelenOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef PCI_REGS_H
  2. #define PCI_REGS_H
  3.  
  4. // Header types
  5. #define PCI_HEADER_TYPE_DEV         0
  6. #define PCI_HEADER_TYPE_BRIDGE      1
  7. #define PCI_HEADER_TYPE_CARDBUS     2
  8.  
  9. // Header type 0 and 1
  10. #define PCI_VENDOR_ID                   0x00
  11. #define PCI_DEVICE_ID                   0x02
  12. #define PCI_COMMAND                     0x04
  13. #define PCI_STATUS                      0x06
  14. #define PCI_REVISION_ID                 0x08
  15. #define PCI_PROG_IF                     0x09
  16. #define PCI_SUB_CLASS                   0x0A
  17. #define PCI_BASE_CLASS                  0x0B
  18. #define PCI_CACHE_LINE_SIZE             0x0C
  19. #define PCI_LATENCY_TIMER               0x0D
  20. #define PCI_HEADER_TYPE                 0x0E
  21. #define PCI_BIST                        0x0F
  22.  
  23. #define PCI_BASE_ADDR_0                 0x10
  24. #define PCI_BASE_ADDR_1                 0x14
  25.  
  26. // Header type 0
  27. #define PCI_BASE_ADDR_2                 0x18
  28. #define PCI_BASE_ADDR_3                 0x1B
  29. #define PCI_BASE_ADDR_4                 0x20
  30. #define PCI_BASE_ADDR_5                 0x24
  31.  
  32. #define PCI_CARDBUS_CIS_PTR             0x28
  33. #define PCI_SUBSYSTEM_VENDOR_ID         0x2C
  34. #define PCI_SUBSYSTEM_ID                0x2E
  35. #define PCI_EXP_ROM_BASE                0x30
  36. #define PCI_CAP_PTR                     0x34
  37. #define PCI_INT_LINE                    0x3C
  38. #define PCI_INT_PIN                     0x3D
  39. #define PCI_MIN_GNT                     0x3E
  40. #define PCI_MAX_LAT                     0x3F
  41.  
  42. // Header type 1
  43. #define PCI_BRIDGE_PRIM_BUS_NUM         0x18
  44. #define PCI_BRIDGE_SEC_BUS_NUM          0x19
  45. #define PCI_BRIDGE_SUBORD_BUS_NUM       0x1A
  46. #define PCI_BRIDGE_SEC_LATENCY_TIMER    0x1B
  47. #define PCI_BRIDGE_IO_BASE              0x1C
  48. #define PCI_BRIDGE_IO_LIMIT             0x1D
  49. #define PCI_BRIDGE_SEC_STATUS           0x1E
  50. #define PCI_BRIDGE_MEMORY_BASE          0x20
  51. #define PCI_BRIDGE_MEMORY_LIMIT         0x22
  52. #define PCI_BRIDGE_PREF_MEMORY_BASE     0x24
  53. #define PCI_BRIDGE_PREF_MEMORY_LIMIT    0x26
  54. #define PCI_BRIDGE_PREF_MEMORY_BASE_UP  0x28
  55. #define PCI_BRIDGE_PREF_MEMORY_LIMIT_UP 0x2C
  56. #define PCI_BRIDGE_IO_BASE_UP           0x30
  57. #define PCI_BRIDGE_IO_LIMIT_UP          0x32
  58. #define PCI_BRIDGE_EXP_ROM_BASE         0x38
  59. #define PCI_BRIDGE_INT_LINE             0x3C
  60. #define PCI_BRIDGE_INT_PIN              0x3D
  61. #define PCI_BRIDGE_CTL                  0x3E
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. /*  // from psycho spec.
  69. Reserved             0x28-0x2F n/a
  70. Expansion ROM        0x30      4 bytes
  71. Reserved             0x34-0x3B n/a
  72. Interrupt Line       0x3C      1 byte
  73. Interrupt Pin        0x3D      1 byte
  74. MIN_GNT              0x3E      1 byte
  75. MAX_LAT              0x3F      1 byte*/
  76.  
  77.  
  78. #endif
  79.