Attention is currently required from: Stefan Ott, Nico Huber, Kyösti Mälkki, Alexander Couzens, Elyes Haouas.
Arthur Heymans has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/69447 )
Change subject: cpu/intel/socket_*: Clean up Kconfig files ......................................................................
Patch Set 4:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/69447/comment/8bc3fcf8_dcede6eb PS3, Line 10: Move MAX_CPUS to mainboards.
The problem with having the defaults for `MAX_CPUS` in `cpu/intel/model_*/Kconfig` is that sockets that support multiple CPU models (e.g. LGA775) could end up using an incorrect default depending on the order in which the CPU models' Kconfig files are included. This happens because of the way Kconfig handles defaults (it uses the first applicable value it finds).
It's true that the status quo for `MAX_CPUS` defaults in pre-SoC Intel platforms isn't very consistent. There's some defaults in CPU-model Kconfig (model_2065x, model_206ax, haswell: the corresponding socket Kconfigs got dropped for the sake of simplicity), others in CPU-socket Kconfig (socket_BGA956, socket_FCBGA559, socket_p) and others in northbridge Kconfig (i945, x4x).
If you'd like to clean some things up, you can start with moving `MAX_CPUS` defaults from the northbridges to the corresponding CPU sockets. i945 is paired with LGA775 and socket_441 (both sockets support up to 4 CPUs), and x4x is only paired with LGA775 in coreboot.
Not true. i945 only supports dual core CPUs. Quad cores fail to boot regardless of them actually fitting in the socket and this is a hardware limitation afaik. Putting that limitation in the northbridge code is appropriate.
Note: Boards that pair x4x with socket_p exist (e.g. Dell Precision M6400), but they're rare and none of them has coreboot support yet. While both socket_p and x4x provide the same default for `MAX_CPUS` (4), moving the values to sockets would remove the redundancy.