TPM(4)

πŸ“¦
version 15.1 Β· 3 versions
, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

🌸 TPM(4) β€” the tpm manual, bestie edition 🌸

okay so real talk: TPM(4) is the page for tpm, the Trusted Platform Module driver, and it's honestly iconic. it stores cryptographic keys for you. main character energy fr fr. let's get into it πŸ’…


✨ NAME ✨

tpm β€” short for Trusted Platform Module, aka the little crypto vault on your board πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

so if you wanna bake this driver into the kernel, you drop these lines into your kernel configuration file:

device tpm

or, alternatively β€” and this is the lowkey easier route β€” load it as a module at boot time by putting this line in loader.conf(5):

tpm_load="YES"

and then in /boot/device.hints you're gonna want:

hint.tpm.0.at="isa"
hint.tpm.0.maddr="0xfed40000"
hint.tpm.0.msize="0x5000"
hint.tpm.1.at="isa"
hint.tpm.1.maddr="0xfed40000"
hint.tpm.1.msize="0x1000"

like yes, that's the whole vibe check right there πŸ’–


πŸ’œ DESCRIPTION πŸ’œ

the tpm driver provides support for various trusted platform modules (TPM) β€” the ones that can store cryptographic keys. that's it, that's the pitch. keys. stored. securely. slay ✨

supported modules (the whole roster, no gatekeeping):

  • Atmel 97SC3203
  • Broadcom BCM0102
  • Infineon IFX SLD 9630 TT 1.1 and IFX SLB 9635 TT 1.2
  • Intel INTC0102
  • Sinosun SNS SSX35
  • STM ST19WP18
  • Winbond WEC WPCT200

if yours is on that list, congrats, you ate πŸ“

now, the driver can also be configured to use an IRQ β€” you just gotta provide a free ISA interrupt vector in /boot/device.hints. that's the whole deal, ngl. no cap. πŸ”₯

🫢 note bestie: that IRQ thing is a config thing you do on purpose in /boot/device.hints, it's not automatic, so don't be surprised when nothing happens unless you set it up.

🌈 SEE ALSO 🌈

the homepage of the BSSSD project, which developed the original tpm driver: http://bsssd.sourceforge.net/ β€” go show them some love, they literally started this πŸ’–

and the TPM main specification can be found at: https://trustedcomputinggroup.org/resource/tpm-main-specification/ β€” for when you want the real real πŸ‘‘


πŸ‘‘ STANDARDS πŸ‘‘

this is all under TPM Main Specification Level 2 Version 1.2, and here's the receipt trail:

  1. ISO/IEC, 11889-1:2009, Information technology -- Trusted Platform Module -- Part 1: Overview, https://www.iso.org/standard/50970.html.
  2. ISO/IEC, 11889-2:2009, Information technology -- Trusted Platform Module -- Part 2: Design principles, https://www.iso.org/standard/50971.html.
  3. ISO/IEC, 11889-3:2009, Information technology -- Trusted Platform Module -- Part 3: Structures, https://www.iso.org/standard/50972.html.

three parts, all 2009, all ISO/IEC, all linked. periodt πŸ’…


🧚 HISTORY 🧚

the tpm driver first appeared in FreeBSD 8.2 and was later added to OpenBSD 6.1. glow-up across operating systems, we love to see it 😭πŸ”₯


⭐ AUTHORS ⭐

the tpm driver was written by Michael Shalayeff and Hans-Joerg Hoexer. absolute legends, both of them πŸ‘‘πŸ«Ά


and that's the page!! this was the Debian build, dated October 31, 2018 β€” spooky season release, honestly iconic timing πŸŽƒπŸ’– bye bestie, go store some keys responsibly πŸ¦‹βœ¨

πŸ“¦ where this page comes from