Page 1 of 1

Expansion ROM hacking on PCI Express ?

Posted: Mon Jul 30, 2007 5:02 pm
by pipomolo42
Hi,

I have a machine which only has PCI-E slots and on which I would need to do a bit of Expansion ROM hacking.

I have one graphic card (Nvidia 7300GS) available, on which I could try it, but I'm a bit affraid that it could fry it (maybe by not setting the card's GPU and RAM clocks as it should normally do).

Or else, could someone point me to a _cheap_ PCI-E card I could get, whose Expansion ROM is known to be easily writable ?

For a longer story, I have a Mac Pro, and I currently think that this would be the easiest way to get it to boot in RAID mode (Apple's EFI does not include the Expansion ROM, and I will also have to patch the Rom before flashing it, to switch the ESB2 IDE Controller to RAID mode)

Thanks in advance,
Alex

Posted: Tue Jul 31, 2007 11:22 am
by pipomolo42
Err, actually, what I wanted to try was to put the expansion rom of one of my pci devices in the physical rom of another device ... but I guess that this will just not work, unless the expansion rom also heavily patches the bios. Can someone confim ?

Posted: Tue Jul 31, 2007 5:11 pm
by cp
should be no problem at all..you can even insert some totally random code into the bios and let it do the rest. you just have to make sure that the modules follow a specific format. more information can be found on:
http://www.fitzenreiter.de/ata/ata_eng.htm

Posted: Tue Jul 31, 2007 7:24 pm
by pipomolo42
Hello,

I've read about the ata secutity extension already, but this is code unrelated to the pci device it resides on ... What I need to do is loading the extension rom for one device from another device.

And I don't understand yet how else one extenstion rom could be related to one specific device, so I'm not sure it'spossible.


Alex

Posted: Wed Aug 01, 2007 8:01 am
by cp
the code doesn't have to be related to the device it runs from. the ata security module isn't device specific to any device in the system and you can run it from the mainboard's bios or from another pci device (network card's boot rom). there are mainboard with a dedicated vga device onboard, so the vga bios has to be inside the mainboard's bios. and actually it is.. the bios just executes the extension code and the code itself takes care of the rest. so if you would insert a copy of your (let's say) scsi bios into your mainboard's bios and remove the bios from the actual card it wouldn't make a difference for the system.

Posted: Thu Aug 02, 2007 7:37 pm
by pipomolo42
Actually, I'm now thinking that the vga bios is not a "normal" pci expansion rom, as the double at address 0x30 of the pci config space of my graphic cards are all set to 0x00000000 ... but I think I still need to read more bios specs, to understand what I can or cannot do with it.

The ESB2 controller can also have its own eeprom. If I'm lucky, it's actually on my motherboard and just filled with 0x00 currently ... else, I don't really feel like soldering one on my board.

Posted: Fri Aug 03, 2007 7:53 am
by cp
please read this fine source of information :
http://www.geocities.com/mamanzip/Artic ... n_ROM.html

the vga roms i have (around 50 different) all look as described in the article.

Posted: Fri Aug 03, 2007 11:09 pm
by pipomolo42
Actually, I was not concerned about the format of the vga roms, but rather if and when they get executed by the bios (as it seems to me that only the "first" vga bios gets executed, and at an earlier stage than, say, an etherboot image)

Posted: Tue Aug 14, 2007 2:34 pm
by maman
Yes, only one of the VGA BIOS always executed. Moreover, it's the first expansion ROM that's executed.

You may want to read:
Low Cost Embedded x86 Teaching Tool

If you feel confused, start from the beginning of the article.