Ahoj, staci trochu pohackovat ten driver a dodelat do nej ty data co chce.
Ja sem to udelal a funguje to.
Literatura:
vyraz pro google:
opteron power and thermal filetype:pdf
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/30417.pdf
vyraz pro google:
amdk7pnow! filetype:pdf
http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26094.PDF
Patch pro opterona 144. V powernow-k8.h je definice ty struktury. Patch se mozna rozjel
kvuli zalomeni, tak si ho spravte.
--- linux-2.6.13/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.14/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2005-12-28 23:58:45.996666250 +0100
@@ -603,6 +609,12 @@
return 0;
}
+struct custom_psb {
+ struct psb_s table;
+ struct pst_s more[9];
+ };
+
+
/* Find and validate the PSB/PST table in BIOS. */
static int find_psb_table(struct powernow_k8_data *data)
{
@@ -612,12 +624,30 @@
u8 maxvid;
u32 cpst = 0;
u32 thiscpuid;
+struct custom_psb opt144 = { {
+ { 'A', 'M', 'D', 'K', '7', 'P', 'N', 'O', 'W', '!'},
+ 0x14, //ver
+ 0x00,
+ 0x05, //vco
+ 0x0, //acpi stuff
+ 0x1, //must be 1
+ 0x00020f71, //144 CPUID
+ 0x2, //pll lock
+ 0xA, // multiplier is 9, maxfid
+ 0x4, // maxvid
+ 0x2 }, //numpstates
+ {
+ {0x02,0x12}, //fidlow, vidlow 1.1V
+ {0xA,0x4}
+ }
+ };
+
for (i = 0xc0000; i < 0xffff0; i += 0x10) {
/* Scan BIOS looking for the signature. */
/* It can not be at ffff0 - it is too big. */
- psb = phys_to_virt(i);
+ psb = &opt144; //phys_to_virt(i);
if (memcmp(psb, PSB_ID_STRING, PSB_ID_STRING_LEN) != 0)
continue;
Je to pro toho opeterona 144 co ma vid 1.4V, avsak melo by to fungovat i pro opetrona co ma tech 1.35, protoze pokud se zapisuje vyssi hodnota nez je max tak se tam zapise to spravny max...
Snad to nekomu pomuze :) Uzivatelum Windows doporucuju zkusit Linux... Da se tam kraasne hackovat ten hardware. Treba jako si vypnout scheduler k diskum a podivat se co to NCQ skutecne dela...
Ruik