ESP: fix ESP DMA access when DMA is not enabled

Sending ESP a command caused it to trigger DMA immediately
even if DMA was not enabled at the DMA controller.

Add a signal from DMA controller to ESP to tell ESP about changes in
DMA enable bit. Also use the correct function for setting up GPIO outputs.

This fixes NetBSD 1.6.1 through 3.0 boot.

Thanks to Artyom Tarasenko for extensive debugging of the problem.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
5 files changed
tree: 309f298ec1dcba9be54fb0604a92811cc3095dbe
  1. audio/
  2. block/
  3. bsd-user/
  4. darwin-user/
  5. default-configs/
  6. docs/
  7. fpu/
  8. fsdev/
  9. gdb-xml/
  10. hw/
  11. linux-user/
  12. net/
  13. pc-bios/
  14. QMP/
  15. roms/
  16. slirp/
  17. sysconfigs/
  18. target-alpha/
  19. target-arm/
  20. target-cris/
  21. target-i386/
  22. target-m68k/
  23. target-microblaze/
  24. target-mips/
  25. target-ppc/
  26. target-s390x/
  27. target-sh4/
  28. target-sparc/
  29. tcg/
  30. tests/
  31. ui/
  32. .gitignore
  33. .gitmodules
  34. a.out.h
  35. acl.c
  36. acl.h
  37. aes.c
  38. aes.h
  39. aio.c
  40. alpha-dis.c
  41. alpha.ld
  42. arch_init.c
  43. arch_init.h
  44. arm-dis.c
  45. arm-semi.c
  46. arm.ld
  47. async.c
  48. balloon.c
  49. balloon.h
  50. block-migration.c
  51. block-migration.h
  52. block.c
  53. block.h
  54. block_int.h
  55. blockdev.c
  56. blockdev.h
  57. bswap.h
  58. bt-host.c
  59. bt-host.h
  60. bt-vhci.c
  61. buffered_file.c
  62. buffered_file.h
  63. cache-utils.c
  64. cache-utils.h
  65. Changelog
  66. check-qdict.c
  67. check-qfloat.c
  68. check-qint.c
  69. check-qjson.c
  70. check-qlist.c
  71. check-qstring.c
  72. cmd.c
  73. cmd.h
  74. CODING_STYLE
  75. config.h
  76. configure
  77. console.c
  78. console.h
  79. COPYING
  80. COPYING.LIB
  81. cpu-all.h
  82. cpu-common.h
  83. cpu-defs.h
  84. cpu-exec.c
  85. cpus.c
  86. cpus.h
  87. create_config
  88. cris-dis.c
  89. cursor.c
  90. cursor_hidden.xpm
  91. cursor_left_ptr.xpm
  92. cutils.c
  93. def-helper.h
  94. device_tree.c
  95. device_tree.h
  96. dis-asm.h
  97. disas.c
  98. disas.h
  99. dma-helpers.c
  100. dma.h
  101. dyngen-exec.h
  102. elf.h
  103. envlist.c
  104. envlist.h
  105. exec-all.h
  106. exec.c
  107. feature_to_c.sh
  108. gdbstub.c
  109. gdbstub.h
  110. gen-icount.h
  111. HACKING
  112. host-utils.c
  113. host-utils.h
  114. hpet.h
  115. hppa-dis.c
  116. hppa.ld
  117. hxtool
  118. i386-dis.c
  119. i386.ld
  120. ia64-dis.c
  121. ia64.ld
  122. input.c
  123. ioport-user.c
  124. ioport.c
  125. ioport.h
  126. iov.c
  127. iov.h
  128. json-lexer.c
  129. json-lexer.h
  130. json-parser.c
  131. json-parser.h
  132. json-streamer.c
  133. json-streamer.h
  134. kvm-all.c
  135. kvm-stub.c
  136. kvm.h
  137. libfdt_env.h
  138. LICENSE
  139. linux-aio.c
  140. m68k-dis.c
  141. m68k-semi.c
  142. m68k.ld
  143. MAINTAINERS
  144. Makefile
  145. Makefile.dis
  146. Makefile.hw
  147. Makefile.objs
  148. Makefile.target
  149. Makefile.user
  150. microblaze-dis.c
  151. migration-exec.c
  152. migration-fd.c
  153. migration-tcp.c
  154. migration-unix.c
  155. migration.c
  156. migration.h
  157. mips-dis.c
  158. mips.ld
  159. module.c
  160. module.h
  161. monitor.c
  162. monitor.h
  163. nbd.c
  164. nbd.h
  165. net-checksum.c
  166. net.c
  167. net.h
  168. notify.c
  169. notify.h
  170. os-posix.c
  171. os-win32.c
  172. osdep.c
  173. osdep.h
  174. path.c
  175. pci-ids.txt
  176. poison.h
  177. posix-aio-compat.c
  178. ppc-dis.c
  179. ppc.ld
  180. ppc64.ld
  181. qbool.c
  182. qbool.h
  183. qdict-test-data.txt
  184. qdict.c
  185. qdict.h
  186. qemu-aio.h
  187. qemu-barrier.h
  188. qemu-binfmt-conf.sh
  189. qemu-char.c
  190. qemu-char.h
  191. qemu-common.h
  192. qemu-config.c
  193. qemu-config.h
  194. qemu-doc.texi
  195. qemu-error.c
  196. qemu-error.h
  197. qemu-img-cmds.hx
  198. qemu-img.c
  199. qemu-img.texi
  200. qemu-io.c
  201. qemu-lock.h
  202. qemu-log.h
  203. qemu-malloc.c
  204. qemu-monitor.hx
  205. qemu-nbd.c
  206. qemu-nbd.texi
  207. qemu-objects.h
  208. qemu-option.c
  209. qemu-option.h
  210. qemu-options.h
  211. qemu-options.hx
  212. qemu-os-posix.h
  213. qemu-os-win32.h
  214. qemu-queue.h
  215. qemu-sockets.c
  216. qemu-tech.texi
  217. qemu-thread.c
  218. qemu-thread.h
  219. qemu-timer.c
  220. qemu-timer.h
  221. qemu-tool.c
  222. qemu-x509.h
  223. qemu.sasl
  224. qemu_socket.h
  225. qerror.c
  226. qerror.h
  227. qfloat.c
  228. qfloat.h
  229. qint.c
  230. qint.h
  231. qjson.c
  232. qjson.h
  233. qlist.c
  234. qlist.h
  235. qobject.h
  236. qstring.c
  237. qstring.h
  238. readline.c
  239. readline.h
  240. README
  241. rules.mak
  242. rwhandler.c
  243. rwhandler.h
  244. s390-dis.c
  245. s390.ld
  246. savevm.c
  247. sh4-dis.c
  248. simpletrace.c
  249. simpletrace.h
  250. simpletrace.py
  251. softmmu-semi.h
  252. softmmu_defs.h
  253. softmmu_exec.h
  254. softmmu_header.h
  255. softmmu_template.h
  256. sparc-dis.c
  257. sparc.ld
  258. sparc64.ld
  259. sysemu.h
  260. targphys.h
  261. tcg-runtime.c
  262. texi2pod.pl
  263. thunk.c
  264. thunk.h
  265. TODO
  266. trace-events
  267. tracetool
  268. translate-all.c
  269. uboot_image.h
  270. usb-bsd.c
  271. usb-linux.c
  272. usb-stub.c
  273. VERSION
  274. vgafont.h
  275. vl.c
  276. x86_64.ld