diff options
author | Felix Held <felix-coreboot@felixheld.de> | 2022-03-02 15:00:59 +0100 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-03-03 18:33:43 +0000 |
commit | cf2eeff3cf9f16888881fde0efd220141347c498 (patch) | |
tree | c0edc463b47b1b117a3021444e0f7360eefaf7ff | |
parent | af4bac9e50ed7e5db76028c9efb914ca89fda6b0 (diff) |
soc/amd/picasso/acpi: generate PPKG object in generate_cpu_entries call
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 Picasso with Cezanne and Sabrina. 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=Mandolin still boots successfully to Linux desktop and dmesg
doesn't show any any possibly related problems.
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ifb84435345c6d8c5d11a8b42e5538cfb86432780
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62517
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
-rw-r--r-- | src/mainboard/google/zork/variants/baseboard/include/baseboard/acpi/thermal.asl | 2 | ||||
-rw-r--r-- | src/soc/amd/picasso/acpi.c | 4 | ||||
-rw-r--r-- | src/soc/amd/picasso/acpi/cpu.asl | 51 |
3 files changed, 3 insertions, 54 deletions
diff --git a/src/mainboard/google/zork/variants/baseboard/include/baseboard/acpi/thermal.asl b/src/mainboard/google/zork/variants/baseboard/include/baseboard/acpi/thermal.asl index 5667248015..1bcadd67e3 100644 --- a/src/mainboard/google/zork/variants/baseboard/include/baseboard/acpi/thermal.asl +++ b/src/mainboard/google/zork/variants/baseboard/include/baseboard/acpi/thermal.asl @@ -2,6 +2,8 @@ #include <variant/thermal.h> +External (\PPKG, MethodObj) + /* Thermal Zone */ Scope (\_TZ) diff --git a/src/soc/amd/picasso/acpi.c b/src/soc/amd/picasso/acpi.c index cd8a0a0968..9c798caffd 100644 --- a/src/soc/amd/picasso/acpi.c +++ b/src/soc/amd/picasso/acpi.c @@ -355,7 +355,5 @@ void generate_cpu_entries(const struct device *device) acpigen_pop_len(); } - acpigen_write_scope("\\"); - acpigen_write_name_integer("PCNT", logical_cores); - acpigen_pop_len(); + acpigen_write_processor_package("PPKG", 0, logical_cores); } diff --git a/src/soc/amd/picasso/acpi/cpu.asl b/src/soc/amd/picasso/acpi/cpu.asl index b7395fcaca..29b5b5a448 100644 --- a/src/soc/amd/picasso/acpi/cpu.asl +++ b/src/soc/amd/picasso/acpi/cpu.asl @@ -7,54 +7,3 @@ Method (PNOT) /* Report AC/DC state to ALIB using WAL1() */ \WAL1 () } - -/* - * Processor Object - */ -/* These devices are created at runtime */ -External (\PCNT, IntObj) -External (\_SB.C000, DeviceObj) -External (\_SB.C001, DeviceObj) -External (\_SB.C002, DeviceObj) -External (\_SB.C003, DeviceObj) -External (\_SB.C004, DeviceObj) -External (\_SB.C005, DeviceObj) -External (\_SB.C006, DeviceObj) -External (\_SB.C007, DeviceObj) - -/* Return a package containing enabled processor entries */ -Method (PPKG) -{ - If (\PCNT >= 8) { - Return (Package () - { - \_SB.C000, - \_SB.C001, - \_SB.C002, - \_SB.C003, - \_SB.C004, - \_SB.C005, - \_SB.C006, - \_SB.C007 - }) - } ElseIf (\PCNT >= 4) { - Return (Package () - { - \_SB.C000, - \_SB.C001, - \_SB.C002, - \_SB.C003 - }) - } ElseIf (\PCNT >= 2) { - Return (Package () - { - \_SB.C000, - \_SB.C001 - }) - } Else { - Return (Package () - { - \_SB.C000 - }) - } -} |