1b6cee71dSXin LI 2b6cee71dSXin LI#------------------------------------------------------------------------------ 3*898496eeSXin LI# $File: intel,v 1.23 2022/10/31 13:22:26 christos Exp $ 4b6cee71dSXin LI# intel: file(1) magic for x86 Unix 5b6cee71dSXin LI# 6b6cee71dSXin LI# Various flavors of x86 UNIX executable/object (other than Xenix, which 7b6cee71dSXin LI# is in "microsoft"). DOS is in "msdos"; the ambitious soul can do 8b6cee71dSXin LI# Windows as well. 9b6cee71dSXin LI# 10b6cee71dSXin LI# Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and 11b6cee71dSXin LI# whatever comes next (HP-PA Hummingbird?). OS/2 may also go elsewhere 12b6cee71dSXin LI# as well, if, as, and when IBM makes it portable. 13b6cee71dSXin LI# 14b6cee71dSXin LI# The `versions' should be un-commented if they work for you. 15b6cee71dSXin LI# (Was the problem just one of endianness?) 16b6cee71dSXin LI# 17b6cee71dSXin LI0 leshort 0502 basic-16 executable 18b6cee71dSXin LI>12 lelong >0 not stripped 19b6cee71dSXin LI#>22 leshort >0 - version %d 20b6cee71dSXin LI0 leshort 0503 basic-16 executable (TV) 21b6cee71dSXin LI>12 lelong >0 not stripped 22b6cee71dSXin LI#>22 leshort >0 - version %d 23b6cee71dSXin LI0 leshort 0510 x86 executable 24b6cee71dSXin LI>12 lelong >0 not stripped 25b6cee71dSXin LI0 leshort 0511 x86 executable (TV) 26b6cee71dSXin LI>12 lelong >0 not stripped 27b6cee71dSXin LI0 leshort =0512 iAPX 286 executable small model (COFF) 28b6cee71dSXin LI>12 lelong >0 not stripped 29b6cee71dSXin LI#>22 leshort >0 - version %d 30b6cee71dSXin LI0 leshort =0522 iAPX 286 executable large model (COFF) 31b6cee71dSXin LI>12 lelong >0 not stripped 32b6cee71dSXin LI#>22 leshort >0 - version %d 333e41d09dSXin LI# updated by Joerg Jenderek at Oct 2015 343e41d09dSXin LI# https://de.wikipedia.org/wiki/Common_Object_File_Format 353e41d09dSXin LI# http://www.delorie.com/djgpp/doc/coff/filhdr.html 363e41d09dSXin LI# ./msdos (version 5.25) labeled the next entry as "MS Windows COFF Intel 80386 object file" 373e41d09dSXin LI# ./intel (version 5.25) label labeled the next entry as "80386 COFF executable" 38b6cee71dSXin LI# SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan 393e41d09dSXin LI0 leshort =0514 4043a5ec4eSXin LI# use subroutine to display name+flags+variables for common object formatted files 413e41d09dSXin LI>0 use display-coff 423e41d09dSXin LI#>12 lelong >0 not stripped 433e41d09dSXin LI# no hint found, that at offset 22 is version 443e41d09dSXin LI#>22 leshort >0 - version %d 4548c779cdSXin LI0 leshort 0x0200 46a4d6d3b8SXin LI# no F_EXEC flag bit implies Intel ia64 COFF object file without optional header 47a4d6d3b8SXin LI>18 leshort ^0x0002 48a4d6d3b8SXin LI# skip some DEGAS high-res uncompressed bitmap *.pi3 handled by ./images like 49a4d6d3b8SXin LI# GEMINI03.PI3 MODEM2.PI3 POWERFIX.PI3 sigirl1.pi3 vanna5.pi3 50a4d6d3b8SXin LI# by test for valid starting character (often point 0x2E) of 1st section name 51a4d6d3b8SXin LI>>20 ubyte >0x1F 52a4d6d3b8SXin LI>>>0 use display-coff 53a4d6d3b8SXin LI# F_EXEC flag bit implies Intel ia64 COFF executable 54a4d6d3b8SXin LI>18 leshort &0x0002 55a4d6d3b8SXin LI>>0 use display-coff 5648c779cdSXin LI0 leshort 0x8664 5748c779cdSXin LI>0 use display-coff 58b6cee71dSXin LI 59b6cee71dSXin LI# rom: file(1) magic for BIOS ROM Extensions found in intel machines 60b6cee71dSXin LI# mapped into memory between 0xC0000 and 0xFFFFF 6158a0f0d0SEitan Adler# From: Alex Myczko <alex@aiei.ch> 623e41d09dSXin LI# updated by Joerg Jenderek 633e41d09dSXin LI# https://en.wikipedia.org/wiki/Option_ROM 64a4d6d3b8SXin LI# URL: http://fileformats.archiveteam.org/wiki/BIOS 65a4d6d3b8SXin LI# Reference: http://www.lejabeach.com/sisubb/BIOS_Disassembly_Ninjutsu_Uncovered.pdf 66a4d6d3b8SXin LI0 beshort 0x55AA 67a4d6d3b8SXin LI# skip misidentified raspberry pi pieeprom-*.bin by check for 68a4d6d3b8SXin LI# unlikely high ROM size (0xF0*512=240*512) and not observed start instruction 0x0F 69a4d6d3b8SXin LI>2 ubeshort !0xF00F 70a4d6d3b8SXin LI# skip 2 byte sized eof.bin with start magic 71a4d6d3b8SXin LI>>0 use rom-x86 72a4d6d3b8SXin LI0 name rom-x86 73a4d6d3b8SXin LI>0 beshort x BIOS (ia32) ROM Ext. 74a4d6d3b8SXin LI#!:mime application/octet-stream 75a4d6d3b8SXin LI!:mime application/x-ibm-rom 763e41d09dSXin LI!:ext rom/bin 77a4d6d3b8SXin LI################################################################################ 78a4d6d3b8SXin LI# not Plug aNd Play ($PnP) like 00000000 (ide_xtp.bin kvmvapic.bin V7VGA.ROM) 000000fc (MCT-VGA.bin) 79a4d6d3b8SXin LI# 55aaf00f (pieeprom-*.bin) 55aa40e9 (Trm3x5.bin) 24506f4f (sgabios-bin.rom) 80a4d6d3b8SXin LI# 55aa4be9 (vgabios-stdvga.rom vgabios-cirrus-bin.rom vgabios-vmware-bin.rom) 81a4d6d3b8SXin LI>(26.s) ubelong !0x24506e50 82a4d6d3b8SXin LI#>(26.s) ubelong !0x24506e50 NOT PNP=%8.8x 83a4d6d3b8SXin LI# also not PCI (PCIR) implies "old" ISA cards or foo like: 8a168404 (MCT-VGA.bin) 84a4d6d3b8SXin LI# 55aaf00f (pieeprom*.bin) 85a4d6d3b8SXin LI>>(24.s) ubelong !0x50434952 86a4d6d3b8SXin LI#>>(24.s) ubelong !0x50434952 ISA CARD=%8.8x 87a4d6d3b8SXin LI# "old" identification strings used in file version 5.41 and earlier 88a4d6d3b8SXin LI# probably an USB controller 89a4d6d3b8SXin LI>>>5 string USB USB 90a4d6d3b8SXin LI# probably https://en.wikipedia.org/wiki/Preboot_Execution_Environment 91a4d6d3b8SXin LI>>>7 string LDR UNDI image 92a4d6d3b8SXin LI# probably another Adaptec SCSI controller 93a4d6d3b8SXin LI>>>26 string Adaptec Adaptec 94a4d6d3b8SXin LI# http://minuszerodegrees.net/rom/bin/adaptec_aha1542cp_bios_908501-00.bin 95a4d6d3b8SXin LI# already done by PNP variant 96a4d6d3b8SXin LI#>>>28 string Adaptec Adaptec 97a4d6d3b8SXin LI# probably Promise SCSI controller 98a4d6d3b8SXin LI>>>42 string PROMISE Promise 99a4d6d3b8SXin LI# old test for IBM compatible Video cards; INTERNAL FACTS WHY IS THIS WORKING? 100b6cee71dSXin LI>30 string IBM IBM comp. Video 101a4d6d3b8SXin LI# display exact text for IBM compatible Video cards with longer text 102a4d6d3b8SXin LI>>33 ubyte !0 103a4d6d3b8SXin LI>>>30 string x "%s" 104a4d6d3b8SXin LI# http://minuszerodegrees.net/rom/bin/unknown/MCT-VGA-16%20-%20TDVGA%203588%20BIOS%20Version%20V1.04A.zip 105a4d6d3b8SXin LI# "IBM COMPATIBLETDVGA 3588 BIOS Version V1.04A2+" "MCT-VGA-16 - TDVGA 3588 BIOS Version V1.04A.bin" 106a4d6d3b8SXin LI# "IBM VGA Compatible\001" NVidia44.bin 107a4d6d3b8SXin LI# "IBM EGA ROM Video Seven BIOS Code, Version 1.04" V7VGA.ROM 108a4d6d3b8SXin LI# "IBM" vgabios-stdvga.rom 109a4d6d3b8SXin LI# "IBM" vgabios-vmware-bin.rom: 110a4d6d3b8SXin LI# "IBM" vgabios-cirrus-bin.rom 111a4d6d3b8SXin LI# "IBM" vgabios-virtio-bin.rom 112a4d6d3b8SXin LI################################################################################ 113a4d6d3b8SXin LI# ROM size in 512B blocks must be interpreted as unsigned for ROM of network cards 114a4d6d3b8SXin LI# like: efi-eepro100.rom efi-rtl8139.rom pxe-e1000.rom 115a4d6d3b8SXin LI>2 ubyte x (%u*512) 116a4d6d3b8SXin LI# file name file size calculated size remark 117a4d6d3b8SXin LI# eof.bin 2 - with start magic nothing is shown here 118a4d6d3b8SXin LI# orchid.bin 188 0 =0*512 on window 95 CD in Drivers\audio\orchid3d 119a4d6d3b8SXin LI# multiboot.bin 1024 1024 =2*512 QEMU emulator 120a4d6d3b8SXin LI# loader1.bin 512 2048 =4*512 121a4d6d3b8SXin LI# ide_xtp.bin 8192 8192 =16*512 122a4d6d3b8SXin LI# kvmvapic.bin 9216 9216 =18*512 123a4d6d3b8SXin LI# V7VGA.ROM 18832 16384 =32*512 124a4d6d3b8SXin LI# adaptec1542.bin 32768 16384 =32*512 125a4d6d3b8SXin LI# MCT-VGA.bin 32768 24576 =48*512 126a4d6d3b8SXin LI# 2975BIOS.BIN 32768 32256 =63*512 127a4d6d3b8SXin LI# efi-e1000.rom 196608 64000 =125*512 128a4d6d3b8SXin LI# efi-rtl8139.rom 176640 66048 =129*512 129a4d6d3b8SXin LI# pieeprom*.bin 524288 122880 =240*512 130a4d6d3b8SXin LI################################################################################ 131a4d6d3b8SXin LI# initialization vector with executable code; often near JuMP instruction E9 yy zz 132a4d6d3b8SXin LI>3 ubyte =0xE9 jmp 133a4d6d3b8SXin LI# jmp offset like: 008fh 0093h 009fh 00afh 0143h 3ad7h 5417h 54ech 594dh 895fh 134a4d6d3b8SXin LI>>4 uleshort x %#4.4x 135a4d6d3b8SXin LI# for initialization vector samples without 3 byte jump instruction 136a4d6d3b8SXin LI>3 ubyte !0xE9 instruction 137a4d6d3b8SXin LI# eb4b3734h NVidia44.bin 138a4d6d3b8SXin LI# 00003234h V7VGA.ROM 139a4d6d3b8SXin LI# 060e0731h kvmvapic.bin 140a4d6d3b8SXin LI# cb000000h linuxboot-bin.rom 141a4d6d3b8SXin LI# e80d0fcbh PXE-Intel.rom 142a4d6d3b8SXin LI# b8004875h orchid.bin 143a4d6d3b8SXin LI>>3 ubelong x %#8.8x 144*898496eeSXin LI# For misidentified raspberry pi pieeprom-*.bin like: 0xf00f 145a4d6d3b8SXin LI#>2 ubeshort x \b, AT 2 %#4.4x 146a4d6d3b8SXin LI################################################################################ 147a4d6d3b8SXin LI# new sections for BIOS (ia32) ROM Extension 148a4d6d3b8SXin LI# 4 bytes ASCII Signature "$PnP" for Plug aNd Play expansion header 149a4d6d3b8SXin LI>(26.s) string =$PnP \b; 150a4d6d3b8SXin LI#>(26.s) string =$PnP FOUND $PnP 151a4d6d3b8SXin LI# at 1Ah possible offset to expansion header structure; new for Plug aNd Play 152a4d6d3b8SXin LI>>26 uleshort x at %#x PNP 153a4d6d3b8SXin LI# Plug and Play vendor+device ID like: 0 0x000f1000 (2975BIOS.BIN) 0x31121095 (4243.bin) 0x04904215 (adaptec1542.bin) 154a4d6d3b8SXin LI#>>(26.s+0x0A) ulelong !0 NOT-nullID=%8.8x 155a4d6d3b8SXin LI>>(26.s+0x0A) uleshort !0 156a4d6d3b8SXin LI# show PnP Vendor identification in human readable text form instead of numeric 157a4d6d3b8SXin LI# For adaptec_ava1515_bios_585201-00.bin reverted endian! BUT IS THIS ALWAYS TRUE? 158a4d6d3b8SXin LI>>>(26.s+0x0C) use \^PCI-vendor 159a4d6d3b8SXin LI>>>(26.s+0x0A) ubeshort x device=%#4.4x 160a4d6d3b8SXin LI# 3 byte Device type code; probably the same meaning as in PCI section? 161a4d6d3b8SXin LI# OK for storage controller SCSI (2975BIOS.BIN adaptec1542.bin) 162a4d6d3b8SXin LI# and network controller ethernet (efi-e1000.rom efi-rtl8139.rom) 163a4d6d3b8SXin LI>>(26.s+0x12) use PCI-class 164a4d6d3b8SXin LI# structure revision like: 01h 165a4d6d3b8SXin LI>>(26.s+4) ubyte !1 \b, revision %u 166a4d6d3b8SXin LI# PnP Header structure length in multiple of 16 bytes like: 2 167a4d6d3b8SXin LI>>(26.s+5) uleshort !2 \b, length %u*16 168a4d6d3b8SXin LI# offset to next header; 0 if none 169a4d6d3b8SXin LI>>(26.s+7) uleshort !0 \b, at %#x next header 170a4d6d3b8SXin LI# reserved byte; seems to be zero 171a4d6d3b8SXin LI>>(26.s+8) ubyte !0 \b, reserved %#x 172a4d6d3b8SXin LI# 8-bit checksum for this header; calculated and patched by patch2pnprom 173a4d6d3b8SXin LI>>(26.s+9) ubyte !0 \b, CRC %#x 174a4d6d3b8SXin LI# pointer to optional manufacturer string; like: 0 (4243.bin) 59h 5ch 60h c7h 14eh 27ch 296h 324h 3662h 175a4d6d3b8SXin LI>>(26.s+0x0E) uleshort >0 \b, at %#x 176a4d6d3b8SXin LI>>>(26.s+0x0C) uleshort x 177a4d6d3b8SXin LI# manufacturer ASCII-Z string like "http://ipxe.org" "Plop - Elmar Hanlhofer www.plop.at" "QEMU" 178a4d6d3b8SXin LI>>>>(&0.s) string x "%s" 179a4d6d3b8SXin LI# pointer to optional product string; like: 0 (2975BIOS.BIN) 6ch 70h 7ch d9h 160h 281h 29bh 329h 180a4d6d3b8SXin LI>>(26.s+0x10) uleshort >0 \b, at %#x 181a4d6d3b8SXin LI>>>(26.s+0x0E) uleshort x 182a4d6d3b8SXin LI# often human readable product ASCII-Z string like "iPXE" "Plop Boot Manager" 183a4d6d3b8SXin LI# "multiboot loader" "Intel UNDI, PXE-2.0 (build 082)" 184a4d6d3b8SXin LI>>>>(&0.s) string x "%s" 185a4d6d3b8SXin LI# PnP Device indicators; contains bits that identify the device as being capable of bootable 186a4d6d3b8SXin LI#>>(26.s+0x15) ubyte x \b, INDICATORS %#x 187a4d6d3b8SXin LI# device is a display device 188a4d6d3b8SXin LI>>(26.s+0x15) ubyte &0x01 \b, display 189a4d6d3b8SXin LI# device is an input device 190a4d6d3b8SXin LI>>(26.s+0x15) ubyte &0x02 \b, input 191a4d6d3b8SXin LI# device is an IPL device 192a4d6d3b8SXin LI>>(26.s+0x15) ubyte &0x04 \b, IPL 193a4d6d3b8SXin LI#>>(26.s+0x15) ubyte &0x08 reserved 194a4d6d3b8SXin LI# ROM is only required if this device is selected as a boot device 195a4d6d3b8SXin LI>>(26.s+0x15) ubyte &0x10 \b, bootable 196a4d6d3b8SXin LI# indicates ROM is read cacheable 197a4d6d3b8SXin LI>>(26.s+0x15) ubyte &0x20 \b, cacheable 198a4d6d3b8SXin LI# ROM may be shadowed in RAM 199a4d6d3b8SXin LI>>(26.s+0x15) ubyte &0x40 \b, shadowable 200a4d6d3b8SXin LI# ROM supports the device driver initialization model 201a4d6d3b8SXin LI>>(26.s+0x15) ubyte &0x80 \b, InitialModel 202a4d6d3b8SXin LI# boot connection vector; an offset to a routine that hook into INT 9h, INT 10h, or INT 13h 203a4d6d3b8SXin LI# 0 means disabled 0x0429 (4650_sr5.bin) 0x0072 (adaptec1542.bin) 204a4d6d3b8SXin LI>>(26.s+0x16) uleshort !0 \b, boot vector offset %#x 205a4d6d3b8SXin LI# disconnect vector; offset to routine that do cleanup from an unsuccessful boot attempt 206a4d6d3b8SXin LI>>(26.s+0x18) uleshort !0 \b, disconnect offset %#x 207a4d6d3b8SXin LI# bootstrap entry point/vector (BEV); offset to a routine (like RPL) that hook into INT 19h 208a4d6d3b8SXin LI# 0 means disabled 0x3c (multiboot.bin) 0x358 (efi-rtl8139.rom) 0xae7 (PXE-Intel.rom) 209a4d6d3b8SXin LI>>(26.s+0x1A) uleshort !0 \b, bootstrap offset %#x 210a4d6d3b8SXin LI# 2nd reserved area; seems to be zero 211a4d6d3b8SXin LI>>(26.s+0x1C) uleshort !0 \b, 2nd reserved %#x 212a4d6d3b8SXin LI# static resource information vector; 0 means disabled 213a4d6d3b8SXin LI>>(26.s+0x1E) uleshort !0 \b, static offset %#4.4x 214a4d6d3b8SXin LI################################################################################ 215a4d6d3b8SXin LI# 4 bytes ASCII Signature "PCIR" for PCI Data Structure 216a4d6d3b8SXin LI#>(24.s) string =PCIR FOUND PCIR 217a4d6d3b8SXin LI>(24.s) string =PCIR \b; 218a4d6d3b8SXin LI# pointer to PCI data structure like: 1Ch 38h 104h 8E44h 219a4d6d3b8SXin LI>>24 uleshort x at %#x PCI 220a4d6d3b8SXin LI# Vendor identification (ID) https://pci-ids.ucw.cz/v2.2/pci.ids 221a4d6d3b8SXin LI#>>(24.s+4) uleshort x ID=%4.4x 222a4d6d3b8SXin LI# show Vendor identification in human readable text form instead of numeric 223a4d6d3b8SXin LI>>(24.s+4) use PCI-vendor 224a4d6d3b8SXin LI# device identification (ID) 225a4d6d3b8SXin LI>>(24.s+6) uleshort x device=%#4.4x 226a4d6d3b8SXin LI# Base+sub class code https://wiki.osdev.org/PCI 227a4d6d3b8SXin LI>>(24.s+0x0D) use PCI-class 228a4d6d3b8SXin LI# pointer to vital product data (VPD); 0 indicates no VPD; WHAT EXACTLY iS VPD? 229a4d6d3b8SXin LI>>(24.s+8) uleshort !0 \b, at %#x VPD 230a4d6d3b8SXin LI# PCI data structure length like: 24h 28h 231a4d6d3b8SXin LI>>(24.s+0xA) uleshort >0x28 \b, length %u 232a4d6d3b8SXin LI# PCI data structure revision like: 0 3 233*898496eeSXin LI>>(24.s+0xC) ubyte >0 \b, revision %u 234a4d6d3b8SXin LI# image length (hexadecimal) in multiple of 512 bytes like: 54 56 68 6a 76 78 7c 7d 7e 7f 80 81 83 235a4d6d3b8SXin LI# Apparently this gives the same information as given by byte at offset 2 but as 16-bit 236a4d6d3b8SXin LI#>>(24.s+0x10) uleshort x \b, length %u*512 237a4d6d3b8SXin LI# revision level of code/data like: 0 1 201h 502h 238*898496eeSXin LI>>(24.s+0xC) ubyte >1 \b, code revision %#x 239a4d6d3b8SXin LI# code type: 0~Intel x86/PC-AT compatible 1~Open firmware standard for PCI42 FF~Reserved 240a4d6d3b8SXin LI>>(24.s+0x14) ubyte >0 \b, code type %#x 241a4d6d3b8SXin LI# last image indicator; bit 7 indicates "last image"; bits 0-6 are reserved 242a4d6d3b8SXin LI>>(24.s+0x15) ubyte >0 243a4d6d3b8SXin LI>>>(24.s+0x15) ubyte =0x80 \b, last ROM 244a4d6d3b8SXin LI# THIS SHOULD NOT HAPPEN! 245a4d6d3b8SXin LI>>>(24.s+0x15) ubyte !0x80 \b, indicator %x 246a4d6d3b8SXin LI# 3rd reserved area; seems to be zero in most cases but not for 247a4d6d3b8SXin LI# efi-e1000.rom efi-rtl8139.rom 248a4d6d3b8SXin LI>>(24.s+0x16) ubeshort !0 \b, 3rd reserved %#x 249b6cee71dSXin LI 250b6cee71dSXin LI# Flash descriptors for Intel SPI flash roms. 251b6cee71dSXin LI# From Dr. Jesus <j@hug.gs> 252b6cee71dSXin LI0 lelong 0x0ff0a55a Intel serial flash for ICH/PCH ROM <= 5 or 3400 series A-step 253b6cee71dSXin LI16 lelong 0x0ff0a55a Intel serial flash for PCH ROM 2542726a701SXin LI 2552726a701SXin LI# From: Joerg Jenderek 2562726a701SXin LI# URL: https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface 2572726a701SXin LI# Reference: https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf 2582726a701SXin LI# Note: generated for example by `cat /sys/firmware/acpi/tables/DSDT MyDSDT.aml` 2592726a701SXin LI0 string DSDT 2602726a701SXin LI>0 use acpi-table 2612726a701SXin LI# not tested or other file format 2622726a701SXin LI0 string APIC 2632726a701SXin LI>0 use acpi-table 2642726a701SXin LI#0 string ASF! 2652726a701SXin LI#>0 use acpi-table 2662726a701SXin LI0 string FACP 2672726a701SXin LI>0 use acpi-table 2682726a701SXin LI#0 string FACS 2692726a701SXin LI#>0 use acpi-table 2702726a701SXin LI0 string MCFG 2712726a701SXin LI>0 use acpi-table 2722726a701SXin LI0 string SLIC 2732726a701SXin LI>0 use acpi-table 2742726a701SXin LI0 string SSDT 2752726a701SXin LI>0 use acpi-table 2762726a701SXin LI0 name acpi-table 2772726a701SXin LI# skip ASCII text starting with DSDT by looking for valid "low" revision 2782726a701SXin LI>8 ubyte <17 ACPI Machine Language file 2792726a701SXin LI# assume that ACPI tables size are lower than 16 MiB 2802726a701SXin LI#>4 ulelong <0x01000000 2812726a701SXin LI# DSDT for Differentiated System Description Table 2822726a701SXin LI>>0 string x '%.4s' 2832726a701SXin LI#!:mime application/octet-stream 2842726a701SXin LI!:mime application/x-intel-aml 2852726a701SXin LI!:ext aml 2862726a701SXin LI# the manufacture model ID like: VBOXBIOS BXDSDT 2872726a701SXin LI>>16 string >\0 %.8s 2882726a701SXin LI# OEM revision of DSDT for supplied OEM Table ID like: 0 1 2 20090511 2892726a701SXin LI>>>24 ulelong x %x 2902726a701SXin LI# OEM ID like: INTEL VBOX (VirtualBox) BXDSDT (qemu) MEDION or \030\001\0\0 for s3pt.aml 2912726a701SXin LI>>10 ubyte >040 by %c 2922726a701SXin LI>>>11 ubyte >040 \b%c 2932726a701SXin LI>>>>12 ubyte >040 \b%c 2942726a701SXin LI>>>>>13 ubyte >040 \b%c 2952726a701SXin LI>>>>>>14 ubyte >040 \b%c 2962726a701SXin LI>>>>>>>15 ubyte >040 \b%c 2972726a701SXin LI# This field also sets the global integer width for the AML interpreter. 2982726a701SXin LI# Values less than two will cause the interpreter to use 32-bit. 2992726a701SXin LI# Values of two and greater will cause the interpreter to use full 64-bit. 3002726a701SXin LI# 16 for asf!.aml, 67 fo rsdp.aml 3012726a701SXin LI>>8 ubyte x \b, revision %u 3022726a701SXin LI# length, in bytes, of the entire DSDT (including the header) 3032726a701SXin LI>>4 ulelong x \b, %u bytes 3042726a701SXin LI# entire table must sum to zero 30543a5ec4eSXin LI#>>9 ubyte x \b, checksum %#x 3062726a701SXin LI# vendor ID for the ASL Compiler like: INTL MSFT ... 3072726a701SXin LI>>28 string >\0 \b, created by %.4s 3082726a701SXin LI# revision number of the ASL Compiler like: 20051117 20140724 20190703 20200110 ... 3092726a701SXin LI>>>32 ulelong x %x 3102726a701SXin LI 311