coreboot/src/cpu
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
..
allwinner src/cpu: Remove unnecessary whitespace 2016-10-07 18:08:25 +02:00
amd amd/cpu: Add details to chip names 2016-11-09 23:28:52 +01:00
armltd vboot2: add verstage 2015-01-27 01:41:40 +01:00
dmp src/cpu: Improve code formatting 2016-09-04 05:33:04 +02:00
intel intel cache-as-ram: Unify stack setup 2016-11-11 18:52:09 +01:00
qemu-power8 cpu/qemu-power8: don't enable it for qemu-x86 2016-02-19 20:03:52 +01:00
qemu-x86 qemu-x86: Enable SMP support 2015-12-08 15:54:27 +01:00
ti Kconfig: lay groundwork for not assuming SPI flash boot device 2016-08-18 06:18:21 +02:00
via src/cpu: Remove unnecessary whitespace 2016-10-07 18:08:25 +02:00
x86 cpu/x86/mtrr: allow temporary MTRR range during coreboot 2016-11-12 04:06:33 +01:00
Kconfig Kconfig: Add option for microcode filenames 2016-09-08 00:29:08 +02:00
Makefile.inc src/cpu: Fix location for cpu_microcode_blob.bin in COREBOOT CBFS only 2016-10-11 23:36:18 +02:00