History | View | Annotate | Download (59.3 kB)
Support default block interfaces per QEMUMachine
There are QEMUMachines that have neither IF_IDE nor IF_SCSI as adefault/standard interface to their block devices / drives. Therefore,this patch introduces a new field default_block_type per QEMUMachinestruct. The prior use_scsi field becomes thereby obsolete and is...
cpus: Pass CPUState to qemu_cpu_kick()
CPUArchState is no longer needed there.
Signed-off-by: Andreas Färber <afaerber@suse.de>
Rename target_phys_addr_t to hwaddr
target_phys_addr_t is unwieldly, violates the C standard (_t suffixes arereserved) and its purpose doesn't match the name (most target_phys_addr_taddresses are not target specific). Replace it with a finger-friendly,...
create struct for machine initialization arguments
This should help us to:- More easily add or remove machine initialization arguments without having to change every single machine init function;- More easily make mechanical changes involving the machine init...
sun4m: Pass SPARCCPU to cpu_set_irq()
Needed for changing cpu_kick_irq() argument type to SPARCCPU.
Signed-off-by: Andreas Färber <afaerber@suse.de>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
sun4m: Pass SPARCCPU to cpu_kick_irq()
Needed for changing qemu_cpu_kick() argument type to CPUState.
target-sparc: use notifier for signaling guest system_powerdown command
Signed-off-by: Igor Mammedov <imammedo@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
sparc: fix floppy TC line setup
The qemu_irq for Terminal Count (TC) line between FDC and Slavio miscdevice was created only after use, spotted by Clang compiler. Also,it was not created if the FDC didn't exist.
Rearrange code to fix order. Always create the TC line....
sun4m: Use cpu_sparc_init() to obtain SPARCCPU
Needed for {main,secondary}_cpu_reset().
Signed-off-by: Andreas Färber <afaerber@suse.de>Acked-by: Blue Swirl <blauwirbel@gmail.com>
sun4m: Pass SPARCCPU to {main,secondary}_cpu_reset()
We can now use cpu_reset() in place of cpu_state_reset().
Replace Qemu by QEMU in comments
The official spelling is QEMU.
Signed-off-by: Stefan Weil <sw@weilnetz.de>Reviewed-by: Andreas Färber <afaerber@suse.de>[blauwirbel@gmail.com: fixed comment style in hw/sun4m.c]Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
sparc hw/: Don't use CPUState
Scripted conversion: for file in hw/sun4m.c hw/sun4u.c hw/grlib.h hw/leon3.c; do sed -i "s/CPUState/CPUSPARCState/g" $file done
Signed-off-by: Andreas Färber <afaerber@suse.de>Acked-by: Anthony Liguori <aliguori@us.ibm.com>
Rename cpu_reset() to cpu_state_reset()
Frees the identifier cpu_reset for QOM CPUs (manual rename).
Don't hide the parameter type behind explicit casts, use staticfunctions with strongly typed argument to indirect.
Signed-off-by: Andreas Färber <afaerber@suse.de>...
qom: Unify type registration
Replace device_init() with generalized type_init().
While at it, unify naming convention: type_init([$prefix_]register_types)Also, type_init() is a function, so add preceding blank line wherenecessary and don't put a semicolon after the closing brace....
qdev: register all types natively through QEMU Object Model
This was done in a mostly automated fashion. I did it in three steps and thenrebased it into a single step which avoids repeatedly touching every file inthe tree.
The first step was a sed-based addition of the parent type to the subclass...
sysbus: apic: ioapic: convert to QEMU Object Model
This converts three devices because apic and ioapic are subclasses of sysbus.Converting subclasses independently of their base class is prohibitively hard.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
vmstate, memory: decouple vmstate from memory API
Currently creating a memory region automatically registers it forlive migration. This differs from other state (which is enumeratedin a VMStateDescription structure) and ties the live migration codeinto the memory core....
sysbus: rename sysbus_init_mmio_region() to sysbus_init_mmio()
Signed-off-by: Avi Kivity <avi@redhat.com>
sun4m: convert to memory API
monitor: Restrict pic/irq_info to supporting targets
This allows to drop various stubs and move the i8359 into hwlib.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
sun4m: avoid structure holes spotted by pahole
Edited report from pahole on amd64 host:struct sun4c_hwdef {... uint8_t nvram_machine_id; /* 112 1 */
/* XXX 1 byte hole, try to pack /... / size: 136, cachelines: 3 / / sum members: 135, holes: 1, sum holes: 1 */...
Use glib memory allocation and free functions
qemu_malloc/qemu_free no longer exist after this commit.
always qemu_cpu_kick after unhalting a cpu
This ensures env->halt_cond is broadcast, and the loop inqemu_tcg_wait_io_event and qemu_kvm_wait_io_event is exitednaturally rather than through a timeout.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
sparc32: ledma extra registers
ledma has 0x20 bytes of registers according to OBP, and at least Solaris9reads the 5th register which is beyond what we've mapped. So let's setupa flag (inspired by a previous patch from Blue Swirl) to identify ledmafrom espdma, and map another 16 bytes of registers which return 0....
sparc32: convert debug printf statements to tracepoints
Replace debug printf statements with tracepoints.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
ESP: fix ESP DMA access when DMA is not enabled
Sending ESP a command caused it to trigger DMA immediatelyeven if DMA was not enabled at the DMA controller.
Add a signal from DMA controller to ESP to tell ESP about changes inDMA enable bit. Also use the correct function for setting up GPIO outputs....
Rearrange block headers
Changing block.h or blockdev.h resulted in recompiling most objects.
Move DriveInfo typedef and BlockInterfaceType enum definitionsto qemu-common.h and rearrange blockdev.h use to decrease churn.
sparc32: use FW_CFG_CMDLINE_SIZE
Add support for getting kernel command line size withFW_CFG_CMDLINE_SIZE.
Sparc32: reserve addresses for unimplemented devices on SS-20
Use empty_slot to reserve addresses for several unimplemented devices so they won't fault. - BPP (parallel port), DBRI (audio), SX (pixel processor), and vsimms (framebuffer)OBP for SS-20 either assumes these devices exist or probes without expecting faults....
qemu_ram_alloc: Add DeviceState and name parameters
These will be used to generate unique id strings for ramblocks. The namefield is required, the device pointer is optional as most callers don'thave a device. When there's no device or the device isn't a child of...
Pad iommu with an empty slot (necessary for SunOS 4.1.4)
On the real hardware (SS-5, LX) the MMU is not padded, but aliased.Software shouldn't use aliased addresses, neither should it crashwhen it uses (on the real hardware it wouldn't). Using empty_slot...
Compile dma only once
Use a qemu_irq to request CPU exit.
7 compilations less for the full build.
sparc32 use empty_slot for missing RAM v1
use empty_slot device for the RAM which is not installed
Models without ECC don't trap when missing ram is accessed.
v0->v1 compile only once and fix indentation
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>...
load_elf: replace the address addend by a translation function
A few machines need to translate the ELF header addresses into physicaladdresses. Currently the only possibility is to add a value to theaddresses.
This patch replaces the addend argument by and a translation function...
m48t59: don't use reserved _t suffix
Sparc32: remove unused env/envs variables, spotted by clang
sparc: make command line available also via firmware configuration device
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).
scsi: move scsi.h -> esp.h
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
pcnet: use qdev properties for configuration.
rom loader: fix sparc -kernel boot.
Changes:(1) register pstrcpy_targphys() in rom list, it is used for kernelcommand lines by a number of architectures.(2) add rom_ptr() function to get a pointer for applying changesto loaded images. Needed for example to tell the linux kernel...
New qdev_init_nofail()
Like qdev_init(), but terminate program via hw_error() instead ofreturning an error value.
Use it instead of qdev_init() where terminating the program on failureis okay, either because it's during machine construction, or because...
floppy: add drive properties.
Revert "Get rid of _t suffix"
In the very least, a change like this requires discussion on the list.
The naming convention is goofy and it causes a massive merge problem. Somethinglike this must be presented on the list first so people can provide input...
Get rid of _t suffix
Some not so obvious bits, slirp and Xen were left alone for the timebeing.
Signed-off-by: malc <av1474@comtv.ru>
Compile loader only once
Callers must pass ELF machine, byte swapping and symbol LSB clearinginformation to ELF loader. A.out loader needs page size information, passthat too as a parameter.
Extract prototypes to a separate file. Move loader.[ch] and elf_ops.h under hw....
qdev: add return value to init() callbacks.
Sorry folks, but it has to be. One more of these invasive qdev patches.
We have a serious design bug in the qdev interface: device initcallbacks can't signal failure because the init() callback has noreturn value. This patch fixes it....
Sparc32: improve interrupt handling
Level 15 interrupts are broadcast to all CPUs, each CPU can clear theinterrupt using the local Clear Pending register.
Update intbit_to_level table.
Don't try to raise level 0 interrupts.
Calculate pending interrupts based on the separate inputs from master...
Sparc32: fix monitor commands 'info pic' and 'info irq'
qdev/prop: convert sun4m.c to helper macros.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>Message-Id:
Use qemu_irq for system_powerdown
Sparc32: use qemu_irq for system_powerdown
Sparc32: move sparc32_dma init to sun4m.c
Also connect ESP and Lance reset signals to DMA.
Sparc32: remove VRAM and NVRAM sizes from hwdef
Sparc32: remove IRQ numbers from hwdef
Sparc32: move intbit_to_level table back to slavio_intctl.c
Sparc32: move device instantiation to sun4m.c
kill drives_table
First step cleaning up the drives handling. This one does nothing butremoving drives_table[], still it became seriously big.
drive_get_index() is gone and is replaced by drives_get() which handsout DriveInfo pointers instead of a table index. This needs adaption in...
Sparc32: convert Sun4c interrupt controller to qdev
Sparc32: convert SBI to qdev
Sparc32/64: use 64 bit type for memory size
Sparc32: Fix lance
Fix sparc-softmmu breakage by ee6847d19be16c789b8bd4e553b7cd6701ba1245
Move the qdev_init(dev); call after the setting of d->size.Thanks to Filip Navara.
qdev: rework device properties.
This patch is a major overhaul of the device properties. The propertiesare saved directly in the device state struct now, the linked list ofproperty values is gone.
Advantages: * We don't have to maintain the list with the property values....
Sparc32: convert slavio interrupt controller to qdev
Also increase QDEV_MAX_IRQ.
Sparc32: refactor CPU init
Sparc32: convert memory to qdev
Sparc32: convert boot prom to qdev
Sparc32: convert cs4231 to qdev
Sparc32: convert sparc32_dma to qdev
Sparc32: convert slavio_misc to qdev
Sparc32: convert idreg to qdev
Revert "Introduce reset notifier order"
This reverts commit 8217606e6edb49591b4a6fd5a0d1229cebe470a9 (andupdates later added users of qemu_register_reset), we solved theproblem it originally addressed less invasively.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>...
Use relative path for bios
Look for bios and other support files relative to qemu binary, rather thana hardcoded prefix.
Signed-off-by: Paul Brook <paul@codesourcery.com>
Remove qdev irq sink handling
We have both IRQ sinks and GPIO inputs. These are in principle exactlythe same thing, so remove the former.
Introduce reset notifier order
Add the parameter 'order' to qemu_register_reset and sort callbacks onregistration. On system reset, callbacks with lower order will beinvoked before those with higher order. Update all existing users to thestandard order 0....
Refactor how display drivers are selected
My previous commit, f92f8afebe, broke -vnc (spotted by Glauber Costa). Thisis because it's necessary to tell when the no special display parameters havebeen passed and default to SDL or VNC appropriately.
This refactors the display selection logic to be less complicated which has...
Introduce is_default field for QEMUMachine
f80f9ec changed the order that machines are registered which had the effect ofchanging the default machine. This changeset introduces a new is_default fieldso that machine types can declare that they are the default for an architecture....
Convert machine registration to use module init functions
This cleans up quite a lot of #ifdefs, extern variables, and other ugliness.
PCI network qdev conversion
ESP SCSI qdev conversion
Replace gcc variadic macro extension with C99 version
Remove vga_ram_size
The vga_ram_size argument to machine init functions always has the samevalue, and is ignored by many machines (including SPARC32 which has anobsolete ifdef for VGA_RAM_SIZE).
Remove it and push VGA_RAM_SIZE into vga_int.h.
Remove redundant ram_require machine properly.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7090 c046a42c-6fe2-441c-8c8c-71466251a162
Cleanup SPARC/TCX framebuffer allocation.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7059 c046a42c-6fe2-441c-8c8c-71466251a162
Remove nodisk_ok machine feature (Jan Kiszka)
All archs have some kind of firmware to load and can be fine with italready. So there is not much use in enforcing the presence of a disk.If the system setup requires one, the user will notice it anyway once...
Use firmware configuration instead of NVRAM (initial patch by Aurelien Jarno)
Use firmware configuration device for boot device, kernel, initrd andkernel command line parameters on PPC, Sparc32 and Sparc64.
Update OpenBIOS images to r479 which supports the change....
monitor: Rework API (Jan Kiszka)
Refactor the monitor API and prepare it for decoupled terminals:term_print functions are renamed to monitor_* and all monitor servicesgain a new parameter (mon) that will once refer to the monitor instancethe output is supposed to appear on. However, the argument remains...
graphical_console_init change (Stefano Stabellini)
Patch 5/7
This patch changes the graphical_console_init function to return anallocated DisplayState instead of a QEMUConsole.
This patch contains just the graphical_console_init change and few othermodifications mainly in console.c and vl.c....
escc: allow one IRQ per serial channel
The Z85C30 on the PowerMAC machines have one interrupt per serialchannel, while the Sparc machines have only one for both. Allow theemulated device to use one IRQ per channel.
Patch by Laurent Vivier.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6295 c046a42c-6fe2-441c-8c8c-71466251a162
sun4c/sun4d: also swap the CharDriverState of escc_init()
Forgotten in r6284
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6290 c046a42c-6fe2-441c-8c8c-71466251a162
Check NIC model in some NIC init functions (Mark McLoughlin)
Some NIC init functions are only called when that model isthe only valid model. In that case, it makes sense to useqemu_check_nic_model() from the NIC init function itself.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>...
ESCC: swap the two CharDriverState arguments
Swap the two CharDriverState arguments so that the first argumentcorresponds to the channel A and the second argument to the channel B.
Modify hw/sun4m.c accordingly.
This fixes the order of the serial ports on the PPC machines....
Rename slavio_serial functions to escc, add clock rate and it_shift parameters
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6270 c046a42c-6fe2-441c-8c8c-71466251a162
Fix segfault
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6267 c046a42c-6fe2-441c-8c8c-71466251a162
Sun4m use 0 for nonexistent devices (Robert Reif)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6127 c046a42c-6fe2-441c-8c8c-71466251a162
Remove unnecessary trailing newlines
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6000 c046a42c-6fe2-441c-8c8c-71466251a162
Don't rely on the fact that MAX_FD is 2 (Herve Poussineau)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5810 c046a42c-6fe2-441c-8c8c-71466251a162
Use qemu_ram_alloc
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5630 c046a42c-6fe2-441c-8c8c-71466251a162
More realistic max_cpus
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5604 c046a42c-6fe2-441c-8c8c-71466251a162