summaryrefslogtreecommitdiff
path: root/src/soc/amd
diff options
context:
space:
mode:
authorRichard Spiegel <richard.spiegel@silverbackltd.com>2018-01-03 16:10:30 -0700
committerMartin Roth <martinroth@google.com>2018-01-23 05:45:11 +0000
commit843f3abcbdafceff4e698bcf8504172f253f39b7 (patch)
tree46f98d46690e52f55b2dc62ad45038cf90daaf49 /src/soc/amd
parente539c8538666d949c01d7bcbd8c714cee5d0148e (diff)
downloadcoreboot-843f3abcbdafceff4e698bcf8504172f253f39b7.tar.xz
soc/amd/stoneyridge: Add new function sb_program_gpio()
Add new function sb_program_gpio to be called after AGESA init_reset and some point within ramstage. For AGESA init_reset, change amd/stoneyridge/bootblock/bootblock.c function bootblock_soc_init (add the function after the call to AGESA function). BUG=b:64140392 TEST=Build kahlee, grunt, gardenia. Change-Id: I38da26cd1e20617958a6b17d55b7d7c08b8a0230 Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com> Reviewed-on: https://review.coreboot.org/22987 Reviewed-by: Martin Roth <martinroth@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/amd')
-rw-r--r--src/soc/amd/stoneyridge/bootblock/bootblock.c2
-rw-r--r--src/soc/amd/stoneyridge/southbridge.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/src/soc/amd/stoneyridge/bootblock/bootblock.c b/src/soc/amd/stoneyridge/bootblock/bootblock.c
index 22b16273e2..4b58287ba5 100644
--- a/src/soc/amd/stoneyridge/bootblock/bootblock.c
+++ b/src/soc/amd/stoneyridge/bootblock/bootblock.c
@@ -123,6 +123,8 @@ void bootblock_soc_init(void)
post_code(0x37);
do_agesawrapper(agesawrapper_amdinitreset, "amdinitreset");
+ sb_program_gpio();
+
post_code(0x38);
/* APs will not exit amdinitearly */
do_agesawrapper(agesawrapper_amdinitearly, "amdinitearly");
diff --git a/src/soc/amd/stoneyridge/southbridge.c b/src/soc/amd/stoneyridge/southbridge.c
index 46906d09ab..735642f027 100644
--- a/src/soc/amd/stoneyridge/southbridge.c
+++ b/src/soc/amd/stoneyridge/southbridge.c
@@ -181,6 +181,14 @@ void sb_program_gpio(void)
printk(BIOS_SPEW, "End GPIO programming\n");
}
+static void sb_program_gpio_ram(void *unused)
+{
+ sb_program_gpio();
+}
+
+BOOT_STATE_INIT_ENTRY(BS_WRITE_TABLES, BS_ON_ENTRY,
+ sb_program_gpio_ram, NULL);
+
/**
* @brief Find the size of a particular wide IO
*