[colorforth] PCI chipset bug causes display failure...
- Subject: [colorforth] PCI chipset bug causes display failure...
- From: "howerd.oakford" <howerd.oakford@xxxxxxxxxxxx>
- Date: Sun, 10 Jul 2005 01:40:59 +0100
- Importance: Normal
Hi,
From comp.lang.forth, in case you missed it :
From: "Howerd" <howerdo@xxxxxxxxxxx>
Newsgroups: comp.lang.forth
Subject: Re: ANN: PCIdev - PCI device viewer ( new and improved )
Date: Sat, 09 Jul 2005 17:35:36 -0700
Hi Albert & John,
THANK YOU BOTH!!! I took a look at the Linux sources and...
Albert: you are mostly right - lspci uses hardware access, but - from
i386-ports.c ( used in the libpci library ) :
/*
* Before we decide to use direct hardware access mechanisms, we try to
do some
* trivial checks to ensure it at least _seems_ to be working -- we
just test
* whether bus 00 contains a host bridge (this is similar to checking
* techniques used in XFree86, but ours should be more reliable since
we
* attempt to make use of direct access hints provided by the PCI
BIOS).
*
* This should be close to trivial, but it isn't, because there are
buggy
* chipsets (yes, you guessed it, by Intel and Compaq) that have no
class ID.
*/
The last two lines are critical : could this be why the versions of
colorForth that scan the PCI bus for the video card's RAM address don't
work??? I believe the code scans for a class code 3 ( Display ).
So, if any of you have a PC that refuses to run colorForth, could you
please run PCIdev on it and report whether it finds any Class 3
devices...
Somehow the PCI BIOS must know about these brain-dead chips.
From Chuck's original gen.asm :
dev: mov EAX, 80001008h ; Find display, start at device 2
mov ECX, 31-1 ; end with AGP: 10008, bus 1, dev 0
@@: DUP_
call north
and EAX, 0ff000000h
cmp EAX, 3000000h
DROP
jz @f
add EAX, 800h
next @b
@@: ret
This must also mean that our Linux friends have mastered the art of
accessing the PCI BIOS from protected mode. It looks like I will have
to dig into the sources some more...
I am amazed that PCI chipset manufacturers could get the first, most
fundamental ID wrong. Thanks again to the Linux developers 8^)
*!*"*£% !*"&£(^!
Howerd 8^o
Albert van der Horst wrote:
> In article <1120893158.735559.13860@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
> Howerd <howerdo@xxxxxxxxxxx> wrote:
> >Hi John,
> >
> >John Passaniti wrote:
> >> Howerd wrote:
> >> > Announcing PCI.exe and PCI.f, a PCI viewer program, supplied as ANS
> >> > Forth source and a turnkeyed application :
> >
> >> Although I'm not suggesting your effort was wasted, an alternative way
> >> to do the same thing would be to use one of the run-from-CD Linux
> >> distributions and poke around under /proc and use utilities like lspci.
> >Thanks for the pointer - yet another reason to thank those Linux
> >lads...
> >
> >PCIdev uses direct hardware access to display information about PCI
> >devices - as far as I know all similar apps use BIOS calls.
> >This is, of course,
so that I can port it to colorForth...
>
> Linux speedily passes into protected mode, so I severely doubt that
> much BIOS-calling is going on.
>
> >
> >Regards
> >
> >Howerd 8^)
> >
>
>
> --
> --
> Albert van der Horst,Oranjestr 8,3511 RA UTRECHT,THE NETHERLANDS
> Economic growth -- like all pyramid schemes -- ultimately falters.
> albert@xxxxxxxxxxxxxxxxxx http://home.hccnet.nl/a.w.m.van.der.horst
---------------------------------------------------------------------
To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
Main web page - http://www.colorforth.com