amd/stoneyridge: Move AmdInitEnv to ramstage

Relocate the call to AGESA in preparation for implementing postcar.
This change should have no net effect as long as the ordering is
maintained and AmdInitEnv stays later than CAR teardown.

BUG=b:66196801

Change-Id: I0e4a5fd979b06cf50907c62d51e55db63c5e00c5
Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Reviewed-on: https://review.coreboot.org/21613
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
diff --git a/src/soc/amd/stoneyridge/chip.c b/src/soc/amd/stoneyridge/chip.c
index 325d2ea..c230fe7 100644
--- a/src/soc/amd/stoneyridge/chip.c
+++ b/src/soc/amd/stoneyridge/chip.c
@@ -14,6 +14,8 @@
  */
 
 #include <chip.h>
+#include <bootstate.h>
+#include <console/console.h>
 #include <cpu/amd/mtrr.h>
 #include <cpu/cpu.h>
 #include <device/device.h>
@@ -21,6 +23,8 @@
 #include <soc/cpu.h>
 #include <soc/northbridge.h>
 #include <soc/southbridge.h>
+#include <agesawrapper.h>
+#include <agesawrapper_call.h>
 
 struct device_operations cpu_bus_ops = {
 	.read_resources	  = DEVICE_NOOP,
@@ -75,3 +79,11 @@
 	.init = &soc_init,
 	.final = &soc_final
 };
+
+static void do_initenv(void *unused)
+{
+	post_code(0x46);
+	AGESAWRAPPER(amdinitenv);
+}
+
+BOOT_STATE_INIT_ENTRY(BS_PRE_DEVICE, BS_ON_ENTRY, do_initenv, NULL);
diff --git a/src/soc/amd/stoneyridge/romstage.c b/src/soc/amd/stoneyridge/romstage.c
index b062c6c..6769a26 100644
--- a/src/soc/amd/stoneyridge/romstage.c
+++ b/src/soc/amd/stoneyridge/romstage.c
@@ -72,14 +72,10 @@
 
 	/*
 	 * This writes contents to DRAM backing before teardown.
-	 * todo: move CAR teardown to postcar implementation and
-	 *       relocate amdinitenv to ramstage.
+	 * todo: move CAR teardown to postcar implementation.
 	 */
 	chipset_teardown_car();
 
-	post_code(0x44);
-	AGESAWRAPPER(amdinitenv);
-
 	post_code(0x50);
 	run_ramstage();