From patchwork Thu Mar 9 18:35:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saurabh Singh Sengar X-Patchwork-Id: 6373 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp464895wrd; Thu, 9 Mar 2023 11:05:23 -0800 (PST) X-Google-Smtp-Source: AK7set8VmnxBeYDbGZf+4AUd+9QAX/ajwU/CbKNhx+uDqcXc7mYlQnqSjGka7pp4iHWE1m2IOtaV X-Received: by 2002:aa7:9418:0:b0:5cd:d766:8a26 with SMTP id x24-20020aa79418000000b005cdd7668a26mr19559874pfo.8.1678388723179; Thu, 09 Mar 2023 11:05:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678388723; cv=none; d=google.com; s=arc-20160816; b=egMQ0oD9xD6jgO8D3GOmHpQgd4H/1yTSR66myg6+16b9OFrehmhzq2D8ueWcdGoTzh 5NjbTBZWzs/LKNidw6W3hKwHjB2sllHTvU+oS16EZh1R4JKFsAiou5k4GSYYEjoNUAt0 BhHgGSewWewvFmy/BNBW5yBUdilkdW33322GNNIUwxTgy1tJv3GE3tOEBp/T7mYjuKBM WDVsjg9EcBPYuFFHdbUrcusB5F6geZNe/jSpU7hv8Y7rTNdmixo5iqN1/X6EH6ouxd6w O2HMtzm8Hgqeuxo4KG3ycrK4iCI6KodRAXnWlNqiGiAGnS0LtdQ+mwuv/9VW1FIloBvI MdsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:to:from:dkim-signature :dkim-filter; bh=FlNVFu0pWbOavHBL0eHfwtfKDC01SJK6EPHbEZafCVk=; b=kJ/fY5C4iZBqjwHvc2HOdVHqtiDslqTSWwjWuL28lHh2+TA9iFpGM9mwCh9KdPx+8T 1Lac7aFOF1TVh8fCn1uelAmTY44RTQy1W05LHzGNRPBOu3vkegJZNETwkk7LvyE5KUeJ LEURglwte9FJFWAWmelt7xp8QhlntyL2IMquj/d0r1wkHXmOuojHRqiSjCeUPaMllNgx k3R1yCXE6l1hi+osf34VKcXg/XIZ28X0xy9oZ2+qpcoGINc//k5rhWs1pv4oV/iu9vbK vuObhSIRoh6uWij9smQ1JKEsn0pr6OVZjQBQMm/DV/dbT7NRctCvdJP8lsNkT5ghaNPl EWkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=CvZQ68ei; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w9-20020aa79549000000b005b6d78483acsi17397667pfq.290.2023.03.09.11.05.09; Thu, 09 Mar 2023 11:05:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=CvZQ68ei; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230428AbjCISgS (ORCPT + 99 others); Thu, 9 Mar 2023 13:36:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230232AbjCISgR (ORCPT ); Thu, 9 Mar 2023 13:36:17 -0500 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E7E3CF2F91; Thu, 9 Mar 2023 10:36:15 -0800 (PST) Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (linux.microsoft.com [13.77.154.182]) by linux.microsoft.com (Postfix) with ESMTPSA id 1D26E2057639; Thu, 9 Mar 2023 10:36:15 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 1D26E2057639 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1678386975; bh=FlNVFu0pWbOavHBL0eHfwtfKDC01SJK6EPHbEZafCVk=; h=From:To:Subject:Date:From; b=CvZQ68eikF9rJVDAvQ0dmsuusCGIcERvcZg4pU4Ss3TPpw01CQs3fXpZwl7TNdW47 vMi04Qz4Gmy4aTyDqxAMwWrzpSOUjiHBHVrLB6RKQH2oEYQESqHXzVqDgfJ/08/1jX UUIA0EuxPSzil0Trn6BdZbot6inohNzgQ3iiXdYE= From: Saurabh Sengar To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, arnd@arndb.de, tiala@microsoft.com, mikelley@microsoft.com, linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-arch@vger.kernel.org Subject: [PATCH v2 0/2] Hyper-V VTL support Date: Thu, 9 Mar 2023 10:35:55 -0800 Message-Id: <1678386957-18016-1-git-send-email-ssengar@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 X-Spam-Status: No, score=-18.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS,URI_TRY_3LD,USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759918133750143823?= X-GMAIL-MSGID: =?utf-8?q?1759918133750143823?= This patch series introduces support for Virtual Trust Level (VTL) in Hyper-V systems. It provide a foundation for the implementation of Hyper-V VSM support in the Linux kernel, providing a secure platform for the development and deployment of applications. Virtual Secure Mode (VSM) is a critical aspect of the security infrastructure in Hyper-V systems. It provides a set of hypervisor capabilities and enlightenments that enable the creation and management of new security boundaries within operating system software. The VSM achieves and maintains isolation through Virtual Trust Levels, which are hierarchical, with higher levels being more privileged than lower levels. Please refer to this link for further information: https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/vsm This patch series adds the initialization of the x86 platform for VTL systems. This also adds the VTL early bootup code for initializing and bringing up secondary cpus to targeted VTL context. In VTL, AP has to start directly in the 64-bit mode, bypassing the usual 16-bit -> 32-bit -> 64-bit mode transition sequence that occurs after waking up an AP with SIPI whose vector points to the 16-bit AP startup trampoline code. Currently only VTL level supprted is '2'. This patch series is tested extensively on VTL2 systems. [V2] - Remove the code for reserve 1 IRQ. - boot_cpu_has -> cpu_feature_enabled. - Improved commit message for 0002 patch. - Improved Kconfig flag description for HYPERV_VTL. - Removed hv_result as a wrapper around hv_do_hypercall(). - The value of output[0] copied to a local variable before returning. Saurabh Sengar (2): x86/init: Make get/set_rtc_noop() public x86/hyperv: VTL support for Hyper-V arch/x86/Kconfig | 24 +++ arch/x86/hyperv/Makefile | 1 + arch/x86/hyperv/hv_vtl.c | 227 +++++++++++++++++++++++++++++ arch/x86/include/asm/hyperv-tlfs.h | 75 ++++++++++ arch/x86/include/asm/mshyperv.h | 14 ++ arch/x86/include/asm/x86_init.h | 2 + arch/x86/kernel/cpu/mshyperv.c | 6 +- arch/x86/kernel/x86_init.c | 4 +- include/asm-generic/hyperv-tlfs.h | 4 + 9 files changed, 350 insertions(+), 7 deletions(-) create mode 100644 arch/x86/hyperv/hv_vtl.c