Avivo with ATI X12xx
Jerome Glisse
glisse at freedesktop.org
Mon Jul 30 03:44:53 PDT 2007
Matthew Mastracci wrote:
> I'm working on getting my ATI X1200-series video card working with
> Avivo, but I seem to be stuck.
>
> I added my PCI IDs to the avivo source and installed it on FC7 64-bit
> machine and fired up X while connected to my Dell FP LCD over DVI.
> The screen goes blank and the monitor goes into power-saving mode. If
> I switch VTs, text mode is restored properly and the monitor comes
> back on.
>
> I can try to dump registers and/or try various patches if necessary.
> Any suggestions on where to start?
>
> Here's the lspci output:
>
> 01:05.0 VGA compatible controller: ATI Technologies Inc Radeon X1200
> Series (prog-if 00 [VGA])
> Subsystem: Giga-byte Technology Unknown device d001
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR- FastB2B-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR-
> Latency: 32, Cache Line Size: 4 bytes
> Interrupt: pin A routed to IRQ 18
> Region 0: Memory at d8000000 (64-bit, prefetchable) [size=128M]
> Region 2: Memory at fdfe0000 (64-bit, non-prefetchable) [size=64K]
> Region 4: I/O ports at ee00 [size=256]
> Region 5: Memory at fde00000 (32-bit, non-prefetchable) [size=1M]
> Capabilities: [50] Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
> PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D0 PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+
> Queue=0/0 Enable-
> Address: 0000000000000000 Data: 0000
>
> Here's avivotool romtables mmap:
>
> BIOS Tables:
> ------------
>
> Header at 180, type: 36 [ATOM]
> OEM ID: 01 01
> ATOM BIOS detected !
>
> Clock info block:
> SCLK : 400.000000
> MCLK : 200.000000
> RefClk : 14.320000
> PPLL Min: 0.000000
> PPLL Max: 1200.000000
> Connector table:
> 0: 0000c011 , Id: 0, Type: VGA, DDC: AVIVO connector #2?, DAC: CRT,
> GPIO: 0x7E50
> 2: 00000051 , Id: 0, Type: STV, DDC: AVIVO connector #2?, DAC: CRT,
> GPIO: 0x7E50
> TMDS PLLs:
> Maximum frequency: 165000Hz
> 0: 0Hz 0
> 1: 720Hz 1005
> 2: 0Hz 82aa
> 3: 22180Hz 1e8f
> No LVDS
>
> Here's my simple PCI ID hack:
>
> diff --git a/include/avivo_chipset.h b/include/avivo_chipset.h
> index 0629b02..1ef2ee7 100644
> --- a/include/avivo_chipset.h
> +++ b/include/avivo_chipset.h
> @@ -98,7 +98,7 @@
> #define PCI_CHIP_RV570_7288 0x7288
> #define PCI_CHIP_RV530_7291 0x7291
> #define PCI_CHIP_RV530_7293 0x7293
> -
> +#define PCI_CHIP_X1200 0x791E
> enum avivo_chip_type {
> CHIP_FAMILY_R520,
> CHIP_FAMILY_R520_M58,
> diff --git a/xorg/avivo_chipset.c b/xorg/avivo_chipset.c
> index 449f9af..461c0a0 100644
> --- a/xorg/avivo_chipset.c
> +++ b/xorg/avivo_chipset.c
> @@ -300,6 +300,10 @@ const struct pci_id_match avivo_device_match[] = {
> PCI_VENDOR_ATI, 0x7293, PCI_MATCH_ANY, PCI_MATCH_ANY,
> 0x00030000, 0x00ffffff, 0
> },
> + {
> + PCI_VENDOR_ATI, 0x791e, PCI_MATCH_ANY, PCI_MATCH_ANY,
> + 0x00030000, 0x00ffffff, 0
> + },
>
> { 0, 0, 0 },
> };
> @@ -376,10 +380,12 @@ SymTabRec avivo_chips[] = {
> { PCI_CHIP_RV570_7288, "RV570 (Radeon X1950 GT)" },
> { PCI_CHIP_RV530_7291, "RV530 (Radeon X1650 XT)" },
> { PCI_CHIP_RV530_7293, "RV530 (Radeon X1650)" },
> + { PCI_CHIP_X1200 "X1200" },
> { -1, NULL }
> };
>
> PciChipsets avivo_pci_chips[] = {
> + { PCI_CHIP_X1200, PCI_CHIP_MATT, RES_SHARED_VGA },
> { PCI_CHIP_R520_7100, PCI_CHIP_R520_7100, RES_SHARED_VGA },
> { PCI_CHIP_R520_M58_7102, PCI_CHIP_R520_M58_7102, RES_SHARED_VGA },
> { PCI_CHIP_R520_M58_7103, PCI_CHIP_R520_M58_7103, RES_SHARED_VGA },
> @@ -525,6 +531,7 @@ static struct avivo_chipset_family chipset_family[] = {
> { PCI_CHIP_RV570_7288, CHIP_FAMILY_RV570 },
> { PCI_CHIP_RV530_7291, CHIP_ };
>
> void
> diff --git a/xorg/avivo_output.c b/xorg/avivo_output.c
> FAMILY_RV530 },
> { PCI_CHIP_RV530_7293, CHIP_FAMILY_RV530 },
> + { PCI_CHIP_X1200, CHIP_FAMILY_RV515 },
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>
Maybe reg are at different address, two way to debug this do radeondump
under fglrx
and under avivo (through ssh) and compare them:
git clone git://people.freedesktop.org/~glisse/radeondump
Or get some vbedump to see how we should set mode
wget http://people.freedesktop.org/~glisse/vbespy.tar.bz2
radeondump -d fglrx
radeondump -d avivo
dcomp avivo fglrx
vbetest -m modenumber 2> modedump
converter modedump (edit converter.c to change pio addr)
best,
Jerome Glisse
More information about the xorg
mailing list