Re: [PATCH] Documentation: PCI: Document decoding of TLP Header in AER messages

Lukas Wunner
2026-03-24T10:09:38Z

On Tue, Mar 24, 2026 at 05:53:30AM +0000, mx2pg@pm.me wrote:
> One thing worth calling out: starting with PCIe 6.0, Flit Mode is
> mandatory at 64.0 GT/s and supported at all PCIe link speeds, so a
> Flit-capable PCIe 6.x link may operate below 64.0 GT/s and still be
> in Flit Mode. The raw TLP Header bytes do not encode the framing —
> the same four bytes decode to entirely different packet types in
> non-Flit vs Flit framing. The negotiated mode can be read from the
> Flit Mode Status bit in Link Status 2, or via lspci -vv on a recent
> pciutils build.

Thanks Maciej for chiming in.

Ilpo (who is cc'ed) amended the kernel last year with commit
7e077e6707b3 ("PCI/ERR: Handle TLP Log in Flit mode") to suffix
the hexdump with " (Flit)" in Flit Mode:

https://git.kernel.org/linus/7e077e6707b3

Any chance you could amend tlp-tool to auto-detect Flit Mode
if the suffix is present?

As an aside: Prior to that, commit f68ea779d98a ("PCI: Add
pcie_print_tlp_log() to print TLP Header and Prefix Log")
changed the log message to prefix each dword with "0x".
But I tested it and it seems that tlp-tool groks both the
old and the new format without any code change:

https://git.kernel.org/linus/f68ea779d98a

But we need to be careful going forward not to break user space
tooling that might rely on the syntax.

Thanks,

Lukas