Skip to contentSkip to conversation

help regarding powerpc and vga card]

Fwd: Re: sudheer 2 participants 2 messages Jul 14, 2006

lore
Share & tools
lore

sudheer

author
#0 lore raw

Hello Sivasankar,

Quoted 20 lines · sudheer

Hello Sivasankar,

Quoted 15 lines · Sivasankar Chander

On 7/13/06, *sudheer* <[email protected] <mailto:[email protected]>> wrote:

Anyone please help me if i am missing anything.

All PCI VGA cards for use on x86 PCs have a ROMscan BIOS
extension on them. This initializes the card after POST - basically, the motherboard BIOS transfers control to the BIOS on the PCI VGA card, which then initializes itself. If control is not transfered to the VGA BIOS on the card, the VGA controller stays isolated and will not respond to PCI device enumeration, etc.

I have a doubt here. How does the processor know that the card sitting here is a vga card
and control should be transfered to initialize it. I think it can know that it is a vga card only by reading the config space . And bios is necesary for vga card to work in its normal way. Is it necesary for bios to be initialised to get detected. Please correct me if i am wrong.

Quoted 15 lines
Quoted 4 lines

This is actually part of the PC-98 spec., which allows multiple VGA controllers to co-exist on the PCI and/or AGP bus.

Quoted 9 lines

On a PowerPC system, the ROMscan BIOS cannot execute
(because it has x86 instructions in it), so there will be an alternate way to initialize the VGA controller so that it can respond to the PCI enumeration, etc. However, that method will be card/controller specific - neither the card manufacturer nor ATI may ever have released the specs for how this is done. Usually, it will be through hidden memory-mapped IO (MMIO) registers on the VGA controller chip, but there are numerous proprietary ways to implement this, most of it being undocumented or controller-specific.

Quoted 15 lines

Thanks for your information.
Could anyone please suggest me which vga card i need to buy so that it can be supported with powerpc boards and available in the market. Or can i have any other alternative solution .

Thanks & Regards
Sudheer

Quoted 7 lines

(Lots of things are taken for granted in the x86 PC world, which are actually very complex and difficult-to-implement protocols. That's one of the reasons why all the alternative PC processor architectures have failed over the last 20 years).

-Siva

Thanks & Regards
Sudheer
_______________________________________________
To unsubscribe, email [email protected] with "unsubscribe <password> <address>" in the subject or body of the message. http://www.ae.iitm.ac.in/mailman/listinfo/ilugc

#1 lore raw
Quoted 15 lines

>> All PCI VGA cards for use on x86 PCs have a ROMscan
BIOS
>> extension on them. This initializes the card after POST - basically,
>> the motherboard BIOS transfers control to the BIOS on the >> PCI VGA card, which then initializes itself. If control is not
>> transfered to the VGA BIOS on the card, the VGA controller >> stays isolated and will not respond to PCI device enumeration,
>> etc.
>
I have a doubt here. How does the processor know that the card sitting

Quoted 8 lines

here is a vga card
and control should be transfered to initialize it. I think it can know
that it is a vga card only by reading the config space . And bios is necesary for vga card to work in its normal way. Is it
necesary for bios to be initialised to get detected. Please correct me if i am wrong.

You are not wrong (though your mailer sucks). The initial poster seems to be a bit confused.

All PCI video cards (VGA or not) shall respond to PCI config spaces normally. They can be enumerated, and if they carry a BIOS image (or any other firmware support like an Open Firmware F-Code driver), it should be accessible via the standard PCI expansion ROM BAR.

There is no such thing as "the VGA controller stays isolated" or whatever sort of crap. However, it is true that the video card needs to be initialized to be able to actually output anything useful, and depending on the chip, it's generically a complex procedure involving setting up all sorts of PLLs, initializing the card's memory controller and performing the appropriate SDRAM init sequence, initializing the various external chips like TMDS transmitters on the card etc etc...

That is normally done by the card's firmware which generally sits in the card's PCI expansion ROM (not always though, it's getting common nowadays on x86 laptops for example to have the video card's BIOS mixes with the main BIOS to save a flash chip). The most common type of firmware is indeed an x86 video BIOS, which can run on non-x86 platforms through an emulator like x86emu (a common practice, works fairly well afaik).

Note that what that BIOS does it to poke the card's registers, which are accessible via the card's normal PCI BARs :) At least most of the time. Some cards do indeed require some use of the legacy VGA registers for initialization, which means issuing IO cycles on the bus to fixed VGA addresses, but that's pretty much irrelevant.