you made a wonderful tutorial... just one thing is incorrect: the part about the PCI-e ... those do not refer to Slot numbers but GPU number as detected by the ADL, usually matching OCL and therefore PCI-e slots, but not always... like in the case of multi GPU cards like the ATI 5970 (dual 5870), AMD 6990 (dual 6970) or AMD 7990 (dual 7970).
In those cases the ADL could still match the OCL (or being inverted), but for sure they do not match the PCI-e slots, let me clarify that:
Let's say I have in PCI-e Slot 0 the ATI 5970 (Hemlock - with the Cypress ASICs) which is basically like two ATI 5870 in one card and I let's say I also have a AMD 7970 (Tahiti ASIC) in the PCI-e Slot 1.
(by the way the PCI-e bus address do not correspond always to the number silk-screened on the motherboard - PCI-e enumeration depending on direction of the actual connection tracks and usually goes from farthest to closest to the CPU; ADL, APP and OpenGL and OpenCL is made in software so could depend to the OS (windows, Linux, Mac, etc) and drivers version)
Now based on your assumptions to flash them I would have to type:
atiwinflash -f -p 0 5970.rom
atiwinflash -f -p 1 7970.rom
But if anybody would have done that they would have flashed the ATI 5970 Slave Cypress ASIC BIOS chip with the 7970 BIOS code and nothing on the actual AMD 7970 Tahiti BIOS chip... obviously causing problem, since one card would have half 5970 code and half 7970 code try to compete for the card control, and the other nothing, if you were trying to fix the AMD 7970 BIOS non-boot problem now you would have two cards that would not boot until you remove them and place another card that works... hopefully you have a third one.
Here is the pics to prove my point: