bcc9, on May 14 2011, 08:21 PM, said:
I'd say no, it's definitely *not* safe to assume undocumented fields are guaranteed to be set the way apple's code happens to be testing them, when using non-apple hardware. Relying upon undocumented hardware behavior is not good practice. If intel has registers whose semantics are only shared under NDA with a few vendors (and not the linux folks for example), then there isn't really anything concrete to complain to the bios vendors about.
Nothing is absolutely safe, but it isn't limited to Apple alone since Asus UEFI initializes this MSR with the correct values. And you can't do anything wrong when you port the values from one to the other MSR. At least that's what I've read in the datasheet.
Anyway. Most of the interesting MSR's are only slowly being added in non-NDA covered Intel documentation. I mean not much was given away in the beginning of the Sandy Bridge CPU launch. Same for JakeTown CPU's This sucks for us, but that is how things seem to work at Intel..
bcc9, on May 14 2011, 08:21 PM, said:
I do however think that having the osx bootloader clear bit 16 of that MSR when bits 8 thru 15 come up 0 is a very reasonable fix. Works for me . If anyone else needs a chameleon boot file with this fix let me know.
Oh sure. It is great that you located the problem and found a work around for your boot problem, but have you ruled out all other possible readouts from this specific MSR? I don't think so.
bcc9, on May 14 2011, 08:21 PM, said:
I have found a few FLEX_RATIO references in intel's documents but nothing that details the semantics.
Search for: "CLOCK_FLEX_MAX" instead and find this (for example):
Quote
"The processor’s maximum non-turbo core frequency is configured during power-on reset by using values stored internally during manufacturing. The stored value sets the highest core multiplier at which the particular processor can operate. If lower max non- turbo speeds are desired, the appropriate ratio can be configured using the CLOCK_FLEX_MAX MSR."
Not much of a give away, but that is what I can do for now