v86 0.3.7 → 0.5.10

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 (386) hide show
  1. package/Readme.md +64 -108
  2. package/build/libv86-debug.js +12677 -0
  3. package/build/libv86-debug.mjs +732 -0
  4. package/build/libv86.js +710 -0
  5. package/build/libv86.mjs +636 -0
  6. package/build/v86-debug.wasm +0 -0
  7. package/build/v86-fallback.wasm +0 -0
  8. package/build/v86.wasm +0 -0
  9. package/package.json +12 -35
  10. package/bios/.gitignore +0 -1
  11. package/bios/COPYING.LESSER +0 -165
  12. package/bios/bochs-bios.bin +0 -0
  13. package/bios/bochs-vgabios.bin +0 -0
  14. package/bios/fetch-and-build-seabios.sh +0 -13
  15. package/bios/seabios/.config +0 -113
  16. package/bios/seabios/.config.old +0 -114
  17. package/bios/seabios/.gitignore +0 -4
  18. package/bios/seabios/COPYING +0 -674
  19. package/bios/seabios/COPYING.LESSER +0 -165
  20. package/bios/seabios/Makefile +0 -286
  21. package/bios/seabios/README +0 -17
  22. package/bios/seabios/docs/Build_overview.md +0 -104
  23. package/bios/seabios/docs/Contributing.md +0 -20
  24. package/bios/seabios/docs/Debugging.md +0 -111
  25. package/bios/seabios/docs/Developer_Documentation.md +0 -25
  26. package/bios/seabios/docs/Developer_links.md +0 -86
  27. package/bios/seabios/docs/Download.md +0 -27
  28. package/bios/seabios/docs/Execution_and_code_flow.md +0 -178
  29. package/bios/seabios/docs/Linking_overview.md +0 -160
  30. package/bios/seabios/docs/Mailinglist.md +0 -8
  31. package/bios/seabios/docs/Memory_Model.md +0 -253
  32. package/bios/seabios/docs/README +0 -5
  33. package/bios/seabios/docs/Releases.md +0 -482
  34. package/bios/seabios/docs/Runtime_config.md +0 -193
  35. package/bios/seabios/docs/SeaBIOS.md +0 -17
  36. package/bios/seabios/docs/SeaVGABIOS.md +0 -39
  37. package/bios/seabios/out/autoconf.h +0 -117
  38. package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
  39. package/bios/seabios/out/include/config/acpi.h +0 -0
  40. package/bios/seabios/out/include/config/ahci.h +0 -0
  41. package/bios/seabios/out/include/config/apmbios.h +0 -0
  42. package/bios/seabios/out/include/config/ata/dma.h +0 -0
  43. package/bios/seabios/out/include/config/ata/pio32.h +0 -0
  44. package/bios/seabios/out/include/config/ata.h +0 -0
  45. package/bios/seabios/out/include/config/auto.conf +0 -69
  46. package/bios/seabios/out/include/config/auto.conf.cmd +0 -9
  47. package/bios/seabios/out/include/config/boot.h +0 -0
  48. package/bios/seabios/out/include/config/bootorder.h +0 -0
  49. package/bios/seabios/out/include/config/build/vgabios.h +0 -0
  50. package/bios/seabios/out/include/config/call32/smm.h +0 -0
  51. package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
  52. package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
  53. package/bios/seabios/out/include/config/debug/level.h +0 -0
  54. package/bios/seabios/out/include/config/drives.h +0 -0
  55. package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
  56. package/bios/seabios/out/include/config/esp/scsi.h +0 -0
  57. package/bios/seabios/out/include/config/flash/floppy.h +0 -0
  58. package/bios/seabios/out/include/config/floppy.h +0 -0
  59. package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
  60. package/bios/seabios/out/include/config/hardware/irq.h +0 -0
  61. package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
  62. package/bios/seabios/out/include/config/keyboard.h +0 -0
  63. package/bios/seabios/out/include/config/lpt.h +0 -0
  64. package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
  65. package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
  66. package/bios/seabios/out/include/config/megasas.h +0 -0
  67. package/bios/seabios/out/include/config/mouse.h +0 -0
  68. package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
  69. package/bios/seabios/out/include/config/mptable.h +0 -0
  70. package/bios/seabios/out/include/config/mtrr/init.h +0 -0
  71. package/bios/seabios/out/include/config/optionroms.h +0 -0
  72. package/bios/seabios/out/include/config/override/pci/id.h +0 -0
  73. package/bios/seabios/out/include/config/pcibios.h +0 -0
  74. package/bios/seabios/out/include/config/pirtable.h +0 -0
  75. package/bios/seabios/out/include/config/pmm.h +0 -0
  76. package/bios/seabios/out/include/config/pmtimer.h +0 -0
  77. package/bios/seabios/out/include/config/pnpbios.h +0 -0
  78. package/bios/seabios/out/include/config/ps2port.h +0 -0
  79. package/bios/seabios/out/include/config/pvscsi.h +0 -0
  80. package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
  81. package/bios/seabios/out/include/config/qemu.h +0 -0
  82. package/bios/seabios/out/include/config/rom/size.h +0 -0
  83. package/bios/seabios/out/include/config/rtc/timer.h +0 -0
  84. package/bios/seabios/out/include/config/s3/resume.h +0 -0
  85. package/bios/seabios/out/include/config/sdcard.h +0 -0
  86. package/bios/seabios/out/include/config/serial.h +0 -0
  87. package/bios/seabios/out/include/config/tcgbios.h +0 -0
  88. package/bios/seabios/out/include/config/threads.h +0 -0
  89. package/bios/seabios/out/include/config/tristate.conf +0 -4
  90. package/bios/seabios/out/include/config/tsc/timer.h +0 -0
  91. package/bios/seabios/out/include/config/use/smm.h +0 -0
  92. package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
  93. package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
  94. package/bios/seabios/out/include/config/vga/bochs.h +0 -0
  95. package/bios/seabios/out/include/config/vga/did.h +0 -0
  96. package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
  97. package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
  98. package/bios/seabios/out/include/config/vga/pci.h +0 -0
  99. package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
  100. package/bios/seabios/out/include/config/vga/vbe.h +0 -0
  101. package/bios/seabios/out/include/config/vga/vid.h +0 -0
  102. package/bios/seabios/out/include/config/vgahooks.h +0 -0
  103. package/bios/seabios/out/include/config/virtio/blk.h +0 -0
  104. package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
  105. package/bios/seabios/out/include/config/xen.h +0 -0
  106. package/bios/seabios/out/scripts/kconfig/conf +0 -0
  107. package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
  108. package/bios/seabios/out/scripts/kconfig/zconf.hash.c +0 -289
  109. package/bios/seabios/out/scripts/kconfig/zconf.lex.c +0 -2420
  110. package/bios/seabios/out/scripts/kconfig/zconf.tab.c +0 -2538
  111. package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
  112. package/bios/seabios/scripts/acpi_extract.py +0 -366
  113. package/bios/seabios/scripts/acpi_extract_preprocess.py +0 -41
  114. package/bios/seabios/scripts/buildrom.py +0 -56
  115. package/bios/seabios/scripts/buildversion.py +0 -134
  116. package/bios/seabios/scripts/checkrom.py +0 -95
  117. package/bios/seabios/scripts/checkstack.py +0 -226
  118. package/bios/seabios/scripts/checksum.py +0 -16
  119. package/bios/seabios/scripts/encodeint.py +0 -21
  120. package/bios/seabios/scripts/gen-offsets.sh +0 -17
  121. package/bios/seabios/scripts/kconfig/.gitignore +0 -22
  122. package/bios/seabios/scripts/kconfig/Makefile +0 -331
  123. package/bios/seabios/scripts/kconfig/POTFILES.in +0 -12
  124. package/bios/seabios/scripts/kconfig/check.sh +0 -13
  125. package/bios/seabios/scripts/kconfig/conf.c +0 -718
  126. package/bios/seabios/scripts/kconfig/confdata.c +0 -1250
  127. package/bios/seabios/scripts/kconfig/expr.c +0 -1168
  128. package/bios/seabios/scripts/kconfig/expr.h +0 -241
  129. package/bios/seabios/scripts/kconfig/gconf.c +0 -1542
  130. package/bios/seabios/scripts/kconfig/gconf.glade +0 -661
  131. package/bios/seabios/scripts/kconfig/images.c +0 -326
  132. package/bios/seabios/scripts/kconfig/kxgettext.c +0 -235
  133. package/bios/seabios/scripts/kconfig/lex.zconf.c +0 -2430
  134. package/bios/seabios/scripts/kconfig/list.h +0 -131
  135. package/bios/seabios/scripts/kconfig/lkc.h +0 -200
  136. package/bios/seabios/scripts/kconfig/lkc_proto.h +0 -57
  137. package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +0 -4
  138. package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +0 -4
  139. package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +0 -87
  140. package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +0 -332
  141. package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +0 -257
  142. package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +0 -301
  143. package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +0 -437
  144. package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +0 -408
  145. package/bios/seabios/scripts/kconfig/lxdialog/util.c +0 -713
  146. package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +0 -114
  147. package/bios/seabios/scripts/kconfig/mconf.c +0 -1036
  148. package/bios/seabios/scripts/kconfig/menu.c +0 -697
  149. package/bios/seabios/scripts/kconfig/merge_config.sh +0 -150
  150. package/bios/seabios/scripts/kconfig/nconf.c +0 -1556
  151. package/bios/seabios/scripts/kconfig/nconf.gui.c +0 -656
  152. package/bios/seabios/scripts/kconfig/nconf.h +0 -96
  153. package/bios/seabios/scripts/kconfig/qconf.cc +0 -1795
  154. package/bios/seabios/scripts/kconfig/qconf.h +0 -338
  155. package/bios/seabios/scripts/kconfig/streamline_config.pl +0 -647
  156. package/bios/seabios/scripts/kconfig/symbol.c +0 -1373
  157. package/bios/seabios/scripts/kconfig/util.c +0 -157
  158. package/bios/seabios/scripts/kconfig/zconf.gperf +0 -48
  159. package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +0 -289
  160. package/bios/seabios/scripts/kconfig/zconf.l +0 -363
  161. package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +0 -2420
  162. package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +0 -2538
  163. package/bios/seabios/scripts/kconfig/zconf.y +0 -733
  164. package/bios/seabios/scripts/layoutrom.py +0 -705
  165. package/bios/seabios/scripts/python23compat.py +0 -14
  166. package/bios/seabios/scripts/readserial.py +0 -190
  167. package/bios/seabios/scripts/tarball.sh +0 -36
  168. package/bios/seabios/scripts/test-build.sh +0 -90
  169. package/bios/seabios/scripts/transdump.py +0 -53
  170. package/bios/seabios/scripts/vgafixup.py +0 -96
  171. package/bios/seabios/src/Kconfig +0 -579
  172. package/bios/seabios/src/apm.c +0 -215
  173. package/bios/seabios/src/asm-offsets.c +0 -23
  174. package/bios/seabios/src/biosvar.h +0 -130
  175. package/bios/seabios/src/block.c +0 -623
  176. package/bios/seabios/src/block.h +0 -121
  177. package/bios/seabios/src/bmp.c +0 -117
  178. package/bios/seabios/src/boot.c +0 -793
  179. package/bios/seabios/src/bootsplash.c +0 -255
  180. package/bios/seabios/src/bregs.h +0 -80
  181. package/bios/seabios/src/byteorder.h +0 -71
  182. package/bios/seabios/src/cdrom.c +0 -322
  183. package/bios/seabios/src/clock.c +0 -506
  184. package/bios/seabios/src/code16gcc.s +0 -1
  185. package/bios/seabios/src/config.h +0 -108
  186. package/bios/seabios/src/cp437.c +0 -275
  187. package/bios/seabios/src/cp437.h +0 -1
  188. package/bios/seabios/src/disk.c +0 -779
  189. package/bios/seabios/src/e820map.c +0 -152
  190. package/bios/seabios/src/e820map.h +0 -26
  191. package/bios/seabios/src/entryfuncs.S +0 -165
  192. package/bios/seabios/src/farptr.h +0 -208
  193. package/bios/seabios/src/font.c +0 -139
  194. package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +0 -78
  195. package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +0 -26
  196. package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +0 -36
  197. package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +0 -102
  198. package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +0 -90
  199. package/bios/seabios/src/fw/acpi-dsdt.dsl +0 -342
  200. package/bios/seabios/src/fw/acpi-dsdt.hex +0 -554
  201. package/bios/seabios/src/fw/acpi.c +0 -685
  202. package/bios/seabios/src/fw/biostables.c +0 -491
  203. package/bios/seabios/src/fw/coreboot.c +0 -569
  204. package/bios/seabios/src/fw/csm.c +0 -347
  205. package/bios/seabios/src/fw/dev-pci.h +0 -52
  206. package/bios/seabios/src/fw/dev-piix.h +0 -29
  207. package/bios/seabios/src/fw/dev-q35.h +0 -52
  208. package/bios/seabios/src/fw/lzmadecode.c +0 -398
  209. package/bios/seabios/src/fw/lzmadecode.h +0 -67
  210. package/bios/seabios/src/fw/mptable.c +0 -197
  211. package/bios/seabios/src/fw/mtrr.c +0 -105
  212. package/bios/seabios/src/fw/multiboot.c +0 -111
  213. package/bios/seabios/src/fw/paravirt.c +0 -624
  214. package/bios/seabios/src/fw/paravirt.h +0 -63
  215. package/bios/seabios/src/fw/pciinit.c +0 -1187
  216. package/bios/seabios/src/fw/pirtable.c +0 -103
  217. package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +0 -450
  218. package/bios/seabios/src/fw/romfile_loader.c +0 -259
  219. package/bios/seabios/src/fw/romfile_loader.h +0 -91
  220. package/bios/seabios/src/fw/shadow.c +0 -208
  221. package/bios/seabios/src/fw/smbios.c +0 -585
  222. package/bios/seabios/src/fw/smm.c +0 -269
  223. package/bios/seabios/src/fw/smp.c +0 -194
  224. package/bios/seabios/src/fw/ssdt-misc.dsl +0 -104
  225. package/bios/seabios/src/fw/ssdt-misc.hex +0 -88
  226. package/bios/seabios/src/fw/ssdt-pcihp.dsl +0 -36
  227. package/bios/seabios/src/fw/ssdt-pcihp.hex +0 -38
  228. package/bios/seabios/src/fw/ssdt-proc.dsl +0 -48
  229. package/bios/seabios/src/fw/ssdt-proc.hex +0 -35
  230. package/bios/seabios/src/fw/xen.c +0 -149
  231. package/bios/seabios/src/fw/xen.h +0 -125
  232. package/bios/seabios/src/gen-defs.h +0 -19
  233. package/bios/seabios/src/hw/ahci.c +0 -697
  234. package/bios/seabios/src/hw/ahci.h +0 -201
  235. package/bios/seabios/src/hw/ata.c +0 -1046
  236. package/bios/seabios/src/hw/ata.h +0 -163
  237. package/bios/seabios/src/hw/blockcmd.c +0 -372
  238. package/bios/seabios/src/hw/blockcmd.h +0 -114
  239. package/bios/seabios/src/hw/dma.c +0 -67
  240. package/bios/seabios/src/hw/esp-scsi.c +0 -241
  241. package/bios/seabios/src/hw/esp-scsi.h +0 -8
  242. package/bios/seabios/src/hw/floppy.c +0 -741
  243. package/bios/seabios/src/hw/lsi-scsi.c +0 -221
  244. package/bios/seabios/src/hw/lsi-scsi.h +0 -8
  245. package/bios/seabios/src/hw/megasas.c +0 -405
  246. package/bios/seabios/src/hw/megasas.h +0 -8
  247. package/bios/seabios/src/hw/mpt-scsi.c +0 -319
  248. package/bios/seabios/src/hw/mpt-scsi.h +0 -8
  249. package/bios/seabios/src/hw/nvme-int.h +0 -199
  250. package/bios/seabios/src/hw/nvme.c +0 -708
  251. package/bios/seabios/src/hw/nvme.h +0 -17
  252. package/bios/seabios/src/hw/pci.c +0 -133
  253. package/bios/seabios/src/hw/pci.h +0 -47
  254. package/bios/seabios/src/hw/pci_ids.h +0 -2632
  255. package/bios/seabios/src/hw/pci_regs.h +0 -556
  256. package/bios/seabios/src/hw/pcidevice.c +0 -192
  257. package/bios/seabios/src/hw/pcidevice.h +0 -76
  258. package/bios/seabios/src/hw/pic.c +0 -115
  259. package/bios/seabios/src/hw/pic.h +0 -60
  260. package/bios/seabios/src/hw/ps2port.c +0 -543
  261. package/bios/seabios/src/hw/ps2port.h +0 -67
  262. package/bios/seabios/src/hw/pvscsi.c +0 -333
  263. package/bios/seabios/src/hw/pvscsi.h +0 -8
  264. package/bios/seabios/src/hw/ramdisk.c +0 -108
  265. package/bios/seabios/src/hw/rtc.c +0 -100
  266. package/bios/seabios/src/hw/rtc.h +0 -75
  267. package/bios/seabios/src/hw/sdcard.c +0 -572
  268. package/bios/seabios/src/hw/serialio.c +0 -113
  269. package/bios/seabios/src/hw/serialio.h +0 -29
  270. package/bios/seabios/src/hw/timer.c +0 -259
  271. package/bios/seabios/src/hw/tpm_drivers.c +0 -636
  272. package/bios/seabios/src/hw/tpm_drivers.h +0 -127
  273. package/bios/seabios/src/hw/usb-ehci.c +0 -650
  274. package/bios/seabios/src/hw/usb-ehci.h +0 -177
  275. package/bios/seabios/src/hw/usb-hid.c +0 -442
  276. package/bios/seabios/src/hw/usb-hid.h +0 -29
  277. package/bios/seabios/src/hw/usb-hub.c +0 -205
  278. package/bios/seabios/src/hw/usb-hub.h +0 -64
  279. package/bios/seabios/src/hw/usb-msc.c +0 -222
  280. package/bios/seabios/src/hw/usb-msc.h +0 -10
  281. package/bios/seabios/src/hw/usb-ohci.c +0 -568
  282. package/bios/seabios/src/hw/usb-ohci.h +0 -144
  283. package/bios/seabios/src/hw/usb-uas.c +0 -289
  284. package/bios/seabios/src/hw/usb-uas.h +0 -9
  285. package/bios/seabios/src/hw/usb-uhci.c +0 -571
  286. package/bios/seabios/src/hw/usb-uhci.h +0 -128
  287. package/bios/seabios/src/hw/usb-xhci.c +0 -1161
  288. package/bios/seabios/src/hw/usb-xhci.h +0 -133
  289. package/bios/seabios/src/hw/usb.c +0 -499
  290. package/bios/seabios/src/hw/usb.h +0 -254
  291. package/bios/seabios/src/hw/virtio-blk.c +0 -211
  292. package/bios/seabios/src/hw/virtio-blk.h +0 -43
  293. package/bios/seabios/src/hw/virtio-pci.c +0 -501
  294. package/bios/seabios/src/hw/virtio-pci.h +0 -151
  295. package/bios/seabios/src/hw/virtio-ring.c +0 -147
  296. package/bios/seabios/src/hw/virtio-ring.h +0 -121
  297. package/bios/seabios/src/hw/virtio-scsi.c +0 -220
  298. package/bios/seabios/src/hw/virtio-scsi.h +0 -47
  299. package/bios/seabios/src/jpeg.c +0 -1055
  300. package/bios/seabios/src/kbd.c +0 -599
  301. package/bios/seabios/src/list.h +0 -91
  302. package/bios/seabios/src/malloc.c +0 -561
  303. package/bios/seabios/src/malloc.h +0 -70
  304. package/bios/seabios/src/memmap.h +0 -21
  305. package/bios/seabios/src/misc.c +0 -195
  306. package/bios/seabios/src/mouse.c +0 -342
  307. package/bios/seabios/src/optionroms.c +0 -475
  308. package/bios/seabios/src/output.c +0 -584
  309. package/bios/seabios/src/output.h +0 -68
  310. package/bios/seabios/src/pcibios.c +0 -241
  311. package/bios/seabios/src/pmm.c +0 -176
  312. package/bios/seabios/src/pnpbios.c +0 -88
  313. package/bios/seabios/src/post.c +0 -337
  314. package/bios/seabios/src/resume.c +0 -157
  315. package/bios/seabios/src/romfile.c +0 -146
  316. package/bios/seabios/src/romfile.h +0 -21
  317. package/bios/seabios/src/romlayout.S +0 -698
  318. package/bios/seabios/src/sercon.c +0 -677
  319. package/bios/seabios/src/serial.c +0 -317
  320. package/bios/seabios/src/sha1.c +0 -147
  321. package/bios/seabios/src/sha1.h +0 -8
  322. package/bios/seabios/src/stacks.c +0 -771
  323. package/bios/seabios/src/stacks.h +0 -68
  324. package/bios/seabios/src/std/LegacyBios.h +0 -985
  325. package/bios/seabios/src/std/acpi.h +0 -323
  326. package/bios/seabios/src/std/bda.h +0 -174
  327. package/bios/seabios/src/std/disk.h +0 -175
  328. package/bios/seabios/src/std/mptable.h +0 -77
  329. package/bios/seabios/src/std/multiboot.h +0 -260
  330. package/bios/seabios/src/std/optionrom.h +0 -59
  331. package/bios/seabios/src/std/pirtable.h +0 -35
  332. package/bios/seabios/src/std/pmm.h +0 -19
  333. package/bios/seabios/src/std/pnpbios.h +0 -24
  334. package/bios/seabios/src/std/smbios.h +0 -167
  335. package/bios/seabios/src/std/tcg.h +0 -554
  336. package/bios/seabios/src/std/vbe.h +0 -156
  337. package/bios/seabios/src/std/vga.h +0 -63
  338. package/bios/seabios/src/string.c +0 -251
  339. package/bios/seabios/src/string.h +0 -31
  340. package/bios/seabios/src/system.c +0 -357
  341. package/bios/seabios/src/tcgbios.c +0 -2014
  342. package/bios/seabios/src/tcgbios.h +0 -19
  343. package/bios/seabios/src/types.h +0 -156
  344. package/bios/seabios/src/util.h +0 -251
  345. package/bios/seabios/src/version.c +0 -5
  346. package/bios/seabios/src/vgahooks.c +0 -355
  347. package/bios/seabios/src/x86.c +0 -23
  348. package/bios/seabios/src/x86.h +0 -277
  349. package/bios/seabios/vgasrc/Kconfig +0 -211
  350. package/bios/seabios/vgasrc/bochsdisplay.c +0 -59
  351. package/bios/seabios/vgasrc/bochsvga.c +0 -447
  352. package/bios/seabios/vgasrc/bochsvga.h +0 -57
  353. package/bios/seabios/vgasrc/cbvga.c +0 -337
  354. package/bios/seabios/vgasrc/clext.c +0 -627
  355. package/bios/seabios/vgasrc/geodevga.c +0 -434
  356. package/bios/seabios/vgasrc/geodevga.h +0 -89
  357. package/bios/seabios/vgasrc/ramfb.c +0 -163
  358. package/bios/seabios/vgasrc/stdvga.c +0 -485
  359. package/bios/seabios/vgasrc/stdvga.h +0 -81
  360. package/bios/seabios/vgasrc/stdvgaio.c +0 -186
  361. package/bios/seabios/vgasrc/stdvgamodes.c +0 -534
  362. package/bios/seabios/vgasrc/swcursor.c +0 -96
  363. package/bios/seabios/vgasrc/vbe.c +0 -432
  364. package/bios/seabios/vgasrc/vgabios.c +0 -1131
  365. package/bios/seabios/vgasrc/vgabios.h +0 -88
  366. package/bios/seabios/vgasrc/vgaentry.S +0 -161
  367. package/bios/seabios/vgasrc/vgafb.c +0 -661
  368. package/bios/seabios/vgasrc/vgafb.h +0 -42
  369. package/bios/seabios/vgasrc/vgafonts.c +0 -785
  370. package/bios/seabios/vgasrc/vgahw.h +0 -152
  371. package/bios/seabios/vgasrc/vgainit.c +0 -202
  372. package/bios/seabios/vgasrc/vgalayout.lds.S +0 -23
  373. package/bios/seabios/vgasrc/vgautil.h +0 -103
  374. package/bios/seabios/vgasrc/vgaversion.c +0 -6
  375. package/bios/seabios-debug.bin +0 -0
  376. package/bios/seabios-debug.config +0 -117
  377. package/bios/seabios.bin +0 -0
  378. package/bios/seabios.config +0 -114
  379. package/bios/vgabios-debug.bin +0 -0
  380. package/bios/vgabios.bin +0 -0
  381. package/build/binaries.js +0 -1
  382. package/build/index-debug.cjs +0 -1
  383. package/build/index-debug.js +0 -1
  384. package/build/index.cjs +0 -1
  385. package/build/index.js +0 -1
  386. package/v86.css +0 -259
@@ -1,319 +0,0 @@
1
- // MPT Fusion boot support.
2
- //
3
- // Copyright (c) 2012 Verizon, Inc.
4
- // Copyright (C) 2016 Paolo Bonzini <pbonzini@redhat.com>
5
- //
6
- // This file may be distributed under the terms of the GNU LGPLv3 license.
7
-
8
- #include "biosvar.h" // GET_GLOBALFLAT
9
- #include "block.h" // struct drive_s
10
- #include "blockcmd.h" // scsi_drive_setup
11
- #include "config.h" // CONFIG_*
12
- #include "fw/paravirt.h" // runningOnQEMU
13
- #include "malloc.h" // free
14
- #include "output.h" // dprintf
15
- #include "pcidevice.h" // foreachpci
16
- #include "pci_ids.h" // PCI_DEVICE_ID
17
- #include "pci_regs.h" // PCI_VENDOR_ID
18
- #include "stacks.h" // run_thread
19
- #include "std/disk.h" // DISK_RET_SUCCESS
20
- #include "string.h" // memset
21
- #include "util.h" // usleep
22
-
23
- #define MPT_REG_DOORBELL 0x00
24
- #define MPT_REG_WRITE_SEQ 0x04
25
- #define MPT_REG_HOST_DIAG 0x08
26
- #define MPT_REG_TEST 0x0c
27
- #define MPT_REG_DIAG_DATA 0x10
28
- #define MPT_REG_DIAG_ADDR 0x14
29
- #define MPT_REG_ISTATUS 0x30
30
- #define MPT_REG_IMASK 0x34
31
- #define MPT_REG_REQ_Q 0x40
32
- #define MPT_REG_REP_Q 0x44
33
-
34
- #define MPT_DOORBELL_MSG_RESET 0x40
35
- #define MPT_DOORBELL_HANDSHAKE 0x42
36
-
37
- #define MPT_IMASK_DOORBELL 0x01
38
- #define MPT_IMASK_REPLY 0x08
39
-
40
- struct mpt_lun_s {
41
- struct drive_s drive;
42
- struct pci_device *pci;
43
- u32 iobase;
44
- u8 target;
45
- u8 lun;
46
- };
47
-
48
- u8 reply_msg[4] __attribute((aligned(4))) VARLOW;
49
-
50
- #define MPT_MESSAGE_HDR_FUNCTION_SCSI_IO_REQUEST (0x00)
51
- #define MPT_MESSAGE_HDR_FUNCTION_IOC_INIT (0x02)
52
-
53
- static struct MptIOCInitRequest
54
- {
55
- u8 WhoInit; /* Which system sent this init request. */
56
- u8 Reserved1; /* Reserved */
57
- u8 ChainOffset; /* Chain offset in the SG list. */
58
- u8 Function; /* Function to execute. */
59
- u8 Flags; /* Flags */
60
- u8 MaxDevices; /* Max devices the driver can handle. */
61
- u8 MaxBuses; /* Max buses the driver can handle. */
62
- u8 MessageFlags; /* Message flags. */
63
- u32 MessageContext; /* Message context ID. */
64
- u16 ReplyFrameSize; /* Reply frame size. */
65
- u16 Reserved2; /* Reserved */
66
- u32 HostMfaHighAddr; /* Upper 32bit of the message frames. */
67
- u32 SenseBufferHighAddr; /* Upper 32bit of the sense buffer. */
68
- } MptIOCInitRequest = {
69
- .WhoInit = 2,
70
- .Function = MPT_MESSAGE_HDR_FUNCTION_IOC_INIT,
71
- .MaxDevices = 8,
72
- .MaxBuses = 1,
73
- .ReplyFrameSize = sizeof(reply_msg),
74
- .HostMfaHighAddr = 0,
75
- .SenseBufferHighAddr = 0
76
- };
77
-
78
- struct MptIOCInitReply {
79
- u8 WhoInit; /* Which subsystem sent this init request. */
80
- u8 Reserved1; /* Reserved */
81
- u8 MessageLength; /* Message length */
82
- u8 Function; /* Function. */
83
- u8 Flags; /* Flags */
84
- u8 MaxDevices; /* Maximum number of devices the driver can handle. */
85
- u8 MaxBuses; /* Maximum number of busses the driver can handle. */
86
- u8 MessageFlags; /* Message flags. */
87
- u32 MessageContext; /* Message context ID */
88
- u16 Reserved2; /* Reserved */
89
- u16 IOCStatus; /* IO controller status. */
90
- u32 IOCLogInfo; /* IO controller log information. */
91
- };
92
-
93
- typedef struct MptSCSIIORequest {
94
- u8 TargetID; /* Target ID */
95
- u8 Bus; /* Bus number */
96
- u8 ChainOffset; /* Chain offset */
97
- u8 Function; /* Function number. */
98
- u8 CDBLength; /* CDB length. */
99
- u8 SenseBufferLength; /* Sense buffer length. */
100
- u8 Reserved; /* Reserved */
101
- u8 MessageFlags; /* Message flags. */
102
- u32 MessageContext; /* Message context ID. */
103
- u8 LUN[8]; /* LUN */
104
- u32 Control; /* Control values. */
105
- u8 CDB[16]; /* The CDB. */
106
- u32 DataLength; /* Data length. */
107
- u32 SenseBufferLowAddr; /* Sense buffer low 32bit address. */
108
- } __attribute__((packed)) MptSCSIIORequest_t;
109
-
110
- #define MPT_POLL_TIMEOUT 60000
111
-
112
- typedef struct MptSGEntrySimple32 {
113
- u32 FlagsLength;
114
- u32 DataBufferAddressLow;
115
- } __attribute__((packed)) MptSGEntrySimple32_t;
116
-
117
- static int
118
- mpt_scsi_cmd(u32 iobase, struct disk_op_s *op,
119
- u8 *cdb, u16 target, u16 lun, u16 blocksize)
120
- {
121
- u32 end = timer_calc(MPT_POLL_TIMEOUT);
122
-
123
- u8 sense_buf[18];
124
- struct scsi_req {
125
- MptSCSIIORequest_t scsi_io;
126
- MptSGEntrySimple32_t sge;
127
- } __attribute__((packed, aligned(4))) req = {
128
- .scsi_io = {
129
- .TargetID = target,
130
- .Bus = 0,
131
- .Function = MPT_MESSAGE_HDR_FUNCTION_SCSI_IO_REQUEST,
132
- .CDBLength = 16,
133
- .SenseBufferLength = 18,
134
- .MessageContext = end & 0x7fffffff,
135
- .DataLength = op->count * blocksize,
136
- .SenseBufferLowAddr = (u32)MAKE_FLATPTR(GET_SEG(SS), &sense_buf[0]),
137
- },
138
- .sge = {
139
- /* end of list, simple entry, end of buffer, last element */
140
- .FlagsLength = (op->count * blocksize) | 0xD1000000,
141
- .DataBufferAddressLow = (u32)op->buf_fl,
142
- }
143
- };
144
-
145
- req.scsi_io.LUN[1] = lun;
146
- memcpy(req.scsi_io.CDB, cdb, 16);
147
- if (blocksize) {
148
- if (scsi_is_read(op)) {
149
- req.scsi_io.Control = 2 << 24;
150
- } else {
151
- req.scsi_io.Control = 1 << 24;
152
- req.sge.FlagsLength |= 0x04000000;
153
- }
154
- }
155
-
156
- outl((u32)MAKE_FLATPTR(GET_SEG(SS), &req), iobase + MPT_REG_REQ_Q);
157
-
158
- for (;;) {
159
- if (timer_check(end)) {
160
- return DISK_RET_ETIMEOUT;
161
- }
162
-
163
- u32 istatus = inl(iobase + MPT_REG_ISTATUS);
164
- if (istatus & MPT_IMASK_REPLY) {
165
- u32 resp = inl(iobase + MPT_REG_REP_Q);
166
- /* another read to turn interrupt off */
167
- inl(iobase + MPT_REG_REP_Q);
168
- if (resp == req.scsi_io.MessageContext) {
169
- return DISK_RET_SUCCESS;
170
- } else if (resp & 0x80000000) {
171
- outl((u32)&reply_msg[0], iobase + MPT_REG_REP_Q);
172
- return DISK_RET_EBADTRACK;
173
- }
174
- }
175
- usleep(50);
176
- }
177
- }
178
-
179
- int
180
- mpt_scsi_process_op(struct disk_op_s *op)
181
- {
182
- if (!CONFIG_MPT_SCSI)
183
- return DISK_RET_EBADTRACK;
184
-
185
- u8 cdbcmd[16];
186
- int blocksize = scsi_fill_cmd(op, cdbcmd, sizeof(cdbcmd));
187
- if (blocksize < 0)
188
- return default_process_op(op);
189
-
190
- struct mpt_lun_s *llun_gf =
191
- container_of(op->drive_fl, struct mpt_lun_s, drive);
192
- u16 target = GET_GLOBALFLAT(llun_gf->target);
193
- u16 lun = GET_GLOBALFLAT(llun_gf->lun);
194
- u32 iobase = GET_GLOBALFLAT(llun_gf->iobase);
195
- return mpt_scsi_cmd(iobase, op, cdbcmd, target, lun, blocksize);
196
- }
197
-
198
- static void
199
- mpt_scsi_init_lun(struct mpt_lun_s *llun, struct pci_device *pci,
200
- u32 iobase, u8 target, u8 lun)
201
- {
202
- memset(llun, 0, sizeof(*llun));
203
- llun->drive.type = DTYPE_MPT_SCSI;
204
- llun->drive.cntl_id = pci->bdf;
205
- llun->pci = pci;
206
- llun->target = target;
207
- llun->lun = lun;
208
- llun->iobase = iobase;
209
- }
210
-
211
- static int
212
- mpt_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv)
213
- {
214
- struct mpt_lun_s *tmpl_llun =
215
- container_of(tmpl_drv, struct mpt_lun_s, drive);
216
- struct mpt_lun_s *llun = malloc_fseg(sizeof(*llun));
217
- if (!llun) {
218
- warn_noalloc();
219
- return -1;
220
- }
221
- mpt_scsi_init_lun(llun, tmpl_llun->pci, tmpl_llun->iobase,
222
- tmpl_llun->target, lun);
223
-
224
- char *name = znprintf(MAXDESCSIZE, "mpt %pP %d:%d",
225
- llun->pci, llun->target, llun->lun);
226
- int prio = bootprio_find_scsi_device(llun->pci, llun->target, llun->lun);
227
- int ret = scsi_drive_setup(&llun->drive, name, prio);
228
- free(name);
229
- if (ret) {
230
- goto fail;
231
- }
232
- return 0;
233
-
234
- fail:
235
- free(llun);
236
- return -1;
237
- }
238
-
239
- static void
240
- mpt_scsi_scan_target(struct pci_device *pci, u32 iobase, u8 target)
241
- {
242
- struct mpt_lun_s llun0;
243
-
244
- mpt_scsi_init_lun(&llun0, pci, iobase, target, 0);
245
-
246
- if (scsi_rep_luns_scan(&llun0.drive, mpt_scsi_add_lun) < 0)
247
- scsi_sequential_scan(&llun0.drive, 8, mpt_scsi_add_lun);
248
- }
249
-
250
- static inline void
251
- mpt_out_doorbell(u8 func, u8 arg, u16 iobase)
252
- {
253
- outl((func << 24) | (arg << 16), iobase + MPT_REG_DOORBELL);
254
- }
255
-
256
- static void
257
- init_mpt_scsi(void *data)
258
- {
259
- struct pci_device *pci = data;
260
- u16 *msg_in_p;
261
- u32 iobase = pci_enable_iobar(pci, PCI_BASE_ADDRESS_0);
262
- if (!iobase)
263
- return;
264
- struct MptIOCInitReply MptIOCInitReply;
265
- pci_enable_busmaster(pci);
266
-
267
- dprintf(1, "found mpt-scsi(%04x) at %pP, io @ %x\n"
268
- , pci->device, pci, iobase);
269
-
270
- // reset
271
- mpt_out_doorbell(MPT_DOORBELL_MSG_RESET, 0, iobase);
272
- outl(MPT_IMASK_DOORBELL|MPT_IMASK_REPLY , iobase + MPT_REG_IMASK);
273
- outl(0, iobase + MPT_REG_ISTATUS);
274
-
275
- // send IOC Init message through the doorbell
276
- mpt_out_doorbell(MPT_DOORBELL_HANDSHAKE,
277
- sizeof(MptIOCInitRequest)/sizeof(u32),
278
- iobase);
279
-
280
- outsl(iobase + MPT_REG_DOORBELL,
281
- (u32 *)&MptIOCInitRequest,
282
- sizeof(MptIOCInitRequest)/sizeof(u32));
283
-
284
- // Read the reply 16 bits at a time. Cannot use insl
285
- // because the port is 32 bits wide.
286
- msg_in_p = (u16 *)&MptIOCInitReply;
287
- while(msg_in_p != (u16 *)(&MptIOCInitReply + 1))
288
- *msg_in_p++ = (u16)inl(iobase + MPT_REG_DOORBELL);
289
-
290
- // Eat doorbell interrupt
291
- outl(0, iobase + MPT_REG_ISTATUS);
292
-
293
- // Post reply message used for SCSI errors
294
- outl((u32)&reply_msg[0], iobase + MPT_REG_REP_Q);
295
-
296
- int i;
297
- for (i = 0; i < 7; i++)
298
- mpt_scsi_scan_target(pci, iobase, i);
299
- }
300
-
301
- void
302
- mpt_scsi_setup(void)
303
- {
304
- ASSERT32FLAT();
305
- if (!CONFIG_MPT_SCSI || !runningOnQEMU()) {
306
- return;
307
- }
308
-
309
- dprintf(3, "init MPT\n");
310
-
311
- struct pci_device *pci;
312
- foreachpci(pci) {
313
- if (pci->vendor == PCI_VENDOR_ID_LSI_LOGIC
314
- && (pci->device == PCI_DEVICE_ID_LSI_53C1030
315
- || pci->device == PCI_DEVICE_ID_LSI_SAS1068
316
- || pci->device == PCI_DEVICE_ID_LSI_SAS1068E))
317
- run_thread(init_mpt_scsi, pci);
318
- }
319
- }
@@ -1,8 +0,0 @@
1
- #ifndef __MPT_SCSI_H
2
- #define __MPT_SCSI_H
3
-
4
- struct disk_op_s;
5
- int mpt_scsi_process_op(struct disk_op_s *op);
6
- void mpt_scsi_setup(void);
7
-
8
- #endif /* __MPT_SCSI_H */
@@ -1,199 +0,0 @@
1
- // NVMe datastructures and constants
2
- //
3
- // Copyright 2017 Amazon.com, Inc. or its affiliates.
4
- //
5
- // This file may be distributed under the terms of the GNU LGPLv3 license.
6
-
7
- #ifndef __NVME_INT_H
8
- #define __NVME_INT_H
9
-
10
- #include "types.h" // u32
11
- #include "pcidevice.h" // struct pci_device
12
-
13
- /* Data structures */
14
-
15
- /* The register file of a NVMe host controller. This struct follows the naming
16
- scheme in the NVMe specification. */
17
- struct nvme_reg {
18
- u64 cap; /* controller capabilities */
19
- u32 vs; /* version */
20
- u32 intms; /* interrupt mask set */
21
- u32 intmc; /* interrupt mask clear */
22
- u32 cc; /* controller configuration */
23
- u32 _res0;
24
- u32 csts; /* controller status */
25
- u32 _res1;
26
- u32 aqa; /* admin queue attributes */
27
- u64 asq; /* admin submission queue base address */
28
- u64 acq; /* admin completion queue base address */
29
- };
30
-
31
- /* Submission queue entry */
32
- struct nvme_sqe {
33
- union {
34
- u32 dword[16];
35
- struct {
36
- u32 cdw0; /* Command DWORD 0 */
37
- u32 nsid; /* Namespace ID */
38
- u64 _res0;
39
- u64 mptr; /* metadata ptr */
40
-
41
- u64 dptr_prp1;
42
- u64 dptr_prp2;
43
- };
44
- };
45
- };
46
-
47
- /* Completion queue entry */
48
- struct nvme_cqe {
49
- union {
50
- u32 dword[4];
51
- struct {
52
- u32 cdw0;
53
- u32 _res0;
54
- u16 sq_head;
55
- u16 sq_id;
56
- u16 cid;
57
- u16 status;
58
- };
59
- };
60
- };
61
-
62
- /* The common part of every submission or completion queue. */
63
- struct nvme_queue {
64
- u32 *dbl; /* doorbell */
65
- u16 mask; /* length - 1 */
66
- };
67
-
68
- struct nvme_cq {
69
- struct nvme_queue common;
70
- struct nvme_cqe *cqe;
71
-
72
- /* We have read upto (but not including) this entry in the queue. */
73
- u16 head;
74
-
75
- /* The current phase bit the controller uses to indicate that it has written
76
- a new entry. This is inverted after each wrap. */
77
- unsigned phase : 1;
78
- };
79
-
80
- struct nvme_sq {
81
- struct nvme_queue common;
82
- struct nvme_sqe *sqe;
83
-
84
- /* Corresponding completion queue. We only support a single SQ per CQ. */
85
- struct nvme_cq *cq;
86
-
87
- /* The last entry the controller has fetched. */
88
- u16 head;
89
-
90
- /* The last value we have written to the tail doorbell. */
91
- u16 tail;
92
- };
93
-
94
- struct nvme_ctrl {
95
- struct pci_device *pci;
96
- struct nvme_reg volatile *reg;
97
-
98
- u32 doorbell_stride; /* in bytes */
99
-
100
- struct nvme_sq admin_sq;
101
- struct nvme_cq admin_cq;
102
-
103
- u32 ns_count;
104
- struct nvme_namespace *ns;
105
-
106
- struct nvme_sq io_sq;
107
- struct nvme_cq io_cq;
108
- };
109
-
110
- struct nvme_namespace {
111
- struct drive_s drive;
112
- struct nvme_ctrl *ctrl;
113
-
114
- u32 ns_id;
115
-
116
- u64 lba_count; /* The total amount of sectors. */
117
-
118
- u32 block_size;
119
- u32 metadata_size;
120
-
121
- /* Page aligned buffer of size NVME_PAGE_SIZE. */
122
- char *dma_buffer;
123
- };
124
-
125
- /* Data structures for NVMe admin identify commands */
126
-
127
- struct nvme_identify_ctrl {
128
- u16 vid;
129
- u16 ssvid;
130
- char sn[20];
131
- char mn[40];
132
- char fr[8];
133
-
134
- char _boring[516 - 72];
135
-
136
- u32 nn; /* number of namespaces */
137
- };
138
-
139
- struct nvme_identify_ns_list {
140
- u32 ns_id[1024];
141
- };
142
-
143
- struct nvme_lba_format {
144
- u16 ms;
145
- u8 lbads;
146
- u8 rp;
147
- u8 res;
148
- };
149
-
150
- struct nvme_identify_ns {
151
- u64 nsze;
152
- u64 ncap;
153
- u64 nuse;
154
- u8 nsfeat;
155
- u8 nlbaf;
156
- u8 flbas;
157
-
158
- char _boring[128 - 27];
159
-
160
- struct nvme_lba_format lbaf[16];
161
- };
162
-
163
- union nvme_identify {
164
- struct nvme_identify_ns ns;
165
- struct nvme_identify_ctrl ctrl;
166
- struct nvme_identify_ns_list ns_list;
167
- };
168
-
169
- /* NVMe constants */
170
-
171
- #define NVME_CAP_CSS_NVME (1ULL << 37)
172
-
173
- #define NVME_CSTS_FATAL (1U << 1)
174
- #define NVME_CSTS_RDY (1U << 0)
175
-
176
- #define NVME_CC_EN (1U << 0)
177
-
178
- #define NVME_SQE_OPC_ADMIN_CREATE_IO_SQ 1U
179
- #define NVME_SQE_OPC_ADMIN_CREATE_IO_CQ 5U
180
- #define NVME_SQE_OPC_ADMIN_IDENTIFY 6U
181
-
182
- #define NVME_SQE_OPC_IO_WRITE 1U
183
- #define NVME_SQE_OPC_IO_READ 2U
184
-
185
- #define NVME_ADMIN_IDENTIFY_CNS_ID_NS 0U
186
- #define NVME_ADMIN_IDENTIFY_CNS_ID_CTRL 1U
187
- #define NVME_ADMIN_IDENTIFY_CNS_GET_NS_LIST 2U
188
-
189
- #define NVME_CQE_DW3_P (1U << 16)
190
-
191
- #define NVME_PAGE_SIZE 4096
192
-
193
- /* Length for the queue entries. */
194
- #define NVME_SQE_SIZE_LOG 6
195
- #define NVME_CQE_SIZE_LOG 4
196
-
197
- #endif
198
-
199
- /* EOF */