Hi, Maybe there is a way to do without the emulation layer altogether: Since in our case we use PCI graphics, I can record all the PCI cycles made by the VGA BIOS to the graphic card on a BIOS based system (using a PCI analyser), put them into a listing, run a perl script on it and include them in the firmware of the non BIOS system....an redo the process whenever we need to use a different graphic which doesn't happen very often -jf simon
I think a sure way is to record all the PCI cycles generated by the VGA BIOS jean-francois simon jfaslist@yahoo.fr a écrit : Those legacy IO ports are NOT necessary mapped to the PCI IO address. Some VGA card does and some others come with some kind of remapping or offset. Your system chipset should have a way to map legacy VGA IO ports to memory address. You have to read the doc to the PPC chipset carefully to find it out.
I have read the chipset doc and there is no such VGA support. But could you plse explain more on the different ways for VGA cards to map the VGA registers? Since the registers are located on a PCI agent (the graphic card), there must be a way to access them by generating PCI cycles? Thanks -jf simon
--------------------------------- Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. Cliquez ici.
jean-francois simon wrote:
Hi, Maybe there is a way to do without the emulation layer altogether: Since in our case we use PCI graphics, I can record all the PCI cycles made by the VGA BIOS to the graphic card on a BIOS based system (using a PCI analyser), put them into a listing, run a perl script on it and include them in the firmware of the non BIOS system....an redo the process whenever we need to use a different graphic which doesn't happen very often
we've had poor luck with that approach. Plus, even in graphics card of same model, memory programming can change quite a bit between cards. I am not sure this will work.
ron
Ronald G Minnich wrote:
jean-francois simon wrote:
Hi, Maybe there is a way to do without the emulation layer altogether: Since in our case we use PCI graphics, I can record all the PCI cycles made by the VGA BIOS to the graphic card on a BIOS based system (using a PCI analyser), put them into a listing, run a perl script on it and include them in the firmware of the non BIOS system....an redo the process whenever we need to use a different graphic which doesn't happen very often
we've had poor luck with that approach. Plus, even in graphics card of same model, memory programming can change quite a bit between cards. I am not sure this will work.
ron
Thanks. I'll give it a quick try. If it works I'll let you know. -jfs
___________________________________________________________________________ D�couvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/R�ponses pour partager vos connaissances, vos opinions et vos exp�riences. http://fr.answers.yahoo.com
jf simon wrote:
Ronald G Minnich wrote:
jean-francois simon wrote:
Hi, Maybe there is a way to do without the emulation layer altogether: Since in our case we use PCI graphics, I can record all the PCI cycles made by the VGA BIOS to the graphic card on a BIOS based system (using a PCI analyser), put them into a listing, run a perl script on it and include them in the firmware of the non BIOS system....an redo the process whenever we need to use a different graphic which doesn't happen very often
we've had poor luck with that approach. Plus, even in graphics card of same model, memory programming can change quite a bit between cards. I am not sure this will work.
ron
Thanks. I'll give it a quick try. If it works I'll let you know. -jfs
keep in mind that, if it works on one *instance* of a card from vendor X, it may fail on the same model card from vendor X, purchased on the same day, from the same store, on the same shelf.
PC hardware is wonderful.
ron
Ronald G Minnich wrote:
keep in mind that, if it works on one *instance* of a card from vendor X, it may fail on the same model card from vendor X, purchased on the same day, from the same store, on the same shelf.
PC hardware is wonderful.
Thanks. I will run a trace and see first how large it is (100's or 1000's of cycles). Maybe there are pci cycles that are checking from flags to be set on the vga chipset, and these could explain the behavior differences you are mentionning, in case the flags hasn't changed to the expected value before the init process goes on. Or timings between cycles that need to be respected. I think I can write some perl script that will extract these informations from the analyser trace and produce the right C code. I hope the pci graphic card doesn't rise interrupts during that process though.. -jfs
___________________________________________________________________________ Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. http://fr.answers.yahoo.com
On Wed, 2006-09-06 at 07:47 +0200, jean-francois simon wrote:
Hi, Maybe there is a way to do without the emulation layer altogether: Since in our case we use PCI graphics, I can record all the PCI cycles made by the VGA BIOS to the graphic card on a BIOS based system (using a PCI analyser), put them into a listing, run a perl script on it and include them in the firmware of the non BIOS system....an redo the process whenever we need to use a different graphic which doesn't happen very often -jf simon
Unfortunately, this is no going to work. The VGA BIOS still use the legacy IO ports. All you will get in the listing is in/out to port 0x3xx. You just have to figure out how to forward IO to legacy ports.
Ollie
ollie wrote:
Unfortunately, this is no going to work. The VGA BIOS still use the legacy IO ports. All you will get in the listing is in/out to port 0x3xx. You just have to figure out how to forward IO to legacy ports.
Ollie
If you snoop the PCI bus right on the PCI slot for the graphic card, you see "real" pci i/o cycles bound to the PCI i/o BAR of the graphic card. If the address is outside of the BAR the access will not be decoded byte graphic PCI agent, I would think. -jf simon
___________________________________________________________________________ Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences. http://fr.answers.yahoo.com