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>
This commit is contained in:
Jukka Rantala 2012-07-20 02:10:16 +03:00 committed by Patrick Georgi
parent 557ecf2d31
commit a555e55d15
1 changed files with 174 additions and 8 deletions

View File

@ -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}}},
/* SDA3100AIO3BX */
{3100, 0x26, 0x20fc2, 0xa, 0xa, 590,
{{1000, 1100, 217}}},
/* 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}}},
/* 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}}},
/* 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)