soc/amd/cezanne: Move APOB update into ramstage

There is no technical reason this needs to be done in romstage. Moving
it into ramstage allow us (in future CLs) to use threads to pre-load
the apob from SPI.

BUG=b:179699789
TEST=Boot and Ezkinil and Guybrush and verify APOB update still work

Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I960437ff4400645de5a3e7447fcdbc52de85943e
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56227
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
diff --git a/src/soc/amd/common/block/apob/apob_cache.c b/src/soc/amd/common/block/apob/apob_cache.c
index 34d5472..c41627b 100644
--- a/src/soc/amd/common/block/apob/apob_cache.c
+++ b/src/soc/amd/common/block/apob/apob_cache.c
@@ -4,6 +4,7 @@
 #include <amdblocks/apob_cache.h>
 #include <assert.h>
 #include <boot_device.h>
+#include <bootstate.h>
 #include <commonlib/region.h>
 #include <console/console.h>
 #include <fmap.h>
@@ -96,7 +97,7 @@
 }
 
 /* Save APOB buffer to flash */
-void soc_update_apob_cache(void)
+static void soc_update_apob_cache(void *unused)
 {
 	struct apob_base_header *apob_rom;
 	struct region_device write_rdev;
@@ -183,3 +184,4 @@
 	 */
 	return get_apob_nv_address();
 }
+BOOT_STATE_INIT_ENTRY(BS_POST_DEVICE, BS_ON_EXIT, soc_update_apob_cache, NULL);