📄 cim_parm.h
字号:
/*
* <LIC_AMD_STD>
* Copyright (C) 2005 Advanced Micro Devices, Inc. All Rights Reserved.
* </LIC_AMD_STD>
*
* <CTL_AMD_STD>
* </CTL_AMD_STD>
*
* <DOC_AMD_STD>
* Cimarron user definitions.
* </DOC_AMD_STD>
*
*/
#ifndef _cim_parm_h
#define _cim_parm_h
/*===================================================*/
/* CIMARRON RETURN VALUE DEFINITIONS */
/*===================================================*/
#define CIM_STATUS_OK 0x00000000
#define CIM_STATUS_ERROR 0x00000001
#define CIM_STATUS_INVALIDPARAMS 0x00000002
#define CIM_STATUS_DEVNOTFOUND 0x00000004
#define CIM_STATUS_INVALIDSCALE 0x00000008
#define CIM_STATUS_INEXACTMATCH 0x00000010
#define CIM_STATUS_NOLOCK 0x00000020
#define CIM_STATUS_CPUNOTFOUND 0x00000040
#define CIM_STATUS_DISPLAYUNAVAILABLE 0x00000080
#define CIM_STATUS_NOTFOUND 0x00000100
/*===================================================*/
/* CIMARRON CPU DEFINITIONS */
/*===================================================*/
#define CIM_CPU_GEODEGX 0x00000001
#define CIM_CPU_GEODELX 0x00000002
#define CIM_SB_5535 0x00000001
#define CIM_SB_5536 0x00000002
/*===================================================*/
/* MSR PARAMETERS */
/*===================================================*/
/*-------------------------------------------------------------*/
/* GEODELINK DEVICE IDS */
/* These values uniquely identify all known GeodeLink devices */
/* in GeodeLX and its companion, 5535/6. For multiple devices */
/* of the same class (GLIU, USB, etc.) the table order is used */
/* to to identify the expected device order, in terms of on */
/* which GLIU the device is found, and on which port. */
/*-------------------------------------------------------------*/
#define MSR_DEVICE_GEODELX_GLIU0 0x00
#define MSR_DEVICE_GEODELX_GLIU1 0x01
#define MSR_DEVICE_5535_GLIU 0x02
#define MSR_DEVICE_GEODELX_GLCP 0x03
#define MSR_DEVICE_5535_GLCP 0x04
#define MSR_DEVICE_GEODELX_MPCI 0x05
#define MSR_DEVICE_5535_MPCI 0x06
#define MSR_DEVICE_GEODELX_MC 0x07
#define MSR_DEVICE_GEODELX_GP 0x08
#define MSR_DEVICE_GEODELX_VG 0x09
#define MSR_DEVICE_GEODELX_VIP 0x0A
#define MSR_DEVICE_GEODELX_AES 0x0B
#define MSR_DEVICE_GEODELX_DF 0x0C
#define MSR_DEVICE_GEODELX_FG 0x0D
#define MSR_DEVICE_GEODELX_VAIL 0x0E
#define MSR_DEVICE_5536_USB_2_0 0x0F
#define MSR_DEVICE_5535_USB2 0x10
#define MSR_DEVICE_5535_USB1 0x11
#define MSR_DEVICE_5535_ATAC 0x12
#define MSR_DEVICE_5535_MDD 0x13
#define MSR_DEVICE_5535_ACC 0x14
#define MSR_DEVICE_EMPTY 0x15
#define MSR_DEVICE_REFLECTIVE 0x16
#define MSR_DEVICE_PRESENT 0x17
#define MSR_DEVICE_NOTFOUND 0x18
/*---------------------------------------------*/
/* GEODELINK TABLE ENTRY */
/* The following structure represents one port */
/* on a GeodeLink Interface Unit (GLIU) */
/*---------------------------------------------*/
typedef struct tagGeodeLinkNode
{
unsigned long address_from_cpu;
unsigned long device_id;
} GEODELINK_NODE;
/*---------------------------------------------*/
/* QWORD DATA STRUCTURE */
/* 64-bit data structure for MSR acess. */
/*---------------------------------------------*/
typedef struct tagQ_WORD
{
unsigned long high;
unsigned long low;
} Q_WORD;
/*===================================================*/
/* INITIALIZATION USER PARAMETERS */
/*===================================================*/
typedef struct tagInitBaseAddresses
{
unsigned long framebuffer_base;
unsigned long gp_register_base;
unsigned long vg_register_base;
unsigned long df_register_base;
unsigned long vip_register_base;
unsigned long framebuffer_size;
} INIT_BASE_ADDRESSES;
/*===================================================*/
/* GP USER PARAMETER DEFINITIONS */
/*===================================================*/
/*---------------------------*/
/* GP_DECLARE_BLT PARAMETERS */
/*---------------------------*/
#define CIMGP_BLTFLAGS_PRES_LUT 0x0001
#define CIMGP_BLTFLAGS_PRES_COLOR_PAT 0x0002
#define CIMGP_ENABLE_PREFETCH 0x0004
#define CIMGP_BLTFLAGS_HAZARD 0x0008
#define CIMGP_BLTFLAGS_INVERTMONO 0x0010
#define CIMGP_BLTFLAGS_LIMITBUFFER 0x0020
/*-----------------------------------*/
/* GP_SET_ALPHA_OPERATION PARAMETERS */
/*-----------------------------------*/
#define CIMGP_APPLY_BLEND_TO_RGB 1
#define CIMGP_APPLY_BLEND_TO_ALPHA 2
#define CIMGP_APPLY_BLEND_TO_ALL 3
#define CIMGP_ALPHA_TIMES_A 0
#define CIMGP_BETA_TIMES_B 1
#define CIMGP_A_PLUS_BETA_B 2
#define CIMGP_ALPHA_A_PLUS_BETA_B 3
#define CIMGP_CHANNEL_A_ALPHA 0
#define CIMGP_CHANNEL_B_ALPHA 1
#define CIMGP_CONSTANT_ALPHA 2
#define CIMGP_ALPHA_EQUALS_ONE 3
#define CIMGP_ALPHA_FROM_RGB_A 4
#define CIMGP_ALPHA_FROM_RGB_B 5
#define CIMGP_CONVERTED_ALPHA 6
#define CIMGP_CHANNEL_A_SOURCE 0
#define CIMGP_CHANNEL_A_DEST 1
/*---------------------------------*/
/* GP_SET_SOURCE_FORMAT PARAMETERS */
/*---------------------------------*/
#define CIMGP_SOURCE_FMT_3_3_2 0x00
#define CIMGP_SOURCE_FMT_8BPP_INDEXED 0x01
#define CIMGP_SOURCE_FMT_4_4_4_4 0x04
#define CIMGP_SOURCE_FMT_12BPP_BGR 0x14
#define CIMGP_SOURCE_FMT_1_5_5_5 0x05
#define CIMGP_SOURCE_FMT_15BPP_BGR 0x15
#define CIMGP_SOURCE_FMT_0_5_6_5 0x06
#define CIMGP_SOURCE_FMT_16BPP_BGR 0x16
#define CIMGP_SOURCE_FMT_YUYV 0x07
#define CIMGP_SOURCE_FMT_UYVY 0x17
#define CIMGP_SOURCE_FMT_8_8_8_8 0x08
#define CIMGP_SOURCE_FMT_32BPP_BGR 0x18
#define CIMGP_SOURCE_FMT_24BPP 0x0B
#define CIMGP_SOURCE_FMT_4BPP_INDEXED 0x0D
/*------------------------------------*/
/* GP_SCREEN_TO_SCREEN_BLT PARAMETERS */
/*------------------------------------*/
#define CIMGP_NEGXDIR 1
#define CIMGP_NEGYDIR 2
/*------------------------------------*/
/* GP_BRESENHAM_LINE PARAMETERS */
/*------------------------------------*/
#define CIMGP_YMAJOR 1
#define CIMGP_POSMAJOR 2
#define CIMGP_POSMINOR 4
/*----------------------------------------------*/
/* USER STRUCTURE FOR SAVING/RESTORING GP STATE */
/*----------------------------------------------*/
typedef struct tagGPSaveRestore
{
unsigned long base_offset;
unsigned long cmd_top;
unsigned long cmd_bottom;
unsigned long cmd_base;
unsigned long cmd_read;
} GP_SAVE_RESTORE;
/*===================================================*/
/* VG USER PARAMETER DEFINITIONS */
/*===================================================*/
/*-------------------------------------------*/
/* SUPPORTED TV ENCODERS */
/*-------------------------------------------*/
#define VG_ENCODER_ADV7171 0x0001
#define VG_ENCODER_SAA7127 0x0002
#define VG_ENCODER_FS454 0x0003
#define VG_ENCODER_ADV7300 0x0004
/*-------------------------------------------*/
/* SUPPORTED TV RESOLUTIONS */
/*-------------------------------------------*/
#define VG_TVMODE_NTSC 0x00000000
#define VG_TVMODE_PAL 0x00000001
#define VG_TVMODE_480P 0x00000002
#define VG_TVMODE_720P 0x00000003
#define VG_TVMODE_1080I 0x00000004
#define VG_TVMODE_6X4_NTSC 0x00000005
#define VG_TVMODE_8X6_NTSC 0x00000006
#define VG_TVMODE_10X7_NTSC 0x00000007
#define VG_TVMODE_6X4_PAL 0x00000008
#define VG_TVMODE_8X6_PAL 0x00000009
#define VG_TVMODE_10X7_PAL 0x0000000A
/*-------------------------------------------*/
/* USER STRUCTURE FOR SETTING A DISPLAY MODE */
/*-------------------------------------------*/
#define VG_SUPPORTFLAG_8BPP 0x00000001
#define VG_SUPPORTFLAG_12BPP 0x00000002
#define VG_SUPPORTFLAG_15BPP 0x00000004
#define VG_SUPPORTFLAG_16BPP 0x00000008
#define VG_SUPPORTFLAG_24BPP 0x00000010
#define VG_SUPPORTFLAG_32BPP 0x00000020
#define VG_SUPPORTFLAG_56HZ 0x00000040
#define VG_SUPPORTFLAG_60HZ 0x00000080
#define VG_SUPPORTFLAG_70HZ 0x00000100
#define VG_SUPPORTFLAG_72HZ 0x00000200
#define VG_SUPPORTFLAG_75HZ 0x00000400
#define VG_SUPPORTFLAG_85HZ 0x00000800
#define VG_SUPPORTFLAG_90HZ 0x00001000
#define VG_SUPPORTFLAG_100HZ 0x00002000
#define VG_SUPPORTFLAG_HZMASK 0x00003FC0
#define VG_SUPPORTFLAG_ADV7171 0x00004000
#define VG_SUPPORTFLAG_SAA7127 0x00008000
#define VG_SUPPORTFLAG_FS454 0x00010000
#define VG_SUPPORTFLAG_ADV7300 0x00020000
#define VG_SUPPORTFLAG_ENCODERMASK 0x0003C000
#define VG_SUPPORTFLAG_PANEL 0x00040000
#define VG_SUPPORTFLAG_TVOUT 0x00080000
#define VG_SUPPORTFLAG_NTSC 0x00000000
#define VG_SUPPORTFLAG_PAL 0x00100000
#define VG_SUPPORTFLAG_480P 0x00200000
#define VG_SUPPORTFLAG_720P 0x00300000
#define VG_SUPPORTFLAG_1080I 0x00400000
#define VG_SUPPORTFLAG_6X4_NTSC 0x00500000
#define VG_SUPPORTFLAG_8X6_NTSC 0x00600000
#define VG_SUPPORTFLAG_10X7_NTSC 0x00700000
#define VG_SUPPORTFLAG_6X4_PAL 0x00800000
#define VG_SUPPORTFLAG_8X6_PAL 0x00900000
#define VG_SUPPORTFLAG_10X7_PAL 0x00A00000
#define VG_SUPPORTFLAG_TVMODEMASK 0x00F00000
#define VG_MODEFLAG_NEG_HSYNC 0x00000001
#define VG_MODEFLAG_NEG_VSYNC 0x00000002
#define VG_MODEFLAG_INTERLACED 0x00000004
#define VG_MODEFLAG_PANELOUT 0x00000008
#define VG_MODEFLAG_CENTERED 0x00000010
#define VG_MODEFLAG_LINEARPITCH 0x00000020
#define VG_MODEFLAG_TVOUT 0x00000040
#define VG_MODEFLAG_HALFCLOCK 0x00000080
#define VG_MODEFLAG_QVGA 0x00000100
#define VG_MODEFLAG_EXCLUDEPLL 0x00000200
#define VG_MODEFLAG_NOPANELTIMINGS 0x00000400
#define VG_MODEFLAG_XVGA_TFT 0x00000800
#define VG_MODEFLAG_CUSTOM_PANEL 0x00001000
#define VG_MODEFLAG_CRT_AND_FP 0x00002000
#define VG_MODEFLAG_LOW_BAND 0x00000000
#define VG_MODEFLAG_AVG_BAND 0x00004000
#define VG_MODEFLAG_HIGH_BAND 0x00008000
#define VG_MODEFLAG_LEGACY_BAND 0x0000C000
#define VG_MODEFLAG_BANDWIDTHMASK 0x0000C000
#define VG_MODEFLAG_OVERRIDE_BAND 0x00010000
#define VG_MODEFLAG_INT_ADDRESS 0x00000000
#define VG_MODEFLAG_INT_LINEDOUBLE 0x00020000
#define VG_MODEFLAG_INT_FLICKER 0x00040000
#define VG_MODEFLAG_INT_MASK 0x00060000
#define VG_MODEFLAG_INT_OVERRIDE 0x00080000
#define VG_MODEFLAG_INVERT_SHFCLK 0x00100000
#define VG_MODEFLAG_MANUAL_FREQUENCY 0x00200000
#define VG_MODEFLAG_PLL_BYPASS 0x00400000
#define VG_MODEFLAG_VIP_TO_DOT_CLOCK 0x00800000
#define VG_MODEFLAG_VALIDUSERFLAGS (VG_MODEFLAG_CRT_AND_FP | \
VG_MODEFLAG_XVGA_TFT | \
VG_MODEFLAG_NOPANELTIMINGS | \
VG_MODEFLAG_EXCLUDEPLL | \
VG_MODEFLAG_LINEARPITCH)
typedef struct tagVGDisplayMode
{
/* DISPLAY MODE FLAGS */
/* Includes BPP, refresh rate information, interlacing, etc. */
unsigned long internal_flags;
unsigned long flags;
/* SOURCE RESOLUTION */
/* The following values reflect the resolution of the data in the frame */
/* buffer. These values are used to enable scaling and filtering. */
unsigned long src_width;
unsigned long src_height;
/* PANEL SETTINGS */
/* These allow a user to set a panel mode through the vg_set_custom_mode */
/* routine. These values are only relevant if the VG_MODEFLAG_PANEL is */
/* also set. */
unsigned long mode_width;
unsigned long mode_height;
unsigned long panel_width;
unsigned long panel_height;
unsigned long panel_tim1;
unsigned long panel_tim2;
unsigned long panel_dither_ctl;
unsigned long panel_pad_sel_low;
unsigned long panel_pad_sel_high;
/* OUTPUT TIMINGS */
/* If the active width and height do not match the source */
/* dimensions the graphics data will be scaled. */
unsigned long hactive;
unsigned long hblankstart;
unsigned long hsyncstart;
unsigned long hsyncend;
unsigned long hblankend;
unsigned long htotal;
unsigned long vactive;
unsigned long vblankstart;
unsigned long vsyncstart;
unsigned long vsyncend;
unsigned long vblankend;
unsigned long vtotal;
unsigned long vactive_even;
unsigned long vblankstart_even;
unsigned long vsyncstart_even;
unsigned long vsyncend_even;
unsigned long vblankend_even;
unsigned long vtotal_even;
/* CLOCK FREQUENCY */
unsigned long frequency;
} VG_DISPLAY_MODE;
/*-------------------------------------------*/
/* PLL FLAGS */
/*-------------------------------------------*/
#define VG_PLL_DIVIDE_BY_2 0x00000001
#define VG_PLL_DIVIDE_BY_4 0x00000002
#define VG_PLL_BYPASS 0x00000004
#define VG_PLL_MANUAL 0x00000008
#define VG_PLL_VIP_CLOCK 0x00000010
/*-------------------------------------------*/
/* USER STRUCTURE FOR QUERYING DISPLAY MODES */
/*-------------------------------------------*/
typedef struct tagQueryDisplayMode
{
int interlaced;
int halfclock;
unsigned long active_width;
unsigned long active_height;
unsigned long panel_width;
unsigned long panel_height;
unsigned long total_width;
unsigned long total_height;
unsigned long bpp;
unsigned long hz;
unsigned long frequency;
unsigned long query_flags;
unsigned long encoder;
unsigned long tvmode;
} VG_QUERY_MODE;
/*-------------------------------------------*/
/* USER STRUCTURE FOR QUERYING CURSOR DATA */
/*-------------------------------------------*/
typedef struct tagCursorData
{
int enable;
int color_cursor;
unsigned long cursor_offset;
unsigned long cursor_x;
unsigned long cursor_y;
unsigned long clipx;
unsigned long clipy;
unsigned long mono_color0;
unsigned long mono_color1;
unsigned long flags;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -