Jukka Rantala (jukka.rantala@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1244
-gerrit
commit 7abfd04cf614e9edd79929478d5fb6e365c04bbf Author: Jukka Rantala jukka.rantala@gmail.com Date: Fri Jul 20 02:10:16 2012 +0300
AMD CPUs: Updated CPU list in powernow_acpi.c
Updated P state table to make frequency scaling work. Added these CPUs: http://support.amd.com/us/Processor_TechDocs/30430.pdf Also wrote a Python script for parsing AMD docs, but not sure where to put it: http://pastebin.com/1dSvkXwc
Change-Id: I8f08111b73b9be551f3f59d2acb15051ccf36c1e Signed-off-by: Jukka Rantala jukka.rantala@gmail.com --- src/cpu/amd/model_fxx/powernow_acpi.c | 176 ++++++++++++++++++++++++++++++++- 1 files changed, 171 insertions(+), 5 deletions(-)
diff --git a/src/cpu/amd/model_fxx/powernow_acpi.c b/src/cpu/amd/model_fxx/powernow_acpi.c index 81b1067..2a6e025 100644 --- a/src/cpu/amd/model_fxx/powernow_acpi.c +++ b/src/cpu/amd/model_fxx/powernow_acpi.c @@ -561,23 +561,189 @@ struct cpuentry entr[] = { {180, 0x2c, 0x20f32, 0x10, 0x10, 1100, {{2200, 1300, 1056}, {2000, 1250, 891}, {1800, 1200, 748}, {1000, 1100, 466}}}, - {3000, 0x4, 0x10ff0, 0xa, 0xa, 670, - {{1000, 1100, 210}}}, /* AMA3000BEX5AR */ {3000, 0x4, 0xf4a, 0xa, 0x0, 815, {{1600, 1400, 570}, {800, 1100, 190}}}, /* TMDML34BKX5LD, needs real TDP info */ {34, 0xa, 0x20f42, 0xa, 0x0, 350, {{1600, 1400, 340}, {800, 1000, 330}}}, + /* ADA3200AIO4BX */ + {3200, 0x4, 0x20fc2, 0xe, 0xe, 670, + {{2000, 1350, 647}, {1800, 1300, 548}, {1000, 1100, 275}}}, + /* ADA2800AEP4AP */ + {2800, 0x4, 0xf48, 0xa, 0xa, 890, + {{800, 1300, 350}}}, + /* ADA3000AEP4AP */ + {3000, 0x4, 0xf48, 0xc, 0xc, 890, + {{1800, 1400, 660}, {800, 1300, 350}}}, + /* ADA3200AEP5AP */ + {3200, 0x4, 0xf48, 0xc, 0xc, 890, + {{1800, 1400, 660}, {800, 1300, 350}}}, + /* ADA3400AEP5AP */ + {3400, 0x4, 0xf48, 0xe, 0xe, 890, + {{2000, 1400, 700}, {800, 1300, 350}}}, + /* ADA2800AEP4AR */ + {2800, 0x4, 0xf4a, 0xa, 0xa, 890, + {{1000, 1100, 220}}}, + /* ADA3000AEP4AR */ + {3000, 0x4, 0xf4a, 0xc, 0xc, 890, + {{1800, 1400, 660}, {1000, 1100, 220}}}, + /* ADA3700AEP5AR */ + {3700, 0x4, 0xf4a, 0x10, 0x10, 890, + {{2200, 1400, 720}, {2000, 1300, 530}, {1800, 1200, 390}, {1000, 1100, 220}}}, + /* ADA2800AEP4AX */ + {2800, 0x4, 0xfc0, 0xa, 0xa, 890, + {{1000, 1100, 220}}}, + /* ADA3000AEP4AX */ + {3000, 0x4, 0xfc0, 0xc, 0xc, 890, + {{1800, 1400, 670}, {1000, 1100, 220}}}, + /* ADA3200AEP4AX */ + {3200, 0x4, 0xfc0, 0xe, 0xe, 890, + {{2000, 1400, 690}, {1800, 1300, 500}, {1000, 1100, 220}}}, + /* ADA3400AEP4AX */ + {3400, 0x4, 0xfc0, 0x10, 0x10, 890, + {{2200, 1400, 720}, {2000, 1300, 530}, {1800, 1200, 390}, {1000, 1100, 220}}}, + /* ADA3500DEP4AS */ + {3500, 0x4, 0xf7a, 0xe, 0xe, 890, + {{2000, 1400, 690}, {1800, 1300, 500}, {1000, 1100, 220}}}, + /* ADA3500DEP4AW */ + {3500, 0x4, 0xff0, 0xe, 0xe, 890, + {{2000, 1400, 690}, {1800, 1300, 500}, {1000, 1100, 220}}}, + /* ADA3800DEP4AW */ + {3800, 0x4, 0xff0, 0x10, 0x10, 890, + {{2200, 1400, 720}, {2000, 1300, 530}, {1800, 1200, 390}, {1000, 1100, 220}}}, + /* ADA4000DEP5AS */ + {4000, 0x4, 0xf7a, 0x10, 0x10, 890, + {{2200, 1400, 720}, {2000, 1300, 530}, {1800, 1200, 390}, {1000, 1100, 220}}}, + /* ADA3500DAA4BN */ + {3500, 0x4, 0x20f71, 0xe, 0xe, 670, + {{2000, 1350, 647}, {1800, 1300, 548}, {1000, 1100, 275}}}, + /* ADA3700DAA5BN */ + {3700, 0x4, 0x20f71, 0xe, 0xe, 853, + {{2000, 1350, 830}, {1800, 1300, 704}, {1000, 1100, 361}}}, + /* ADA4000DAA5BN */ + {4000, 0x4, 0x20f71, 0x10, 0x10, 853, + {{2200, 1350, 830}, {2000, 1300, 706}, {1800, 1250, 596}, {1000, 1100, 350}}}, + /* ADA3700DKA5CF */ + {3700, 0x4, 0x30f72, 0xe, 0xe, 853, + {{2000, 1350, 830}, {1800, 1300, 704}, {1000, 1100, 361}}}, + /* ADA4000DKA5CF */ + {4000, 0x4, 0x30f72, 0x10, 0x10, 853, + {{2200, 1350, 830}, {2000, 1300, 706}, {1800, 1250, 596}, {1000, 1100, 350}}}, + /* ADA3800DAA4BP */ + {3800, 0x4, 0x20ff0, 0x10, 0x10, 853, + {{2200, 1350, 830}, {2000, 1300, 706}, {1800, 1250, 596}, {1000, 1100, 350}}}, + /* ADA3000DIK4BI */ + {3000, 0x4, 0x10ff0, 0xa, 0xa, 670, + {{1000, 1100, 210}}}, + /* ADA3200DIK4BI */ + {3200, 0x4, 0x10ff0, 0xc, 0xc, 670, + {{1800, 1350, 560}, {1000, 1100, 210}}}, + /* ADA3500DIK4BI */ + {3500, 0x4, 0x10ff0, 0xe, 0xe, 670, + {{2000, 1350, 560}, {1800, 1300, 460}, {1000, 1100, 200}}}, + /* ADA3000DAA4BP */ + {3000, 0x4, 0x20ff0, 0xa, 0xa, 670, + {{1000, 1100, 296}}}, + /* ADA3200DAA4BP */ + {3200, 0x4, 0x20ff0, 0xc, 0xc, 670, + {{1800, 1350, 647}, {1000, 1100, 286}}}, + /* ADA3500DAA4BP */ + {3500, 0x4, 0x20ff0, 0xe, 0xe, 670, + {{2000, 1350, 647}, {1800, 1300, 548}, {1000, 1100, 275}}}, + /* ADA3000DAA4BW */ + {3000, 0x4, 0x20ff2, 0xa, 0xa, 670, + {{1000, 1100, 296}}}, + /* ADA3200DAA4BW */ + {3200, 0x4, 0x20ff2, 0xc, 0xc, 670, + {{1800, 1350, 647}, {1000, 1100, 286}}}, + /* ADA3500DAA4BW */ + {3500, 0x4, 0x20ff2, 0xe, 0xe, 670, + {{2000, 1350, 647}, {1800, 1300, 548}, {1000, 1100, 275}}}, + /* ADA3200DKA4CG */ + {3200, 0x4, 0x30ff2, 0xc, 0xc, 670, + {{1800, 1350, 647}, {1000, 1100, 286}}}, + /* ADA3800DAA4BW */ + {3800, 0x4, 0x20ff2, 0x10, 0x10, 853, + {{2200, 1350, 830}, {2000, 1300, 706}, {1800, 1250, 596}, {1000, 1100, 350}}}, + /* ADA3000AIK4BX */ + {3000, 0x4, 0x20fc2, 0xc, 0xc, 510, + {{1800, 1350, 428}, {1000, 1100, 189}}}, + /* ADAFX53DEP5AS */ + {53, 0x24, 0xf7a, 0x2a, 0x10, 890, + {{1200, 1100, 250}}}, + /* ADAFX55DEI5AS */ + {55, 0x24, 0xf7a, 0x2a, 0x12, 1040, + {{1200, 1100, 250}}}, + /* ADAFX55DAA5BN */ + {55, 0x24, 0x20f71, 0x2a, 0x12, 1040, + {{1200, 1100, 422}}}, + /* ADAFX57DAA5BN */ + {57, 0x24, 0x20f71, 0x2a, 0x14, 1040, + {{1200, 1100, 434}}}, + /* SDA3100AIP3AX */ + {3100, 0x22, 0xfc0, 0xa, 0xa, 620, + {{1000, 1100, 200}}}, + /* SDA2600AIO2BA */ + {2600, 0x22, 0x10fc0, 0x8, 0x8, 590, + {}}, + /* SDA2800AIO3BA */ + {2800, 0x22, 0x10fc0, 0x8, 0x8, 590, + {}}, + /* SDA3000AIO2BA */ + {3000, 0x22, 0x10fc0, 0xa, 0xa, 590, + {{1000, 1100, 190}}}, + /* SDA3100AIO3BA */ + {3100, 0x22, 0x10fc0, 0xa, 0xa, 590, + {{1000, 1100, 190}}}, + /* SDA3300AIO2BA */ + {3300, 0x22, 0x10fc0, 0xc, 0xc, 590, + {{1800, 1350, 488}, {1000, 1100, 180}}}, + /* SDA2500AIO3BX */ + {2500, 0x26, 0x20fc2, 0x6, 0x6, 590, + {}}, + /* SDA2600AIO2BX */ + {2600, 0x26, 0x20fc2, 0x8, 0x8, 590, + {}}, + /* SDA2800AIO3BX */ + {2800, 0x26, 0x20fc2, 0x8, 0x8, 590, + {}}, + /* SDA3000AIO2BX */ + {3000, 0x26, 0x20fc2, 0xa, 0xa, 590, + {{1000, 1100, 217}}}, /* SDA3100AIO3BX */ {3100, 0x26, 0x20fc2, 0xa, 0xa, 590, {{1000, 1100, 217}}}, + /* SDA3300AIO2BX */ + {3300, 0x26, 0x20fc2, 0xc, 0xc, 590, + {{1800, 1350, 496}, {1000, 1100, 207}}}, /* SDA3400AIO3BX */ {3400, 0x26, 0x20fc2, 0xc, 0xc, 590, {{1800, 1350, 496}, {1000, 1100, 207}}}, - /* ADA3200AIO4BX */ - {3200, 0x4, 0x20fc2, 0xe, 0xe, 670, - {{2000, 1350, 647}, {1800, 1300, 548}, {1000, 1100, 275}}}, + /* TMSMT32BQX4LD */ + {32, 0xb, 0x20f42, 0xa, 0x0, 240, + {{1600, 1150, 199}, {800, 900, 77}}}, + /* TMSMT34BQX5LD */ + {34, 0xb, 0x20f42, 0xa, 0x0, 240, + {{1600, 1150, 199}, {800, 900, 79}}}, + /* TMSMT37BQX5LD */ + {37, 0xb, 0x20f42, 0xc, 0x0, 250, + {{1800, 1150, 209}, {1600, 1100, 175}, {800, 900, 79}}}, + /* ADA4400DAA6CD */ + {4400, 0x5, 0x20f32, 0xe, 0xe, 1100, + {{2000, 1300, 1056}, {1800, 1250, 891}, {1000, 1100, 490}}}, + /* ADA4800DAA6CD */ + {4800, 0x5, 0x20f32, 0x10, 0x10, 1100, + {{2200, 1300, 1056}, {2000, 1250, 891}, {1800, 1200, 748}, {1000, 1100, 466}}}, + /* ADA3800DAA5BV */ + {3800, 0x5, 0x20fb1, 0xc, 0xc, 890, + {{1800, 1300, 846}, {1000, 1100, 401}}}, + /* ADA4200DAA5BV */ + {4200, 0x5, 0x20fb1, 0xe, 0xe, 890, + {{2000, 1300, 846}, {1800, 1250, 709}, {1000, 1100, 376}}}, + /* ADA4600DAA5BV */ + {4600, 0x5, 0x20fb1, 0x10, 0x10, 1100, + {{2200, 1300, 1056}, {2000, 1250, 891}, {1800, 1200, 748}, {1000, 1100, 466}}}, };
static int pstates_algorithm(u32 pcontrol_blk, u8 plen, u8 onlyBSP)