From: Mimi Zohar <zohar@linux.vnet.ibm.com>
To: Peter Huewe <PeterHuewe@gmx.de>, pau <pau@linux.vnet.ibm.com>
Cc: Nayna Jain <nayna@linux.vnet.ibm.com>, linux-integrity@vger.kernel.org
Subject: Re: Aw: Re: Re: Re: tpm_tis_spi gets initialized long after IMA
Date: Fri, 15 Dec 2017 08:26:56 -0500 [thread overview]
Message-ID: <1513344416.6488.30.camel@linux.vnet.ibm.com> (raw)
In-Reply-To: <trinity-3e6c2430-417d-4eef-b067-e30d68592b4d-1506716047790@3c-app-gmx-bs69>
Hi Peter,
On Fri, 2017-09-29 at 22:14 +0200, Peter Huewe wrote:
> Hi pau,
>
> thanks for your answer,
> SPI is enabled in DT and compiled in
> TPM is enabled in DT via overlay and compiled in.
> I have a working /dev/tpm0
>
> However, the problem lays elsewhere - I added some debug prints to figure out what is going on:
> It looks like this
>
>
> [ 0.027898] RPIFirmware: Calling rpi_firmware_get
> [ 0.027929] bcm2835-clk 3f101000.cprman: Probing FW
> [ 0.027949] bcm2835-clk 3f101000.cprman: FW not ready, defering probe
> [ 0.028385] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
> [ 0.028847] uart-pl011 3f201000.serial: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe
> [ 0.061353] bcm2835-dma 3f007000.dma: DMA legacy API manager at bb80f000, dmachans=0x1
> [ 0.062828] SCSI subsystem initialized
> [ 0.062950] usbcore: registered new interface driver usbfs
> [ 0.063001] usbcore: registered new interface driver hub
> [ 0.063084] usbcore: registered new device driver usb
> [ 0.063362] raspberrypi-firmware soc:firmware: Calling rpi_firmware_probe
>
> So the bcm2835-clk calls rpi_firmware_get, which returns with NULL since the pdev has not been set yet,
> as the rpi_firmware_probe gets called only later :/
>
> That defers the probing of the bcm2835-clk, so it it not available for the bcm2835-spi which also gets defered, consequently making the tpm not available until ima is done :/
Sorry for the long delay! At the end of last year we were able to
boot the pi with IMA using the TPM.
On the rpi-4.8.y kernel with tip commit 061dccc ("BCM270X_DT: Add pi3-
disable-wifi overlay"), I had to disable the full TPM selftest in
order for the TPM to be initialized prior to IMA.
- rc = tpm2_start_selftest(chip, true);
+ rc = tpm2_start_selftest(chip, false);
I now have it working on the rpi-4.9.y kernel with tip commit e80a8a5
("Merge remote-tracking branch 'stable/linux-4.9.y' into rpi-4.9.y")
as well. In addition to disabling the full selftest, I had to revert
commit b76c8d5 ("clk-bcm2835: Read max core clock from firmware") in
order for the TPM to initialize prior to IMA.
Mimi
next prev parent reply other threads:[~2017-12-15 13:27 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-28 21:18 tpm_tis_spi gets initialized long after IMA Peter Huewe
2017-09-28 21:36 ` Aw: " Peter Huewe
2017-09-29 1:09 ` Mimi Zohar
2017-09-29 8:21 ` Aw: " Peter Huewe
2017-09-29 11:40 ` Mimi Zohar
2017-09-29 18:44 ` Aw: " Peter Huewe
2017-09-29 19:49 ` pau
2017-09-29 20:14 ` Aw: " Peter Huewe
2017-12-15 13:26 ` Mimi Zohar [this message]
2017-12-21 13:59 ` Mimi Zohar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1513344416.6488.30.camel@linux.vnet.ibm.com \
--to=zohar@linux.vnet.ibm.com \
--cc=PeterHuewe@gmx.de \
--cc=linux-integrity@vger.kernel.org \
--cc=nayna@linux.vnet.ibm.com \
--cc=pau@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.