coreboot/src/cpu/x86
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
..
16bit src/cpu: Remove unnecessary whitespace 2016-10-07 18:08:25 +02:00
32bit arch/x86: always use _start as entry symbol for all stages 2016-03-04 04:49:46 +01:00
cache
lapic src/cpu: Remove unnecessary whitespace 2016-10-07 18:08:25 +02:00
mtrr cpu/x86/mtrr: allow temporary MTRR range during coreboot 2016-11-12 04:06:33 +01:00
name tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
pae src/cpu: Add required space before opening parenthesis '(' 2016-08-28 18:47:23 +02:00
smm src/cpu: Improve code formatting 2016-09-04 05:33:04 +02:00
tsc src/cpu: Add required space before opening parenthesis '(' 2016-08-28 18:47:23 +02:00
backup_default_smm.c cpu/x86: remove BACKUP_DEFAULT_SMM_REGION option 2016-05-04 18:51:34 +02:00
car.c arch/x86: document CAR symbols and expose them in symbols.h 2016-03-05 16:00:42 +01:00
fpu_enable.inc tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
Kconfig src/cpu: Capitalize CPU, APIC and IOAPIC typo fix 2016-08-23 15:43:58 +02:00
Makefile.inc cpu/x86: remove BACKUP_DEFAULT_SMM_REGION option 2016-05-04 18:51:34 +02:00
mirror_payload.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
mp_init.c src/cpu: Capitalize CPU, APIC and IOAPIC typo fix 2016-08-23 15:43:58 +02:00
sipi_vector.S src/cpu: Capitalize CPU 2016-07-31 18:33:06 +02:00
sse_enable.inc tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00