soc/intel/xeon_sp: lock MSR_PPIN_CTL at BS_PAYLOAD_LOAD
commit8e4500aa57afd856aa7f0acc57d8e5ba68fea90a
authorTim Chu <Tim.Chu@quantatw.com>
Fri, 16 Dec 2022 08:45:53 +0000 (16 08:45 +0000)
committerMartin L Roth <gaumless@gmail.com>
Sun, 15 Jan 2023 02:29:51 +0000 (15 02:29 +0000)
treed497223f6dc03187793277f0957d4d257c4f146d
parentef1297689d8c12ca6db2c9295bcb6974e6b4e423
soc/intel/xeon_sp: lock MSR_PPIN_CTL at BS_PAYLOAD_LOAD

MSR_PPIN_CTL may need to be read more than once, so lock PPIN CTL
MSR at a late BS_PAYLOAD_LOAD boot state.

This MSR is in platform scope and must only be locked once on each
socket. Add a spinlock to do so.

Tested=On OCP Craterlake single socket, rdmsr -a 0x04e shows 1.

Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Change-Id: I8deb086339267cf36e41e16f189e1378f20b82f1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71144
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
src/soc/intel/xeon_sp/finalize.c
src/soc/intel/xeon_sp/util.c