aboutsummaryrefslogtreecommitdiffstats
path: root/hw
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix a crash that happened when the content directory didn't have a cache.img ↵David 'Digit' Turner2011-03-151-2/+3
| | | | | | | | | | | | | | | | | | file. This only happened for fresh newly-created AVDs. Existing ones used for testing the emulator already had a cache.img and booted properly. Change-Id: I87901ea5fb1dc6aa7d2bb3dd191de58d972c386f
* | x86: Enable KVM mode for Android x86 emulator (update/rebase)Jun Nakajima2011-03-043-1/+45
| | | | | | | | | | | | | | | | | | | | This patch enables KVM mode on x86 Linux to boost performance of x86 emulaiton if the hardware-based virtualization feature is present on the host machine. Change-Id: I4b24474b3ec115a3b9a7bf017801f4f610253b09 Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com> Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com> Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
* | Move data partition initialization to core.David 'Digit' Turner2011-03-011-1/+1
| | | | | | | | Change-Id: I3c2b4668593391026da028194503fc87246e44ba
* | Move cache partition initialization to core.David 'Digit' Turner2011-03-011-0/+2
| | | | | | | | Change-Id: I1f887e6f8fc38e43b1fff3f7bab3814b52542762
* | x86: Fixing audio.Jun Nakajima2011-02-241-0/+6
| | | | | | | | | | | | Change-Id: I0614450cd512d52bf24020dda1c933f0b22cb09b Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com> Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
* | Minor cleanups for core/ui Makefile separation.David 'Digit' Turner2011-02-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains minor cleanups that will be needed by a few future patches that will improve the way core and ui sources are separated and built. - remove a few compiler warnings - formatting - remove the memcheck CONFIG_MEMCHECK checks (they later get in the way) - refine hw/hw.h inclusion's of cpu.h (this comes from upstream) - add missing definitions for PRUd64 and PRUx64 (used later) - remove CONFIG_SHAPER test, replace with CONFIG_ANDROID instead. - add missing strdup() calls. Change-Id: Ic7d6681a51af718c298f0ee4bd884b1d8750f28e
* | Add hw.keyboard.lidDavid 'Digit' Turner2011-02-101-3/+2
| | | | | | | | | | | | | | | | | | | | | | This is used to control the lid switch virtual device. + Add support for a "version <number>" field to the skin format. This will later be used for skin format #3. + Fix a bug where string hw properties didn't work/compile Change-Id: I678a0988d2cd24169dd0c2ece96e7ab0b2822104
* | Revert "Build arm and x86 binaries at the same time."Xavier Ducrohet2011-02-091-3/+0
| | | | | | | | | | | | This fails to build on MacOS X This reverts commit a39b10bd2574825a815d6ad854499dd127cfa9cb.
* | Build arm and x86 binaries at the same time.David 'Digit' Turner2011-02-101-0/+3
|/ | | | Change-Id: I105c5a097c988cb964b47b40b71c7a08af0d9210
* Fixing aborts caused by compute_fb_update_rect_linear() when the framebuffersJun Nakajima2011-02-081-1/+10
| | | | | | | | are large. Also, added a boot parameter for the goldfish kernel to use PIT, rather than TSC. Change-Id: I5824c7248e0c1a4c487aeb52da112d870846ae62 Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
* events: Fix no-Dpad emulation when hw.keyboard=yesDavid 'Digit' Turner2011-02-061-0/+23
| | | | | | | | | | This fixes a bug where Dpad emulation was forced when hw.keyboard was set to 'yes' in hardware.ini, even if hw.dpad was set to no. The problem was that the events device set the Dpad EV_KEY bits unconditionally since they are in the 0..0xff range. Change-Id: Ice2488341170f43d3fe230d816a089da97c4d5ac
* x86: Add x86 support. Rebase the change (20906/1) due to a minor conflict.Jun Nakajima2011-02-023-4/+21
| | | | | | | Change-Id: Ic73cca0fc6c6e5cf74f63daa6080d00aa7c392bb Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com> Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com> Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
* New files are from the upstream QEMU (0.10.5), and the code is based onJun Nakajima2011-01-2915-0/+7212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the following commit (dated 2009-06-19, see CHANGES.TXT): d2e9fd8f703203c2eeeed120b1ef6c3a6574e0ab new file: hw/apic.c new file: hw/fdc.h new file: hw/fw_cfg.c new file: hw/fw_cfg.h new file: hw/i8254.c new file: hw/i8259.c new file: hw/ioapic.c new file: hw/mc146818rtc.c new file: hw/ne2000.c new file: hw/pc.c new file: hw/pckbd.c new file: hw/piix_pci.c new file: hw/ps2.c new file: hw/ps2.h new file: hw/smbios.c new file: target-i386/TODO new file: target-i386/cpu.h new file: target-i386/exec.h new file: target-i386/helper.c new file: target-i386/helper.h new file: target-i386/helper_template.h new file: target-i386/kvm.c new file: target-i386/machine.c new file: target-i386/op_helper.c new file: target-i386/ops_sse.h new file: target-i386/ops_sse_header.h new file: target-i386/svm.h new file: target-i386/translate.c Change-Id: I55c62ed7516f002c882705545e7c21997ece9927
* Security fix from Tavis Ormandyrich cannings2011-01-251-3/+5
| | | | | | Perform null check before calling r->transfer_handler. Change-Id: Ide3cd7edc7bde12a0635572bfa72f3a6dd05a926
* Make "qwerty2" the default charmap.David 'Digit' Turner2011-01-191-8/+22
| | | | | | | | | | | | | | | This patch makes "qwerty2" the default charmap for skins that don't specifiy one explicitely. Note that the "qwerty" charmap is here for historical reasons only. All skins provided by all SDK Android platforms explicitely mention "qwerty2", so this patch will mainly impact "magic skins" like those created by an option like "-skin 1024x768". This gets rid of the obsolete "qwerty" charmap (it was never used by any of the skins provided by the SDK, and is incorrect). + Simplify android/charmap.[hc] code. + Lazy-load the charmap name in hw/goldfish_events_device.c
* Sligh speedup for pixel conversion routines with Duff's device.David 'Digit' Turner2011-01-181-20/+33
| | | | Change-Id: If832bc5844945f7a2027b2f8d09393586545d8d5
* 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.