Add MIPS ranchu machine

MIPS "ranchu" machine represents the new virtual
board which will be used for running Android emulation.
It inherits a number of Goldfish devices which are
modified to be used without the Goldfish platform
Bus controller and are installed using the Simple Bus
interface (sysbus_create_simple()).

The advantage of this platform over the old one
is support for Virtio Devices. Ranchu board
supports up to 16 virtio devices which can be
attached using virtio MMIO Bus.

For better overview of the ranchu virtual board
layout, take a look at the following picture :

  ABUS
  ||----MIPS CPU
  ||      |                   IRQs
  ||----Goldfish PIC---------------------(32)------
  ||                    | | | | | | | |         | |
  ||----Goldfish TTY----  | | | | | | |         | |
  ||                      | | | | | | |         | |
  ||----Goldfish RTC------  | | | | | |         | |
  ||                        | | | | | |         | |
  ||----Goldfish Timer------  | | | | |         | |
  ||                          | | | | |         | |
  ||----Goldfish FB-----------  | | | |         | |
  ||                            | | | |         | |
  ||----Goldfish Events---------  | | |         | |
  ||                              | | |         | |
  ||----Goldfish Audio------------  | |         | |
  ||                                | |         | |
  ||----Goldfish Battery------------  |         | |
  ||                                  |         | |
  ||----Android PIPE------------------          | |
  ||                                            | |
  ||----Virtio MMIO Bus                         | |
  ||    |     |    |                            | |
  ||    |     |    Virtio Device (virtio-block)-- |
  ||   (16)   |                                   |
  ||    |    Virtio Device (virtio-net)------------

For booting the board, Ranchu Platform kernel is used:

git clone https://android.googlesource.com/kernel/goldfish.git
git checkout origin/android-goldfish-3.10 -b android-goldfish-3.10

Take look at arch/mips/goldfish.

This is a Goldfish based kernel enriched with Device
Tree support. To build the kernel for the "ranchu" board,
use ranchu64_defconfig for MIPS64R6 configuration.

Device Tree is created on the QEMU side based on the
information about devices IO map and IRQ numbers. DTB
is automatically generated and appended right after
where the kernel is loaded. Kernel will pick up this
DTB and register everything according to the information
provided. It is assumed that the kernel has
CONFIG_MIPS_APPENDED_DTB=y option enabled, otherwise
it will use the built-in device tree which may hold stale
information.

Change-Id: I8344e140dcc70e6cae0e06af4deca75960b93fbc
6 files changed
tree: 0fc9929113f3b963807790093bdfe6a8026f013b
  1. audio/
  2. backends/
  3. block/
  4. bsd-user/
  5. default-configs/
  6. disas/
  7. docs/
  8. fpu/
  9. fsdev/
  10. gdb-xml/
  11. hw/
  12. include/
  13. libcacard/
  14. libdecnumber/
  15. linux-headers/
  16. linux-user/
  17. net/
  18. pc-bios/
  19. po/
  20. qapi/
  21. qga/
  22. qobject/
  23. qom/
  24. roms/
  25. scripts/
  26. slirp/
  27. stubs/
  28. sysconfigs/
  29. target-alpha/
  30. target-arm/
  31. target-cris/
  32. target-i386/
  33. target-lm32/
  34. target-m68k/
  35. target-microblaze/
  36. target-mips/
  37. target-moxie/
  38. target-openrisc/
  39. target-ppc/
  40. target-s390x/
  41. target-sh4/
  42. target-sparc/
  43. target-tricore/
  44. target-unicore32/
  45. target-xtensa/
  46. tcg/
  47. tests/
  48. trace/
  49. ui/
  50. util/
  51. .exrc
  52. .gitignore
  53. .gitmodules
  54. .mailmap
  55. .travis.yml
  56. accel.c
  57. aio-posix.c
  58. aio-win32.c
  59. android-commands.h
  60. android-console.c
  61. android-console.h
  62. arch_init.c
  63. async.c
  64. balloon.c
  65. block-migration.c
  66. block.c
  67. blockdev-nbd.c
  68. blockdev.c
  69. blockjob.c
  70. bootdevice.c
  71. bt-host.c
  72. bt-vhci.c
  73. Changelog
  74. CODING_STYLE
  75. configure
  76. COPYING
  77. COPYING.LIB
  78. coroutine-gthread.c
  79. coroutine-sigaltstack.c
  80. coroutine-ucontext.c
  81. coroutine-win32.c
  82. cpu-exec.c
  83. cpus.c
  84. cputlb.c
  85. device-hotplug.c
  86. device_tree.c
  87. disas.c
  88. dma-helpers.c
  89. dump.c
  90. exec.c
  91. gdbstub.c
  92. HACKING
  93. hmp-commands.hx
  94. hmp.c
  95. hmp.h
  96. iohandler.c
  97. ioport.c
  98. iothread.c
  99. kvm-all.c
  100. kvm-stub.c
  101. LICENSE
  102. main-loop.c
  103. MAINTAINERS
  104. Makefile
  105. Makefile.objs
  106. Makefile.target
  107. memory.c
  108. memory_mapping.c
  109. migration-exec.c
  110. migration-fd.c
  111. migration-rdma.c
  112. migration-tcp.c
  113. migration-unix.c
  114. migration.c
  115. module-common.c
  116. monitor.c
  117. nbd.c
  118. numa.c
  119. os-posix.c
  120. os-win32.c
  121. page_cache.c
  122. qapi-schema.json
  123. qdev-monitor.c
  124. qdict-test-data.txt
  125. qemu-bridge-helper.c
  126. qemu-char.c
  127. qemu-coroutine-io.c
  128. qemu-coroutine-lock.c
  129. qemu-coroutine-sleep.c
  130. qemu-coroutine.c
  131. qemu-doc.texi
  132. qemu-file-stdio.c
  133. qemu-file-unix.c
  134. qemu-file.c
  135. qemu-img-cmds.hx
  136. qemu-img.c
  137. qemu-img.texi
  138. qemu-io-cmds.c
  139. qemu-io.c
  140. qemu-log.c
  141. qemu-nbd.c
  142. qemu-nbd.texi
  143. qemu-options-wrapper.h
  144. qemu-options.h
  145. qemu-options.hx
  146. qemu-seccomp.c
  147. qemu-tech.texi
  148. qemu-timer.c
  149. qemu.nsi
  150. qemu.sasl
  151. qmp-commands.hx
  152. qmp.c
  153. qtest.c
  154. README
  155. rules.mak
  156. savevm.c
  157. softmmu_template.h
  158. spice-qemu-char.c
  159. tcg-runtime.c
  160. tci.c
  161. thread-pool.c
  162. thunk.c
  163. tpm.c
  164. trace-events
  165. translate-all.c
  166. translate-all.h
  167. user-exec.c
  168. VERSION
  169. version.rc
  170. vl.c
  171. vmstate.c
  172. xbzrle.c
  173. xen-common-stub.c
  174. xen-common.c
  175. xen-hvm-stub.c
  176. xen-hvm.c
  177. xen-mapcache.c