Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
TL;DR
  1. EFI implements the boot picker application and the "Setup Interpreter" IFR browser as one application they call the Boot Manager. Some of the relevant code is located in the file BootManager.c
  2. We could use the Boot Manager application from QEMU select the boot device and access the hidden BIOS settings. If that fails, we might try to extract the boot manager application from some Intel Server Board from around 2008 and launch it from the EFI shell on a Mac.
Long version: I am trying to gain a general understanding on how the Boot Manager, the Human Interface Infrastructure and whatever Graphics Output Protocol are put together to create the boot picker and setup interfaces. So far I have found out very little.

Searching Google for "Internal Form Representation" produces only one relevant result: the Intel® Platform Innovation Framework for EFI Human Interface Infrastructure Specification Version 0.9 from September 16, 2003. I read through the text sections and it did not make me any wiser. Useless blabber about Unicode, Japanese input methods and all 65535 Unicode glyphs taking up 2.5 MB of flash space.

....


First of all hi. I joined on here because I'm particularly interested in this discussion. I have a MP1,1 and I have it running El Capitan without the upgrade SMC/EFI flashes and it has the original dual core procs.

I would like to get it to run coreboot and load an apple EFI payload and am looking at how to work on a system for doing this. I have not done this sort of thing before.. apart from a few GOP related things with a Thinkpad laptop and loading intel graphics for an unsupported ivy bridge cpu (it was sandy bridge only originally.) But I'm not sure how PCIe and apple handles this difgferently.

I did also manage to find the CD firmware flasher (I guess you guys found it I stumbled upon this thread early and have spend a few hours reading through trying to catch up with the work that was done.)

As it was noted, coreboot used to have some kind of support for the intel "5000X" and "5000P" chipsets. (They are rather similar revisions of the same chipset by intel. "i5000" as referenced by coreboot.)

I'm not sure what the issue is you were having with ram init but it seems to have some of the work done in the code.

I am noting that there is the lspci info available so we can see that there is a second chipset that talks to the 5000x. Intels datasheets seem to reference it and have info about the registers and where top of memory is etc.

I would also like to note that MrChromeBox has a TianoCore implementation that "just compiles and runs" from coreboot that is a good starting place, along with the pike r alpha macosx efi boot implementation that is available on github.

Generally it seems that the issue is the GOP driver loading and 64 bits.

I see you Are also mentioning CPU microcodes, but I'm not sure what the reason is here for the LGA771 socket that there is a need for microcodes or is this the MP3,1 that is being hacked?


EDIT:

I haven't had a good chance to poke around at the EFI and maybe it can be run in QEMU in part or whole. I also see that there is the UEFI reverse tools that allow running as a PE in linux.

This may be something cutter and ghidra can be of use with. https://cutter.re/

EDIT 2:

My understanding is that UGA Draw and GOP are what apple has used in EFI 1.10. Specifically GOP is 64 bits and UGA Draw is used by Intel for the UEFI 1.10 implementation.

UGA or GOP are loaded after memory initialization when things are being handed off to the CPU, so before the EFI drivers stage, graphics output begins with a gray screen (Coreboot also implements the GPU drivers for several boards so you can look there about what stages GPU is generally initialized in.) <--- it really depends on the platform and I doubt that Xeon has support for running GOP drivers at the SEC/PEI stage but it might.

Coreboot generally only runs the SEC/PEI stage so will load microcode and do ram init and any other litthe things and hand the cpu off with the payload (Bios, EFI or GRUB etc...)


And I think coreboot is the way to go here.

EDIT 3:

Especially be aware that coreboot has support for EHCI USB debug. Namely their SerialICE implementation, which supports the onboard southbridge/USB controller if you have only a High Speed OTG device (Beagle Bone Black, FT2232H or Raspberry Pi ZERO or 4.) which can run early debug before the CPU is initialized on the board (The EC) and early printk in linux as well.


EDIT 4:

I also want to note that after looking through the Intel spec sheets, the best CPU that seems to be supported by the 5000x is actually the Harpertown Xeon X5470. The reason for this is that all of the later Xeons are sporting a 1600MHz FSB and the 5000X only supports a 1333 FSB CPU. Thus that will be the limiting factor unless there is a way to set a multiplier to the FSB in the Xeon that will enable the 1333 FSB (for example on a Core 2 Xeon Q)

Of course this would make no practical difference as it would NOT allow for use of a 1600MHz FSB, DDR3 modules as the 3,1 supports, nor any of the hyperthreading of later Intel Xeon CPUs that don't fit the socket.

It has no practical benefit over the Xeon X5470.

EDIT 5:

You can see this is the Binwalk output of the actual EFI for MP11 in the firmware CD 1.4:

Code:
trusted@nebula:~/code/macos/FirmwareRestorationCD1.4$ binwalk MP11_005C_04B.fd

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             UEFI PI Firmware Volume, volume size: 1572864, header size: 0, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
1572864       0x180000        UEFI PI Firmware Volume, volume size: 16384, header size: 0, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
1589248       0x184000        UEFI PI Firmware Volume, volume size: 49152, header size: 0, revision: 0, GUID: 00000000-0000-0000-0000-000000000000
1589504       0x184100        Intel x86 or x64 microcode, sig 0x000006f0, pf_mask 0x04, 2005-08-18, rev 0x0005, size 4096
1593600       0x185100        Intel x86 or x64 microcode, sig 0x000006f1, pf_mask 0x27, 2005-10-10, rev 0x0011, size 4096
1597696       0x186100        Intel x86 or x64 microcode, sig 0x000006f4, pf_mask 0xf5, 2006-03-12, rev 0x0026, size 4096
1601792       0x187100        Intel x86 or x64 microcode, sig 0x000006f5, pf_mask 0x04, 2006-05-01, rev 0x0033, size 4096
1605888       0x188100        Intel x86 or x64 microcode, sig 0x000006f6, pf_mask 0x04, 2006-05-23, rev 0x0044, size 4096
1638400       0x190000        UEFI PI Firmware Volume, volume size: 196608, header size: 0, revision: 0, Variable Storage, GUID: FFF12B8D-7696-4C8B-85A9-2747075B4F50
1835008       0x1C0000        UEFI PI Firmware Volume, volume size: 262144, header size: 1, revision: 0, EFI Firmware File System, GUID: 7A9354D9-0468-444A-CE81-0BF617D890DF
1835108       0x1C0064        Microsoft executable, portable (PE)
1842284       0x1C1C6C        Microsoft executable, portable (PE)
1844236       0x1C240C        Microsoft executable, portable (PE)
1846180       0x1C2BA4        Microsoft executable, portable (PE)
1847300       0x1C3004        Microsoft executable, portable (PE)
1851363       0x1C3FE3        mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: 8bit
1852260       0x1C4364        Microsoft executable, portable (PE)
1853980       0x1C4A1C        Microsoft executable, portable (PE)
1855804       0x1C513C        Microsoft executable, portable (PE)
1856548       0x1C5424        Microsoft executable, portable (PE)
1860612       0x1C6404        Microsoft executable, portable (PE)
1862852       0x1C6CC4        Microsoft executable, portable (PE)
1865292       0x1C764C        Microsoft executable, portable (PE)
1866508       0x1C7B0C        Microsoft executable, portable (PE)
1868912       0x1C8470        Microsoft executable, portable (PE)
1873364       0x1C95D4        Microsoft executable, portable (PE)
1920044       0x1D4C2C        Microsoft executable, portable (PE)
1923044       0x1D57E4        Microsoft executable, portable (PE)



And here is a Patch DIFF of the MP 2,1 against the 3,1 UUIDs present on the flash filesystem:

Code:
--- /home/trusted/code/macos/FirmwareRestorationCD1.4/uuids.txt
+++ /home/trusted/code/macos/RestorationCD1.5/uuids.txt
@@ -1,19 +1,24 @@
00000000-0000-0000-0000-000000000000
+01c069a6-794c-4bc7-bfc7-7f8bd0993825
0325b5a1-0937-4a4f-b8af-ec3f80ee6b35
03dbb540-e186-4615-8a7f-a427863b4e56
0412a7a1-c050-42c2-877a-77c379f9f5f1
056e7324-a718-465b-9a84-228f06642b4f
-078f54d4-cc22-4048-9e94-879c214d562f
07a9330a-f347-11d4-9a49-0090273fc14d
07b37006-9302-408e-b416-b524d110dd7f
07b70e53-b0ee-4db3-82c5-195169832cd5
0857a2de-a903-4021-8b13-7fdf873b33b8
+09576e91-6d3f-11d2-8e39-00a0c969723b
+0e8028eb-7594-4eb3-b3c9-13adad2ea35a
0fc0712e-cdbf-4970-81df-3ba49c0a8b45
0fc9013a-0568-4ba9-9b7e-c9c390a6609b
+11527125-78b2-4d3e-a0df-41e75c221f5a
+124021fc-ee78-45ec-887b-c9a479c8376f
1390954d-da95-4227-9328-7282c217daa8
13ac6dd0-73d0-11d4-b06b-00aa00bd6de7
13ecd928-87ab-4460-bbe0-b520f9eb1d32
1448c340-0202-4711-9c4b-2d063aa6475b
+145372bc-66b9-476d-81bc-2127c376bb66
14fc52be-01dc-426c-91ae-a23c3e220ae8
150a6a50-c248-48bb-87a8-7630fdc6989e
1547b4f3-3e8a-4fef-81c8-328ed647ab1a
@@ -24,13 +29,13 @@
1bdb371e-bd78-4120-8a1d-7c9227a41c9b
1bfc532e-f48a-4ebe-b2fb-2b286d70a6eb
1c6b2faf-d8bd-44d1-a91e-7321b4c2f3d1
+1ca0e202-fe9e-4776-9faa-570c19617a06
1d48e6df-ed34-465c-8996-6c7f6a17d5a9
1e5668e2-8481-11d4-bcf1-0080c73c8881
1f4c6f90-b06b-48d8-a201-bae5f1cd7d56
1f9cabf9-3f3c-4cff-aed8-5fdf745a0dcc
208117f2-25f8-479d-b726-10c10bed6dc1
21a05fd5-db4a-4cfc-b84b-eb0dbb569934
-23d1280d-43f0-4713-90b2-0e5e4221af4c
240612b5-a063-11d4-9a3a-0090273fc14d
240612b7-a063-11d4-9a3a-0090273fc14d
26baccb1-6f42-11d4-bce7-0080c73c8881
@@ -52,35 +57,37 @@
31ce593d-108a-485d-adb2-78f21f2966be
31e147a6-d39a-4147-9da3-befd4d523243
32d0ca85-d0eb-4a9e-aac8-fff748f0bed8
-335b0f6a-fcbd-402a-b4bb-0c3eedaaf9d3
34c8c28f-b61c-45a2-8f2e-89e46becc63b
35b898ca-b6a9-49ce-8c72-904735cc49b7
378d7b65-8da9-4773-b6e4-a47826a833e1
3792095a-e309-4c1e-aa01-85f5655a17f1
38321dba-4fe0-4e17-8aec-413055eaedc1
+3870ef56-e2d1-43d4-ab71-df30f7da6524
389f751f-1838-4388-8390-cd8154bd27f8
398262c1-5165-4725-87fc-bb786a972582
-3b277c85-e293-4f9f-8024-b457c6cf14d4
-3bbcb209-26c8-4ba9-ad25-b95b45a04d26
3cdc90c6-13fb-4a75-9e79-59e9dd78b9fa
-3f557189-8dae-45ae-a0b3-2b99ca7aa7a0
408edcec-cf6d-477c-a5a8-b4844e3de281
410c1d0c-656f-4769-8dfb-90f9a0303e9f
+418a1744-46a1-4e8c-8add-fd8d7908082b
+42881c98-a4f3-44b0-a39d-dfa18667d8cd
4308b1f6-60f0-49fe-9e51-3a25992515bf
4391aa92-6644-4d8a-9a84-ddd405c312f3
43b93232-afbe-11d4-bd0f-0080c73c8881
45424d0c-e6af-4af2-ad99-fa77168742d1
470e1529-b79e-4e32-a0fe-6a156d29f9b2
+4aa33f45-9000-4e6d-9a26-cbea50d26b1b
4c862fc6-0e54-4e36-8c8f-ff6f3167951f
4cf484cd-135f-4fdc-bafb-1aa104b48d36
4cf5b200-68b8-4ca5-9eec-b23e3f50029a
+4d37da42-3a0c-4eda-b9eb-bc0e1db4713b
+4e6c7e95-8de2-437f-a773-c584a06661f8
+4e873773-8391-4e47-b7f4-cafbdcc4b204
5058f21c-bc34-11d4-bd18-0080c73c8881
506533a6-e626-4500-b14f-17939c0e5b60
508a61dc-2c57-4848-a54a-58015179c94a
51c9f40c-5243-4473-b265-b3c8ffaff9fa
51ccf399-4fdf-4e55-a45b-e123f84d456a
52c05b14-0b98-496c-bc3b-04b50211d680
-53531469-558e-4af1-803a-f966f27c573b
53a4c71b-b581-4170-91b3-8db87a4b5c46
53bcc14f-c24f-434c-b294-8ed2d4cc1860
5479662b-6ae4-49e8-a6bd-6de4b625811f
@@ -93,47 +100,50 @@
5cb5c776-60d5-45ee-883c-452708cd743f
6074610c-93c6-4a50-9aaa-0927de7c6975
62d171cb-78cd-4480-8678-c6a2a797a8de
-637e0ba6-c5bb-41b7-a23b-3a65cfc3e9db
63b6e435-32bc-49c6-81bd-b7a1a0fe1a6c
+6406c7d3-b5e4-4f76-b35a-bf07d1cf58d2
6441f818-6362-4e44-b570-7dba31dd2453
+64ed8b7e-b1d0-4e9e-9d2a-696718cb8347
+662ad66e-f52d-47f6-a350-488db9f8af68
6776572c-fe56-42ca-9b93-3d0960e7583a
689cda29-29a8-42f6-93fc-46ba5f180651
+691e1af0-8673-4c98-a9b3-042620e91498
695d8aa1-42ee-4c46-805c-6ea6bce799e3
69fd8e47-a161-4550-b01a-5594ceb2b2b2
+6a504489-884e-4465-a02f-03b248cdef13
6b309956-6617-472b-bbc7-2a09e55e3e52
6c077faf-8258-4c08-b86d-b8dc632632b4
+6c83c560-c13f-450a-9993-f1dfdd2c3286
6e72a82c-14a5-4f02-a377-4a423bb1817f
-6ecefffd-614d-452e-a81d-25e56b0def98
6f0198aa-1f1d-426d-ae3e-39ab633fcc28
71f3b066-936a-4c84-9228-23230fd47c79
-72a8eae8-0f11-4fbb-a38f-6b8144d44a9a
-7408d748-fc8c-4ee6-9288-c4bec092a410
-745d377a-b988-47b2-b18f-bbc80dc56698
74cbec3c-8190-42a0-9c02-d1c5adc706d7
-77475d4f-7965-4038-b970-863fc73e0761
783658a3-4172-4421-a299-e009079c0cb4
7914c493-f439-4c6c-ab23-7f72150e72d4
79c3ac4a-dec6-48f1-affe-e7b95a1ccb32
79ca4208-bba1-4a9a-8456-e1e66a81484e
7a5cfd97-8f27-458a-bd42-e0f9ee46e631
-7a627e16-679d-4814-8f82-eeaf3881f098
7a9354d9-0468-444a-81ce-0bf617d890df
+7d8355d5-5df3-436a-82af-5aecc7967d26
7e1f0d85-04ff-4bb2-866a-31a2996a48a8
7e374e25-8e01-4fee-87f2-390c23c606cd
7edb93c9-3f4e-4ef0-b7d6-445b19fbf778
7ef21e8c-2fc1-4bc3-a84a-73025eaab896
7fed72ee-0170-4814-9878-a8fb1864dfaf
809fbbfd-127a-4249-88bc-fd0e767f4ffd
-86d70125-baa3-4296-a62f-602bebbb9081
+840c4da7-4dc2-4441-81d8-7ea19f7c4566
+84bfee7e-a9fe-4323-b72b-318e3d89da7d
87ab821c-79b8-4ef6-a913-21d22063f55f
88e2d7ff-2e48-4248-954b-b078883c666d
89b2d371-59c2-49dc-b9de-d76b83616a16
+89efcfe7-1601-4df4-9469-cf8c5c6a6f6f
8a107cc5-dcda-4fb7-a272-4243b41afbfe
8a78b107-0fdd-4cc8-b7ba-dc3e13cb8524
+8a8b3310-5c24-4789-ac59-29fc409d8035
+8a99fa6e-25ba-45a4-9052-c50bc5897780
8ac57518-8934-423d-bb39-f5fc88840ccf
8b24e4d4-c84c-4ffc-81e5-d3eacc3f08dd
8bceddd7-e285-4168-9b3f-09af66c93ffe
-8c0514cc-22de-4937-b81e-01538936459c
8d12e231-c667-4fd1-98f2-2449a7e7b2e5
8e6bd67d-1872-4932-a39a-fc9dca4a98cf
8f26ef0a-4f7f-4e4b-9802-8c22b700ffac
@@ -146,7 +156,10 @@
93b80004-9fb3-11d4-9a3a-0090273fc14d
95af7e4d-c45d-47ff-aeb2-d9bc13466b3f
95c8c131-4467-4447-8a71-f087afca07a5
+982c298b-f4fa-41cb-b838-77aa688fb839
998c6d8c-5500-4145-953e-b875517a7a34
+9a7ef41e-c140-4bd1-b884-1e11240b4ce6
+9ca14c0f-919b-49a4-b8bf-748b88a5d00e
9cc55d7d-fbff-431c-bc14-334eaea6052b
9d3cfb39-e3b3-4baa-8bf5-6f0e6bcb2287
9e85f0d5-5185-482b-8d50-5671307fea80
@@ -160,14 +173,18 @@
a0aaff71-35da-41ee-863f-a24f429e59e4
a2f436ea-a127-4ef8-957c-8048606ff670
a3527d16-e6cc-42f5-badb-bf3de177742b
+a3f436ea-a127-4ef8-957c-8048606ff674
a5c6d68b-e78a-4426-9278-a8f0d9eb4d8f
a62d933a-9293-4d9f-9a16-ce81994cc4f2
a6f691ac-31c8-4444-854c-e2c1a6950f92
a9fbf34b-e2a2-41d1-ba00-a274a55cd164
+aabe0074-0fab-41fd-b68c-c04dffd1589c
ab444a6b-a1f8-493e-83b4-f6e5071f2965
ab8ddbaa-9c47-429b-9d12-326f273d9b88
aba1a080-9e7b-46d1-9e14-d6629a502d79
+abb74f50-fd2d-4072-a321-cafc72977efa
ac4ce557-f5cd-439e-963c-40f09683dac5
+ac5e4829-a8fd-440b-af33-9ffe013b12d8
ad21f7a0-7f5b-47fe-8cc0-241f318cabf5
ad608272-d07f-4964-801e-7bd3b7888652
ad70855e-0cc5-4abf-8979-be762a949ea3
@@ -175,24 +192,22 @@
af52dede-c18a-47ce-82e9-f2b660c934ba
b0732526-38c8-4b40-8877-61c7b06aac45
b10adfa1-9e43-487f-aaf3-a7a9bdeaf4ac
+b2cb10b1-714a-4e0c-9ed3-35688b2c99f0
b40612b2-a063-11d4-9a3a-0090273fc14d
b40612b9-a063-11d4-9a3a-0090273fc14d
+b4339807-7cac-49ba-9fb7-6231c622f270
b601f8c4-43b7-4784-95b1-f4226cb40cee
b6ec423c-21d2-490d-85c6-dd5864eaa674
-b9d34cc8-4703-4abc-b3dd-e8f7a0a0ed30
bae7599f-3c6b-43b7-bdf0-9ce07aa91aa6
bb1a3984-d171-4003-9094-46af866b45a2
bc6d08dc-865d-4ffe-8b7a-fb5fb04f12f1
bccad460-4f7d-4e51-8a5d-3bba236d9ebb
bd87394d-465c-40a9-9657-fbed21789860
bdfde060-7e41-4eae-ad9b-e5bba7a48a3a
-bf89f10d-b205-474f-96e3-7a7bb1b4a407
c0512f00-0181-48c0-8b71-90504b8f991e
c153205a-e898-4c24-8689-a4b4bcc5c8a2
-c1bdd34e-9ec0-48aa-806a-6c2eba0dc445
c3e36d09-8294-4b97-a857-d5288fe33e28
c50b323e-9075-4f2a-ac8e-d2596a1085cc
-c5677467-7c65-49fd-8226-ac3174419d1b
c6a957e4-8303-4761-a084-92c0692d90f9
c779f6d8-7113-4aa1-9648-eb1633c7d53b
ca261a26-7718-4b9b-8a07-5178b1ae3a02
@@ -204,8 +219,8 @@
ccec84cd-cdc5-4c75-8637-d4508fc79ccd
cd2b6eb3-ea11-4848-b687-afe57d3d1c0f
cd51358d-6e7e-45ca-b450-57c046bdfddc
-cfcd78ff-4ca0-4a1a-9250-e86b84d77bd1
d0fe1b74-dea6-4081-bfbf-3b720eb1386d
+d1a04d55-75b9-41a3-9036-8f4a261cbba2
d3709bb4-b194-4b71-b9c0-dbd8d2da97ad
d67b91b2-faab-4c7d-a4e2-da94266fd8c3
db9a1e3d-45cb-4abb-853b-e5387fdb2e2d
@@ -216,7 +231,6 @@
e0ecbec9-b193-4351-a488-36a655f22f9f
e121ec07-9c42-45ee-b0b6-fff8ef03c521
e1628c66-2a2d-4dc5-bd41-b20f3538aaf7
-e1cb6a70-7073-4576-8763-4c6bbc22004c
e1f2eba0-f7b9-4a26-8620-131221642a90
e2441b64-7ef4-41fe-b3a3-8caa7f8d3017
e364a338-2842-4f57-a7c7-cdc8cfdf6cd7
@@ -233,7 +247,7 @@
ea816d2c-cee5-4f02-99b5-d3905cbbd077
eaf59c0e-bd46-413a-9ae9-dd9f6d1a927d
ebf342fe-b1d3-4ef8-957c-8048606ff670
-ed8dcdd5-d037-4b1f-98dd-bdfdad4dd7dd
+eed15404-541b-4414-adef-5d6d33d8aa0a
ef0c99b6-b1d3-4025-9405-bf6a560fe0e0
ef17cee7-267d-4bfd-a257-4a6ab3ee8591
ef33c296-f64c-4146-ad04-347899702c84
@@ -243,6 +257,7 @@
f1efb523-3d59-4888-bb71-eaa5a96628fa
f2c1819d-10f5-4223-9236-9b4ebf1b9ae7
f33261e7-23cb-11d5-bd5c-0080c73c8881
+f33528ca-8596-4ac1-bb74-6d9c1b323151
f34c2fa0-de88-4270-8414-961222f4521c
f3790689-fb90-4479-a2ef-b82a43afe74d
f38c34de-9c38-438c-9af6-69f584f17ec0
@@ -252,6 +267,7 @@
f5ac7057-5650-466e-b692-76a47223efb0
f5d14db5-2f0c-4611-9ddc-7c182b173a71
f76761dc-ff89-44e4-9c0c-cd0ada4ef983
+f78153d0-870d-4eee-a684-741499c9a8ce
f894643d-c449-42d1-8ea8-85bdd8c65bde
fb9cc88c-fc0b-40b6-ba0e-bde197a0c9fc
fc1bcdb0-7d31-49aa-936a-a4600d9dd083


many of these can be found on google.

Here is an example of some: https://gist.github.com/skochinsky/3b8f948bfef6f8b32c0577ac018bdaf9

I'm looking for more, and making a collection. I may write up a python script to organize them all and their known uses into lists to import into a google docs spreadsheet.

The section labeled 00000000-0000-0000-0000-000000000000 always contains the microcodes and they seem to be 4096 bytes in length.

If we can do this properly we can try to work out where apple has changes compared to the available sources and decompiling each of the drivers and PEs, but it will take some work.

Then we can figure out what we have sources for and where there are blobs, whether that is early initialization for memory, EC, or apple specific things.

EDIT 6?:

Here is a refernece Intel motherboard with the same chipset 5000X: https://www.intel.com/content/dam/s...vn/sb/418519_d66403_006_s5000xvn_tps_r1_5.pdf

It also only supports FSB 1333 Xeons (Document Rev. 2010)

As you can see it is very similar (apart from FireWire and some other things.) And the RAM Init can possibly be used from Intel's impolementation as well. (It may be 64 bits EFI)

Processors
Socket J (771-pin LGA sockets) supporting one or two Intel® Xeon® processors 5000 sequence, with system bus speeds of 667 MHz, 1066 MHz, and 1333 MHz.

Memory
Eight DIMM sockets supporting fully buffered DIMM technology (FBDIMM) memory. 240-pin DDR2-533 and DDR2-677 FBDIMMs can be used.

Chipset
Intel® 5000X Memory Controller Hub
Intel® ESB2-E I/O Controller

EDIT 7, 10/24/2020

I have made a list of other boards using similar chipset now but I cannot find another that uses EFI.


I also note that Xserve firmware restore CD 1.6 is not available anywhere (I have 1.7, 1.3, 1.4, 1.5)

But there is Xserve 2,1 firmware update (which could be used to build one of these restore CDs as it is also a 2m file. and the filename is the same length this can just be patched in.)
 
Last edited:
I have spent some more time looking at this issue. I'm not sure exactly why the hardware mod would be required if the cpu is made to fit in the same socket they should be voltage compatible. Nevertheless if the resistor modding is required I have no problem doing it on my mac. (or reworking BGAs if need be)

As it stands I have a Meritec #980020-40 TSSOP-40 SMT socket on the way, as well as a couple of spare flash chips coming from china in a few weeks (so I can hot swap flash chips while working on this)

However, I did get Ghidra working on the flash file contained in the firmware cd 1.4. (MP21_...) and it does read the filesystem and have info on the PE compressed section.

This is using the firmware tools repo.. plugin.

I recommend looking in Ghidra if you are having problems with IDA. I can't get IDA running in Ubuntu 20.04 as it is 32 bits and Ubuntu Multiarch is partially broken in this latest LTS for the time being.
 

Attachments

  • Screenshot from 2020-10-27 22-03-54.png
    Screenshot from 2020-10-27 22-03-54.png
    82.9 KB · Views: 190
  • Like
Reactions: superparati
Hello,

I read a bit the last pages of this topic to see if it could help me in my iMac 12,1 firmware modifications to install a Xeon Ivy Brige instead of my Xeon Sandy Bridge (which works).

I have to admit that I understand almost nothing about it.

I was wondering if you would have any leads to help me on your side, topic that talks about it.

With my thanks.

With my best regards,

Stephane.
 
  • Like
Reactions: plasticpippo
Hello,

I read a bit the last pages of this topic to see if it could help me in my iMac 12,1 firmware modifications to install a Xeon Ivy Brige instead of my Xeon Sandy Bridge (which works).

I have to admit that I understand almost nothing about it.

I was wondering if you would have any leads to help me on your side, topic that talks about it.

With my thanks.

With my best regards,

Stephane.
Hi,

I have some understanding of this but it seems that there is more to it than the microcode to modify. I don't have a compatible mac to test it on but I understand there are some thinkpads that have the sandy bridge and this has been done in coreboot on thinkpads before.

Mainly you run into problems between the FSB initialization and the difference of the RAM init in the FSB controllers of the CPU (AS these newer CPUs than in this thread, have with them the memory controller integrated into the cpu)

The other thing is the graphics init is different as the sandy and ivy bridge have both the differing versions of intel HD graphics.

If you want to know more read about doing this on the Thinkpad T-420 and using coreboot or how to do that. It is something I have done and tried in the past but I don't have a reference machine to look at anymore.

As far as your issues with the boot logo on the mac, that is the EFI and you will need to change that in your boot.efi file in the partition you have booting. The firmware as far as I know only has code for a screen blank gray or white or such and loads the EFI file from the HFS+ which then boots. (This is why there is need for HFS+ support DXE in the firmware.)

edit: you can find how to change the boot logo here https://forums.macrumors.com/thread...go-on-unsupported-macs-boot-efi-hack.1751446/
 
@trusted>

Thank you for your answer, I must admit that it's becoming very complicated for me, moreover it's not only a challenge for me (especially since in "some time" I'll be able to buy what I want) it's become personal because I would have liked to dedicate the hack to my late sister, in short I'm a bit depressed not to have all the required skills, but I'm not giving up.

On the other hand if you do everything for me it's not necessarily interesting either, but if you have to go through that...
 
P.P.S. - This is interesting! CrScreenshotDxe - A UEFI DXE driver to take screenshots from GOP-compatible graphic consoles.
I have learned recently that CrScreenshotDxe can work on MacPro3,1 if you have the GOP driver installed and working. Work is being done in RefindPlus to do that (it already works for most AMD cards).
CrScreenshotDxe needs to be changed to work with AppleEvent protocol version 6 instead of 7 for the MacPro3,1 though.
 
  • Like
Reactions: Petri Krohn
@LightBulbFun do you think it would be possible to apply this technique to install an ivy bridge CPU into an imac 2011 (sandy bridge with z68 chipset)?
sorry for being slightly off topic
 
I got a Mac Pro 1,1 today (well, it's a 2,1 now) and I have a couple of pairs of E5440 CPUs (SLBBJ/E0) I was about to stick in to see if they work but then discovered this thread - way over my head but most interesting! :) I look forward to you clever folks working out how to get these working 👍 I am happy to try things out!
 
I got a Mac Pro 1,1 today (well, it's a 2,1 now) and I have a couple of pairs of E5440 CPUs (SLBBJ/E0) I was about to stick in to see if they work but then discovered this thread - way over my head but most interesting! :) I look forward to you clever folks working out how to get these working 👍 I am happy to try things out!
There are still some things to try out - and we're on it, but distracted a bit by M1 stuff, Big Sur on unsupported machines and Snow Leopard on PowerPC. (So much to do besides the day-to-day business ;-)
 
Hi all,

Im new to the forum but joined to get in on the discussion.

I recently got a Mac Pro 1,1 for $50 CAD. I got it running El Cap but wanted to upgrade it further. Today I upgraded the firmware to 2,1. I have a pair of E5472 Xeons which I know uses the same socket but as you guys have been working on it will not boot with those CPUS. If theres anything I can test out Id love to help, would really enjoy running a newer Mac OS such as Mojave. I haven't ever modified bios files but like I said, I'm am willing to give it a try and figure it out.

Let me know if there's anything I can give a try!!!
 
Hello! I have iMac late 2009 (10,1)A1312; CPU E7500- ATI Radeon HD 4670 , tell me please it’s can work with CPU Xeon L5430 (Harpertown) ?
Thanks in advance
 
How about a combination of the modified 2,1 firmware with Harpertown microcode support added in and the MP 3,1 SMC (1.25f4 which is a higher version no than that of the MP 2,1)?
 
Last edited:
How about a combination of the modified 2,1 firmware with Harpertown microcode support added in and the MP 3,1 SMC (1.25f4 which is a higher version no than that of the MP 2,1)?
SMC is completely independent of the Mac Pro BootROM. Also, where you gonna find the SMC firmware for any Mac Pro after the MacPro2,1 since Apple never released an updated SMC firmware for MacPros early-2008 to mid-2012.

It's not just the microcodes, this was tested and retested years ago.
 
Also, where you gonna find the SMC firmware for any Mac Pro after the MacPro2,1 since Apple never released an updated SMC firmware for MacPros early-2008 to mid-2012.

Can't it be dumped from a MP 3,1?
 
Can't it be dumped from a MP 3,1?
It's a Renesas H8S secure microcontroller, the firmware can't even be read outside the chip itself. No way to dump it, look at the H8S family datasheet.
 
there is a good chance it can be unlocked ..but it's gonna cost.... and it aint legal....
but why bother it's dead hardware
 
there is a good chance it can be unlocked ..but it's gonna cost.... and it aint legal....


Yes apparently it is possible for some H8/H8S controllers and not in boot mode, but requires a special kit and indeed hacking.

but why bother it's dead hardware

I don't know, I have 64Gb RAM and 2 quad-core 3Ghz X5365s on mine and to be honest I run memory-intensive algorithms on it, notably rna-star for high-throughput sequencing, which requires 32Gb RAM. Using Ubuntu it's almost as good as a modern entry-level workstation. Obviously 667 MHz RAM can be limiting (I wonder if this can be cranked up to 800MHz, as the Intel 5000X supports CPUs with 1600MHz FSB), as can be the graphics (limited to EFI32 if one wants boot screens, which means HD7950 max). Obviously adapting the EFI64 3.1 ROM to the MP2,1 would be the holy grail.

In any case, the whole point is that if we can get >= High Sierra to run on those (ideally Mojave), they would support most of the latest software...
 
Last edited:
The SMC firmware have nothing to do with CPU support.

So you don't think that SMC 1.7/1.15 not supporting 45nm CPUs (while 1.25 does) has anything to do with the CPU being rejected even when updating the microcode to support it as has been described above in the present thread?




Even if this is the case, SMC 1.25 will be needed for correct fan management etc
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.