Sparc32: remove a variable used only for debugging to avoid a clang warning
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Sparc32: remove unused env/envs variables, spotted by clang
pci: Add missing 'const' in argument to pci_get_xxx
pci_get_byte, pci_get_word, pci_get_long and pci_get_quadall take a const uint8_t pointer, because they only readthe configuration data.
Their prototypes should reflect this fact.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>...
eepro100: Update ROM file support
Use new way to associate ROM files to devices.
Currently, there is only a ROM file for i82559erincluded in QEMU, so the patch does not add.romfile for the other devices.
When flexible mode is fixed in eepro100, adding...
eepro100: Fix initial value for PCI_STATUS
The numerical value was wrong (0x2800 instead of 0x0280)which indeed did not make sense.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
virtio-net: mac property is mandatory
Mac feature bit isn't going to work as all network cards already have a'mac' property to set the mac address. Remove it from mask and add inget_features.
Reported-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>...
Sparc64: Fix PCI config accessor order
Fix by Igor Kovalenko.
qdev: fix thinko leading to guest crashes
Without this fix, guest crashes with drive=virtio.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
dma/sb16: make clang analyzer not complain
Signed-off-by: malc <av1474@comtv.ru>
Sparc64: enable real access to PCI configuration space
Leave the bogus access method used by OpenBIOS in place for now.
virtio-pci: thinko fix
Since patch ed757e140c0ada220f213036e4497315d24ca8bct, virtio willsometimes clear all status registers on bus master disable, which losesinformation such as VIRTIO_CONFIG_S_FAILED bit. This is a result ofa patch being misapplied: code uses ! instead of ~ for bit...
pc: add machine type for 0.12
Add a new machine type for qemu 0.12.
Also fixup the 0.11 machine type: msi for virtio-blk-pci was enabledafter the 0.11 release, so turn it off in the 0.11 machine type.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
roms: minor fixes and cleanups.
Changes: - Drop extra file argument from rom_add_file(). - Drop fw_dir check in do_info_roms, we allways have a dir name. - code style fixes.
fw_cfg: rom loader tweaks.
Changes: - make dir argument mandatory, we allways have one anyway (vgaroms or genroms). - check for duplicates, skip loading if found.
roms: rework rom loading via fw
This patch changes the way rom loading via fw_cfg is handled.Instead of having pc_init1() call a function which passed allroms to the firmware config we simply pass a pointer to fw_cfgto the rom loader.
Advantage: loading roms via firmware works also for devices which...
pci: allow loading roms via fw_cfg.
This patch adds a pci bus property 'rombar' which specifies wheneverthe pci rom should be loaded via pci rom bar (default) or via fw_cfg.The later can be used for compatibility with older qemu versions whereno pci rom bar is present....
pc: add rombar to compat properties for pc-0.10 and pc-0.11
So '-M pc-0.10' and '-M pc-0.11' will use the fw_cfg rom load methodby default.
qdev: add bit property type
This adds "bit" property type, which is a boolean stored in a 32 bitinteger field, with legal values on and off. Will be used by virtio forfeature bits.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>Acked-by: Gerd Hoffmann <kraxel@redhat.com>...
virtio: rename features -> guest_features
Rename features->guest_features. This iswhat they are, avoid confusion withhost features which we also need to keep around.
virtio: add features as qdev properties
Add feature bits as properties to virtio. This makes it possible to e.g. definemachine without indirect buffer support, which is required for 0.10compatibility, or without hardware checksum support, which is required for 0.11...
vmware_vga: Check cursor dimensions passed from guest to avoid buffer overflow
Check that the cursor dimensions passed from the guest for theDEFINE_CURSOR command don't overflow the available space in thecursor.image[] or cursor.mask[] arrays before copying data from the...
lsi: use QTAILQ for lsi_queue
Replace the funky array logic for queued commands with standardqemu list functions. Also rename lsi_queue to lsi_request.
lsi: have lsi_request for the whole life time of the request.
Right now lsi_request is allocated when a request is queued and releasedwhen a request is unqueued. With this patch applied the lsi_request iskept for the whole lifetime of the scsi request....
lsi: move current_dev into lsi_request
lsi: move dma_len+dma_buf into lsi_request
lsi: pass lsi_request to lsi_reselect
All callers of lsi_reselect have a lsi_request struct at hand anyway.So just pass it directly instead of having lsi_reselect search for itusing the tag.
PCI: Fix a typo
Fixes build with PCI_DEBUG defined.
Sparc64: increase APB register range
Sparc64: use firmware configuration device for command line storage
Avoid a ROM conflict.
sparc64: interrupt trap handling
cpu_check_irqs- handle SOFTINT register TICK and STICK timer bits- only check interrupt levels greater than PIL value- handle preemption by higher level traps
cpu_exec- handle CPU_INTERRUPT_HARD only if interrupts are enabled...
sparc64: add macros to deal with softint and timer interrupt
Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
multiboot: Support arbitrary number of modules.
Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
multiboot: Separate multiboot loading into separate file
Move multiboot loading code into separate files as suggested by Alex Graf.
debugcon: support for debugging consoles (e.g. Bochs port 0xe9)
Add generic support for debugging consoles (simple I/O ports whichwhen written to cause debugging output to be written to a target.)The current implementation matches Bochs' port 0xe9, allowing the same...
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
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
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...