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.
- package/Readme.md +17 -6
- package/bios/seabios/.config +113 -0
- package/bios/seabios/.config.old +114 -0
- package/bios/seabios/.gitignore +4 -0
- package/bios/seabios/COPYING +674 -0
- package/bios/seabios/COPYING.LESSER +165 -0
- package/bios/seabios/Makefile +286 -0
- package/bios/seabios/README +17 -0
- package/bios/seabios/docs/Build_overview.md +104 -0
- package/bios/seabios/docs/Contributing.md +20 -0
- package/bios/seabios/docs/Debugging.md +111 -0
- package/bios/seabios/docs/Developer_Documentation.md +25 -0
- package/bios/seabios/docs/Developer_links.md +86 -0
- package/bios/seabios/docs/Download.md +27 -0
- package/bios/seabios/docs/Execution_and_code_flow.md +178 -0
- package/bios/seabios/docs/Linking_overview.md +160 -0
- package/bios/seabios/docs/Mailinglist.md +8 -0
- package/bios/seabios/docs/Memory_Model.md +253 -0
- package/bios/seabios/docs/README +5 -0
- package/bios/seabios/docs/Releases.md +482 -0
- package/bios/seabios/docs/Runtime_config.md +193 -0
- package/bios/seabios/docs/SeaBIOS.md +17 -0
- package/bios/seabios/docs/SeaVGABIOS.md +39 -0
- package/bios/seabios/out/autoconf.h +117 -0
- package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
- package/bios/seabios/out/include/config/acpi.h +0 -0
- package/bios/seabios/out/include/config/ahci.h +0 -0
- package/bios/seabios/out/include/config/apmbios.h +0 -0
- package/bios/seabios/out/include/config/ata/dma.h +0 -0
- package/bios/seabios/out/include/config/ata/pio32.h +0 -0
- package/bios/seabios/out/include/config/ata.h +0 -0
- package/bios/seabios/out/include/config/auto.conf +69 -0
- package/bios/seabios/out/include/config/auto.conf.cmd +9 -0
- package/bios/seabios/out/include/config/boot.h +0 -0
- package/bios/seabios/out/include/config/bootorder.h +0 -0
- package/bios/seabios/out/include/config/build/vgabios.h +0 -0
- package/bios/seabios/out/include/config/call32/smm.h +0 -0
- package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
- package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
- package/bios/seabios/out/include/config/debug/level.h +0 -0
- package/bios/seabios/out/include/config/drives.h +0 -0
- package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
- package/bios/seabios/out/include/config/esp/scsi.h +0 -0
- package/bios/seabios/out/include/config/flash/floppy.h +0 -0
- package/bios/seabios/out/include/config/floppy.h +0 -0
- package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
- package/bios/seabios/out/include/config/hardware/irq.h +0 -0
- package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
- package/bios/seabios/out/include/config/keyboard.h +0 -0
- package/bios/seabios/out/include/config/lpt.h +0 -0
- package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
- package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
- package/bios/seabios/out/include/config/megasas.h +0 -0
- package/bios/seabios/out/include/config/mouse.h +0 -0
- package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
- package/bios/seabios/out/include/config/mptable.h +0 -0
- package/bios/seabios/out/include/config/mtrr/init.h +0 -0
- package/bios/seabios/out/include/config/optionroms.h +0 -0
- package/bios/seabios/out/include/config/override/pci/id.h +0 -0
- package/bios/seabios/out/include/config/pcibios.h +0 -0
- package/bios/seabios/out/include/config/pirtable.h +0 -0
- package/bios/seabios/out/include/config/pmm.h +0 -0
- package/bios/seabios/out/include/config/pmtimer.h +0 -0
- package/bios/seabios/out/include/config/pnpbios.h +0 -0
- package/bios/seabios/out/include/config/ps2port.h +0 -0
- package/bios/seabios/out/include/config/pvscsi.h +0 -0
- package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
- package/bios/seabios/out/include/config/qemu.h +0 -0
- package/bios/seabios/out/include/config/rom/size.h +0 -0
- package/bios/seabios/out/include/config/rtc/timer.h +0 -0
- package/bios/seabios/out/include/config/s3/resume.h +0 -0
- package/bios/seabios/out/include/config/sdcard.h +0 -0
- package/bios/seabios/out/include/config/serial.h +0 -0
- package/bios/seabios/out/include/config/tcgbios.h +0 -0
- package/bios/seabios/out/include/config/threads.h +0 -0
- package/bios/seabios/out/include/config/tristate.conf +4 -0
- package/bios/seabios/out/include/config/tsc/timer.h +0 -0
- package/bios/seabios/out/include/config/use/smm.h +0 -0
- package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs.h +0 -0
- package/bios/seabios/out/include/config/vga/did.h +0 -0
- package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
- package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
- package/bios/seabios/out/include/config/vga/pci.h +0 -0
- package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
- package/bios/seabios/out/include/config/vga/vbe.h +0 -0
- package/bios/seabios/out/include/config/vga/vid.h +0 -0
- package/bios/seabios/out/include/config/vgahooks.h +0 -0
- package/bios/seabios/out/include/config/virtio/blk.h +0 -0
- package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
- package/bios/seabios/out/include/config/xen.h +0 -0
- package/bios/seabios/out/scripts/kconfig/conf +0 -0
- package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
- package/bios/seabios/out/scripts/kconfig/zconf.hash.c +289 -0
- package/bios/seabios/out/scripts/kconfig/zconf.lex.c +2420 -0
- package/bios/seabios/out/scripts/kconfig/zconf.tab.c +2538 -0
- package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
- package/bios/seabios/scripts/acpi_extract.py +366 -0
- package/bios/seabios/scripts/acpi_extract_preprocess.py +41 -0
- package/bios/seabios/scripts/buildrom.py +56 -0
- package/bios/seabios/scripts/buildversion.py +134 -0
- package/bios/seabios/scripts/checkrom.py +95 -0
- package/bios/seabios/scripts/checkstack.py +226 -0
- package/bios/seabios/scripts/checksum.py +16 -0
- package/bios/seabios/scripts/encodeint.py +21 -0
- package/bios/seabios/scripts/gen-offsets.sh +17 -0
- package/bios/seabios/scripts/kconfig/.gitignore +22 -0
- package/bios/seabios/scripts/kconfig/Makefile +331 -0
- package/bios/seabios/scripts/kconfig/POTFILES.in +12 -0
- package/bios/seabios/scripts/kconfig/check.sh +13 -0
- package/bios/seabios/scripts/kconfig/conf.c +718 -0
- package/bios/seabios/scripts/kconfig/confdata.c +1250 -0
- package/bios/seabios/scripts/kconfig/expr.c +1168 -0
- package/bios/seabios/scripts/kconfig/expr.h +241 -0
- package/bios/seabios/scripts/kconfig/gconf.c +1542 -0
- package/bios/seabios/scripts/kconfig/gconf.glade +661 -0
- package/bios/seabios/scripts/kconfig/images.c +326 -0
- package/bios/seabios/scripts/kconfig/kxgettext.c +235 -0
- package/bios/seabios/scripts/kconfig/lex.zconf.c +2430 -0
- package/bios/seabios/scripts/kconfig/list.h +131 -0
- package/bios/seabios/scripts/kconfig/lkc.h +200 -0
- package/bios/seabios/scripts/kconfig/lkc_proto.h +57 -0
- package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +4 -0
- package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +4 -0
- package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +87 -0
- package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +332 -0
- package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +257 -0
- package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +301 -0
- package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +437 -0
- package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +408 -0
- package/bios/seabios/scripts/kconfig/lxdialog/util.c +713 -0
- package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +114 -0
- package/bios/seabios/scripts/kconfig/mconf.c +1036 -0
- package/bios/seabios/scripts/kconfig/menu.c +697 -0
- package/bios/seabios/scripts/kconfig/merge_config.sh +150 -0
- package/bios/seabios/scripts/kconfig/nconf.c +1556 -0
- package/bios/seabios/scripts/kconfig/nconf.gui.c +656 -0
- package/bios/seabios/scripts/kconfig/nconf.h +96 -0
- package/bios/seabios/scripts/kconfig/qconf.cc +1795 -0
- package/bios/seabios/scripts/kconfig/qconf.h +338 -0
- package/bios/seabios/scripts/kconfig/streamline_config.pl +647 -0
- package/bios/seabios/scripts/kconfig/symbol.c +1373 -0
- package/bios/seabios/scripts/kconfig/util.c +157 -0
- package/bios/seabios/scripts/kconfig/zconf.gperf +48 -0
- package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +289 -0
- package/bios/seabios/scripts/kconfig/zconf.l +363 -0
- package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +2420 -0
- package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +2538 -0
- package/bios/seabios/scripts/kconfig/zconf.y +733 -0
- package/bios/seabios/scripts/layoutrom.py +705 -0
- package/bios/seabios/scripts/python23compat.py +14 -0
- package/bios/seabios/scripts/readserial.py +190 -0
- package/bios/seabios/scripts/tarball.sh +36 -0
- package/bios/seabios/scripts/test-build.sh +90 -0
- package/bios/seabios/scripts/transdump.py +53 -0
- package/bios/seabios/scripts/vgafixup.py +96 -0
- package/bios/seabios/src/Kconfig +579 -0
- package/bios/seabios/src/apm.c +215 -0
- package/bios/seabios/src/asm-offsets.c +23 -0
- package/bios/seabios/src/biosvar.h +130 -0
- package/bios/seabios/src/block.c +623 -0
- package/bios/seabios/src/block.h +121 -0
- package/bios/seabios/src/bmp.c +117 -0
- package/bios/seabios/src/boot.c +793 -0
- package/bios/seabios/src/bootsplash.c +255 -0
- package/bios/seabios/src/bregs.h +80 -0
- package/bios/seabios/src/byteorder.h +71 -0
- package/bios/seabios/src/cdrom.c +322 -0
- package/bios/seabios/src/clock.c +506 -0
- package/bios/seabios/src/code16gcc.s +1 -0
- package/bios/seabios/src/config.h +108 -0
- package/bios/seabios/src/cp437.c +275 -0
- package/bios/seabios/src/cp437.h +1 -0
- package/bios/seabios/src/disk.c +779 -0
- package/bios/seabios/src/e820map.c +152 -0
- package/bios/seabios/src/e820map.h +26 -0
- package/bios/seabios/src/entryfuncs.S +165 -0
- package/bios/seabios/src/farptr.h +208 -0
- package/bios/seabios/src/font.c +139 -0
- package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +78 -0
- package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +26 -0
- package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +36 -0
- package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +102 -0
- package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +90 -0
- package/bios/seabios/src/fw/acpi-dsdt.dsl +342 -0
- package/bios/seabios/src/fw/acpi-dsdt.hex +554 -0
- package/bios/seabios/src/fw/acpi.c +685 -0
- package/bios/seabios/src/fw/biostables.c +491 -0
- package/bios/seabios/src/fw/coreboot.c +569 -0
- package/bios/seabios/src/fw/csm.c +347 -0
- package/bios/seabios/src/fw/dev-pci.h +52 -0
- package/bios/seabios/src/fw/dev-piix.h +29 -0
- package/bios/seabios/src/fw/dev-q35.h +52 -0
- package/bios/seabios/src/fw/lzmadecode.c +398 -0
- package/bios/seabios/src/fw/lzmadecode.h +67 -0
- package/bios/seabios/src/fw/mptable.c +197 -0
- package/bios/seabios/src/fw/mtrr.c +105 -0
- package/bios/seabios/src/fw/multiboot.c +111 -0
- package/bios/seabios/src/fw/paravirt.c +624 -0
- package/bios/seabios/src/fw/paravirt.h +63 -0
- package/bios/seabios/src/fw/pciinit.c +1187 -0
- package/bios/seabios/src/fw/pirtable.c +103 -0
- package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +450 -0
- package/bios/seabios/src/fw/romfile_loader.c +259 -0
- package/bios/seabios/src/fw/romfile_loader.h +91 -0
- package/bios/seabios/src/fw/shadow.c +208 -0
- package/bios/seabios/src/fw/smbios.c +585 -0
- package/bios/seabios/src/fw/smm.c +269 -0
- package/bios/seabios/src/fw/smp.c +194 -0
- package/bios/seabios/src/fw/ssdt-misc.dsl +104 -0
- package/bios/seabios/src/fw/ssdt-misc.hex +88 -0
- package/bios/seabios/src/fw/ssdt-pcihp.dsl +36 -0
- package/bios/seabios/src/fw/ssdt-pcihp.hex +38 -0
- package/bios/seabios/src/fw/ssdt-proc.dsl +48 -0
- package/bios/seabios/src/fw/ssdt-proc.hex +35 -0
- package/bios/seabios/src/fw/xen.c +149 -0
- package/bios/seabios/src/fw/xen.h +125 -0
- package/bios/seabios/src/gen-defs.h +19 -0
- package/bios/seabios/src/hw/ahci.c +697 -0
- package/bios/seabios/src/hw/ahci.h +201 -0
- package/bios/seabios/src/hw/ata.c +1046 -0
- package/bios/seabios/src/hw/ata.h +163 -0
- package/bios/seabios/src/hw/blockcmd.c +372 -0
- package/bios/seabios/src/hw/blockcmd.h +114 -0
- package/bios/seabios/src/hw/dma.c +67 -0
- package/bios/seabios/src/hw/esp-scsi.c +241 -0
- package/bios/seabios/src/hw/esp-scsi.h +8 -0
- package/bios/seabios/src/hw/floppy.c +741 -0
- package/bios/seabios/src/hw/lsi-scsi.c +221 -0
- package/bios/seabios/src/hw/lsi-scsi.h +8 -0
- package/bios/seabios/src/hw/megasas.c +405 -0
- package/bios/seabios/src/hw/megasas.h +8 -0
- package/bios/seabios/src/hw/mpt-scsi.c +319 -0
- package/bios/seabios/src/hw/mpt-scsi.h +8 -0
- package/bios/seabios/src/hw/nvme-int.h +199 -0
- package/bios/seabios/src/hw/nvme.c +708 -0
- package/bios/seabios/src/hw/nvme.h +17 -0
- package/bios/seabios/src/hw/pci.c +133 -0
- package/bios/seabios/src/hw/pci.h +47 -0
- package/bios/seabios/src/hw/pci_ids.h +2632 -0
- package/bios/seabios/src/hw/pci_regs.h +556 -0
- package/bios/seabios/src/hw/pcidevice.c +192 -0
- package/bios/seabios/src/hw/pcidevice.h +76 -0
- package/bios/seabios/src/hw/pic.c +115 -0
- package/bios/seabios/src/hw/pic.h +60 -0
- package/bios/seabios/src/hw/ps2port.c +543 -0
- package/bios/seabios/src/hw/ps2port.h +67 -0
- package/bios/seabios/src/hw/pvscsi.c +333 -0
- package/bios/seabios/src/hw/pvscsi.h +8 -0
- package/bios/seabios/src/hw/ramdisk.c +108 -0
- package/bios/seabios/src/hw/rtc.c +100 -0
- package/bios/seabios/src/hw/rtc.h +75 -0
- package/bios/seabios/src/hw/sdcard.c +572 -0
- package/bios/seabios/src/hw/serialio.c +113 -0
- package/bios/seabios/src/hw/serialio.h +29 -0
- package/bios/seabios/src/hw/timer.c +259 -0
- package/bios/seabios/src/hw/tpm_drivers.c +636 -0
- package/bios/seabios/src/hw/tpm_drivers.h +127 -0
- package/bios/seabios/src/hw/usb-ehci.c +650 -0
- package/bios/seabios/src/hw/usb-ehci.h +177 -0
- package/bios/seabios/src/hw/usb-hid.c +442 -0
- package/bios/seabios/src/hw/usb-hid.h +29 -0
- package/bios/seabios/src/hw/usb-hub.c +205 -0
- package/bios/seabios/src/hw/usb-hub.h +64 -0
- package/bios/seabios/src/hw/usb-msc.c +222 -0
- package/bios/seabios/src/hw/usb-msc.h +10 -0
- package/bios/seabios/src/hw/usb-ohci.c +568 -0
- package/bios/seabios/src/hw/usb-ohci.h +144 -0
- package/bios/seabios/src/hw/usb-uas.c +289 -0
- package/bios/seabios/src/hw/usb-uas.h +9 -0
- package/bios/seabios/src/hw/usb-uhci.c +571 -0
- package/bios/seabios/src/hw/usb-uhci.h +128 -0
- package/bios/seabios/src/hw/usb-xhci.c +1161 -0
- package/bios/seabios/src/hw/usb-xhci.h +133 -0
- package/bios/seabios/src/hw/usb.c +499 -0
- package/bios/seabios/src/hw/usb.h +254 -0
- package/bios/seabios/src/hw/virtio-blk.c +211 -0
- package/bios/seabios/src/hw/virtio-blk.h +43 -0
- package/bios/seabios/src/hw/virtio-pci.c +501 -0
- package/bios/seabios/src/hw/virtio-pci.h +151 -0
- package/bios/seabios/src/hw/virtio-ring.c +147 -0
- package/bios/seabios/src/hw/virtio-ring.h +121 -0
- package/bios/seabios/src/hw/virtio-scsi.c +220 -0
- package/bios/seabios/src/hw/virtio-scsi.h +47 -0
- package/bios/seabios/src/jpeg.c +1055 -0
- package/bios/seabios/src/kbd.c +599 -0
- package/bios/seabios/src/list.h +91 -0
- package/bios/seabios/src/malloc.c +561 -0
- package/bios/seabios/src/malloc.h +70 -0
- package/bios/seabios/src/memmap.h +21 -0
- package/bios/seabios/src/misc.c +195 -0
- package/bios/seabios/src/mouse.c +342 -0
- package/bios/seabios/src/optionroms.c +475 -0
- package/bios/seabios/src/output.c +584 -0
- package/bios/seabios/src/output.h +68 -0
- package/bios/seabios/src/pcibios.c +241 -0
- package/bios/seabios/src/pmm.c +176 -0
- package/bios/seabios/src/pnpbios.c +88 -0
- package/bios/seabios/src/post.c +337 -0
- package/bios/seabios/src/resume.c +157 -0
- package/bios/seabios/src/romfile.c +146 -0
- package/bios/seabios/src/romfile.h +21 -0
- package/bios/seabios/src/romlayout.S +698 -0
- package/bios/seabios/src/sercon.c +677 -0
- package/bios/seabios/src/serial.c +317 -0
- package/bios/seabios/src/sha1.c +147 -0
- package/bios/seabios/src/sha1.h +8 -0
- package/bios/seabios/src/stacks.c +771 -0
- package/bios/seabios/src/stacks.h +68 -0
- package/bios/seabios/src/std/LegacyBios.h +985 -0
- package/bios/seabios/src/std/acpi.h +323 -0
- package/bios/seabios/src/std/bda.h +174 -0
- package/bios/seabios/src/std/disk.h +175 -0
- package/bios/seabios/src/std/mptable.h +77 -0
- package/bios/seabios/src/std/multiboot.h +260 -0
- package/bios/seabios/src/std/optionrom.h +59 -0
- package/bios/seabios/src/std/pirtable.h +35 -0
- package/bios/seabios/src/std/pmm.h +19 -0
- package/bios/seabios/src/std/pnpbios.h +24 -0
- package/bios/seabios/src/std/smbios.h +167 -0
- package/bios/seabios/src/std/tcg.h +554 -0
- package/bios/seabios/src/std/vbe.h +156 -0
- package/bios/seabios/src/std/vga.h +63 -0
- package/bios/seabios/src/string.c +251 -0
- package/bios/seabios/src/string.h +31 -0
- package/bios/seabios/src/system.c +357 -0
- package/bios/seabios/src/tcgbios.c +2014 -0
- package/bios/seabios/src/tcgbios.h +19 -0
- package/bios/seabios/src/types.h +156 -0
- package/bios/seabios/src/util.h +251 -0
- package/bios/seabios/src/version.c +5 -0
- package/bios/seabios/src/vgahooks.c +355 -0
- package/bios/seabios/src/x86.c +23 -0
- package/bios/seabios/src/x86.h +277 -0
- package/bios/seabios/vgasrc/Kconfig +211 -0
- package/bios/seabios/vgasrc/bochsdisplay.c +59 -0
- package/bios/seabios/vgasrc/bochsvga.c +447 -0
- package/bios/seabios/vgasrc/bochsvga.h +57 -0
- package/bios/seabios/vgasrc/cbvga.c +337 -0
- package/bios/seabios/vgasrc/clext.c +627 -0
- package/bios/seabios/vgasrc/geodevga.c +434 -0
- package/bios/seabios/vgasrc/geodevga.h +89 -0
- package/bios/seabios/vgasrc/ramfb.c +163 -0
- package/bios/seabios/vgasrc/stdvga.c +485 -0
- package/bios/seabios/vgasrc/stdvga.h +81 -0
- package/bios/seabios/vgasrc/stdvgaio.c +186 -0
- package/bios/seabios/vgasrc/stdvgamodes.c +534 -0
- package/bios/seabios/vgasrc/swcursor.c +96 -0
- package/bios/seabios/vgasrc/vbe.c +432 -0
- package/bios/seabios/vgasrc/vgabios.c +1131 -0
- package/bios/seabios/vgasrc/vgabios.h +88 -0
- package/bios/seabios/vgasrc/vgaentry.S +161 -0
- package/bios/seabios/vgasrc/vgafb.c +661 -0
- package/bios/seabios/vgasrc/vgafb.h +42 -0
- package/bios/seabios/vgasrc/vgafonts.c +785 -0
- package/bios/seabios/vgasrc/vgahw.h +152 -0
- package/bios/seabios/vgasrc/vgainit.c +202 -0
- package/bios/seabios/vgasrc/vgalayout.lds.S +23 -0
- package/bios/seabios/vgasrc/vgautil.h +103 -0
- package/bios/seabios/vgasrc/vgaversion.c +6 -0
- package/build/binaries.js +1 -1
- package/build/index-debug.cjs +1 -1
- package/build/index-debug.js +1 -1
- package/build/index.cjs +1 -1
- package/build/index.js +1 -1
- package/build/v86-debug.wasm +0 -0
- package/build/v86.wasm +0 -0
- package/package.json +1 -1
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
#ifndef __ACPI_H
|
|
2
|
+
#define __ACPI_H
|
|
3
|
+
|
|
4
|
+
#include "types.h" // u32
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* ACPI 2.0 Generic Address Space definition.
|
|
8
|
+
*/
|
|
9
|
+
struct acpi_20_generic_address {
|
|
10
|
+
u8 address_space_id;
|
|
11
|
+
u8 register_bit_width;
|
|
12
|
+
u8 register_bit_offset;
|
|
13
|
+
u8 reserved;
|
|
14
|
+
u64 address;
|
|
15
|
+
} PACKED;
|
|
16
|
+
|
|
17
|
+
#define RSDP_SIGNATURE 0x2052545020445352LL // "RSD PTR "
|
|
18
|
+
|
|
19
|
+
struct rsdp_descriptor { /* Root System Descriptor Pointer */
|
|
20
|
+
u64 signature; /* ACPI signature, contains "RSD PTR " */
|
|
21
|
+
u8 checksum; /* To make sum of struct == 0 */
|
|
22
|
+
u8 oem_id [6]; /* OEM identification */
|
|
23
|
+
u8 revision; /* Must be 0 for 1.0, 2 for 2.0 */
|
|
24
|
+
u32 rsdt_physical_address; /* 32-bit physical address of RSDT */
|
|
25
|
+
u32 length; /* XSDT Length in bytes including hdr */
|
|
26
|
+
u64 xsdt_physical_address; /* 64-bit physical address of XSDT */
|
|
27
|
+
u8 extended_checksum; /* Checksum of entire table */
|
|
28
|
+
u8 reserved [3]; /* Reserved field must be 0 */
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/* Table structure from Linux kernel (the ACPI tables are under the
|
|
32
|
+
BSD license) */
|
|
33
|
+
|
|
34
|
+
#define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \
|
|
35
|
+
u32 signature; /* ACPI signature (4 ASCII characters) */ \
|
|
36
|
+
u32 length; /* Length of table, in bytes, including header */ \
|
|
37
|
+
u8 revision; /* ACPI Specification minor version # */ \
|
|
38
|
+
u8 checksum; /* To make sum of entire table == 0 */ \
|
|
39
|
+
u8 oem_id [6]; /* OEM identification */ \
|
|
40
|
+
u8 oem_table_id [8]; /* OEM table identification */ \
|
|
41
|
+
u32 oem_revision; /* OEM revision number */ \
|
|
42
|
+
u8 asl_compiler_id [4]; /* ASL compiler vendor ID */ \
|
|
43
|
+
u32 asl_compiler_revision; /* ASL compiler revision number */
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
* Fixed ACPI Description Table Fixed Feature Flags
|
|
47
|
+
*/
|
|
48
|
+
#define ACPI_FADT_F_WBINVD (1 << 0)
|
|
49
|
+
#define ACPI_FADT_F_WBINVD_FLUSH (1 << 1)
|
|
50
|
+
#define ACPI_FADT_F_PROC_C1 (1 << 2)
|
|
51
|
+
#define ACPI_FADT_F_P_LVL2_UP (1 << 3)
|
|
52
|
+
#define ACPI_FADT_F_PWR_BUTTON (1 << 4)
|
|
53
|
+
#define ACPI_FADT_F_SLP_BUTTON (1 << 5)
|
|
54
|
+
#define ACPI_FADT_F_FIX_RTC (1 << 6)
|
|
55
|
+
#define ACPI_FADT_F_RTC_S4 (1 << 7)
|
|
56
|
+
#define ACPI_FADT_F_TMR_VAL_EXT (1 << 8)
|
|
57
|
+
#define ACPI_FADT_F_DCK_CAP (1 << 9)
|
|
58
|
+
#define ACPI_FADT_F_RESET_REG_SUP (1 << 10)
|
|
59
|
+
#define ACPI_FADT_F_SEALED_CASE (1 << 11)
|
|
60
|
+
#define ACPI_FADT_F_HEADLESS (1 << 12)
|
|
61
|
+
#define ACPI_FADT_F_CPU_SW_SLP (1 << 13)
|
|
62
|
+
#define ACPI_FADT_F_PCI_EXP_WAK (1 << 14)
|
|
63
|
+
#define ACPI_FADT_F_USE_PLATFORM_CLOCK (1 << 15)
|
|
64
|
+
#define ACPI_FADT_F_S4_RTC_STS_VALID (1 << 16)
|
|
65
|
+
#define ACPI_FADT_F_REMOTE_POWER_ON_CAPABLE (1 << 17)
|
|
66
|
+
#define ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL (1 << 18)
|
|
67
|
+
#define ACPI_FADT_F_FORCE_APIC_PHYSICAL_DESTINATION_MODE (1 << 19)
|
|
68
|
+
#define ACPI_FADT_F_HW_REDUCED_ACPI (1 << 20)
|
|
69
|
+
#define ACPI_FADT_F_LOW_POWER_S0_IDLE_CAPABLE (1 << 21)
|
|
70
|
+
|
|
71
|
+
/*
|
|
72
|
+
* ACPI 1.0 Fixed ACPI Description Table (FADT)
|
|
73
|
+
*/
|
|
74
|
+
#define FACP_SIGNATURE 0x50434146 // FACP
|
|
75
|
+
struct fadt_descriptor_rev1
|
|
76
|
+
{
|
|
77
|
+
ACPI_TABLE_HEADER_DEF /* ACPI common table header */
|
|
78
|
+
u32 firmware_ctrl; /* Physical address of FACS */
|
|
79
|
+
u32 dsdt; /* Physical address of DSDT */
|
|
80
|
+
u8 model; /* System Interrupt Model */
|
|
81
|
+
u8 reserved1; /* Reserved */
|
|
82
|
+
u16 sci_int; /* System vector of SCI interrupt */
|
|
83
|
+
u32 smi_cmd; /* Port address of SMI command port */
|
|
84
|
+
u8 acpi_enable; /* Value to write to smi_cmd to enable ACPI */
|
|
85
|
+
u8 acpi_disable; /* Value to write to smi_cmd to disable ACPI */
|
|
86
|
+
u8 S4bios_req; /* Value to write to SMI CMD to enter S4BIOS state */
|
|
87
|
+
u8 reserved2; /* Reserved - must be zero */
|
|
88
|
+
u32 pm1a_evt_blk; /* Port address of Power Mgt 1a acpi_event Reg Blk */
|
|
89
|
+
u32 pm1b_evt_blk; /* Port address of Power Mgt 1b acpi_event Reg Blk */
|
|
90
|
+
u32 pm1a_cnt_blk; /* Port address of Power Mgt 1a Control Reg Blk */
|
|
91
|
+
u32 pm1b_cnt_blk; /* Port address of Power Mgt 1b Control Reg Blk */
|
|
92
|
+
u32 pm2_cnt_blk; /* Port address of Power Mgt 2 Control Reg Blk */
|
|
93
|
+
u32 pm_tmr_blk; /* Port address of Power Mgt Timer Ctrl Reg Blk */
|
|
94
|
+
u32 gpe0_blk; /* Port addr of General Purpose acpi_event 0 Reg Blk */
|
|
95
|
+
u32 gpe1_blk; /* Port addr of General Purpose acpi_event 1 Reg Blk */
|
|
96
|
+
u8 pm1_evt_len; /* Byte length of ports at pm1_x_evt_blk */
|
|
97
|
+
u8 pm1_cnt_len; /* Byte length of ports at pm1_x_cnt_blk */
|
|
98
|
+
u8 pm2_cnt_len; /* Byte Length of ports at pm2_cnt_blk */
|
|
99
|
+
u8 pm_tmr_len; /* Byte Length of ports at pm_tm_blk */
|
|
100
|
+
u8 gpe0_blk_len; /* Byte Length of ports at gpe0_blk */
|
|
101
|
+
u8 gpe1_blk_len; /* Byte Length of ports at gpe1_blk */
|
|
102
|
+
u8 gpe1_base; /* Offset in gpe model where gpe1 events start */
|
|
103
|
+
u8 reserved3; /* Reserved */
|
|
104
|
+
u16 plvl2_lat; /* Worst case HW latency to enter/exit C2 state */
|
|
105
|
+
u16 plvl3_lat; /* Worst case HW latency to enter/exit C3 state */
|
|
106
|
+
u16 flush_size; /* Size of area read to flush caches */
|
|
107
|
+
u16 flush_stride; /* Stride used in flushing caches */
|
|
108
|
+
u8 duty_offset; /* Bit location of duty cycle field in p_cnt reg */
|
|
109
|
+
u8 duty_width; /* Bit width of duty cycle field in p_cnt reg */
|
|
110
|
+
u8 day_alrm; /* Index to day-of-month alarm in RTC CMOS RAM */
|
|
111
|
+
u8 mon_alrm; /* Index to month-of-year alarm in RTC CMOS RAM */
|
|
112
|
+
u8 century; /* Index to century in RTC CMOS RAM */
|
|
113
|
+
u8 reserved4; /* Reserved */
|
|
114
|
+
u8 reserved4a; /* Reserved */
|
|
115
|
+
u8 reserved4b; /* Reserved */
|
|
116
|
+
u32 flags;
|
|
117
|
+
} PACKED;
|
|
118
|
+
|
|
119
|
+
struct acpi_table_header /* ACPI common table header */
|
|
120
|
+
{
|
|
121
|
+
ACPI_TABLE_HEADER_DEF
|
|
122
|
+
} PACKED;
|
|
123
|
+
|
|
124
|
+
/*
|
|
125
|
+
* ACPI 1.0 Root System Description Table (RSDT)
|
|
126
|
+
*/
|
|
127
|
+
#define RSDT_SIGNATURE 0x54445352 // RSDT
|
|
128
|
+
struct rsdt_descriptor_rev1
|
|
129
|
+
{
|
|
130
|
+
ACPI_TABLE_HEADER_DEF /* ACPI common table header */
|
|
131
|
+
u32 table_offset_entry[0]; /* Array of pointers to other */
|
|
132
|
+
/* ACPI tables */
|
|
133
|
+
} PACKED;
|
|
134
|
+
|
|
135
|
+
/*
|
|
136
|
+
* ACPI 1.0 Firmware ACPI Control Structure (FACS)
|
|
137
|
+
*/
|
|
138
|
+
#define FACS_SIGNATURE 0x53434146 // FACS
|
|
139
|
+
struct facs_descriptor_rev1
|
|
140
|
+
{
|
|
141
|
+
u32 signature; /* ACPI Signature */
|
|
142
|
+
u32 length; /* Length of structure, in bytes */
|
|
143
|
+
u32 hardware_signature; /* Hardware configuration signature */
|
|
144
|
+
u32 firmware_waking_vector; /* ACPI OS waking vector */
|
|
145
|
+
u32 global_lock; /* Global Lock */
|
|
146
|
+
u32 flags;
|
|
147
|
+
u8 resverved3 [40]; /* Reserved - must be zero */
|
|
148
|
+
} PACKED;
|
|
149
|
+
|
|
150
|
+
/*
|
|
151
|
+
* Differentiated System Description Table (DSDT)
|
|
152
|
+
*/
|
|
153
|
+
#define DSDT_SIGNATURE 0x54445344 // DSDT
|
|
154
|
+
|
|
155
|
+
/*
|
|
156
|
+
* MADT values and structures
|
|
157
|
+
*/
|
|
158
|
+
|
|
159
|
+
/* Values for MADT PCATCompat */
|
|
160
|
+
|
|
161
|
+
#define DUAL_PIC 0
|
|
162
|
+
#define MULTIPLE_APIC 1
|
|
163
|
+
|
|
164
|
+
/* Master MADT */
|
|
165
|
+
|
|
166
|
+
#define APIC_SIGNATURE 0x43495041 // APIC
|
|
167
|
+
struct multiple_apic_table
|
|
168
|
+
{
|
|
169
|
+
ACPI_TABLE_HEADER_DEF /* ACPI common table header */
|
|
170
|
+
u32 local_apic_address; /* Physical address of local APIC */
|
|
171
|
+
u32 flags;
|
|
172
|
+
} PACKED;
|
|
173
|
+
|
|
174
|
+
/* Values for Type in APIC sub-headers */
|
|
175
|
+
|
|
176
|
+
#define APIC_PROCESSOR 0
|
|
177
|
+
#define APIC_IO 1
|
|
178
|
+
#define APIC_XRUPT_OVERRIDE 2
|
|
179
|
+
#define APIC_NMI 3
|
|
180
|
+
#define APIC_LOCAL_NMI 4
|
|
181
|
+
#define APIC_ADDRESS_OVERRIDE 5
|
|
182
|
+
#define APIC_IO_SAPIC 6
|
|
183
|
+
#define APIC_LOCAL_SAPIC 7
|
|
184
|
+
#define APIC_XRUPT_SOURCE 8
|
|
185
|
+
#define APIC_RESERVED 9 /* 9 and greater are reserved */
|
|
186
|
+
|
|
187
|
+
/*
|
|
188
|
+
* MADT sub-structures (Follow MULTIPLE_APIC_DESCRIPTION_TABLE)
|
|
189
|
+
*/
|
|
190
|
+
#define ACPI_SUB_HEADER_DEF /* Common ACPI sub-structure header */\
|
|
191
|
+
u8 type; \
|
|
192
|
+
u8 length;
|
|
193
|
+
|
|
194
|
+
/* Sub-structures for MADT */
|
|
195
|
+
|
|
196
|
+
struct madt_processor_apic
|
|
197
|
+
{
|
|
198
|
+
ACPI_SUB_HEADER_DEF
|
|
199
|
+
u8 processor_id; /* ACPI processor id */
|
|
200
|
+
u8 local_apic_id; /* Processor's local APIC id */
|
|
201
|
+
u32 flags;
|
|
202
|
+
} PACKED;
|
|
203
|
+
|
|
204
|
+
struct madt_io_apic
|
|
205
|
+
{
|
|
206
|
+
ACPI_SUB_HEADER_DEF
|
|
207
|
+
u8 io_apic_id; /* I/O APIC ID */
|
|
208
|
+
u8 reserved; /* Reserved - must be zero */
|
|
209
|
+
u32 address; /* APIC physical address */
|
|
210
|
+
u32 interrupt; /* Global system interrupt where INTI
|
|
211
|
+
* lines start */
|
|
212
|
+
} PACKED;
|
|
213
|
+
|
|
214
|
+
struct madt_intsrcovr {
|
|
215
|
+
ACPI_SUB_HEADER_DEF
|
|
216
|
+
u8 bus;
|
|
217
|
+
u8 source;
|
|
218
|
+
u32 gsi;
|
|
219
|
+
u16 flags;
|
|
220
|
+
} PACKED;
|
|
221
|
+
|
|
222
|
+
struct madt_local_nmi {
|
|
223
|
+
ACPI_SUB_HEADER_DEF
|
|
224
|
+
u8 processor_id; /* ACPI processor id */
|
|
225
|
+
u16 flags; /* MPS INTI flags */
|
|
226
|
+
u8 lint; /* Local APIC LINT# */
|
|
227
|
+
} PACKED;
|
|
228
|
+
|
|
229
|
+
/*
|
|
230
|
+
* HPET Description Table
|
|
231
|
+
*/
|
|
232
|
+
#define HPET_SIGNATURE 0x54455048 // HPET
|
|
233
|
+
struct acpi_20_hpet {
|
|
234
|
+
ACPI_TABLE_HEADER_DEF /* ACPI common table header */
|
|
235
|
+
u32 timer_block_id;
|
|
236
|
+
struct acpi_20_generic_address addr;
|
|
237
|
+
u8 hpet_number;
|
|
238
|
+
u16 min_tick;
|
|
239
|
+
u8 page_protect;
|
|
240
|
+
} PACKED;
|
|
241
|
+
|
|
242
|
+
/*
|
|
243
|
+
* SRAT (NUMA topology description) table
|
|
244
|
+
*/
|
|
245
|
+
|
|
246
|
+
#define SRAT_SIGNATURE 0x54415253 // SRAT
|
|
247
|
+
struct system_resource_affinity_table
|
|
248
|
+
{
|
|
249
|
+
ACPI_TABLE_HEADER_DEF
|
|
250
|
+
u32 reserved1;
|
|
251
|
+
u32 reserved2[2];
|
|
252
|
+
} PACKED;
|
|
253
|
+
|
|
254
|
+
#define SRAT_PROCESSOR 0
|
|
255
|
+
#define SRAT_MEMORY 1
|
|
256
|
+
|
|
257
|
+
struct srat_processor_affinity
|
|
258
|
+
{
|
|
259
|
+
ACPI_SUB_HEADER_DEF
|
|
260
|
+
u8 proximity_lo;
|
|
261
|
+
u8 local_apic_id;
|
|
262
|
+
u32 flags;
|
|
263
|
+
u8 local_sapic_eid;
|
|
264
|
+
u8 proximity_hi[3];
|
|
265
|
+
u32 reserved;
|
|
266
|
+
} PACKED;
|
|
267
|
+
|
|
268
|
+
struct srat_memory_affinity
|
|
269
|
+
{
|
|
270
|
+
ACPI_SUB_HEADER_DEF
|
|
271
|
+
u8 proximity[4];
|
|
272
|
+
u16 reserved1;
|
|
273
|
+
u64 base_addr;
|
|
274
|
+
u64 range_length;
|
|
275
|
+
u32 reserved2;
|
|
276
|
+
u32 flags;
|
|
277
|
+
u32 reserved3[2];
|
|
278
|
+
} PACKED;
|
|
279
|
+
|
|
280
|
+
/* PCI fw r3.0 MCFG table. */
|
|
281
|
+
/* Subtable */
|
|
282
|
+
struct acpi_mcfg_allocation {
|
|
283
|
+
u64 address; /* Base address, processor-relative */
|
|
284
|
+
u16 pci_segment; /* PCI segment group number */
|
|
285
|
+
u8 start_bus_number; /* Starting PCI Bus number */
|
|
286
|
+
u8 end_bus_number; /* Final PCI Bus number */
|
|
287
|
+
u32 reserved;
|
|
288
|
+
} PACKED;
|
|
289
|
+
|
|
290
|
+
#define MCFG_SIGNATURE 0x4746434d // MCFG
|
|
291
|
+
struct acpi_table_mcfg {
|
|
292
|
+
ACPI_TABLE_HEADER_DEF;
|
|
293
|
+
u8 reserved[8];
|
|
294
|
+
struct acpi_mcfg_allocation allocation[0];
|
|
295
|
+
} PACKED;
|
|
296
|
+
|
|
297
|
+
#define TCPA_SIGNATURE 0x41504354
|
|
298
|
+
struct tcpa_descriptor_rev2
|
|
299
|
+
{
|
|
300
|
+
ACPI_TABLE_HEADER_DEF
|
|
301
|
+
u16 platform_class;
|
|
302
|
+
u32 log_area_minimum_length;
|
|
303
|
+
u64 log_area_start_address;
|
|
304
|
+
} PACKED;
|
|
305
|
+
|
|
306
|
+
/* TCPA ACPI definitions */
|
|
307
|
+
#define TCPA_ACPI_CLASS_CLIENT 0
|
|
308
|
+
#define TCPA_ACPI_CLASS_SERVER 1
|
|
309
|
+
|
|
310
|
+
#define TPM2_SIGNATURE 0x324D5054
|
|
311
|
+
struct tpm2_descriptor_rev2
|
|
312
|
+
{
|
|
313
|
+
ACPI_TABLE_HEADER_DEF
|
|
314
|
+
u16 platform_class;
|
|
315
|
+
u16 reserved;
|
|
316
|
+
u64 address_of_control_area;
|
|
317
|
+
u32 start_method;
|
|
318
|
+
u8 start_method_params[12];
|
|
319
|
+
u32 log_area_minimum_length;
|
|
320
|
+
u64 log_area_start_address;
|
|
321
|
+
} PACKED;
|
|
322
|
+
|
|
323
|
+
#endif // acpi.h
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
// BIOS Data Area (and similar) definitions
|
|
2
|
+
#ifndef __BDA_H
|
|
3
|
+
#define __BDA_H
|
|
4
|
+
|
|
5
|
+
#include "disk.h" // struct fdpt_s
|
|
6
|
+
#include "types.h" // u8
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
/****************************************************************
|
|
10
|
+
* Interrupt vector table
|
|
11
|
+
****************************************************************/
|
|
12
|
+
|
|
13
|
+
struct rmode_IVT {
|
|
14
|
+
struct segoff_s ivec[256];
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/****************************************************************
|
|
19
|
+
* Bios Data Area (BDA)
|
|
20
|
+
****************************************************************/
|
|
21
|
+
|
|
22
|
+
struct bios_data_area_s {
|
|
23
|
+
// 40:00
|
|
24
|
+
u16 port_com[4];
|
|
25
|
+
u16 port_lpt[3];
|
|
26
|
+
u16 ebda_seg;
|
|
27
|
+
// 40:10
|
|
28
|
+
u16 equipment_list_flags;
|
|
29
|
+
u8 pad1;
|
|
30
|
+
u16 mem_size_kb;
|
|
31
|
+
u8 pad2;
|
|
32
|
+
u8 ps2_ctrl_flag;
|
|
33
|
+
u16 kbd_flag0;
|
|
34
|
+
u8 alt_keypad;
|
|
35
|
+
u16 kbd_buf_head;
|
|
36
|
+
u16 kbd_buf_tail;
|
|
37
|
+
// 40:1e
|
|
38
|
+
u8 kbd_buf[32];
|
|
39
|
+
u8 floppy_recalibration_status;
|
|
40
|
+
u8 floppy_motor_status;
|
|
41
|
+
// 40:40
|
|
42
|
+
u8 floppy_motor_counter;
|
|
43
|
+
u8 floppy_last_status;
|
|
44
|
+
u8 floppy_return_status[7];
|
|
45
|
+
u8 video_mode;
|
|
46
|
+
u16 video_cols;
|
|
47
|
+
u16 video_pagesize;
|
|
48
|
+
u16 video_pagestart;
|
|
49
|
+
// 40:50
|
|
50
|
+
u16 cursor_pos[8];
|
|
51
|
+
// 40:60
|
|
52
|
+
u16 cursor_type;
|
|
53
|
+
u8 video_page;
|
|
54
|
+
u16 crtc_address;
|
|
55
|
+
u8 video_msr;
|
|
56
|
+
u8 video_pal;
|
|
57
|
+
struct segoff_s jump;
|
|
58
|
+
u8 other_6b;
|
|
59
|
+
u32 timer_counter;
|
|
60
|
+
// 40:70
|
|
61
|
+
u8 timer_rollover;
|
|
62
|
+
u8 break_flag;
|
|
63
|
+
u16 soft_reset_flag;
|
|
64
|
+
u8 disk_last_status;
|
|
65
|
+
u8 hdcount;
|
|
66
|
+
u8 disk_control_byte;
|
|
67
|
+
u8 port_disk;
|
|
68
|
+
u8 lpt_timeout[4];
|
|
69
|
+
u8 com_timeout[4];
|
|
70
|
+
// 40:80
|
|
71
|
+
u16 kbd_buf_start_offset;
|
|
72
|
+
u16 kbd_buf_end_offset;
|
|
73
|
+
u8 video_rows;
|
|
74
|
+
u16 char_height;
|
|
75
|
+
u8 video_ctl;
|
|
76
|
+
u8 video_switches;
|
|
77
|
+
u8 modeset_ctl;
|
|
78
|
+
u8 dcc_index;
|
|
79
|
+
u8 floppy_last_data_rate;
|
|
80
|
+
u8 disk_status_controller;
|
|
81
|
+
u8 disk_error_controller;
|
|
82
|
+
u8 disk_interrupt_flag;
|
|
83
|
+
u8 floppy_harddisk_info;
|
|
84
|
+
// 40:90
|
|
85
|
+
u8 floppy_media_state[4];
|
|
86
|
+
u8 floppy_track[2];
|
|
87
|
+
u8 kbd_flag1;
|
|
88
|
+
u8 kbd_led;
|
|
89
|
+
struct segoff_s user_wait_complete_flag;
|
|
90
|
+
u32 user_wait_timeout;
|
|
91
|
+
// 40:A0
|
|
92
|
+
u8 rtc_wait_flag;
|
|
93
|
+
u8 other_a1[7];
|
|
94
|
+
struct segoff_s video_savetable;
|
|
95
|
+
u8 other_ac[4];
|
|
96
|
+
// 40:B0
|
|
97
|
+
u8 other_b0[5*16];
|
|
98
|
+
} PACKED;
|
|
99
|
+
|
|
100
|
+
// BDA floppy_recalibration_status bitdefs
|
|
101
|
+
#define FRS_IRQ (1<<7)
|
|
102
|
+
|
|
103
|
+
// BDA rtc_wait_flag bitdefs
|
|
104
|
+
#define RWS_WAIT_PENDING (1<<0)
|
|
105
|
+
#define RWS_WAIT_ELAPSED (1<<7)
|
|
106
|
+
|
|
107
|
+
// BDA floppy_media_state bitdefs
|
|
108
|
+
#define FMS_DRIVE_STATE_MASK (0x07)
|
|
109
|
+
#define FMS_MEDIA_DRIVE_ESTABLISHED (1<<4)
|
|
110
|
+
#define FMS_DOUBLE_STEPPING (1<<5)
|
|
111
|
+
#define FMS_DATA_RATE_MASK (0xc0)
|
|
112
|
+
|
|
113
|
+
// BDA kbd_flag[01] bitdefs
|
|
114
|
+
#define KF0_RSHIFT (1<<0)
|
|
115
|
+
#define KF0_LSHIFT (1<<1)
|
|
116
|
+
#define KF0_CTRLACTIVE (1<<2)
|
|
117
|
+
#define KF0_ALTACTIVE (1<<3)
|
|
118
|
+
#define KF0_SCROLLACTIVE (1<<4)
|
|
119
|
+
#define KF0_NUMACTIVE (1<<5)
|
|
120
|
+
#define KF0_CAPSACTIVE (1<<6)
|
|
121
|
+
#define KF0_LCTRL (1<<8)
|
|
122
|
+
#define KF0_LALT (1<<9)
|
|
123
|
+
#define KF0_PAUSEACTIVE (1<<11)
|
|
124
|
+
#define KF0_SCROLL (1<<12)
|
|
125
|
+
#define KF0_NUM (1<<13)
|
|
126
|
+
#define KF0_CAPS (1<<14)
|
|
127
|
+
|
|
128
|
+
#define KF1_LAST_E1 (1<<0)
|
|
129
|
+
#define KF1_LAST_E0 (1<<1)
|
|
130
|
+
#define KF1_RCTRL (1<<2)
|
|
131
|
+
#define KF1_RALT (1<<3)
|
|
132
|
+
#define KF1_101KBD (1<<4)
|
|
133
|
+
|
|
134
|
+
// Limit of BDA timer_counter field
|
|
135
|
+
#define TICKS_PER_DAY 1573040
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
/****************************************************************
|
|
139
|
+
* Extended Bios Data Area (EBDA)
|
|
140
|
+
****************************************************************/
|
|
141
|
+
|
|
142
|
+
struct extended_bios_data_area_s {
|
|
143
|
+
u8 size;
|
|
144
|
+
u8 reserved1[0x21];
|
|
145
|
+
struct segoff_s far_call_pointer;
|
|
146
|
+
u8 mouse_flag1;
|
|
147
|
+
u8 mouse_flag2;
|
|
148
|
+
u8 mouse_data[0x08];
|
|
149
|
+
// 0x30
|
|
150
|
+
u8 other1[0x0d];
|
|
151
|
+
|
|
152
|
+
// 0x3d
|
|
153
|
+
struct fdpt_s fdpt[2];
|
|
154
|
+
|
|
155
|
+
// 0x5d
|
|
156
|
+
u8 other2[0xC4];
|
|
157
|
+
|
|
158
|
+
// 0x121 - Begin custom storage.
|
|
159
|
+
} PACKED;
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
/****************************************************************
|
|
163
|
+
* Bios Config Table
|
|
164
|
+
****************************************************************/
|
|
165
|
+
|
|
166
|
+
struct bios_config_table_s {
|
|
167
|
+
u16 size;
|
|
168
|
+
u8 model;
|
|
169
|
+
u8 submodel;
|
|
170
|
+
u8 biosrev;
|
|
171
|
+
u8 feature1, feature2, feature3, feature4, feature5;
|
|
172
|
+
} PACKED;
|
|
173
|
+
|
|
174
|
+
#endif // bda.h
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// Standard disk BIOS definitions.
|
|
2
|
+
#ifndef __DISK_H
|
|
3
|
+
#define __DISK_H
|
|
4
|
+
|
|
5
|
+
#include "types.h" // u8
|
|
6
|
+
|
|
7
|
+
#define DISK_RET_SUCCESS 0x00
|
|
8
|
+
#define DISK_RET_EPARAM 0x01
|
|
9
|
+
#define DISK_RET_EADDRNOTFOUND 0x02
|
|
10
|
+
#define DISK_RET_EWRITEPROTECT 0x03
|
|
11
|
+
#define DISK_RET_ECHANGED 0x06
|
|
12
|
+
#define DISK_RET_EBOUNDARY 0x09
|
|
13
|
+
#define DISK_RET_EBADTRACK 0x0c
|
|
14
|
+
#define DISK_RET_ECONTROLLER 0x20
|
|
15
|
+
#define DISK_RET_ETIMEOUT 0x80
|
|
16
|
+
#define DISK_RET_ENOTLOCKED 0xb0
|
|
17
|
+
#define DISK_RET_ELOCKED 0xb1
|
|
18
|
+
#define DISK_RET_ENOTREMOVABLE 0xb2
|
|
19
|
+
#define DISK_RET_ETOOMANYLOCKS 0xb4
|
|
20
|
+
#define DISK_RET_EMEDIA 0xC0
|
|
21
|
+
#define DISK_RET_ENOTREADY 0xAA
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/****************************************************************
|
|
25
|
+
* Interface structs
|
|
26
|
+
****************************************************************/
|
|
27
|
+
|
|
28
|
+
// Bios disk structures.
|
|
29
|
+
struct int13ext_s {
|
|
30
|
+
u8 size;
|
|
31
|
+
u8 reserved;
|
|
32
|
+
u16 count;
|
|
33
|
+
struct segoff_s data;
|
|
34
|
+
u64 lba;
|
|
35
|
+
} PACKED;
|
|
36
|
+
|
|
37
|
+
// DPTE definition
|
|
38
|
+
struct dpte_s {
|
|
39
|
+
u16 iobase1;
|
|
40
|
+
u16 iobase2;
|
|
41
|
+
u8 prefix;
|
|
42
|
+
u8 unused;
|
|
43
|
+
u8 irq;
|
|
44
|
+
u8 blkcount;
|
|
45
|
+
u8 dma;
|
|
46
|
+
u8 pio;
|
|
47
|
+
u16 options;
|
|
48
|
+
u16 reserved;
|
|
49
|
+
u8 revision;
|
|
50
|
+
u8 checksum;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// Disk Physical Table definition
|
|
54
|
+
struct int13dpt_s {
|
|
55
|
+
u16 size;
|
|
56
|
+
u16 infos;
|
|
57
|
+
u32 cylinders;
|
|
58
|
+
u32 heads;
|
|
59
|
+
u32 spt;
|
|
60
|
+
u64 sector_count;
|
|
61
|
+
u16 blksize;
|
|
62
|
+
struct segoff_s dpte;
|
|
63
|
+
u16 key;
|
|
64
|
+
u8 dpi_length;
|
|
65
|
+
u8 reserved1;
|
|
66
|
+
u16 reserved2;
|
|
67
|
+
u8 host_bus[4];
|
|
68
|
+
u8 iface_type[8];
|
|
69
|
+
u64 iface_path;
|
|
70
|
+
union {
|
|
71
|
+
struct {
|
|
72
|
+
u64 device_path;
|
|
73
|
+
u8 reserved3;
|
|
74
|
+
u8 checksum;
|
|
75
|
+
} phoenix;
|
|
76
|
+
struct {
|
|
77
|
+
u64 device_path[2];
|
|
78
|
+
u8 reserved3;
|
|
79
|
+
u8 checksum;
|
|
80
|
+
} t13;
|
|
81
|
+
};
|
|
82
|
+
} PACKED;
|
|
83
|
+
|
|
84
|
+
// Floppy info
|
|
85
|
+
struct fdpt_s {
|
|
86
|
+
u16 cylinders;
|
|
87
|
+
u8 heads;
|
|
88
|
+
u8 a0h_signature;
|
|
89
|
+
u8 phys_sectors;
|
|
90
|
+
u16 precompensation;
|
|
91
|
+
u8 reserved;
|
|
92
|
+
u8 drive_control_byte;
|
|
93
|
+
u16 phys_cylinders;
|
|
94
|
+
u8 phys_heads;
|
|
95
|
+
u16 landing_zone;
|
|
96
|
+
u8 sectors;
|
|
97
|
+
u8 checksum;
|
|
98
|
+
} PACKED;
|
|
99
|
+
|
|
100
|
+
// Floppy "Disk Base Table"
|
|
101
|
+
struct floppy_dbt_s {
|
|
102
|
+
u8 specify1;
|
|
103
|
+
u8 specify2;
|
|
104
|
+
u8 shutoff_ticks;
|
|
105
|
+
u8 bps_code;
|
|
106
|
+
u8 sectors;
|
|
107
|
+
u8 interblock_len;
|
|
108
|
+
u8 data_len;
|
|
109
|
+
u8 gap_len;
|
|
110
|
+
u8 fill_byte;
|
|
111
|
+
u8 settle_time;
|
|
112
|
+
u8 startup_time;
|
|
113
|
+
} PACKED;
|
|
114
|
+
|
|
115
|
+
struct floppy_ext_dbt_s {
|
|
116
|
+
struct floppy_dbt_s dbt;
|
|
117
|
+
// Extra fields
|
|
118
|
+
u8 max_track;
|
|
119
|
+
u8 data_rate;
|
|
120
|
+
u8 drive_type;
|
|
121
|
+
} PACKED;
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
/****************************************************************
|
|
125
|
+
* Master boot record
|
|
126
|
+
****************************************************************/
|
|
127
|
+
|
|
128
|
+
struct packed_chs_s {
|
|
129
|
+
u8 heads;
|
|
130
|
+
u8 sptcyl;
|
|
131
|
+
u8 cyllow;
|
|
132
|
+
} PACKED;
|
|
133
|
+
|
|
134
|
+
struct partition_s {
|
|
135
|
+
u8 status;
|
|
136
|
+
struct packed_chs_s first;
|
|
137
|
+
u8 type;
|
|
138
|
+
struct packed_chs_s last;
|
|
139
|
+
u32 lba;
|
|
140
|
+
u32 count;
|
|
141
|
+
} PACKED;
|
|
142
|
+
|
|
143
|
+
struct mbr_s {
|
|
144
|
+
u8 code[440];
|
|
145
|
+
// 0x01b8
|
|
146
|
+
u32 diskseg;
|
|
147
|
+
// 0x01bc
|
|
148
|
+
u16 null;
|
|
149
|
+
// 0x01be
|
|
150
|
+
struct partition_s partitions[4];
|
|
151
|
+
// 0x01fe
|
|
152
|
+
u16 signature;
|
|
153
|
+
} PACKED;
|
|
154
|
+
|
|
155
|
+
#define MBR_SIGNATURE 0xaa55
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
/****************************************************************
|
|
159
|
+
* ElTorito CDROM interface
|
|
160
|
+
****************************************************************/
|
|
161
|
+
|
|
162
|
+
struct eltorito_s {
|
|
163
|
+
u8 size;
|
|
164
|
+
u8 media;
|
|
165
|
+
u8 emulated_drive;
|
|
166
|
+
u8 controller_index;
|
|
167
|
+
u32 ilba;
|
|
168
|
+
u16 device_spec;
|
|
169
|
+
u16 buffer_segment;
|
|
170
|
+
u16 load_segment;
|
|
171
|
+
u16 sector_count;
|
|
172
|
+
struct packed_chs_s chs;
|
|
173
|
+
} PACKED;
|
|
174
|
+
|
|
175
|
+
#endif // disk.h
|