diff options
Diffstat (limited to '')
-rw-r--r-- | private/ntos/fw/ppc/jxvideo.h | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/private/ntos/fw/ppc/jxvideo.h b/private/ntos/fw/ppc/jxvideo.h new file mode 100644 index 000000000..bf98df674 --- /dev/null +++ b/private/ntos/fw/ppc/jxvideo.h @@ -0,0 +1,158 @@ +/*++ + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + jxvideo.h + +Abstract: + + This module implements contains definitions for the interface with + the video prom initialization code. + + +Author: + + Lluis Abello (lluis) 16-Jul-1992 + +Environment: + + Kernel mode. + + +Revision History: + +--*/ + +#ifndef _JXVIDEO_ + +#define _JXVIDEO_ + +// The video PROM contains the following structure starting at offset zero +// from the PROM base address. Each entry is 8 bytes wide with the low byte +// containing data and the upper 7 bytes reserved. +// +// 63 8 7 0 Offset +// +------------------+ +------------------+ +// | reserved | | Board_Identifier | 0x00 +// +------------------+ +------------------+ +// | reserved | | PROM_Stride | 0x08 +// +------------------+ +------------------+ +// | reserved | | PROM_Width | 0x10 +// +------------------+ +------------------+ +// | reserved | | PROM_Size | 0x18 +// +------------------+ +------------------+ +// | reserved | | Test_Byte_0 | 0x20 +// +------------------+ +------------------+ +// | reserved | | Test_Byte_1 | 0x28 +// +------------------+ +------------------+ +// | reserved | | Test_Byte_2 | 0x30 +// +------------------+ +------------------+ +// | reserved | | Test_Byte_3 | 0x38 +// +------------------+ +------------------+ +// +// +// Board_Identifier - supplies two bytes identifying the video board. +// +// PROM_Stride - supplies the stride of the PROM in bytes. Possible +// values are: +// +// 1 - data every byte +// 2 - data every 2 bytes +// 4 - data every 4 bytes +// 8 - data every 8 bytes +// +// PROM_Width - supplies the width of the PROM in bytes. Possible values +// are: +// +// 1 - 1 byte wide +// 2 - 2 bytes wide +// 4 - 4 bytes wide +// 8 - 8 bytes wide +// +// PROM_Size - supplies the size of the PROM in 4 KByte pages. +// +// Test_Bytes_[3:0] - supplies a test pattern ("Jazz"). +// +// This strucure viewed from the video prom, i.e. the system +//prom reads it taking into account PROM_Stride and PROM_Width +//follows: +// +//typedef struct _VIDEO_PROM_CONFIGURATION { +// ULONG VideoMemorySize; +// ULONG VideoControlSize; +// ULONG CodeOffset; +// ULONG CodeSize; +//} VIDEO_PROM_CONFIGURATION; *PVIDEO_PROM_CONFIGURATION; +// +// +// VideoMemorySize - Supplies the size of video memory in bytes +// +// VideoControlSize - Supplies the size of video control in bytes +// +// CodeOffset - Supplies the offset in bytes from the beginning +// of the video prom to the first byte of code which +// is also the entry point of the initialization routine. +// +// CodeSize - Supplies the size of the code in bytes. +// +// +// +// Following this structure there is a IdentifierString - +// Zero terminated string that identifies the video card "JazzG364", " +// JazzVXL" ... + + + +typedef struct _VIDEO_PROM_CONFIGURATION { + ULONG VideoMemorySize; + ULONG VideoControlSize; + ULONG CodeOffset; + ULONG CodeSize; +} VIDEO_PROM_CONFIGURATION, *PVIDEO_PROM_CONFIGURATION; + + +typedef struct _VIDEO_VIRTUAL_SPACE { + ULONG MemoryVirtualBase; + ULONG ControlVirtualBase; +} VIDEO_VIRTUAL_SPACE, *PVIDEO_VIRTUAL_SPACE; + +typedef +ARC_STATUS +(*PVIDEO_INITIALIZE_ROUTINE) ( + IN PVIDEO_VIRTUAL_SPACE VideoAdr, + IN PMONITOR_CONFIGURATION_DATA VideoConfig + ); + +#define InitializeVideo(VideoAdr, VideoConfig) \ + ((PVIDEO_INITIALIZE_ROUTINE)(VIDEO_PROM_CODE_VIRTUAL_BASE)) \ + ((VideoAdr), (VideoConfig)) + +ARC_STATUS +InitializeVideoFromProm( + IN PMONITOR_CONFIGURATION_DATA Monitor + ); + +// +// Define colors, HI = High Intensity +// + +#define FW_COLOR_BLACK 0x00 +#define FW_COLOR_RED 0x01 +#define FW_COLOR_GREEN 0x02 +#define FW_COLOR_YELLOW 0x03 +#define FW_COLOR_BLUE 0x04 +#define FW_COLOR_MAGENTA 0x05 +#define FW_COLOR_CYAN 0x06 +#define FW_COLOR_WHITE 0x07 +#define FW_COLOR_HI_BLACK 0x08 +#define FW_COLOR_HI_RED 0x09 +#define FW_COLOR_HI_GREEN 0x0A +#define FW_COLOR_HI_YELLOW 0x0B +#define FW_COLOR_HI_BLUE 0x0C +#define FW_COLOR_HI_MAGENTA 0x0D +#define FW_COLOR_HI_CYAN 0x0E +#define FW_COLOR_HI_WHITE 0x0F + +#endif |