summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halppc/ppc/blfw.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/nthals/halppc/ppc/blfw.h')
-rw-r--r--private/ntos/nthals/halppc/ppc/blfw.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/private/ntos/nthals/halppc/ppc/blfw.h b/private/ntos/nthals/halppc/ppc/blfw.h
new file mode 100644
index 000000000..65d4c1230
--- /dev/null
+++ b/private/ntos/nthals/halppc/ppc/blfw.h
@@ -0,0 +1,121 @@
+
+#ifndef _H_BLFW
+#define _H_BLFW
+
+extern VOID Eieio ( VOID );
+
+#define BL_EIEIO __builtin_eieio()
+#define HIGH(a) (UCHAR)(((a)>>8) & 0xff)
+#define LOW(a) (UCHAR)((a) & 0xff)
+
+/******************************************************************************
+* *
+* The following identifies the monitor structures and definitions *
+* *
+******************************************************************************/
+
+//
+// Operating modes (8bit only for ARC and HAL)
+//
+typedef enum _BL_MODES
+{
+ m640_480_8_60, // Not used
+ m800_600_8_60, // Default for 1010 ID (SS)
+ m1024_768_8_60, // Not used
+ m1024_768_8_70, // Default for H010 ID (SS)
+ m1280_1024_8_60, // Default for 0100 ID (SOG)
+ m1280_1024_8_67, // Default for 0111 ID (SS)
+ m1280_1024_8_72 // Default for V111 ID (SOG)
+} BL_MODES;
+
+#define BL_NUM_CRT_CTRL_REC_STRUCTS 7
+
+//
+// Monitor ID (cable) values
+//
+#define BL_MT_04 0x04 // 0100
+#define BL_MT_07 0x07 // 0111
+#define BL_MT_0A 0x0A // 1010
+#define BL_MT_0F 0x0F // 1111
+#define BL_MT_1A 0x1A // H010
+#define BL_MT_17 0x17 // V111
+#define BL_MT_MASK 0x1F // Monitor ID mask
+
+// CRT information structure
+typedef struct _bl_crt_ctrl_rec_t {
+ ULONG mode; // Mode for this crt ctrl rec
+ USHORT MonID; // Monitor ID
+ USHORT width; // Number of pixels along the X axis
+ USHORT height; // Number of pixels along the Y axis
+ ULONG refresh; // Refresh rate
+ UCHAR pll_ref_divide; // RAMDAC video PLL ref divide
+ UCHAR pll_mult; // RAMDAC video PLL multiplier
+ UCHAR pll_output_divide; // RAMDAC video PLL output divide
+ UCHAR pll_ctrl; // RAMDAC video PLL control
+ UCHAR sync_ctrl; // RAMDAC sync control
+ ULONG crt_cntl_reg; // PRISM DTG control reg
+ ULONG hrz_total_reg; // PRISM he reg (pixels)
+ ULONG hrz_dsp_end_reg; // PRISM hde reg (pixels)
+ ULONG hsync_start_reg; // PRISM hss reg (pixels)
+ ULONG hsync_end1_reg; // PRISM hse1 reg (pixels)
+ ULONG hsync_end2_reg; // PRISM hse2 reg (pixels)
+ ULONG vrt_total_reg; // PRISM ve reg (scan lines)
+ ULONG vrt_dsp_end_reg; // PRISM vde reg (scan lines)
+ ULONG vsync_start_reg; // PRISM vss reg (scan lines)
+ ULONG vsync_end_reg; // PRISM vse reg (scan lines)
+} bl_crt_ctrl_rec_t;
+
+// Adapter control record structure
+typedef struct _bl_adapter_ctrl_rec_t {
+ USHORT vram; // Amount of VRAM for frame buffer
+ USHORT width; // Number of pixels along the X axis
+ USHORT height; // Number of pixels along the Y axis
+ // PRISM registers
+ ULONG PRISM_cfg; // cfg reg
+ ULONG mem_cfg; // memory cfg reg
+ ULONG DTG_ctrl; // DTG control reg
+ // RAMDAC registers
+ UCHAR pix_ctrl0; // 07:00 pix ctrl
+ UCHAR pix_ctrl1; // 15:08 pix ctrl
+ UCHAR pix_ctrl2; // 23:16 pix ctrl
+ UCHAR pix_ctrl3; // 31:24 pix ctrl
+ UCHAR wid_ctrl0; // 3:0 WID ctrl
+ UCHAR wid_ctrl1; // 7:4 WID ctrl
+ UCHAR serial_mode_ctrl; // serial mode
+ UCHAR pix_interleave; // pixel interleave
+ UCHAR misc_cfg; // misc ctrl
+ UCHAR vram_mask_0; // vram mask reg 0
+ UCHAR vram_mask_1; // vram mask reg 1
+ UCHAR vram_mask_2; // vram mask reg 2
+} bl_adapter_ctrl_rec_t;
+
+// Adapter model record structure
+typedef struct bl_adapter_model_rec_t {
+ ULONG devvend_id; // PCI device id
+ ULONG strapping; // configuration strapping
+ UCHAR prism_rev; // prism chip revision ID
+ UCHAR num_adp_ctrl_recs; // number of adp_ctrl_rec's in array
+ bl_adapter_ctrl_rec_t *adp_ctrl_rec; // pointer to adapter ctrl rec array
+} bl_adapter_model_rec_t;
+
+// Config flag defines
+// System sourced/color reg. pixel depth for DFA apeture 1 and commands
+#define BL_ENABLE_SOURCE_1_BPP (1L << 0)
+#define BL_ENABLE_SOURCE_8_BPP (1L << 1)
+#define BL_ENABLE_SOURCE_16_BPP (1L << 2)
+#define BL_ENABLE_SOURCE_24_BPP (1L << 3)
+// frame buffer pixel depth from DFA apeture 1 and commands
+#define BL_ENABLE_8_BPP (1L << 3)
+#define BL_ENABLE_16_BPP (1L << 4)
+#define BL_ENABLE_24_BPP (1L << 5)
+#define BL_ENABLE_OVERLAY (1L << 0)
+#define BL_ENABLE_DOUBLE_BUFFER (1L << 1)
+#define BL_OVERLAY_AVAILABLE (1L << 0)
+#define BL_8_BPP_DB_AVAILABLE (1L << 1)
+#define BL_16_BPP_DB_AVAILABLE (1L << 2)
+#define BL_8_BPP_AVAILABLE (1L << 3)
+#define BL_16_BPP_AVAILABLE (1L << 4)
+#define BL_24_BPP_AVAILABLE (1L << 5)
+
+#endif // _H_BLFW
+