rk3288: Disable ramstage compression by default
The ramstage is loaded from romstage, so the LZMA scratchpad buffer used to decompress it is part of the romstage BSS in SRAM. On RK3288, SRAM cannot be cached which makes the decompression so slow that it's faster to just load an uncompressed image from SPI. Disable ramstage compression on this SoC to account for that. Since Kconfig is weird and we cannot disable an option that is enabled by default with 'select', we need to rearrange menu groups so that 'mainboard' and 'chipset' come before 'General setup', which allows the subdirectory Kconfig files sourced by them to override the generic defaults specified later. BRANCH=None BUG=None TEST=Built for Pinky and Falco, confirmed that the former didn't have COMPRESS_RAMSTAGE in its .config and the latter still did. Measured a speed-up of about 35ms on Pinky. (For some weird reason, the decompression of the payload also takes way longer than on other platforms, although not as long as the ramstage. I have no explanation for that and can't really think of a good way to figure it out... maybe the Cortex-A12 is just terrible at some operation that LZMA uses a lot?) Change-Id: I9f67f7537696ec09496483b16b59a8b73f4cb11b Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/234192 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
c230585f43
commit
1f14762189
2 changed files with 50 additions and 43 deletions
86
src/Kconfig
86
src/Kconfig
|
|
@ -20,6 +20,49 @@
|
|||
|
||||
mainmenu "coreboot configuration"
|
||||
|
||||
source src/mainboard/Kconfig
|
||||
|
||||
# This option is used to set the architecture of a mainboard to X86.
|
||||
# It is usually set in mainboard/*/Kconfig.
|
||||
config ARCH_X86
|
||||
bool
|
||||
default n
|
||||
select PCI
|
||||
|
||||
config ARCH_ARM
|
||||
bool
|
||||
default n
|
||||
|
||||
config ARCH_ARM64
|
||||
bool
|
||||
default n
|
||||
|
||||
config ARCH_MIPS
|
||||
bool
|
||||
default n
|
||||
|
||||
source src/arch/x86/Kconfig
|
||||
source src/arch/arm/Kconfig
|
||||
source src/arch/arm64/Kconfig
|
||||
source src/arch/mips/Kconfig
|
||||
|
||||
menu "Chipset"
|
||||
|
||||
comment "CPU"
|
||||
source src/cpu/Kconfig
|
||||
comment "Northbridge"
|
||||
source src/northbridge/Kconfig
|
||||
comment "Southbridge"
|
||||
source src/southbridge/Kconfig
|
||||
comment "Super I/O"
|
||||
source src/superio/Kconfig
|
||||
comment "Embedded Controllers"
|
||||
source src/ec/Kconfig
|
||||
comment "SoC"
|
||||
source src/soc/Kconfig
|
||||
|
||||
endmenu
|
||||
|
||||
menu "General setup"
|
||||
|
||||
config EXPERT
|
||||
|
|
@ -238,49 +281,6 @@ config UPDATE_IMAGE
|
|||
|
||||
endmenu
|
||||
|
||||
source src/mainboard/Kconfig
|
||||
|
||||
# This option is used to set the architecture of a mainboard to X86.
|
||||
# It is usually set in mainboard/*/Kconfig.
|
||||
config ARCH_X86
|
||||
bool
|
||||
default n
|
||||
select PCI
|
||||
|
||||
config ARCH_ARM
|
||||
bool
|
||||
default n
|
||||
|
||||
config ARCH_ARM64
|
||||
bool
|
||||
default n
|
||||
|
||||
config ARCH_MIPS
|
||||
bool
|
||||
default n
|
||||
|
||||
source src/arch/x86/Kconfig
|
||||
source src/arch/arm/Kconfig
|
||||
source src/arch/arm64/Kconfig
|
||||
source src/arch/mips/Kconfig
|
||||
|
||||
menu "Chipset"
|
||||
|
||||
comment "CPU"
|
||||
source src/cpu/Kconfig
|
||||
comment "Northbridge"
|
||||
source src/northbridge/Kconfig
|
||||
comment "Southbridge"
|
||||
source src/southbridge/Kconfig
|
||||
comment "Super I/O"
|
||||
source src/superio/Kconfig
|
||||
comment "Embedded Controllers"
|
||||
source src/ec/Kconfig
|
||||
comment "SoC"
|
||||
source src/soc/Kconfig
|
||||
|
||||
endmenu
|
||||
|
||||
source src/device/Kconfig
|
||||
|
||||
menu "Generic Drivers"
|
||||
|
|
|
|||
|
|
@ -40,4 +40,11 @@ config BOOTBLOCK_CPU_INIT
|
|||
string
|
||||
default "soc/rockchip/rk3288/bootblock.c"
|
||||
|
||||
config COMPRESS_RAMSTAGE
|
||||
bool "Compress ramstage with LZMA"
|
||||
default n
|
||||
help
|
||||
The ramstage is loaded from code running in uncached SRAM, you
|
||||
probably don't want LZMA running on that.
|
||||
|
||||
endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue