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