u-boot/arch/x86/include/asm
Bin Meng 5750e5e29a x86: quark: Optimize MRC execution time
Intel Quark SoC has a low end x86 processor with only 400MHz
frequency. Currently it takes about 15 seconds for U-Boot to
boot to shell and the most time consuming part is with MRC,
which is about 12 seconds. MRC programs lots of registers on
the SoC internal message bus indirectly accessed via pci bus.

To speed up the boot, create an optimized version of pci config
read/write dword routines which directly operate on PCI I/O ports.
These two routines are inlined to provide better performance too.
Now it only takes about 3 seconds to finish MRC, which is really
fast (4 times faster than before).

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
2015-09-09 07:48:03 -06:00
..
arch-baytrail x86: fsp: Do not assert VPD_IMAGE_REV when DEBUG 2015-08-14 03:24:21 -06:00
arch-coreboot x86: coreboot: Increase memrange entry number to 32 2015-08-26 07:54:06 -07:00
arch-efi x86: Add support for U-Boot as an EFI application 2015-08-05 08:44:06 -06:00
arch-ivybridge x86: Clean up lapic codes 2015-07-14 18:03:16 -06:00
arch-qemu x86: qemu: Turn on PCIe ECAM address range decoding on Q35 2015-07-28 10:36:25 -06:00
arch-quark x86: quark: Optimize MRC execution time 2015-09-09 07:48:03 -06:00
arch-queensbay x86: fsp: Do not assert VPD_IMAGE_REV when DEBUG 2015-08-14 03:24:21 -06:00
fsp x86: Drop FSP error defines and use EFI instead 2015-08-14 09:50:13 -06:00
video x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
acpi.h x86: Add a simple header file for ACPI 2014-11-25 06:34:00 -07:00
acpi_table.h x86: Generate a valid ACPI table 2015-08-26 07:54:13 -07:00
atomic.h x86: Add atomic operations 2015-04-29 21:02:33 -06:00
bitops.h x86: Add ilog2 to bitops 2012-11-28 11:40:03 -08:00
bootm.h x86: Move kernel boot function to arch/x86/lib/bootm.c 2014-10-28 20:43:58 -06:00
bootparam.h x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
byteorder.h x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
cache.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
config.h generic-board: select SYS_GENERIC_BOARD for some architectures 2015-03-28 09:03:08 -04:00
control_regs.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cpu.h x86: Add a way to call 32-bit code from 64-bit mode 2015-08-05 08:44:07 -06:00
cpu_x86.h x86: dm: Clean up cpu drivers 2015-07-14 18:03:15 -06:00
e820.h x86: Clean up arch/x86/include/asm/e820.h 2015-04-29 18:51:49 -06:00
elf.h x86: Add asm/elf.h for x86-specific ELF definitions 2015-08-05 08:44:05 -06:00
errno.h x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
global_data.h x86: Move the GDT into global_data 2015-08-14 09:50:10 -06:00
gpio.h x86: gpio: add pinctrl support from the device tree 2015-06-04 03:32:08 -06:00
i8254.h x86: Add quick TSC calibration via PIT 2014-11-21 07:24:10 +01:00
i8259.h x86: Refactor interrupt_init() 2014-11-25 06:34:02 -07:00
ibmpc.h x86: superio: Add keyboard controller support to smsc_lpc47m driver 2015-08-26 07:54:12 -07:00
init_helpers.h x86: Remove calculate_relocation_address() 2015-08-26 07:54:07 -07:00
interrupt.h x86: Display correct CS/EIP/EFLAGS when there is an error code 2015-07-28 10:36:21 -06:00
io.h Replace <compiler.h> with <linux/compiler.h> 2014-12-08 09:35:46 -05:00
ioapic.h x86: Add I/O APIC register access routines 2015-07-14 18:03:17 -06:00
ioctl.h x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
irq.h x86: Allow pirq_init() to return an error 2015-08-14 03:24:21 -06:00
ist.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
lapic.h x86: Remove inline for lapic access routines 2015-07-14 18:03:17 -06:00
linkage.h x86: move arch-specific asmlinkage to <asm/linkage.h> 2014-12-15 07:22:53 -07:00
mp.h x86: Move MP initialization codes into a common place 2015-07-14 18:03:16 -06:00
mpspec.h x86: mpspec: Allow platform to determine how PIRQ is connected to I/O APIC 2015-07-28 10:36:24 -06:00
msr-index.h x86: Add a CPU driver for baytrail 2015-04-30 16:13:50 -06:00
msr.h x86: Add functions to set and clear bits on MSRs 2015-04-30 16:13:46 -06:00
mtrr.h x86: Change pci option rom area MTRR setting to cacheable 2015-07-28 10:36:22 -06:00
pci.h x86: pci: Assign pci irqs to all functions 2015-07-28 10:36:22 -06:00
pirq_routing.h x86: Support platform PIRQ routing 2015-04-29 18:51:49 -06:00
pnp_def.h x86: Add a simple superio driver for SMSC LPC47M 2014-12-13 22:32:05 -07:00
posix_types.h x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
post.h x86: Add post failure codes for bist and car 2014-12-13 22:32:05 -07:00
processor-flags.h x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
processor.h x86: Add multi-processor init 2015-04-30 16:13:38 -06:00
ptrace.h x86: Display correct CS/EIP/EFLAGS when there is an error code 2015-07-28 10:36:21 -06:00
relocate.h x86: Drop unused copy_fdt_to_ram() 2015-08-05 08:42:40 -06:00
sections.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
sfi.h x86: Add support for the Simple Firmware Interface (SFI) 2015-04-29 21:02:33 -06:00
sipi.h x86: Add multi-processor init 2015-04-30 16:13:38 -06:00
speedstep.h x86: Add Intel speedstep and turbo mode code 2014-11-25 06:34:02 -07:00
string.h x86: Import glibc memcpy implementation 2012-01-02 03:58:46 +11:00
tables.h x86: Add MultiProcessor (MP) table APIs 2015-07-14 18:03:17 -06:00
turbo.h x86: Add a CPU driver for baytrail 2015-04-30 16:13:50 -06:00
types.h efi: Add 64-bit payload support 2015-08-05 08:44:07 -06:00
u-boot-x86.h x86: Remove init_gd() function 2015-08-14 03:24:21 -06:00
u-boot.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
unaligned.h x86: Rename i386 to x86 2011-04-13 19:43:28 +10:00
zimage.h x86: Configure VESA parameters before loading Linux kernel 2015-07-14 18:03:19 -06:00