v86 0.3.4 → 0.3.7

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 +4 -4
  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,78 @@
1
+ /****************************************************************
2
+ * CPU hotplug
3
+ ****************************************************************/
4
+
5
+ Scope(\_SB) {
6
+ /* Objects filled in by run-time generated SSDT */
7
+ External(NTFY, MethodObj)
8
+ External(CPON, PkgObj)
9
+
10
+ /* Methods called by run-time generated SSDT Processor objects */
11
+ Method(CPMA, 1, NotSerialized) {
12
+ // _MAT method - create an madt apic buffer
13
+ // Arg0 = Processor ID = Local APIC ID
14
+ // Local0 = CPON flag for this cpu
15
+ Store(DerefOf(Index(CPON, Arg0)), Local0)
16
+ // Local1 = Buffer (in madt apic form) to return
17
+ Store(Buffer(8) {0x00, 0x08, 0x00, 0x00, 0x00, 0, 0, 0}, Local1)
18
+ // Update the processor id, lapic id, and enable/disable status
19
+ Store(Arg0, Index(Local1, 2))
20
+ Store(Arg0, Index(Local1, 3))
21
+ Store(Local0, Index(Local1, 4))
22
+ Return (Local1)
23
+ }
24
+ Method(CPST, 1, NotSerialized) {
25
+ // _STA method - return ON status of cpu
26
+ // Arg0 = Processor ID = Local APIC ID
27
+ // Local0 = CPON flag for this cpu
28
+ Store(DerefOf(Index(CPON, Arg0)), Local0)
29
+ If (Local0) {
30
+ Return (0xF)
31
+ } Else {
32
+ Return (0x0)
33
+ }
34
+ }
35
+ Method(CPEJ, 2, NotSerialized) {
36
+ // _EJ0 method - eject callback
37
+ Sleep(200)
38
+ }
39
+
40
+ /* CPU hotplug notify method */
41
+ OperationRegion(PRST, SystemIO, 0xaf00, 32)
42
+ Field(PRST, ByteAcc, NoLock, Preserve) {
43
+ PRS, 256
44
+ }
45
+ Method(PRSC, 0) {
46
+ // Local5 = active cpu bitmap
47
+ Store(PRS, Local5)
48
+ // Local2 = last read byte from bitmap
49
+ Store(Zero, Local2)
50
+ // Local0 = Processor ID / APIC ID iterator
51
+ Store(Zero, Local0)
52
+ While (LLess(Local0, SizeOf(CPON))) {
53
+ // Local1 = CPON flag for this cpu
54
+ Store(DerefOf(Index(CPON, Local0)), Local1)
55
+ If (And(Local0, 0x07)) {
56
+ // Shift down previously read bitmap byte
57
+ ShiftRight(Local2, 1, Local2)
58
+ } Else {
59
+ // Read next byte from cpu bitmap
60
+ Store(DerefOf(Index(Local5, ShiftRight(Local0, 3))), Local2)
61
+ }
62
+ // Local3 = active state for this cpu
63
+ Store(And(Local2, 1), Local3)
64
+
65
+ If (LNotEqual(Local1, Local3)) {
66
+ // State change - update CPON with new state
67
+ Store(Local3, Index(CPON, Local0))
68
+ // Do CPU notify
69
+ If (LEqual(Local3, 1)) {
70
+ NTFY(Local0, 1)
71
+ } Else {
72
+ NTFY(Local0, 3)
73
+ }
74
+ }
75
+ Increment(Local0)
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,26 @@
1
+ /****************************************************************
2
+ * Debugging
3
+ ****************************************************************/
4
+
5
+ Scope(\) {
6
+ /* Debug Output */
7
+ OperationRegion(DBG, SystemIO, 0x0402, 0x01)
8
+ Field(DBG, ByteAcc, NoLock, Preserve) {
9
+ DBGB, 8,
10
+ }
11
+
12
+ /* Debug method - use this method to send output to the QEMU
13
+ * BIOS debug port. This method handles strings, integers,
14
+ * and buffers. For example: DBUG("abc") DBUG(0x123) */
15
+ Method(DBUG, 1) {
16
+ ToHexString(Arg0, Local0)
17
+ ToBuffer(Local0, Local0)
18
+ Subtract(SizeOf(Local0), 1, Local1)
19
+ Store(Zero, Local2)
20
+ While (LLess(Local2, Local1)) {
21
+ Store(DerefOf(Index(Local0, Local2)), DBGB)
22
+ Increment(Local2)
23
+ }
24
+ Store(0x0A, DBGB)
25
+ }
26
+ }
@@ -0,0 +1,36 @@
1
+ /****************************************************************
2
+ * HPET
3
+ ****************************************************************/
4
+
5
+ Scope(\_SB) {
6
+ Device(HPET) {
7
+ Name(_HID, EISAID("PNP0103"))
8
+ Name(_UID, 0)
9
+ OperationRegion(HPTM, SystemMemory, 0xFED00000, 0x400)
10
+ Field(HPTM, DWordAcc, Lock, Preserve) {
11
+ VEND, 32,
12
+ PRD, 32,
13
+ }
14
+ Method(_STA, 0, NotSerialized) {
15
+ Store(VEND, Local0)
16
+ Store(PRD, Local1)
17
+ ShiftRight(Local0, 16, Local0)
18
+ If (LOr(LEqual(Local0, 0), LEqual(Local0, 0xffff))) {
19
+ Return (0x0)
20
+ }
21
+ If (LOr(LEqual(Local1, 0), LGreater(Local1, 100000000))) {
22
+ Return (0x0)
23
+ }
24
+ Return (0x0F)
25
+ }
26
+ Name(_CRS, ResourceTemplate() {
27
+ #if 0 /* This makes WinXP BSOD for not yet figured reasons. */
28
+ IRQNoFlags() {2, 8}
29
+ #endif
30
+ Memory32Fixed(ReadOnly,
31
+ 0xFED00000, // Address Base
32
+ 0x00000400, // Address Length
33
+ )
34
+ })
35
+ }
36
+ }
@@ -0,0 +1,102 @@
1
+ /* Common legacy ISA style devices. */
2
+ Scope(\_SB.PCI0.ISA) {
3
+
4
+ Device(RTC) {
5
+ Name(_HID, EisaId("PNP0B00"))
6
+ Name(_CRS, ResourceTemplate() {
7
+ IO(Decode16, 0x0070, 0x0070, 0x10, 0x02)
8
+ IRQNoFlags() { 8 }
9
+ IO(Decode16, 0x0072, 0x0072, 0x02, 0x06)
10
+ })
11
+ }
12
+
13
+ Device(KBD) {
14
+ Name(_HID, EisaId("PNP0303"))
15
+ Method(_STA, 0, NotSerialized) {
16
+ Return (0x0f)
17
+ }
18
+ Name(_CRS, ResourceTemplate() {
19
+ IO(Decode16, 0x0060, 0x0060, 0x01, 0x01)
20
+ IO(Decode16, 0x0064, 0x0064, 0x01, 0x01)
21
+ IRQNoFlags() { 1 }
22
+ })
23
+ }
24
+
25
+ Device(MOU) {
26
+ Name(_HID, EisaId("PNP0F13"))
27
+ Method(_STA, 0, NotSerialized) {
28
+ Return (0x0f)
29
+ }
30
+ Name(_CRS, ResourceTemplate() {
31
+ IRQNoFlags() { 12 }
32
+ })
33
+ }
34
+
35
+ Device(FDC0) {
36
+ Name(_HID, EisaId("PNP0700"))
37
+ Method(_STA, 0, NotSerialized) {
38
+ Store(FDEN, Local0)
39
+ If (LEqual(Local0, 0)) {
40
+ Return (0x00)
41
+ } Else {
42
+ Return (0x0F)
43
+ }
44
+ }
45
+ Name(_CRS, ResourceTemplate() {
46
+ IO(Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
47
+ IO(Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
48
+ IRQNoFlags() { 6 }
49
+ DMA(Compatibility, NotBusMaster, Transfer8) { 2 }
50
+ })
51
+ }
52
+
53
+ Device(LPT) {
54
+ Name(_HID, EisaId("PNP0400"))
55
+ Method(_STA, 0, NotSerialized) {
56
+ Store(LPEN, Local0)
57
+ If (LEqual(Local0, 0)) {
58
+ Return (0x00)
59
+ } Else {
60
+ Return (0x0F)
61
+ }
62
+ }
63
+ Name(_CRS, ResourceTemplate() {
64
+ IO(Decode16, 0x0378, 0x0378, 0x08, 0x08)
65
+ IRQNoFlags() { 7 }
66
+ })
67
+ }
68
+
69
+ Device(COM1) {
70
+ Name(_HID, EisaId("PNP0501"))
71
+ Name(_UID, 0x01)
72
+ Method(_STA, 0, NotSerialized) {
73
+ Store(CAEN, Local0)
74
+ If (LEqual(Local0, 0)) {
75
+ Return (0x00)
76
+ } Else {
77
+ Return (0x0F)
78
+ }
79
+ }
80
+ Name(_CRS, ResourceTemplate() {
81
+ IO(Decode16, 0x03F8, 0x03F8, 0x00, 0x08)
82
+ IRQNoFlags() { 4 }
83
+ })
84
+ }
85
+
86
+ Device(COM2) {
87
+ Name(_HID, EisaId("PNP0501"))
88
+ Name(_UID, 0x02)
89
+ Method(_STA, 0, NotSerialized) {
90
+ Store(CBEN, Local0)
91
+ If (LEqual(Local0, 0)) {
92
+ Return (0x00)
93
+ } Else {
94
+ Return (0x0F)
95
+ }
96
+ }
97
+ Name(_CRS, ResourceTemplate() {
98
+ IO(Decode16, 0x02F8, 0x02F8, 0x00, 0x08)
99
+ IRQNoFlags() { 3 }
100
+ })
101
+ }
102
+ }
@@ -0,0 +1,90 @@
1
+ /* PCI CRS (current resources) definition. */
2
+ Scope(\_SB.PCI0) {
3
+
4
+ Name(CRES, ResourceTemplate() {
5
+ WordBusNumber(ResourceProducer, MinFixed, MaxFixed, PosDecode,
6
+ 0x0000, // Address Space Granularity
7
+ 0x0000, // Address Range Minimum
8
+ 0x00FF, // Address Range Maximum
9
+ 0x0000, // Address Translation Offset
10
+ 0x0100, // Address Length
11
+ ,, )
12
+ IO(Decode16,
13
+ 0x0CF8, // Address Range Minimum
14
+ 0x0CF8, // Address Range Maximum
15
+ 0x01, // Address Alignment
16
+ 0x08, // Address Length
17
+ )
18
+ WordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
19
+ 0x0000, // Address Space Granularity
20
+ 0x0000, // Address Range Minimum
21
+ 0x0CF7, // Address Range Maximum
22
+ 0x0000, // Address Translation Offset
23
+ 0x0CF8, // Address Length
24
+ ,, , TypeStatic)
25
+ WordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
26
+ 0x0000, // Address Space Granularity
27
+ 0x0D00, // Address Range Minimum
28
+ 0xFFFF, // Address Range Maximum
29
+ 0x0000, // Address Translation Offset
30
+ 0xF300, // Address Length
31
+ ,, , TypeStatic)
32
+ DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
33
+ 0x00000000, // Address Space Granularity
34
+ 0x000A0000, // Address Range Minimum
35
+ 0x000BFFFF, // Address Range Maximum
36
+ 0x00000000, // Address Translation Offset
37
+ 0x00020000, // Address Length
38
+ ,, , AddressRangeMemory, TypeStatic)
39
+ DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
40
+ 0x00000000, // Address Space Granularity
41
+ 0xE0000000, // Address Range Minimum
42
+ 0xFEBFFFFF, // Address Range Maximum
43
+ 0x00000000, // Address Translation Offset
44
+ 0x1EC00000, // Address Length
45
+ ,, PW32, AddressRangeMemory, TypeStatic)
46
+ })
47
+
48
+ Name(CR64, ResourceTemplate() {
49
+ QWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
50
+ 0x00000000, // Address Space Granularity
51
+ 0x8000000000, // Address Range Minimum
52
+ 0xFFFFFFFFFF, // Address Range Maximum
53
+ 0x00000000, // Address Translation Offset
54
+ 0x8000000000, // Address Length
55
+ ,, PW64, AddressRangeMemory, TypeStatic)
56
+ })
57
+
58
+ Method(_CRS, 0) {
59
+ /* Fields provided by dynamically created ssdt */
60
+ External(P0S, IntObj)
61
+ External(P0E, IntObj)
62
+ External(P1V, IntObj)
63
+ External(P1S, BuffObj)
64
+ External(P1E, BuffObj)
65
+ External(P1L, BuffObj)
66
+
67
+ /* fixup 32bit pci io window */
68
+ CreateDWordField(CRES, \_SB.PCI0.PW32._MIN, PS32)
69
+ CreateDWordField(CRES, \_SB.PCI0.PW32._MAX, PE32)
70
+ CreateDWordField(CRES, \_SB.PCI0.PW32._LEN, PL32)
71
+ Store(P0S, PS32)
72
+ Store(P0E, PE32)
73
+ Store(Add(Subtract(P0E, P0S), 1), PL32)
74
+
75
+ If (LEqual(P1V, Zero)) {
76
+ Return (CRES)
77
+ }
78
+
79
+ /* fixup 64bit pci io window */
80
+ CreateQWordField(CR64, \_SB.PCI0.PW64._MIN, PS64)
81
+ CreateQWordField(CR64, \_SB.PCI0.PW64._MAX, PE64)
82
+ CreateQWordField(CR64, \_SB.PCI0.PW64._LEN, PL64)
83
+ Store(P1S, PS64)
84
+ Store(P1E, PE64)
85
+ Store(P1L, PL64)
86
+ /* add window and return result */
87
+ ConcatenateResTemplate(CRES, CR64, Local0)
88
+ Return (Local0)
89
+ }
90
+ }
@@ -0,0 +1,342 @@
1
+ /*
2
+ * Bochs/QEMU ACPI DSDT ASL definition
3
+ *
4
+ * Copyright (c) 2006 Fabrice Bellard
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License version 2 as published by the Free Software Foundation.
9
+ *
10
+ * This library is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ * Lesser General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public
16
+ * License along with this library; if not, write to the Free Software
17
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
+ */
19
+
20
+ ACPI_EXTRACT_ALL_CODE AmlCode
21
+
22
+ DefinitionBlock (
23
+ "acpi-dsdt.aml", // Output Filename
24
+ "DSDT", // Signature
25
+ 0x01, // DSDT Compliance Revision
26
+ "BXPC", // OEMID
27
+ "BXDSDT", // TABLE ID
28
+ 0x1 // OEM Revision
29
+ )
30
+ {
31
+
32
+ #include "acpi-dsdt-dbug.dsl"
33
+
34
+
35
+ /****************************************************************
36
+ * PCI Bus definition
37
+ ****************************************************************/
38
+
39
+ Scope(\_SB) {
40
+ Device(PCI0) {
41
+ Name(_HID, EisaId("PNP0A03"))
42
+ Name(_ADR, 0x00)
43
+ Name(_UID, 1)
44
+ }
45
+ }
46
+
47
+ #include "acpi-dsdt-pci-crs.dsl"
48
+ #include "acpi-dsdt-hpet.dsl"
49
+
50
+
51
+ /****************************************************************
52
+ * VGA
53
+ ****************************************************************/
54
+
55
+ Scope(\_SB.PCI0) {
56
+ Device(VGA) {
57
+ Name(_ADR, 0x00020000)
58
+ OperationRegion(PCIC, PCI_Config, Zero, 0x4)
59
+ Field(PCIC, DWordAcc, NoLock, Preserve) {
60
+ VEND, 32
61
+ }
62
+ Method(_S1D, 0, NotSerialized) {
63
+ Return (0x00)
64
+ }
65
+ Method(_S2D, 0, NotSerialized) {
66
+ Return (0x00)
67
+ }
68
+ Method(_S3D, 0, NotSerialized) {
69
+ If (LEqual(VEND, 0x1001b36)) {
70
+ Return (0x03) // QXL
71
+ } Else {
72
+ Return (0x00)
73
+ }
74
+ }
75
+ }
76
+ }
77
+
78
+
79
+ /****************************************************************
80
+ * PIIX4 PM
81
+ ****************************************************************/
82
+
83
+ Scope(\_SB.PCI0) {
84
+ Device(PX13) {
85
+ Name(_ADR, 0x00010003)
86
+ OperationRegion(P13C, PCI_Config, 0x00, 0xff)
87
+ }
88
+ }
89
+
90
+
91
+ /****************************************************************
92
+ * PIIX3 ISA bridge
93
+ ****************************************************************/
94
+
95
+ Scope(\_SB.PCI0) {
96
+ Device(ISA) {
97
+ Name(_ADR, 0x00010000)
98
+
99
+ /* PIIX PCI to ISA irq remapping */
100
+ OperationRegion(P40C, PCI_Config, 0x60, 0x04)
101
+
102
+ /* enable bits */
103
+ Field(\_SB.PCI0.PX13.P13C, AnyAcc, NoLock, Preserve) {
104
+ Offset(0x5f),
105
+ , 7,
106
+ LPEN, 1, // LPT
107
+ Offset(0x67),
108
+ , 3,
109
+ CAEN, 1, // COM1
110
+ , 3,
111
+ CBEN, 1, // COM2
112
+ }
113
+ Name(FDEN, 1)
114
+ }
115
+ }
116
+
117
+ #include "acpi-dsdt-isa.dsl"
118
+
119
+
120
+ /****************************************************************
121
+ * PCI hotplug
122
+ ****************************************************************/
123
+
124
+ Scope(\_SB.PCI0) {
125
+ OperationRegion(PCST, SystemIO, 0xae00, 0x08)
126
+ Field(PCST, DWordAcc, NoLock, WriteAsZeros) {
127
+ PCIU, 32,
128
+ PCID, 32,
129
+ }
130
+
131
+ OperationRegion(SEJ, SystemIO, 0xae08, 0x04)
132
+ Field(SEJ, DWordAcc, NoLock, WriteAsZeros) {
133
+ B0EJ, 32,
134
+ }
135
+
136
+ /* Methods called by bulk generated PCI devices below */
137
+
138
+ /* Methods called by hotplug devices */
139
+ Method(PCEJ, 1, NotSerialized) {
140
+ // _EJ0 method - eject callback
141
+ Store(ShiftLeft(1, Arg0), B0EJ)
142
+ }
143
+
144
+ /* Hotplug notification method supplied by SSDT */
145
+ External(\_SB.PCI0.PCNT, MethodObj)
146
+
147
+ /* PCI hotplug notify method */
148
+ Method(PCNF, 0) {
149
+ // Local0 = iterator
150
+ Store(Zero, Local0)
151
+ While (LLess(Local0, 31)) {
152
+ Increment(Local0)
153
+ If (And(PCIU, ShiftLeft(1, Local0))) {
154
+ PCNT(Local0, 1)
155
+ }
156
+ If (And(PCID, ShiftLeft(1, Local0))) {
157
+ PCNT(Local0, 3)
158
+ }
159
+ }
160
+ }
161
+ }
162
+
163
+
164
+ /****************************************************************
165
+ * PCI IRQs
166
+ ****************************************************************/
167
+
168
+ Scope(\_SB) {
169
+ Scope(PCI0) {
170
+ Name(_PRT, Package() {
171
+ /* PCI IRQ routing table, example from ACPI 2.0a specification,
172
+ section 6.2.8.1 */
173
+ /* Note: we provide the same info as the PCI routing
174
+ table of the Bochs BIOS */
175
+
176
+ #define prt_slot(nr, lnk0, lnk1, lnk2, lnk3) \
177
+ Package() { nr##ffff, 0, lnk0, 0 }, \
178
+ Package() { nr##ffff, 1, lnk1, 0 }, \
179
+ Package() { nr##ffff, 2, lnk2, 0 }, \
180
+ Package() { nr##ffff, 3, lnk3, 0 }
181
+
182
+ #define prt_slot0(nr) prt_slot(nr, LNKD, LNKA, LNKB, LNKC)
183
+ #define prt_slot1(nr) prt_slot(nr, LNKA, LNKB, LNKC, LNKD)
184
+ #define prt_slot2(nr) prt_slot(nr, LNKB, LNKC, LNKD, LNKA)
185
+ #define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB)
186
+
187
+ prt_slot0(0x0000),
188
+ /* Device 1 is power mgmt device, and can only use irq 9 */
189
+ prt_slot(0x0001, LNKS, LNKB, LNKC, LNKD),
190
+ prt_slot2(0x0002),
191
+ prt_slot3(0x0003),
192
+ prt_slot0(0x0004),
193
+ prt_slot1(0x0005),
194
+ prt_slot2(0x0006),
195
+ prt_slot3(0x0007),
196
+ prt_slot0(0x0008),
197
+ prt_slot1(0x0009),
198
+ prt_slot2(0x000a),
199
+ prt_slot3(0x000b),
200
+ prt_slot0(0x000c),
201
+ prt_slot1(0x000d),
202
+ prt_slot2(0x000e),
203
+ prt_slot3(0x000f),
204
+ prt_slot0(0x0010),
205
+ prt_slot1(0x0011),
206
+ prt_slot2(0x0012),
207
+ prt_slot3(0x0013),
208
+ prt_slot0(0x0014),
209
+ prt_slot1(0x0015),
210
+ prt_slot2(0x0016),
211
+ prt_slot3(0x0017),
212
+ prt_slot0(0x0018),
213
+ prt_slot1(0x0019),
214
+ prt_slot2(0x001a),
215
+ prt_slot3(0x001b),
216
+ prt_slot0(0x001c),
217
+ prt_slot1(0x001d),
218
+ prt_slot2(0x001e),
219
+ prt_slot3(0x001f),
220
+ })
221
+ }
222
+
223
+ Field(PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) {
224
+ PRQ0, 8,
225
+ PRQ1, 8,
226
+ PRQ2, 8,
227
+ PRQ3, 8
228
+ }
229
+
230
+ Method(IQST, 1, NotSerialized) {
231
+ // _STA method - get status
232
+ If (And(0x80, Arg0)) {
233
+ Return (0x09)
234
+ }
235
+ Return (0x0B)
236
+ }
237
+ Method(IQCR, 1, Serialized) {
238
+ // _CRS method - get current settings
239
+ Name(PRR0, ResourceTemplate() {
240
+ Interrupt(, Level, ActiveHigh, Shared) { 0 }
241
+ })
242
+ CreateDWordField(PRR0, 0x05, PRRI)
243
+ If (LLess(Arg0, 0x80)) {
244
+ Store(Arg0, PRRI)
245
+ }
246
+ Return (PRR0)
247
+ }
248
+
249
+ #define define_link(link, uid, reg) \
250
+ Device(link) { \
251
+ Name(_HID, EISAID("PNP0C0F")) \
252
+ Name(_UID, uid) \
253
+ Name(_PRS, ResourceTemplate() { \
254
+ Interrupt(, Level, ActiveHigh, Shared) { \
255
+ 5, 10, 11 \
256
+ } \
257
+ }) \
258
+ Method(_STA, 0, NotSerialized) { \
259
+ Return (IQST(reg)) \
260
+ } \
261
+ Method(_DIS, 0, NotSerialized) { \
262
+ Or(reg, 0x80, reg) \
263
+ } \
264
+ Method(_CRS, 0, NotSerialized) { \
265
+ Return (IQCR(reg)) \
266
+ } \
267
+ Method(_SRS, 1, NotSerialized) { \
268
+ CreateDWordField(Arg0, 0x05, PRRI) \
269
+ Store(PRRI, reg) \
270
+ } \
271
+ }
272
+
273
+ define_link(LNKA, 0, PRQ0)
274
+ define_link(LNKB, 1, PRQ1)
275
+ define_link(LNKC, 2, PRQ2)
276
+ define_link(LNKD, 3, PRQ3)
277
+
278
+ Device(LNKS) {
279
+ Name(_HID, EISAID("PNP0C0F"))
280
+ Name(_UID, 4)
281
+ Name(_PRS, ResourceTemplate() {
282
+ Interrupt(, Level, ActiveHigh, Shared) { 9 }
283
+ })
284
+
285
+ // The SCI cannot be disabled and is always attached to GSI 9,
286
+ // so these are no-ops. We only need this link to override the
287
+ // polarity to active high and match the content of the MADT.
288
+ Method(_STA, 0, NotSerialized) { Return (0x0b) }
289
+ Method(_DIS, 0, NotSerialized) { }
290
+ Method(_CRS, 0, NotSerialized) { Return (_PRS) }
291
+ Method(_SRS, 1, NotSerialized) { }
292
+ }
293
+ }
294
+
295
+ #include "acpi-dsdt-cpu-hotplug.dsl"
296
+
297
+
298
+ /****************************************************************
299
+ * General purpose events
300
+ ****************************************************************/
301
+
302
+ Scope(\_GPE) {
303
+ Name(_HID, "ACPI0006")
304
+
305
+ Method(_L00) {
306
+ }
307
+ Method(_E01) {
308
+ // PCI hotplug event
309
+ \_SB.PCI0.PCNF()
310
+ }
311
+ Method(_E02) {
312
+ // CPU hotplug event
313
+ \_SB.PRSC()
314
+ }
315
+ Method(_L03) {
316
+ }
317
+ Method(_L04) {
318
+ }
319
+ Method(_L05) {
320
+ }
321
+ Method(_L06) {
322
+ }
323
+ Method(_L07) {
324
+ }
325
+ Method(_L08) {
326
+ }
327
+ Method(_L09) {
328
+ }
329
+ Method(_L0A) {
330
+ }
331
+ Method(_L0B) {
332
+ }
333
+ Method(_L0C) {
334
+ }
335
+ Method(_L0D) {
336
+ }
337
+ Method(_L0E) {
338
+ }
339
+ Method(_L0F) {
340
+ }
341
+ }
342
+ }