coreboot-kgpe-d16/src
Aaron Durbin 2bebd7bc93 cpu/x86/mtrr: allow temporary MTRR range during coreboot
Certain platforms have a poorly performing SPI prefetcher so even if
accessing MMIO BIOS once the fetch time can be impacted. Payload
loading is one example where it can be impacted. Therefore, add the
ability for a platform to reconfigure the currently running CPU's
variable MTRR settings for the duration of coreboot's execution.

The function mtrr_use_temp_range() is added which uses the previous
MTRR solution as a basis along with a new range and type to use.
A new solution is calculated with the updated settings and the
original solution is put back prior to exiting coreboot into the OS
or payload.

Using this patch on apollolake reduced depthcharge payload loading
by 75 ms.

BUG=chrome-os-partner:56656,chrome-os-partner:59682

Change-Id: If87ee6f88e0ab0a463eafa35f89a5f7a7ad0fb85
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/17371
Tested-by: build bot (Jenkins)
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Andrey Petrov <andrey.petrov@intel.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
2016-11-12 04:06:33 +01:00
..
acpi
arch ACPI S3: Remove HIGH_MEMORY_SAVE where possible 2016-11-09 20:52:07 +01:00
commonlib commonlib: move DIV_ROUND macros from nvidia/tegra 2016-09-07 20:52:42 +02:00
console Revert "[WIP] console/Kconfig: Calculate COM port base addresses only on x86" 2016-10-18 18:41:16 +02:00
cpu cpu/x86/mtrr: allow temporary MTRR range during coreboot 2016-11-12 04:06:33 +01:00
device Kconfig: Update default hex values to start with 0x 2016-10-02 19:08:15 +02:00
drivers lib/tlcl: Ensure tlcl library is initialized only once 2016-11-11 22:15:57 +01:00
ec google/chromeec: Sync ec_commands.h host events with ec codebase 2016-11-10 00:07:15 +01:00
include cpu/x86/mtrr: allow temporary MTRR range during coreboot 2016-11-12 04:06:33 +01:00
lib lib/tlcl: Ensure tlcl library is initialized only once 2016-11-11 22:15:57 +01:00
mainboard samsung/stumpy: fix power LED operation 2016-11-11 20:24:06 +01:00
northbridge intel post-car: Separate files for setup_stack_and_mtrrs() 2016-11-11 18:43:10 +01:00
soc soc/intel/common/lpss_i2c: configure buses by rise/fall times 2016-11-12 00:19:22 +01:00
southbridge southbridge/amd: Remove debug echo when building PI 2016-11-10 00:28:09 +01:00
superio winbond/w83627ehg: Remove unnecessary value 2016-10-19 17:31:39 +02:00
vboot src/vboot: mark factory_initialze_tpm() as static 2016-11-11 18:53:33 +01:00
vendorcode vendorcode/google: add common smbios mainboard version support 2016-11-09 16:52:06 +01:00
Kconfig ACPI S3: Remove HIGH_MEMORY_SAVE where possible 2016-11-09 20:52:07 +01:00