From: Nayna <nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Jason Gunthorpe
<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Cc: tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH v2 0/3] TPM2.0: Added eventlog support for TPM2.0
Date: Tue, 16 Aug 2016 14:21:53 +0530 [thread overview]
Message-ID: <57B2D429.8050508@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160813025915.GC26929-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Hi Jason,
Thanks for your inputs.. Further responses inline.
On 08/13/2016 08:29 AM, Jason Gunthorpe wrote:
> On Thu, Aug 11, 2016 at 04:18:34PM +0530, Nayna wrote:
>>> #1. And the next somewhat pre-existing issue is that we call
>>> tpm_bios_log_setup even if we don't have access to a bios log.
>>>
>>> Does the bios log ever change or is it static at boot? Can we move
>>> read_log into the chip and do it once so we can tell if it worked
>>> before creating security fs stuff??
>>
>> <nayna>
>>
>> So, by statement "if we don't have access to a bios log?".. Do you mean bios
>> log is empty ? or has no properties to access the log.
>
> More along the lines we call down to tpm_of and it just exits if the
> properties do not exist. For instance my DT using TPM systems do not
> have a bios log.
Ok.
>
>> Regarding bios log, so it is supposed to be written by each component in
>> boot stack during boot.
>
> Only if the boot firmware supports this functionality and indicates it
> via DT attributes or ACPI. That is what we need to check earlier.
>
>> As per moving read_log into the chip, do you mean something like as below ?
>>
>> struct tpm_chip {
>> ....
>> struct tpm_bios_log *bios_log;
>> ....
>> }
>>
>> read_log(struct tpm_chip *chip)
>> {
>>
>> allocates to chip->bios_log->bios_event_log
>> allocates to chip->bios_log->bios_event_log_end;
>>
>> return 0; // for success;
>>
>> }
>>
>> tpm_chip_register()
>> {
>> ...
>> if (read_log(chip))
>> tpm_bios_log_setup(chip);
>> ...
>> }
>
> Yes, exactly. The challenge will be to get the chip into the security
> file context, give that a try and we can probably help you. The
> locking and lifetime will probably be very subtle.
Sure, I have done this change now in my next patch, should be able to
post soon.
>
>> And as per readlog is concerned, it just reads the start and max size of the
>> log for both ACPI/OF. So, it is possible that readlog returns successfully
>> giving start and max allocated size. but actual log size is zero. So, when
>> we cat bios_measurements_file, it doesn't show anything. And I think that
>> is fine.
>
> That would be a firmware that says it support a log but generated an
> empty one, so that seems reasonble to report to user space.
>
>>
>> #2.
>>> #if defined(CONFIG_TCG_IBMVTPM) || defined(CONFIG_TCG_IBMVTPM_MODULE) ||
>> \
>>> - defined(CONFIG_ACPI)
>>> -extern struct dentry **tpm_bios_log_setup(const char *);
>>> -extern void tpm_bios_log_teardown(struct dentry **);
>>> + defined(CONFIG_ACPI) || defined(CONFIG_PPC64)
>>> +extern struct dentry **tpm_bios_log_setup(struct tpm_chip *chip);
>>> +extern void tpm_bios_log_teardown(struct tpm_chip *chip);
>>
>> I'm really deeply unhappy about these ifdefs and the general scheme
>> that was used to force this special difference into the tpm core.
>>
>> Please find another way to do it.
>>
>> IMHO, 'read_log' should simply try ACPI and OF in sequence to find the
>> log.
>>
>> <nayna> Can you help me to understand the reason for which it was done this
>> way ?
>
> When this was written the TPM subsystem was very old and lacked
> infrastructure to do this better, we have largely solved those
> problems, event log is the last large area that needs some attention..
>
Ok.
>> Secondly, did you mean something like (just a sample psudocode)
>> read_log()
>> {
>> read_of_node;
>> if (read_of_node_fails)
>> read_acpi_way
>> if (read_acpi_succeeds)
>> do acpi_way of reading for start of log and max log size.
>> else
>> return err;
>> do of_node way of reading for start of log and max log size
>> }
>
> I would do more like:
>
> read_log_of(
> {
> if (! chip->pdev->of_node .. has attribute)
> return 0
> .. return 1;
> }
>
> read_log()
> {
> if ((res = read_log_of(chip)) != 0)
> return res;
> if ((res = read_log_acpi(chip)) != 0)
> return res;
> return 0;
> }
I tried the suggested approach and since ACPI specific functions won't
be available for arch using CONFIG_OF, so the compilation fails and vice
versa for CONFIG_ACPI..
Jason, for understanding.. can you explain the issue with existing
design for read_log, where arch specific read_log is compiled based on
CONFIG option.. And then, we can just change in Makefile.. where
currently it is like
ifdef CONFIG_ACPI
tpm-y += tpm_acpi.o
else
ifdef CONFIG_OF
tpm-y += tpm_of.o
endif
endif
this can be changed to
tpm-$(CONFIG_ACPI) += tpm_acpi.o
tpm-$(CONFIG_OF) += tpm_of.o
Please let me know if I missed something.
Thanks & Regards,
- Nayna
>
>> So, is it safe to assume that if there is no of_node property , that means
>> it is ACPI ?
>
> No, ACPI also reads a property from the ACPI table, the existance of
> that should be tested directly.
>
>> #3. Where you able to test this on IBM's 'vtpm' stuff as well?,
>>
>> <nayna>This was for patch where I am directly using dev.of_node property.
>> Sorry I missed to reply in previous response. And answer is "yes", I did
>> test it. </nayna>
>
> That is excellent
>
> Jason
>
------------------------------------------------------------------------------
next prev parent reply other threads:[~2016-08-16 8:51 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-09 19:34 [PATCH v2 0/3] TPM2.0: Added eventlog support for TPM2.0 Nayna Jain
[not found] ` <1470771295-15680-1-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-09 19:34 ` [PATCH v2 1/3] TPM2.0: Refactored eventlog init functions Nayna Jain
[not found] ` <1470771295-15680-2-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-09 22:27 ` Jason Gunthorpe
[not found] ` <20160809222740.GD5535-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-10 10:51 ` Jarkko Sakkinen
2016-08-10 11:12 ` Nayna
[not found] ` <57AB0C14.8080305-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-13 2:45 ` Jason Gunthorpe
[not found] ` <20160813024540.GB26929-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-16 9:05 ` Nayna
2016-08-10 11:12 ` Jarkko Sakkinen
2016-08-09 19:34 ` [PATCH v2 2/3] TPM2.0: TPM Device Tree Documentation Nayna Jain
[not found] ` <1470771295-15680-3-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-09 22:12 ` Jason Gunthorpe
[not found] ` <20160809221239.GB5535-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-12 12:36 ` Nayna
[not found] ` <57ADC2B5.3040903-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-13 2:42 ` Jason Gunthorpe
[not found] ` <20160813024230.GA26929-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-16 18:00 ` Nayna
[not found] ` <57B354C8.5040906-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-18 20:06 ` Jason Gunthorpe
[not found] ` <20160818200637.GF3676-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-30 4:56 ` Nayna
2016-08-10 11:28 ` Jarkko Sakkinen
2016-08-09 19:34 ` [PATCH v2 3/3] TPM2.0:Adds securityfs support for TPM2.0 eventlog Nayna Jain
[not found] ` <1470771295-15680-4-git-send-email-nayna-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-09 22:19 ` Jason Gunthorpe
2016-08-10 11:25 ` Jarkko Sakkinen
[not found] ` <20160810112142.GC13929-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-10 11:26 ` Jarkko Sakkinen
2016-08-10 11:32 ` [PATCH v2 0/3] TPM2.0: Added eventlog support for TPM2.0 Jarkko Sakkinen
[not found] ` <20160810113243.GF13929-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-10 17:19 ` Jarkko Sakkinen
[not found] ` <20160810171900.GA11543-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-11 10:48 ` Nayna
[not found] ` <57AC5802.1090109-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-11 12:58 ` Jarkko Sakkinen
[not found] ` <20160811125818.GA9303-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-12 12:32 ` Nayna
[not found] ` <57ADC1C0.4030406-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-15 21:26 ` Jarkko Sakkinen
[not found] ` <20160815212612.GC25212-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-16 19:16 ` Nayna
[not found] ` <57B36698.7040904-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-16 19:48 ` Jarkko Sakkinen
[not found] ` <20160816194853.GA26364-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-17 4:15 ` Jarkko Sakkinen
[not found] ` <20160817041502.GA8656-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-17 5:58 ` Nayna
[not found] ` <57B3FD1B.9040606-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-17 8:09 ` Jarkko Sakkinen
[not found] ` <20160817080914.GA8384-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-18 19:59 ` Jason Gunthorpe
[not found] ` <20160818195900.GD3676-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-25 19:49 ` Nayna
2016-08-25 21:13 ` Jarkko Sakkinen
[not found] ` <20160825211304.GC8658-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-25 21:20 ` Jason Gunthorpe
[not found] ` <20160825212038.GB8502-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-26 1:25 ` Jarkko Sakkinen
[not found] ` <20160826012536.GA16846-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-26 11:43 ` Jarkko Sakkinen
[not found] ` <20160826114316.GA18279-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-08-26 16:12 ` Jarkko Sakkinen
2016-08-13 2:59 ` Jason Gunthorpe
[not found] ` <20160813025915.GC26929-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-16 8:51 ` Nayna [this message]
[not found] ` <57B2D429.8050508-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2016-08-18 19:55 ` Jason Gunthorpe
[not found] ` <20160818195521.GC3676-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-08-30 5:01 ` Nayna
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=57B2D429.8050508@linux.vnet.ibm.com \
--to=nayna-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
--cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
--cc=tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).