[U-Boot] [PATCH 0/19] x86: ivybridge: Add graphics support

Simon Glass sjg at chromium.org
Sat Nov 15 04:56:26 CET 2014


This series adds a graphics driver and support for execution of the VGA
option ROM. This option ROM is required on ivybridge for the graphics to
work, at least until someone creates the equivalent source code.

Option ROMs can be run using U-Boot's BIOS emulator, but on x86 it is also
possible to run then natively. This is something of a pain to arrange due
to all the environment that is required (16-bit to 32-bit calls, etc.) but
it can be done, so this series adds that feature too.

Video mode selection is useful as it allows different resolutions to be
selected. This series adds support for VESA modes and a way of selecting
the mode to use in U-Boot.

These options are enabled for chromebook_link, which now boots to a prompt
complete with a functioning LCD. A resolution 0f 1280x1024 is selected by
default.

While the Chrome OS EC works correctly, the keyboard does not as yet. Also
U-Boot is currently very slow, taking about 2 seconds to boot to a prompt
when video is enabled. These problems will be the subject of future work.


Simon Glass (19):
  x86: Add a definition of asmlinkage
  Introduce a header file for the BIOS emulator
  x86: Add GDT descriptors for option ROMs
  x86: Add vesa mode configuration options
  Add support for Vesa BIOS extensions
  x86: Add support for running option ROMs natively
  pci: Add general support for execution of video ROMs
  x86: video: Add video driver for bare x86 boards
  x86: Allow an option ROM to be built into U-Boot
  x86: Add initial video device init for Intel GMA
  x86: dts: Add video information to the device tree
  x86: config: Enable video support for chromebook_link
  bios_emulator: Allow x86 to use the emulator
  bios_emulator: Add vesa support and allow ROMs to be passed in as data
  bios_emulator: Allow a custom interrupt handler to be installed
  bios_emulator: Add an option to enable debugging
  bios_emulator: Always print errors when opcode decode fails
  x86: chromebook_link: Enable the x86 emulator
  x86: chromebook_link: Enable the Chrome OS EC

 Makefile                                      |   3 +
 arch/x86/Kconfig                              | 149 +++++
 arch/x86/cpu/cpu.c                            |   9 +-
 arch/x86/cpu/ivybridge/Makefile               |   1 +
 arch/x86/cpu/ivybridge/bd82x6x.c              |  13 +-
 arch/x86/cpu/ivybridge/gma.c                  | 756 ++++++++++++++++++++++++++
 arch/x86/cpu/ivybridge/gma.h                  | 157 ++++++
 arch/x86/dts/link.dts                         |  13 +
 arch/x86/include/asm/arch-ivybridge/bd82x6x.h |   2 +
 arch/x86/include/asm/processor.h              |  31 +-
 arch/x86/lib/Makefile                         |   3 +
 arch/x86/lib/bios.c                           | 348 ++++++++++++
 arch/x86/lib/bios.h                           |  98 ++++
 arch/x86/lib/bios_asm.S                       | 281 ++++++++++
 arch/x86/lib/bios_interrupts.c                | 219 ++++++++
 board/google/chromebook_link/link.c           |   4 +
 doc/device-tree-bindings/video/intel-gma.txt  |  40 ++
 drivers/bios_emulator/Makefile                |   2 +-
 drivers/bios_emulator/atibios.c               | 198 +++++--
 drivers/bios_emulator/besys.c                 | 100 ++--
 drivers/bios_emulator/bios.c                  |   4 +-
 drivers/bios_emulator/biosemui.h              |   2 +-
 drivers/bios_emulator/include/biosemu.h       |  53 +-
 drivers/bios_emulator/include/x86emu.h        |   7 +-
 drivers/bios_emulator/include/x86emu/debug.h  |  20 +-
 drivers/bios_emulator/include/x86emu/regs.h   |   2 +-
 drivers/bios_emulator/x86emu/debug.c          |  10 +-
 drivers/bios_emulator/x86emu/decode.c         |  24 +-
 drivers/bios_emulator/x86emu/ops.c            |  58 +-
 drivers/bios_emulator/x86emu/ops2.c           |   4 +-
 drivers/bios_emulator/x86emu/sys.c            |   5 +
 drivers/pci/Makefile                          |   2 +-
 drivers/pci/pci_rom.c                         | 276 ++++++++++
 drivers/video/Makefile                        |   1 +
 drivers/video/ati_radeon_fb.c                 |   2 +-
 drivers/video/x86_fb.c                        |  37 ++
 include/bios_emul.h                           |  65 +++
 include/common.h                              |   3 +
 include/configs/chromebook_link.h             |  19 +-
 include/fdtdec.h                              |   1 +
 include/pci_rom.h                             |  58 ++
 include/vbe.h                                 | 103 ++++
 include/video_fb.h                            |   2 +-
 lib/fdtdec.c                                  |   1 +
 44 files changed, 2950 insertions(+), 236 deletions(-)
 create mode 100644 arch/x86/cpu/ivybridge/gma.c
 create mode 100644 arch/x86/cpu/ivybridge/gma.h
 create mode 100644 arch/x86/lib/bios.c
 create mode 100644 arch/x86/lib/bios.h
 create mode 100644 arch/x86/lib/bios_asm.S
 create mode 100644 arch/x86/lib/bios_interrupts.c
 create mode 100644 doc/device-tree-bindings/video/intel-gma.txt
 create mode 100644 drivers/pci/pci_rom.c
 create mode 100644 drivers/video/x86_fb.c
 create mode 100644 include/bios_emul.h
 create mode 100644 include/pci_rom.h
 create mode 100644 include/vbe.h

-- 
2.1.0.rc2.206.gedb03e5



More information about the U-Boot mailing list