Re: Where to find AGP details
Jason Kemp <[email protected]> Tue, 23 Sep 2008 22:18:56 +0100
| Newsgroups | gmane.comp.lang.forth.colorforth |
|---|---|
| Message-ID | <[email protected]> |
Hi Nick,
Thanks for that. Sorry for not replying sooner but I've been off on my
summer hols; caravan in sunny Devon (I think we managed to get the only
week of sun Britain's had this year).
Jason
Nick Maroudas said the following on 14/09/2008 07:36:
> Here is another snippet on PCI details - from a
> tutorial
> that Ray and I are working on.
>
> A Tutorial on the PCI block 46
> ___________________{{_________
>
> The pci bus is the one that most other PCI devices hang
> from: graphics, souncard, ethernet, usb, etc. The PCI
> ADDRESS system is a bit confusing at first, but Chuck's
> code is elegantly simple. Also, he has set it out
> better in his original CF of 2001 than in his later
> release of 2005. Accordingly, we shall start with
> block 46 of CF01 and show how this explains some things
> in CF05.
>
> Firstly, to address any pci device, one has to WRITE
> its
> REGISTER ADDRESS into pci bus port CF8 then R/W data
> to/from that device register via pci bus port CFC
>
> By register address we mean the address (on the bus) of
> any one of the 64 (or 256?) registers which belong to
> (are bound to) a particular pci device. So Chuck, in
> CF01, defines the word ADD (for pci ADDress)
>
> : ADD CF8 a! CFC a! ;
>
> which loads the COLORFORTH address register (a!) with
> the PCI bus addresses cf8 and cfc.
>
> Now suppose we wish to query one of a particular
> device's registers (say the one at regaddr) and read
> its data. CF01 has the word Q (for Query); it adds a
> 1 to the msb of regadr then puts the resultant 4byte
> regadr into cf8 and fetches the 4byte regdata from cfc
>
> regaddr-- : Q 80000000 + ADD 4@ ; --regdata
>
> Now, as a dangerous tutorial exercise, we can define
> our own word P to write our data to a device register
>
> regdata regadr-- : P 80000000 + ADD 4! ;
>
> Now that we know about CFO1, we can appreciate what is
> happening on block 46 of CF05. Firstly, regaddr has
> been redefined as a 4byte address 8regaddr so its msb
> is already set. Accordingly Q has been redefined as
> PCI which does the same query job
>
> 8regaddr-- <PCI> --regdata
>
> But where is this new word PCI defined? Unfortunately
> not in block 46; it must have been written somewhere
> else in assembly code - a retrograde step from CF01.
> On the other hand CF05 has a new word PCI! which does
> the same put job as our P above
>
> regdata 8regaddr-- : PCI! pci drop 4! ;
>
> The reason why PCI is predefined in assembly in CF05
> might be that CF05 begins with a new block 20 for USB
> which needs PCI - but CF words for PCI will only come
> later, in block 46.
>
> Incidentally the word "k" in CF05 46, which is supposed
> to find
> all the PCI devices, does not find the USB controller
> on
> my new
> Intel board. This is because CF05 has been set to
> search in steps
> of 800h (like CF01); I soon found this USB controller
> by
> searching
> upwards in steps of 200, and adjusted the address "USB"
> in block
> 46 accordingly. But there was no difficulty with
> finding the AGP
> video card on my old ASUS P2 with "k", and its
> registers
> with "ok" after putting the right address into the
> variable "AGP". Nor was there much problem adjusting
> for the nVidia Force video card in my new Intel board.
> Once the address had been found (by Linux) I added the
> following word to block 30:
>
> : display 40000000 3e8 ! ; display
>
> I guess CF address 3E8 must hold the display address, in
> Josh's CF05 image that I use.
>
> Hope it helps - anyway, got that off my chest,
>
> Nick
>
>
> Quoting Jason Kemp <[email protected]>:
>
>
>> ... " Good morning all,
>> ... "
>> ... " I am trying to understand a little about how the
>> ... " AGP works. How are the
>> ... " AGP memory addresses determined? 0x0f0000000 is
>> ... " for a fujitsu,
>> ... " 0xE8000000 seems to work on my ATI with Josh
>> ... " Grams's 2005 source. Can
>> ... " anyone please point me to a datasheet or article
>> ... " that explains AGP
>> ... " configuration, or is this more a BIOS set-up
>> ... " thing? It appears that ATI
>> ... " don't give away any technical info. I've found
>> ... "
>> ... "
>>
> http://download.intel.com/design/chipsets/datashts/25302704.pdf
>
>> ... " but this
>> ... " doesn't shed much light (may be I have to spend
>> ... " more time on that though?)
>> ... "
>> ... " Thanks,
>> ... " Jason
>> ... "
>> ... "
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> Main web page - http://www.colorforth.com
>
>
>
>