From nobody Thu Mar 28 16:31:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) smtp.mailfrom=seabios-bounces@seabios.org Return-Path: Received: from mail.coreboot.org (mail.coreboot.org [80.81.252.135]) by mx.zohomail.com with SMTPS id 1519686269206874.7684078439038; Mon, 26 Feb 2018 15:04:29 -0800 (PST) Received: from [127.0.0.1] (helo=ra.coreboot.org) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1eqRqC-0008Vb-Lx; Tue, 27 Feb 2018 00:05:52 +0100 Received: from mail-eopbgr10110.outbound.protection.outlook.com ([40.107.1.110] helo=EUR02-HE1-obe.outbound.protection.outlook.com) by mail.coreboot.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) (Exim 4.86_2) (envelope-from ) id 1eqPYu-00042X-SY for seabios@seabios.org; Mon, 26 Feb 2018 21:40:03 +0100 Received: from localhost.localdomain (96.82.2.57) by VI1PR04MB1357.eurprd04.prod.outlook.com (2a01:111:e400:5348::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Mon, 26 Feb 2018 20:37:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=SILICOMLTD.onmicrosoft.com; s=selector1-silicomusa-com01i; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=LgYmQP2LA+TNEw+c6BvrQY2l+9Y0eTrySnR64rbHUME=; b=w2zsMlu8yqhUsDw7ioVob6bWEcmE+ef79+j6BZcdS315QJQLmi11i5CxOn6CrxBdQBf6P5ZDkG+8xCQlDlqXjutdao9UnpPCw1mn6VbAch7F1WWsuZRRkDzsjtxr1dLRbiipy7V9PdO8jMa0w+11WWUKPd13yhaLOmazOEMyLDs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=stephend@silicom-usa.com; From: Stephen Douthit To: Kevin O'Connor , Stefan Berger , seabios@seabios.org Date: Mon, 26 Feb 2018 15:37:32 -0500 Message-Id: <20180226203734.558-2-stephend@silicom-usa.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180226203734.558-1-stephend@silicom-usa.com> References: <20180226203734.558-1-stephend@silicom-usa.com> MIME-Version: 1.0 X-Originating-IP: [96.82.2.57] X-ClientProxiedBy: DM5PR21CA0049.namprd21.prod.outlook.com (2603:10b6:3:129::11) To VI1PR04MB1357.eurprd04.prod.outlook.com (2a01:111:e400:5348::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 842396cc-ccf0-4fa4-e57f-08d57d58d217 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:VI1PR04MB1357; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 3:3sXrKtV6G/wt28m4HL/HLqeku0XAQ3+nt8jjW9DNpI+l2O4Yw1TrmP6/dYJUd985HVTjTYsRoDdqvuRQSuK5UzDB4LxBq9iVegRjFtyswiimZS5POWYVnvJ1BTLalqmEOVtNloHojBxpNsbbq4zEm+xuWVY0tSYvsMMohuSN1IwID6h3wgCVcGpvU9BP7pVxfG5GsoVs/jzJzJoB2rtZ3r3+aCMBtyG2UcialYL8Zl0LvYjV/AoZqRSAvD0WOfg4; 25:tjSsTgvW6YyIUzyQ0+0MK6CWhMJno385valPydbJqSg/rc1KLdeR0ed98eQBNI1b0y9t0F8M0nrJJnkysALO3gtZ1dwMeAzTOJpz7nD8hF5jPQmRhRASDd9YXVlZpPIp9JRDGeCacxENRAnpwAiHyZIwSX0UYmQyKjTGEFN1VA/Jq9M6t3zsgPde9ysmFlKELVY0K07tfTRII+LKZKvg7GvqMbfz9Hab9ICW4y3/V9NWW74DIJdFv7VXYxjkW6kqngpm30WY23DYkHR/FMT0sgbC2ruvq/qy9JEcjzqI472JH6Hf8C1YpPo/DtnBkqfPPHc98Pq54udgoK7M6ynixQ==; 31:9xJJ43jGl8gRgPUu2bN+XLmji5PoZ4WvL3QARsX2lVqI9F3xXz66j47dix5sRvAjcLLeg9t07cf73+jWy5AzLM6PEoRkLnwGBevepXu6z9s+52wIGg85NFyzRwC80veyNXsQ46o6ZYem0H1TbSCRFKSjIFpH58Y65bZtsX5zRXH76h3ZxTs3DtqT4B/mop5sLhp5jbRK3uMOAXcgO5O++EZ1RSrD2fKMJoL/0VeFh8s= X-MS-TrafficTypeDiagnostic: VI1PR04MB1357: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 20:rM3o+oKuH/iN5aTp4i3Tcl4EMhBaccwBtj+7ElH30zX4XPi/q3Tz+VVEMT7t30kad3aVbd4XTNvFCTAm8li7Ha7mSEQvlRiWgqfA6jeiWlRyNrS/ipFNWBIE4Adxv5FF/kjIXWIjuTYDGQaFpeaLl08bDTqq/TsIGqh/dcGCWPlTrZ3fB1qqF+Zws3xc8oHfRtHKbUKEIhCArx0B+T/qj+d5mp2qeoPBueLD5YoR3CEpxVMo7cqx4TM2FUjaxFoYj5v0SZVBsw1gLMBXWItcHrowmrQqQvcfo1P3qt8Ux0PHY7E/7rBTpWsD4JSstKnYEWoBTo2pDD6ejqCUPMNvip8YT04lewRcg3a+cpo5msnDyViSV8WA67EBPTe4Judtu02qRjlL+itbPwW1ND4gFb7A7mMnYZMDecDu/6SqZnhddd5E+aag7lcRidZGz2k8MPK+mD3Vit7AyQ5E44XNAuENtm4wj3J4UjZuNb5NAtGBw2SBTWg8jHd5dwwv3lhx; 4:D9p+0Cjaasmw1CL7aAZoyHlGl49qzclMJojQo/8LHGJkse/CFajl+/xEAlCWptPotz6QGCWzb5T4X1SvEol2VoPzZipttW+XJQxdzqIO8SzU705sYl87BhzqGP9eGc7y+2A2TFXs5pHEEMsE4cMQeGHLGC3Xf38Bs1MaBuK3gUY3i+6jqCLYB/841m9L8wD4t6WW0/M+YbvBfSAR/RpmF9bBIZQLnWqUYI+3CYgjqkzPBQoMJKb475t0LEnJsj8sQSs+njbtfVekmt3a3cAthw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231220)(944501161)(52105095)(3002001)(10201501046)(6041288)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR04MB1357; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB1357; X-Forefront-PRVS: 05954A7C45 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(366004)(396003)(39850400004)(39380400002)(376002)(346002)(199004)(189003)(6116002)(3846002)(25786009)(386003)(106356001)(6666003)(6506007)(76176011)(50226002)(105586002)(1076002)(8936002)(48376002)(50466002)(53936002)(8676002)(6512007)(2906002)(59450400001)(97736004)(7736002)(5660300001)(36756003)(478600001)(52116002)(47776003)(66066001)(305945005)(110136005)(81156014)(81166006)(86362001)(16586007)(316002)(16526019)(6486002)(26005)(186003)(51416003)(1857600001)(2950100002)(68736007); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR04MB1357; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) client-ip=80.81.252.135; envelope-from=seabios-bounces@seabios.org; helo=mail.coreboot.org; Received-SPF: None (protection.outlook.com: silicom-usa.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB1357; 23:cvSFJo5BK1sSBV5lM3XHdyYSn2c3hbmSaov3ECRnD?= =?us-ascii?Q?EWxdP972h/qlm2VY+lW1rt4QCAR8mPaIXfVjuA1h1vIt4mVO6xWoI6liXha9?= =?us-ascii?Q?zqTn7xXmJlaHZt8R978u4+DzQFRiVaGRTQeBdOLD5Hk53/exH3TSVptMHP85?= =?us-ascii?Q?5ufrA9Usdw4o8OVoTnRURJAAcyEJcR6qAKgqqdBrkeMg7B2+Xtx1Ua8PBjH1?= =?us-ascii?Q?C1k2aWI3FUc+Y/fAz69XFbSoai4L8Nurgo0LM997AcY/4pZV64f+BczmOVgc?= =?us-ascii?Q?p6JKgKcwuy029PhSt/cFHz0C3tYoXb+c7lMI2Xfrdv2Kn9HVLsbSQXF3THQs?= =?us-ascii?Q?rJD6iGLNSx/lBPvT7/vTmYcSlIWxJJA347zNgeY4QkrbGEP5KQWd7grJOies?= =?us-ascii?Q?XUP7SnWXXqanGUcWSOTIPLEs3/4Y3ddb+0f+tgcWbKoUH5M4DkLPVXJ1DLDR?= =?us-ascii?Q?NkKFZUYxfWOBwME4swkEkEA+aE+A+QwRQUsC3cE84wbCbwjxSkuO0XuF+XEJ?= =?us-ascii?Q?t66DhT/pbU+ii5mm6Z4uSoKeOby/vVZeyUrM94MTqpXWk766OySLbYa6VEJA?= =?us-ascii?Q?bRRF1TylwiSivP42/N6ZQvLZzOg1h1H2lUYjK+k4HbIZCIk5eLyDiCo5J1SI?= =?us-ascii?Q?lOba5upa3n75lAmOejvtbLWedIh5oIET2y8GPqJm5hiZIBmnQBXCTCgb8XL2?= =?us-ascii?Q?ZqGiohwSFSy9aU3lKl5LyGiOkMOy1Oxe/iG5Dp20EnPU4tMUMVX3HVDINPvA?= =?us-ascii?Q?dVazcr0io9AaFtePyAd4CGS+1PRhDhjMfv1dQbpdAJQgcvdpSWZdihh2Jr0C?= =?us-ascii?Q?VjgE8+l6UsCsUMDcwoXYNyEVQ4aYe4phzyCHaUukzX/a34D02xsN3JchyLGA?= =?us-ascii?Q?2d6fg1GVy/9IoaMnPmuIOhTgph0838IaeQkP8vo+dlW3qydLrcNU/TlQ4vDT?= =?us-ascii?Q?vuGVd5m5avWneLA3OFuF/3P7YpFOOUTz3HMEcIAfL000AOmR/OHM9qaB4pFh?= =?us-ascii?Q?IYNwoQwPpNarw0ixtN++nSu77dR/+hskwWLSwdBJQ1jYHNuYWv4mCwXcB8lk?= =?us-ascii?Q?SmXx8efZ6scRre5roRa+d1d1n72UnbjBpFCdaETAklwHCtsTXs/hEUZM5Br9?= =?us-ascii?Q?q6P/g4hUP7BMHxneDa+/fetS5nZ88laqz3B+RWQEANkbU1dDZoU+Q=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 6:byYK6rRUialZWb/5sN5rNVoG8GsAbBfxkb8rHhVn4OzKDz0A4UnTklCQOb12qvXQFP+ENtEYkIEpWXNb8bf30BUalO3u5NxjTq3SJouJXiRAAuRDwZwJau5RxaC4ZhIQSTLJ1hZPhZfv+c2ZwnJA3MkoEwFFdqMFtdhu7oZv6k7jIrbBO8ZXCYgFhm+q9SV7sV7qdFDB3bL4agKGKNj3M2N5R5wMpcqoDf+i2Z3/7CRbN2xG0TQ01mum8UNvoohpzsNrj0UmOw6xd75MOCi0AO3I32CpQLGxwYfSHOqUVBA7HYtfR9SX8OQqiyejiotS9/VXD+4VwukuuhXDcEUxXnscT7fDYieQW+9Qn/JR8q8=; 5:/+Se/JVUnMC8W/4aZP78ZIw1mtt9QXsJImcIRpT5ufWHvwCtDm/F+gh30QsijOVKjcqRZgjsmbaSL6tYWifsNmPmBzL3OpyxtqxZIp5TTqpErpGBgYC0eh62bgJLxpv77xmTCnm7PzXcjuuiKRMYyiinGP9WOKAtihDbo9A8j/g=; 24:THvWXHXKXSs5WfoB82rcWTHCfkGHHnXKxZNVDGEcQJZKPNiiCstwIEIjeSMJabbPXgBiM4zc2H6Ch1ulKO/7qDaZiGDcqG0tnbiOUuhoec8=; 7:oyD3szoyOW+9GI85LKASwnNXZLQJxziUiOlX3V6OS8C9us4kM8XHP2QEU0JY03++MFebnAedX2U/mk5ajYQ8IEFxtb405q7MTZoNwEzZCjCWArHJfkVTQ0R4pcUC/93PYEaC9WS8ocA1ZAAHulTreNtC5Sbxpi87m9J0sBEq3G/nXLMkrNlCLQt5QJhPaTG9Yy+u4XsQj8tAbZqICLFRrhDombFEFMl3goTXh/+Qojpex6zH2x8ldqSxSQQ+hQtP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: silicom-usa.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2018 20:37:56.8949 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 842396cc-ccf0-4fa4-e57f-08d57d58d217 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c9e326d8-ce47-4930-8612-cc99d3c87ad1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB1357 X-Spam-Score: 1.3 (+) X-Mailman-Approved-At: Tue, 27 Feb 2018 00:05:50 +0100 Subject: [SeaBIOS] [PATCH 1/3] tpm: Refactor duplicated wait code in tis_wait_sts() & crb_wait_reg() X-BeenThere: seabios@seabios.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SeaBIOS mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Errors-To: seabios-bounces@seabios.org Sender: "SeaBIOS" X-Duff: Orig. Duff, Duff Lite, Duff Dry, Duff Dark, Raspberry Duff, Lady Duff, Red Duff, Tartar Control Duff X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Stephen Douthit Tested-by: Stephen Douthit --- src/hw/tpm_drivers.c | 80 ++++++++++++++++++++++--------------------------= ---- 1 file changed, 33 insertions(+), 47 deletions(-) diff --git a/src/hw/tpm_drivers.c b/src/hw/tpm_drivers.c index 1fd05e1..8d6fc33 100644 --- a/src/hw/tpm_drivers.c +++ b/src/hw/tpm_drivers.c @@ -63,6 +63,39 @@ static void *crb_cmd; static u32 crb_resp_size; static void *crb_resp; =20 +static u32 wait_reg8(u8* reg, u32 time, u8 mask, u8 expect) +{ + if (!CONFIG_TCGBIOS) + return 0; + + u32 rc =3D 1; + u32 end =3D timer_calc_usec(time); + + for (;;) { + u8 sts =3D readl(reg); + if ((sts & mask) =3D=3D expect) { + rc =3D 0; + break; + } + if (timer_check(end)) { + warn_timeout(); + break; + } + yield(); + } + return rc; +} + +static u32 tis_wait_sts(u8 locty, u32 time, u8 mask, u8 expect) +{ + return wait_reg8(TIS_REG(locty, TIS_REG_STS), time, mask, expect); +} + +static u32 crb_wait_reg(u8 locty, u16 reg, u32 time, u8 mask, u8 expect) +{ + return wait_reg8(CRB_REG(locty, reg), time, mask, expect); +} + /* if device is not there, return '0', '1' otherwise */ static u32 tis_probe(void) { @@ -152,30 +185,6 @@ static void set_timeouts(u32 timeouts[4], u32 duration= s[3]) memcpy(dus, durations, 3 * sizeof(u32)); } =20 - -static u32 tis_wait_sts(u8 locty, u32 time, u8 mask, u8 expect) -{ - if (!CONFIG_TCGBIOS) - return 0; - - u32 rc =3D 1; - u32 end =3D timer_calc_usec(time); - - for (;;) { - u8 sts =3D readb(TIS_REG(locty, TIS_REG_STS)); - if ((sts & mask) =3D=3D expect) { - rc =3D 0; - break; - } - if (timer_check(end)) { - warn_timeout(); - break; - } - yield(); - } - return rc; -} - static u32 tis_activate(u8 locty) { if (!CONFIG_TCGBIOS) @@ -399,29 +408,6 @@ static u32 crb_init(void) return 0; } =20 -static u32 crb_wait_reg(u8 locty, u8 reg, u32 time, u8 mask, u8 expect) -{ - if (!CONFIG_TCGBIOS) - return 0; - - u32 rc =3D 1; - u32 end =3D timer_calc_usec(time); - - for (;;) { - u8 sts =3D readl(CRB_REG(locty, reg)); - if ((sts & mask) =3D=3D expect) { - rc =3D 0; - break; - } - if (timer_check(end)) { - warn_timeout(); - break; - } - yield(); - } - return rc; -} - static u32 crb_activate(u8 locty) { if (!CONFIG_TCGBIOS) --=20 2.14.3 _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios From nobody Thu Mar 28 16:31:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) smtp.mailfrom=seabios-bounces@seabios.org Return-Path: Received: from mail.coreboot.org (mail.coreboot.org [80.81.252.135]) by mx.zohomail.com with SMTPS id 1519686266603260.87107515394325; Mon, 26 Feb 2018 15:04:26 -0800 (PST) Received: from [127.0.0.1] (helo=ra.coreboot.org) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1eqRqD-0008Vo-Ck; Tue, 27 Feb 2018 00:05:53 +0100 Received: from mail-eopbgr10110.outbound.protection.outlook.com ([40.107.1.110] helo=EUR02-HE1-obe.outbound.protection.outlook.com) by mail.coreboot.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) (Exim 4.86_2) (envelope-from ) id 1eqPZ5-00042X-KQ for seabios@seabios.org; Mon, 26 Feb 2018 21:40:13 +0100 Received: from localhost.localdomain (96.82.2.57) by VI1PR04MB1357.eurprd04.prod.outlook.com (2a01:111:e400:5348::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Mon, 26 Feb 2018 20:37:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=SILICOMLTD.onmicrosoft.com; s=selector1-silicomusa-com01i; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ReSYHEoU/iK2q9uT/FDQ/6CdwY6QsPLHse9yjBumSVg=; b=5hXjskhd3aRiwqGtdw2VT0oMTCG6wvgF3ijnwQAq4zfsUpCw0Vlf37AM0Uc3GRBvOqv4mgHV+niaXRmTTlTPm1DbsT6fXSh17qSuYA4dB6w3xgC33Vz8G8wenwUJv4In14XbE/0P0YLdcats9U9mvD4+oDwmJ+49yekp9I1c69s= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=stephend@silicom-usa.com; From: Stephen Douthit To: Kevin O'Connor , Stefan Berger , seabios@seabios.org Date: Mon, 26 Feb 2018 15:37:33 -0500 Message-Id: <20180226203734.558-3-stephend@silicom-usa.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180226203734.558-1-stephend@silicom-usa.com> References: <20180226203734.558-1-stephend@silicom-usa.com> MIME-Version: 1.0 X-Originating-IP: [96.82.2.57] X-ClientProxiedBy: DM5PR21CA0049.namprd21.prod.outlook.com (2603:10b6:3:129::11) To VI1PR04MB1357.eurprd04.prod.outlook.com (2a01:111:e400:5348::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c462851-84d3-4ef7-7cfa-08d57d58d2ee X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:VI1PR04MB1357; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 3:eRgtlCxEN6RYbMH/VzJhdPMqCWX3GtckktyZ+5AnNApG7QSnfYQIueS4vtjPKld9qCUVNDv7gD9VydhYPgIdVhSHASZuU5KQl0FIRNqyaKPo2ouHZ1Gtmd6WLvxOe8EVKf7YX+8BzbERz7V4WCR2bucdp/e+x71o47y+mojCfC2bDsdNiMrsLRqhgRsPvqpCOwLtgAMaH8MqbPsTDhCLibAvCeXZ+CrEC+6rnm0TmEeN+WneBvhjkKpCzxP1lKhh; 25:LUMUMYcLBrm6/D+pnZ6IBo+rA95DB66Z6be6GCrOCINdUV86BgEGcZGjTibkm/dcPadmVnk8aP6hixEccYqMVHiFOVS0AQ1P74+mJUwVYfNc3fjaUjIWup9636mBnufAasU0k2DO3wRbu7Da6IoG74eTfiiGO0eaX2QjP+QI3RjfwttVjcku5VQWO7eWHa/ughAB7tqcIAvfC8y2lG4pXkJjfkZfGAXRfBbDjTFGTYgrP5mV7imSxxuOF6hSVMKcjOtux7R/0KId1XXLgTZ4WCfydEsX+Zza1jV4l1zbaZsYLNlOSIU8fePETkC4T1WfX9lgkB7FdfONjT3JuqlhfQ==; 31:EqqtvYOkpoOa7JUQ/X24mFP6cWWbXA77LMtbi5kxIjlpsRLIbp11GtOTUGrjzfWpzLMV1LbNA4HosyrS0pEbbHevx/Rue6PwM3HL29NVwEHLOLoC1lMk6LxHR1qm07Ws138i2jIbsCEZqJR4IUwvwrtCB+Rq3/mtx+mSUfqV9lTa4Ygx/PSc1DZUt+3/ftLeV6JxpPc9kulvixgWIoNEDqXX2C0/NdQY5rC3pGlU4W8= X-MS-TrafficTypeDiagnostic: VI1PR04MB1357: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 20:r2xkiOFEa+2WlR6Cq7JDNl9jQfFBSaSJo6OQaQs6L1DQIiJcLgdRJhPyE0jdGOJyE/wiJJK5WXI+3HlLuoJxKBjMa1l7hWyn3TDq0HY6oPRSTjZmzXtjpy8ZRMoinC13qgjjarkoMhyFL9CpLyvXGYPQprWlCa9AX8KzQbk4sgKnChTpMVRY1fh5gIgTmTldshFIThxpXBDmuFWSxpNmMsPn0gDbOXIWD5Srq1UfVBidUYccBYZQjkEXWoXwdOS4WSOhSiXwLJq5OtSbTtXlnu48Oqnst0p8VldtQKibV7CNZLIiIR0X4ctK9Q32oHVN7cKWbLLM1BfbvIMo6NvaHcfmEnbLONHaywOU2EQDrsPIo4ULFHRAI4+omkg1pW95EtnboBpKOHyHkP52ziWLiOZsQtGJMVffS/hKOg2ANmwzPrU4hxk5CVuZljemZ8aBu3RypsIH7LR1WEVLJIjDiXf3U5ccnJ7PZqLkDA6QXDQs7f1bG8uoFXG8FCy4PacX; 4:Jl5SHEV7H0vSqt9HnjRatmavg5GEDWHQfx10tSujmgUohpFoGrCB5RcC8ny2WBnW0dhNg3DqWPN2DTNXYPAC1XCc9lRQHpdoGeAI64H6VoPc9YovrUqxqM7379fjuqEvf27muDys9HXiC+V9EJsOD7bZV35Uq0dpnATyHQ36n5gyW3JaFfJY+pfaVdwx5gSIiRWN9BHW+IVmor94U5T586QKzq0JfFnpkjKN27BwBvVpD2DdtHAJMfwAKq/XDjD3p34Z7S/6ujgUvZQ847kewg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231220)(944501161)(52105095)(3002001)(10201501046)(6041288)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR04MB1357; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB1357; X-Forefront-PRVS: 05954A7C45 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(366004)(396003)(39850400004)(39380400002)(376002)(346002)(199004)(189003)(6116002)(3846002)(25786009)(386003)(106356001)(6666003)(6506007)(76176011)(50226002)(105586002)(1076002)(8936002)(48376002)(50466002)(53936002)(8676002)(6512007)(2906002)(59450400001)(97736004)(7736002)(5660300001)(36756003)(478600001)(52116002)(47776003)(66066001)(305945005)(110136005)(81156014)(81166006)(86362001)(16586007)(316002)(16526019)(6486002)(26005)(186003)(51416003)(1857600001)(2950100002)(68736007); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR04MB1357; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) client-ip=80.81.252.135; envelope-from=seabios-bounces@seabios.org; helo=mail.coreboot.org; Received-SPF: None (protection.outlook.com: silicom-usa.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB1357; 23:gHcP8Y+bwWn0QEphaZKiAbP9vJV4IssKZPGriq5J0?= =?us-ascii?Q?1YLeOpfM0888/pkxZMaEOyNrVZamT0X+awN++rP9pdFasmOUb9dvjTifJFTx?= =?us-ascii?Q?AfV0LcSCWhKJfBYIXCMv9bUFq6IBFrIrs0KIjfIox3PGlAaxlWPeWhu6pbwk?= =?us-ascii?Q?Rcpj1jGF3z4vkHRhBA7qdfrVXuJhZs0Jyxz9h9MkNADrAzA0PlA4SSCePL3M?= =?us-ascii?Q?lxBNgo3krrfpc5/axeMIj9Hx4gAgkK9PFbFxLdQOb0EwAWCGwhqs/utBqoKV?= =?us-ascii?Q?CaeGu3nYCTkY0UZxDVfjSX8nqvigvlsulfCb85Cbxwm6g4hBNKWBTAtd5Akl?= =?us-ascii?Q?V3G08R7OmB9yuodt//HnL2pSybDiN9VNEQUWQRTk6BY+bxUvGcLN0Ce5AThS?= =?us-ascii?Q?BpzHM5ULaJyvrmtV7CdXgKfwndQb7elK7ogL/Krg9q53Tdv1iY8VLDB4pcl1?= =?us-ascii?Q?96hfAAKPLg84/oJwC+MfO19I21+zQc3pBVF4q3pgiH49LsDQSos57FDOivkj?= =?us-ascii?Q?c+xdtRhZ4OYpBDmjBURpcIe0jo8SYg7gYY5rIMc1sPhd0JMSMhVbCBd+JVya?= =?us-ascii?Q?rXSNLMfLdiI/ENFLkb8TJwHwwzsl5j5yKm53c4AGv/cj13NM1ozCCXgSJrTL?= =?us-ascii?Q?UoDUShPGc/v2gh/pUiopCx6WcWYPb9Ym2NGIS/78f8DpdKSeTLA/8HIuKlhg?= =?us-ascii?Q?6CS17oVJI+2vmB6SupakXOgDlDC+Fx7xC7osoOLO6YQhhQJwSRmJB8NTfvRs?= =?us-ascii?Q?FpPJ9nZdWYflqyQ1EVvxbodyazJlXnEkfy0eUMaJy8a6Vrlwpcy/ybvN0Da6?= =?us-ascii?Q?0b5/N4VwOJfT/cnfY8wwc7TMgStkNBciVHPOCgMe16wViL2EiTQWN7f3NSPb?= =?us-ascii?Q?gLXAOlCj58ai+1mmp7j1Dv70D5E1bw3AKsJkT85phkxM7GNx6vkfmx/GvGWD?= =?us-ascii?Q?8EEaHvLdKKrqpjtyvslJh4mpQdqkA6NidJz8HssAq/Sf3AA0FpOqvnQ9YzKw?= =?us-ascii?Q?1L2xfINmD7UewVGwVsEjwYfvpP3t71oXMD72XBeXDxDDNSVBJUn/eqQhN538?= =?us-ascii?Q?M+3HHlUM1o+N0ehGjveJmxuwvHSZ9zQbat8PPR4GJFzir3/nL4ZRGFrwcL/k?= =?us-ascii?Q?sDYdaQXe8OwLB5lGjCxJPU63i9CP963QWCIBJpJ9VhCc/VeIR4SPQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 6:50Dw4VkXXQKSFAWKkf/j7hOc154d7XkDeYTbxagDSenE4Uy6csKo22Ji1Yu2gWq/HDQp3eTVH1INXtDnZjgZyM9hAvE2CebfhOE1iGZngcpmCjmVsz1QFxe+dE8yShHflWS8s1BQpZK8Ik+S8acVVhebcQoDptrO1io30rcDRJKysp2ObpwBHOPFiDhYpMxtv4nTk9Mxs/mlZXLwe1ufGGXtXNhUjUbYPCrRGkGURyj3WMa9DxENlMj93onMCwHcLnbt4KVjxpJFQc0hMFZGkmZ8xHWErptr7w30PpBB6juQ5O//C7NN2z1pvd5CyWJocwYLYWJKqVZGCu8W7uNbGGKWuztGhqXZgYNlHHS4bXI=; 5:s8KpWoD6RAfZz6oedtfwc8a+eWgdIdyvB1B1VolenvhbAZkB8TuUXcIxvEUMcBNhUKVzznWvcu8M6BjXmbG2LJJc6QwPVK88aU6AM4TLyWHtIXNxhrK3IZncFihCVMXhfPApzi7yjVCuacTDuq2+6swTVF14pdGR95P9muYO7Oc=; 24:y/Nj1kbpqpUPJekqv/RyCm92s721deQkCl4caJHCFMm0fND5v7PZRbSBt4jGyPL/fVk75Vz1Z7z8Y05TD/EJicB8kdLtm4e+M5plGAUI66M=; 7:tTrr+3AYYAaAy46LgfQBBzj44nctrouL8C9u0Q8YUWHiknBPV+DxEItQq64MajcAOJhhfhhZ2UYC5TOtWTGOY8mf5K324d4A5m+e77wcvD2G4vRIkCbVvnzIt4q05ljqos3Q54uyq+7EIXQJleLoJivFX1SVYb5RU2SDs5CyjLq5SznN+XFa6P0swCDWTruMT0IonZlAgYfl5dsqCUZ1hMyUrL7fGKb1B/DTc1jjxzJSyRCPTg4k2/mWWs+o0HfU SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: silicom-usa.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2018 20:37:58.3169 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4c462851-84d3-4ef7-7cfa-08d57d58d2ee X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c9e326d8-ce47-4930-8612-cc99d3c87ad1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB1357 X-Spam-Score: -0.6 (/) X-Mailman-Approved-At: Tue, 27 Feb 2018 00:05:50 +0100 Subject: [SeaBIOS] [PATCH 2/3] tpm: Wait for interface startup when probing X-BeenThere: seabios@seabios.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SeaBIOS mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Errors-To: seabios-bounces@seabios.org Sender: "SeaBIOS" X-Duff: Orig. Duff, Duff Lite, Duff Dry, Duff Dark, Raspberry Duff, Lady Duff, Red Duff, Tartar Control Duff X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This is based on wait_startup() from the Linux tpm_tis driver. Signed-off-by: Stephen Douthit Tested-by: Stephen Douthit Reviewed-by: Stefan Berger --- src/hw/tpm_drivers.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/hw/tpm_drivers.c b/src/hw/tpm_drivers.c index 8d6fc33..789d70a 100644 --- a/src/hw/tpm_drivers.c +++ b/src/hw/tpm_drivers.c @@ -86,6 +86,11 @@ static u32 wait_reg8(u8* reg, u32 time, u8 mask, u8 expe= ct) return rc; } =20 +static u32 tis_wait_access(u8 locty, u32 time, u8 mask, u8 expect) +{ + return wait_reg8(TIS_REG(locty, TIS_REG_ACCESS), time, mask, expect); +} + static u32 tis_wait_sts(u8 locty, u32 time, u8 mask, u8 expect) { return wait_reg8(TIS_REG(locty, TIS_REG_STS), time, mask, expect); @@ -102,7 +107,13 @@ static u32 tis_probe(void) if (!CONFIG_TCGBIOS) return 0; =20 - u32 rc =3D 0; + /* Wait for the interface to report it's ready */ + u32 rc =3D tis_wait_access(0, TIS_DEFAULT_TIMEOUT_A, + TIS_ACCESS_TPM_REG_VALID_STS, + TIS_ACCESS_TPM_REG_VALID_STS); + if (rc) + return 0; + u32 didvid =3D readl(TIS_REG(0, TIS_REG_DID_VID)); =20 if ((didvid !=3D 0) && (didvid !=3D 0xffffffff)) --=20 2.14.3 _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios From nobody Thu Mar 28 16:31:07 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) smtp.mailfrom=seabios-bounces@seabios.org Return-Path: Received: from mail.coreboot.org (mail.coreboot.org [80.81.252.135]) by mx.zohomail.com with SMTPS id 1519686274589831.4553056855585; Mon, 26 Feb 2018 15:04:34 -0800 (PST) Received: from [127.0.0.1] (helo=ra.coreboot.org) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1eqRqE-0008WI-Oc; Tue, 27 Feb 2018 00:05:54 +0100 Received: from mail-eopbgr10110.outbound.protection.outlook.com ([40.107.1.110] helo=EUR02-HE1-obe.outbound.protection.outlook.com) by mail.coreboot.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) (Exim 4.86_2) (envelope-from ) id 1eqPZG-00042X-MF for seabios@seabios.org; Mon, 26 Feb 2018 21:40:24 +0100 Received: from localhost.localdomain (96.82.2.57) by VI1PR04MB1357.eurprd04.prod.outlook.com (2a01:111:e400:5348::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Mon, 26 Feb 2018 20:37:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=SILICOMLTD.onmicrosoft.com; s=selector1-silicomusa-com01i; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ZQnh4C/mCUDAyFYE/moO8arT1OmvjvYWVE4uUv62u1Y=; b=0jqRwtMcxAoIi+TiO5ne78jJFl4f6/tKRuyt+a61Aa0cIc1A2X4DXUkr/cxxK8lCDNaarDCopdxKT5xsgm7EXma7mE/VCPiXJGoye4Yxpzk6SiJJ+LgS6xjnrNTU5qepAkk3XnWeV7T9tgvpMlhlp5C2YzwiS66pm2eK731LmyA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=stephend@silicom-usa.com; From: Stephen Douthit To: Kevin O'Connor , Stefan Berger , seabios@seabios.org Date: Mon, 26 Feb 2018 15:37:34 -0500 Message-Id: <20180226203734.558-4-stephend@silicom-usa.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180226203734.558-1-stephend@silicom-usa.com> References: <20180226203734.558-1-stephend@silicom-usa.com> MIME-Version: 1.0 X-Originating-IP: [96.82.2.57] X-ClientProxiedBy: DM5PR21CA0049.namprd21.prod.outlook.com (2603:10b6:3:129::11) To VI1PR04MB1357.eurprd04.prod.outlook.com (2a01:111:e400:5348::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c4602ea4-5dba-494c-62da-08d57d58d3d3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:VI1PR04MB1357; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 3:8BxhAFPkGgxi+IZN4O661jpycuzG55nnA7T/AMegJB2VPpO5ADLDqLFPFIzKXQn1h3pGa0CAYPHrFyYj7ETqvVzKK+W9vdYMXKGD1I18ieSfSMaUwkaLgsvRz09Aig2jQrl3DbgscMr/eV+BAMbrRD2d3b8/OhVHNXMHhottvhxLr9fmmJWnxz2Mtl+oR5eY+DFeb2mUqU/bzsoNco0cumLqJOhOhDfhEwieCvpe+PLiOQwJHHahNWnNsPoeEWm1; 25:EHLNkaKJj40FtAh+9G/Py5HAMoVZwrxaorvHfs7s8j2IQnwO+nXMF9RY3UZ/QZNBzsHaOIc4cCzLlCxHpchz9DdodBUDOO7vrBV7JhqNdmAg15cSi31BMXTQbfvmy8zglfT+jaWhS/yo6a5Am2s3VO+pPV5Rc3OOjKKqyUmJ1RxIwa6LngThRTOoqmuhd09lEIeXJT2TbKgb6bhih05FWqboEMJzobAaf42o7hugd246FnUf98DOJ1oDLlaDJ7uFCqqoUAAnIJQk7w0wWr2gC0muL4FCkzKTN9peV01GmOkqzjmVckeMxu3Ex8do2+9nXAVO/oRB037lT6kliuA2sA==; 31:V4m1FdzSOOkW4hiH/Zv+WCnEb30m2WsAk03cs/jx9HRetM096KF5admuJ56rAsI5PbKihDRsutRqHgdTMiS8Uw/KHRE+B9qbROrGTXXBmFcnQ5DyS8hMClssVRS0RcoFT3FwZ0C/ov8qO21EW+vPINiqvb0ovNlKIafuM08w2ULdHn4OyCIW9KKD1Ko1zwkETpL4wbHo/Ysv+wUgiM3tTEfGKX43nG2m1TfR8nKV4n8= X-MS-TrafficTypeDiagnostic: VI1PR04MB1357: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 20:nbxAteTZeGRZ+EHmcuISXhGmFmsTO6qmLduHqwVzOPByjrgY4N9zhwXplvmyW9c6xwveBEPb+LSdku15VhLpGpLuoGfNIL9bqPFsttsV7b9TBSR/42WRLXMfhpntDcRuSNndB2u5Oe7bpuu6m55lcDWJ2JfL6e+orfbOz5dmGyE8auvEMtG75Ren4t2HJ6yWeJq5DQWl23XlKzFnuTDE5MduD1WbINYECH7iMm7g16uzYcQK/AoIXn+TIU9+ET2biKDULtbVSof/s5NE/FM94Va3wXRiRpHedsamZR0GhB6F07IqjTKfVtCWUD+tfmV1gvt3XvsnyEqOawEw7MG9UGr2qPC5VMYz3QTJoRqG9BLjvh7lFJ9tjS1SfdDiDnsnMR3EWS1M+vud+T2fuJXlzaOlhS5V0973vAHR9czp2BohsWd20AbrHydWI1B8oCHZNuCpZpc4t5ZWrlu0tbGfNCccerzltkdyMg/PsGCMH9+CTcy6b42Yt3eIoStUwQ7O; 4:sY3LzzakgUoB0R/sItK+DSdJtYvxZr5hHk/PyOYLwZ/n7lboXrhqwGlkOfHjGL1Tg5VnyxWk8BqGca2uvlLOgmlq73LVX+g6eC1zdlvNw2ObLcyvdt7fzeKYa7zDG2BywV9bqKpLKDeWNohYTQWEYixuwumO+LPnLIh7jQkTkTP0PHBJQZRag5CLfApaelrUKASXIZ051oncMGz0hvDXG3zDD+nXuvIi6WWcbsQs/+n5VRaodPwR8l7EHoqrHHPAm+71WWVuHfEbwBxP3xBcVQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231220)(944501161)(52105095)(3002001)(10201501046)(6041288)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR04MB1357; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB1357; X-Forefront-PRVS: 05954A7C45 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6069001)(366004)(396003)(39850400004)(39380400002)(376002)(346002)(199004)(189003)(6116002)(3846002)(25786009)(386003)(106356001)(6666003)(6506007)(76176011)(50226002)(105586002)(1076002)(8936002)(48376002)(50466002)(53936002)(8676002)(6512007)(2906002)(97736004)(7736002)(5660300001)(36756003)(478600001)(52116002)(47776003)(66066001)(305945005)(110136005)(81156014)(81166006)(86362001)(16586007)(316002)(16526019)(6486002)(26005)(186003)(51416003)(1857600001)(2950100002)(68736007); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR04MB1357; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) client-ip=80.81.252.135; envelope-from=seabios-bounces@seabios.org; helo=mail.coreboot.org; Received-SPF: None (protection.outlook.com: silicom-usa.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB1357; 23:dYQSMp5GpN4g+XX73NPgqAoVYWk/Ee+/FSy/J9joJ?= =?us-ascii?Q?b0NyEa7d6g7gUoKcNkQWcvFQE7bB21qnTP9uxyWOmpqnLU8NeoSueazpjCNX?= =?us-ascii?Q?wWgpAxk+8cStwAmI6vGNWoOIXEXIT+JDmhtXxZ+uSDxLmTDBJ+XTfowSQ30P?= =?us-ascii?Q?MSG3ogVob2SdqAtkGp6IG+LJCWFjjqin/4LNU8Oyk3gKg+z6/JoUHHEB1pJT?= =?us-ascii?Q?9jCF4t+aoESa0fB1Z5r8XW9Qq13bJ2GK7QmhXo5cRtNdwqwDzKh2qWu51SNV?= =?us-ascii?Q?dHjTWMBcjiwMlirSl2Ylipp4P/KRjOKk2+VfxahqeCfcYyjGp45lSxLBZaZ7?= =?us-ascii?Q?as24MPmwii5NX5itcSGc/DIl7JTU3fgDaNrbanpBIEcwOBKx7BgEwJgLKHj+?= =?us-ascii?Q?X7v0p0yOA4cm0tdofo3DLBaouEj8M+gVszdgUAW7dtyiR4utfH5pnLT8FIv0?= =?us-ascii?Q?r3UXnyfcw3m7I9sPoNMfR6LtNsdTuXDjbS+t2moT+/8o8c7RB+Dm2ryrJu4L?= =?us-ascii?Q?5BqEqInaeGXfLVVV+9Q/qBRCsXvrtYfdFPIwMnztIlZhkHUR1bC505DDxpuN?= =?us-ascii?Q?bXpWn9391ueML5fb3Jk4MNPNBCHBs/c/ozsjCXdlErzof9U6v6Nvzaz9gfM4?= =?us-ascii?Q?sFuc881aaX6O0IbD3cQk1NzGxqoBeZxe82NKRxuym4G4V10k7Fi/ZJ8Mpkhc?= =?us-ascii?Q?aeU7rX8R2/aA3Bw9a5f5fGwZ6YCN+bJcpIENBA4BfByU1Emaf7sXxc4c9Nfu?= =?us-ascii?Q?5E8Td/d+V1YNwxRbk/+Pyfvs2Kzq0UWZyXUUdmHkyi4h1en/99a0EqTIOIkE?= =?us-ascii?Q?+LHoYdWPbRGx461xMvOqW8F90K0A0xITs6/EzrYJtNVSK2kQkSDe5vne3x5F?= =?us-ascii?Q?3fem+YoOd78wekvnsRIFJTMK9Sttu+k+w0EZJtSoh4PAOviNWmCBRZczIepQ?= =?us-ascii?Q?tvauqwohCiCo3U2EeQJU5GY09+0Jc/y5s27xexplMlT32wjwVSU556Wcmz01?= =?us-ascii?Q?T4u3rCLK4QIxta6Hmjbpi+cE4br2By92+hsJNUH0f4G4pIk1Ux+5Tg7+8urF?= =?us-ascii?Q?xXVhw50Fw+QVSNEPIQW+zZCwdzfH2nX62nrCcRS+wtDGr6fD6MIiB4FAjcli?= =?us-ascii?Q?+1LNifOtKRp//huLQQJscTz9Z/s03LV?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB1357; 6:3xUQj0oYBFwoED0LZOCas/zPMPh/5JdtSoCfPBIT/+bAw/LJBYL2SdnF8DOwE+pZpK2ZmWRpDQEn8AFDftoOphBR189gV/e4DGO+Fbvx22tt6dp/MwJ8sEJ2zaAFK3fksy+FwaG35zF1/NVOo2Ll8LjumEylpxfMDL6Rlt8ao4vcBAq2wk+96BP+RFY0xPqln2KlL4MKNjmQrmRTDZEcZk63y+vdA9n+qPttHI9lT0ppJtTS40mwJ1DA1aSpXjqkjZiOLOEgBk2JjytjfiwUn+rbEsPo9k0G20jgWa0TtWKwPA06Kb2M4s6UX2M6lZhp1BmGZhll4o4VbbUzXVAUZLbXCs8e0koDFngViWH9gak=; 5:0kNHglmT2JMp1tLEz/Z4OSZq8VGNpONRmX2VwbOpGzqSJ1VxJatjU7wfXqwM/IfgUS+tRU96tkzOUOdoCffAlaJ4oKuN5GEKL+peniN3sLdRfER3Htusd3bIIlaKluZ26t+RXcteBDNdk6Y1H9Aq08xnDjpphPVIYt+wUAfw36M=; 24:smjib4tFepbZIhbh2Sa1zDbQeNW9UMCHux1Oe6T7QHyC+QoVi0y9Pbthhr4wZYpnUOfpMOiegwTPIO/HPp7iKO6AYvLghB+yAtL2j0VKGb0=; 7:NQ67rvBqnf9URSAUonFQ/T/M91mjtjrbAYOn+9B+lMWK7yNBXZUbGn9wW4SN1spfiHLmvoYfT5ZkewVwzWNxLNC03okOLy6AZgbwwsStrJdbz4niNhEI+PhI1H+U6r1Wvf6rU8ZUZd4tP82Bm+rGedM2FmhqFmzITSoduRISIm9vb2HfV1Qj0OLqaNQHVENzqYK8YLC5F8XMGrVONwZ7TL3v6YcVjhFiktjWLof/fzVJJRy/3uU5Kku4HcBgWU4A SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: silicom-usa.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2018 20:37:59.7545 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c4602ea4-5dba-494c-62da-08d57d58d3d3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c9e326d8-ce47-4930-8612-cc99d3c87ad1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB1357 X-Spam-Score: -1.2 (-) X-Mailman-Approved-At: Tue, 27 Feb 2018 00:05:50 +0100 Subject: [SeaBIOS] [PATCH 3/3] tpm: Support 2.0 TPM devices connected to a TIS host X-BeenThere: seabios@seabios.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SeaBIOS mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Errors-To: seabios-bounces@seabios.org Sender: "SeaBIOS" X-Duff: Orig. Duff, Duff Lite, Duff Dry, Duff Dark, Raspberry Duff, Lady Duff, Red Duff, Tartar Control Duff X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" tis_get_tpm_version() was returning the interface version, which is always 1.2 since tis_probe() would have failed if the interface wasn't TIS. New version check is based on the tpm2_probe() function from the Linux tpm_tis driver. Signed-off-by: Stephen Douthit Tested-by: Stephen Douthit --- src/hw/tpm_drivers.c | 21 +++++++++++++++------ src/std/tcg.h | 1 + src/tcgbios.c | 2 +- src/tcgbios.h | 4 ++++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/hw/tpm_drivers.c b/src/hw/tpm_drivers.c index 789d70a..32c34df 100644 --- a/src/hw/tpm_drivers.c +++ b/src/hw/tpm_drivers.c @@ -11,6 +11,7 @@ #include "config.h" // CONFIG_TPM_TIS_SHA1THRESHOLD #include "hw/tpm_drivers.h" // struct tpm_driver #include "std/tcg.h" // TCG_RESPONSE_TIMEOUT +#include "tcgbios.h" // tpm20_getcapability #include "output.h" // warn_timeout #include "stacks.h" // yield #include "string.h" // memcpy @@ -119,7 +120,7 @@ static u32 tis_probe(void) if ((didvid !=3D 0) && (didvid !=3D 0xffffffff)) rc =3D 1; =20 - /* TPM 2 has an interface register */ + /* Low 32 bits of CRB interface register overlap TIS interface registe= r */ u32 ifaceid =3D readl(TIS_REG(0, TIS_REG_IFACE_ID)); =20 if ((ifaceid & 0xf) !=3D 0xf) { @@ -142,13 +143,21 @@ static u32 tis_probe(void) =20 static TPMVersion tis_get_tpm_version(void) { - /* TPM 2 has an interface register */ - u32 ifaceid =3D readl(TIS_REG(0, TIS_REG_IFACE_ID)); + u8 buffer[128]; + int ret; + struct tpm2_res_getcapability *trg =3D + (struct tpm2_res_getcapability *)&buffer; + + ret =3D tpm20_getcapability(TPM2_CAP_TPM_PROPERTIES, cpu_to_be32(0x100= ), + cpu_to_be32(1), &trg->hdr, sizeof(buffer)); + if (ret =3D=3D TPM2_RC_INITIALIZE) + return TPM_VERSION_2; + else if (ret) + return TPM_VERSION_NONE; =20 - if ((ifaceid & 0xf) =3D=3D 0) { - /* TPM 2 */ + if (cpu_to_be32(trg->hdr.tag) =3D=3D TPM2_ST_NO_SESSIONS) return TPM_VERSION_2; - } + return TPM_VERSION_1_2; } =20 diff --git a/src/std/tcg.h b/src/std/tcg.h index 09a92d8..4c07493 100644 --- a/src/std/tcg.h +++ b/src/std/tcg.h @@ -357,6 +357,7 @@ struct tpm_res_sha1complete { =20 /* TPM 2 Capabilities */ #define TPM2_CAP_PCRS 0x00000005 +#define TPM2_CAP_TPM_PROPERTIES 0x00000006 =20 /* TPM 2 data structures */ =20 diff --git a/src/tcgbios.c b/src/tcgbios.c index 40b3028..b86bf64 100644 --- a/src/tcgbios.c +++ b/src/tcgbios.c @@ -381,7 +381,7 @@ tpm_simple_cmd(u8 locty, u32 ordinal return ret; } =20 -static int +int tpm20_getcapability(u32 capability, u32 property, u32 count, struct tpm_rsp_header *rsp, u32 rsize) { diff --git a/src/tcgbios.h b/src/tcgbios.h index 32fb941..9fc711a 100644 --- a/src/tcgbios.h +++ b/src/tcgbios.h @@ -1,6 +1,7 @@ #ifndef TCGBIOS_H #define TCGBIOS_H =20 +#include "std/tcg.h" // struct tpm_rsp_header #include "types.h" =20 struct bregs; @@ -15,5 +16,8 @@ void tpm_add_cdrom_catalog(const u8 *addr, u32 length); void tpm_option_rom(const void *addr, u32 len); int tpm_can_show_menu(void); void tpm_menu(void); +int +tpm20_getcapability(u32 capability, u32 property, u32 count, + struct tpm_rsp_header *rsp, u32 rsize); =20 #endif /* TCGBIOS_H */ --=20 2.14.3 _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios