From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=helo; client-ip=104.47.33.63; helo=nam01-bn3-obe.outbound.protection.outlook.com; envelope-from=brijesh.singh@amd.com; receiver=edk2-devel@lists.01.org Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0063.outbound.protection.outlook.com [104.47.33.63]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 2E2BD202E5486 for ; Thu, 5 Jul 2018 12:12:38 -0700 (PDT) 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=LBTOsZhctFCkNDM05h9azTqhZSPbT9vtDXtEJ4nVIZM=; b=bM/ja/inSuXG6Zn57G+vVqq5sb41QnBB9I2sVF92ZwlZYy4+w6N2/ZUoDGjCUAk2Wpv3lxUNn24kJweSRshXSxB9vVoU9gPA7NICGr+ucwcT4LPoc6/hHKjnpl3euLfWweUlcmnJFUUjzRW3Do47HQkPh6OiTVCa6JdA7ZDg2yM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from sbrijesh-desktop.amd.com (165.204.77.1) by SN6PR12MB2685.namprd12.prod.outlook.com (2603:10b6:805:6f::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.930.20; Thu, 5 Jul 2018 19:12:36 +0000 From: Brijesh Singh To: edk2-devel@lists.01.org Cc: Lendacky Thomas , Brijesh Singh , Ard Biesheuvel , Anthony Perard , Julien Grall , Justen Jordan L , Laszlo Ersek Date: Thu, 5 Jul 2018 14:12:24 -0500 Message-Id: <1530817945-8030-3-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1530817945-8030-1-git-send-email-brijesh.singh@amd.com> References: <1530817945-8030-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR1201CA0013.namprd12.prod.outlook.com (2603:10b6:405:4c::23) To SN6PR12MB2685.namprd12.prod.outlook.com (2603:10b6:805:6f::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a46a9bd3-1e7d-4992-68ff-08d5e2ab454c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:SN6PR12MB2685; X-Microsoft-Exchange-Diagnostics: 1; SN6PR12MB2685; 3:uAug0PNdWwMtmzfTfmDG3pq4mzQLYOtQIV4C4IjbGzwyMDc1XdRROQSPy6zq346fFa/+Eg5oqJ1M4evk0x2l8iohzbRwa5Zh2BoHmjyLVxtLHy9uMlav/lVqIMFvDPO4TrQJxgUL5VB1FaZLKBgYfFU+va4GEpRgJLXMAB7BnyIYO8OEsK49cykWDeezRWBqycugKMCO+OOZDK5k8362UI1OKblsUAHSaYGVwYx5qlFJyAHx97Z0wgCJJ203Mr5I; 25:Ab2c3wjKree5ZWGlBllut6LidFlRGqB6ca2iQDMHvnLjEdz2H+t67Ghjmns2XWcyDOe8S1WJ3fMnNcAkH9TMm/x3JVFn/Mpc+hbH/qZlwt7YKIfUnQ4KKnxWKNvQf5R0DpN6FzG/bsNWd61RG+6G5eQTTKUyeZie/CkLb8ifPUaija1waoq9V9OayOmr7Oc2EKWxGVToJ+GIhyRmZT14dCKwfY3sTB+9f082GGQo+gILkqA01rXNF1/kMXE3//u0UWHM5fSqsUWu1yCJuBeHDaS6i2L7M+5h8uIhtY56CcRJc9yAzSH27ZyNzkfaNmk13vdxBb26Yv1TSDtvRQdhUg==; 31:3JxTOcPcfqFMaomZvFelJgyccLKYp0FuJIR9gDd3FC38xU8dF8LHybKFVm1lniCwqGad9MuM/AB1QGdicozoDqAHoI8UvlMJGBvDJ9Uhj/WdFqc4UXp0qVuR1LV9JVOFyPKODrhEeyyG0T++CLpfNjbEaGr/O6yDZBqrQf8Op89KOxd9pnkVCCRk4+q8WCrzau5XR/i71COej/Y+S04Q+e/13yfUPXLMkjZ2AlSCwB0= X-MS-TrafficTypeDiagnostic: SN6PR12MB2685: X-Microsoft-Exchange-Diagnostics: 1; SN6PR12MB2685; 20:cM4OTBgKBtCnXVkdqzSnDbStiWULhrezhN8j3pR4gb39NmPOp1k0AbmQC8dqhrXYDwF1Dt+aTJoIU7n4AFKqY8UtYKeIXCUtRDqh6P1ds4rf+McUG8sIvpMdxDFhybL7nef1rM3ioZv1tJB6RZde5xbUpn+9qPjmesva3r21lG/y0dX8ZuRBm/NXr7DCZUpSoIKh73RyO9jiaXMBJgt0EWsqKuAL11Ajf67PuitQDavbbT9Ejy3Qn1VZciPsZDxRMcAPYnMsrRIHPWEtNnF3UQw1W42wOja3wI7dNL+id2i0k29/om9rWAmMP9Af7CCDyBN6aMz6iLhX96A59TX0iCLRrzj5KXggWc8+wkChz2ogV/cng+DegsH0CNyd4C4zbQq8qNjeIlnH/qlI98+poceHdLYwqeQK/Ersbj0n7lVTO616wwn+3zQiMybs6SjbQzmHBcPR6skBn+4W4IEdbF4mtKoPK5Wq1DbWSQ3ZimViUOzcSQlC0KIJmmnQE14/; 4:+L9cpiaSH4tWLEtFtFBE64KAChrgMXZ0u98P0bqLG3kVMzQm7/yIh7p8jP9HvlMOfwiGmO1pkAlpyO4Ppz/7spYSmA/27XmW5Qf2Dsld88+A2C49IMSUTvQyu5YjuQ+RZywY5wyRo5hW2whoCldmmNihIeN9dgrhGjKztIsQ0W/ZivLtaGLbFLliX9urP9ALutg+GBUzPZWUfmHRCaKsBUgtYGUWf34mkOD7omJm/tnHekd3kSMI+Ejir9qaikVdKh1/kptpASm9ps59R4pShziTCjkGkXJrgBPKh2ru/FZpM1Y47XnWHEs6MVIpbTB0H3Oq/Z0ckVVtuPvO9QbHvYodfv6j64lQuWI5xvEXHXDfIxqay9qw20U50QVRekNY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(70601490899591)(228905959029699); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:SN6PR12MB2685; BCL:0; PCL:0; RULEID:; SRVR:SN6PR12MB2685; X-Forefront-PRVS: 0724FCD4CD X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(396003)(136003)(346002)(366004)(189003)(199004)(106356001)(105586002)(4326008)(2351001)(54906003)(50226002)(25786009)(186003)(53936002)(51416003)(52116002)(36756003)(7696005)(16526019)(66066001)(47776003)(2361001)(5660300001)(6916009)(68736007)(316002)(16586007)(6666003)(446003)(478600001)(53416004)(8676002)(86362001)(6486002)(50466002)(2906002)(44832011)(81156014)(3846002)(386003)(2616005)(476003)(11346002)(956004)(81166006)(8936002)(48376002)(97736004)(486006)(305945005)(6116002)(76176011)(26005)(7736002)(213903007); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR12MB2685; 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; SN6PR12MB2685; 23:ykBcwERZ8SKiAWU5f/t+xvSVbrq97OCP07uANfZ7Q?= =?us-ascii?Q?y+4Jp4452DprvnnfC2Va8Vhino8jfq1B6OA1iK5hl7ANpw0K6ljsnNtSGeQx?= =?us-ascii?Q?6xXTKhgMwevt7lCtwiCB2Jhtabv60qbjQnZROg2ir+aFibGbppF5h/sovRT5?= =?us-ascii?Q?M7YK2bC87pqEJVsyTt0qhwCgVJ0HXruNVvDh6M342D3U71LkxM+ZnXQy6qy4?= =?us-ascii?Q?C1n3OOjhHsa4pFFfqDWu1khUSak5QwcQPn6Q0ry9ZbkJVe9DAbfdD9YNAEpC?= =?us-ascii?Q?xmSIsPRcQWJ2cv7LPtFP0TEQe6QMjUaLhXEeQ05p8/ZwNHuejXRb9OXvapoA?= =?us-ascii?Q?D/Z0J5pSTYqaoDkAiC9Rm9pOzjZ41i4DxFfGLV05GeRfEwCJHsnhSPUU7QTf?= =?us-ascii?Q?XmgfP2Xrzvgn3PhG3rJh+dCnGflGOVODgocA9FXwb9OnsfZe4Vd0VH9Thtp7?= =?us-ascii?Q?oDkFLjj3ml2tXykmskwm0G0yOfE8MAFJD/uPcNMFQDE7RhBAYRLQHmknVQX6?= =?us-ascii?Q?S7Gx3yN0KBsQOkD6t6/dVHTGkFLKTCa6lP1Knq00Ur+8s9SBFKbSnMzL5d3y?= =?us-ascii?Q?6mHIOqtCuEv5zv7kMTr9oc9dJaVDK3fxpy9IkRUATKNomvR3le9lGsolN/3s?= =?us-ascii?Q?EEYfFTGhwAmQ8lYbuRt/J6KUYBVomRoCieyC2Snjilm1gLQH/fjX2iyzZA1K?= =?us-ascii?Q?yAlbR3O6MNTU5zrCWcegmN/9BeeRPn7e4eHNrcqtffk2KoRmCYSbIsWuBQII?= =?us-ascii?Q?g3muvk2vbdF5iVvg7Uqxot5s1k5isQ46brMRh1R4pdVc8tm9hlyicHfMRUCt?= =?us-ascii?Q?CuHMDr/f2jLmDk/0ORl3YhBni4r6VhMz2eCn+6xGDfULTRm3ytjFhDCPP4ok?= =?us-ascii?Q?7z26OL4vzdatUZm0jXcQjwcC7lvnEE8u6emyt5adQRxMxNOlK1+Yh5cdSzuL?= =?us-ascii?Q?Co9iFkjwrpcTyWnOXMGuOu8cCIj5McSQMlgf53J1+gGmyLSZsWNfHxq56Y6l?= =?us-ascii?Q?7CNPEOled0eHFsbz8WbvM8B8a6x4iX3R9dNxty+d+6p4/RNQP7lI63zNPaET?= =?us-ascii?Q?WA57QnPlcZDHeFelw0W2ty8aD3zWSimQZ6j32TA97BWbs9TS2lvfBGD7mNJn?= =?us-ascii?Q?o97V/Jk7faL3gsObHUw4dTGwFE42n04jPkdkVyMDp3FUXXhU9YxUvs5fe0HU?= =?us-ascii?Q?PjXHtb3X1N9KLRaMJJRJ92jgyonaWf/Qdv8dvMVx2LICBB0RbsZTUoWuOXOA?= =?us-ascii?Q?QS4BPQ2Qgn9d7dEmm+pneFSaiprUVhOYcNzankv?= X-Microsoft-Antispam-Message-Info: jPhb+JDjIszWtO39AfOQA6aPWNbtJjbkpkQZtTrYUuuDpXA8u4IjSLS1X4L5PeZY90ziqafu9HLqP0Awbs2paster353l5jhfK1e4ljURAmgIBjyAh0doOwU6X2pwOm/VrgjmnN81Lfx2tIvo7/NbvRxsVyW6BKLfY637Mo0T4V0xWlQEXxDzFgYCsu0HEDt7ACZVSseFNS+gpZDHKU7G9GhQyJHiv1yhTQdiNkyah05wdDwi/cDhOb1d45vDwGACH1csLcdR60HbPsoVkZkmwbi/7/iHYSoETj/3mTqPwNOSevYJCyGRQZcaQ+yy3gS3NO7N8xvFdyi/+Egh5g1nV3JUnUnv+AXHCUFadx/a6A= X-Microsoft-Exchange-Diagnostics: 1; SN6PR12MB2685; 6:aMDfu0DQTAQMHKcZ6Ev2jYdyC4zARMWmrI3aeAFArSynwTyP+idT145VGaBec1QVwbxn5/hYMLnUfQ3SSwMVjcQGjZDEUAzLawr18ACicDOE4KzrUj/6PmcLpAyrehwhsx84BYcqpKfNvn+DsygBPgpo77H14IcQtrgale9uRwg5wjSoVtrsmNvvlvko19UVdyI3QJLuup3KjH2ST0TyJIIA93oO/+MLmRu2TTUXYHl1V8mxjObKJ2XyZkUyvWCxKpwuPtDRd6XLlNrgGq6TUQqnLymF+UhVVakzwcohz5FqGkc5PxFE2ByXhvAJwtuGK1qx5zdFexjf3UBsF1R1m5626AMMiSMM3geD11plFvCE/XbWgiuvA3hyGuf5PEWQ8V79bU15otY6EoAgXzPzeZEyM70kbCSdxoOOZGg1CXq00obKV7+lgv+cHB8+L62gTHi7OxF5wGhaeTI1InkfgQ==; 5:VaTWyFcAqSj9ZihwpjbItaX1E41amFzATwZxSQI2bHWoZ+7x2zP4ltE7/nWoM2N9d+by3Ul8zZXHXB4S0rqJSipgJmLrXTo5YO1cZzJfmq9oBbUSwCkK6L9BQ6kiLPqeVt7RAY+FcUQcuycsDxxqga/qZhuWQVngVv/2c4BpIR4=; 24:RAhV0hfi2xETn5YVD76LgKfQWeD+5csy1np5MkX899P6JQ1R7viRgTZEE+ltFb/+JUcD6AGhYz8th/kMl0zd79JwSv9nkKVQzqa5BBqhmlk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN6PR12MB2685; 7:YU6BfvVOs/AASWMDd7lf8JsTJtN15lEPdxacZlsB/i6t1vlc+dlz1vdjBgc3La8TyUeNnIatGD7520hm3fxWbWrqF8ZvFieT4DT0pXFWNoSWTmVs+31hs78UwLIE+XcE3oJaW4mgxQqo9RuhOf8jnYj9PO0KxV5RfpY8rtEAf8atoSWJu+Rxo0NV4rtdLXxLWvrIjkHFC3yDgYdZu3B7gT0kKzHIUnKIIeiiv6bWumGcLkn8dDTRNgctjcSuJTs0; 20:3N/xsztKxvfs6uSaCDXWuwTak7v9R3UJ+9rXpUgg124N4kQax85UnNh1WeaJ2ZlWkm8qsEweX4bazW7G0ngvZaC44qadaP8YYBKs7BaIqNZhdIgQguIOEdVHRwSjb5aKgVtcszXec1cA/7qvz4hqmEhmTMjUkblB5HXTM4jRlplf7+lvAvJ6wC0FumPIJD0eeQXHlHHf0MUfGf0s7UbkFmK89LDHlB+ioSG6+eVO7dOiJtbiCEKR0nvNAJUFFRKK X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2018 19:12:36.3307 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a46a9bd3-1e7d-4992-68ff-08d5e2ab454c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2685 Subject: [PATCH v3 2/3] OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Do not expose MMIO in SMM build X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jul 2018 19:12:38 -0000 Content-Type: text/plain In the SMM build, only an SMM driver is using the address range hence we do not need to expose the flash MMIO range in EFI runtime mapping. Cc: Ard Biesheuvel Cc: Anthony Perard Cc: Julien Grall Cc: Justen Jordan L Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Brijesh Singh --- .../FwBlockService.c | 50 --------------------- .../FwBlockService.h | 7 +++ .../FwBlockServiceDxe.c | 51 ++++++++++++++++++++++ .../FwBlockServiceSmm.c | 13 ++++++ 4 files changed, 71 insertions(+), 50 deletions(-) diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c index 28499991a43c..eec8b1b1ae9d 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c @@ -831,56 +831,6 @@ ValidateFvHeader ( STATIC EFI_STATUS -MarkIoMemoryRangeForRuntimeAccess ( - EFI_PHYSICAL_ADDRESS BaseAddress, - UINTN Length - ) -{ - EFI_STATUS Status; - EFI_GCD_MEMORY_SPACE_DESCRIPTOR GcdDescriptor; - - // - // Mark flash region as runtime memory - // - Status = gDS->RemoveMemorySpace ( - BaseAddress, - Length - ); - - Status = gDS->AddMemorySpace ( - EfiGcdMemoryTypeMemoryMappedIo, - BaseAddress, - Length, - EFI_MEMORY_UC | EFI_MEMORY_RUNTIME - ); - ASSERT_EFI_ERROR (Status); - - Status = gDS->AllocateMemorySpace ( - AllocateAddress, - EfiGcdMemoryTypeMemoryMappedIo, - 0, - Length, - &BaseAddress, - gImageHandle, - NULL - ); - ASSERT_EFI_ERROR (Status); - - Status = gDS->GetMemorySpaceDescriptor (BaseAddress, &GcdDescriptor); - ASSERT_EFI_ERROR (Status); - - Status = gDS->SetMemorySpaceAttributes ( - BaseAddress, - Length, - GcdDescriptor.Attributes | EFI_MEMORY_RUNTIME - ); - ASSERT_EFI_ERROR (Status); - - return Status; -} - -STATIC -EFI_STATUS InitializeVariableFvHeader ( VOID ) diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h index 1f9287b08769..178f578d49f0 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h @@ -189,4 +189,11 @@ VOID InstallVirtualAddressChangeHandler ( VOID ); + +EFI_STATUS +MarkIoMemoryRangeForRuntimeAccess ( + IN EFI_PHYSICAL_ADDRESS BaseAddress, + IN UINTN Length + ); + #endif diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceDxe.c b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceDxe.c index 63b308658e36..646427bf4e2c 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceDxe.c +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceDxe.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include "FwBlockService.h" #include "QemuFlash.h" @@ -155,3 +157,52 @@ InstallVirtualAddressChangeHandler ( ); ASSERT_EFI_ERROR (Status); } + +EFI_STATUS +MarkIoMemoryRangeForRuntimeAccess ( + EFI_PHYSICAL_ADDRESS BaseAddress, + UINTN Length + ) +{ + EFI_STATUS Status; + EFI_GCD_MEMORY_SPACE_DESCRIPTOR GcdDescriptor; + + // + // Mark flash region as runtime memory + // + Status = gDS->RemoveMemorySpace ( + BaseAddress, + Length + ); + + Status = gDS->AddMemorySpace ( + EfiGcdMemoryTypeMemoryMappedIo, + BaseAddress, + Length, + EFI_MEMORY_UC | EFI_MEMORY_RUNTIME + ); + ASSERT_EFI_ERROR (Status); + + Status = gDS->AllocateMemorySpace ( + AllocateAddress, + EfiGcdMemoryTypeMemoryMappedIo, + 0, + Length, + &BaseAddress, + gImageHandle, + NULL + ); + ASSERT_EFI_ERROR (Status); + + Status = gDS->GetMemorySpaceDescriptor (BaseAddress, &GcdDescriptor); + ASSERT_EFI_ERROR (Status); + + Status = gDS->SetMemorySpaceAttributes ( + BaseAddress, + Length, + GcdDescriptor.Attributes | EFI_MEMORY_RUNTIME + ); + ASSERT_EFI_ERROR (Status); + + return Status; +} diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceSmm.c b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceSmm.c index e0617f2503a2..cdb073348158 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceSmm.c +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceSmm.c @@ -67,3 +67,16 @@ InstallVirtualAddressChangeHandler ( // Nothing. // } + +EFI_STATUS +MarkIoMemoryRangeForRuntimeAccess ( + EFI_PHYSICAL_ADDRESS BaseAddress, + UINTN Length + ) +{ + // + // Nothing + // + + return EFI_SUCCESS; +} -- 2.7.4