u-boot/include
Vadim Bendebury 5e1247247b Introduce generic TPM support in u-boot
TPM (Trusted Platform Module) is an integrated circuit and
software platform that provides computer manufacturers with the
core components of a subsystem used to assure authenticity,
integrity and confidentiality.

This driver supports version 1.2 of the TCG (Trusted Computing
Group) specifications.

The TCG specification defines several so called localities in a
TPM chip, to be controlled by different software layers. When
used on a typical x86 platform during the firmware phase, only
locality 0 can be accessed by the CPU, so this driver even while
supporting the locality concept presumes that only locality zero
is used.

This implementation is loosely based on the article "Writing a
TPM Device Driver" published on http://ptgmedia.pearsoncmg.com

Compiling this driver with DEBUG defined will generate trace of
all accesses to TMP registers.

This driver has been tested and is being used in three different
functional ChromeOS machines (Pinetrail and Sandy Bridge Intel
chipsets) all using the same Infineon SLB 9635 TT 1.2 device.

A u-boot cli command allowing access to the TPM was also
implemented and is being submitted as a second patch.

Change-Id: I22a33c3e5b2e20eec9557a7621bd463b30389d73
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
CC: Wolfgang Denk <wd@denx.de>
2011-12-07 08:45:51 +01:00
..
andestech andes_pcu.h: header file of andes_pcu power control unit 2011-11-09 16:35:27 +08:00
asm-generic Add generic gpio.h in asm-generic 2011-10-17 23:56:59 +02:00
bedbug ppc: Fix DBSR_IAx defines in <bedbug/regs.h> 2011-10-09 22:20:44 +02:00
configs Merge branch 'agust@denx.de' of git://git.denx.de/u-boot-staging 2011-12-05 23:33:48 +01:00
cramfs Fix endianess problem in cramfs code (cramfs is always host-endian in Linux) 2008-03-03 22:08:08 +01:00
faraday ftsdc010: add support of ftsdc010 mmc controller 2011-09-04 18:03:02 -05:00
galileo cleanup: Fix typos and misspellings in various files. 2011-07-28 21:27:36 +02:00
jffs2 fdt_support: add partitions fixup in mtd node 2010-03-21 22:44:59 +01:00
linux Add isblank 2011-10-17 22:25:34 +02:00
lzma Rename lib_generic/ to lib/ 2010-04-13 09:13:04 +02:00
mtd cfi_flash: Add optional config register write to cfi-detection 2010-12-17 09:56:05 +01:00
pcmcia
synopsys dwcddr21mctl: Synopsys DWC DDR2/1 Memory Controller 2011-11-09 16:35:27 +08:00
u-boot Rename lib_generic/ to lib/ 2010-04-13 09:13:04 +02:00
usb Fix building for 83xx boards with USB support 2010-10-21 20:00:41 +02:00
.gitignore tools: logo: split bmp arrays from bmp_logo.h 2011-11-15 23:58:26 +01:00
74xx_7xx.h powerpc: Move duplicated BAT defines to mmu.h 2009-02-10 00:27:40 +01:00
_exports.h lib, vsprintf: introduce strict_strtoul 2011-05-12 21:07:06 +02:00
ACEX1K.h fpga: constify to fix build warning 2011-08-01 15:19:40 +02:00
addr_map.h Introduce addr_map library 2008-12-15 22:05:36 +01:00
ahci.h scsi/ahci: add support for non-PCI controllers 2011-07-26 00:06:58 +02:00
ali512x.h Convert ISO-8859 files to UTF-8 2011-08-04 23:34:02 +02:00
altera.h fpga: constify to fix build warning 2011-08-01 15:19:40 +02:00
amba_clcd.h video: add amba-clcd prime-cell 2010-01-27 21:23:14 +01:00
ambapp.h Coding Style cleanup; update CHANGELOG 2008-04-13 09:59:26 -07:00
api_public.h api: export LCD device to external apps 2011-11-15 23:58:27 +01:00
arm925t.h
armcoremodule.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
asm-offsets.h Replace CONFIG_SYS_GBL_DATA_SIZE by auto-generated value 2010-10-26 21:05:30 +02:00
at45.h at91: rename DATAFLASH_MMC_SELECT to CONFIG_DATAFLASH_MMC_SELECT 2009-04-04 20:42:19 +02:00
at91rm9200_i2c.h
at91rm9200_net.h
ata.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
atmel_lcdc.h Add ATMEL LCD driver 2008-05-10 11:44:55 +02:00
bcd.h Replace BCD2BIN and BIN2BCD macros with inline functions 2009-08-25 12:57:55 +02:00
bcm5221.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
bmp_layout.h
bus_vcxk.h new video driver for bus vcxk framebuffers 2009-07-26 13:17:21 +02:00
bzlib.h
circbuf.h
clps7111.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
command.h env: clean cmd_nvedit.c checkpatch and code style 2011-11-22 08:39:25 +01:00
common.h common: move extern char console_buffer[] to common.h 2011-11-22 08:39:25 +01:00
commproc.h cleanup: Fix typos and misspellings in various files. 2011-07-28 21:27:36 +02:00
compiler.h Define uintptr_t as long int to simplify printf() format strings 2011-11-22 08:39:24 +01:00
config_cmd_all.h ARM: drop unsupported 'trab' board 2011-06-22 20:00:51 +02:00
config_cmd_default.h Add 'editenv' command 2009-10-27 20:58:25 +01:00
config_cmd_defaults.h crc32: make command optional 2011-04-13 15:56:43 -04:00
config_defaults.h disk/part.c: Make features optional 2011-07-26 14:10:14 +02:00
config_phylib_all_drivers.h phylib: Enable AR8021 phy support 2011-11-11 07:48:59 -06:00
crc.h
da9030.h
dataflash.h dataflash: fix parameters order in write_dataflash() 2011-11-29 15:43:41 +01:00
ddr_spd.h mpc8xxx: update module_type values from JEDEC DDR3 SPD Specification 2011-11-29 08:48:06 -06:00
div64.h Add a do_div() wrapper macro, lldiv(). 2009-01-24 00:23:09 +01:00
dm9000.h Add config option for disabling DM9000-SROM support. 2009-06-08 22:57:21 -07:00
dm9161.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
dp83848.h
ds1722.h Misc ds1722 fixups 2009-09-04 21:54:52 +02:00
ds4510.h Add support for Maxim's DS4510 I2C device 2009-01-24 01:47:50 +01:00
dtt.h hwmon: Provide dtt_init() 2011-10-22 01:22:21 +02:00
e500.h ppc/p4080: Determine various chip frequencies on CoreNet platforms 2009-09-24 12:05:29 -05:00
elf.h compiler.h: unify system ifdef cruft here 2009-07-19 21:41:46 +02:00
environment.h env: clean env_common.c checkpatch and code style 2011-11-22 08:39:27 +01:00
errno.h Add basic errno support. 2010-09-19 19:29:47 +02:00
exports.h Standalone Apps: Standalone apps should need only exports.h. 2011-12-06 20:52:35 +01:00
ext2fs.h ext2: constify file/dir names 2010-12-09 10:24:09 +01:00
fat.h FAT: Add FAT write feature 2011-10-26 21:40:44 +02:00
fdc.h Convert ISO-8859 files to UTF-8 2011-08-04 23:34:02 +02:00
fdt.h powerpc: Fix bootm to boot up again with a Ramdisk 2008-09-13 02:03:38 +02:00
fdt_support.h Fix constness of the fdt void pointer in fdt_getprop_u32_default 2011-11-13 11:21:34 -05:00
fdtdec.h fdt: add decode helper library 2011-10-26 21:39:40 +02:00
fis.h ata: add the fis struct for SATA 2008-03-26 23:38:54 +01:00
flash.h mtd, cfi: introduce void flash_protect_default(void) 2011-04-07 10:20:22 +02:00
fm_eth.h fm-eth: Add ability for board code to disable a port 2011-10-03 08:52:15 -05:00
fpga.h fpga: constify to fix build warning 2011-08-01 15:19:40 +02:00
fsl_diu_fb.h video: Add SHARP LQ084S3LG01 LCD support on P1022DS 2011-08-04 22:55:33 +02:00
fsl_esdhc.h fsl_esdhc: Deal with watermark level register related changes 2011-04-10 11:17:55 -05:00
fsl_mdio.h Minor coding style cleanup. 2011-05-19 22:22:44 +02:00
fsl_nfc.h Add MX25 support to nand_spl fsl nfc driver 2010-01-27 14:22:41 -06:00
fsl_pmic.h misc: pmic: Freescale PMIC switches to generic PMIC driver 2011-10-27 21:56:31 +02:00
gdsys_fpga.h ppc4xx: Add Io64 board support 2011-12-01 09:10:57 +01:00
hush.h common: add run_command2 for running simple or hush commands 2011-10-17 22:25:34 +02:00
hwconfig.h powerpc/8xxx: Add hwconfig APIs to address early parsing used by DDR init 2011-01-19 22:58:23 -06:00
i2c.h GCC4.6: Squash warning in cmd_date.c 2011-10-27 23:54:08 +02:00
i8042.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ide.h IDE: fix compiler warnings 2011-04-30 23:29:55 +02:00
image.h image: Implement IH_TYPE_KERNEL_NOLOAD 2011-12-01 09:45:35 +01:00
iomux.h stdio: constify "name" arg in public api 2010-12-09 10:24:09 +01:00
ioports.h
ipu_pixfmt.h MX5: Make IPU display output and pixel format configurable 2011-10-17 22:25:32 +02:00
keyboard.h
kgdb.h Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
ks8721.h Add support for Eukrea CPUAT91 SBC 2009-10-13 06:17:35 -05:00
lattice.h FPGA: constify Lattice FPGA code 2011-09-05 11:41:42 +02:00
lcd.h lcd: add clear and draw bitmap declaration 2011-11-15 23:58:26 +01:00
lcdvideo.h
led-display.h led_display: remove unused DISPLAY_MARK define 2010-10-21 22:25:04 +02:00
lh7a40x.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
lh7a400.h
lh7a404.h
libata.h ata: update the libata.h from ata.h of linux kernel 2008-04-13 23:20:16 -07:00
libfdt.h libfdt: Implement property iteration functions 2011-07-14 21:10:34 -04:00
libfdt_env.h compiler.h: unify system ifdef cruft here 2009-07-19 21:41:46 +02:00
linux_logo.h
lmb.h lmb: only force on arches that use it 2010-01-21 22:26:00 +01:00
logbuff.h Avoid initrd and logbuffer area overlaps 2008-06-03 19:34:19 +02:00
lpd7a400_cpld.h
lxt971a.h Remove duplicate definitions in include/lxt971a.h. 2008-07-06 23:44:34 -07:00
lynxkdi.h
malloc.h Add assert() for debug assertions 2011-09-10 00:04:01 +02:00
max8998_pmic.h misc:pmic:max8998 MAX8998 support at a new PMIC driver. 2011-10-27 21:56:31 +02:00
mb862xx.h video: mb862xx: improve board-specific Lime configuration 2009-10-31 12:13:28 +01:00
mc9sdz60.h Add basic support for Freescale's mc9sdz60 2011-02-02 00:54:43 +01:00
mc13892.h MC13892: Add SWx buck switchers definitions 2011-02-02 00:54:42 +01:00
MCD_dma.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
MCD_progCheck.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
MCD_tasksInit.h ColdFire: Add MCF547x_8x dma code and header files 2008-01-17 14:59:42 -06:00
menu.h common, menu: use abortboot for menu timeout 2011-10-17 22:25:33 +02:00
mg_disk.h mflash: Initial mflash support 2009-04-03 23:47:06 +02:00
mii_phy.h
miiphy.h Revert "mii: miiphy register address width change" 2011-12-07 08:35:14 +01:00
mk48t59.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mmc.h mmc: change magic number to macro define 2011-11-03 02:14:58 -05:00
mpc5xx.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc5xxx.h A4M072: Added support for the board. 2010-10-12 22:44:33 +02:00
mpc5xxx_sdma.h cleanup: Fix typos and misspellings in various files. 2011-07-28 21:27:36 +02:00
mpc8xx.h
mpc8xx_irq.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc83xx.h mpc83xx: Cleanup usage of DDR constants 2011-11-03 18:27:55 -05:00
mpc85xx.h powerpc/85xx: introduce and document CONFIG_SYS_CCSRBAR macros 2011-09-29 19:01:04 -05:00
mpc86xx.h powerpc/mpc86xx: Disable translation for BAT setup 2011-10-09 17:57:54 -05:00
mpc106.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc824x.h cleanup: Fix typos and misspellings in various files. 2011-07-28 21:27:36 +02:00
mpc8220.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
mpc8260.h
mpc8260_irq.h
mtd_node.h fdt_support: add partitions fixup in mtd node 2010-03-21 22:44:59 +01:00
mvmfp.h gpio: Add Multi-Function-Pin configuration driver for Marvell SoCs 2010-12-16 23:02:43 +01:00
nand.h spl: add NAND Library to new SPL 2011-09-30 22:00:54 +02:00
net.h net: Make sure IPaddr_t is 32 bits in size 2011-12-06 22:15:32 +01:00
netdev.h altera_tse: Add support for dedicated descriptor memory 2011-10-26 21:27:37 +02:00
nios2-epcs.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
nios2-io.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
nios2-yanu.h nios2: Added support to YANU UART 2010-03-21 22:44:42 +01:00
nios2.h
nomadik.h include/nomadik.h: add physical address for cldc 2010-01-27 21:23:23 +01:00
ns9750_bbus.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_mem.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_ser.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns9750_sys.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ns16550.h NS16550: trivial code clean for checkpatch 2011-10-23 20:19:53 +02:00
ns87308.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
onenand_uboot.h OneNAND: Add simple OneNAND SPL 2011-11-15 22:24:50 +01:00
os.h sandbox: put stdin into raw mode 2011-11-03 22:35:21 +01:00
part.h disk/part.c: Make features optional 2011-07-26 14:10:14 +02:00
pc_keyb.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
pca953x.h Add support for PCA953x I2C gpio devices 2008-12-19 18:11:49 -06:00
pca9564.h Prepare v2010.03-rc1 2010-03-12 23:06:04 +01:00
pca9698.h gpio: Adapt PCA9698 to standard GPIO API 2011-11-18 14:04:25 +01:00
pci.h powerpc/85xx: Handle PCIe initialization requires for P1021 class SoCs 2011-03-29 07:41:37 -05:00
pci_ids.h drivers: add the support for Silicon Image SATA controller 2011-10-22 01:03:54 +02:00
pcmcia.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
phy.h powerpc/85xx: wait for alignment before resetting SERDES RX lanes (SERDES9) 2011-10-20 16:01:37 -05:00
pmic.h misc:pmic:core New generic PMIC driver 2011-10-27 21:56:31 +02:00
post.h POST: add new memory regions test 2011-10-05 22:03:11 +02:00
ppc_asm.tmpl powerpc: fix wrong comment at GOT definitions 2010-06-29 23:03:40 +02:00
ppc_defs.h Initial revision 2000-07-19 14:09:16 +00:00
ps2mult.h Rename common ns16550 constants with UART_ prefix to prevent conflicts 2009-04-03 22:34:07 +02:00
pwm.h ARM: S5P: pwm driver support 2011-03-27 19:19:54 +02:00
radeon.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
reiserfs.h
rtc.h Switch from per-driver to common definition of bin2bcd and bcd2bin 2009-08-25 12:57:55 +02:00
s6e63d6.h A driver for the S6E63D6 SPI display controller from Samsung 2009-02-24 10:00:28 +01:00
s_record.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
SA-1100.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
sata.h SATA: do not auto-initialize during boot 2009-01-27 23:42:39 +01:00
scsi.h scsi/ahci: add support for non-PCI controllers 2011-07-26 00:06:58 +02:00
sdhci.h mmc: mv_sdhci: Fix host version read for Armada100 2011-11-25 17:43:05 -06:00
search.h env: allow to export only selected variables 2011-11-08 13:20:42 +01:00
sed156x.h
sed13806.h Convert ISO-8859 files to UTF-8 2011-08-04 23:34:02 +02:00
serial.h serial: constify serial_assign() 2011-12-05 22:48:10 +01:00
sha1.h Add support for calculating hashes with watchdog triggering 2008-04-25 00:01:06 +02:00
sha256.h include/sha256.h: fix file permissions. 2008-07-06 01:21:46 +02:00
sja1000.h Add minimal SJA1000 header for basic CAN mode 2009-11-17 13:19:58 +01:00
sm501.h Convert ISO-8859 files to UTF-8 2011-08-04 23:34:02 +02:00
smiLynxEM.h
spartan2.h fpga: constify to fix build warning 2011-08-01 15:19:40 +02:00
spartan3.h fpga: constify to fix build warning 2011-08-01 15:19:40 +02:00
spd.h
spd_sdram.h Support for DDR with 32-data path. Addotional notes on injecting 2006-03-16 17:46:46 +01:00
spi.h powerpc: eSPI and eSPI controller support 2011-04-29 07:34:09 -05:00
spi_flash.h sf: unify write funcs 2011-07-26 16:29:27 +02:00
status_led.h sbc82xx: delete support for obsolete SBC8240/SBC8260 2011-10-01 21:57:13 +02:00
stdio_dev.h ARM: drop unsupported 'trab' board 2011-06-22 20:00:51 +02:00
stratixII.h fpga: Remove relocation fixups 2009-10-03 10:17:56 +02:00
sym53c8xx.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
systemace.h
timestamp.h Move timestamp and version files into 'generated' subdir 2011-10-17 23:57:00 +02:00
tpm.h Introduce generic TPM support in u-boot 2011-12-07 08:45:51 +01:00
tsec.h tsec: Fix MDIO on devices with eTSEC2 2011-04-29 07:32:48 -05:00
tsi108.h
tsi148.h Add support for the Tundra TSI148 VME-bridge 2009-07-19 11:21:08 +02:00
twl4030.h ARMV7: OMAP: add convenience function to set TWL4030 regulator voltages 2010-09-08 14:50:23 -04:00
twl6030.h mmc: omap: config VMMC, MMC1_PBIAS 2011-09-30 22:00:55 +02:00
tws.h drivers/twserial: Add protocol driver for "three wire serial" interface. 2009-03-30 09:38:36 +02:00
ubi_uboot.h common: move BUILD_BUG_ON define to common.h 2011-07-27 23:45:37 +02:00
universe.h
usb.h usb: increase non-bulk timeout for slow chipsets. 2011-08-08 22:34:57 +02:00
usb_cdc_acm.h
usb_defs.h Prepare USB layer for ehci 2009-01-28 19:57:27 +01:00
usb_ether.h Add support for SMSC95XX USB 2.0 10/100MBit Ethernet Adapter 2011-08-08 21:05:23 +02:00
usbdescriptors.h USB add macros for debugging usb device setup. 2009-12-20 12:47:37 +01:00
usbdevice.h USB add macros for debugging usb device setup. 2009-12-20 12:47:37 +01:00
version.h Move timestamp and version files into 'generated' subdir 2011-10-17 23:57:00 +02:00
video.h
video_ad7176.h
video_ad7177.h
video_ad7179.h
video_easylogo.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
video_fb.h video: cleanup comments in cfb_console.c and video_fb.h 2010-07-17 00:05:14 +02:00
video_font.h font: split font data from video_font.h 2011-11-15 23:58:26 +01:00
video_font_data.h font: split font data from video_font.h 2011-11-15 23:58:26 +01:00
video_logo.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
virtex2.h fpga: constify to fix build warning 2011-08-01 15:19:40 +02:00
vsc7385.h Cleanup coding style, update CHANGELOG 2008-03-26 11:48:46 +01:00
vxworks.h Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
w83c553f.h rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
watchdog.h nios: remove nios-32 arch 2010-05-28 10:56:04 -04:00
xilinx.h fpga: constify to fix build warning 2011-08-01 15:19:40 +02:00
xyzModem.h