RE: [Dri-devel] Linux kernel PCI IDs vs Xfree

9 messages, 4 authors, 2003-08-12 · open the first message on its own page

RE: [Dri-devel] Linux kernel PCI IDs vs Xfree

From: Alexander Stohr <hidden>
Date: 2003-08-09 20:41:01

all info contained below is my personal opinion,
should be retriveable from several pbulic sources
and it is only accurate to my best knowledge.
linux/pci_ids.h and xf86PciInfo.h are in disagreement
for several Rage128 PCI ids. Xfree appears to be
correct and the kernel file is wrong. This impacts the
Rage framebuffer driver when loading. 
as long as no one notices or complains
it cant be that big issue. ;-)
I verified these with two PCI databases.
Which ones? e.g. www.yourvote.com\pci is the database
where the Linux kernel does get its listing.

www.plasma-online.de is another site with a more or
less bigger emphasize on getting even a photo of 
the packages.
Rage Mobility 128 AGP 4x
#define PCI_CHIP_RAGE128MF              0x4D46
#define PCI_DEVICE_ID_ATI_RADEON_LF     0x4d46
this chipset possibly went trough press announcements 
as "Mobility M4, AGP 4x". i dont know the board names
so the "Rage Mobility 128" might match.

0x4d46 is ascii equivalent of "MF", so the 2nd
line sounds odd. Official Radeon-1 is counted 
(to my understanding) as equivalent to a Rage 
in 6th revison, so a 4 cant be a Radeon at all.
Rage Mobility 128 AGP
#define PCI_CHIP_RAGE128ML              0x4D4C
missing
"Mobility M4, AGP 4x"
Rage 128 SE/4x PCI
#define PCI_CHIP_RAGE128SE              0x5345
#define PCI_DEVICE_ID_ATI_RAGE128_RM    0x5345
0x5345 == ASCII "SE"
Rage 128 4x, PCI
Rage 128 SF/4x AGP 2x
#define PCI_CHIP_RAGE128SF              0x5346
#define PCI_DEVICE_ID_ATI_RAGE128_RN    0x5346
0x5346 == ASCII "SF"
Rage 128 4x, AGP 2x
Rage 128 SG/4x AGP 4x
#define PCI_CHIP_RAGE128SG              0x5347
#define PCI_DEVICE_ID_ATI_RAGE128_RO    0x5347
0x5347 == ASCII "SG"
Rage 128 4x, AGP 4x

the 4x in the chip/card name is more of the evolution
stage of the asic than the realized PCI/AGP bus speed.

no idea how that RM trough RO came into the given macros.
Rage 128 SH/4x
#define PCI_CHIP_RAGE128SH              0x5348
missing
0x5348 == ASCII "SH"
dont know if there was ever build such a chip revison.
Rage 128 SK/4x
#define PCI_CHIP_RAGE128SK              0x534B
#define PCI_DEVICE_ID_ATI_RAGE128_RG    0x534b
0x534B == ASCII "SK"
Rage 128 4x, PCI
Rage 128 SL/4x AGP 2x
#define PCI_CHIP_RAGE128SL              0x534C
#define PCI_DEVICE_ID_ATI_RAGE128_RH    0x534c
 
0x534C == ASCII "SL"
Rage 128 4x, AGP 2x
Rage 128 SM/4x AGP 4x
#define PCI_CHIP_RAGE128SM              0x534D
#define PCI_DEVICE_ID_ATI_RAGE128_RI    0x534d
0x534D == ASCII "SM"
Rage 128 4x, AGP 4x

the 4x in the chip/card name is more of the evolution
stage of the asic than the realized PCI/AGP bus speed.

no idea how that RG trough RI came into the given macros.
 
Rage 128 4x
#define PCI_CHIP_RAGE128SN              0x534E
missing
0x534E == ASCII "SN"
dont know if there was ever build such a chip revison.
Rage 128 Pro Ultra TF
#define PCI_CHIP_RAGE128TF              0x5446
#define PCI_DEVICE_ID_ATI_RAGE128_U1    0x5446
0x5446 == ASCII "TF"
AGP 4x.
might have flat panel interface -> possibly laptop.
Rage128 series, cant tell about board name.
I cant tell if the "U1" is the correct chip name
but if considered an integrated design then might fit.
Rage 128 Pro Ultra TL
#define PCI_CHIP_RAGE128TL              0x544C
#define PCI_DEVICE_ID_ATI_RAGE128_U2    0x544C
0x544C == ASCII "TL"
AGP 4x.
might have flat panel interface -> possibly laptop.
Rage128 series, cant tell about board name.
I cant tell if the "U2" is the correct chip name
but if considered an integrated design then might fit.
Rage 128 Pro Ultra TS
#define PCI_CHIP_RAGE128TS              0x5453
missing
0x5453 == ASCII "TS"
Rage128 series, cant tell about board name.
I doubt the Ultra - it could even be a used for a
Rage Fury MAXX board codenamed Aurora (see toms hardware)
and later announced as a dual "RAGE 128 PRO" design.
 
Rage 128 Pro Ultra TT
#define PCI_CHIP_RAGE128TT              0x5454
missing
0x5454 == ASCII "TT"
Rage128 series, cant tell about board name.
I doubt the Ultra - it could even be a used for a
Rage Fury MAXX board codenamed Aurora (see toms hardware)
and later announced as a dual "RAGE 128 PRO" design.
 
Rage 128 Pro Ultra TU
#define PCI_CHIP_RAGE128TU              0x5455
missing
0x5455 == ASCII "TU"
Rage128 series, cant tell about board name.
I doubt the Ultra - it could even be a used for a
Rage Fury MAXX board codenamed Aurora (see toms hardware)
and later announced as a dual "RAGE 128 PRO" design.


as initially written, no one complained for ages,
so there is quite minor interest from users and
maybe not even hardware availabel to developer 
hands to verify those chipsets and boards in the
real world of x86 computer systems anymore.

answered in best way of what i could find about those
historic designs and what the world wide web plus the
known device id encoding rules do tell me and anyone.
anyways thats written on the fly and can be badly false 
but in the hope to contribute to discussion in a 
helpfull way.

Jon, what are you planning to do with that now?
Will your final ratio become a patch against 
the XF86-CVS or the linux kernel sources?
Will you contribute your result to e.g. yourvote.com?

-Alex.



-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01

RE: [Dri-devel] Linux kernel PCI IDs vs Xfree

From: Jon Smirl <hidden>
Date: 2003-08-10 04:20:36

What do you think about the attached patch? 

I removed this, it just looks wrong and it conflicts
with Rage128
- /* Radeon M4 */
-#define PCI_DEVICE_ID_ATI_RADEON_LE    0x4d45
-#define PCI_DEVICE_ID_ATI_RADEON_LF    0x4d46
Radeonfb wasn't using them anyway.

Updated pci_ids.h to reflect all of the Rage128 ones
from XFree.
Adjusted the aty128fb driver to reflect the new ids.
Figured out why aty128fb wouldn't modprobe and fixed
it.

I think I'm in agreement with
http://www.yourvote.com/pci but we may want to adjust
a few names. There are name strings in yourvote that
aren't in the kernel yet but someone should do an
update sooner or later.

It would probably be better to ask the card if it is
AGP or PCI. Is there any way to do this other than
using the ID table and recording it manually?

I found these diffs while working on my standalone
OpenGL.  It relies on the the framebuffer drivers to
find the hardware for it so they need to get it right.

=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

More Linux kernel PCI IDs vs Xfree - Radeon

From: Jon Smirl <hidden>
Date: 2003-08-10 06:00:06

If these lists are ok I can generate patches....

xf86PciInfo.h is missing the following ids:

4136 Radeon IGP 320M A6
4164 Radeon R300 Ad Secondary (DVI) output
4336 Radeon Mobility U1 C6
4337 Radeon IGP 340M C7
496e Radeon R250 In [Radeon 9000] (Secondary)
4c6e Radeon R250 Ln [Radeon Mobility 9000 M9]
[Secondary]
4e44 Radeon R300 ND [Radeon 9700 Pro]
4e45 Radeon R300 NE [Radeon 9500 Pro]
4e46 Radeon R300 NF [Radeon 9700]
4e47 Radeon R300 NG [FireGL X1]
4e48 Radeon R350 NH [Radeon 9800]
4e64 Radeon R300 Nd [Radeon 9700 Pro] (Secondary)
4e65 Radeon R300 Ne [Radeon 9500 Pro] (Secondary)
4e66 Radeon R300 Nf [Radeon 9700] (Secondary)
4e67 Radeon R300 Ng [FireGL X1] (Secondary)
4e68 Radeon R350 Nh [Radeon 9800] (Secondary)
CAB0 Radeon IGP or AGP bridge?

linux/pci_ids.h is missing:

4136 Radeon IGP 320M A6
4144 Radeon R300 AD [Radeon 9500 Pro]
4145 Radeon R300 AE [Radeon 9500 Pro]
4146 Radeon R300 AF [Radeon 9500 Pro]
4147 Radeon R300 AG [FireGL Z1/X1]
4164 Radeon R300 Ad Secondary (DVI) output
4336 Radeon Mobility U1 C6
4337 Radeon IGP 340M C7
496e Radeon R250 In [Radeon 9000] (Secondary)
4c64 Radeon R250 Ld [Radeon Mobility 9000 M9]
4c65 Radeon R250 Le [Radeon Mobility 9000 M9]
4c66 Radeon R250 Lf [Radeon Mobility 9000 M9]
4c67 Radeon R250 Lg [Radeon Mobility 9000 M9]
4c6e Radeon R250 Ln [Radeon Mobility 9000 M9]
[Secondary]
4e48 Radeon R350 NH [Radeon 9800]
4e64 Radeon R300 Nd [Radeon 9700 Pro] (Secondary)
4e65 Radeon R300 Ne [Radeon 9500 Pro] (Secondary)
4e66 Radeon R300 Nf [Radeon 9700] (Secondary)
4e67 Radeon R300 Ng [FireGL X1] (Secondary)
4e68 Radeon R350 Nh [Radeon 9800] (Secondary)
5148 Radeon R200 QH [Radeon 8500]
5149 Radeon R200 QI
514a Radeon R200 QJ
514b Radeon R200 QK
5168 Radeon R200 Qh
5169 Radeon R200 Qi
516a Radeon R200 Qj
516b Radeon R200 Qk



=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01

Re: [Dri-devel] Linux kernel PCI IDs vs Xfree

From: Dave Jones <hidden>
Date: 2003-08-10 14:07:27

On Sat, Aug 09, 2003 at 10:41:01PM +0200, Alexander Stohr wrote:
 > Which ones? e.g. www.yourvote.com\pci is the database
 > where the Linux kernel does get its listing.

wrong. it occasionally gets merges from http://pciids.sf.net,
though IDs also get added directly to the kernel tree without
being added 'upstream' too, so its a two-way merge process.

		Dave

-- 
 Dave Jones     http://www.codemonkey.org.uk


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01

Re: Re: [Dri-devel] Linux kernel PCI IDs vs Xfree

From: Jon Smirl <hidden>
Date: 2003-08-10 15:07:20

All of the Rage128 and Radeon IDs I am refering to in
my posts are already in http://pciids.sf.net. These
IDs are missing in various combinations from the linux
and xfree header files. I usually have to also update
the framebuffer drivers to handle the added IDs.


=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01

Two Linux framebuffer patches, Radeon and Rage128

From: Jon Smirl <hidden>
Date: 2003-08-10 21:32:38

These add all known Radeon and Rage128 PCI IDs to
their respective framebuffer drivers. It also updates
linux/pci_ids.h with these IDs.

Both drivers will display pretty_name if
CONFIG_PCI_NAMES is enabled, otherwise a name is
generated.

Please check over the chip family definitions in the
framebuffer files. The Radeon ones are more likely to
be wrong. I also made the Radeon FB claim secondary
adapters but not do anything with them. This will make
them display in /proc as being owned by the driver.
For this to work right the devices ID have to be in
the correct secondary family. I may not have these all
right since I don't have the doc.

I removed about 15 definitions from pci_ids.h that
were wrong.

The rage128 patch is newer than the last one. I had a
typo in an IFDEF. Rage128 add PCI IDs and fixes bug
when modprobe didn't work.

=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

Re: [Dri-devel] Two Linux framebuffer patches, Radeon and Rage128

From: Ian Romanick <hidden>
Date: 2003-08-10 22:44:21

Jon Smirl wrote:
These add all known Radeon and Rage128 PCI IDs to
their respective framebuffer drivers. It also updates
linux/pci_ids.h with these IDs.

Both drivers will display pretty_name if
CONFIG_PCI_NAMES is enabled, otherwise a name is
generated.

Please check over the chip family definitions in the
framebuffer files. The Radeon ones are more likely to
be wrong. I also made the Radeon FB claim secondary
adapters but not do anything with them. This will make
them display in /proc as being owned by the driver.
For this to work right the devices ID have to be in
the correct secondary family. I may not have these all
right since I don't have the doc.

I removed about 15 definitions from pci_ids.h that
were wrong.

The rage128 patch is newer than the last one. I had a
typo in an IFDEF. Rage128 add PCI IDs and fixes bug
when modprobe didn't work.
Did you see a very similar patch that I sent to dri-devel a week or two 
ago?  Isn't pci_ids.h generated automatically from drivers/pci/pci.ids? 
  The patch that I sent to dri-devel updates / cleans-up 
drivers/pci/pci.ids and had a Python script to generate a table that 
looks very similar to the radeonfb_pci_table.  It seems that 
automatically generating that data from pci.ids is a better solution 
that doing it by hand.

I think using something more like my PCI ID structure would help cut out 
some code in the Radeon FB driver because instead of just having an enum 
in the table, you could have a pointer to a structure (such as the 
correct entry in the radeon_chip_info table) that would eliminate some 
of those extra switch-statements.

My changes only cover the Radeon family.  Once that much got into DRI I 
had plans to make similar changes for the Rage128 and MGA families of chips.

Check:

http://marc.theaimsgroup.com/?l=dri-devel&m=105979521324026&w=2




-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01

Re: [Dri-devel] Two Linux framebuffer patches, Radeon and Rage128

From: Jon Smirl <hidden>
Date: 2003-08-11 03:57:43

As far as I know linux/pci_ids.h is not being
generated, it is hand built. That probably explains
why it had about 15 entries in it that were wrong for
the Radeon/Rage128.

My understanding is that drivers/pci/pci.ids is
semi-hand built. It is partially generated from
http://pciids.sf.net/ and then hand diffed. It can be
config'ed out of the kernel by unchecking PCI
Names/PCI_CONFIG_NAMES. When there are no pretty name
available from PCI names then I generate one from chip
ID and PCI ID. This name is only used to log the
sign-on message so that you know the driver loaded and
found your card.

I would like to find a more authoritative database of
which chip family the various chip IDs belong to. I
would also like to know for sure whether each is PCI,
AGP, or secondary. Is there a way to get this info
from the cards themselves and not hardcode it? It also
would be nice to have a scipt to generate the code for
the drivers, but we need a good database to run it
against.

I'm working on the embedded Mesa code. Embedded Mesa
does not use XFree xf86PciInfo.h, instead it relies on
the Linux framebuffer drivers to identify the cards
via the modules/PCI hotplug system. The Rage128/Radeon
framebuffer drivers are not heavily used so I'm being
forced to update them. 

Embedded Mesa does need chip family info and PCI/AGP
status. I should probably modifiy the framebuffer
drivers to make this info accessible. Right now the
embedded Mesa drivers regenerate it based on chip ID
thus duplicating the chip ID/family data. 

For Linux the best solution would be to simply merge
the framebuffer and 3D drivers into a single driver. A
lot of duplicated code would be eliminated. That would
solve other problems too like locking and register
stomping.


=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01

Re: [Dri-devel] Two Linux framebuffer patches, Radeon and Rage128

From: Jon Smirl <hidden>
Date: 2003-08-12 07:08:17

Update of Rage128 and Radeon PCI IDs patch. 
Adds a few more Radeon IDs from XFree code. 
Removes switch in computing name and uses table
instead.

In the kernel DEVICE_NAME_SIZE is currently defined as
50 but most of the pretty names are around 100 chars
in length. Any objections to raising DEVICE_NAME_SIZE
to 100?

=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help