As far as I understand it the microcode embedded in the firmware or for that matter in the operating system is only needed to address any errata (bugs in the processor detected after production) - it should really only be needed for a proper boot if there is a severe issue preventing the OS to run properly with the original microcode. Of course in order to fix Spectre, microcode updates would be needed.
To the contrary, if you upload the wrong microcode the processor may stop working properly.
I have spend some time reading through the data sheets of the
XEON 5300 and
XEON 5400.
There is a difference in the use of TESTHI* PINs, which may create an issue as unused (reserved) pins are supposed to be left open while the TESTHI*-Pins are supposed to be terminated by dedicated resistors.
Code:
XEON 5300 XEON 5400
Signal Name Pin # Type Signal Name Pin # Type
RESERVED AE3 TESTHI12 AE3 Power/Other Input
TESTHI00 F26 Power/Other Input RESERVED F26
TESTHI01 W3 Power/Other Input RESERVED W3
TESTHI02 F25 Power/Other Input RESERVED F25
TESTHI03 G25 Power/Other Input RESERVED G25
TESTHI04 G27 Power/Other Input RESERVED G27
TESTHI05 G26 Power/Other Input RESERVED G26
TESTHI06 G24 Power/Other Input RESERVED G24
TESTHI07 F24 Power/Other Input RESERVED F24
Core Voltages are also different due to different lithography (65nm vs. 45 nm), but both refer to the same voltage regulator specification and hence Xeon 5400 should work in MacPro 1,1/2,1 even though its core voltage is 0.85V-1.35V compared to 1.00V-1,50V for the Xeon 5300.
There is also a different code posted on the two pins MS_ID0 and MS_ID 1 (Market Segment Selection), which might be read by the firmware or SMC and used to block certain processors (XEON 5300 posts 0b10, XEON 5400 posts 0b11 on these two pins).
There might also be a difference in the MSRs (machine specific registers), but I don´t have time to review those right now. They are described in the
Intel® 64 and IA-32 Architectures Developer's Manual (Volume 4, Chapter 2) if someone is interested. Those need to be properly initialized by the EFI firmware.
There is also another key difference between the MacPro 1,1/2,1 and Mac3,1: Only the MacPro 3,1 has a 64Bit EFI, MacPro 1,1 and 2,1 still have 32Bit EFI, despite using 64Bit processors. That could explain the weird behaviour when adding microcode extracted from later MacPro´s firmware.
Based on that I am afraid using a Harpertown Processor in the MacPro1,1/Mac2,1 will not be a walk in the park and besides changes to the EFI changes to the mainboard may also be needed.
Embedding the latest microcode is then the icing on the cake, by itself I don´t think it will enable the use of a specific processor.