[U-Boot] [PATCH v2 0/8] x86: qemu: add fw_cfg interface support for qemu-x86 targets

Miao Yan yanmiaobest at gmail.com
Tue Dec 29 10:45:31 CET 2015


The fw_cfg interface provided by QEMU allow guests to retrieve various information
about the system, e.g. cpu number, variaous firmware data, kernel setup, etc. The
fw_cfg interface can be accessed through 3 IO ports (on x86), using x86 in/out
instructions.

  - 0x510: select configuration items to access
  - 0x511: reading this port will return data selected in 0x510 
  - 0x514: this can be used to detect if DMA interface is available

If fw_cfg DMA interface is available, it can be used to accelerate
accesses.

This patchset adds the following supports for qemu-x86 targets: 

  + the fw_cfg driver itself

  + add a U-Boot command 'fw' to support direct accessing kernel informtion
    from fw_cfg interface, this saves the time of loading them from hard disk or
    network again, through emulated devices.

  + use fw_cfg to get cpu number at runtime, so smp boot no longer relies on
    the cpu node hard-coded in dts files.

Changes in v2:
  - rebase to u-boot-x86/next
  - various cleanups

Miao Yan (8):
  x86: qemu: add fw_cfg support
  x86: qemu: add a cpu uclass driver for qemu target
  x86: fix a typo in function name
  x86: use actual CPU number for allocating memory
  x86: qemu: add qemu_fwcfg_fdt_fixup()
  x86: qemu: fix up cpu node in device tree
  x86: reserve more spaces for dtb
  x86: qemu: add documentaion for the fw_cfg interface

 arch/x86/cpu/mp_init.c           |  12 +-
 arch/x86/cpu/qemu/Makefile       |   2 +-
 arch/x86/cpu/qemu/cpu.c          |  57 ++++++++
 arch/x86/cpu/qemu/fw_cfg.c       | 306 +++++++++++++++++++++++++++++++++++++++
 arch/x86/cpu/qemu/fw_cfg.h       | 108 ++++++++++++++
 arch/x86/cpu/qemu/qemu.c         |   7 +
 arch/x86/dts/Makefile            |   2 +-
 arch/x86/dts/qemu-x86_i440fx.dts |  19 +--
 arch/x86/dts/qemu-x86_q35.dts    |  19 +--
 doc/README.x86                   |  36 ++++-
 10 files changed, 521 insertions(+), 47 deletions(-)
 create mode 100644 arch/x86/cpu/qemu/cpu.c
 create mode 100644 arch/x86/cpu/qemu/fw_cfg.c
 create mode 100644 arch/x86/cpu/qemu/fw_cfg.h

-- 
1.9.1



More information about the U-Boot mailing list