v86 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/Readme.md +17 -6
  2. package/bios/seabios/.config +113 -0
  3. package/bios/seabios/.config.old +114 -0
  4. package/bios/seabios/.gitignore +4 -0
  5. package/bios/seabios/COPYING +674 -0
  6. package/bios/seabios/COPYING.LESSER +165 -0
  7. package/bios/seabios/Makefile +286 -0
  8. package/bios/seabios/README +17 -0
  9. package/bios/seabios/docs/Build_overview.md +104 -0
  10. package/bios/seabios/docs/Contributing.md +20 -0
  11. package/bios/seabios/docs/Debugging.md +111 -0
  12. package/bios/seabios/docs/Developer_Documentation.md +25 -0
  13. package/bios/seabios/docs/Developer_links.md +86 -0
  14. package/bios/seabios/docs/Download.md +27 -0
  15. package/bios/seabios/docs/Execution_and_code_flow.md +178 -0
  16. package/bios/seabios/docs/Linking_overview.md +160 -0
  17. package/bios/seabios/docs/Mailinglist.md +8 -0
  18. package/bios/seabios/docs/Memory_Model.md +253 -0
  19. package/bios/seabios/docs/README +5 -0
  20. package/bios/seabios/docs/Releases.md +482 -0
  21. package/bios/seabios/docs/Runtime_config.md +193 -0
  22. package/bios/seabios/docs/SeaBIOS.md +17 -0
  23. package/bios/seabios/docs/SeaVGABIOS.md +39 -0
  24. package/bios/seabios/out/autoconf.h +117 -0
  25. package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
  26. package/bios/seabios/out/include/config/acpi.h +0 -0
  27. package/bios/seabios/out/include/config/ahci.h +0 -0
  28. package/bios/seabios/out/include/config/apmbios.h +0 -0
  29. package/bios/seabios/out/include/config/ata/dma.h +0 -0
  30. package/bios/seabios/out/include/config/ata/pio32.h +0 -0
  31. package/bios/seabios/out/include/config/ata.h +0 -0
  32. package/bios/seabios/out/include/config/auto.conf +69 -0
  33. package/bios/seabios/out/include/config/auto.conf.cmd +9 -0
  34. package/bios/seabios/out/include/config/boot.h +0 -0
  35. package/bios/seabios/out/include/config/bootorder.h +0 -0
  36. package/bios/seabios/out/include/config/build/vgabios.h +0 -0
  37. package/bios/seabios/out/include/config/call32/smm.h +0 -0
  38. package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
  39. package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
  40. package/bios/seabios/out/include/config/debug/level.h +0 -0
  41. package/bios/seabios/out/include/config/drives.h +0 -0
  42. package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
  43. package/bios/seabios/out/include/config/esp/scsi.h +0 -0
  44. package/bios/seabios/out/include/config/flash/floppy.h +0 -0
  45. package/bios/seabios/out/include/config/floppy.h +0 -0
  46. package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
  47. package/bios/seabios/out/include/config/hardware/irq.h +0 -0
  48. package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
  49. package/bios/seabios/out/include/config/keyboard.h +0 -0
  50. package/bios/seabios/out/include/config/lpt.h +0 -0
  51. package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
  52. package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
  53. package/bios/seabios/out/include/config/megasas.h +0 -0
  54. package/bios/seabios/out/include/config/mouse.h +0 -0
  55. package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
  56. package/bios/seabios/out/include/config/mptable.h +0 -0
  57. package/bios/seabios/out/include/config/mtrr/init.h +0 -0
  58. package/bios/seabios/out/include/config/optionroms.h +0 -0
  59. package/bios/seabios/out/include/config/override/pci/id.h +0 -0
  60. package/bios/seabios/out/include/config/pcibios.h +0 -0
  61. package/bios/seabios/out/include/config/pirtable.h +0 -0
  62. package/bios/seabios/out/include/config/pmm.h +0 -0
  63. package/bios/seabios/out/include/config/pmtimer.h +0 -0
  64. package/bios/seabios/out/include/config/pnpbios.h +0 -0
  65. package/bios/seabios/out/include/config/ps2port.h +0 -0
  66. package/bios/seabios/out/include/config/pvscsi.h +0 -0
  67. package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
  68. package/bios/seabios/out/include/config/qemu.h +0 -0
  69. package/bios/seabios/out/include/config/rom/size.h +0 -0
  70. package/bios/seabios/out/include/config/rtc/timer.h +0 -0
  71. package/bios/seabios/out/include/config/s3/resume.h +0 -0
  72. package/bios/seabios/out/include/config/sdcard.h +0 -0
  73. package/bios/seabios/out/include/config/serial.h +0 -0
  74. package/bios/seabios/out/include/config/tcgbios.h +0 -0
  75. package/bios/seabios/out/include/config/threads.h +0 -0
  76. package/bios/seabios/out/include/config/tristate.conf +4 -0
  77. package/bios/seabios/out/include/config/tsc/timer.h +0 -0
  78. package/bios/seabios/out/include/config/use/smm.h +0 -0
  79. package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
  80. package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
  81. package/bios/seabios/out/include/config/vga/bochs.h +0 -0
  82. package/bios/seabios/out/include/config/vga/did.h +0 -0
  83. package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
  84. package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
  85. package/bios/seabios/out/include/config/vga/pci.h +0 -0
  86. package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
  87. package/bios/seabios/out/include/config/vga/vbe.h +0 -0
  88. package/bios/seabios/out/include/config/vga/vid.h +0 -0
  89. package/bios/seabios/out/include/config/vgahooks.h +0 -0
  90. package/bios/seabios/out/include/config/virtio/blk.h +0 -0
  91. package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
  92. package/bios/seabios/out/include/config/xen.h +0 -0
  93. package/bios/seabios/out/scripts/kconfig/conf +0 -0
  94. package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
  95. package/bios/seabios/out/scripts/kconfig/zconf.hash.c +289 -0
  96. package/bios/seabios/out/scripts/kconfig/zconf.lex.c +2420 -0
  97. package/bios/seabios/out/scripts/kconfig/zconf.tab.c +2538 -0
  98. package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
  99. package/bios/seabios/scripts/acpi_extract.py +366 -0
  100. package/bios/seabios/scripts/acpi_extract_preprocess.py +41 -0
  101. package/bios/seabios/scripts/buildrom.py +56 -0
  102. package/bios/seabios/scripts/buildversion.py +134 -0
  103. package/bios/seabios/scripts/checkrom.py +95 -0
  104. package/bios/seabios/scripts/checkstack.py +226 -0
  105. package/bios/seabios/scripts/checksum.py +16 -0
  106. package/bios/seabios/scripts/encodeint.py +21 -0
  107. package/bios/seabios/scripts/gen-offsets.sh +17 -0
  108. package/bios/seabios/scripts/kconfig/.gitignore +22 -0
  109. package/bios/seabios/scripts/kconfig/Makefile +331 -0
  110. package/bios/seabios/scripts/kconfig/POTFILES.in +12 -0
  111. package/bios/seabios/scripts/kconfig/check.sh +13 -0
  112. package/bios/seabios/scripts/kconfig/conf.c +718 -0
  113. package/bios/seabios/scripts/kconfig/confdata.c +1250 -0
  114. package/bios/seabios/scripts/kconfig/expr.c +1168 -0
  115. package/bios/seabios/scripts/kconfig/expr.h +241 -0
  116. package/bios/seabios/scripts/kconfig/gconf.c +1542 -0
  117. package/bios/seabios/scripts/kconfig/gconf.glade +661 -0
  118. package/bios/seabios/scripts/kconfig/images.c +326 -0
  119. package/bios/seabios/scripts/kconfig/kxgettext.c +235 -0
  120. package/bios/seabios/scripts/kconfig/lex.zconf.c +2430 -0
  121. package/bios/seabios/scripts/kconfig/list.h +131 -0
  122. package/bios/seabios/scripts/kconfig/lkc.h +200 -0
  123. package/bios/seabios/scripts/kconfig/lkc_proto.h +57 -0
  124. package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +4 -0
  125. package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +4 -0
  126. package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +87 -0
  127. package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +332 -0
  128. package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +257 -0
  129. package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +301 -0
  130. package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +437 -0
  131. package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +408 -0
  132. package/bios/seabios/scripts/kconfig/lxdialog/util.c +713 -0
  133. package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +114 -0
  134. package/bios/seabios/scripts/kconfig/mconf.c +1036 -0
  135. package/bios/seabios/scripts/kconfig/menu.c +697 -0
  136. package/bios/seabios/scripts/kconfig/merge_config.sh +150 -0
  137. package/bios/seabios/scripts/kconfig/nconf.c +1556 -0
  138. package/bios/seabios/scripts/kconfig/nconf.gui.c +656 -0
  139. package/bios/seabios/scripts/kconfig/nconf.h +96 -0
  140. package/bios/seabios/scripts/kconfig/qconf.cc +1795 -0
  141. package/bios/seabios/scripts/kconfig/qconf.h +338 -0
  142. package/bios/seabios/scripts/kconfig/streamline_config.pl +647 -0
  143. package/bios/seabios/scripts/kconfig/symbol.c +1373 -0
  144. package/bios/seabios/scripts/kconfig/util.c +157 -0
  145. package/bios/seabios/scripts/kconfig/zconf.gperf +48 -0
  146. package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +289 -0
  147. package/bios/seabios/scripts/kconfig/zconf.l +363 -0
  148. package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +2420 -0
  149. package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +2538 -0
  150. package/bios/seabios/scripts/kconfig/zconf.y +733 -0
  151. package/bios/seabios/scripts/layoutrom.py +705 -0
  152. package/bios/seabios/scripts/python23compat.py +14 -0
  153. package/bios/seabios/scripts/readserial.py +190 -0
  154. package/bios/seabios/scripts/tarball.sh +36 -0
  155. package/bios/seabios/scripts/test-build.sh +90 -0
  156. package/bios/seabios/scripts/transdump.py +53 -0
  157. package/bios/seabios/scripts/vgafixup.py +96 -0
  158. package/bios/seabios/src/Kconfig +579 -0
  159. package/bios/seabios/src/apm.c +215 -0
  160. package/bios/seabios/src/asm-offsets.c +23 -0
  161. package/bios/seabios/src/biosvar.h +130 -0
  162. package/bios/seabios/src/block.c +623 -0
  163. package/bios/seabios/src/block.h +121 -0
  164. package/bios/seabios/src/bmp.c +117 -0
  165. package/bios/seabios/src/boot.c +793 -0
  166. package/bios/seabios/src/bootsplash.c +255 -0
  167. package/bios/seabios/src/bregs.h +80 -0
  168. package/bios/seabios/src/byteorder.h +71 -0
  169. package/bios/seabios/src/cdrom.c +322 -0
  170. package/bios/seabios/src/clock.c +506 -0
  171. package/bios/seabios/src/code16gcc.s +1 -0
  172. package/bios/seabios/src/config.h +108 -0
  173. package/bios/seabios/src/cp437.c +275 -0
  174. package/bios/seabios/src/cp437.h +1 -0
  175. package/bios/seabios/src/disk.c +779 -0
  176. package/bios/seabios/src/e820map.c +152 -0
  177. package/bios/seabios/src/e820map.h +26 -0
  178. package/bios/seabios/src/entryfuncs.S +165 -0
  179. package/bios/seabios/src/farptr.h +208 -0
  180. package/bios/seabios/src/font.c +139 -0
  181. package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +78 -0
  182. package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +26 -0
  183. package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +36 -0
  184. package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +102 -0
  185. package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +90 -0
  186. package/bios/seabios/src/fw/acpi-dsdt.dsl +342 -0
  187. package/bios/seabios/src/fw/acpi-dsdt.hex +554 -0
  188. package/bios/seabios/src/fw/acpi.c +685 -0
  189. package/bios/seabios/src/fw/biostables.c +491 -0
  190. package/bios/seabios/src/fw/coreboot.c +569 -0
  191. package/bios/seabios/src/fw/csm.c +347 -0
  192. package/bios/seabios/src/fw/dev-pci.h +52 -0
  193. package/bios/seabios/src/fw/dev-piix.h +29 -0
  194. package/bios/seabios/src/fw/dev-q35.h +52 -0
  195. package/bios/seabios/src/fw/lzmadecode.c +398 -0
  196. package/bios/seabios/src/fw/lzmadecode.h +67 -0
  197. package/bios/seabios/src/fw/mptable.c +197 -0
  198. package/bios/seabios/src/fw/mtrr.c +105 -0
  199. package/bios/seabios/src/fw/multiboot.c +111 -0
  200. package/bios/seabios/src/fw/paravirt.c +624 -0
  201. package/bios/seabios/src/fw/paravirt.h +63 -0
  202. package/bios/seabios/src/fw/pciinit.c +1187 -0
  203. package/bios/seabios/src/fw/pirtable.c +103 -0
  204. package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +450 -0
  205. package/bios/seabios/src/fw/romfile_loader.c +259 -0
  206. package/bios/seabios/src/fw/romfile_loader.h +91 -0
  207. package/bios/seabios/src/fw/shadow.c +208 -0
  208. package/bios/seabios/src/fw/smbios.c +585 -0
  209. package/bios/seabios/src/fw/smm.c +269 -0
  210. package/bios/seabios/src/fw/smp.c +194 -0
  211. package/bios/seabios/src/fw/ssdt-misc.dsl +104 -0
  212. package/bios/seabios/src/fw/ssdt-misc.hex +88 -0
  213. package/bios/seabios/src/fw/ssdt-pcihp.dsl +36 -0
  214. package/bios/seabios/src/fw/ssdt-pcihp.hex +38 -0
  215. package/bios/seabios/src/fw/ssdt-proc.dsl +48 -0
  216. package/bios/seabios/src/fw/ssdt-proc.hex +35 -0
  217. package/bios/seabios/src/fw/xen.c +149 -0
  218. package/bios/seabios/src/fw/xen.h +125 -0
  219. package/bios/seabios/src/gen-defs.h +19 -0
  220. package/bios/seabios/src/hw/ahci.c +697 -0
  221. package/bios/seabios/src/hw/ahci.h +201 -0
  222. package/bios/seabios/src/hw/ata.c +1046 -0
  223. package/bios/seabios/src/hw/ata.h +163 -0
  224. package/bios/seabios/src/hw/blockcmd.c +372 -0
  225. package/bios/seabios/src/hw/blockcmd.h +114 -0
  226. package/bios/seabios/src/hw/dma.c +67 -0
  227. package/bios/seabios/src/hw/esp-scsi.c +241 -0
  228. package/bios/seabios/src/hw/esp-scsi.h +8 -0
  229. package/bios/seabios/src/hw/floppy.c +741 -0
  230. package/bios/seabios/src/hw/lsi-scsi.c +221 -0
  231. package/bios/seabios/src/hw/lsi-scsi.h +8 -0
  232. package/bios/seabios/src/hw/megasas.c +405 -0
  233. package/bios/seabios/src/hw/megasas.h +8 -0
  234. package/bios/seabios/src/hw/mpt-scsi.c +319 -0
  235. package/bios/seabios/src/hw/mpt-scsi.h +8 -0
  236. package/bios/seabios/src/hw/nvme-int.h +199 -0
  237. package/bios/seabios/src/hw/nvme.c +708 -0
  238. package/bios/seabios/src/hw/nvme.h +17 -0
  239. package/bios/seabios/src/hw/pci.c +133 -0
  240. package/bios/seabios/src/hw/pci.h +47 -0
  241. package/bios/seabios/src/hw/pci_ids.h +2632 -0
  242. package/bios/seabios/src/hw/pci_regs.h +556 -0
  243. package/bios/seabios/src/hw/pcidevice.c +192 -0
  244. package/bios/seabios/src/hw/pcidevice.h +76 -0
  245. package/bios/seabios/src/hw/pic.c +115 -0
  246. package/bios/seabios/src/hw/pic.h +60 -0
  247. package/bios/seabios/src/hw/ps2port.c +543 -0
  248. package/bios/seabios/src/hw/ps2port.h +67 -0
  249. package/bios/seabios/src/hw/pvscsi.c +333 -0
  250. package/bios/seabios/src/hw/pvscsi.h +8 -0
  251. package/bios/seabios/src/hw/ramdisk.c +108 -0
  252. package/bios/seabios/src/hw/rtc.c +100 -0
  253. package/bios/seabios/src/hw/rtc.h +75 -0
  254. package/bios/seabios/src/hw/sdcard.c +572 -0
  255. package/bios/seabios/src/hw/serialio.c +113 -0
  256. package/bios/seabios/src/hw/serialio.h +29 -0
  257. package/bios/seabios/src/hw/timer.c +259 -0
  258. package/bios/seabios/src/hw/tpm_drivers.c +636 -0
  259. package/bios/seabios/src/hw/tpm_drivers.h +127 -0
  260. package/bios/seabios/src/hw/usb-ehci.c +650 -0
  261. package/bios/seabios/src/hw/usb-ehci.h +177 -0
  262. package/bios/seabios/src/hw/usb-hid.c +442 -0
  263. package/bios/seabios/src/hw/usb-hid.h +29 -0
  264. package/bios/seabios/src/hw/usb-hub.c +205 -0
  265. package/bios/seabios/src/hw/usb-hub.h +64 -0
  266. package/bios/seabios/src/hw/usb-msc.c +222 -0
  267. package/bios/seabios/src/hw/usb-msc.h +10 -0
  268. package/bios/seabios/src/hw/usb-ohci.c +568 -0
  269. package/bios/seabios/src/hw/usb-ohci.h +144 -0
  270. package/bios/seabios/src/hw/usb-uas.c +289 -0
  271. package/bios/seabios/src/hw/usb-uas.h +9 -0
  272. package/bios/seabios/src/hw/usb-uhci.c +571 -0
  273. package/bios/seabios/src/hw/usb-uhci.h +128 -0
  274. package/bios/seabios/src/hw/usb-xhci.c +1161 -0
  275. package/bios/seabios/src/hw/usb-xhci.h +133 -0
  276. package/bios/seabios/src/hw/usb.c +499 -0
  277. package/bios/seabios/src/hw/usb.h +254 -0
  278. package/bios/seabios/src/hw/virtio-blk.c +211 -0
  279. package/bios/seabios/src/hw/virtio-blk.h +43 -0
  280. package/bios/seabios/src/hw/virtio-pci.c +501 -0
  281. package/bios/seabios/src/hw/virtio-pci.h +151 -0
  282. package/bios/seabios/src/hw/virtio-ring.c +147 -0
  283. package/bios/seabios/src/hw/virtio-ring.h +121 -0
  284. package/bios/seabios/src/hw/virtio-scsi.c +220 -0
  285. package/bios/seabios/src/hw/virtio-scsi.h +47 -0
  286. package/bios/seabios/src/jpeg.c +1055 -0
  287. package/bios/seabios/src/kbd.c +599 -0
  288. package/bios/seabios/src/list.h +91 -0
  289. package/bios/seabios/src/malloc.c +561 -0
  290. package/bios/seabios/src/malloc.h +70 -0
  291. package/bios/seabios/src/memmap.h +21 -0
  292. package/bios/seabios/src/misc.c +195 -0
  293. package/bios/seabios/src/mouse.c +342 -0
  294. package/bios/seabios/src/optionroms.c +475 -0
  295. package/bios/seabios/src/output.c +584 -0
  296. package/bios/seabios/src/output.h +68 -0
  297. package/bios/seabios/src/pcibios.c +241 -0
  298. package/bios/seabios/src/pmm.c +176 -0
  299. package/bios/seabios/src/pnpbios.c +88 -0
  300. package/bios/seabios/src/post.c +337 -0
  301. package/bios/seabios/src/resume.c +157 -0
  302. package/bios/seabios/src/romfile.c +146 -0
  303. package/bios/seabios/src/romfile.h +21 -0
  304. package/bios/seabios/src/romlayout.S +698 -0
  305. package/bios/seabios/src/sercon.c +677 -0
  306. package/bios/seabios/src/serial.c +317 -0
  307. package/bios/seabios/src/sha1.c +147 -0
  308. package/bios/seabios/src/sha1.h +8 -0
  309. package/bios/seabios/src/stacks.c +771 -0
  310. package/bios/seabios/src/stacks.h +68 -0
  311. package/bios/seabios/src/std/LegacyBios.h +985 -0
  312. package/bios/seabios/src/std/acpi.h +323 -0
  313. package/bios/seabios/src/std/bda.h +174 -0
  314. package/bios/seabios/src/std/disk.h +175 -0
  315. package/bios/seabios/src/std/mptable.h +77 -0
  316. package/bios/seabios/src/std/multiboot.h +260 -0
  317. package/bios/seabios/src/std/optionrom.h +59 -0
  318. package/bios/seabios/src/std/pirtable.h +35 -0
  319. package/bios/seabios/src/std/pmm.h +19 -0
  320. package/bios/seabios/src/std/pnpbios.h +24 -0
  321. package/bios/seabios/src/std/smbios.h +167 -0
  322. package/bios/seabios/src/std/tcg.h +554 -0
  323. package/bios/seabios/src/std/vbe.h +156 -0
  324. package/bios/seabios/src/std/vga.h +63 -0
  325. package/bios/seabios/src/string.c +251 -0
  326. package/bios/seabios/src/string.h +31 -0
  327. package/bios/seabios/src/system.c +357 -0
  328. package/bios/seabios/src/tcgbios.c +2014 -0
  329. package/bios/seabios/src/tcgbios.h +19 -0
  330. package/bios/seabios/src/types.h +156 -0
  331. package/bios/seabios/src/util.h +251 -0
  332. package/bios/seabios/src/version.c +5 -0
  333. package/bios/seabios/src/vgahooks.c +355 -0
  334. package/bios/seabios/src/x86.c +23 -0
  335. package/bios/seabios/src/x86.h +277 -0
  336. package/bios/seabios/vgasrc/Kconfig +211 -0
  337. package/bios/seabios/vgasrc/bochsdisplay.c +59 -0
  338. package/bios/seabios/vgasrc/bochsvga.c +447 -0
  339. package/bios/seabios/vgasrc/bochsvga.h +57 -0
  340. package/bios/seabios/vgasrc/cbvga.c +337 -0
  341. package/bios/seabios/vgasrc/clext.c +627 -0
  342. package/bios/seabios/vgasrc/geodevga.c +434 -0
  343. package/bios/seabios/vgasrc/geodevga.h +89 -0
  344. package/bios/seabios/vgasrc/ramfb.c +163 -0
  345. package/bios/seabios/vgasrc/stdvga.c +485 -0
  346. package/bios/seabios/vgasrc/stdvga.h +81 -0
  347. package/bios/seabios/vgasrc/stdvgaio.c +186 -0
  348. package/bios/seabios/vgasrc/stdvgamodes.c +534 -0
  349. package/bios/seabios/vgasrc/swcursor.c +96 -0
  350. package/bios/seabios/vgasrc/vbe.c +432 -0
  351. package/bios/seabios/vgasrc/vgabios.c +1131 -0
  352. package/bios/seabios/vgasrc/vgabios.h +88 -0
  353. package/bios/seabios/vgasrc/vgaentry.S +161 -0
  354. package/bios/seabios/vgasrc/vgafb.c +661 -0
  355. package/bios/seabios/vgasrc/vgafb.h +42 -0
  356. package/bios/seabios/vgasrc/vgafonts.c +785 -0
  357. package/bios/seabios/vgasrc/vgahw.h +152 -0
  358. package/bios/seabios/vgasrc/vgainit.c +202 -0
  359. package/bios/seabios/vgasrc/vgalayout.lds.S +23 -0
  360. package/bios/seabios/vgasrc/vgautil.h +103 -0
  361. package/bios/seabios/vgasrc/vgaversion.c +6 -0
  362. package/build/binaries.js +1 -1
  363. package/build/index-debug.cjs +1 -1
  364. package/build/index-debug.js +1 -1
  365. package/build/index.cjs +1 -1
  366. package/build/index.js +1 -1
  367. package/build/v86-debug.wasm +0 -0
  368. package/build/v86.wasm +0 -0
  369. package/package.json +1 -1
@@ -0,0 +1,67 @@
1
+ // Code to support legacy Intel 8237 DMA chip.
2
+ //
3
+ // Copyright (C) 2008,2009 Kevin O'Connor <kevin@koconnor.net>
4
+ // Copyright (C) 2002 MandrakeSoft S.A.
5
+ //
6
+ // This file may be distributed under the terms of the GNU LGPLv3 license.
7
+
8
+ #include "util.h" // dma_setup
9
+ #include "x86.h" // outb
10
+
11
+ #define PORT_DMA_ADDR_2 0x0004
12
+ #define PORT_DMA_CNT_2 0x0005
13
+ #define PORT_DMA1_MASK_REG 0x000a
14
+ #define PORT_DMA1_MODE_REG 0x000b
15
+ #define PORT_DMA1_CLEAR_FF_REG 0x000c
16
+ #define PORT_DMA1_MASTER_CLEAR 0x000d
17
+ #define PORT_DMA_PAGE_2 0x0081
18
+ #define PORT_DMA2_MASK_REG 0x00d4
19
+ #define PORT_DMA2_MODE_REG 0x00d6
20
+ #define PORT_DMA2_MASTER_CLEAR 0x00da
21
+
22
+ // Setup the DMA controller for a floppy transfer.
23
+ int
24
+ dma_floppy(u32 addr, int count, int isWrite)
25
+ {
26
+ // check for 64K boundary overrun
27
+ u16 end = count - 1;
28
+ u32 last_addr = addr + end;
29
+ if ((addr >> 16) != (last_addr >> 16))
30
+ return -1;
31
+
32
+ u8 mode_register = 0x46; // single mode, increment, autoinit disable,
33
+ if (isWrite)
34
+ mode_register = 0x4a;
35
+
36
+ outb(0x06, PORT_DMA1_MASK_REG);
37
+ outb(0x00, PORT_DMA1_CLEAR_FF_REG); // clear flip-flop
38
+ outb(addr, PORT_DMA_ADDR_2);
39
+ outb(addr>>8, PORT_DMA_ADDR_2);
40
+ outb(0x00, PORT_DMA1_CLEAR_FF_REG); // clear flip-flop
41
+ outb(end, PORT_DMA_CNT_2);
42
+ outb(end>>8, PORT_DMA_CNT_2);
43
+
44
+ // port 0b: DMA-1 Mode Register
45
+ // transfer type=write, channel 2
46
+ outb(mode_register, PORT_DMA1_MODE_REG);
47
+
48
+ // port 81: DMA-1 Page Register, channel 2
49
+ outb(addr>>16, PORT_DMA_PAGE_2);
50
+
51
+ outb(0x02, PORT_DMA1_MASK_REG); // unmask channel 2
52
+
53
+ return 0;
54
+ }
55
+
56
+ // Reset DMA controller
57
+ void
58
+ dma_setup(void)
59
+ {
60
+ // first reset the DMA controllers
61
+ outb(0, PORT_DMA1_MASTER_CLEAR);
62
+ outb(0, PORT_DMA2_MASTER_CLEAR);
63
+
64
+ // then initialize the DMA controllers
65
+ outb(0xc0, PORT_DMA2_MODE_REG);
66
+ outb(0x00, PORT_DMA2_MASK_REG);
67
+ }
@@ -0,0 +1,241 @@
1
+ // AMD PCscsi boot support.
2
+ //
3
+ // Copyright (C) 2012 Red Hat Inc.
4
+ //
5
+ // Authors:
6
+ // Paolo Bonzini <pbonzini@redhat.com>
7
+ //
8
+ // based on lsi-scsi.c which is written by:
9
+ // Gerd Hoffman <kraxel@redhat.com>
10
+ //
11
+ // This file may be distributed under the terms of the GNU LGPLv3 license.
12
+
13
+ #include "biosvar.h" // GET_GLOBALFLAT
14
+ #include "block.h" // struct drive_s
15
+ #include "blockcmd.h" // scsi_drive_setup
16
+ #include "config.h" // CONFIG_*
17
+ #include "fw/paravirt.h" // runningOnQEMU
18
+ #include "malloc.h" // free
19
+ #include "output.h" // dprintf
20
+ #include "pcidevice.h" // foreachpci
21
+ #include "pci_ids.h" // PCI_DEVICE_ID
22
+ #include "pci_regs.h" // PCI_VENDOR_ID
23
+ #include "stacks.h" // run_thread
24
+ #include "std/disk.h" // DISK_RET_SUCCESS
25
+ #include "string.h" // memset
26
+ #include "util.h" // usleep
27
+
28
+ #define ESP_TCLO 0x00
29
+ #define ESP_TCMID 0x04
30
+ #define ESP_FIFO 0x08
31
+ #define ESP_CMD 0x0c
32
+ #define ESP_WBUSID 0x10
33
+ #define ESP_TCHI 0x38
34
+
35
+ #define ESP_RSTAT 0x10
36
+ #define ESP_RINTR 0x14
37
+ #define ESP_RFLAGS 0x1c
38
+
39
+ #define ESP_DMA_CMD 0x40
40
+ #define ESP_DMA_STC 0x44
41
+ #define ESP_DMA_SPA 0x48
42
+ #define ESP_DMA_WBC 0x4c
43
+ #define ESP_DMA_WAC 0x50
44
+ #define ESP_DMA_STAT 0x54
45
+ #define ESP_DMA_SMDLA 0x58
46
+ #define ESP_DMA_WMAC 0x58c
47
+
48
+ #define ESP_CMD_DMA 0x80
49
+ #define ESP_CMD_RESET 0x02
50
+ #define ESP_CMD_TI 0x10
51
+ #define ESP_CMD_ICCS 0x11
52
+ #define ESP_CMD_SELATN 0x42
53
+
54
+ #define ESP_STAT_DI 0x01
55
+ #define ESP_STAT_CD 0x02
56
+ #define ESP_STAT_MSG 0x04
57
+ #define ESP_STAT_TC 0x10
58
+
59
+ #define ESP_INTR_DC 0x20
60
+
61
+ struct esp_lun_s {
62
+ struct drive_s drive;
63
+ struct pci_device *pci;
64
+ u32 iobase;
65
+ u8 target;
66
+ u8 lun;
67
+ };
68
+
69
+ static void
70
+ esp_scsi_dma(u32 iobase, u32 buf, u32 len, int read)
71
+ {
72
+ outb(len & 0xff, iobase + ESP_TCLO);
73
+ outb((len >> 8) & 0xff, iobase + ESP_TCMID);
74
+ outb((len >> 16) & 0xff, iobase + ESP_TCHI);
75
+ outl(buf, iobase + ESP_DMA_SPA);
76
+ outl(len, iobase + ESP_DMA_STC);
77
+ outb(read ? 0x83 : 0x03, iobase + ESP_DMA_CMD);
78
+ }
79
+
80
+ int
81
+ esp_scsi_process_op(struct disk_op_s *op)
82
+ {
83
+ if (!CONFIG_ESP_SCSI)
84
+ return DISK_RET_EBADTRACK;
85
+ struct esp_lun_s *llun_gf =
86
+ container_of(op->drive_fl, struct esp_lun_s, drive);
87
+ u16 target = GET_GLOBALFLAT(llun_gf->target);
88
+ u16 lun = GET_GLOBALFLAT(llun_gf->lun);
89
+ u8 cdbcmd[16];
90
+ int blocksize = scsi_fill_cmd(op, cdbcmd, sizeof(cdbcmd));
91
+ if (blocksize < 0)
92
+ return default_process_op(op);
93
+ u32 iobase = GET_GLOBALFLAT(llun_gf->iobase);
94
+ int i, state;
95
+ u8 status;
96
+
97
+ outb(target, iobase + ESP_WBUSID);
98
+
99
+ /*
100
+ * We need to pass the LUN at the beginning of the command, and the FIFO
101
+ * is only 16 bytes, so we cannot support 16-byte CDBs. The alternative
102
+ * would be to use DMA for the 17-byte command too, which is quite
103
+ * overkill.
104
+ */
105
+ outb(lun, iobase + ESP_FIFO);
106
+ cdbcmd[1] &= 0x1f;
107
+ cdbcmd[1] |= lun << 5;
108
+ for (i = 0; i < 12; i++)
109
+ outb(cdbcmd[i], iobase + ESP_FIFO);
110
+ outb(ESP_CMD_SELATN, iobase + ESP_CMD);
111
+
112
+ for (state = 0;;) {
113
+ u8 stat = inb(iobase + ESP_RSTAT);
114
+
115
+ /* Detect disconnected device. */
116
+ if (state == 0 && (inb(iobase + ESP_RINTR) & ESP_INTR_DC)) {
117
+ return DISK_RET_ENOTREADY;
118
+ }
119
+
120
+ /* HBA reads command, clears CD, sets TC -> do DMA if needed. */
121
+ if (state == 0 && (stat & ESP_STAT_TC)) {
122
+ state++;
123
+ if (op->count && blocksize) {
124
+ /* Data phase. */
125
+ u32 count = (u32)op->count * blocksize;
126
+ esp_scsi_dma(iobase, (u32)op->buf_fl, count, scsi_is_read(op));
127
+ outb(ESP_CMD_TI | ESP_CMD_DMA, iobase + ESP_CMD);
128
+ continue;
129
+ }
130
+ }
131
+
132
+ /* At end of DMA TC is set again -> complete command. */
133
+ if (state == 1 && (stat & ESP_STAT_TC)) {
134
+ state++;
135
+ outb(ESP_CMD_ICCS, iobase + ESP_CMD);
136
+ continue;
137
+ }
138
+
139
+ /* Finally read data from the message in phase. */
140
+ if (state == 2 && (stat & ESP_STAT_MSG)) {
141
+ state++;
142
+ status = inb(iobase + ESP_FIFO);
143
+ inb(iobase + ESP_FIFO);
144
+ break;
145
+ }
146
+ usleep(5);
147
+ }
148
+
149
+ if (status == 0) {
150
+ return DISK_RET_SUCCESS;
151
+ }
152
+
153
+ return DISK_RET_EBADTRACK;
154
+ }
155
+
156
+ static void
157
+ esp_scsi_init_lun(struct esp_lun_s *llun, struct pci_device *pci, u32 iobase,
158
+ u8 target, u8 lun)
159
+ {
160
+ memset(llun, 0, sizeof(*llun));
161
+ llun->drive.type = DTYPE_ESP_SCSI;
162
+ llun->drive.cntl_id = pci->bdf;
163
+ llun->pci = pci;
164
+ llun->target = target;
165
+ llun->lun = lun;
166
+ llun->iobase = iobase;
167
+ }
168
+
169
+ static int
170
+ esp_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv)
171
+ {
172
+ struct esp_lun_s *tmpl_llun =
173
+ container_of(tmpl_drv, struct esp_lun_s, drive);
174
+ struct esp_lun_s *llun = malloc_fseg(sizeof(*llun));
175
+ if (!llun) {
176
+ warn_noalloc();
177
+ return -1;
178
+ }
179
+ esp_scsi_init_lun(llun, tmpl_llun->pci, tmpl_llun->iobase,
180
+ tmpl_llun->target, lun);
181
+
182
+ char *name = znprintf(MAXDESCSIZE, "esp %pP %d:%d",
183
+ llun->pci, llun->target, llun->lun);
184
+ int prio = bootprio_find_scsi_device(llun->pci, llun->target, llun->lun);
185
+ int ret = scsi_drive_setup(&llun->drive, name, prio);
186
+ free(name);
187
+ if (ret)
188
+ goto fail;
189
+ return 0;
190
+
191
+ fail:
192
+ free(llun);
193
+ return -1;
194
+ }
195
+
196
+ static void
197
+ esp_scsi_scan_target(struct pci_device *pci, u32 iobase, u8 target)
198
+ {
199
+ struct esp_lun_s llun0;
200
+
201
+ esp_scsi_init_lun(&llun0, pci, iobase, target, 0);
202
+
203
+ scsi_rep_luns_scan(&llun0.drive, esp_scsi_add_lun);
204
+ }
205
+
206
+ static void
207
+ init_esp_scsi(void *data)
208
+ {
209
+ struct pci_device *pci = data;
210
+ u32 iobase = pci_enable_iobar(pci, PCI_BASE_ADDRESS_0);
211
+ if (!iobase)
212
+ return;
213
+ pci_enable_busmaster(pci);
214
+
215
+ dprintf(1, "found esp at %pP, io @ %x\n", pci, iobase);
216
+
217
+ // reset
218
+ outb(ESP_CMD_RESET, iobase + ESP_CMD);
219
+
220
+ int i;
221
+ for (i = 0; i <= 7; i++)
222
+ esp_scsi_scan_target(pci, iobase, i);
223
+ }
224
+
225
+ void
226
+ esp_scsi_setup(void)
227
+ {
228
+ ASSERT32FLAT();
229
+ if (!CONFIG_ESP_SCSI || !runningOnQEMU())
230
+ return;
231
+
232
+ dprintf(3, "init esp\n");
233
+
234
+ struct pci_device *pci;
235
+ foreachpci(pci) {
236
+ if (pci->vendor != PCI_VENDOR_ID_AMD
237
+ || pci->device != PCI_DEVICE_ID_AMD_SCSI)
238
+ continue;
239
+ run_thread(init_esp_scsi, pci);
240
+ }
241
+ }
@@ -0,0 +1,8 @@
1
+ #ifndef __ESP_SCSI_H
2
+ #define __ESP_SCSI_H
3
+
4
+ struct disk_op_s;
5
+ int esp_scsi_process_op(struct disk_op_s *op);
6
+ void esp_scsi_setup(void);
7
+
8
+ #endif /* __ESP_SCSI_H */