mediatek/mt8183: Enable bootblock self-decompression
MT8183 only allows booting from eMMC, so we have to do eMMC emulation from an external source, for example EC, which makes the size of bootblock very important. A fully functional bootblock (that can boot into verstage or romstage) is about 38000 bytes. If self decompression (CONFIG_COMPRESS_BOOTBLOCK) is enabled, only 25088 (66%) bytes are needed. Inspired from crosreview.com/1070018. BUG=b:80501386 TEST=manually flashed into kukui and boots into romstage. Change-Id: I7a739866a4ea3bcafe2ff7b9e88d5ed00f3f3e40 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://review.coreboot.org/27599 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
4c067c8550
commit
03e9cb9b35
|
@ -1,4 +1,5 @@
|
|||
bootblock-y += memlayout.ld
|
||||
decompressor-y += memlayout.ld
|
||||
|
||||
verstage-y += chromeos.c
|
||||
verstage-y += memlayout.ld
|
||||
|
|
|
@ -10,6 +10,7 @@ config SOC_MEDIATEK_MT8183
|
|||
select GENERIC_UDELAY
|
||||
select HAVE_UART_SPECIAL
|
||||
select HAVE_MONOTONIC_TIMER
|
||||
select COMPRESS_BOOTBLOCK
|
||||
|
||||
if SOC_MEDIATEK_MT8183
|
||||
|
||||
|
|
|
@ -11,6 +11,10 @@ bootblock-$(CONFIG_DRIVERS_UART) += ../common/uart.c
|
|||
endif
|
||||
bootblock-y += ../common/wdt.c
|
||||
|
||||
decompressor-y += decompressor.c
|
||||
decompressor-y += ../common/mmu_operations.c
|
||||
decompressor-y += ../common/timer.c
|
||||
|
||||
verstage-y += ../common/gpio.c gpio.c
|
||||
verstage-$(CONFIG_SPI_FLASH) += spi.c
|
||||
verstage-y += ../common/timer.c
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
|
||||
void bootblock_soc_init(void)
|
||||
{
|
||||
mtk_mmu_init();
|
||||
mt_pll_init();
|
||||
mtk_wdt_init();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright 2018 Google Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <bootblock_common.h>
|
||||
#include <soc/mmu_operations.h>
|
||||
|
||||
void decompressor_soc_init(void)
|
||||
{
|
||||
mtk_mmu_init();
|
||||
}
|
|
@ -39,9 +39,9 @@ SECTIONS
|
|||
SRAM_END(0x00120000)
|
||||
|
||||
SRAM_L2C_START(0x00200000)
|
||||
BOOTBLOCK(0x00201000, 85K)
|
||||
VERSTAGE(0x00217000, 114K)
|
||||
ROMSTAGE(0x00233800, 92K)
|
||||
OVERLAP_DECOMPRESSOR_ROMSTAGE(0x000201000, 92K)
|
||||
BOOTBLOCK(0x00227000, 89K)
|
||||
VERSTAGE(0x0023E000, 114K)
|
||||
SRAM_L2C_END(0x00280000)
|
||||
|
||||
DRAM_START(0x40000000)
|
||||
|
|
Loading…
Reference in New Issue