0

I want to let the Bios POST process believe a graphics card is installed. The need arises because somebody not so clever has decided that boards with no active video card are not supposed to boot. This has been addressed in other questions before, most in-depth: Does a modern PC require a graphics card to run?

My understanding of BIOS/Hardware interaction is such that the Bios identifies the species of hardware at a very rudimentary level of communication, furthermore there are not many channels where such communication could take place (I suspect pin 7 A-side against ground). While for USB Devices the codes identifying the nature of the device are easy to find on the web for PCIe devices this seems to be a well guarded secret or rather obfuscated by trivia. However, this must be textbook knowledge so I would be glad if someone knows where this is specified or better how this works in practice.

I do know that I can boot the board past the bios, pull the graphics card out and plug a SATA adapter in. After all PCIe is hot-plug capable so this is how it is supposed to work. But doing this makes rebooting sort of a chore sometimes causing me to delay updates to the point were I need to reboot anyway for some other reason.

7
  • Sure if you know how to hack that particular bios. Not for the faint at heart as you can brick the motherboard if done wrong.
    – Moab
    Sep 28, 2015 at 22:55
  • I don't don't think there is any software modification necessary.
    – nonsense
    Sep 29, 2015 at 0:12
  • at least I hope not. If there is contact between PRSNT1 and PRSNT2 the board will give power to the card. Then the Bios is listening somewhere. Now I need it to hear "graphics card". The plan was to either use some cheap micro somethin that sens a hex code or similiar. In the worst case I will have to solder lines from an actual graphics card, but that seems sort of overkill. But then it would be the simplest solution, but not very neat.
    – nonsense
    Sep 29, 2015 at 0:20
  • You're making a problem out of nothing. Knowing that your motherboard won't boot without a graphics card, the simplest, safest, and cheapest solution is to install a graphics card. It can be cheap card, it can be a second hand card. Problem solved.
    – misha256
    Sep 29, 2015 at 1:40
  • Or get a motherboard that will boot without a graphics card. Even that will be cheaper and easier than fabbing up a PCIe graphics card simulator. Sep 29, 2015 at 1:55

1 Answer 1

2

USB and PCI device identification are actually very similar. In PCI's case (PCIe is the same) the info is in the PCI configuration header. These appear in physical address space in predictable, hence ennumerable, locations.

The format of the config header is very public. There is a vendor code, a product ID, a subsystem ID, and a revision number. There's also a "class" code. Graphics cards are class 030000. USB and PCI even use the same set of vendor codes - for example vendor 0x8086 is Intel.

This is what the firmware looks for. You are not going to be able to fool it by connecting a couple of pins together. You'll need the skeleton of a standard PCIe target device that responds to queries with a populated configuration header.

Worse: I do not think that fabbing up a "simple" PCIe device that lies about its device ID and class code will be sufficient. Your firmware is going to want to talk to that graphics card with the standard VGA register interface, and that's not going to work.

4
  • Well, thanks. If that is the case the whole process will probably be solved by getting a graphics card looped into a riser arrangement and then simply powering the cards on and off. Well, if the lid is on no one can see it. At first I thought that you could probably just buy adapters that get plugged in between that do this job. Surely it can't be that hard to teach a microprocessor to claim to be a graphics card. Well, cheers anyway.
    – nonsense
    Sep 29, 2015 at 2:37
  • You can't just "claim to be a graphics card". You have to act enough like a graphics card that the BIOS's manipulation of the standard VGA register-level interface won't fail. Sep 29, 2015 at 2:46
  • I include this in claiming. I might be naive but I simply can't see why you couldn't just replicate all the responses.
    – nonsense
    Sep 29, 2015 at 2:48
  • 1
    "Replicate all the responses". A video card is an extremely stateful device - one might say it has as many states as it has possible VRAM content. And its responses depend on the state. To do this sufficiently you've basically built a video card except for the VRam-to- display output part. Sep 29, 2015 at 3:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .