xref: /freebsd/contrib/file/magic/Magdir/pci_ids (revision a4d6d3b8910f3805eebcd8703e11e066aad2e2a1)
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