aboutsummaryrefslogtreecommitdiffstats
path: root/hw
Commit message (Collapse)AuthorAgeFilesLines
...
* hw: framebuffer: add support for 32-bit framebuffers.David 'Digit' Turner2011-01-181-14/+21
| | | | | | | This provides a new read i/o port to return the framebuffer's format to the kernel driver. Change-Id: Ifd1c4d8a4dc75fa73d5f6750e0b501c34468aec5
* hw: goldfish_fb: Minimize the size of the update rectangle.David 'Digit' Turner2011-01-161-92/+323
| | | | | | | | | | | | | | | | This patch modifies the framebuffer's update callback to compute the minimum bounding rectangle of each framebuffer update. Before that, the code only computed the minimum and maximum Y coordinates, assuming xmin=0 and xmax=width-1. This should help reduce un-necessary traffic/churn for our core->UI framebuffer protocol. Moreover, introduce the ability to support framebuffers / display surfaces with different depths. This is a first step towards providing 32-bit framebuffers to the guest system to slightly speed-up emulated rendering on Gingerbread and above. Change-Id: I6194824ce67a3b1d6d95b5d97ddec3ef459e408e
* upstream: integrate block changesDavid 'Digit' Turner2011-01-024-14/+133
| | | | | | | | This large patch upgrades the block support code to the upstream version available in ba5e7f82169f32ab8163c707d97c799ca09f8924 dated 2010-08-08 Change-Id: I8b24df0c287e72f6620650a4d6a62e1bb315453e
* Add -audio-test-out option to the core.David 'Digit' Turner2011-01-021-1/+1
| | | | | | | | | | | | | This option can be used to quickly check audio output (without having to boot a full AVD and launch a sound-playing application). Usage: emulator <other-options> -qemu -audio-test-out qemu-android <other-options> -audio-test-out This simply generates an ugly saw signal, but that's enough for us. Change-Id: I060300b4000b9705d181c6262de8d4d13c749e69
* Replacement of padding with ftruncate.Tim Baverstock2010-11-231-33/+53
| | | | | | | | Also stored some other parameters, speculatively. Guard ftruncate and lseek against EINTR Change-Id: I4237640318564db6c375a90415097c00e4fcafaa
* Add env var ANDROID_TMP to override /tmp/android location.Raphael2010-11-161-1/+1
| | | | | | | | | | | | This is needed if there's already a /tmp/android which the current user can't access on the system. It would prevent the emulator from starting with a cryptic error message: NAND: could not create temp file for system NAND disk image: Permission deniedemulator: User-config was not changed. SDK Bug: 3154431 Change-Id: Iefe7fd6a5139da545aaef5670fb7f42d210d0edc
* Fix linux-x86_64 build.David 'Digit' Turner2010-10-212-3/+3
| | | | | | | | | Fix various 64-bitness issues in the source code to make the --try-64 option work again on Linux. Note that the generated binary is not faster than its 32-bit variant when it comes to benchmarking the boot sequence. Change-Id: Iad248e033757d4cd25524a438a5dbe1cf3aca6cf
* Fix incorrect orientation at boot.David 'Digit' Turner2010-10-201-6/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goldfish kernel's event driver is very picky about the state of the virtual device it talks to. Essentially, it can only listen to h/w events if the corresponding IRQ is raised _after_ it has completed some initial setup. If the IRQ is raised before, the driver will refuse to listen to events, and any interaction becomes impossible. We changed the way our UI windows are built and managed previously, and this had the unfortunate effect of sending one h/w event too soon, which, in the old code, would raise the IRQ prematurely. This resulted in an input freeze. To work around this the UI code was modified to not send the initial h/w event, but this resulted in bad orientation of the home screen at the end of the boot sequence. This change allows the virtual device to wait for the kernel driver before raising the IRQ, in the case any h/w event has been buffered. It also removes the hack in the UI code, allowing the send of the initial h/w event at startup. BONUS MINOR CHANGES: EsounD probe: fix error message. console: fix compiler warnings libpng: proper handling of MMX support. android-configure.sh: fix --ignore-audio handling The option didn't do anything if the audio development packages are properly installed on the system. Change-Id: Ib134158873d5cb72290c9676d92d20233226c889
* Added state snapshot support for QemuD.Ot ten Thije2010-10-141-0/+2
| | | | | | | | | | | | | | | | | With this patch, both modem and sensor functionality are correctly restored when a state snapshot is loaded. This was not the case previously because communication with either of these services is done using the qemud daemon, which did not support snapshots. The boot-properties and charpipe services have no specific save/load functionality yet, since the framework itself should be reviewed first. Adding support for bootproperties should not be difficult though, and charpipe may not need it. For a description of the high-level process for saving and loading, consult section IV "State snapshots" in docs/ANDROID-QEMUD.TXT. Change-Id: I5b06d88b911ca096e78060163174904c48a01c66
* Merge "Permanent fix for workaround of timer issue (commit a7f114bc)."Ot ten Thije2010-10-141-2/+1
|\
| * Permanent fix for workaround of timer issue (commit a7f114bc).Ot ten Thije2010-09-241-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The compiler generated incorrect instructions when loading timers, because qemu_get_be64 was used before it was declared. This caused the compiler to assume that a normal (32 bit) int would be returned, rather than a 64 bit one. Just including the "hw/hw.h" header is sufficient to correct this. The makefile for the project has recently been changed to build with -Wall, which should prevent this from going unnoticed again. Change-Id: I74c98183287cf26b767a36f7a6ff9ebf0b891826
* | Save NAND disk state in snapshots.Ot ten Thije2010-10-131-45/+206
|/ | | | | | | | | | | | | | | | This patch fixes saving and restoring the state of the emulated NAND disks, by copying all contents of each disk into the snapshot file. During restore the disks are then entirely overwritten with the snapshot contents. The main issue with this approach is that the size of the disk snapshots is determined by the maximum capacity of the disk in question, rather than the actual size of the underlying file, which may be considerably smaller. The difference is filled with padding. Unfortunately, obvious approaches to avoid this padding result in incorrect state after restoring. Change-Id: I4abe329ff2cf2f159c3d6dfc206959614cc4ca35
* Remove compiler warnings when building the emulator.David 'Digit' Turner2010-09-226-13/+28
| | | | | | | This forces -Wall during the build. Note that this patch doesn't remove all warnings, but most of the remaining ones are from upstream anyway. Change-Id: I8808d8495e99866e156ce5780d2e3c305eab491f
* upstream: osdep changes + fix mingw build.David Turner2010-09-131-41/+41
|
* upstream: minow hw updates.David Turner2010-09-1312-45/+40
|
* upstream: buffered file minor change.David Turner2010-09-131-1/+3
|
* Add basic suspend/resume support for networking.Ot ten Thije2010-09-081-2/+81
| | | | | | | | | | | | | | | | | This patch saves the current state of the SMSC 91C111 ethernet emulation. The restore function will restore all buffers, thus preventing segfaults when guest code tries to access data that was there when state was saved. However, no effort is made to re-establish connections. This is probably impossible anyway, since we have no way to generically make the remote end pick up where we left when state was suspended. From the perspective of the guest, resuming is therefore equivalent to a temporary network failure, in which all open connections are lost. After the restore is complete, new connections can be made as though nothing happened. Change-Id: Ibbbabc685ef296e675d4018996f703e07d9aad6a
* Fix suspending and resuming timers.Ot ten Thije2010-09-061-26/+37
| | | | | | | | | | | | | This brings the code for saving and restoring the vm clock up to date with the current codebase. It also includes a workaround for an issue that occurred when the state of a goldfish timer was restored. For unexplained reasons, the compiler generated code to copy the least significant 32 bits only when reading a 64 bit number, dropping the remaining 32 bits. In order to facilitate debugging, the variables in the goldfish timer code have been suffixed with their units ("ns" for nanoseconds or "tks" for ticks).
* Moved nand and netspeed initialization from main to core.Vladimir Chtchetkine2010-08-262-2/+109
| | | | Change-Id: Ide3914fa52f62f618d39ac20f02bce8185a6805a
* Better separation of UI and Core sources for framebuffer emulation.David 'Digit' Turner2010-07-274-41/+50
| | | | | | + new document under docs/DISPLAY-STATE.TXT to explain what's happening. Change-Id: Ia0d233377266212da49af932c7528f46f5feb92d
* Remove UI dependency from goldfish_event_device.cVladimir Chtchetkine2010-07-221-1/+2
| | | | Change-Id: Iea5edfbae0caff45161c814d631d35d2e6d61d1c
* Add small user-event abstraction interface.David 'Digit' Turner2010-05-251-1/+2
| | | | | | | | | | | | | | | | Preparation for future UI frontend/backend separation. This is done to ensure that the code under android/skin/ does not depend on any QEMU-specific header. We achieve this by adding a new abstract header "user-events.h" and one QEMU-specific implementations for the functions defined here. This also modifies console.h and vl-android.c to make them closer to upstream (by removing Android-specific changes). + fix Makefile.android to always build SDL from sources in standalone mode. Change-Id: I0d152741e7bb2c9cd283f5c35bd054385c7c1eb3
* Upstream: integrate timer/clock management changes.David 'Digit' Turner2010-05-113-15/+13
| | | | Change-Id: I24acbdebe58d207352548f54dda1abf5be01e7d4
* Upstream: Move ioport code to ioport.[hc]David 'Digit' Turner2010-05-112-11/+3
| | | | Change-Id: I41aa30fff127338665a6a32fa66dcd43dd3bfe8b
* Upstream: Replace sys-queue.h with qemu-queue.hDavid 'Digit' Turner2010-05-104-23/+21
| | | | Change-Id: I5c51f54a7fe2ea702420429bbf0c789ed6d8c534
* Upstream: HOST_WORDS_ALIGNED -> WORDS_ALIGNEDDavid 'Digit' Turner2010-05-102-5/+5
| | | | Change-Id: Ica9022695d83fb48a8c25fdb1e1f0dc1c63747ff
* Revert previous patch to fix SD Card emulationDavid 'Digit' Turner2010-04-153-97/+16
| | | | | | | | | | | The previous patch modifies SD Card hardware emulation in a way that is not backwards compatible with previous SDK platform releases. This has the unfortunate effect of making SD Card emulation not work properly when running existing AVDs. Reverting the patch until we get a better one. Change-Id: I82dac87709d88aa3bd292bf2ed0008ae74d95853
* Make trace filename message only display with -debug-init / -verboseDavid 'Digit' Turner2010-02-251-2/+6
|
* Merge memory checking from sandboxVladimir Chtchetkine2010-02-182-41/+179
| | | | Change-id: Ibce845d0
* qemu: android: Add control console support for managing sdcardsSan Mehat2009-12-072-6/+14
| | | | | | | | Signed-off-by: San Mehat <san@google.com> qemu: goldfish: Fix compile error introduced in refactoring Signed-off-by: San Mehat <san@google.com>
* qemu: android: Add support for multiple SD cardsSan Mehat2009-12-073-16/+89
| | | | | | | | | | | | | | | | | | | | | | | | Add commandline support for an additional SD card, and plumb support to the MMC emulation layer. This patch also reworks the way the hw emulation layer registers devices. Previously, the mmc virtual hardware was only created if the sdcard image existed. Now, two virtual MMC controllers are *always* created as on real hardware. When a request is made to one of our controllers which has no image file bound to it, a new interrupt status indicating a command timeout is sent to the guest driver, as is standard with MMC controllers. This patch also sets the stage for supporting hot-add / hot-remove. Signed-off-by: San Mehat <san@google.com> qemu: android: Integrate card detect into the virtual mmc hardware and wire it up to the STATE_CHANGE irq status Signed-off-by: San Mehat <san@google.com> fixups from review - mmc now works with legacy drivers Signed-off-by: San Mehat <san@google.com>
* Fix a crash when using an 8MB SD Card image file.David 'Digit' Turner2009-12-011-2/+6
| | | | | The minimum size is now 9MB. This appears to be a limitation of the emulated MMC hardware code and/or kernel device driver.
* Move NAND size warning to debug log.Xavier Ducrohet2009-10-011-3/+3
| | | | Change-Id: I67152761977b330e3f4c1bbe3d8eb99e48e2e7e7
* Merge upstream QEMU 10.0.50 into the Android source tree.David 'Digit' Turner2009-09-1461-1028/+11189
| | | | | | | | | | | | | | | | | | | This change integrates many changes from the upstream QEMU sources. Its main purpose is to enable correct ARMv6 and ARMv7 support to the Android emulator. Due to the nature of the upstream code base, this unfortunately also required changes to many other parts of the source. Note that to ensure easier integrations in the future, some source files and directories that have heavy Android-specific customization have been renamed with an -android suffix. The original files are still there for easier integration tracking, but *never* compiled. For example: net.c net-android.c qemu-char.c qemu-char-android.c slirp/ slirp-android/ etc... Tested on linux-x86, darwin-x86 and windows host machines.
* Merge change 2000 into donutAndroid (Google) Code Review2009-05-192-0/+6
|\ | | | | | | | | * changes: Add support for new trace records for native (JNI) calls.
| * Add support for new trace records for native (JNI) calls.Jack Veenstra2009-05-192-0/+6
| | | | | | | | | | | | This change adds new trace record types for entering (and exiting) native code from Java code. There is a corresponding change in the Dalvik interpreter to generate these trace records.
* | Allow search key (F5) to work on keyboard-less configurationsDavid 'Digit' Turner2009-05-121-0/+4
|/
* Add support for tracing Java method entry/exit to qemu.Jack Veenstra2009-05-064-19/+35
| | | | | | | | | | | This is part of a larger change to add support for tracing Java methods. There is also a kernel change and a small change to the Dalvik interpreter that will be checked in separately. There used to be support for tracing Java methods but it relied on trapping every store and checking if the store address matched a special "magic" region (and that stopped working because we can no longer trap on loads and stores). The new approach uses a memory-mapped page to catch stores to just that page.
* auto import from //branches/cupcake_rel/...@140373The Android Open Source Project2009-03-181-15/+3
|
* auto import from //branches/cupcake/...@137873The Android Open Source Project2009-03-111-152/+136
|
* auto import from //depot/cupcake/@136594The Android Open Source Project2009-03-051-5/+4
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-0353-0/+14976
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-0353-14976/+0
|
* auto import from //branches/cupcake/...@130745The Android Open Source Project2009-02-1046-805/+5076
|
* auto import from //branches/cupcake/...@125939The Android Open Source Project2009-01-091-1/+3
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-173-25/+40
|
* Initial ContributionThe Android Open Source Project2008-10-21105-46508/+5022
|
* external/qemu 0.8.2Upstream1970-01-1288-0/+52174