TBOOT Notes

Copyright 2015 by Assured Information Security, Inc. Created by Ross Philipson <philipsonr@ainfosec.com>. This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.

What is TBOOT? It is the reference program from Intel for driving the Intel TXT hardware and starting a Measured Launch Environment (MLE). It lives here:

http://sourceforge.net/projects/tboot/

Serial Output

TBOOT will trace to serial output if the target system has a serial port. The default is to use the legacy COM1 port. The serial option is used on the TBOOT boot-loader command line. E.g. this is what the default for COM1 would look like:

serial=115200,8n1,0x3f8

PCI serial cards can also be used. In this case use lspci to find the I/O port resource for the device you want to use and set up the command line accordingly. For example, from a Dell 6430 with a Startech Express Card UART, Region 0 I/O port is 0xe000:

$ lspci -s 03:00.0 -vvv
03:00.0 Serial controller: Oxford Semiconductor Ltd Device c120 (prog-if 02 [16550])
    Subsystem: Oxford Semiconductor Ltd Device c120
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 18
    Region 0: I/O ports at e000 [size=8]   <--- RIGHT THERE
    Capabilities: [40] Power Management version 3
        Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
    ....

# So the serial parameter would look like:
serial=115200,8n1,0xe000

The general form of the serial parameter is this (but in most cases just baud,DPS,io-base are enough):

serial=<baud>[/<clock_hz>][,<DPS>[,<io-base>[,<irq>[,<serial-bdf>[,<bridge-bdf>]]]]]