SPEEDSTEP: write _CST tables
Change-Id: Idb4b57044808918de343d31519768d0986840f01 Signed-off-by: Sven Schnelle <svens@stackframe.org> Reviewed-on: http://review.coreboot.org/321 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
parent
0b86c76cfc
commit
5460097041
|
@ -66,4 +66,6 @@ int acpigen_write_resourcetemplate_footer(int len);
|
||||||
int acpigen_write_mainboard_resource_template(void);
|
int acpigen_write_mainboard_resource_template(void);
|
||||||
int acpigen_write_mainboard_resources(const char *scope, const char *name);
|
int acpigen_write_mainboard_resources(const char *scope, const char *name);
|
||||||
|
|
||||||
|
int get_cst_entries(struct cst_entry **) __attribute__((weak));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -62,6 +62,11 @@ static int get_fsb(void)
|
||||||
return 200;
|
return 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_cst_entries(struct cst_entry **entries __attribute__((unused)))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void generate_cpu_entries(void)
|
void generate_cpu_entries(void)
|
||||||
{
|
{
|
||||||
int len_pr, len_ps;
|
int len_pr, len_ps;
|
||||||
|
@ -70,6 +75,9 @@ void generate_cpu_entries(void)
|
||||||
int totalcores = determine_total_number_of_cores();
|
int totalcores = determine_total_number_of_cores();
|
||||||
int cores_per_package = (cpuid_ebx(1)>>16) & 0xff;
|
int cores_per_package = (cpuid_ebx(1)>>16) & 0xff;
|
||||||
int numcpus = totalcores/cores_per_package; // this assumes that all CPUs share the same layout
|
int numcpus = totalcores/cores_per_package; // this assumes that all CPUs share the same layout
|
||||||
|
int count;
|
||||||
|
struct cst_entry *cst_entries;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "Found %d CPU(s) with %d core(s) each.\n", numcpus, cores_per_package);
|
printk(BIOS_DEBUG, "Found %d CPU(s) with %d core(s) each.\n", numcpus, cores_per_package);
|
||||||
|
|
||||||
for (cpuID=1; cpuID <=numcpus; cpuID++) {
|
for (cpuID=1; cpuID <=numcpus; cpuID++) {
|
||||||
|
@ -81,6 +89,8 @@ void generate_cpu_entries(void)
|
||||||
len_pr = acpigen_write_processor((cpuID-1)*cores_per_package+coreID-1, pcontrol_blk, plen);
|
len_pr = acpigen_write_processor((cpuID-1)*cores_per_package+coreID-1, pcontrol_blk, plen);
|
||||||
len_pr += acpigen_write_empty_PCT();
|
len_pr += acpigen_write_empty_PCT();
|
||||||
len_pr += acpigen_write_PSD_package(cpuID-1,cores_per_package,SW_ANY);
|
len_pr += acpigen_write_PSD_package(cpuID-1,cores_per_package,SW_ANY);
|
||||||
|
if ((count = get_cst_entries(&cst_entries)) > 0)
|
||||||
|
len_pr += acpigen_write_CST_package(cst_entries, count);
|
||||||
len_pr += acpigen_write_name("_PSS");
|
len_pr += acpigen_write_name("_PSS");
|
||||||
|
|
||||||
int max_states=8;
|
int max_states=8;
|
||||||
|
|
Loading…
Reference in New Issue