Wednesday, July 02, 2008

AppleSMBIOSEFI for Tiger and Leopard

Hi guys,

Here is the beta AppleSMBIOSEFI I have been working on. It will work with original AppleSMBIOS but will try to fix or add some values that original AppleSMBIOS misses. Therefore, you don't have to worry about AppleSMBIOS being updated.

It is based on original AppleSMBIOS and it only works with EFI system right now. It is for both Tiger and Leopard. In addiation, it should fix "About This Mac" crash problem and wrong "Bus Speed" issue.

You can change the memory speed. Just boot with "memorySpeed=n" (n is the speed number you want)
You can change the memory type. Just boot with "memoryType=n" (n is the type number you want, 18 is DDR, 19 is DDR2)

memoryType=19 memorySpeed=533

Again, it is just the beta version and you still need the original AppleSMBIOS with it.


static const char *
SMBMemoryDeviceTypes[] =
"RAM", /* 00h Undefined */
"RAM", /* 01h Other */
"RAM", /* 02h Unknown */
"DRAM", /* 03h DRAM */
"EDRAM", /* 04h EDRAM */
"VRAM", /* 05h VRAM */
"SRAM", /* 06h SRAM */
"RAM", /* 07h RAM */
"ROM", /* 08h ROM */
"FLASH", /* 09h FLASH */
"EEPROM", /* 0Ah EEPROM */
"FEPROM", /* 0Bh FEPROM */
"EPROM", /* 0Ch EPROM */
"CDRAM", /* 0Dh CDRAM */
"3DRAM", /* 0Eh 3DRAM */
"SDRAM", /* 0Fh SDRAM */
"SGRAM", /* 10h SGRAM */
"RDRAM", /* 11h RDRAM */
"DDR SDRAM", /* 12h DDR */
"DDR2 SDRAM", /* 13h DDR2 */
"DDR2 FB-DIMM" /* 14h DDR2 FB-DIMM */

Update: 5/6/2008
1. It will use value of "cpu->externalClock" first. If that value returns 0, it will use value of "FSBFrequency".
2. Add "FSB" flag. You can change the FSB value in case the value is still not correct. Just boot with "FSB=n" (n is the speed number you want) However, it doesn't update the value back to "FSBFrequency" yet.

Update: 7/2/2008
1. based on AppleSMBIOS-28
2. Added "serial-number", "board-id", and "system-type". The default serial-number is "W1234567890".
3. Released AppleSMBIOSEFI from memory after adding the values.
4. It should work both on Tiger and Leopard. (I used Tiger to compile the source code.)