Mathew King has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/51294 )
Change subject: mb/google/guybrush: Add GPIO setup in verstage ......................................................................
mb/google/guybrush: Add GPIO setup in verstage
BUG=b:181961514 TEST=builds
Signed-off-by: Mathew King mathewk@chromium.org Change-Id: I289a2ad1adc5dcc33c5863d6138f66b9b6dc6590 --- M src/mainboard/google/guybrush/Makefile.inc M src/mainboard/google/guybrush/variants/baseboard/Makefile.inc M src/mainboard/google/guybrush/variants/baseboard/gpio.c M src/mainboard/google/guybrush/variants/baseboard/include/baseboard/variants.h A src/mainboard/google/guybrush/verstage.c 5 files changed, 41 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/94/51294/1
diff --git a/src/mainboard/google/guybrush/Makefile.inc b/src/mainboard/google/guybrush/Makefile.inc index f843c1f..6a4eb5d 100644 --- a/src/mainboard/google/guybrush/Makefile.inc +++ b/src/mainboard/google/guybrush/Makefile.inc @@ -6,6 +6,8 @@ ramstage-y += ec.c ramstage-$(CONFIG_CHROMEOS) += chromeos.c
+verstage-y += verstage.c + subdirs-y += variants/baseboard subdirs-y += variants/$(VARIANT_DIR)
diff --git a/src/mainboard/google/guybrush/variants/baseboard/Makefile.inc b/src/mainboard/google/guybrush/variants/baseboard/Makefile.inc index 7c092e4..3b86b93 100644 --- a/src/mainboard/google/guybrush/variants/baseboard/Makefile.inc +++ b/src/mainboard/google/guybrush/variants/baseboard/Makefile.inc @@ -2,4 +2,6 @@
ramstage-y += gpio.c
+verstage-y += gpio.c + smm-y += gpio.c diff --git a/src/mainboard/google/guybrush/variants/baseboard/gpio.c b/src/mainboard/google/guybrush/variants/baseboard/gpio.c index 68c7d29..270cc86 100644 --- a/src/mainboard/google/guybrush/variants/baseboard/gpio.c +++ b/src/mainboard/google/guybrush/variants/baseboard/gpio.c @@ -168,6 +168,11 @@ /* TODO: Fill bootblock gpio configuration */ };
+/* Early GPIO configuration in verstage */ +static const struct soc_amd_gpio verstage_gpio_table[] = { + /* TODO: Fill verstage gpio configuration */ +}; + /* GPIO configuration for sleep */ static const struct soc_amd_gpio sleep_gpio_table[] = { /* TODO: Fill sleep gpio configuration */ @@ -190,6 +195,12 @@ return bootblock_gpio_table; }
+const struct soc_amd_gpio *__weak variant_verstage_gpio_table(size_t *size) +{ + *size = ARRAY_SIZE(verstage_gpio_table); + return verstage_gpio_table; +} + const __weak struct soc_amd_gpio *variant_sleep_gpio_table(size_t *size) { *size = ARRAY_SIZE(sleep_gpio_table); diff --git a/src/mainboard/google/guybrush/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/guybrush/variants/baseboard/include/baseboard/variants.h index 91a2f14..ae3c63c 100644 --- a/src/mainboard/google/guybrush/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/guybrush/variants/baseboard/include/baseboard/variants.h @@ -21,6 +21,9 @@ /* This function provides GPIO init in bootblock. */ const struct soc_amd_gpio *variant_bootblock_gpio_table(size_t *size);
+/* This function provides GPIO init in verstage. */ +const struct soc_amd_gpio *variant_verstage_gpio_table(size_t *size); + /* This function provides GPIO settings before entering sleep. */ const struct soc_amd_gpio *variant_sleep_gpio_table(size_t *size);
diff --git a/src/mainboard/google/guybrush/verstage.c b/src/mainboard/google/guybrush/verstage.c new file mode 100644 index 0000000..276715a --- /dev/null +++ b/src/mainboard/google/guybrush/verstage.c @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include <amdblocks/gpio_banks.h> +#include <baseboard/variants.h> +#include <security/vboot/vboot_common.h> + +static void setup_gpio(void) +{ + const struct soc_amd_gpio *gpios; + size_t num_gpios; + + gpios = variant_verstage_gpio_table(&num_gpios); + program_gpios(gpios, num_gpios); +} + +void verstage_mainboard_early_init(void) +{ + setup_gpio(); +} + +void verstage_mainboard_init(void) +{ +}