home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.2 (Developer)
/
NS_dev_3.2.iso
/
NextDeveloper
/
Examples
/
DriverKit
/
ATI
/
ATI_reloc.tproj
/
ATIModes.h
< prev
next >
Wrap
Text File
|
1993-08-27
|
5KB
|
176 lines
/* Copyright (c) 1992, 1993 NeXT Computer, Inc. All rights reserved.
*
* ATIModes.h - Definitions for the ATi display driver.
*
* HISTORY
* 07 Oct 92 Joe Pasqua
* Created.
* 01 June 93 Mike Paquette
* Added support for multiple DACs and CRT setups
* 7 July 1993 Derek B Clegg
* Cleaned up for external release.
*/
#ifndef ATIMODES_H__
#define ATIMODES_H__
#import <driverkit/displayDefs.h>
/* Important port definitions. */
#define MISC_OPTIONS 0x36EE
#define SUBSYS_STATUS 0x42e8
#define DISP_CNTL 0x22E8 /* Display Control. */
#define CRT_LINE_PITCH 0x26EE
#define DAC_MASK 0x02EA /* DAC Mask. */
#define DAC_DATA 0x02ED
#define DAC_R_INDEX 0x02EB
#define DAC_W_INDEX 0x02EC
#define ADVFUNC_CNTL 0x4AE8
#define EXT_GE_CONFIG 0x7AEE
#define OUTPUT_CLK_SEL DAC_MASK
#define MUX_CNTL DAC_R_INDEX
#define INPUT_CLK_SEL DAC_DATA
#define MISC_CNTL 0x7EEE
#define R_MISC_CNTL 0x92EE
#define LOCAL_CNTL 0x32EE
#define GE_OFFSET_HI 0x72EE
#define GE_OFFSET_LO 0x6EEE
#define CRT_OFFSET_HI 0x2EEE
#define CRT_OFFSET_LO 0x2AEE
#define CONFIG_STATUS_1 0x12EE
#define CONFIG_STATUS_2 0x16EE
#define CRT_PITCH 0x26EE
#define GE_PITCH 0x76EE
#define MEM_BNDRY 0x42EE
#define MEM_CFG 0x5EEE
#define HORZ_OVERSCAN 0x62EE
/* CRT Timing ports for Mach32 chip. */
#define H_TOTAL 0x02e8
#define H_DISP 0x06e8
#define H_SYNC_START 0x0ae8
#define H_SYNC_WIDTH 0x0ee8
#define V_TOTAL 0x12e8
#define V_DISP 0x16e8
#define V_SYNC_START 0x1ae8
#define V_SYNC_WID 0x1ee8
#define CLOCK_SELECT 0x4aee
#define HORIZONTAL_OVERSCAN 0x62ee
#define VERTICAL_OVERSCAN 0x66ee
#define OVERSCAN_COLOR_BLUE 0x02ef
#define OVERSCAN_COLOR_GREEN 0x06ee
#define OVERSCAN_COLOR_RED 0x06ef
#define SHADOW_SET 0x5aee
#define SHADOW_CNTL 0x46ee
#define ROM_SCRATCH_PAD_0 0x52ee
#define ROM_SCRATCH_PAD_1 0x56ee
#define MACH32_STEP6_ID_REG 0xFAEE
#define MACH32_STEP6_ID_VALUE 0x227F
/* Identifying the memory aperature size */
#define MEM_APERATURE_4GB_RANGE 0x20 /* Bit in CONFIG_STATUS_2+1 */
/* Corsair specific stuff. */
#define INTEL_COMPANY_ID 0x25D4
#define CORSAIR_ID 0x30A0
#define INTEL_CORSAIR_ID ((INTEL_COMPANY_ID << 16)|CORSAIR_ID)
#define INTEL_CORSAIR_FB_ADDR 0x7a000000
#define INTEL_CORSAIR_FB_SIZE 0x00200000
/* EISA Specific stuff */
#define ATI_EISA_ID 0x06894400 /* !ATI4400 EISA */
/* Interesting information found on the card. */
#define ATI_LOCALBUS_BIOS_SIGNON_MSG_ADDR 0xc0085
#define ATI_BIOS_BASEADDR 0xc0000 /* VGA BIOS base addr. */
#define ATI_BIOS_SIZE 0x1000 /* VGA BIOS size. */
#define ATI_LOCALBUS_BIOS_SIGNON_MSG "LOCAL BUS ATI ULTRA PRO"
#define ATI_LOCALBUS_BIOS_SIGNON_MSG_LEN \
((sizeof ATI_LOCALBUS_BIOS_SIGNON_MSG) - 1)
#define ATI_LOCALBUS_VRAM_ADDRESS 0x7E00000 /* 126 Mb. */
#define ATI_NOVA_PBUS_EISA_ID 0x25D430B0 /* Intel PCI, ATI chips */
#define ATI_NOVA_FB_ADDR 0xB2000000
#define ATI_NOVA_CORSAIR_FB_SIZE 0x00200000
typedef enum {
ATICorsair = 0,
ATILocalBusCard,
ATI_EISA_Card,
ATI_ISA_Card,
ATI_NovaCard
} ATIFlavor;
typedef enum {
ATI_DAC_68830 = 0,
ATI_DAC_ATT20C491 = 1,
ATI_DAC_68875 = 2,
ATI_DAC_Bt476 = 3,
ATI_DAC_Bt481 = 4
} ATI_DAC;
/* Table driven setup for DAC and pixel pipeline */
typedef struct {
unsigned int out_clk;
unsigned int in_clk;
unsigned int mux;
unsigned int GE_config;
unsigned int mask;
unsigned int delay_timing;
unsigned int mode;
IOBitsPerPixel bits;
} ATI_DACSetup;
extern const ATI_DACSetup ATI_DAC_Setup_15BPP;
extern const ATI_DACSetup ATI_DAC_Setup_8BPP;
/* Table driven setup for the CRTC hardware. This controls the display
* layout and sync waveforms. (Just like the NeXT TMC chip...)
* All values are derived from the Mach32 chipset data sheets. See
* Appendix D, CRT Parameters, for details.
* Horizontal times are in multiples of 8 pixels.
* Vertical times are in multiples of 1/2 scanline.
*/
typedef struct {
unsigned int xres;
unsigned int yres;
unsigned int h_total;
unsigned int h_disp;
unsigned int h_sync_start;
unsigned int h_sync_wid;
unsigned int v_total;
unsigned int v_disp;
unsigned int v_sync_start;
unsigned int v_sync_wid;
unsigned int disp_cntl;
unsigned int clock_select;
unsigned int mux_flag;
} ATI_CRTCSetup;
extern const IODisplayInfo ATIMode[];
extern const int ATIModeCount;
extern const IODisplayInfo ATISlowDACMode[];
extern const int ATISlowDACModeCount;
#define ATI_DEFAULT_2MEG_MODE 4
#define ATI_DEFAULT_1MEG_MODE 1
#define ATI_DEFAULT_SlowDAC_MODE 0
#endif /* ATIMODES_H__ */