Attention is currently required from: Tim Wawrzynczak, Sridhar Siricilla, Arthur Heymans, Patrick Rudolph. Arthur Heymans has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/59360 )
Change subject: soc/intel/alderlake, soc/common: Add method to determine the cpu type mask ......................................................................
Patch Set 3:
(5 comments)
File src/soc/intel/common/block/acpi/Kconfig:
https://review.coreboot.org/c/coreboot/+/59360/comment/1f2b6316_c922be04 PS3, Line 50: Generate CPPCv3 entries for Intel hybrid processors That is not what the code does in this CL.
File src/soc/intel/common/block/acpi/cpu_hybrid.c:
https://review.coreboot.org/c/coreboot/+/59360/comment/9aa2d3ba_11d05fce PS1, Line 25: return global_cpu_type_bitmask;
The bitmask is updated in the multi core context, but accessed by only BSP. So, it's a thread-safe.
That's not necesarily threadsafe. You need to make sure the multi core code is done doing this before accessing this variable on the BSP. Where is this checked?
File src/soc/intel/common/block/acpi/cpu_hybrid.c:
https://review.coreboot.org/c/coreboot/+/59360/comment/0bc75f28_820bf204 PS3, Line 37: set_cpu_type_bitmask Is it really useful to encode this information in a uint32_t? It won't scale past 32 big cores? Why not add the cpu type to struct device?
https://review.coreboot.org/c/coreboot/+/59360/comment/a15d897e_fbd45c40 PS3, Line 43: get_cpu_index global_cpu_type_bitmaks will overflow if there are more than 32 CPUs.
File src/soc/intel/common/block/include/intelblocks/acpi.h:
https://review.coreboot.org/c/coreboot/+/59360/comment/50ed37a6_a0e9e5d4 PS3, Line 11: : #define CPUID_CORE_TYPE_INTEL_ATOM 0x20 : #define CPUID_CORE_TYPE_INTEL_CORE 0x40 Maybe use an enum for this and also in the return value for the functions.