|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
Where to find AGP detailsGood 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: colorforth-unsubscribe@... For additional commands, e-mail: colorforth-help@... Main web page - http://www.colorforth.com |
|
|
Re: Where to find AGP detailsDear Jason,
For what it's worth, I found the Video Electronics Standards Association (VESA) publication VBE3 very useful. VESA BIOS EXTENSION (VBE Core Functions Standard Version: 3.0). If you use Linux, it has words that reveal the video addresses. Karig of CF commentary fame had an appendix on the same website which illustrates the use of VESA codes. Also the great Mark Slicker, who is no longer with us, has site with a CFO1 that incorporates VBE core functions (I wish I had access to Mark's site, to download that version; if anyone can help?) Sorry not to add more detail, but if any of the above seems worth pursuing I would try to fill in specifics. Certainly VDU has been the main cause of CF hardware incompatability in my limited experience; as Chuck wrote, you have to find that address. Caritas, Nick Quoting Jason Kemp <jason.kemp@...>: >... " 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 >... " >... " >... " but this >... " doesn't shed much light (may be I have to spend >... " more time on that though?) >... " >... " Thanks, >... " Jason >... " >... " >... " --------------------------------------------------------------------- >... " To unsubscribe, e-mail: >... " colorforth-unsubscribe@... >... " For additional commands, e-mail: >... " colorforth-help@... >... " Main web page - http://www.colorforth.com >... " -- Dr Nicolas George Maroudas Avigdor Meiri 9/1 Sea View Haifa 3 55 00 Israel Tel +972 048 337 315 **************************** A better world is not only possible but on the way. On a quiet day you can hear her breathing. - Arundhati Roy **** --------------------------------------------------------------------- To unsubscribe, e-mail: colorforth-unsubscribe@... For additional commands, e-mail: colorforth-help@... Main web page - http://www.colorforth.com |
|
|
Re: Where to find AGP detailsThanks Nick,
VBE3 looks quite manageable so I'll start there. Jason Nick Maroudas said the following on 10/09/2008 12:10: > Dear Jason, > > For what it's worth, I found the Video Electronics > Standards Association (VESA) publication VBE3 very > useful. VESA BIOS EXTENSION (VBE Core Functions > Standard Version: 3.0). If you use Linux, it has > words that reveal the video addresses. Karig of CF > commentary fame had an appendix on the same website > which illustrates the use of VESA codes. Also the great > Mark Slicker, who is no longer with us, has site with a > CFO1 that incorporates VBE core functions (I wish I had > access to Mark's site, to download that version; if > anyone can help?) > > Sorry not to add more detail, but if any of the above > seems worth pursuing I would try to fill in specifics. > Certainly VDU has been the main cause of CF hardware > incompatability in my limited experience; as Chuck > wrote, you have to find that address. > > Caritas, > > Nick > --------------------------------------------------------------------- To unsubscribe, e-mail: colorforth-unsubscribe@... For additional commands, e-mail: colorforth-help@... Main web page - http://www.colorforth.com |
|
|
Re: Where to find AGP detailsHere is a snippet on AGP from the weblogs: Anyway, I was trawling through a rather large book called "PCI System Architecture" from Addison Wesley and in the section entitled "Configuration Registers" they provide an example of how to control a PCI card using what is termed a 'capabilities list'. Guess what the example is that they used? --- AGP! No information of the 3D acceleration bit but all the information on how to turn up the speed of the AGP slot. After testing, there was a substantial increase in the amount of data I could shove accross the connection. (Depending on your system, there may be a larger or smaller increase). Top Xardfir Post subject: Re:A small tutorial in AGP speed setup PostPosted: Mon Oct 25, 2004 6:51 am So here it is - a small tutorial in AGP speed setup. I assume that you have access to the PCI specs and can read/write PCI configuration registers. If you don't, what follows isn't going to be much use. I'm assuming PCI Spec 2.2 or higher. Have no idea if these work on the PCI Ex cards coming onto the market, somehow I doubt it. Firstly, detect the AGP card using standard PCI interrogation. The device ID should be 03h with a subclass code of 02h indicating: display controller - 3D controller. Next from dword 0dh you will find the capabilities pointer. This points to a linked list of 'capabilities' a device may have. At the Dword pointed by the pointer you'll find another Dword with the following format 0-7 Capability ID 8-15 Pointer to next capability (points directly to the next capability in the list) 16 - 31 Feature Specific So what you do is follow the yellow brick list until you come to an entry with the capability ID of 02h or "AGP". By the way, power management (01h), slot id (04h), message signaled interrupts (05h), compactpci (06h) - no information provided. Once you have the appropriate capability, you can now check which AGP version you have. In the same DWord holding the Capability ID - the following bits have the following meaning: Bits 16 - 19 Minor revision Bits 20 - 23 Major revision Now that you're satisfied that you've got an AGP of the appropriate revision in custody, the next DWORD holds the AGP status register(read only unimplemented bits are 0's): Bits 0-2 AGP SPEED This indicates the data transfer rates supported by the AGP card. All data rates supported are indicated by set bits. Bit Transfer rate 0 1X 1 2X 2 4X Top Xardfir Post subject: Re:A small tutorial in AGP speed setup PostPosted: Mon Oct 25, 2004 6:51 am Bit 3 Reserved I don't have an 8X AGP card, but it wouldn't be too much to assume that this is now the 8X rate indicator bit, particularly since 16X cards will never exist due to PCI Ex. On the other hand flipping both 2X and 4X should equal 8X so....... Bit 4 Fast Writes supported. (1 - Yes) Bit 5 Addresses > 4Gbytes. (1 - Yes) This one's for 64 bit systems Mips, Sparc, PowerPC etc. Bits 8 - 6 Reserved Bit 9 Side Band Addressing supported. (1 - Yes) If supported (and activated) increases the speed of AGP accesses. Bits 10 - 23 Reserved Bits 24 - 31 Maximum depth of the AGP request queue supported. Unless you're into the 3D stuff - this is useless. OK, now we know the rates supported and the AGP's capabilities, time to speed things up. The next DWORD is the AGP Command Register where all the good stuff resides and it's format is exactly the same as the status register except for one bit - the activate AGP bit (bit 8). To increase speed, flip one (and only one) bit in the data rate section. For example to enable 4x AGP, set bit 2 of the configuration register then turn on bit 8 and - ZIPPPP, ZAPPPP, KAPOWWWW ***** 4X the data rate ***** Set the Fast-write and side-band addressing bits (if applicable) to get a little bit more speed. Be warned, some cards do not like these enabled when installed on particular chipsets (some VIA boards I believe). So there, a quick and easy way to boost video speed. Many thanks to Tom Shanley, Don Anderson and Addison Wesley for providing the information. "PCI SYSTEM ARCHITECTURE, Fourth Edition, ISBN 0-201-30974-2" I also noticed there's an "AGP ARCHITECTURE, ISBN 0-201-37964-3", *currently unavailable (like all the other AGP programming info)* - Is this some sort of conspiracy? Is there a secret government agency determined to suppress all AGP information? It's not like the PCI hardware specs or anything to do with actual AGP hardware implemenatation. All I want to do is know how to program the blasted thing! P.S. If you use the above for GUI/graphics/whatever development, I'd really be interested in the results obtained. Not necessarily a detailed analysis, just a - "Everything speeded up - happy". Quoting Jason Kemp <jason.kemp@...>: >... " 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 >... " >... " >... " but this >... " doesn't shed much light (may be I have to spend >... " more time on that though?) >... " >... " Thanks, >... " Jason >... " >... " >... " --------------------------------------------------------------------- >... " To unsubscribe, e-mail: >... " colorforth-unsubscribe@... >... " For additional commands, e-mail: >... " colorforth-help@... >... " Main web page - http://www.colorforth.com >... " -- Dr Nicolas George Maroudas Avigdor Meiri 9/1 Sea View Haifa 3 55 00 Israel Tel +972 048 337 315 **************************** A better world is not only possible but on the way. On a quiet day you can hear her breathing. - Arundhati Roy **** --------------------------------------------------------------------- To unsubscribe, e-mail: colorforth-unsubscribe@... For additional commands, e-mail: colorforth-help@... Main web page - http://www.colorforth.com |
|
|
Re: Where to find AGP detailsHere 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 <jason.kemp@...>: >... " 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 >... " >... " >... " but this >... " doesn't shed much light (may be I have to spend >... " more time on that though?) >... " >... " Thanks, >... " Jason >... " >... " --------------------------------------------------------------------- To unsubscribe, e-mail: colorforth-unsubscribe@... For additional commands, e-mail: colorforth-help@... Main web page - http://www.colorforth.com |
|
|
Re: Where to find AGP detailsThanks Nick,
Ray here-- Hi all I'm off line again. Not sure when I can return, possibly mid October, I hope. When it's a choice between meds and webs, meds win, no matter how many times you flip the w to an m and the b to a d. I've been able to get quick 30 minute sessions when I have occasion to pass the library, about 3-4 miles from the house. I can get a two hour block reserved and as soon as I have that much info to add to the wiki or what not, then I'll do that. Speaking of which... I can get to the library on foot now. This is new for me. Since the day I fell near dead at work, just about 3 years ago now, this is the farthest i've set afield, on my own. The last few months I've been building up to the task, knowing one day I might not be able to pay the cable bill. Wish I could pay the Fiber bill. It's being installed in our area currently. Can't wait for that. My Pentium 4's original Harddrive, the one that was giving me so much trouble has finally released it's magic smoke. Not having another harddrive of that size about the house, I finally settled for a very much smaller one. One I'm not able to get Windows on. I was able ( don't ask me how 'cus' it's quite involved) to get an old linux Debian Woody booted. That gave me enough tools to get a Ubuntu disk made ( how do you access the CDROM in linux again!?!?!?!?!) booted that and the very next day my cable cut me off. It's a fairly bare installation with out web. In the mean time, I've borrowed a few books on the subject from the library and I hope to be a pretty Penguin pretty soon. God - the universal spirit ( insert your favorite diety here ) seems to be trying to tell me that my computer and inter-next web connections are not going to be reliable or some such. The tea is still too cloudy to read. It is quite possible that the Ultimate Power That Is has something in-store for me to do. Like everything else, I'll have to prob'ly step in it to find it. My wife has started to put applications for new positions around. For the first time in years, I feel like I might could work somewhere outside of the house now. I can go about 4 hours with out rest or falling over dizzy now. This is very exciting for me. Much more then having a web connection. If anybody knows of a good business to start in the home, I could try that. If I had my dreams... I'd get that Charles Childers' RetroForth10, Charles, a few others, and begin to develop Forth software that will run on Everything! Everything? Everything. PDA's, Mac's, X86 windows or linux, phones.... Everything. In the past I had developed an organizer that I call UMN-FOLENDAR ( read as hUMaN Fol-e (folly) Ndar( end-er) ). It has developed over the years into a full blown product at this point and I'd like to incorporate it into RetroForth and then run on EVERYTHING! Life. Get in the game, baby! Ray On Sun, Sep 14, 2008 at 12:36 AM, Nick Maroudas <alice@...> wrote: > 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 <jason.kemp@...>: > >>... " 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: colorforth-unsubscribe@... > For additional commands, e-mail: colorforth-help@... > Main web page - http://www.colorforth.com > > -- Raymond St. Marie ii, public E-mail Ray.stmarie@... a quickstart guide http://colorforthray.info Community Blog http://colorForth.net Community Wiki http://ForthWorks.com/c4th --------------------------------------------------------------------- To unsubscribe, e-mail: colorforth-unsubscribe@... For additional commands, e-mail: colorforth-help@... Main web page - http://www.colorforth.com |
|
|
Re: Where to find AGP detailsHi 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 <jason.kemp@...>: > > >> ... " 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: colorforth-unsubscribe@... > For additional commands, e-mail: colorforth-help@... > Main web page - http://www.colorforth.com > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: colorforth-unsubscribe@... For additional commands, e-mail: colorforth-help@... Main web page - http://www.colorforth.com |
| Free embeddable forum powered by Nabble | Forum Help |