<p>You-Cheng Syu has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/c/coreboot/+/30331">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">google/kukui: Move some initialization from bootblock to verstage<br><br>MT8183 only allows booting from eMMC, so we have to do eMMC emulation<br>from an external source, for example EC, which makes the size of<br>bootblock very important.<br><br>This CL moves some initialization steps from bootblock to verstage. This<br>will save us about 7400 bytes in bootblock (before compression).<br><br>BRANCH=none<br>BUG=b:120588396<br>TEST=manually boot into kernel<br><br>Change-Id: I9968d88c54283ef334d1ab975086d4adb3363bd6<br>Signed-off-by: You-Cheng Syu <youcheng@google.com><br>---<br>M src/mainboard/google/kukui/Kconfig<br>M src/mainboard/google/kukui/Makefile.inc<br>M src/mainboard/google/kukui/bootblock.c<br>M src/mainboard/google/kukui/verstage.c<br>M src/soc/mediatek/mt8183/Makefile.inc<br>5 files changed, 22 insertions(+), 17 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/31/30331/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/mainboard/google/kukui/Kconfig b/src/mainboard/google/kukui/Kconfig</span><br><span>index 5be904c..9b56d09 100644</span><br><span>--- a/src/mainboard/google/kukui/Kconfig</span><br><span>+++ b/src/mainboard/google/kukui/Kconfig</span><br><span>@@ -6,6 +6,7 @@</span><br><span> config BOARD_SPECIFIC_OPTIONS</span><br><span>      def_bool y</span><br><span>   select SOC_MEDIATEK_MT8183</span><br><span style="color: hsl(120, 100%, 40%);">+    select SOC_MEDIATEK_MT8183_MINIMAL_BOOTBLOCK</span><br><span>         select BOARD_ROMSIZE_KB_8192</span><br><span>         select MAINBOARD_HAS_CHROMEOS</span><br><span>        select COMMON_CBFS_SPI_WRAPPER</span><br><span>diff --git a/src/mainboard/google/kukui/Makefile.inc b/src/mainboard/google/kukui/Makefile.inc</span><br><span>index 5fe073a..28e7eb9 100644</span><br><span>--- a/src/mainboard/google/kukui/Makefile.inc</span><br><span>+++ b/src/mainboard/google/kukui/Makefile.inc</span><br><span>@@ -1,6 +1,5 @@</span><br><span> bootblock-y += boardid.c</span><br><span> bootblock-y += bootblock.c</span><br><span style="color: hsl(0, 100%, 40%);">-bootblock-y += chromeos.c</span><br><span> bootblock-y += memlayout.ld</span><br><span> decompressor-y += memlayout.ld</span><br><span> </span><br><span>diff --git a/src/mainboard/google/kukui/bootblock.c b/src/mainboard/google/kukui/bootblock.c</span><br><span>index 0728588..79f20a3 100644</span><br><span>--- a/src/mainboard/google/kukui/bootblock.c</span><br><span>+++ b/src/mainboard/google/kukui/bootblock.c</span><br><span>@@ -14,25 +14,9 @@</span><br><span>  */</span><br><span> </span><br><span> #include <bootblock_common.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <gpio.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <soc/gpio.h></span><br><span> #include <soc/spi.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#include "gpio.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define BOOTBLOCK_EN_L (GPIO(KPROW0))</span><br><span style="color: hsl(0, 100%, 40%);">-#define AP_IN_SLEEP_L (GPIO(SRCLKENA0))</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> void bootblock_mainboard_init(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    setup_chromeos_gpios();</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Turn on real eMMC. */</span><br><span style="color: hsl(0, 100%, 40%);">-        gpio_output(BOOTBLOCK_EN_L, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Declare we are in S0 */</span><br><span style="color: hsl(0, 100%, 40%);">-      gpio_output(AP_IN_SLEEP_L, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  mtk_spi_init(CONFIG_EC_GOOGLE_CHROMEEC_SPI_BUS, SPI_PAD0_MASK, 6 * MHz);</span><br><span>     mtk_spi_init(CONFIG_BOOT_DEVICE_SPI_FLASH_BUS, SPI_PAD0_MASK, 26 * MHz);</span><br><span> }</span><br><span>diff --git a/src/mainboard/google/kukui/verstage.c b/src/mainboard/google/kukui/verstage.c</span><br><span>index 9bf93bf..2133565 100644</span><br><span>--- a/src/mainboard/google/kukui/verstage.c</span><br><span>+++ b/src/mainboard/google/kukui/verstage.c</span><br><span>@@ -14,13 +14,32 @@</span><br><span>  */</span><br><span> </span><br><span> #include <security/vboot/vboot_common.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <gpio.h></span><br><span> #include <soc/gpio.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <soc/pll.h></span><br><span> #include <soc/spi.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <soc/wdt.h></span><br><span> </span><br><span> #include "gpio.h"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define BOOTBLOCK_EN_L (GPIO(KPROW0))</span><br><span style="color: hsl(120, 100%, 40%);">+#define AP_IN_SLEEP_L (GPIO(SRCLKENA0))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> void verstage_mainboard_init(void)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+   mt_pll_init();</span><br><span style="color: hsl(120, 100%, 40%);">+        mtk_wdt_init();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     setup_chromeos_gpios();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Turn on real eMMC. */</span><br><span style="color: hsl(120, 100%, 40%);">+      gpio_output(BOOTBLOCK_EN_L, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Declare we are in S0 */</span><br><span style="color: hsl(120, 100%, 40%);">+    gpio_output(AP_IN_SLEEP_L, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      mtk_spi_init(CONFIG_EC_GOOGLE_CHROMEEC_SPI_BUS, SPI_PAD0_MASK, 6 * MHz);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   mtk_spi_init(CONFIG_DRIVER_TPM_SPI_BUS, SPI_PAD0_MASK, 1 * MHz);</span><br><span>     gpio_eint_configure(CR50_IRQ, IRQ_TYPE_EDGE_RISING);</span><br><span> }</span><br><span>diff --git a/src/soc/mediatek/mt8183/Makefile.inc b/src/soc/mediatek/mt8183/Makefile.inc</span><br><span>index 7faabac..8d8bc67 100644</span><br><span>--- a/src/soc/mediatek/mt8183/Makefile.inc</span><br><span>+++ b/src/soc/mediatek/mt8183/Makefile.inc</span><br><span>@@ -18,6 +18,8 @@</span><br><span> </span><br><span> verstage-y += auxadc.c</span><br><span> verstage-y += ../common/gpio.c gpio.c</span><br><span style="color: hsl(120, 100%, 40%);">+verstage-$(CONFIG_SOC_MEDIATEK_MT8183_MINIMAL_BOOTBLOCK) += ../common/pll.c</span><br><span style="color: hsl(120, 100%, 40%);">+verstage-$(CONFIG_SOC_MEDIATEK_MT8183_MINIMAL_BOOTBLOCK) += pll.c</span><br><span> verstage-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c</span><br><span> verstage-y += ../common/timer.c</span><br><span> verstage-y += ../common/uart.c</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/c/coreboot/+/30331">change 30331</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/c/coreboot/+/30331"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9968d88c54283ef334d1ab975086d4adb3363bd6 </div>
<div style="display:none"> Gerrit-Change-Number: 30331 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: You-Cheng Syu <youcheng@google.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>