From patchwork Fri Sep 14 18:27:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 970026 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="Zx1XJXuJ"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42BkjT2krHz9sBJ for ; Sat, 15 Sep 2018 04:35:41 +1000 (AEST) Received: from localhost ([::1]:52903 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g0swM-0004cJ-Mx for incoming@patchwork.ozlabs.org; Fri, 14 Sep 2018 14:35:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35661) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g0sob-0008RG-QW for qemu-devel@nongnu.org; Fri, 14 Sep 2018 14:27:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g0soY-0003jX-GW for qemu-devel@nongnu.org; Fri, 14 Sep 2018 14:27:37 -0400 Received: from mail-eopbgr690078.outbound.protection.outlook.com ([40.107.69.78]:6062 helo=NAM04-CO1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1g0soY-0003it-5t for qemu-devel@nongnu.org; Fri, 14 Sep 2018 14:27:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KHS+kQZb8b/UljuhQE5VBDdMqEpB1onjd/06AEtkCiI=; b=Zx1XJXuJKjEHkIqr06qG4TCDY6QsovYehYXPgmEJAaL6puAxPOjEIToBbzUJWTFh1eNBRmXdEHa1DYQ3qaX/v/AGUy0OKpZTamScw/hMuF0Y0aoOiV+LxrvE3NYCO0j28O32FZ8F8d7HY39ii3TGygBmGtoKF6xfFIAM0akpN/E= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from sbrijesh-desktop.amd.com (165.204.77.1) by DM6PR12MB2684.namprd12.prod.outlook.com (2603:10b6:5:4a::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.16; Fri, 14 Sep 2018 18:27:30 +0000 From: Brijesh Singh To: qemu-devel@nongnu.org Date: Fri, 14 Sep 2018 13:27:01 -0500 Message-Id: <1536949623-23564-7-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1536949623-23564-1-git-send-email-brijesh.singh@amd.com> References: <1536949623-23564-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BYAPR01CA0001.prod.exchangelabs.com (2603:10b6:a02:80::14) To DM6PR12MB2684.namprd12.prod.outlook.com (2603:10b6:5:4a::33) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4f4f9ecd-cbe0-4e52-1e35-08d61a6fbbc2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DM6PR12MB2684; X-Microsoft-Exchange-Diagnostics: 1; DM6PR12MB2684; 3:2pC730viTexV3g7dBqxqS2FA8qTJ/cRki5oHKH840BuV1XRsfbbLqmYadfLP52r/hxucmP5h2fmvS2Waz88MP8xV8PFeg4Q35hLN/aYk5tF7fi1MWrMhWFzNtu/DuFvWa06dAY77uNbGBI/0iiG4scdBYHii21j/AyfXTXHWmWTqW8wVE8c1o97xns3/VGYNRRMysd0Gd8bCT7Rgwj4BVE0mQydD7NiX8cmRUTMaQh+8Gid0BJPUgQpdbLZdBgu4; 25:z/fQQevWdGT5q5str+KXMc1JtRemrzNF09L2f8loSjK0CKYd22RvkxP+8ZlntsZkqXZnp6yMDJddU28QrVgq1wkr7tuLBez/e4gowJMy/MuniDWQNV8LU7GLai8lKmqYeqJCJZgyI/Deksrj4KzKz/LhN6gbJu+3JNSQ0oZb4vgb1spK0N1iMTmo5sII9az54yKSvgV1X8C4BdeL67SuGSBBdoaYvx5S4+osnG/afQfNHxPwWWK+eyFMrVKjvI0pcTN7gChqyRHAfEYxU3YENMWjR1wnfJA0dDFI8NQTQ02n3qANjJWWfYfFMVOoHPPsGySEUC5/WF67ftGkAZktYg==; 31:4KVgQANfCr7de18PtlglimccSiirGWntskdytSmVYRy53+7FqQgVZymds4zM/Bnv94bfsC3JHakv5eblzn/Dvakf+qlfu346YPjrTPKz2hfEWjiRsUeO9pHoo6WzwzpFbUj3t3aEJ3aGFqmieClpY5F5F7PBW0C7BR1ngpnvusmLrl2L6autHHnuqxS4ZAKf4BCXrX8HA8+7/fOMLovTwKOmzu7/ivUCJAQK0OCyAYo= X-MS-TrafficTypeDiagnostic: DM6PR12MB2684: X-Microsoft-Exchange-Diagnostics: 1; DM6PR12MB2684; 20:30LGIYj0F7PkDo/W8GF++MSSDIXK/7N/Y4VDBa5pIVMaw6roB0IfBMy2oAaUCBfkjSIL84pQx4kfPGvF8CBymRGdf/DeYjk+PXsHm2rTrDGBpwF2W7wCk5DAJc0VGaJD/k/laXbb7wYkbg/t/Jjq9A1Bbn5ZlerO9yHC9codKMGM7ItgJu4OSipnozFVO6mzs+dPIRRM3LeleUfld/Jz86U4BhilPRePDqangeNaMdFvwjZwmV6Qz7o1LE5BfxPAmQcN/mOg9U1DZaNBLkorc57SkC3hPDXvxMNvyaZ3qz5jcEQmK7TLHSE84Fa6h3CZkNNc8h7k4b1XOqpC2TeYIPqGU7BKsvTdzU3ExWvOhElLXtz6Za9oqPE02MycxlHiAtesq4Ffrn14jSeryi+OqhoabUmVhafS6vqDMBut5Wngg0FO8bvlpcafKB8OpJo79UnbvQ2gO3/kjIAMhAr8og39ig61yTTIkogdKDE8+m01u/twhuAHC831HGXoaX1i; 4:9ZXx76+KwwdUBdSVWR4cU0msRM7wgT908GMkeR4lI35QKkULGPlTL5Dd7OH5auTcyCfr4E7Mf4zQOlZDxBfzdB2MTzJS1SCGURXruelrFiyrFBMk76IG09JHyNNuKoGy0F1bB+ewPvAzF+3RL/bKFf/aNLxtH0CaAiICvUWXP5Knql/WvBmM+thJJ+9Hj7VdGe8BPLWpmvmAQL1Pj7LbzG8yq5TUjr4f7TIyQCNivOWfwQID2xLpkPYG7nJLmKIFkuqhnDRoF53l5TKjCvUyT3jnqRLzPAHjq+S68pVvKmjPUBkAqNQrJtZn7y5lufBo31pU7ffmevBd5xvDaV6peE/oJxYBj9stKYW19RLZPrA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85827821059158)(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(3002001)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:DM6PR12MB2684; BCL:0; PCL:0; RULEID:; SRVR:DM6PR12MB2684; X-Forefront-PRVS: 07954CC105 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(396003)(136003)(39860400002)(346002)(376002)(366004)(189003)(199004)(50466002)(66066001)(48376002)(6306002)(2906002)(25786009)(446003)(16586007)(6486002)(76176011)(39060400002)(7736002)(68736007)(51416003)(7696005)(305945005)(316002)(6666003)(966005)(6916009)(47776003)(53936002)(52116002)(386003)(956004)(486006)(11346002)(5660300001)(54906003)(2616005)(8676002)(478600001)(36756003)(476003)(186003)(44832011)(105586002)(2361001)(3846002)(106356001)(26005)(81166006)(14444005)(81156014)(8936002)(2351001)(53416004)(16526019)(50226002)(4326008)(97736004)(6116002)(86362001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB2684; H:sbrijesh-desktop.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM6PR12MB2684; 23:1zxPOMGZke28cQVSQmgpbD0DGJ3U9Su+Y5QZ2phRY?= 3NREF9bx88ZSxjgJt+rzukxyeg2dMPSUz+suhsmSxkkaRHGREvek/MvTRerDCgyTmkYaR1r4RfAGxSn4KCtdMfLr1wRqOSB6SO/IQ4+T2OwuBLKrcFkmcf44e7ImximOEiFw5EUauVJYeZDorEQKa5FMB67pynoho9p3BqIKDU+xMNSWC6gjYe2sdO/M18Y2aTfufLlUrF4C2uN8aP+8qUbQYE6e1qrcpNq/N6zBBkaE4NdmxE5aNv/bGRdVuaaCU/yYzXBPwH4lW5oOhEOdv+J6oLn6G0lLnFVLyUuTLnBz3C5R1MK7Hem/za/6sevF5KMjmNBgP11O7wAmUnjdEdoGm1bNU5/McY1sqf/R19UXpRD+sNS9Q9VOHyqstfNmLWmSGSrkIONGUVVTPAUHiFQCUNjE9OcWwCsUy+2SK0+CqOgw1ODge6li95uFAbbXIIvP6mAuWAgMXTmxvTf0ja3QOcC4MWB5Of53GnORoBQgM/xiMpLW21wpcm0nyedj4WxnX7ZfjVMMgpTE4QnG+3wi7BUWm+xELO/0lXTd3YIC3OVlNaqxLfFJ1ulfLizFof6j1v7YI5tvqhatAHzs8c8ALctDgwTz4RP4S2DAcGA5J3aQINOw/xSPYA+Fe+lklLY8ohNrA0AfeioDsomeggGrBNL2Ib/zwkiR6+8YrFHg20Uhz0CRpH3Du/nwHsV/HmTQFKU4caHhznAiTsVf5jqmOGLrMsqSbZUsHGKhjUJL+3LQVwqZP+0pDiBPwCEN9+UXPplUlvEjEaWIGRaLY0BP1mPhdbqgIzIaC83l8kAAoiRzqCmOCSLQMiSOD7QHcOb62NXbocf0MNB7eBq695Y7+4smHUkR0O1DonXUxRHoUq0QRltONHdOHb583JDtPS1UXmgTNyJzaTYIU8yeQdIdKBYBIQFlKLN+fi4DDM3BtBcWH7PTz1zhOnA233iEgxjp917oWf+N17+CAWOMBauX2tPmkVgowJRVUiJuzei/d4vvSWAbLLIAcr8980TYfmHtAMxrco85O9NEwcFqvy1i6T36tsPFfOerzhasWA1OxBArPp/kNsba8Pz6Jq2kv5W/2qKVFeG8Gy7vcLpOC9jC7YcwK7664S9RQ5DoDqF6zcmFnFRIclOj9vEKaZ0IvI00XbCIOsmJ8WnQcU1zZf1vYMcZhIXXKJkkYOthLg43jRQ8iq445wybdNay25vGL6O1sd2fkKtnw0ZMSCXseybHp+Heyei769kmrvXTBtnDvSh5kBgGyREbB3QZqv3TQVAPV8F8TT6sIy+hSDXfh0CA2VzhvVfnlMXnvjwTTVTjd/vWoYNFZqX3Xt8qM/Cigq2ib/aqiq6DvQuF9yB+IA67JO/1/ORohfb4kATHjst6g== X-Microsoft-Antispam-Message-Info: Hf1yl+vbCNBEXOn6sb4yDRkKjTMFyo/cJLkxoESWog6iPcybXh2oLobI5StrgplWAhhRZFHGYtPExWOGp77cfVN9bf0lgidByP39I/Kx770jJ2dBhV4Hy0kfXFwngnm83ppqaGnyzeCzBR8yD7pFD6NIVDz52ShumpfoUqk1FOFKN4iEowrY4EBwMgeQsZUEQVeO4kTsMjn66m5A0d5aIoZGksO9oVMJJ8iN2qvTQnO4PB/KfaC175V9nDPAj+KiewmuDILJQz/yojteAWC4HCrjEalaBPdyxIJo6YnQx/2tynJHJofx/GCsraDQnH7g+V6BtIWkD5IIB1cP9k+Ir1u5lnQAjgPQ9DrI78Cdea0= X-Microsoft-Exchange-Diagnostics: 1; DM6PR12MB2684; 6:IYZKFRFz5cYlInZnD2tMrXM81ELmFZtxRRBzVoOGsO2iuP3KQpGfntWVU+X4sOrK+ksbz4NrU678t9h520TcpzsgvkYubj61q1saAu4DVVWpaFxDJOF3cMYqf2BcLuGtEPb1CoMBdRKMm2fcC7+8CIkQIe7f1slh7K+VGzAIjS36ndDVWTzXzwD2W5+78Gd85Lgn/xbSfG7T7yceabx8ZiPi5BM95pOlHq7d65sCGWjb+xyZnao4bhPbO8P8x28XAmkkri6bf274JD1TwVk+u76E5L7lA92J/V9mopHINRq898gJ/d9KDOv8bFvrtIe2t9dqz/bsAuvspoN5FJPi/XltEV89YHQdQe7yn9DpnKJNcozYC5YjQe/s9A5e+2EAlsLQ8qIQ36AKpDjeHLJ70/H/TU5tsZwQd/lb+gDn8mT41mxz1uW86+4ABFfeoGXztGGmwAlYQ3dbu3AVeiWFtw==; 5:JB0zzBeyL2+v87O1okQO1IX0WApPyhhm3n1wr6IkrgjXM+4qpTEvIciq7V1Xk12F4qhPrbueIhtcMvDHTwSw2swPIq0Uontt4Qi04kYlvZkKc3txOWD8l3pQTJzEl/1inYdQ3EwqYyfNyuh6s50FI4zdeeh0C8IPNVnY1cX1S/s=; 7:F9VPw36g6+Luq4pzDaE/jymW2aU4o1HWP/uGnOmsPPMY11yB/9glQetMrem/QwC2RB86eZLgW6noIjwO/uu9R6zzkAYWNyGz+XUwvKwceDpgoOaaPjrgPZNmWd3PDq/wWZ8KkJUaW3YI7PSc+E5c6rMEhehFykNeA4GgcNcG3GOi+xoS/5/+X+gM+XXwgzrDueFyZ9TeaYBROC37QoLU0o9d6yDKLwJlbn0e9utezqBFTvlBFfvGvr9wDS7uWiRG SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR12MB2684; 20:MMXyf9Snu0cfcvOZoGERP6aDlj+KlJTnnLMnk3YAMJ7zujKweXXDsBLY0dExYbOBl76pviMPPa+pCRSjsdvrrxroMP8n7R09HXFLGs2PnFiW5qR5+SND50iXSjzf2RADZhJS3LkTak0lcIPYwsjLYMDPDcdW0MPvTKcWl7msp0oMj/3TeIcEyRlk4gIBcxr39fCqaXMqonDQVgMJYFg3t1VvEhguZwhsiMke+rQ9LXS8LL4+ywjHsy/lWxQpr/tx X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2018 18:27:30.1428 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4f4f9ecd-cbe0-4e52-1e35-08d61a6fbbc2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2684 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.69.78 Subject: [Qemu-devel] [PATCH v2 6/8] i386: acpi: add IVHD device entry for IOAPIC X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tom Lendacky , Brijesh Singh , Eduardo Habkost , "Michael S. Tsirkin" , Paolo Bonzini , Suravee Suthikulpanit , Richard Henderson Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" When interrupt remapping is enabled, add a special IVHD device (type IOAPIC). Signed-off-by: Brijesh Singh Cc: "Michael S. Tsirkin" Cc: Paolo Bonzini Cc: Richard Henderson Cc: Eduardo Habkost Cc: Marcel Apfelbaum Cc: Tom Lendacky Cc: Suravee Suthikulpanit --- hw/i386/acpi-build.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index e1ee8ae..0a19e25 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2516,9 +2516,12 @@ build_dmar_q35(GArray *table_data, BIOSLinker *linker) * IVRS table as specified in AMD IOMMU Specification v2.62, Section 5.2 * accessible here http://support.amd.com/TechDocs/48882_IOMMU.pdf */ +#define IOAPIC_SB_DEVID (uint64_t)PCI_BUILD_BDF(0, PCI_DEVFN(0x14, 0)) + static void build_amd_iommu(GArray *table_data, BIOSLinker *linker) { + int ivhd_table_len = 28; int iommu_start = table_data->len; AMDVIState *s = AMD_IOMMU_DEVICE(x86_iommu_get_default()); @@ -2540,8 +2543,16 @@ build_amd_iommu(GArray *table_data, BIOSLinker *linker) (1UL << 6) | /* PrefSup */ (1UL << 7), /* PPRSup */ 1); + + /* + * When interrupt remapping is enabled, we add a special IVHD device + * for type IO-APIC. + */ + if (s->intr_enabled) { + ivhd_table_len += 8; + } /* IVHD length */ - build_append_int_noprefix(table_data, 28, 2); + build_append_int_noprefix(table_data, ivhd_table_len, 2); /* DeviceID */ build_append_int_noprefix(table_data, s->devid, 2); /* Capability offset */ @@ -2565,6 +2576,22 @@ build_amd_iommu(GArray *table_data, BIOSLinker *linker) */ build_append_int_noprefix(table_data, 0x0000001, 4); + /* + * Add a special IVHD device type. + * Refer to spec - Table 95: IVHD device entry type codes + * + * When interrupt remapping is enabled Linux IOMMU driver checks for + * the special IVHD device (type IO-APIC). + * See Linux kernel commit 'c2ff5cf5294bcbd7fa50f7d860e90a66db7e5059' + */ + if (s->intr_enabled) { + build_append_int_noprefix(table_data, + (0x1ull << 56) | /* type IOAPIC */ + (IOAPIC_SB_DEVID << 40) | /* IOAPIC devid */ + 0x48, /* special device */ + 8); + } + build_header(linker, table_data, (void *)(table_data->data + iommu_start), "IVRS", table_data->len - iommu_start, 1, NULL, NULL); }