I only committed the first patch for now; is the second one ready for being committed too or is it work in progress? Does it work?
Yes this is OK. Second is just for illustration. The LB should construct the bytecode of the second patch in runtime, because the content must be changed when processor is changed.
This code in second patch should be placed as "external symbols" in SSDT table. Putting them into the DSDT will work, but user is forced to grab correct values specific for his/her processor. This patch is for Opteron 175 CPUID 00020f32 I dont know yet how to construct those tables at runtime, nor I'm not sure how to create valid data for all processors.
I dropped the '#if' part, the whole file where those two functions are defined is placed in a '#if K8_SET_FIDVID == 1'. Either way, your board sets K8_SET_FIDVID to 1, so it doesn't really matter.
Ok. Thanks,
Rudolf