home .. forth .. colorforth mail list archive ..

[colorforth] PCI chipset bug causes display failure...


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