mirror of https://gitee.com/openkylin/qemu.git
ad30c0b0d8
Highlights / user visible changes in seabios: * boot menu key is ESC now. * virtio 1.0 support. * sdcard support. * fw_cfg dma suport. * usual share of bugfixes ;) In vgabios: * Emulates leal instruction. Works around a bug in old x86emu versions, which makes old xorg vesa drivers work (RHEL-5 for example). full shortlog rel-1.8.2..rel-1.9.0 ---------------------------------- Ameya Palande (1): x86: add barrier to read{b,w,l} and write{b,w,l} functions Andreas Färber (1): checkrom: Fix typo in error message Chen Fan (1): pci: enable SERR# for error forwarding in bridge control register Gerd Hoffmann (28): vga: simplify vga builds vga: rework virtio-vga support vga: add virtio-vga to kconfig pci: allow to loop over capabilities virtio: run drivers in 32bit mode virtio: add struct vp_device virtio: pass struct pci_device to vp_init_simple virtio: add version 1.0 structs and #defines virtio: add version 0.9.5 struct virtio: find version 1.0 virtio capabilities virtio: create vp_cap struct for legacy bar virtio: add read/write functions and macros virtio: make features 64bit, support version 1.0 features virtio: add version 1.0 support to vp_{get,set}_status virtio: add version 1.0 support to vp_get_isr virtio: add version 1.0 support to vp_reset virtio: add version 1.0 support to vp_notify virtio: remove unused vp_del_vq virtio: add version 1.0 support to vp_find_vq virtio-scsi: fix initialization for version 1.0 virtio-blk: fix initialization for version 1.0 virtio: use version 1.0 if available (flip the big switch) virtio: also probe version 1.0 pci ids virtio: legacy cleanup virtio-blk: 32bit cleanup virtio-scsi: 32bit cleanup virtio-ring: 32bit cleanup virtio-pci: use high memory for rings Julius Werner (1): xhci: Count new Max Scratchpad Bufs bits from XHCI 1.1 Kevin O'Connor (126): docs: add page for SeaVGABIOS docs: Add page describing the patch contribution process docs: Add page on available CBFS/fw_cfg runtime config files docs: Prefer triple backticks to multiple lines with single backticks smp: Fix smp race introduced in 0673b787 docs: Note release date of 1.8.1 vgabios: On bda_save_restore() the saved vbe_mode also has flags in it vgabios: Don't use extra stack if it appears a modern OS is in use docs: Clarify that pci-optionrom-exec doesn't apply to roms in cbfs checkstack: Replace function information tuple with class checkstack: Simplify yield calculations checkstack: Prefer passing "function" class instead of function address smbios: Use integer signature instead of string signature vgabios: Don't use "smsww" instruction - it confuses x86emu vgabios: Add config option for assembler fixups vgabios: Emulate "leal" instruction checkstack: Minor - continue if not a regular asm line Don't forward declare functions with "inline" in headers build: Support "make VERSION=xyz" to override the default build version tcg: Use seabios setup()/prepboot() calling convention for tcg build: CONFIG_VGA_FIXUP_ASM should depend on CONFIG_BUILD_VGABIOS bootorder: Update "extra pci root" buses bootorder format to match qemu Make sure all code checks for malloc failures docs: Note release date of 1.8.2 block: Split process_op() command dispatch up into multiple functions block: Introduce default_process_op() with common command handling codes block: Route scsi style commands through 'struct disk_op_s' blockcmd: Introduce scsi_fill_cmd() ata: Handle ATA ATAPI drives directly via 'struct disk_op_s' requests ahci: Handle AHCI ATAPI drives directly via 'struct disk_op_s' requests usb-msc: Handle USB drives directly via 'struct disk_op_s' requests usb-uas: Handle USB drives directly via 'struct disk_op_s' requests lsi-scsi: Handle LSI drives directly via 'struct disk_op_s' requests esp-scsi: Handle ESP drives directly via 'struct disk_op_s' requests megasas: Handle Megasas drives directly via 'struct disk_op_s' requests virtio-scsi: Handle virtio drives directly via 'struct disk_op_s' requests pvscsi: Move pvscsi_fill_req() code into pvscsi_cmd() pvscsi: Handle pvscsi drives directly via 'struct disk_op_s' requests blockcmd: Remove unused scsi_process_op() and cdb_cmd_data() blockcmd: Convert cdb_is_read() to scsi_is_read() block: Rename process_XXX_op() functions to XXX_process_op() coreboot: Try to auto-detect if the CBFS anchor pointer is a relative pointer ps2: Support mode for polling the PS2 port instead of using irqs ata: Make sure "chanid" is relative to PCI device for bootorder file Don't enable interrupts prior to IVT and PIC setup ps2: Don't wait 100ms to discard possible extra reset receive byte timer: Delay timestamp counter init until after pmtimer is probed timer: Add CONFIG_TSC_TIMER build option to disable the CPU TSC timer ramdisk: Allow ramdisk support (CONFIG_FLASH_FLOPPY) under QEMU Minor - move declaration of CDRom_locks to code that uses it smm: ignore bits 16,18-31 of SMM revision ID at runtime too vgafb: Minor - move gfx_common() variables outside of switch statement sdcard: Check if card is present before sending commands to card sdcard: Implement controller frequency setting according to sdhci spec sdcard: Make sure controller support 3.3V before enabling it sdcard: Set timeout control register during init (to max allowed timeout) sdcard: Improve SD card initialization command sequence sdcard: Add proper delays during card power up mptable: Don't create mptable if it is very large optionroms: Don't run option rom on PCI bar if CBFS/fw_cfg version exists edd: Pass the segment/offset from int 1348 calls using a 'struct segoff_s' edd: Reduce parameters to fill_generic_edd() Move CanInterrupt check to check_irqs() Call cpu_relax() if yielding prior to interrupts being enabled sdcard: Fix typo - use sdcard_pio() instead of sdcard_pio_app() sdcard: Fill command bits according to spec sdcard: Support SDHCI v3.00 spec clock setting sdcard: Move power setup to new function sdcard_set_power() sdcard: Power controller up to maximum voltage supported sdcard: Power down controller on failure sdcard: The card should never be in a busy state at start of sdcard_pio() sdcard: Implement timeout on every block read in sdcard_pio_transfer() sdcard: Rename waitw() to sdcard_waitw() and simplify sdcard: Perform a controller reset at start of init sdcard: Check for error events during sdcard_pio() sdcard: Initial support for MMC cards sdcard: Allow the sdcard driver to run on real hardware rtc: Support disabling the RTC timer irq support Add minimal support for machines without hardware interrupts ps2: Eliminate "etc/ps2-poll-only"; use CONFIG_HARDWARE_IRQ instead sdcard: Allow sdcard addresses to be specified in CBFS files xhci: Minor - add USB port type comments to xhci_hub_reset() docs: Don't use an add-symbol-file offset when describing gdb debugging rtc: Disable NMI in rtc_mask() sdcard: Move sdcard_set_frequency()/sdcard_set_power() in sdcard.c sdcard: Move frequency setting into sdcard_card_setup() sdcard: Move drive registration to sdcard_card_setup() sdcard: Turn card_type into a bitmap and store if card is MMC type sdcard: Display sdcard product name in boot menu sdcard: Obtain card capacity and report it on the boot menu megasas: Use outl() on MFI_IDB register minor - correct spelling error in comment Simplify transition16/32 assembler code docs: Minor - add "code relocation" link to "Execution and code flow" document Unify smm/sloppy variants of call32_prep/post and call16_helper Rename Call32Data to Call16Data Unify inline assembler in variants of call16 functions Unify call32_sloppy() and call32() Use transition32_nmi_off from call32() and call16_back() Consolidate code16*() functions Always enable caching on transition32; backup/restore cr0 on call32 e820: Introduce e820_remove() and avoid exporting E820_HOLE e820: Rename memmap.c to e820map.c and use consistent "e820_" prefix e820: Update debugging messages to report 64bit values virtio: Simplify vring alignment code virtio: Move standard definitions from virtio-ring.h to standard headers malloc: Use consistent naming for internal low-level "alloc" functions malloc: Introduce common helper alloc_new_detail() malloc: Add warning if free() called on invalid memory malloc: Don't mix virtual and physical addresses memmap: Introduce SYMBOL() macro to access linker script symbols build: Rework version generation; don't allow make version override build: Report gcc and binutils versions in debug log build: Generate "reproducible" version strings on "clean" builds stacks: Use macro wrappers for call32() and stack_hop_back() malloc: Rename csm_malloc_preinit() to malloc_csm_preinit() build: Be more permissive in buildversion.py tool version scan docs: Document 'make EXTRAVERSION=xyz' and scripts/tarball.sh build: Allow official tarball builds to be considered "clean" coreboot: Minor - avoid K&R style function declaration biostables: Minor - fix incorrect indentation virtio: Minor - replace tab characters with space docs: Minor - replace seavgabios text in Build_overview.md with link buildversion: Avoid subprocess.check_output() as that requires python2.7 buildversion: Add debugging messages docs: Note v1.9.0 release Kyösti Mälkki (1): PCI SDHCI driver: Fix base address Magnus Granberg (1): build: use -fstack-check=no when available Marc Marí (1): Add QEMU fw_cfg DMA interface Marcel Apfelbaum (2): fw/pci: scan all buses if extraroots romfile is present fw/pci: map memory and IO regions for multiple pci root buses Paolo Bonzini (4): boot.c: delay exiting boot if menu key is ESC boot: switch default menu key to ESC smm: ignore bits 16,18-31 of SMM revision ID smm: fix outl argument order Paulo Alcantara (1): ich9: initialise RCBA register through LPC interface Quan Xu (1): make SeaBios compatible with Xen vTPM. Stefan Berger (9): Add an implementation of a TPM TIS driver Implementation of the TCG BIOS extensions Support for BIOS interrupt handler Add 'measurement' code to the BIOS tpm: Introduce a #define for command tag tpm: Be consistent with array sizes in tcgbios.c tpm: clean up parameters to build_and_send_cmd tpm: Clean up in tcgbios.h tpm: Move call to tpm_option_rom into init_optionrom Stefan Weil (2): megasas: Fix outw, outl argument order Fix typos found by codespell Vladimir Serbinenko (3): ahci: Ignore max_ports. Link rom.o with -N option. Add multiboot support. tpearson@raptorengineeringinc.com (1): Add an option to only execute option ROMs contained in CBFS Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> |
||
---|---|---|
audio | ||
backends | ||
block | ||
bsd-user | ||
contrib | ||
crypto | ||
default-configs | ||
disas | ||
docs | ||
dtc@65cc4d2748 | ||
fpu | ||
fsdev | ||
gdb-xml | ||
hw | ||
include | ||
io | ||
libdecnumber | ||
linux-headers | ||
linux-user | ||
migration | ||
net | ||
pc-bios | ||
pixman@87eea99e44 | ||
po | ||
qapi | ||
qga | ||
qobject | ||
qom | ||
replay | ||
roms | ||
scripts | ||
slirp | ||
stubs | ||
target-alpha | ||
target-arm | ||
target-cris | ||
target-i386 | ||
target-lm32 | ||
target-m68k | ||
target-microblaze | ||
target-mips | ||
target-moxie | ||
target-openrisc | ||
target-ppc | ||
target-s390x | ||
target-sh4 | ||
target-sparc | ||
target-tilegx | ||
target-tricore | ||
target-unicore32 | ||
target-xtensa | ||
tcg | ||
tests | ||
trace | ||
ui | ||
util | ||
.dir-locals.el | ||
.exrc | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
.travis.yml | ||
CODING_STYLE | ||
COPYING | ||
COPYING.LIB | ||
Changelog | ||
HACKING | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
Makefile.objs | ||
Makefile.target | ||
README | ||
VERSION | ||
accel.c | ||
aio-posix.c | ||
aio-win32.c | ||
arch_init.c | ||
async.c | ||
balloon.c | ||
block.c | ||
blockdev-nbd.c | ||
blockdev.c | ||
blockjob.c | ||
bootdevice.c | ||
bt-host.c | ||
bt-vhci.c | ||
configure | ||
cpu-exec-common.c | ||
cpu-exec.c | ||
cpus.c | ||
cputlb.c | ||
device-hotplug.c | ||
device_tree.c | ||
disas.c | ||
dma-helpers.c | ||
dump.c | ||
exec.c | ||
gdbstub.c | ||
hmp-commands-info.hx | ||
hmp-commands.hx | ||
hmp.c | ||
hmp.h | ||
iohandler.c | ||
ioport.c | ||
iothread.c | ||
kvm-all.c | ||
kvm-stub.c | ||
main-loop.c | ||
memory.c | ||
memory_mapping.c | ||
module-common.c | ||
monitor.c | ||
nbd.c | ||
numa.c | ||
os-posix.c | ||
os-win32.c | ||
page_cache.c | ||
qapi-schema.json | ||
qdev-monitor.c | ||
qdict-test-data.txt | ||
qemu-bridge-helper.c | ||
qemu-char.c | ||
qemu-doc.texi | ||
qemu-ga.texi | ||
qemu-img-cmds.hx | ||
qemu-img.c | ||
qemu-img.texi | ||
qemu-io-cmds.c | ||
qemu-io.c | ||
qemu-log.c | ||
qemu-nbd.c | ||
qemu-nbd.texi | ||
qemu-options-wrapper.h | ||
qemu-options.h | ||
qemu-options.hx | ||
qemu-seccomp.c | ||
qemu-tech.texi | ||
qemu-timer.c | ||
qemu.nsi | ||
qemu.sasl | ||
qjson.c | ||
qmp-commands.hx | ||
qmp.c | ||
qtest.c | ||
rules.mak | ||
softmmu_template.h | ||
spice-qemu-char.c | ||
tcg-runtime.c | ||
tci.c | ||
thread-pool.c | ||
thunk.c | ||
tpm.c | ||
trace-events | ||
translate-all.c | ||
translate-all.h | ||
translate-common.c | ||
user-exec.c | ||
version.rc | ||
vl.c | ||
xen-common-stub.c | ||
xen-common.c | ||
xen-hvm-stub.c | ||
xen-hvm.c | ||
xen-mapcache.c |
README
QEMU README =========== QEMU is a generic and open source machine & userspace emulator and virtualizer. QEMU is capable of emulating a complete machine in software without any need for hardware virtualization support. By using dynamic translation, it achieves very good performance. QEMU can also integrate with the Xen and KVM hypervisors to provide emulated hardware while allowing the hypervisor to manage the CPU. With hypervisor support, QEMU can achieve near native performance for CPUs. When QEMU emulates CPUs directly it is capable of running operating systems made for one machine (e.g. an ARMv7 board) on a different machine (e.g. an x86_64 PC board). QEMU is also capable of providing userspace API virtualization for Linux and BSD kernel interfaces. This allows binaries compiled against one architecture ABI (e.g. the Linux PPC64 ABI) to be run on a host using a different architecture ABI (e.g. the Linux x86_64 ABI). This does not involve any hardware emulation, simply CPU and syscall emulation. QEMU aims to fit into a variety of use cases. It can be invoked directly by users wishing to have full control over its behaviour and settings. It also aims to facilitate integration into higher level management layers, by providing a stable command line interface and monitor API. It is commonly invoked indirectly via the libvirt library when using open source applications such as oVirt, OpenStack and virt-manager. QEMU as a whole is released under the GNU General Public License, version 2. For full licensing details, consult the LICENSE file. Building ======== QEMU is multi-platform software intended to be buildable on all modern Linux platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other UNIX targets. The simple steps to build QEMU are: mkdir build cd build ../configure make Complete details of the process for building and configuring QEMU for all supported host platforms can be found in the qemu-tech.html file. Additional information can also be found online via the QEMU website: http://qemu-project.org/Hosts/Linux http://qemu-project.org/Hosts/W32 Submitting patches ================== The QEMU source code is maintained under the GIT version control system. git clone git://git.qemu-project.org/qemu.git When submitting patches, the preferred approach is to use 'git format-patch' and/or 'git send-email' to format & send the mail to the qemu-devel@nongnu.org mailing list. All patches submitted must contain a 'Signed-off-by' line from the author. Patches should follow the guidelines set out in the HACKING and CODING_STYLE files. Additional information on submitting patches can be found online via the QEMU website http://qemu-project.org/Contribute/SubmitAPatch http://qemu-project.org/Contribute/TrivialPatches Bug reporting ============= The QEMU project uses Launchpad as its primary upstream bug tracker. Bugs found when running code built from QEMU git or upstream released sources should be reported via: https://bugs.launchpad.net/qemu/ If using QEMU via an operating system vendor pre-built binary package, it is preferable to report bugs to the vendor's own bug tracker first. If the bug is also known to affect latest upstream code, it can also be reported via launchpad. For additional information on bug reporting consult: http://qemu-project.org/Contribute/ReportABug Contact ======= The QEMU community can be contacted in a number of ways, with the two main methods being email and IRC - qemu-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/qemu-devel - #qemu on irc.oftc.net Information on additional methods of contacting the community can be found online via the QEMU website: http://qemu-project.org/Contribute/StartHere -- End