All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 0/22] x86: Add support for MTRRs
@ 2015-01-01 23:17 Simon Glass
  2015-01-01 23:17 ` [U-Boot] [PATCH v2 01/22] x86: Correct XIP_ROM_SIZE Simon Glass
                   ` (21 more replies)
  0 siblings, 22 replies; 55+ messages in thread
From: Simon Glass @ 2015-01-01 23:17 UTC (permalink / raw)
  To: u-boot

One of the four items left to fix up for bare ivybridge support in U-Boot
is MTRRs. These are an important part of the x86 platform since they provide
a means to control the cache behaviour for areas of memory.

Memory areas can be marked as uncacheable or cacheable. For cacheable the
write behaviour can be controlled:

- write-back: data is not written back from the cache until evicted
- write-though: data goes into the cache but is also written to memory
- write-protect: data cannot be written to this area
- write-combining: multiple writes to this area can be combined

This series adds support for deciding the MTRR setup that should be used,
commiting it to registers before relocation, updating it for the video frame
buffer, disabling CAR (cache-as-RAM) when needed and making sure that the
faster possible execution speed is provided. In addition an 'mtrr' command
is added to permit inspection and adjustment of MTRR registers from the
command line.

Changes in v2:
- Remove CONFIG_RAMTOP from mtrr.h in this patch
- Use CONFIG_VIDEO directly to control running the video BIOS
- Remove definition of 'ulong start' from this patch
- Remove unused Lhlt code
- Use a simple 'ret' instruction to return
- Use a simple call instruction to call car_uninit
- Use constants for microcode MSRs and header length
- Move cmd_mtrr to arch/x86/lib
- Correct 'platform' typo

Simon Glass (22):
  x86: Correct XIP_ROM_SIZE
  x86: Drop RAMTOP Kconfig
  x86: Correct ifdtool microcode calculation
  x86: video: Add support for CONFIG_CONSOLE_SCROLL_LINES
  x86: config: Always scroll the display by 5 lines, for speed
  x86: video: Add a debug() to display the frame buffer address
  x86: pci: Don't return a vesa mode when there is not video
  x86: video: Add debug option to time the BIOS copy
  x86: ivybridge: Only run the Video BIOS when video is enabled
  x86: Use cache, don't clear the display in video BIOS
  x86: Tidy up VESA mode numbers
  x86: pci: Display vesa modes in hex
  x86: ivybridge: Drop support for ROM caching
  x86: Add support for MTRRs
  x86: ivybridge: Set up an MTRR for the video frame buffer
  x86: board_f: Adjust x86 boot order for performance
  x86: ivybridge: Request MTRRs for DRAM regions
  x86: Commit the current MTRRs before relocation
  x86: ivybridge: Add a way to turn off the CAR
  x86: Disable CAR before relocation on platforms that need it
  x86: ivybridge: Update microcode early in boot
  x86: Add an 'mtrr' command to list and adjust MTRRs

 arch/x86/Kconfig                                |   6 +-
 arch/x86/cpu/Makefile                           |   1 +
 arch/x86/cpu/coreboot/coreboot.c                |  22 ++--
 arch/x86/cpu/ivybridge/car.S                    |  74 ++++++++++-
 arch/x86/cpu/ivybridge/cpu.c                    |  27 +---
 arch/x86/cpu/ivybridge/gma.c                    |  16 ++-
 arch/x86/cpu/ivybridge/microcode_intel.c        |  26 ++--
 arch/x86/cpu/ivybridge/sdram.c                  |  10 ++
 arch/x86/cpu/mtrr.c                             |  81 ++++++++++++
 arch/x86/cpu/start.S                            |   9 ++
 arch/x86/dts/link.dts                           |   3 -
 arch/x86/include/asm/arch-ivybridge/microcode.h |   6 +
 arch/x86/include/asm/global_data.h              |  15 +++
 arch/x86/include/asm/mtrr.h                     | 163 +++++++++++-------------
 arch/x86/lib/Makefile                           |   1 +
 arch/x86/lib/bios.c                             |  14 +-
 arch/x86/lib/cmd_mtrr.c                         | 138 ++++++++++++++++++++
 arch/x86/lib/init_helpers.c                     |   8 ++
 common/board_f.c                                |   8 +-
 doc/README.x86                                  |  18 ++-
 drivers/pci/pci_rom.c                           |   9 +-
 drivers/video/cfb_console.c                     |  26 ++--
 drivers/video/x86_fb.c                          |   1 +
 include/configs/x86-common.h                    |   1 +
 tools/ifdtool.c                                 |   4 +-
 25 files changed, 511 insertions(+), 176 deletions(-)
 create mode 100644 arch/x86/cpu/mtrr.c
 create mode 100644 arch/x86/lib/cmd_mtrr.c

-- 
2.2.0.rc0.207.ga3a616c

^ permalink raw reply	[flat|nested] 55+ messages in thread

end of thread, other threads:[~2015-01-23 23:55 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-01 23:17 [U-Boot] [PATCH v2 0/22] x86: Add support for MTRRs Simon Glass
2015-01-01 23:17 ` [U-Boot] [PATCH v2 01/22] x86: Correct XIP_ROM_SIZE Simon Glass
2015-01-05 17:39   ` Simon Glass
2015-01-01 23:17 ` [U-Boot] [PATCH v2 02/22] x86: Drop RAMTOP Kconfig Simon Glass
2015-01-04  2:26   ` Bin Meng
2015-01-05 17:39     ` Simon Glass
2015-01-01 23:17 ` [U-Boot] [PATCH v2 03/22] x86: Correct ifdtool microcode calculation Simon Glass
2015-01-05 17:39   ` Simon Glass
2015-01-01 23:17 ` [U-Boot] [PATCH v2 04/22] x86: video: Add support for CONFIG_CONSOLE_SCROLL_LINES Simon Glass
2015-01-20  0:33   ` Simon Glass
2015-01-20  7:44     ` Anatolij Gustschin
2015-01-23 23:55       ` Simon Glass
2015-01-20  7:42   ` Anatolij Gustschin
2015-01-01 23:17 ` [U-Boot] [PATCH v2 05/22] x86: config: Always scroll the display by 5 lines, for speed Simon Glass
2015-01-23 23:55   ` Simon Glass
2015-01-01 23:17 ` [U-Boot] [PATCH v2 06/22] x86: video: Add a debug() to display the frame buffer address Simon Glass
2015-01-05 17:39   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 07/22] x86: pci: Don't return a vesa mode when there is not video Simon Glass
2015-01-05 17:39   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 08/22] x86: video: Add debug option to time the BIOS copy Simon Glass
2015-01-05 17:39   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 09/22] x86: ivybridge: Only run the Video BIOS when video is enabled Simon Glass
2015-01-04  2:31   ` Bin Meng
2015-01-05 17:40     ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 10/22] x86: Use cache, don't clear the display in video BIOS Simon Glass
2015-01-05 17:40   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 11/22] x86: Tidy up VESA mode numbers Simon Glass
2015-01-05 17:40   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 12/22] x86: pci: Display vesa modes in hex Simon Glass
2015-01-05 17:40   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 13/22] x86: ivybridge: Drop support for ROM caching Simon Glass
2015-01-05 17:40   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 14/22] x86: Add support for MTRRs Simon Glass
2015-01-05 17:41   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 15/22] x86: ivybridge: Set up an MTRR for the video frame buffer Simon Glass
2015-01-04  3:18   ` Bin Meng
2015-01-04  3:20     ` Simon Glass
2015-01-04  3:28       ` Bin Meng
2015-01-05 17:41         ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 16/22] x86: board_f: Adjust x86 boot order for performance Simon Glass
2015-01-05 17:41   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 17/22] x86: ivybridge: Request MTRRs for DRAM regions Simon Glass
2015-01-05 17:41   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 18/22] x86: Commit the current MTRRs before relocation Simon Glass
2015-01-05 17:41   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 19/22] x86: ivybridge: Add a way to turn off the CAR Simon Glass
2015-01-05 17:41   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 20/22] x86: Disable CAR before relocation on platforms that need it Simon Glass
2015-01-04  3:53   ` Bin Meng
2015-01-05 17:41     ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 21/22] x86: ivybridge: Update microcode early in boot Simon Glass
2015-01-05 17:41   ` Simon Glass
2015-01-01 23:18 ` [U-Boot] [PATCH v2 22/22] x86: Add an 'mtrr' command to list and adjust MTRRs Simon Glass
2015-01-04  4:13   ` Bin Meng
2015-01-05 17:41     ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.