|
|
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.