Merge remote branch 'mst/for_anthony' into staging
loader: don't call realloc(non_null, 0) when no symbols are present
According to C99, realloc(non_null, 0) != free(non_null), that's whyit is forbidden in QEMU.
When there are no symbols, nsyms equals to 0. Free the syms structureand set it to NULL instead of reallocating it with a size of 0....
Sparc64: split DPRINTF into CPUIRQ and EBUS versions
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Sparc64: fix compile with DEBUG_IRQ enabled
Sparc64: move APB PCI memory base to correct location
PCI: Fix bus address conversion
Pass physical addresses to map functions instead of PCI bus addresses.
sparc: make command line available also via firmware configuration device
hw/pc.c: fix warnings with _FORTIFY_SOURCE
CC i386-softmmu/pc.occ1: warnings being treated as errors/usr/src/RPM/BUILD/qemu-0.11.92/hw/pc.c: In function 'load_multiboot':/usr/src/RPM/BUILD/qemu-0.11.92/hw/pc.c:614: error: ignoring return value of 'fread', declared with attribute warn_unused_result...
PCI: partially revert 2e01c8cf4b076b05013c87723e3fc710b50a0a7a
Bus address conversion was not correct.
PCI: make pci_mem_base private
Make pci_mem_base private to PCIBus. Add a function to set it.
Fix Sparse error: dubious one-bit signed bitfield
Fix Sparse warning: dubious: !x & y
scsi: fix Sparse warning: Initializer entry defined twice
Both REWIND and REZERO_UNIT use 0x01, READ_POSITION and PRE_FETCHshare 0x34.
MAC DBDMA: store register values in native endianness
Store the register values in native endianness, by dropping all theendianness conversion functions, and converting the endianness indbdma_readl/dbdma_writel instead.
Also guard the endianness conversion with TARGET_WORDS_BIGENDIAN to...
loader: more ignores for rom intended to be loaded by the bios
Similarly to what has been done in e405a2ba91b68817cae2a428de55fe9616a4cf37,ignore rom intended to be loaded by the bios in find_rom() and rom_copy().
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Don't load options roms intended to be loaded by the bios in qemu
The first such option rom will load at address 0, which isn't very nice,and the second will report a conflict and abort, which is horrible.
Signed-off-by: Avi Kivity <avi@redhat.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
e1000: add link to data sheet
Link to data sheet at intel.com so people can find it.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
piix_pci: use range helper function
use range helper function in i440fx_write_config().
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
piix_pci: add link to i440fx data sheet.
add link to i440fx data sheet.
ne2000: switch to symbolic names for pci registers
No functional changes. I verified that the generated binarydoes not change.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>Acked-by: Juan Quintela <quintela@redhat.com>Acked-by: Glauber Costa <glommer@gmail.com>
rtl: switch to symbolic names for pci registers
pcnet: switch to symbolic names for pci registers
pci: add more status bits
will be used by eepro100.
eepro100: symbolic names for pci registers
No functional changes. I verified that the generated binarydoes not change in meaningful ways.
piix: symbolic constants
cmd646: symbolic names for pci registers
vmware_vga: symbolic names for pci registers
lsi: symbolic names for pci registers
pci: add another devsel macro
will be used by ensoniq emulation
es1370: symbolic names for pci registers
wdt_i6300esb: symbolic names for pci registers
ac97: symbolic names for pci registers
usb-uhci: symbolic names for pci registers
usb-ohci: symbolic names for pci registers
pci: remove unused macro
PCI_STATUS_DEVSEL is unused, and it alsohas a different name in pci_regs.hRemove.
pci: remove PCIBus::config_reg.
PCIBus::config_reg isn't used anymore, so remove it.
pci: s/PCI_SUBVENDOR_ID/PCI_SUBSYSTEM_VENDOR_ID/g
To match Linux PCI register definition,rename PCI_SUBVENDOR_ID to PCI_SUBSYSTEM_VENDOR_ID.
pci: import Linux pci_regs.h
Import Linux pci_regs.h. Later PCI register definitions in pci.hwill be eliminated.
pci: use pci_regs.h
include pci_regs.h and remove duplicated defines.And remove unused PCI_REVISION and PCI_SUBDEVICE_ID.
gt64xxx: remove gt64120_{read, write}_config().
They call only pci_default_{read, write}_config().So they aren't necessary.
acpi: use range helper function.
use range helper function in pm_write_config().
msix: use range helper function.
use range helper function in msix_write_config().
piix_pci: define symbolic value for PAM0, PAM6 and SMRAM.
Define symbolic value in i440fx configuration spacefor 0x59, 0x5f and 0x7f and use them.
e1000: switch to symbolic names for pci registers
No functional changes. I verified that the generatedobject binary does not change.
Revert "Revert "pci: interrupt disable bit support""
This reverts commit d587e0787153f0224a6140c5015609963ceaabfb.
ARM PBX-A9 memory map tweaks
Add core tile memeory to the RealView PBX-A9 board. Document thememeory maps that are known to work with the qemu bootloader.
Signed-off-by: Paul Brook <paul@codesourcery.com>
LAN9118 improvements
Implement LAN9118 general purpose timer and PHY interrupts. Fix globalinterrupt status bit.
PPC: Make DCR uint32_t
For what I know DCR is always 32 bits wide, so we should also use uint32_t topass it along the stacks.
This fixes a warning when compiling qemu-system-ppc64 with KVM enabled, makingit compile without --disable-werror
Signed-off-by: Alexander Graf <agraf@suse.de>...
PPC64: Fix alternate timebase
Fix the alternate time base the same way as the default timebase. SPR_ATBLshould return a 64-bit value on 64 bit implementations.
PPC64: Fix timebase
On PPC we have a 64-bit time base. Usually (PPC32) this is accessed usingtwo separate 32 bit SPR accesses to SPR_TBU and SPR_TBL.
On PPC64 the SPR_TBL register acts as 64 bit though, so we get the full64 bits as return value. If we only take the lower ones, fine. But Linux...
ppc64: Change default machine to mac99
Also change the New World default CPU to 970FX for ppc64,since the G4 is a 32-bit CPU.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>Acked-by: Alexander Graf <agraf@suse.de>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Multiboot support: Fix rom_copy
ROMs need to be loaded if they are anywhere in the requested area, notonly at the very beginning. This fixes Multiboot with ELF kernels thathave more than one program header.
Signed-off-by: Kevin Wolf <mail@kevin-wolf.de>...
roms: allow roms to be loaded at address 0
It was possible to load roms at address 0, but commit632cf034b401cdd01dae253a8b577fe518e37654 started to forbid that, whichbroke at least ARM versatile.
target-ppc: Initialize OpenPIC properly
When lowering an IRQ line, we search for the line we're supposed to lower.
Usually we run into an optimization there that queues up interrupts. Thisqueue ends with -1. Unfortunately we didn't set the first item to -1....
target-ppc: Use interrupts for escc
When using the escc with Linux, we need interrupts. So instead of creatinga dummy device, let's just map them to the openpic we have anyways.
This makes Linux on PPC64 with console=ttyPZ0 work.
Obviously, this change needs to be reflected in openbios. Patch for that...
hw/openpic.c: replace tabs by spaces
e1000: Don't muck with PCI commmand register
Otherwise, the driver does not work in Linux after the INT_DISABLE changes inPCI.
Michael Tsirkin had a patch to do this, I'm not sure what happened to it.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Make USB hid devices self-powered
Simplifies power budget negotiation.
Signed-off-by: Riku Voipio <riku.voipio@nokia.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
handle SD CMD5 without error messages
From: Juha Riihimäki <juha.riihimaki@nokia.com>Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>Signed-off-by: Riku Voipio <riku.voipio@nokia.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
usb-musb: convert fifo to 8bit and add more registers
Convert musb fifo to 8bit to allow 8/16/32bit access
MUSB allows reading and writing to the fifo in 32/16/8 bitwidth. The Linux kernel does this sometimes, most usually atthe end of writing the packet to allow packet to end at a...
Support PCI based option rom loading
Currently, we preload option roms into the option rom space in memory. Thisprevents DDIM from functioning correctly which severely limits the numberof roms we can support.
This patch introduces a pci_add_option_rom() which registers the...
pci romfiles: add property, add default to PCIDeviceInfo
This patch adds a romfile property to the pci bus. It allows to specifya romfile to load into the rom bar of the pci device. The default valuecomes from a new field in PCIDeviceInfo. The property allows to change...
fw_cfg: make calls typesafe
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
fw_cfg: add API for file transfer.
This patch adds a file transfer interface to fw_cfg. Intended to beused for passing non-pci option roms and vgabios to seabios. Namespaceis modeled after the existing cbfs filesystem support in seabios.
Reading the new FW_CFG_FILE_DIR entry returns a file list....
roms: use new fw_cfg file xfer support.
roms: use fw_cfg for vgabios and option rom loading, additionally todeploying them the traditional way (copy to 0xc0000 -> 0xe0000 range).
roms: remove option rom packing logic
Now that we load the option roms via fw_cfg, we can stop copyingthem to the 0xc000 -> 0xe000. The patch does just that.
Also the rom loader gets simplified as all remaining users of therom loader load the bits at a fixed address so the packing and...
VMware VGA: Only enable dirty log tracking when fifo is disabled
This patch enables dirty log tracking whenever it's needed and disables itwhen it is not.
We unconditionally enable dirty log tracking on reset, restart dirty logtracking when PCI IO regions are remapped, and disable/enable it based on...
vmware: increase cursor buffer size.
The cursor pixmap size we calculate later ends up being 4096 dwordslong by the looks of it. This boots an F12 LiveCD now.
Signed-off-by: Dave Airlie <airlied@linux.ie>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Revert "fdc: fix vmstate variable passed"
Floppy used the io_base address to register savevm region.
This reverts commit 2966b390d0f7cd5e5b971290fcc20685de374228.
Signed-off-by: Juan Quintela <quintela@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
fdc: fix migration from 0.11
0.11 uses as instance ide io_base, get it back
Fix backcompat for hotplug of SCSI controllers
SCSI controllers have no trouble existing without any attacheddisks. This could be achieved with the (legacy) monitor syntax
pci_add pci_addr=auto storage if=scsi
This is now denied with
scsi requires a backing file/device....
Make sure to enable dirty log tracking for VMware VGA
This is needed for VMware VGA to work properly under KVM.
Fix VMware VGA depth computation
VMware VGA requires that the depth presented to the guest is the same as theDisplaySurface that it renders to. This is because it performs a very simplememcpy() to blit from one surface to another.
We currently hardcode a 24-bit depth. The surface allocator for SDL may, and...
vmware: setup PCI BAR 2 for FIFO as per vmware spec
Make sure to enable dirty tracking of VBE vram mapping
Apparently, VBE maps the VGA vram to a fixed physical location. KVM requiresthat all mappings of the VGA vram have dirty tracking enabled on them. Anyaccess to the VGA vram through the VBE mapping currently fails to result in...
qdev: improve property error reporting.
Add a error message in case we fail to parse a qdev property.
Also make qemu not abort() in case setting a global property can't beset. This used to be a clear programming error. The introduction ofthe -global switch changed that though, so better exit instead (after...
usb-net: use qdev for -usbdevice
Rebased to master, adapted to device renaming by armbru,no other changes.
defaults: split default_drive
Split default_drive into default_{floppy,cdrom,sdcard}.Also add QEMUMachine flags to disable them per machine.
Check rom_load_all() return value.
Check rom_load_all() return value.Also don't make option rom loading failure fatal.
Fix loading of ELF multiboot kernels
The multiboot implementation assumed that there is only one program header(which contains the entry point) and that the entry point is at the start ofthe code. This doesn't hold true generally and caused too little data to be...
qdev: Improve uni-north device names
Switch to the names suggested by Blue Swirl.
Signed-off-by: Markus Armbruster <armbru@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Revert "pci: interrupt disable bit support"
This reverts commit 0ea5709a32085f7d14901a09d12bd35f9b267607.
Per discussion with Michael Tsirkin, this is too risky for 0.12
S390: Bail out without KVM
Currently only the S390 KVM target works. To keep users from accidently notusing KVM, let's not even initialize the machine when KVM is not used.
Signed-off-by: Alexander Graf <agraf@suse.de>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
S390: Don't tell guest we're updating config space
Currently we always set the "config space changed" bit to 1 when triggeringany virtio interrupt. While that worked in 2.6.27, newer kernels interpretthat value as "only the config space changed and nothing else happened"....
S390: Loop through virtio console devices
We used to always create one single virtio console device. This breaks wheneither zero of multiple virtio console devices are requested, so let's usethe same code as on x86.
target-alpha: Add placeholders for missing userspace PALcalls.
Signed-off-by: Richard Henderson <rth@twiddle.net>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
s390: Fix buggy assignment
nd->model keeps dynamically allocated model names.So casting of a constant string is wrong here.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>Acked-by: Alexander Graf <agraf@suse.de>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-alpha: Implement RD/WRUNIQUE in the translator
When emulating user-mode only, there's no reason to exitthe translation block to effect a call_pal. We can generatea move to/from the unique slot directly.
Signed-off-by: Richard Henderson <rth@twiddle.net>...
workaround for cmd646 bmdma register access while no dma is active
This is a workaround only, and is a partial revertof a few changes to BMDMAState which removed pci_devfield on the way.
- cmd646 pci_from_bm() expects bm->unit value tocorrespond with bm data being passed to callback...
s390: typo fix
s390 code has an obvious typo, which results in:hw/s390-virtio.c: At top level:hw/s390-virtio.c:249: error: request for member ‘no_vga’ in something not a structure or union
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>Acked-by: Alexander Graf <agraf@suse.de>...
s390: fix build on 32 bit host
Building on 32 bit host we get:hw/s390-virtio.c: In function ‘s390_init’:hw/s390-virtio.c:184: error: integer constant is too large for ‘unsigned long’ type64 bit values must be ULL.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>...
fdc/sparc32: don't hang on detection under OBP
Stepping through the SS-5's OBP initialization routinesit looks like reading fdc main status register shouldclear the fd interrupt.The patch doesn't fix problems with fdc on sparc platform,it only fixes fdc detection....
Sparc32: implement AFX for SS-5
Implement a stub for the AFX register on SparcStation-5.This stub is needed for running the original SS-5 OBPinstead of OpenBIOS (which allows to boot Solaris 2.5.1and Solaris 2.6 kernels).
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>...
scsi-disk: Inquiry with allocation length of CDB < 36 (v4)
According to the SCSI-2 specification,http://ldkelley.com/SCSI2/SCSI2/SCSI2/SCSI2-08.html#8.2.5 ,"if the allocation length of the command descriptor block (CDB) is toosmall to transfer all of the parameters, the additional length shall...
PCI: Convert pci_device_hot_add() to QObject
Return a QDict with information about the just added device.
This commit should not change user output.
Please, note that this patch does not do error handlingconversion. In error conditions the handler still calls...
Set default console to virtio on S390x
All "normal" system emulation targets in qemu I'm aware of displayoutput on either VGA or serial output.
Our S390x virtio machine doesn't have such kind of legacy hardware. Soinstead we need to default to a virtio console....
pci: don't abort() when trying to hotplug with acpi off.
The PCI bus on x86 requires ACPI for hotplug support, thus disbling ACPIalso disables hotplug for the PCI bus. This patch makes qemu checkwhenever the PCI bus in question can handle hotplug before trying to add...
pci: don't hw_error() when no slot is available.
Current PCI code will simply hw_error() and thus abort in case no freePCI slot is available or the requested PCI slot is already in use byanother device. For the hotplug case this behavior is not acceptable....
scsi: fix drive hotplug.
This patch fills the DriveInfo->unit after hotplugging a scsi disk.It makes a difference when auto-assigning a scsi id, where unit wasleft filled with '-1' instead of the actual scsi id.
With this patch applied the the drive naming logic in drive_init() works...
qdev: also match bus name for global properties
i.e. -global PCI.<property>=<value> will set a default property for allPCI devices. Also works for the compat properties used by machinetypes.