aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-07-25fix omap_spi rxs flag status updateJuha Riihimäki
Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
2012-07-25hw/omap_spi.c: Fix indentation following previous patchPeter Maydell
Fix indentation (whitespace-only change split out from previous patch to make it easier to review). Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-07-25SPI devices: convert to qdevPeter Maydell
Introduce a new SPI bus type, and use it to convert all the OMAP SPI devices to qdev. Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
2012-07-25hw/omap_spi.c prepare for omap3Riku Voipio
2012-07-25tsc2005: rearrange pin_update/timer_tickJuha Riihimäki
Rearrange the division of work between pin_update and timer_tick functions. TODO: this has the look of a bug fix but I have not identified what.
2012-07-25hw/tsc2005: Add tracingPeter Maydell
2012-07-25hw/tsc2005: Add parameters to tsc2005_set_transform()Peter Maydell
Not sure exactly what these are for...
2012-07-25hw/omap_i2c: Treat 32 bit accesses like 16 bit accessesPeter Maydell
Treat 32 bit OMAP i2c register accesses like 16 bit accesses, working around the kernel bug LP:727781 where it makes 32 bit accesses in violation of the TRM. (Hardware behaviour is apparently that OMAP2 will abort on these 32 bit accesses, but OMAP3 and 4 will allow them.) We might need to revert or rethink this patch as part of handling silencing of bad-kernel-behaviour warnings more consistently so that they can be upstreamed. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-07-25omap_i2c: add support for underflowingRiku Voipio
kernel workaround for OMAP3430 Errata 1.153 requires this..
2012-07-25hw/omap_i2c.c: Avoid infinite loop for byte wide writes to registersMatt Waddel
During byte wide writes the i2c write routine gets into an infinite loop. The STP bit in the status register is not set so the i2c_end_transfer() routine is never being called, even when the data buffer is empty. Moving the i2c_end_transfer() call outside the STP check seems to fix this problem.
2012-07-25omap_i2c.c: Support byte reads to registersMatt Waddel
Added support for the byte read of the omap i2c system. Handling is similar to the way i2c_write and i2c_writeb work.
2012-07-25i2c-fixes: pull out omap-3-rev fixesPeter Maydell
2012-07-25omap_i2c: add vmstatePeter Maydell
XXX shouldn't be using vmstate_register
2012-07-25hw/omap_i2c: non-whitespace changes from overhaul patchPeter Maydell
2012-07-25omap_i2c: support different FIFO sizesPeter Maydell
Support FIFO size settable via a device property, rather than a fixed 4 byte FIFO. This is needed for OMAP3.
2012-07-25omap_i2c: clean up revision numbersPeter Maydell
2012-07-25hw/omap_tap.c: Return correct ID register values for OMAP3Peter Maydell
Add/correct the ID register values returned for OMAP3. In particular, the OMAP3 PRODUCTION_ID register was not modelled correctly: it is a 128 bit register spanning four words 0x208..0x214. (There appears to be a typo in the OMAP35xx TRM about this; however the OMAP36xx TRM is clearer and experimentation shows that the 35xx behaves the same way.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-07-25hw/omap_synctimer.c: Add OMAP3 synctimerJuha Riihimäki
Add the OMAP3 synctimer. TODO: is the handling of halfword reads really correct?? -- yes, this is allowing a 32 bit counter to be read as two 16 bit reads without getting two out-of-sync parts (the trm talks about this albeit extremely vaguely) TODO: can we avoid using the backcompat old_mmio ? Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com> [Riku Voipio: Fixes and restructuring patchset] Signed-off-by: Riku Voipio <riku.voipio@iki.fi> [Peter Maydell: More fixes and cleanups for upstream submission] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-07-25hw/omap_sdrc.c: Implement reading and writing of more registersRiku Voipio
Implement SDRC registers as able to be written and read back, rather than simply being unwritable and returning 0. TODO: there are a few TODO remarks and we need to check vs the TRM but this is pretty close to upstreamable. Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com> [Riku Voipio: Fixes and restructuring patchset] Signed-off-by: Riku Voipio <riku.voipio@iki.fi> [Peter Maydell: More fixes and cleanups for upstream submission] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-07-25hw/omap_l4.c: Add OMAP3 supportRiku Voipio
TODO: definitely need to look more closely at what's going on here. Drop omap3_l4ta save/load support?
2012-07-25hw/omap_clk.c: Add OMAP3 clock tree definitionsJuha Riihimäki
Add the clock tree definitions for OMAP3 SOCs. Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com> [Riku Voipio: Fixes and restructuring patchset] Signed-off-by: Riku Voipio <riku.voipio@iki.fi> [Peter Maydell: More fixes and cleanups for upstream submission] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-07-25omap_gptimer: Add omap_gp_timer_change_clk()Peter Maydell
Add omap_gp_timer_change_clk() functions to inform the gptimer code when the clock source for a timer has been changed. TODO: is this the best way to do this??
2012-07-25omap_gptimer: Support ticks-per-sec > 32 bit valuesPeter Maydell
TODO: need to review this change still
2012-07-25omap_dma: add scatter gather list supportJuha Riihimäki
Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
2012-07-25hw/omap_dma.c: Add support for OMAP3 specific behaviourRiku Voipio
2012-07-25hw/omap_dma.c: Support more than 64 channels of DMAPeter Maydell
Support more than 64 channels of DMA by converting the drqbmp bitmap into a simple array. TODO: use bitmap.h instead?? Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com> [Riku Voipio: Fixes and restructuring patchset] Signed-off-by: Riku Voipio <riku.voipio@iki.fi> [Peter Maydell: More fixes and cleanups for upstream submission] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2012-07-25omap.h: Add OMAP3 interrupt and DMA definesRiku Voipio
Add defines for OMAP3 interrupt and DMA to omap.h
2012-07-25Support multiple simultaneous keyboard event handlersJuha Riihimäki
On some systems (such as n900), multiple physical devices can create keyboard events (gpio, lis302dl, twl4030, ..). Add hooks to make it possible to recieve keyboard input from multiple devices. merge our version with upstream multikb support multitouch, multi-keyboard and window close hook support TODO: make this look more like mouse version, ie return a handle which is passed to remove. Also who calls add_kbd_event_handler with a NULL function?? & if we send keycode to all kbd handlers this is ok for n900 but what about eg pc + usb kbd??
2012-07-25hw/sd.c: Add MMC emulation supportJuha Riihimäki
This patch is basically just adding actual implementation of the mmc flag. It also has a few minor cleanups like printf->fprintf (but should be DPRINTF)
2012-07-25sd: Allow sd_init callers to specify whether card is MMC or SDJuha Riihimäki
Add a parameter to sd_init() which allows the caller to specify whether the card is MMC or SD. TODO: maybe we should have an sd_init() and an mmc_init() instead? TODO: these mmc patches need to be integrated with the ones Vincent Palatin proposed.
2012-07-25hw/sd: Expose sd_reset() as public functionPeter Maydell
Expose sd_reset() as a public function so MMC controllers can reset the SD card. XXX: is this really right? Need to check specs.
2012-07-25blizzard: fix for non-32bpp host displaysRiku Voipio
TODO: I'm not sure how to trigger this bug, or if the fix is correct (the comments say it's a hack)
2012-07-23Merge remote-tracking branch 'stefanha/net' into stagingAnthony Liguori
* stefanha/net: remove unused QemuOpts parameter from net init functions convert net_init_bridge() to NetClientOptions convert net_init_tap() to NetClientOptions convert net_init_vde() to NetClientOptions convert net_init_socket() to NetClientOptions convert net_init_slirp() to NetClientOptions convert net_init_dump() to NetClientOptions convert net_init_nic() to NetClientOptions convert net_client_init() to OptsVisitor hw, net: "net_client_type" -> "NetClientOptionsKind" (qapi-generated) qapi schema: add Netdev types qapi schema: remove trailing whitespace qapi: introduce OptsVisitor expose QemuOpt and QemuOpts struct definitions to interested parties qapi: introduce "size" type qapi: generate C types for fixed-width integers qapi: add test case for deallocating traversal of incomplete structure qapi: fix error propagation MAINTAINERS: Replace net maintainer Mark McLoughlin with Stefan Hajnoczi
2012-07-23Merge remote-tracking branch 'stefanha/trivial-patches' into stagingAnthony Liguori
* stefanha/trivial-patches: Fix some more Qemus in documentation and help text qdev: Fix Open Firmware comment cpus.c: Make all_cpu_threads_idle() static Use macro QEMU_PACKED for new packed structures Recognize PCID feature powerpc pci: fixed packing of ranges[]
2012-07-23Merge remote-tracking branch 'pmaydell/arm-devs.for-upstream' into stagingAnthony Liguori
* pmaydell/arm-devs.for-upstream: exynos4210: add Exynos4210 i2c implementation hw/exynos4210_rtc.c: remove unnecessary code hw/exynos4210_rtc.c: Fix calculating for value of year hw/vexpress.c: Allow >4GB of RAM for Cortex-A15 daughterboard hw/arm_boot.c: Support DTBs which use 64 bit addresses device_tree: Add support for reading device tree properties hw/arm_boot.c: Check for RAM sizes exceeding ATAGS capacity hw/arm_boot.c: Consistently use ram_size from arm_boot_info struct hw/arm_boot.c: Make ram_size a uint64_t hw/pl011.c: Avoid crash on read when no chr backend present
2012-07-23Merge remote-tracking branch 'stefanha/tracing' into stagingAnthony Liguori
* stefanha/tracing: Update simpletrace.py for new log format Simpletrace v2: Support multiple arguments, strings. monitor: remove unused do_info_trace trace: added ability to comment out events in the list
2012-07-23remove unused QemuOpts parameter from net init functionsLaszlo Ersek
v1->v2: - unchanged v2->v3: - keep "qemu-option.h" included in "net/slirp.h" Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_init_bridge() to NetClientOptionsLaszlo Ersek
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_init_tap() to NetClientOptionsLaszlo Ersek
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_init_vde() to NetClientOptionsLaszlo Ersek
v1->v2: - NetdevVdeOptions::port and ::mode are of type uint16. Remove superfluous range checks. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_init_socket() to NetClientOptionsLaszlo Ersek
I "reverse engineered" the following permissions between the -socket sub-options: fd listen connect mcast udp | localaddr fd x . . . . | . listen . x . . . | . connect . . x . . | . mcast . . . x . | x udp . . . . x | x -------------------------------------------+ localaddr . . . x x x I transformed the code accordingly. The real fix would be to embed "fd", "listen", "connect", "mcast" and "udp" in a separate union. However OptsVisitor's enum parser only supports the type=XXX QemuOpt instance as union discriminator. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_init_slirp() to NetClientOptionsLaszlo Ersek
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_init_dump() to NetClientOptionsLaszlo Ersek
v1->v2: - NetdevDumpOptions::len is of type 'size', whose C type was changed to uint64_t. Adapt the printf() format specifier macro. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_init_nic() to NetClientOptionsLaszlo Ersek
v1->v2: - NetLegacyNicOptions::vectors is of type uint32 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23convert net_client_init() to OptsVisitorLaszlo Ersek
The net_client_init() prototype is kept intact. Based on "is_netdev", the QemuOpts-rooted QemuOpt-list is parsed as a Netdev or a NetLegacy. The original meat of net_client_init() is moved to and simplified in net_client_init1(): Fields not common between -net and -netdev are clearly separated. Getting the name for the init functions is cleaner: Netdev::id is mandatory, and all init functions handle a NULL NetLegacy::name. NetLegacy::vlan explicitly depends on -net (see below). Verifying the "type=" option for -netdev can be turned into a switch. Format validation with qemu_opts_validate() can be removed because the visitor covers it. Relatedly, the "net_client_types" array is reduced to an array of init functions that can be directly indexed by opts->kind. (Help text is available in the schema JSON.) The outermost negation in the condition around qemu_find_vlan() was flattened, because it expresses the dependent code's requirements more clearly. VLAN lookup is avoided if there's no init function to pass the VLAN to. Whenever the value of type=... is needed, we substitute NetClientOptionsKind_lookup[kind]. The individual init functions are not converted yet, thus the original QemuOpts instance is passed transparently. v1->v2: - NetLegacy::name is optional. Tracked it through all init functions: they all handle a NULL name. Updated commit message accordingly. v2->v3: - NetLegacy::id is allowed and takes precedence over NetLegacy::name. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23hw, net: "net_client_type" -> "NetClientOptionsKind" (qapi-generated)Laszlo Ersek
NET_CLIENT_TYPE_ -> NET_CLIENT_OPTIONS_KIND_ Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23qapi schema: add Netdev typesLaszlo Ersek
NetdevTapOptions::sndbuf and NetdevDumpOptions::len use the new "size" type. v1->v2: - NetLegacy::name is optional - NetLegacyNicOptions::vectors is of type uint32 - NetdevVdeOptions::port and ::mode are of type uint16 - NetLegacy::vlan has type int32 v2->v3: - NetLegacy::id is allowed and takes precedence over NetLegacy::name - replace "@traits" with "@opts" in NetLegacy & Netdev descriptions Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23qapi schema: remove trailing whitespaceLaszlo Ersek
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23qapi: introduce OptsVisitorLaszlo Ersek
This visitor supports parsing -option [type=]discriminator[,optarg1=val1][,optarg2=val2][,...] style QemuOpts objects into "native" C structures. After defining the type tree in the qapi schema (see below), a root type traversal with this visitor linked to the underlying QemuOpts object will build the "native" C representation of the option. The type tree in the schema, corresponding to an option with a discriminator, must have the following structure: struct scalar member for non-discriminated optarg 1 [*] list for repeating non-discriminated optarg 2 [*] wrapper struct single scalar member union struct for discriminator case 1 scalar member for optarg 3 [*] list for repeating optarg 4 [*] wrapper struct single scalar member scalar member for optarg 5 [*] struct for discriminator case 2 ... The "type" optarg name is fixed for the discriminator role. Its schema representation is "union of structures", and each discriminator value must correspond to a member name in the union. If the option takes no "type" descriminator, then the type subtree rooted at the union must be absent from the schema (including the union itself). Optarg values can be of scalar types str / bool / integers / size. Members marked with [*] may be defined as optional in the schema, describing an optional optarg. Repeating an optarg is supported; its schema representation must be "list of structure with single mandatory scalar member". If an optarg is not described as repeating in the schema (ie. it is defined as a scalar field instead of a list), its last occurrence will take effect. Ordering between differently named optargs is not preserved. A mandatory list (or an optional one which is reported to be available), corresponding to a repeating optarg, has at least one element after successful parsing. v1->v2: - Update opts_type_size() prototype to uint64_t. - Add opts_type_uint64() for options needing the full uint64_t range. (Internals could be extracted to "cutils.c".) - Allow negative values in opts_type_int(). - Rebase to nested Makefiles. v2->v3: - Factor opts_visitor_insert() out of opts_start_struct() and call it separately for opts_root->id if there's any. - Don't require non-negative values in opts_type_int()'s error message. - g_malloc0() may return NULL for zero-sized requests. Support empty structures by requesting 1 byte for them instead. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-23expose QemuOpt and QemuOpts struct definitions to interested partiesLaszlo Ersek
The only clients should be the existent "qemu-option.c", and the upcoming "qapi/opts-visitor.c". Signed-off-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>