On Sun, 2012-05-20 at 11:23 +0300, Kyösti Mälkki wrote:
Hi
I did not find this method of bypassing the mainboard flash chip and booting from PCI add-on card documented or discussed before. The nice think in this is that neither mainboard or its flash needs to be modified. Good news in the case of a soldered flash and this method may work with mini-PCI slots on laptops too.
For pre-ICH6 the key is in subtractive PCI decode. This has been supported in 82801 chipset from the early days and is briefly documented in ICH3 datasheet [1], see 5.1.1. PCI Bus interface. This decode mode is on by default and there is no documentation of a hw bootstrap that could disable it.
Above is not accurate, ICH6 has hardware bootstrap.
For ICH7 onwards there are HW bootstraps to select between LPC/SPI/PCI. If you don't know where the bootstraps are, go with SPI and forget about this PCI add-on boot.
The bootstrap is latched on power cycle, but not PCI reset, and the config bit is writeable. So if one has a booting system it should be possible to switch to PCI add-on for next reboot. The setting will default back to mainboard flash after power-cycle.
Note that "hard/cold" reboot is required to toggle the PCI RST#. If vendor BIOS does set the write-protection lock bit, it should be cleared on PCI RST#. At least for ICH4 that is the case.
Kyösti