PCI finger-print utility intended for platform identification.
To get running system PCI full finger-print:
pfp scan
To parse finger-print file and get canonical view of it:
pfp parse < finger-print-file
To match running system to finger-print pattern:
pfp match < finger-print-file
Finger-print file is a line-oriented text file. Note: all hexadecimal digits are lower case.
- The line is a sequence of non-NL symbols terminated by NL.
- The line comment is a line started from an octothorp (#) symbol.
- The argument name is a sequence of lower case Latin letters.
- The space is a sequece of one or more space and/or horizontal tabulation symbols.
- The match pattern is a sequence of non-space symbols.
- The pattern comment is a non-empty sequence of non-parenthesis symbols started from a left parenthesis and enclosed with a right parenthesis.
- The match argument is a line started from an argument name, followed by a space, followed by an equal sign, followed by other space, followed by a match pattern, optionaly followed by pair of space and pattern comment.
- Sequences of non-empty lines groupped to blocks.
- The comment block is a block of line comments.
- The match rule is a block of match arguments.
- The finger-print is a set of match rules.
Slot pattern format:
- The bus prefix is a one or two didit hexadecimal integer number, followed by a semicolon symbol.
- The device is a one or two digit hexadecimal integer number from set [0,1f].
- The function is an octal digit.
- The slot pattern is an optional bus prefix, followed by a device, followed by a dot symbol, followed by a function. If bus prefix is not specified then zero bus assumed.
Class pattern format:
- Class and subclass are two-digit hexadecimal integer numbers.
- The programming interface is a hexadecimal integer number from set [0,ff].
- The class pattern is a sequence from a class, followed by a subclass, optionally followed by pair of dot symbol and programming interface. If programming interface is not specified then any one will be accepted.
Identifier pattern is a four-digit hexadecimal integer number.
Followed arguments are recognized:
- parent: parent device slot.
- slot: device slot.
- class: class, subclass and programming interface.
- vendor: vendor identifier (chip vendor).
- device: device identifier, vendor-specific.
- svendor: subsystem vendor (who are made device from chips).
- sdevice: subsystem device, subsystem vendor specific.