summaryrefslogtreecommitdiff
path: root/src/cpu/amd
diff options
context:
space:
mode:
authorJukka Rantala <jukka.rantala@gmail.com>2012-07-20 02:10:16 +0300
committerPatrick Georgi <patrick@georgi-clan.de>2012-07-22 17:01:13 +0200
commita555e55d15298da56f6752d01e4f8a04ae1a4eb8 (patch)
treee024700c9e23a66c11fa40a513c74db07a6c1671 /src/cpu/amd
parent557ecf2d31acef9ddcf7e0c9b47961c0ad36f57e (diff)
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> Reviewed-on: http://review.coreboot.org/1244 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/cpu/amd')
-rw-r--r--src/cpu/amd/model_fxx/powernow_acpi.c176
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 81b1067398..2a6e0259a6 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)