soc/amd/stoneyridge/acpi: generate PPKG object in generate_cpu_entries

Generate the PPKG object in the generate_cpu_entries function instead of
generating the PCNT object that is the used in the PPKG method in
cpu.asl to provide the PPKG object. This both simplifies the code and
aligns Stoneyridge with the other AMD SoCs. This will also make the code
behave correctly in a case where the number of CPU cores/threads isn't a
power of two.

TEST=None, but equivalent change on Picasso was verified to not break
anything on Mandolin.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ib42d718102151a72a5fe812e83eb2eb4f9e7b611
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62539
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
This commit is contained in:
Felix Held 2022-03-02 15:16:17 +01:00
parent ebb6723115
commit 91d006c003
3 changed files with 3 additions and 42 deletions

View File

@ -2,6 +2,8 @@
#include <variant/thermal.h>
External (\PPKG, MethodObj)
/* Thermal Zone */
Scope (\_TZ)

View File

@ -151,7 +151,5 @@ void generate_cpu_entries(const struct device *device)
acpigen_pop_len();
}
acpigen_write_scope("\\");
acpigen_write_name_integer("PCNT", cores);
acpigen_pop_len();
acpigen_write_processor_package("PPKG", 0, cores);
}

View File

@ -4,42 +4,3 @@
Method (PNOT)
{
}
/*
* Processor Object
*/
/* These devices are created at runtime */
External (\PCNT, IntObj)
External (\_SB.P000, DeviceObj)
External (\_SB.P001, DeviceObj)
External (\_SB.P002, DeviceObj)
External (\_SB.P003, DeviceObj)
External (\_SB.P004, DeviceObj)
External (\_SB.P005, DeviceObj)
External (\_SB.P006, DeviceObj)
External (\_SB.P007, DeviceObj)
/* Return a package containing enabled processor entries */
Method (PPKG)
{
If (\PCNT >= 4) {
Return (Package ()
{
\_SB.P000,
\_SB.P001,
\_SB.P002,
\_SB.P003
})
} ElseIf (\PCNT>= 2) {
Return (Package ()
{
\_SB.P000,
\_SB.P001
})
} Else {
Return (Package ()
{
\_SB.P000
})
}
}