Hello all, In the past i used coreboot without a VGAbios and used the linux framebuffer driver and that works ok. I am trying to get onboard early VGA running on my Geode GX2 board but until now i have no succes.( the screen stays black until the framebuffer driver in linux loads) I have SoftVG in my VSA2 blob. I am running the (extracted) original VGA bios via Seabios.
This is from lspci with the original bios: 00:01.1 0300: 100b:0030 (prog-if 00 [VGA controller]) Subsystem: 100b:0030 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Region 0: Memory at 41000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at 40ffc000 (32-bit, non-prefetchable) [size=16K] Region 2: Memory at 40ff8000 (32-bit, non-prefetchable) [size=16K] Region 3: Memory at 40ff4000 (32-bit, non-prefetchable) [size=16K]
This is from lspci with coreboot/seabios: 00:01.1 0300: 100b:0030 (prog-if 00 [VGA controller]) Subsystem: 100b:0030 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at fe000000 (32-bit, non-prefetchable) [size=16K] Region 2: Memory at fe004000 (32-bit, non-prefetchable) [size=16K] Region 3: Memory at fe008000 (32-bit, non-prefetchable) [size=16K] Expansion ROM at <unassigned> [disabled] Kernel driver in use: gxfb
If i force the driver on via the virtual VSA2 register in gprhinit.c the softvg seems to setup a video text buffer from A0000-BFFFF .
Could the problem have anything to do with the fact that the VSA2 code runs in a different memory region? (setup by oprom) And therefore the video bars GP, VP and DC are also in a different address range so VSA2 or VGAbios can not find them?
I don't know how this exactly works and maybe i am doing something stupid but maybe someone could give me any advise on how to debug this further.
Thanks, Nils.
* Nils njacobs8@hetnet.nl [110113 16:19]:
Hello all, In the past i used coreboot without a VGAbios and used the linux framebuffer driver and that works ok. I am trying to get onboard early VGA running on my Geode GX2 board but until now i have no succes.( the screen stays black until the framebuffer driver in linux loads) I have SoftVG in my VSA2 blob. I am running the (extracted) original VGA bios via Seabios.
This is from lspci with the original bios: 00:01.1 0300: 100b:0030 (prog-if 00 [VGA controller]) Subsystem: 100b:0030 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Region 0: Memory at 41000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at 40ffc000 (32-bit, non-prefetchable) [size=16K] Region 2: Memory at 40ff8000 (32-bit, non-prefetchable) [size=16K] Region 3: Memory at 40ff4000 (32-bit, non-prefetchable) [size=16K]
This is from lspci with coreboot/seabios: 00:01.1 0300: 100b:0030 (prog-if 00 [VGA controller]) Subsystem: 100b:0030 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at fe000000 (32-bit, non-prefetchable) [size=16K] Region 2: Memory at fe004000 (32-bit, non-prefetchable) [size=16K] Region 3: Memory at fe008000 (32-bit, non-prefetchable) [size=16K] Expansion ROM at <unassigned> [disabled] Kernel driver in use: gxfb
If i force the driver on via the virtual VSA2 register in gprhinit.c the softvg seems to setup a video text buffer from A0000-BFFFF .
Could the problem have anything to do with the fact that the VSA2 code runs in a different memory region? (setup by oprom) And therefore the video bars GP, VP and DC are also in a different address range so VSA2 or VGAbios can not find them?
which VSA are you using?
Hi Stefan, Op woensdag 19 januari 2011 07:58:10 schreef u:
Could the problem have anything to do with the fact that the VSA2 code runs in a different memory region? (setup by oprom) And therefore the video bars GP, VP and DC are also in a different address range so VSA2 or VGAbios can not find them?
which VSA are you using?
I am using a self made one because there seems to be no working GX2 version available. It is a slightly modified version of the OLPC version found at:
https://dev.laptop.org/git/geode- vsa/commit/?id=16a691129d1c375a943c3ec807728c9acb4febe6
And i replaced lxvg by softvg from: https://dev.laptop.org/git/geode- vsa/commit/?id=330a5424ebb2c5e5d24a7fafa03f79e0ad44f954
Altough i don't exactly know how al the interactions between coreboot(oprom) softvg(vsa2) and vgabios work( via bar registers) , i think i am on to something. I found that in softvg/gxhwctl.c the bars are hardcoded to the 0x41000000 range as in the Wyse vendor bios and that in lxvg/lxhwctl.c the range is calculated. I wil investigate/test this some more.
Could someone recommend a easy to read online description about the interaction between bios-vgabios-vgaregisters-pcibars?
Thanks, Nils.