summaryrefslogtreecommitdiff
path: root/src/soc/rockchip/rk3399/include
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2018-05-14 11:43:30 -0700
committerJulius Werner <jwerner@chromium.org>2018-05-22 02:44:33 +0000
commit8f25a6680e23663f4c88f7fe61a7a62e8fe284c4 (patch)
treebb18eb627d3381267506d9fa1ff762c0c905f30d /src/soc/rockchip/rk3399/include
parent99f4683adf3203d11c164b15a5455e778709a3e0 (diff)
downloadcoreboot-8f25a6680e23663f4c88f7fe61a7a62e8fe284c4.tar.xz
rk3399: Enable bootblock compression
This patch enables the new bootblock compression feature on RK3399, which requires moving MMU initialization into the decompressor stage and linking the decompressor (rather than the bootblock) into the entry point jumped to by the masked ROM. RK3399's masked ROM seems to be using a bitbang SPI driver to load us (very long pauses between clocking in each byte), with an effective data rate of about 1Mbit. Bootblock loading time (as measured on a SPI analyzer) is reduced by almost 100ms (about a third), while the decompression time is trivial (under 1ms). Change-Id: I48967ca5bb51cc4481d69dbacb4ca3c6b96cccea Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/26341 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/rockchip/rk3399/include')
-rw-r--r--src/soc/rockchip/rk3399/include/soc/memlayout.ld5
-rw-r--r--src/soc/rockchip/rk3399/include/soc/mmu_operations.h1
2 files changed, 3 insertions, 3 deletions
diff --git a/src/soc/rockchip/rk3399/include/soc/memlayout.ld b/src/soc/rockchip/rk3399/include/soc/memlayout.ld
index 04ffce66ce..e181a35307 100644
--- a/src/soc/rockchip/rk3399/include/soc/memlayout.ld
+++ b/src/soc/rockchip/rk3399/include/soc/memlayout.ld
@@ -31,8 +31,9 @@ SECTIONS
SRAM_START(0xFF8C0000)
PRERAM_CBFS_CACHE(0xFF8C0000, 7K)
TIMESTAMP(0xFF8C1C00, 1K)
- BOOTBLOCK(0xFF8C2004, 36K - 4)
- OVERLAP_VERSTAGE_ROMSTAGE(0xFF8CB000, 92K)
+ /* 0xFF8C2004 is the entry point address the masked ROM will jump to. */
+ OVERLAP_DECOMPRESSOR_VERSTAGE_ROMSTAGE(0xFF8C2004, 88K - 4)
+ BOOTBLOCK(0xFF8D8000, 40K)
VBOOT2_WORK(0XFF8E2000, 12K)
TTB(0xFF8E5000, 24K)
PRERAM_CBMEM_CONSOLE(0xFF8EB000, 8K)
diff --git a/src/soc/rockchip/rk3399/include/soc/mmu_operations.h b/src/soc/rockchip/rk3399/include/soc/mmu_operations.h
index d8a6016349..5f06a451c1 100644
--- a/src/soc/rockchip/rk3399/include/soc/mmu_operations.h
+++ b/src/soc/rockchip/rk3399/include/soc/mmu_operations.h
@@ -26,5 +26,4 @@ enum {
UNCACHED_MEM = MA_MEM | MA_NS | MA_RW | MA_MEM_NC,
};
-void rockchip_mmu_init(void);
#endif