What I can gather is that TPMs are mostly connected using the Low Pin Count (LPC) bus. One option to dig deeper is to read the code from things that deal with TPM (e.g., TrouSerS, trusted GRUB etc.). However, I was hoping for a resource that would just skip past all the thousand layers of indirection and talk about how the processor interacts with the TPM. Does it use port-mapped or memory-mapped IO? How do the privilege levels impact which TPM commands can be executed?
I've read quite a few online sources and a couple of books on TPM and they all explain how to use TPM from a user-land application -- from the other end of all the abstractions -- but I wasn't able to find a resource that captures how software interacts with TPM at the lowest level.