Annotation of Examples/DriverKit/ATI/ATI_reloc.tproj/ATIModes.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1992, 1993 NeXT Computer, Inc.  All rights reserved. 
                      2:  *
                      3:  * ATIModes.h - Definitions for the ATi display driver.
                      4:  *
                      5:  * HISTORY
                      6:  * 07 Oct 92   Joe Pasqua
                      7:  *      Created. 
                      8:  * 01 June 93  Mike Paquette
                      9:  *     Added support for multiple DACs and CRT setups
                     10:  *  7 July 1993        Derek B Clegg
                     11:  *     Cleaned up for external release.
                     12:  */
                     13: #ifndef ATIMODES_H__
                     14: #define ATIMODES_H__
                     15: 
                     16: #import <driverkit/displayDefs.h>
                     17: 
                     18: /* Important port definitions. */
                     19: #define        MISC_OPTIONS    0x36EE
                     20: #define        SUBSYS_STATUS   0x42e8
                     21: #define DISP_CNTL      0x22E8          /* Display Control. */
                     22: #define        CRT_LINE_PITCH  0x26EE
                     23: #define DAC_MASK       0x02EA          /* DAC Mask. */
                     24: #define DAC_DATA       0x02ED
                     25: #define DAC_R_INDEX    0x02EB
                     26: #define DAC_W_INDEX    0x02EC
                     27: 
                     28: #define        ADVFUNC_CNTL    0x4AE8
                     29: #define        EXT_GE_CONFIG   0x7AEE
                     30: #define        OUTPUT_CLK_SEL  DAC_MASK
                     31: #define        MUX_CNTL        DAC_R_INDEX
                     32: #define        INPUT_CLK_SEL   DAC_DATA
                     33: #define        MISC_CNTL       0x7EEE
                     34: #define        R_MISC_CNTL     0x92EE
                     35: #define LOCAL_CNTL     0x32EE
                     36: 
                     37: #define        GE_OFFSET_HI    0x72EE
                     38: #define        GE_OFFSET_LO    0x6EEE
                     39: 
                     40: #define        CRT_OFFSET_HI   0x2EEE
                     41: #define        CRT_OFFSET_LO   0x2AEE
                     42: 
                     43: #define        CONFIG_STATUS_1 0x12EE
                     44: #define        CONFIG_STATUS_2 0x16EE
                     45: #define        CRT_PITCH       0x26EE
                     46: #define        GE_PITCH        0x76EE
                     47: 
                     48: #define        MEM_BNDRY       0x42EE
                     49: #define        MEM_CFG         0x5EEE
                     50: 
                     51: #define        HORZ_OVERSCAN   0x62EE
                     52: 
                     53: /* CRT Timing ports for Mach32 chip. */
                     54: #define H_TOTAL                0x02e8
                     55: #define H_DISP         0x06e8
                     56: #define H_SYNC_START   0x0ae8
                     57: #define H_SYNC_WIDTH   0x0ee8
                     58: #define V_TOTAL                0x12e8
                     59: #define V_DISP         0x16e8
                     60: #define V_SYNC_START   0x1ae8
                     61: #define V_SYNC_WID     0x1ee8
                     62: #define CLOCK_SELECT   0x4aee
                     63:        
                     64: #define HORIZONTAL_OVERSCAN    0x62ee
                     65: #define VERTICAL_OVERSCAN      0x66ee
                     66: #define OVERSCAN_COLOR_BLUE    0x02ef
                     67: #define OVERSCAN_COLOR_GREEN   0x06ee
                     68: #define OVERSCAN_COLOR_RED     0x06ef
                     69: 
                     70: #define SHADOW_SET             0x5aee
                     71: #define SHADOW_CNTL            0x46ee
                     72: #define ROM_SCRATCH_PAD_0      0x52ee
                     73: #define ROM_SCRATCH_PAD_1      0x56ee
                     74: 
                     75: #define MACH32_STEP6_ID_REG    0xFAEE
                     76: #define MACH32_STEP6_ID_VALUE  0x227F
                     77: 
                     78: /* Identifying the memory aperature size */
                     79: #define MEM_APERATURE_4GB_RANGE        0x20    /* Bit in CONFIG_STATUS_2+1 */
                     80: 
                     81: 
                     82: /* Corsair specific stuff. */
                     83: 
                     84: #define INTEL_COMPANY_ID       0x25D4
                     85: #define CORSAIR_ID             0x30A0
                     86: #define INTEL_CORSAIR_ID       ((INTEL_COMPANY_ID << 16)|CORSAIR_ID)
                     87: #define INTEL_CORSAIR_FB_ADDR  0x7a000000
                     88: #define INTEL_CORSAIR_FB_SIZE  0x00200000
                     89: 
                     90: /* EISA Specific stuff */
                     91: 
                     92: #define ATI_EISA_ID            0x06894400      /* !ATI4400 EISA */
                     93: 
                     94: /* Interesting information found on the card. */
                     95: 
                     96: #define ATI_LOCALBUS_BIOS_SIGNON_MSG_ADDR      0xc0085
                     97: 
                     98: #define ATI_BIOS_BASEADDR      0xc0000         /* VGA BIOS base addr. */
                     99: #define ATI_BIOS_SIZE          0x1000          /* VGA BIOS size. */
                    100: 
                    101: #define ATI_LOCALBUS_BIOS_SIGNON_MSG           "LOCAL BUS ATI ULTRA PRO"
                    102: #define ATI_LOCALBUS_BIOS_SIGNON_MSG_LEN \
                    103:        ((sizeof ATI_LOCALBUS_BIOS_SIGNON_MSG) - 1)
                    104: 
                    105: #define ATI_LOCALBUS_VRAM_ADDRESS      0x7E00000   /* 126 Mb. */
                    106: 
                    107: #define ATI_NOVA_PBUS_EISA_ID          0x25D430B0  /* Intel PCI, ATI chips */
                    108: #define        ATI_NOVA_FB_ADDR                0xB2000000
                    109: #define        ATI_NOVA_CORSAIR_FB_SIZE        0x00200000
                    110: 
                    111: typedef enum {
                    112:     ATICorsair = 0,
                    113:     ATILocalBusCard,
                    114:     ATI_EISA_Card,
                    115:     ATI_ISA_Card,
                    116:     ATI_NovaCard
                    117: } ATIFlavor;
                    118: 
                    119: typedef enum {
                    120:     ATI_DAC_68830 = 0,
                    121:     ATI_DAC_ATT20C491 = 1,
                    122:     ATI_DAC_68875 = 2,
                    123:     ATI_DAC_Bt476 = 3,
                    124:     ATI_DAC_Bt481 = 4
                    125: } ATI_DAC;
                    126: 
                    127: /* Table driven setup for DAC and pixel pipeline */
                    128: 
                    129: typedef struct {
                    130:     unsigned int out_clk;
                    131:     unsigned int in_clk;
                    132:     unsigned int mux;
                    133:     unsigned int GE_config;
                    134:     unsigned int mask;
                    135:     unsigned int delay_timing;
                    136:     unsigned int mode;
                    137:     IOBitsPerPixel bits;
                    138: } ATI_DACSetup;
                    139: 
                    140: extern const ATI_DACSetup ATI_DAC_Setup_15BPP;
                    141: extern const ATI_DACSetup ATI_DAC_Setup_8BPP;
                    142: 
                    143: /* Table driven setup for the CRTC hardware.  This controls the display
                    144:  * layout and sync waveforms.  (Just like the NeXT TMC chip...)
                    145:  * All values are derived from the Mach32 chipset data sheets.  See
                    146:  * Appendix D, CRT Parameters, for details.
                    147:  * Horizontal times are in multiples of 8 pixels.
                    148:  * Vertical times are in multiples of 1/2 scanline.
                    149:  */
                    150: typedef struct {
                    151:     unsigned int xres;
                    152:     unsigned int yres;
                    153:     unsigned int h_total;
                    154:     unsigned int h_disp;
                    155:     unsigned int h_sync_start;
                    156:     unsigned int h_sync_wid;
                    157:     unsigned int v_total;
                    158:     unsigned int v_disp;
                    159:     unsigned int v_sync_start;
                    160:     unsigned int v_sync_wid;
                    161:     unsigned int disp_cntl;
                    162:     unsigned int clock_select;
                    163:     unsigned int mux_flag;
                    164: } ATI_CRTCSetup;
                    165: 
                    166: extern const IODisplayInfo ATIMode[];
                    167: extern const int ATIModeCount;
                    168: extern const IODisplayInfo ATISlowDACMode[];
                    169: extern const int ATISlowDACModeCount;
                    170: 
                    171: #define ATI_DEFAULT_2MEG_MODE          4
                    172: #define ATI_DEFAULT_1MEG_MODE          1
                    173: #define ATI_DEFAULT_SlowDAC_MODE       0
                    174: 
                    175: #endif /* ATIMODES_H__ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.