Known Hardware Info Edit

From the wiki:

The 2700G graphics chip (INTEL/INTRINSYC 2700G/MARATHON/MBX_Lite 16MB VRAM VERSION) in the x50v is in fact the PowerVR MBX Lite which has been licenced from Imagination Technologies.
The 2700g is based at 0x0C000000 (PXA_CS3_PHYS).

It's datasheet is available at Please see the wiki for further details on this graphics chip.

Register Dump Edit

The following is a dump of all the 2700g registers from an X51v under WinCE (with mirror mode disabled, ie. 2700g is driving LCD).

System Configuration Registers:
0000 SYSCFG 0x00000000
0004 PFBASE 0x00000000
0008 PFCEIL 0x03fdffe0
000c POLLFLAG 0x00000000
0010 SYSRST 0x00000000
Interrupt Control Registers:
0014 NINTPW 0x0000001c
0018 MINTENABLE 0x0000800f
001c MINTSTAT 0x00000000
0020 SINTENABLE 0x00000000
0024 SINTSTAT 0x00000010
0028 SINTCLR 0x00000000
Clock Control Registers:
002c SYSCLKSRC 0x00000002 CORE_PLL
0030 PIXCLKSRC 0x00000001 DISP_PLL
0034 CLKSLEEP 0x00000000
0038 COREPLL 0x00000bb1 EN, P=0, N=3, M=23
003c DISPPLL 0x00000ec5 EN, P=2, N=4, M=29
0040 PLLSTAT 0x00000007
0044 VOVRCLK 0x00000000
0048 PIXCLK 0x00000001 EN
004c MEMCLK 0x00000001 EN
0058 SDCLK 0x00000001 EN
005c PIXCLKDIV 0x00000001 PD=1
LCD Port Control Registers:
0060 LCD_CONFIG 0x2efa0000
On-Die Frame Buffer Control Registers:
0064 ODFBPWR 0x00000000
0068 ODFBSTAT 0x00000004
GPIO Control Registers:
006c GPIOCFG 0x00000001
0070 GPIOHI 0x00000000
0074 GPIOLO 0x00000000
0078 GPIOSTAT 0x00000000
Pulse Width Modulator Control Registers:
0200 PWMRST 0x00000000
0204 PWMCFG 0x00000003
0210 PWM0DIV 0x00000000
0214 PWM0DUTY 0x00000000
0218 PWM0PER 0x00000004
0220 PWM1DIV 0x00000000
0224 PWM1DUTY 0x00000000
0228 PWM1PER 0x00000004
Device Identification Registers:
0ff0 ID 0x01727189
Local Memory (SDRAM) Interface Registers:
1000 LMRST 0x00000000
1004 LMCFG 0x00000027
1008 LMPWR 0x00000000
100c LMPWRSTAT 0x00000000
1010 LMCEMR 0x00000000
1014 LMTYPE 0x00000ac8
1018 LMTIM 0x00073392
101c LMREFRESH 0x00000615
1020 LMPROTMIN 0x00000000
1024 LMPROTMAX 0x03fdfffc
1028 LMPROTCFG 0x00000000
102c LMPROTERR 0x00000000

Graphics Display Registers:

2000 GSCTRL 0x3c0efa7f
2020 GBBASE 0x00000000
2040 GDRCTRL 0x00ffffff
2060 GSCADR 0x80000000
20c0 GSADR 0x0ec00000
2150 GPLUT 0x00000000
Video Display Registers:
2004 VSCTRL 0x0600780f
2024 VBBASE 0x00000000
2044 VCMSK 0x00ffffff
2064 VSCADR 0x01000000
2084 VUBASE 0x00000000
20a4 VVBASE 0x00000000
20c4 VSADR 0x00000000
Background Control Registers:
2174 BGCOLOR 0x00000000
Hardware Cursor Registers:
2100 HCCTRL 0x00000000
2110 HCSIZE 0x40000000
2120 HCPOS 0x00000000
2130 HCBADR 0x00000000
2140 HCCKMSK 0x00ffffff
Display Synchronization Registers:
2154 DSCTRL 0x8000002a
230c DUCTRL 0x00000000
2158 DHT01 0x00400288
215c DHT02 0x00500050
2160 DHT03 0x02300230
2164 DVT01 0x00020284
2168 DVT02 0x00030003
216c DVT03 0x02830283
2310 DVECTRL 0x02830002
2314 DHDET 0x00500230
2318 DVDET 0x00030283
231c DODMSK 0x00000000
2170 DBCOL 0x00000000
2184 DSIG 0x51713e03
2308 DVLNUM 0x000001b5
2188 DMCTRL 0x10303010
2178 DINTRS 0x00000005
217c DINTRE 0x00000000
2180 DINTRCNT 0x00000000
2300 DLSTS 0x00800000
2304 DLLCTRL 0x00000000
Clipping and Scaling Registers:
218c CLIPCTRL 0x00000000
2190 SPOCTRL 0xc8030000
2194 SVCTRL 0x00000000
21b0 SHCTRL 0x20000000
2198 VSCOEFF0 0x00000000
219c VSCOEFF1 0x00000000
21a0 VSCOEFF2 0x00000000
21a4 VSCOEFF3 0x00000000
21a8 VSCOEFF4 0x00000000
21d8 SSIZE 0x00000000
21b4 HSCOEFF0 0x00000000
21b8 HSCOEFF1 0x00000000
21bc HSCOEFF2 0x00000000
21c0 HSCOEFF3 0x00000000
21c4 HSCOEFF4 0x00000000
21c8 HSCOEFF5 0x00000000
21cc HSCOEFF6 0x00000000
21d0 HSCOEFF7 0x00000000
21d4 HSCOEFF8 0x00000000
Gamma Adjustment:
2200 VIDGAM0 0x00000000
2204 VIDGAM1 0x00101010
2208 VIDGAM2 0x00202020
220c VIDGAM3 0x00303030
2210 VIDGAM4 0x00404040
2214 VIDGAM5 0x00505050
2218 VIDGAM6 0x00606060
221c VIDGAM7 0x006f6f6f
2220 VIDGAM8 0x00808080
2224 VIDGAM9 0x00909090
2228 VIDGAM10 0x00a0a0a0
222c VIDGAM11 0x00b0b0b0
2230 VIDGAM12 0x00c0c0c0
2234 VIDGAM13 0x00cfcfcf
2238 VIDGAM14 0x00dfdfdf
223c VIDGAM15 0x00f0f0f0
2240 VIDGAM16 0x00ffffff
2250 GFXGAM0 0x00000000
2254 GFXGAM1 0x00101010
2258 GFXGAM2 0x00202020
225c GFXGAM3 0x00303030
2260 GFXGAM4 0x00404040
2264 GFXGAM5 0x00505050
2268 GFXGAM6 0x00606060
226c GFXGAM7 0x006f6f6f
2270 GFXGAM8 0x00808080
2274 GFXGAM9 0x00909090
2278 GFXGAM10 0x00a0a0a0
227c GFXGAM11 0x00b0b0b0
2280 GFXGAM12 0x00c0c0c0
2284 GFXGAM13 0x00cfcfcf
2288 GFXGAM14 0x00dfdfdf
228c GFXGAM15 0x00f0f0f0
2290 GFXGAM16 0x00ffffff
Color Space Conversion Registers:
2330 CSC01 0x0000012a
2334 CSC02 0x00095199
2338 CSC03 0x0039879c
233c CSC04 0x0010292a
2340 CSC05 0x00000000

Current Status Edit

The specs are available for the basic setup of the 2700g, and there is a framebuffer driver in mainline Linux (mbxfb), but that's all we're going to get. There are no public specs available for any kind of acceleration, be it 2D or 3D, so all we could use it for is an unaccelerated framebuffer - which we already have from the PXA. However, there is code available in my git repository to initialize just enough of the 2700g to access it's RAM - which can be useful as a swap device.