Subversion Repositories Kolibri OS

Rev

Rev 948 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1.  
  2. /* Chipset independant registers (from AGP Spec) */
  3. #define AGP_APBASE      0x10
  4.  
  5. #define AGPSTAT         0x4
  6. #define AGPCMD          0x8
  7. #define AGPNISTAT       0xc
  8. #define AGPCTRL         0x10
  9. #define AGPAPSIZE       0x14
  10. #define AGPNEPG         0x16
  11. #define AGPGARTLO       0x18
  12. #define AGPGARTHI       0x1c
  13. #define AGPNICMD        0x20
  14.  
  15.  
  16. #define AGP_MAJOR_VERSION_SHIFT (20)
  17. #define AGP_MINOR_VERSION_SHIFT (16)
  18.  
  19. #define AGPSTAT_RQ_DEPTH    (0xff000000)
  20. #define AGPSTAT_RQ_DEPTH_SHIFT  24
  21.  
  22. #define AGPSTAT_CAL_MASK        (1<<12|1<<11|1<<10)
  23. #define AGPSTAT_ARQSZ           (1<<15|1<<14|1<<13)
  24. #define AGPSTAT_ARQSZ_SHIFT     13
  25.  
  26. #define AGPSTAT_SBA         (1<<9)
  27. #define AGPSTAT_AGP_ENABLE      (1<<8)
  28. #define AGPSTAT_FW          (1<<4)
  29. #define AGPSTAT_MODE_3_0        (1<<3)
  30.  
  31. #define AGPSTAT2_1X         (1<<0)
  32. #define AGPSTAT2_2X         (1<<1)
  33. #define AGPSTAT2_4X         (1<<2)
  34.  
  35. #define AGPSTAT3_RSVD           (1<<2)
  36. #define AGPSTAT3_8X         (1<<1)
  37. #define AGPSTAT3_4X         (1)
  38.  
  39. #define AGPCTRL_APERENB         (1<<8)
  40. #define AGPCTRL_GTLBEN          (1<<7)
  41.  
  42. #define AGP2_RESERVED_MASK 0x00fffcc8
  43. #define AGP3_RESERVED_MASK 0x00ff00c4
  44.  
  45. #define AGP_ERRATA_FASTWRITES 1<<0
  46. #define AGP_ERRATA_SBA   1<<1
  47. #define AGP_ERRATA_1X 1<<2
  48.  
  49.  
  50.  
  51. /* Intel registers */
  52. #define INTEL_APSIZE        0xb4
  53. #define INTEL_ATTBASE       0xb8
  54. #define INTEL_AGPCTRL       0xb0
  55. #define INTEL_NBXCFG        0x50
  56. #define INTEL_ERRSTS        0x91
  57.  
  58. /* Intel i845 registers */
  59. #define INTEL_I845_AGPM         0x51
  60. #define INTEL_I845_ERRSTS       0xc8
  61.  
  62. /* Chipset independant registers (from AGP Spec) */
  63. #define AGP_APBASE      0x10
  64.  
  65. typedef struct
  66. {
  67.     size_t    size;
  68.     count_t   num_entries;
  69.     count_t   pages_count;
  70.     u32_t     size_value;
  71. }aper_size_t;
  72.  
  73. typedef struct
  74. {
  75.     PCITAG    PciTag;
  76.  
  77.     aper_size_t    *aperture_sizes;
  78.     aper_size_t    *current_size;
  79.     aper_size_t    *previous_size;
  80.     int             aperture_size_idx;
  81.  
  82.     u32_t volatile *gatt_table;
  83.     addr_t          gatt_dma;
  84.  
  85.     addr_t          apbase_config;
  86.     addr_t          gart_addr;
  87.  
  88.     u32_t           flags;
  89.     u32_t           mode;
  90.  
  91.     int             capndx;
  92.  
  93.     char            major_version;
  94.     char            minor_version;
  95.  
  96. //    int     num_aperture_sizes;
  97. //   enum    aper_size_type size_type;
  98. //    int     cant_use_aperture;
  99. //    int     needs_scratch_page;
  100. //    struct gatt_mask *masks;
  101.     int     (*fetch_size)();
  102.     int     (*configure)();
  103. //    void    (*agp_enable)(struct agp_bridge_data *, u32);
  104. //    void    (*cleanup)(void);
  105.     void    (*tlb_flush)();
  106. //    u32_t   (*mask_memory)(struct agp_bridge_data *,u32_t, int);
  107. //    void    (*cache_flush)(void);
  108.     int     (*create_gatt_table)();
  109. //    int     (*free_gatt_table)(struct agp_bridge_data *);
  110. //    int     (*insert_memory)(struct agp_memory *, off_t, int);
  111. //    int     (*remove_memory)(struct agp_memory *, off_t, int);
  112. //    struct  agp_memory *(*alloc_by_type) (size_t, int);
  113. //    void    (*free_by_type)(struct agp_memory *);
  114. //    void   *(*agp_alloc_page)(struct agp_bridge_data *);
  115. //    void    (*agp_destroy_page)(void *);
  116. }agp_t;
  117.  
  118.  
  119.