kozlek Posted July 30, 2010 Author Share Posted July 30, 2010 I've just noticed that, and corrected chameleon to fit my needs. We're gonna need an option in boot.plist to force it, isn't ? We could parse in chameleon CPU specification string to check if it i5 or i7 with the same model number. Link to comment Share on other sites More sharing options...
Trauma! Posted July 30, 2010 Share Posted July 30, 2010 We could parse in chameleon CPU specification string to check if it i5 or i7 with the same model number. Nice Link to comment Share on other sites More sharing options...
rekursor Posted July 30, 2010 Share Posted July 30, 2010 Nice And what about the extended model number ? is it the same ? If not, we can distinguish them Link to comment Share on other sites More sharing options...
VCH888 Posted July 30, 2010 Share Posted July 30, 2010 @ mozodojo, rekursor and other developers My friend got the issue of CPU info as same as Trauma! did. My friend's PC spec: CPU : Intel® Core™ i5 Processors 750 2.66 GHz Mainboard : GA-P55A-UD3P (rev. 1.0) Display : Asus GT240 / 1G DDR3 Ram : Kingtons DDR3 Bus 1333 4GB In About This Mac, it showed the system as i7. Also, P-States was not generated. I have two pictures from my friend. Thank you. Link to comment Share on other sites More sharing options...
dgobe Posted July 31, 2010 Share Posted July 31, 2010 I added this to the end of setup_nhm in dram_controllers.c and it seems to get the QPI multiplier OK on my system. unsigned long qpimult; qpimult = pci_config_read32(PCIADDR(nhm_bus, 2, 1), 0x50); qpimult &= 0x7F; DBG("qpimult %d\n", qpimult); Link to comment Share on other sites More sharing options...
kozlek Posted July 31, 2010 Author Share Posted July 31, 2010 And what about the extended model number ?is it the same ? If not, we can distinguish them Extmodel shows 0x1 in chameleon. Maybe our Model/Ext.Model resolving algo has a mistake? Link to comment Share on other sites More sharing options...
dgobe Posted July 31, 2010 Share Posted July 31, 2010 Extmodel shows 0x1 in chameleon. Maybe our Model/Ext.Model resolving algo has a mistake? I noticed a difference with what cpu-z/cpu-x shows and what sysctl(and debug output from boot) shows and thought I was just missing something. sysctl and boot: machdep.cpu.model: 26 (1Ah) machdep.cpu.extmodel: 1 cpu-z and netkas' cpu-x: model A ext model 1A EDIT: According to Intel doc 241618.pdf(pg 20&21) the boot code is doing the right thing and the model numbers are correct according to the spec. I don't know what's up with cpu-z/x? Link to comment Share on other sites More sharing options...
SanMiguel Posted July 31, 2010 Share Posted July 31, 2010 Is there any support for AMD CPUs? Link to comment Share on other sites More sharing options...
dgobe Posted July 31, 2010 Share Posted July 31, 2010 I hacked smbios_patcher.c to detect SMbusspeed. Probably should move the nhm_bus business into Platform.CPU and scan_platform. Here's a boot file for anyone with Core i7/i5/i3 if they want to test. Look in System Profiler under Processor Interconnect Speed. boot.zip Credit to rek for the bus detection code. include "pci.h" ... switch (Platform.CPU.Model) { case 0x0F: // Intel Core (65nm) case 0x17: // Intel Core (45nm) case 0x1C: // Intel Atom (45nm) return 0; // TODO: populate bus speed for these processors case 0x19: // Intel Core i5 650 @3.20 Ghz case 0x1A: // Intel Core i7 LGA1366 (45nm) case 0x1E: // Intel Core i5, i7 LGA1156 (45nm) case 0x1F: // Intel Core i5, i7 LGA1156 (45nm) ??? case 0x25: // Intel Core i3, i5, i7 LGA1156 (32nm) case 0x2C: // Intel Core i7 LGA1366 (32nm) 6 Core case 0x2E: // Intel Core i7 LGA1366 (45nm) 6 Core ??? { int nhm_bus = 0x3F; static long possible_nhm_bus[] = {0xFF, 0x7F, 0x3F}; unsigned long did, vid; int i; // Nehalem supports Scrubbing // First, locate the PCI bus where the MCH is located for(i = 0; i < sizeof(possible_nhm_bus); i++) { vid = pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x00); did = pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x02); vid &= 0xFFFF; did &= 0xFF00; if(vid == 0x8086 && did >= 0x2C00) nhm_bus = possible_nhm_bus[i]; } unsigned long qpimult, qpibusspeed; qpimult = pci_config_read32(PCIADDR(nhm_bus, 2, 1), 0x50); qpimult &= 0x7F; DBG("qpimult %d\n", qpimult); qpibusspeed = (qpimult * (Platform.CPU.FSBFrequency/1000000)) << 1; DBG("qpibusspeed %d\n", qpibusspeed); return qpibusspeed; } } ... Link to comment Share on other sites More sharing options...
Ingram Posted July 31, 2010 Share Posted July 31, 2010 I tried the GenerateCStates and GeneratePStates with my overclocked E6420 and it works great, DropSSDT caused a kernel panic as expected. But I've got a question about "Found ACPI CPU: CPU#" messages - is it normal that it outputs 4 (0-3) of them even when I have a dual core processor? Later while booting it says 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=0 LocalApicId=0 Enabled 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=1 LocalApicId=1 Enabled 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=2 LocalApicId=2 Disabled 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=3 LocalApicId=3 Disabled Which I understand, but where do the 2 and 3 come from at the first place. Link to comment Share on other sites More sharing options...
rednous Posted July 31, 2010 Share Posted July 31, 2010 I tried the GenerateCStates and GeneratePStates with my overclocked E6420 and it works great, DropSSDT caused a kernel panic as expected. But I've got a question about "Found ACPI CPU: CPU#" messages - is it normal that it outputs 4 (0-3) of them even when I have a dual core processor? Later while booting it says 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=0 LocalApicId=0 Enabled 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=1 LocalApicId=1 Enabled 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=2 LocalApicId=2 Disabled 01.08.10 2:27:19 kernel AppleACPICPU: ProcessorId=3 LocalApicId=3 Disabled Which I understand, but where do the 2 and 3 come from at the first place. it's normal according to me 4 processors to be reported -- it's coming from the kernel. i have the same reports in my kernel log, although im with Core 2 Duo. Link to comment Share on other sites More sharing options...
Ingram Posted July 31, 2010 Share Posted July 31, 2010 it's normal according to me 4 processors to be reported -- it's coming from the kernel. i have the same reports in my kernel, although im with Core 2 Duo. Dunno why everybody gets 50% of those more and later that 50% will be disabled. Edit: Chameleon doesn't seem to get a proper UUID with SMUUID entry from smbios.plist (at least according to the chameleon and says something about UUID=0123456789ABCDEF which isn't clearly my UUID), via SystemId it works though and I don't get that weird UUID. Link to comment Share on other sites More sharing options...
rednous Posted July 31, 2010 Share Posted July 31, 2010 Ingram, according to me the reason you've got 4 cpus reported by the booter ("Found ACPI CPU: CPU#") is that you've 4 cpus declared in the _PR scope in your DSDT like this, although you've Core 2 Duo: Scope (_PR) { Processor (P000, 0x00, 0x00000810, 0x06) {} Processor (P001, 0x01, 0x00000810, 0x06) {} Processor (P002, 0x02, 0x00000810, 0x06) {} Processor (P003, 0x03, 0x00000810, 0x06) {} } after the booter finishes the kernel reports those 4 cpus (in our case 2 of them are disabled) cause it's the way the kernel is designed... There's nothing to worry about this. try to remove the SMUUID entry from the smbios.plist and add the following into the boot.plist: <key>EfiPlatformSystemID</key> <string>Yes</string> @Rekursor I've managed to install Winbowz... you're right about the Mushkin and G.Skill memory serial numbers -- CPU-Z didn't not reported them, too Mushkin and G.Skill have no serial numbers in their DIMMS (or there's no known way to read it). I can live with this. Link to comment Share on other sites More sharing options...
Ingram Posted July 31, 2010 Share Posted July 31, 2010 Ingram,according to me the reason you've got 4 cpus reported by the booter ("Found ACPI CPU: CPU#") is that you've 4 cpus declared in the _PR scope in your DSDT like this, although you've Core 2 Duo: Scope (_PR) { Processor (P000, 0x00, 0x00000810, 0x06) {} Processor (P001, 0x01, 0x00000810, 0x06) {} Processor (P002, 0x02, 0x00000810, 0x06) {} Processor (P003, 0x03, 0x00000810, 0x06) {} } after the booter finishes the kernel reports those 4 cpus (in our case 2 of them are disabled) cause it's the way the kernel is designed... There's nothing to worry about this. try to remove the SMUUID entry from the smbios.plist and add the following into the boot.plist: <key>EfiPlatformSystemID</key> <string>Yes</string> @Rekursor I've managed to install Winbowz... you're right about the Mushkin and G.Skill memory serial numbers -- CPU-Z didn't not reported them, too Mushkin and G.Skill have no serial numbers in their DIMMS (or there's no known way to read it). I can live with this. Alright, I won't worry about the CPU thing anymore. I tried EfiPlatformSystemID but without SystemId it will still output: No UUID present in SMBIOS System Information Table [ERROR] UUID='0123456789ABCDEF' syntax error Customizing SystemID with : About your memory serial numbers - I don't have them on my A-DATA sticks either (not even on windows). Link to comment Share on other sites More sharing options...
rednous Posted July 31, 2010 Share Posted July 31, 2010 I tried EfiPlatformSystemID but without SystemId it will still output: No UUID present in SMBIOS System Information Table [ERROR] UUID='0123456789ABCDEF' syntax error Customizing SystemID with : strange... what is the version of your booter? see my SMBIOS anf boot plists for reference: Link to comment Share on other sites More sharing options...
Ingram Posted July 31, 2010 Share Posted July 31, 2010 Using the latest from trunk (r291) E: I checked your files and I couldn't find any bigger difference. Link to comment Share on other sites More sharing options...
Taruga Posted August 1, 2010 Share Posted August 1, 2010 Just trying this new boot with a Q6600 overclocked to 3.0 Ghz and my results are: -CPU is at lower temp by about 10 to 15 degrees C -When PC starts, CPU it's at a lower frequency and I have some sound stuttering when playing youtube videos but If I open for. ex. Garage Band the problem goes away. I have this on dsdt.aml Scope (_PR) { Processor (CPU0, 0x00, 0x00000410, 0x06) {} Processor (CPU1, 0x01, 0x00000410, 0x06) {} Processor (CPU2, 0x02, 0x00000410, 0x06) {} Processor (CPU3, 0x03, 0x00000410, 0x06) {} } And I have this on com.apple.Boot.plist <key>GeneratePStates</key> <string>Yes</string> <key>GenerateCStates</key> <string>Yes</string> <key>DropSSDT</key> <string>Yes</string> How to fix this ? ps. Also, with this method I don´t get Sleep to work Link to comment Share on other sites More sharing options...
BuXb Posted August 1, 2010 Share Posted August 1, 2010 Taruga, re. sleep: with most bootloaders I have to enable the No Execute (no nx) bit in BIOS for sleep + wake-up to work. Apart from that: welcome back Link to comment Share on other sites More sharing options...
edgar87 Posted August 1, 2010 Share Posted August 1, 2010 Great bootloader, works good on my Hackintosh. But I have one problem, I don't have a Hardware UUID in system profiler.. I use a SMBios.plist file with only SMserial in it. it detects my PC as a iMac 11,1, and it detects my memory OK. Link to comment Share on other sites More sharing options...
aschar1 Posted August 1, 2010 Share Posted August 1, 2010 I hacked smbios_patcher.c to detect SMbusspeed. Probably should move the nhm_bus business into Platform.CPU and scan_platform. Here's a boot file for anyone with Core i7/i5/i3 if they want to test. Look in System Profiler under Processor Interconnect Speed. boot.zip Credit to rek for the bus detection code. include "pci.h" ... switch (Platform.CPU.Model) { case 0x0F: // Intel Core (65nm) case 0x17: // Intel Core (45nm) case 0x1C: // Intel Atom (45nm) return 0; // TODO: populate bus speed for these processors case 0x19: // Intel Core i5 650 @3.20 Ghz case 0x1A: // Intel Core i7 LGA1366 (45nm) case 0x1E: // Intel Core i5, i7 LGA1156 (45nm) case 0x1F: // Intel Core i5, i7 LGA1156 (45nm) ??? case 0x25: // Intel Core i3, i5, i7 LGA1156 (32nm) case 0x2C: // Intel Core i7 LGA1366 (32nm) 6 Core case 0x2E: // Intel Core i7 LGA1366 (45nm) 6 Core ??? { int nhm_bus = 0x3F; static long possible_nhm_bus[] = {0xFF, 0x7F, 0x3F}; unsigned long did, vid; int i; // Nehalem supports Scrubbing // First, locate the PCI bus where the MCH is located for(i = 0; i < sizeof(possible_nhm_bus); i++) { vid = pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x00); did = pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x02); vid &= 0xFFFF; did &= 0xFF00; if(vid == 0x8086 && did >= 0x2C00) nhm_bus = possible_nhm_bus[i]; } unsigned long qpimult, qpibusspeed; qpimult = pci_config_read32(PCIADDR(nhm_bus, 2, 1), 0x50); qpimult &= 0x7F; DBG("qpimult %d\n", qpimult); qpibusspeed = (qpimult * (Platform.CPU.FSBFrequency/1000000)) << 1; DBG("qpibusspeed %d\n", qpibusspeed); return qpibusspeed; } } ... dgobe thanks for this fix. With your booter my Core i7 920 GA EX58UD5 can boot now with DropSSDT=Yes GeneratePStates=Yes GenerateCStates=Yes without Kernel Panic. (Mozodojos booted only wih GenerateCStates=Yes GeneratePStates panicked) Speedstep works perfectly with unmodified DSDT Scope_PR Qpi interconnect speed is correctly detected 6,48 GT/s overclocked to 21x184. Only Memory Speed is detected as 1066 MHZ - should be 1440 MHZ. Update: If I use DropSSDT=Yes System is stuck to slow speed (Geekbench64 7500 instead of 13000). Memory Detection seems to be right my OCZ 1600 Platinum is 1066 ram acc to SPD (Everest). Link to comment Share on other sites More sharing options...
rednous Posted August 1, 2010 Share Posted August 1, 2010 Using the latest from trunk (r291) E: I checked your files and I couldn't find any bigger difference. it's realy strange you have no Hardware UUID generated correctly. Before using and testing Chameleon RC5 i was booting with valv's booter, and before that i was with Asere's booter. All those 3 boot loaders generate correct Hardware UUID for me. @Taruga: maybe you would like to take a look at my current DSDT in order to investigate your Sleep issue. I've always Sleep, Wake, Shutdown and Restart 100% working no matter the boot version. There're also my SMBIOS.plist and com.apple.boot.plist attached in one of my previous posts if you would like to compare/ investigate. And about your sound stuttering there was a fix as far as i remember... it's was related to the machine model (i.e. injecting MacPro3,1 or MacPro4,1 via SMBIOS.plist -- trying this for example). Link to comment Share on other sites More sharing options...
Taruga Posted August 1, 2010 Share Posted August 1, 2010 @Taruga:maybe you would like to take a look at my current DSDT in order to investigate you Sleep issue. I've always Sleep, Wake, Shutdown and Restart 100% working no matter the boot version. There're also my SMBIOS.plist and com.apple.boot.plist attached in one of my previous posts if you would like to compare/ investigate. And about your sound stuttering there was a fix as far as i remember... it's was related to the machine model (i.e. injecting MacPro3,1 or MacPro4,1 via SMBIOS.plist -- trying this for example). I will take a look at your DSDT and see if I can at least get Sleep back, as for the SMBIOS.plist , I've already tested with MacPro3,1 and iMac 11,1 with no difference in sound. Seems that I always have to force load for ex. Garage Band (and then I can close it) for the CPU to get working at higher frequency and avoid the sound issue Link to comment Share on other sites More sharing options...
rednous Posted August 1, 2010 Share Posted August 1, 2010 I will take a look at your DSDT and see if I can at least get Sleep back, as for the SMBIOS.plist , I've already tested with MacPro3,1 and iMac 11,1 with no difference in sound. Seems that I always have to force load for ex. Garage Band (and then I can close it) for the CPU to get working at higher frequency and avoid the sound issue huh... strange... did you tested with MacPro4,1? i think there's a simple solution, you've just find it somewhere here. wish you good luck Link to comment Share on other sites More sharing options...
Taruga Posted August 1, 2010 Share Posted August 1, 2010 Taruga, re. sleep: with most bootloaders I have to enable the No Execute (no nx) bit in BIOS for sleep + wake-up to work. Apart from that: welcome back Well, If I just replace this 'boot' with my old 'boot' file, I get Sleep back. huh... strange... did you tested with MacPro4,1? i think there's a simple solution, you've just find it somewhere here. wish you good luck From what I remember, with MacPro4,1 I get a kernel panic Link to comment Share on other sites More sharing options...
rednous Posted August 1, 2010 Share Posted August 1, 2010 Taruga, i see... Maybe you could find something in my DSDT. Maybe those sound stutters are somehow related to IRQs in the HPET, or similar in the DSDT (just an assumption)... Link to comment Share on other sites More sharing options...
Recommended Posts