|
|
1.1 root 1: // Geode GX2/LX VGA functions
2: //
3: // Copyright (C) 2009 Chris Kindt
4: //
5: // Writen for Google Summer of Code 2009 for the coreboot project
6: //
7: // This file may be distributed under the terms of the GNU LGPLv3 license.
8:
9: #ifndef GEODEVGA_H
10: #define GEODEVGA_H
11:
12: #define VRC_INDEX 0xAC1C // Index register
13: #define VRC_DATA 0xAC1E // Data register
14: #define VR_UNLOCK 0xFC53 // Virtual register unlock code
15:
16: #define EXTENDED_REGISTER_LOCK 0x30
17: #define EXTENDED_MODE_CONTROL 0x43
18: #define EXTENDED_START_ADDR 0x44
19:
20: #define CRTCE_UNLOCK 0x4c
21: #define CRTCE_LOCK 0xff
22:
23: // Graphics-specific registers:
24: #define OEM_BAR0 0x50
25: #define OEM_BAR1 0x54
26: #define OEM_BAR2 0x58
27: #define OEM_BAR3 0x5C
28:
29: #define DC_LOCK_LOCK 0x00000000
30: #define DC_LOCK_UNLOCK 0x00004758
31:
32: /* LX MSRs */
33: #define MSR_GLIU0 (1 << 28)
34: #define MSR_GLIU0_BASE4 (MSR_GLIU0 + 0x23) /* LX */
35: #define GLIU0_P2D_BM_4 (MSR_GLIU0 + 0x24) /* GX2 */
36: #define GLIU0_IOD_BM_0 (MSR_GLIU0 + 0xE0)
37: #define GLIU0_IOD_BM_1 (MSR_GLIU0 + 0xE1)
38: #define DC_SPARE 0x80000011
39: #define VP_MSR_CONFIG_GX2 0xc0002001 /* GX2 */
40: #define VP_MSR_CONFIG_LX 0x48002001 /* LX */
41:
42: /* DC REG OFFSET */
43: #define DC_UNLOCK 0x0
44: #define DC_GENERAL_CFG 0x4
45: #define DC_DISPLAY_CFG 0x8
46: #define DC_FB_ST_OFFSET 0x10
47: #define DC_CB_ST_OFFSET 0x14
48: #define DC_CURS_ST_OFFSET 0x18
49: #define DC_GLIU0_MEM_OFFSET 0x84
50:
51: /* VP REG OFFSET */
52: #define VP_VCFG 0x0
53: #define VP_DCFG 0x8
54: #define VP_MISC 0x50
55:
56:
57: /* DC bits */
58: #define DC_VGAE (1 << 7)
59: #define DC_GDEN (1 << 3)
60: #define DC_TRUP (1 << 6)
61:
62: /* VP bits */
63: #define VP_CRT_EN (1 << 0)
64: #define VP_HSYNC_EN (1 << 1)
65: #define VP_VSYNC_EN (1 << 2)
66: #define VP_DAC_BL_EN (1 << 3)
67: #define VP_CRT_SKEW (1 << 16)
68: #define VP_BYP_BOTH (1 << 0)
69:
70: /* Mask */
71: #define DC_CFG_MSK 0xf000a6
72:
73: int geodevga_init();
74:
75: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.