ATI Rage XL with no BIOS support

5 messages, 4 authors, 2006-02-26 · open the first message on its own page

ATI Rage XL with no BIOS support

From: Alan Carvalho <hidden>
Date: 2006-02-21 21:29:17

Hi all,
I want use ATI Rage XL on an embedded hardware, I see Linux kernel 2.6.x has
support to initialize this board although Geert Uytterhoeven say me it will
be removed from Linux kernel because it don't work or is broken.

Anyway I am using kernel 2.6.12, it have support initialize Rage XL. I do
some tests, but it don't work, kernel crash (it just stop) at
"aty_st_pll_ct(VCLK0_FB_DIV, 0xDA, par)", I think it is because my board
parameters is incorrect.

I want know how to found all parameter to struct xl_card_cfg_t (xlinit.c) to
make my board work?

static const struct xl_card_cfg_t {
        int ref_crystal; // 10^4 Hz
        int mem_type;
        int mem_size;
        u32 mem_cntl;
        u32 ext_mem_cntl;
        u32 mem_addr_config;
        u32 bus_cntl;
        u32 dac_cntl;
        u32 hw_debug;
        u32 custom_macro_cntl;
        u8  dll2_cntl;
        u8  pll_yclk_cntl;
}

This is my board:
Vendor: 1002
Device: 4752
0000:01:01.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev
27) (prog-if 00 [VGA])
        Subsystem: ATI Technologies Inc Rage XL
        Flags: bus master, stepping, medium devsel, latency 32, IRQ 9
        Memory at f0000000 (32-bit, non-prefetchable) [size=16M]
        I/O ports at a000 [size=256]
        Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [5c] Power Management version 2

Thank you very much,

Alan

Re: ATI Rage XL with no BIOS support

From: Jay Cotton <hidden>
Date: 2006-02-21 21:46:39

Basically you are screwed.

There is a way to fix this, but the code is closed source and ATI will not
allow it out of there control.  So, unless you can read the bios prom
into memory and execute the first 1024 bytes in 16bit mode, you will not
be able to recover.

sorry

JC

Alan Carvalho wrote:
Hi all,
I want use ATI Rage XL on an embedded hardware, I see Linux kernel 2.6.x 
has support to initialize this board although Geert Uytterhoeven say me 
it will be removed from Linux kernel because it don't work or is broken.

Anyway I am using kernel 2.6.12, it have support initialize Rage XL. I 
do some tests, but it don't work, kernel crash (it just stop) at 
"aty_st_pll_ct(VCLK0_FB_DIV, 0xDA, par)", I think it is because my board 
parameters is incorrect.

I want know how to found all parameter to struct xl_card_cfg_t 
(xlinit.c) to make my board work?

static const struct xl_card_cfg_t {
        int ref_crystal; // 10^4 Hz
        int mem_type;
        int mem_size;
        u32 mem_cntl;
        u32 ext_mem_cntl;
        u32 mem_addr_config;
        u32 bus_cntl;
        u32 dac_cntl;
        u32 hw_debug;
        u32 custom_macro_cntl;
        u8  dll2_cntl;
        u8  pll_yclk_cntl;
}

This is my board:
Vendor: 1002
Device: 4752
0000:01:01.0 VGA compatible controller: ATI Technologies Inc Rage XL 
(rev 27) (prog-if 00 [VGA])
        Subsystem: ATI Technologies Inc Rage XL
        Flags: bus master, stepping, medium devsel, latency 32, IRQ 9
        Memory at f0000000 (32-bit, non-prefetchable) [size=16M]
        I/O ports at a000 [size=256]
        Memory at f2000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [5c] Power Management version 2

Thank you very much,

Alan


-- 
	 Jay Cotton 		     Jay.Cotton@sun.com
	 MPK17-2348    x80841
	 Sun Microsystems Inc. - X11 Server Group
	 Operating Platform Group




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642

Re: ATI Rage XL with no BIOS support

From: Richard Smith <hidden>
Date: 2006-02-21 22:53:53

On 2/21/06, Alan Carvalho [off-list ref] wrote:
Hi all,
I want use ATI Rage XL on an embedded hardware, I see Linux kernel 2.6.x has
support to initialize this board although Geert Uytterhoeven say me it will
be removed from Linux kernel because it don't work or is broken.
Yep.  It's broken and has been for some time.

That code was orginally created by a person with a PCI bus analyser. 
He captured each access the bios made to the the card and then wrote a
driver that was essentially a bunch of IO's that would bring the chip
to life.

That driver was then converted into the ATY format of things for 2.6.x
but I don't believe it has ever worked since then.   And no one has
ever fixed it.
I want know how to found all parameter to struct xl_card_cfg_t (xlinit.c) to
make my board work?
Somewhere in the archives (V1 I think) is a mother board that has the
orginal working copy of xlinit.c.  You can also go get it out of the
2.4.x kernel.

Another option is to register as a developer on ATI's site and get the
docs for the Rage XL.  That coupled with the xlinit.c should allow you
fixup your problems.

--
Richard A. Smith
������^�����)�{(��[�*e�y��������m��.�h���z�����nW��+h�:0�Zv�^��$�y������w���fjG����r��*.�Z ~)^��
j�����~)���y��X��4�-CJ��i��
��.�����'z��zW&vY��'u�~7����}8��Z�]���

Re: ATI Rage XL with no BIOS support

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2006-02-24 03:52:20

On Tue, 2006-02-21 at 12:45 -0800, Jay Cotton wrote:
Basically you are screwed.

There is a way to fix this, but the code is closed source and ATI will not
allow it out of there control.  So, unless you can read the bios prom
into memory and execute the first 1024 bytes in 16bit mode, you will not
be able to recover.
First 1024 bytes ? hrm... that isn't much... doesn't seem to work much
for me. I have a board with a Rage Mobility, ATI gave us a BIOS image,
I've tried running it in an x86 emulator (it's a ppc machine) to no
avail so far. That BIOS appears to be mucking around with all sort of
things not directly related to the actual video chip, like strange IO
ports all around the legacy space (more than just the timers) etc...

Ben.




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

Re: ATI Rage XL with no BIOS support

From: Richard Smith <hidden>
Date: 2006-02-26 18:02:37

quoted
There is a way to fix this, but the code is closed source and ATI will not
allow it out of there control.  So, unless you can read the bios prom
into memory and execute the first 1024 bytes in 16bit mode, you will not
be able to recover.
First 1024 bytes ? hrm... that isn't much... doesn't seem to work much
for me. I have a board with a Rage Mobility, ATI gave us a BIOS image,
I've tried running it in an x86 emulator (it's a ppc machine) to no
avail so far. That BIOS appears to be mucking around with all sort of
things not directly related to the actual video chip, like strange IO
ports all around the legacy space (more than just the timers) etc...
I've run the Mobility M1 bios under the emulator available from
LinuxBIOS and posted a card under a kernel booted by LinuxBIOS (so no
BIOS post).  The M1 is a mach64 based chip just like the Rage XL.

It's been awhile but I recall having to fix the way the timer was
handled.  the LB emulator just lets the timer IO's pass though to the
timer which doesn't work so hot while Linux is using it.

--
Richard A. Smith
�+��zf��+,������o,O0�����u��jH���+��b�	Z�
���aj�������i�'�*'�)���jwf���zg���-��������y����v:"��^���y��zZ)z�+��[����x"��-�+'{(v)������+�m���zV�����F�����\��g�H��]=���wn5�m
j�v��6
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help