1
2#------------------------------------------------------------------------------
3# $File: pci_ids,v 1.1 2022/04/02 14:47:42 christos Exp $
4# pci.ids:  file(1) magic for PCI specific informations
5#
6
7# Vendor identification (ID)            https://pci-ids.ucw.cz/v2.2/pci.ids
8# show hexadecimal PCI vendor identification in human readable text form
90         name      PCI-vendor
10#                             ID        vendor name
11#>0       uleshort  =0x0f00   fOO
12>0        uleshort  =0x1000   Broadcom
13>0        uleshort  =0x1002   AMD/ATI
14>0        uleshort  =0x1013   Cirrus Logic
15>0        uleshort  =0x1014   IBM
16>0        uleshort  =0x1022   AMD
17>0        uleshort  =0x1050   Winbond
18>0        uleshort  =0x105a   Promise
19>0        uleshort  =0x1095   Silicon
20>0        uleshort  =0x10EC   Realtek
21>0        uleshort  =0x10de   NVIDIA
22>0        uleshort  =0x1106   VIA
23# Woodward McCoach, Inc.
24>0        uleshort  =0x1231   Woodward
25#
26>0        uleshort  =0x1234   Bochs
27>0        uleshort  =0x15ad   VMware
28>0        uleshort  =0x1af4   Virtio
29>0        uleshort  =0x1b36   QEMU
30>0        uleshort  =0x1de1   Tekram
31# maybe also Promise?
32#>0       uleshort  =0x4289   Promise
33#>0       uleshort  =0x66a1   FOO
34>0        uleshort  =0x8086   Intel
35>0        uleshort  =0x9004   Adaptec
36# also Adaptec; but no example
37>0        uleshort  =0x9005   Adaptec
38# for unknown/missing manufactors
39>0        default             x         UNKNOWN
40>>0       uleshort            x         (%#4.4x)
41
42# https://blog.ladsai.com/pci-configuration-space-class-code.html
43# Base class code                       https://wiki.osdev.org/PCI
44# show hexadecimal PCI class+sub+ProgIF identification in human readable text form
450         name                PCI-class
46#>0       ubyte               x         CLASS=%x
47>0        ubyte               x
48# Device was built prior definition of the class code field
49>>0       ubyte               0x00      PRIOR
50# Any device except for VGA-Compatible devices like: 2975BIOS.BIN Trm3x5.bin
51# BUT also NVidia44.bin vgabios-stdvga-bin.rom
52#>>>0     ubyte               0x00                NOT VGA
53# VGA-Compatible Device; NO EXAMPLE found here!!
54#>>>0     ubyte               0x01                VGA
55# like 4243.bin
56#>>>0     ubyte               0x04                SUB_CLASS_4
57>>0       ubyte               0x01      storage controller
58# device sub-type and its definition is dependent upon the base-type code
59>>>1      ubyte               0x00                SCSI
60>>>1      ubyte               0x01                IDE
61>>>1      ubyte               0x02                Floppy
62>>>1      ubyte               0x03                IPI
63>>>0      ubyte               0x04                RAID
64>>>1      ubyte               0x05                ATA
65>>>1      ubyte               0x06                SATA
66>>>1      ubyte               0x07                SAS
67>>>1      ubyte               0x08                NVM
68# 4650_sr5.bin "PROMISE" "FT TX4650 Ary X"
69>>>1      ubyte               0x80                OTHER
70>>0       ubyte               0x02      network controller
71>>>1      ubyte               0x00                ethernet
72>>>1      ubyte               0x01                token ring
73>>>1      ubyte               0x02                FDDI
74>>>1      ubyte               0x03                ATM
75>>>1      ubyte               0x04                ISDN
76>>>1      ubyte               0x05                WorldFip
77# PICMG 2.14 Multi Computing
78>>>1      ubyte               0x06                PICMG
79>>>1      ubyte               0x80                OTHER
80>>0       ubyte               0x03      display controller
81>>0       ubyte               0x04      multimedia controller
82>>0       ubyte               0x05      memory controller
83>>0       ubyte               0x06      bridge device
84# Simple Communication Controllers
85>>0       ubyte               0x07      communication controller
86# Base System Peripherals
87>>0       ubyte               0x08      base peripheral
88# Input Devices
89>>0       ubyte               0x09      input device
90# Docking Stations
91>>0       ubyte               0x0A      docking station
92>>0       ubyte               0x0B      processor
93>>0       ubyte               0x0C      serial bus controller
94>>0       ubyte               0x0D      wireless controller
95# Intelligent I/O Controllers
96>>0       ubyte               0x0E      I/O controller
97# Satellite Communication Controllers
98>>0       ubyte               0x0F      satellite controller
99# Encryption/Decryption Controllers
100>>0       ubyte               0x10      encryption controller
101# Data Acquisition and Signal Processing Controllers
102>>0       ubyte               0x11      signal controller
103# Processing Accelerator
104>>0       ubyte               0x12      processing accelerator
105# Non-Essential Instrumentation
106>>0       ubyte               0x13      non-essential
107# reserved or unassigned
108>>0       default             x
109# device does not fit any defined class; Unassigned Class (Vendor specific)
110>>>0                ubyte     0xFF                UNASSIGNED
111# THIS SHOULD NOT HAPPEN! BUT CLASS=8f for Promise 4650_sr5.bin 8660_sr5.bin
112>>>0                default   x                   RESERVED
113>>>>0     ubyte     x                   (%#x)
114# Prog IF of PCI class code?
115# defines the specific device programming interface
116>2        ubyte               >0        \b, ProgIF=%u
117