From patchwork Fri Feb 12 13:59:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Suthikulpanit, Suravee" X-Patchwork-Id: 61845 Delivered-To: patch@linaro.org Received: by 10.112.43.199 with SMTP id y7csp840013lbl; Fri, 12 Feb 2016 06:00:48 -0800 (PST) X-Received: by 10.98.34.198 with SMTP id p67mr2293122pfj.93.1455285648325; Fri, 12 Feb 2016 06:00:48 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id fr4si2048746pac.214.2016.02.12.06.00.48; Fri, 12 Feb 2016 06:00:48 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752862AbcBLOAl (ORCPT + 30 others); Fri, 12 Feb 2016 09:00:41 -0500 Received: from mail-bn1bon0076.outbound.protection.outlook.com ([157.56.111.76]:10813 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752848AbcBLOAf (ORCPT ); Fri, 12 Feb 2016 09:00:35 -0500 Authentication-Results: 8bytes.org; dkim=none (message not signed) header.d=none; 8bytes.org; dmarc=none action=none header.from=amd.com; Received: from localhost.localdomain (124.121.8.20) by BY1PR12MB0440.namprd12.prod.outlook.com (10.162.147.141) with Microsoft SMTP Server (TLS) id 15.1.403.16; Fri, 12 Feb 2016 14:00:23 +0000 From: Suravee Suthikulpanit To: , , , CC: , , , , Suravee Suthikulpanit , Suravee Suthikulpanit Subject: [PART1 RFC 2/9] svm: Introduce new AVIC VMCB registers Date: Fri, 12 Feb 2016 20:59:27 +0700 Message-ID: <1455285574-27892-3-git-send-email-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1455285574-27892-1-git-send-email-suravee.suthikulpanit@amd.com> References: <1455285574-27892-1-git-send-email-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [124.121.8.20] X-ClientProxiedBy: SG2PR03CA0036.apcprd03.prod.outlook.com (25.160.233.46) To BY1PR12MB0440.namprd12.prod.outlook.com (25.162.147.141) X-MS-Office365-Filtering-Correlation-Id: 74d86db6-b4f0-4c80-379c-08d333b4ded0 X-Microsoft-Exchange-Diagnostics: 1; BY1PR12MB0440; 2:b+compd//nhhbCPFBEz6klUHTJygclTsyGWljMb9J29BgBVlmsg6sPPC1q257zB8V59ec5e9gRwuw4SaV9abpQ/WuuJ4BacbwW3pK89DypGI8cu52iJN8LhPOduKDeUfeZZGFuonbYC9iSNdoBLOwCUiozxtuS4psZA79RYJFqzEOahOwdyUnmr00YSOK+9E; 3:fWjFBKkUjsw5CDlWnoW13x2QJEQp03VNa6GKZp75XyWAdvJVUvzutoPuTp8ggabUQd0u2GRaddtmSps+w6ERhe9pmmq5gMb0egSdLrNMhrNqQSlthDWDiGJ/CHQvcRdi; 25:fTBFp6O1eIaT4cb9UOOm4fJT/nu1Ec6eofI4oxZYELRIRvMVtIzkGlpETQgsR1LAHOf9OVocuy00PsFdxprNBWJOXt6+ZIcxx1SPZGRuwNLRJ5JxdklE6vAFoQCkF6+YP4Ieu7UshZTXmb/O5j8B/JHgHmBymEUtx5LN5ZI3r1dv3Sugwh5c0dWo3N/+nJaxZ5Q1kk5MrQ63woWaqwV7Dqq+S9Hq+slu9cz4DfLH+27LhZ1AWfCks5qNWS0U3p38H369XXJ/r54tqpxhHWkTAOsu+SMDErl+UPnfACta390TIzWSQOOiox/coyZ1osRD X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR12MB0440; X-Microsoft-Exchange-Diagnostics: 1; BY1PR12MB0440; 20:ehDpRza6R+G0Lh4a6n3cf1P3lWkD37DpVyjHgqOyOj8dXkjStGRLQc6zS6ZUjeo4cBkcWYiYg8QQ1UgPkkyq+hhiooMntcmR2buddIgtMu3AA6+8oOhWLHiKt2laW77hVZQB0P68FO5+zzzd0QNgr4oiJdxNE0bZwQXZwhDlgkZ05BKloNGEU15+rY5ZWTLuEg60nsQE6Kzn+ry3BFWPTUYBD1Vd3a/1QDmvk4ITsvewplUvR/oMsoUeU6ZGiB9V5xcGe5nVVRGYLFQPJoQo8kyL5kqi9xaTKQuq1t+rv1sDgSVE4r8vJNH/rI03erBgJlAjc0inB2BkkeWQwon8X6r3L1RujuYYhe06grwOc1m/crj5hveeNljIQ79mKdTuNVHbfJarC827MKQwfncsxL91OYbEZwaV6uPuSJAKEKfgwiGpfU3csFsEJ5nHlbwCO64vkUjpGefX5waCrAeBDgfNswaJhwOKxLSzknLTqkBFw47VxsSP6Twc4jzLm7E3; 4:ssVR71Zso/wS8G8Q+pg0V89ARyPNf10duOZNgHb+cFemxR1rU67vUWtXLrLuJeydTQDFPtejfFAGgOxPDeSRaORQP+HtsQFrW4Ov1eHMxByARAQg9DxASLIdGWkQCQ06KcQmicfDzS1jIucmLngjFVEL9F96g/7vrrkXKQC++7ZfgI4sv+qzTNSZlHKsvyMPWVK/GUmv1S9UUeujhjnk1GJjU+QMx09KKKvWjuDyU3dwjf8/Y5R0nDzbNd8DntOT4KEEgT64Iziuwr1eVWgTMjCvwq7M2nreRISV9zi4UmIDGaSysY1nfrg1uX5ZfkOiGP5Kqzjg+wiObpFYYmLKmh91ZeRndd2hULWUDRN6XtBNv7dvkGbq5okPN8Dgwhq7NDhDOKk0Yx36x5mig6xGt1U8HU7hxTR0oCRfsrmWkRc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:BY1PR12MB0440; BCL:0; PCL:0; RULEID:; SRVR:BY1PR12MB0440; X-Forefront-PRVS: 0850800A29 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(2201001)(36756003)(48376002)(586003)(40100003)(92566002)(3846002)(5003940100001)(77096005)(229853001)(2950100001)(19580395003)(19580405001)(6116002)(5004730100002)(189998001)(4326007)(42186005)(66066001)(50226001)(87976001)(5008740100001)(5001770100001)(122386002)(33646002)(50466002)(76176999)(50986999)(86362001)(5001960100002)(47776003)(1096002)(2906002)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR12MB0440; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR12MB0440; 23:0OBvTbop0MaEJjWqiVgPeSd+yPYgRUV6z8o5ptJDA?= =?us-ascii?Q?wY50zTIf1HM0W3luXV8Hn+nk+suqw3m56xsEfUOGAQ+bAII/3aSTgrEyRRII?= =?us-ascii?Q?pf9XLD02YJeq1yjO7c/nBcBoYT41RBjHjVfzBMXSfBdQYt8gldUbIc2KvP9X?= =?us-ascii?Q?odRt0/MQY2MWBbsdnN2oPEefPmSPTgGS30uXALir/k/5X+m9rUc7MmZ4P92C?= =?us-ascii?Q?aRqzGoZ8j0FmYXbSoBhivYo16Pk1gD2hAK7zmTSZf6VTvauzbbDaYXv3q9pB?= =?us-ascii?Q?giPjsRNLYkEYuc7B7SQ8dxYeVlzh+LM4Tcmh7oblt6HasKDWO0BoFjh2aE7o?= =?us-ascii?Q?U5tjCmzvUlVxCJFx4wesODJWPhQAqpcSmsrS8C3uYlAo8qjE2pBGKizmg4xD?= =?us-ascii?Q?gyHcP1gZvbdTFWTYjTNI4ujkT9C8IpMjGGouRoYrZV2xD/u8mxES2h3aRwp+?= =?us-ascii?Q?VeKcx/7tuxTXAnf6nwVc2GjQmmZ8AZhfULBOlwGA/+9fpJ5VZwcenZf9+7f/?= =?us-ascii?Q?phUjR/RuLNUTfaqLP165UdmF4s1yWFtEptPRanGBol0xjqHTqufywqkLUaSD?= =?us-ascii?Q?kA4PhmlBthDvQ4g1khLVCT+Ivk0iN0QXCTN/Ls8NChrzzDYEascYR3Fp7Xk4?= =?us-ascii?Q?Us7hJswkD6AeOdiM5y2iI/NjFzVyM1hru2zxp+pKfzQrNlAA9lVx6J3wTUw7?= =?us-ascii?Q?aiv0jC3pygrJx3OjANnPd8x1O8pJRRmN/+0MnuG2UUvDyQC+4Q26SXLPSmRp?= =?us-ascii?Q?f77pd7S1zNeLSP7phw1yh69QJIs0MdbzB0lctkHSXOXKUqzK2ffn0HhpW9ZS?= =?us-ascii?Q?rJkaSl0iz5QzLOpWW/ZT0f1uY3/kcvL4b3yVeCo16jm8Yn6cMH1fnBd5cO8r?= =?us-ascii?Q?RYPQSO01/sqrr4U33ACnJJS+I8wunbXr/qWZrx7DJTaZk0EUyaP9V0+P7vWK?= =?us-ascii?Q?VWO/51sRgZyxD/81FulOvgSr0ZzhJRHUQryTK4cCFz8/EUCsHOLB34o6gV90?= =?us-ascii?Q?98=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR12MB0440; 5:TT8n+yBMYmit53Lr+VYqOfAl1Us9utTTtbOi3ONNZRQQBYOiUBe06acojlIZcHXOICahst9VjKk1XZk4ygfRerV9xsQjsbp2giDIJIUouxhlYbNa7PWGmsLpn0YC1A90tXXE0hsE/aK8gD2PHITuPA==; 24:hLQ0q5CM8VIGBirsA09h91vnh1DDsnsDOaVRAPJcUHkGRqK9ActGB9gfJJ8suSkNfBGiVKEmcEiOrOguJmumIq4nmHAlf8aPl3X4o9I2yaE=; 20:qAlcR313EnU9CqQ2lS4TJkSwRVogQMtv3/av2OA6m7WakiU2cY4oOzv8BbKf0ydMPDYeAtCRqpEI+RSQa68lsS6jeVYQBqZPlHPxPuqh/NIwBz+fiFSJAKyf1zvtp5Lopb7Pk8O7VCNUupyDA29CnuOj8eUmD3PfzeYDLPg1PV8NR3nHuHNbcbQrGkrMcEP3rmaBKKwEwzRZlmZZqTdA53IX+X4QLYlLtLGH1aramxRDOD7QQRqj47shXk/bwQMk X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2016 14:00:23.1248 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR12MB0440 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Introduce new AVIC VMCB registers. Also breakdown int_ctl register into bit-field for ease of use. Signed-off-by: Suravee Suthikulpanit --- arch/x86/include/asm/svm.h | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) -- 1.9.1 diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 6136d99..db5d7af 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -67,10 +67,24 @@ struct __attribute__ ((__packed__)) vmcb_control_area { u32 asid; u8 tlb_ctl; u8 reserved_2[3]; - u32 int_ctl; + union { /* Offset 0x60 */ + u32 int_ctl; + + struct __attribute__ ((__packed__)) { + u32 v_tpr : 8, + v_irq : 1, + reserved_3 : 7, + v_intr_prio : 4, + v_ign_tpr : 1, + reserved_4 : 3, + v_intr_masking : 1, + reserved_5 : 6, + avic_enable : 1; + }; + }; u32 int_vector; u32 int_state; - u8 reserved_3[4]; + u8 reserved_6[4]; u32 exit_code; u32 exit_code_hi; u64 exit_info_1; @@ -78,17 +92,22 @@ struct __attribute__ ((__packed__)) vmcb_control_area { u32 exit_int_info; u32 exit_int_info_err; u64 nested_ctl; - u8 reserved_4[16]; + u64 avic_vapic_bar; + u8 reserved_7[8]; u32 event_inj; u32 event_inj_err; u64 nested_cr3; u64 lbr_ctl; u32 clean; - u32 reserved_5; + u32 reserved_8; u64 next_rip; u8 insn_len; u8 insn_bytes[15]; - u8 reserved_6[800]; + u64 avic_bk_page; /* Offset 0xe0 */ + u8 reserved_9[8]; /* Offset 0xe8 */ + u64 avic_log_apic_id; /* Offset 0xf0 */ + u64 avic_phy_apic_id; /* Offset 0xf8 */ + u8 reserved_10[768]; };