intel revision 1.1.1.9 1 1.1 christos
2 1.1 christos #------------------------------------------------------------------------------
3 1.1.1.9 christos # $File: intel,v 1.18 2020/04/18 16:19:03 christos Exp $
4 1.1 christos # intel: file(1) magic for x86 Unix
5 1.1 christos #
6 1.1 christos # Various flavors of x86 UNIX executable/object (other than Xenix, which
7 1.1 christos # is in "microsoft"). DOS is in "msdos"; the ambitious soul can do
8 1.1 christos # Windows as well.
9 1.1 christos #
10 1.1 christos # Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
11 1.1 christos # whatever comes next (HP-PA Hummingbird?). OS/2 may also go elsewhere
12 1.1 christos # as well, if, as, and when IBM makes it portable.
13 1.1 christos #
14 1.1 christos # The `versions' should be un-commented if they work for you.
15 1.1 christos # (Was the problem just one of endianness?)
16 1.1 christos #
17 1.1 christos 0 leshort 0502 basic-16 executable
18 1.1 christos >12 lelong >0 not stripped
19 1.1.1.4 christos #>22 leshort >0 - version %d
20 1.1 christos 0 leshort 0503 basic-16 executable (TV)
21 1.1 christos >12 lelong >0 not stripped
22 1.1.1.4 christos #>22 leshort >0 - version %d
23 1.1 christos 0 leshort 0510 x86 executable
24 1.1 christos >12 lelong >0 not stripped
25 1.1 christos 0 leshort 0511 x86 executable (TV)
26 1.1 christos >12 lelong >0 not stripped
27 1.1 christos 0 leshort =0512 iAPX 286 executable small model (COFF)
28 1.1 christos >12 lelong >0 not stripped
29 1.1.1.4 christos #>22 leshort >0 - version %d
30 1.1 christos 0 leshort =0522 iAPX 286 executable large model (COFF)
31 1.1 christos >12 lelong >0 not stripped
32 1.1.1.4 christos #>22 leshort >0 - version %d
33 1.1.1.5 christos # updated by Joerg Jenderek at Oct 2015
34 1.1.1.5 christos # https://de.wikipedia.org/wiki/Common_Object_File_Format
35 1.1.1.5 christos # http://www.delorie.com/djgpp/doc/coff/filhdr.html
36 1.1.1.5 christos # ./msdos (version 5.25) labeled the next entry as "MS Windows COFF Intel 80386 object file"
37 1.1.1.5 christos # ./intel (version 5.25) label labeled the next entry as "80386 COFF executable"
38 1.1 christos # SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
39 1.1.1.6 christos 0 leshort =0514
40 1.1.1.6 christos # use subroutine to display name+flags+variables for common object formated files
41 1.1.1.5 christos >0 use display-coff
42 1.1.1.5 christos #>12 lelong >0 not stripped
43 1.1.1.5 christos # no hint found, that at offset 22 is version
44 1.1.1.5 christos #>22 leshort >0 - version %d
45 1.1.1.8 christos 0 leshort 0x0200
46 1.1.1.8 christos >0 use display-coff
47 1.1.1.8 christos 0 leshort 0x8664
48 1.1.1.8 christos >0 use display-coff
49 1.1 christos
50 1.1 christos # rom: file(1) magic for BIOS ROM Extensions found in intel machines
51 1.1 christos # mapped into memory between 0xC0000 and 0xFFFFF
52 1.1.1.7 christos # From: Alex Myczko <alex (a] aiei.ch>
53 1.1.1.5 christos # updated by Joerg Jenderek
54 1.1.1.5 christos # https://en.wikipedia.org/wiki/Option_ROM
55 1.1 christos 0 beshort 0x55AA BIOS (ia32) ROM Ext.
56 1.1.1.5 christos !:mime application/octet-stream
57 1.1.1.5 christos !:ext rom/bin
58 1.1 christos >5 string USB USB
59 1.1 christos >7 string LDR UNDI image
60 1.1 christos >30 string IBM IBM comp. Video
61 1.1 christos >26 string Adaptec Adaptec
62 1.1 christos >28 string Adaptec Adaptec
63 1.1 christos >42 string PROMISE Promise
64 1.1 christos >2 byte x (%d*512)
65 1.1.1.2 christos
66 1.1.1.2 christos # Flash descriptors for Intel SPI flash roms.
67 1.1.1.2 christos # From Dr. Jesus <j (a] hug.gs>
68 1.1.1.2 christos 0 lelong 0x0ff0a55a Intel serial flash for ICH/PCH ROM <= 5 or 3400 series A-step
69 1.1.1.2 christos 16 lelong 0x0ff0a55a Intel serial flash for PCH ROM
70 1.1.1.9 christos
71 1.1.1.9 christos # From: Joerg Jenderek
72 1.1.1.9 christos # URL: https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface
73 1.1.1.9 christos # Reference: https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf
74 1.1.1.9 christos # Note: generated for example by `cat /sys/firmware/acpi/tables/DSDT MyDSDT.aml`
75 1.1.1.9 christos 0 string DSDT
76 1.1.1.9 christos >0 use acpi-table
77 1.1.1.9 christos # not tested or other file format
78 1.1.1.9 christos 0 string APIC
79 1.1.1.9 christos >0 use acpi-table
80 1.1.1.9 christos #0 string ASF!
81 1.1.1.9 christos #>0 use acpi-table
82 1.1.1.9 christos 0 string FACP
83 1.1.1.9 christos >0 use acpi-table
84 1.1.1.9 christos #0 string FACS
85 1.1.1.9 christos #>0 use acpi-table
86 1.1.1.9 christos 0 string MCFG
87 1.1.1.9 christos >0 use acpi-table
88 1.1.1.9 christos 0 string SLIC
89 1.1.1.9 christos >0 use acpi-table
90 1.1.1.9 christos 0 string SSDT
91 1.1.1.9 christos >0 use acpi-table
92 1.1.1.9 christos 0 name acpi-table
93 1.1.1.9 christos # skip ASCII text starting with DSDT by looking for valid "low" revision
94 1.1.1.9 christos >8 ubyte <17 ACPI Machine Language file
95 1.1.1.9 christos # assume that ACPI tables size are lower than 16 MiB
96 1.1.1.9 christos #>4 ulelong <0x01000000
97 1.1.1.9 christos # DSDT for Differentiated System Description Table
98 1.1.1.9 christos >>0 string x '%.4s'
99 1.1.1.9 christos #!:mime application/octet-stream
100 1.1.1.9 christos !:mime application/x-intel-aml
101 1.1.1.9 christos !:ext aml
102 1.1.1.9 christos # the manufacture model ID like: VBOXBIOS BXDSDT
103 1.1.1.9 christos >>16 string >\0 %.8s
104 1.1.1.9 christos # OEM revision of DSDT for supplied OEM Table ID like: 0 1 2 20090511
105 1.1.1.9 christos >>>24 ulelong x %x
106 1.1.1.9 christos # OEM ID like: INTEL VBOX (VirtualBox) BXDSDT (qemu) MEDION or \030\001\0\0 for s3pt.aml
107 1.1.1.9 christos >>10 ubyte >040 by %c
108 1.1.1.9 christos >>>11 ubyte >040 \b%c
109 1.1.1.9 christos >>>>12 ubyte >040 \b%c
110 1.1.1.9 christos >>>>>13 ubyte >040 \b%c
111 1.1.1.9 christos >>>>>>14 ubyte >040 \b%c
112 1.1.1.9 christos >>>>>>>15 ubyte >040 \b%c
113 1.1.1.9 christos # This field also sets the global integer width for the AML interpreter.
114 1.1.1.9 christos # Values less than two will cause the interpreter to use 32-bit.
115 1.1.1.9 christos # Values of two and greater will cause the interpreter to use full 64-bit.
116 1.1.1.9 christos # 16 for asf!.aml, 67 fo rsdp.aml
117 1.1.1.9 christos >>8 ubyte x \b, revision %u
118 1.1.1.9 christos # length, in bytes, of the entire DSDT (including the header)
119 1.1.1.9 christos >>4 ulelong x \b, %u bytes
120 1.1.1.9 christos # entire table must sum to zero
121 1.1.1.9 christos #>>9 ubyte x \b, checksum 0x%x
122 1.1.1.9 christos # vendor ID for the ASL Compiler like: INTL MSFT ...
123 1.1.1.9 christos >>28 string >\0 \b, created by %.4s
124 1.1.1.9 christos # revision number of the ASL Compiler like: 20051117 20140724 20190703 20200110 ...
125 1.1.1.9 christos >>>32 ulelong x %x
126 1.1.1.9 christos
127