soc/intel/xeon_sp/cpx: Implement hide/unhide P2SB traditional dance

Perform the P2SB hide/unhide trick. This is needed so that BAR0
(0xfd000000) is not reclaimed by resource allocator, since it can
not deal with a device that does not exist (hidden).

Signed-off-by: Andrey Petrov <anpetrov@fb.com>
Change-Id: I5db0ae4e31d72ba86efba5728b2afc68d3180d5d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40921
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Maxim Polyakov <max.senia.poliak@gmail.com>
diff --git a/src/soc/intel/xeon_sp/cpx/chip.c b/src/soc/intel/xeon_sp/cpx/chip.c
index 196f3df..0a4cea6 100644
--- a/src/soc/intel/xeon_sp/cpx/chip.c
+++ b/src/soc/intel/xeon_sp/cpx/chip.c
@@ -7,6 +7,7 @@
 #include <cpu/x86/lapic.h>
 #include <device/pci.h>
 #include <fsp/api.h>
+#include <intelblocks/p2sb.h>
 #include <soc/cpu.h>
 #include <soc/ramstage.h>
 #include <soc/pm.h>
@@ -73,7 +74,7 @@
 
 static void chip_final(void *data)
 {
-	/* nothing implemented yet */
+	p2sb_hide();
 }
 
 static void chip_init(void *data)
@@ -82,6 +83,7 @@
 	fsp_silicon_init(false);
 	pch_enable_ioapic(NULL);
 	setup_lapic();
+	p2sb_unhide();
 }
 
 struct chip_operations soc_intel_xeon_sp_cpx_ops = {