[MinnowBoard] Using a TPM on the MinnowBoard connected with I2C

Sebastien Duc sebastien.duc at yoti.com
Tue Nov 17 15:40:48 UTC 2015


Thanks John for the reply.
I created a kernel module very similar to ones on github as you said. But I
cannot load it successfully.
>From what you said my understanding is that I need to find the i2c bus and
the slave address of the TPM chip.
I found on Google that the bus should be i2c-7. When using i2c-detect on 7
I get  i2c slaves at multiple addresses:
0x37, 0x3a, 0x49, 0x50 and 0x59.
How do I know which one I should use? I found on this page
https://github.com/theopolis/tpm-i2c-atmel that the address should be 0x29
but that address does not appear in i2c-detect. Any clue why?

Thanks,
Sebastien

Sebastien Duc
Security Consultant
077 4624 2105



6 Lloyd's Avenue, London, EC3N 3AX
http://www.yoti.com

On 16 November 2015 at 18:00, John "Warthog9" Hawley <
warthog19 at eaglescrag.net> wrote:

> Apologies for briefness in this, I'm traveling, but the reason this isn't
> working is the kernel needs to be informed where the Atmel chip is. The
> quickest way is to write a small kernel module typically referred to as a
> board file. You can find an example of several of these in the
> minnow-max-extras repo on github. Basically you need to load the bus, and
> address of where the Atmel chip is, since it can't be auto discovered like
> pci, usb, etc.
>
> - John "Warthog9" Hawley
>
>
> On November 16, 2015 10:11:49 AM CST, Sebastien Duc <
> sebastien.duc at yoti.com> wrote:
>>
>> Hi all,
>>
>> Please bare with me if something I am saying is wrong, I don't have much
>> experience with TPMs or I2C.
>>
>> I recently acquired a minnowboard max to attempt some experimentation
>> with TPMs.
>> I have also bought a separate TPM from Atmel (it's the TPM i2c
>> development Kit AT97SC3205T).
>>
>> So far I have connected the TPM board to the Minnowboard through i2c. I
>> made sure to connect pin 2 (the ground) and 4 (+3V3) of the Minnowboard to
>> the corresponding GND and VCC of my TPM board. I also connected pin 13
>> (SCL) and 15 (SDA) to the corresponding SCL and SDA of the TPM board.
>>
>> I have installed Debian on the board and made sure to build a kernel that
>> has tpm_i2c_atmel as a module. The version of my kernel is 4.3.0.
>>
>> Now I am trying to load the kernel module as so:
>> # insmod tpm_i2c_atmel.ko
>>
>> The insmod is being executed without any errors and I cannot see anything
>> in dmesg.
>> However when looking at my devices, I don't see any tpm0 in /dev.
>>
>> I can also see tpm_i2c atmel.ko in the list of loaded modules when
>> looking at
>> # lsmod
>>
>> Therefore when I am trying to start tcsd, it fails:
>> # tcsd -f
>> # TCSD TDDL ERROR: Could not find a device to open!
>>
>> I also made sure in the BIOS  to enable Discrete TPM.
>>
>> So my guess is that either my TPM is not properly connect but I don't
>> really know how to test this. Or I am missing some software configuration
>> somewhere.
>>
>> I was hoping that someone could help me with this. How can I know if I
>> did the connectivity properly? What configuration do I need to do before
>> being able to talk to the TPM, especially to use the i2c pins on the
>> Minnowboard?
>>
>> Let me know if you need more information.
>>
>> Thanks,
>> Sebastien
>>
> ------------------------------
>
> elinux-MinnowBoard mailing list
> elinux-MinnowBoard at lists.elinux.org
> http://lists.elinux.org/mailman/listinfo/elinux-minnowboard
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.elinux.org/pipermail/elinux-minnowboard/attachments/20151117/0c6fd60c/attachment.html>


More information about the elinux-MinnowBoard mailing list