From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (EUR04-VI1-obe.outbound.protection.outlook.com [40.107.8.74]) by mx.groups.io with SMTP id smtpd.web12.495.1635270037158891141 for ; Tue, 26 Oct 2021 10:40:38 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=7LZ7R/0+; spf=pass (domain: arm.com, ip: 40.107.8.74, mailfrom: khasim.mohammed@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iJZSCscgD6malb9b6nEwptbMnTA4VWohSfmxP3j7qD8=; b=7LZ7R/0+m8RxdRQSxNj214lUZjlEsf1ZWnt3lOOvEwFgCplLngunDirPwPDFSZSoUkdk7hCFB5JnJAP9MHRSaXJ+lzW5ztkFKaiZZIe2++MImQHvg2CdekM5qnSXF/o/2yFXex+jsNETVTtN1iyhSELZNEzl49wp26ffb+9veto= Received: from AS8PR04CA0110.eurprd04.prod.outlook.com (2603:10a6:20b:31e::25) by AS8PR08MB6887.eurprd08.prod.outlook.com (2603:10a6:20b:38e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Tue, 26 Oct 2021 17:40:34 +0000 Received: from VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:31e:cafe::5a) by AS8PR04CA0110.outlook.office365.com (2603:10a6:20b:31e::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Tue, 26 Oct 2021 17:40:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT057.mail.protection.outlook.com (10.152.19.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Tue, 26 Oct 2021 17:40:33 +0000 Received: ("Tessian outbound f1898412aff1:v103"); Tue, 26 Oct 2021 17:40:33 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: addf13542a721107 X-CR-MTA-TID: 64aa7808 Received: from 6e8cf6226dae.4 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1BBCDC2A-390E-47FC-8C08-37CDCB0323A5.1; Tue, 26 Oct 2021 17:40:27 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6e8cf6226dae.4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 26 Oct 2021 17:40:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jatcePnYi6cH2WmhQMkN9FIGWVuODXjVF5OKIjZD8DBbddU7hlh8+JXeYxe8Yc6eUDeWjNLnR4uSD3a2tSiafSXfRZ755D0ZkMWW8RfYDSWbZWfmQkz+BoajMtkCsgy+3mVeKGKpCeKAIDxDpVo6fyrw6LlRpVi1QIRvvBAl+zZ5prjQcWw6jBj+L3pGb3fipCniQhMoUlCfUMqXjCy1kAEMcj51JVV6EU56L8dGqgcH8x0dO26ugMu0C5V+TG1Jw3+5h7LJpSmvsrycOqJ79fuaqCLWyWuq9VD3TXfcj7WHN8yK+reHIbA5lyc2edrLcSGVSme+9aojfUsQailKBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iJZSCscgD6malb9b6nEwptbMnTA4VWohSfmxP3j7qD8=; b=XvxmVngqHl2emPMUKdjoMvBLOrdyRZPesKJBmvaUjVQQzPWHHyGKIYtHWujtvuplPeugjDdYXNXCaZnZX0mWHcjkyh+QzNxqG1AMjQs9w/EDeiGYdkIs4qUZhLao2R02SU6XPxlSaeFmBs39Gd/YrZDseDqu6hegzcIHzxv/11TcbLK/HbHV21/kaE9LZBnXRqIqV9qYgRud35IUsjTJnwCnq1WwribP1Dkp3FGv6mM1FOQaYQ9du/hbb4fnqgHOPFaJduyL/7KY4IqKlyVaSsf1SXXsZ8CtWkKX61veISTRlPHZsdr5caiYmqKfN7k6vz0BxEcJoqThyvcxDtoEMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iJZSCscgD6malb9b6nEwptbMnTA4VWohSfmxP3j7qD8=; b=7LZ7R/0+m8RxdRQSxNj214lUZjlEsf1ZWnt3lOOvEwFgCplLngunDirPwPDFSZSoUkdk7hCFB5JnJAP9MHRSaXJ+lzW5ztkFKaiZZIe2++MImQHvg2CdekM5qnSXF/o/2yFXex+jsNETVTtN1iyhSELZNEzl49wp26ffb+9veto= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from PA4PR08MB5902.eurprd08.prod.outlook.com (2603:10a6:102:e0::10) by PAXPR08MB6864.eurprd08.prod.outlook.com (2603:10a6:102:132::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Tue, 26 Oct 2021 17:40:24 +0000 Received: from PA4PR08MB5902.eurprd08.prod.outlook.com ([fe80::e5a7:9474:4463:d258]) by PA4PR08MB5902.eurprd08.prod.outlook.com ([fe80::e5a7:9474:4463:d258%2]) with mapi id 15.20.4628.020; Tue, 26 Oct 2021 17:40:24 +0000 From: "Khasim Mohammed" To: devel@edk2.groups.io Cc: nd@arm.com, Khasim Syed Mohammed , Chandni Cherukuri Subject: [PATCH v4 2/7] Silicon/ARM/NeoverseN1Soc: Define new PCDs and configure memory map Date: Tue, 26 Oct 2021 23:09:54 +0530 Message-Id: <20211026173959.15742-2-khasim.mohammed@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211026173959.15742-1-khasim.mohammed@arm.com> References: <20211026173959.15742-1-khasim.mohammed@arm.com> X-ClientProxiedBy: LNXP265CA0004.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:5e::16) To PA4PR08MB5902.eurprd08.prod.outlook.com (2603:10a6:102:e0::10) MIME-Version: 1.0 Received: from e116623.arm.com (217.140.99.251) by LNXP265CA0004.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:5e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.22 via Frontend Transport; Tue, 26 Oct 2021 17:40:22 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b3437dee-e408-48fc-e922-08d998a7b6aa X-MS-TrafficTypeDiagnostic: PAXPR08MB6864:|AS8PR08MB6887: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: D2JKzQOoM0jgtBG2Zgy6NmFXryWckoIpunHdIJKPiiSDdCFOBFoueafk/CAYhDHKm5x4DkYzoJjTrwLMdDaC50nd7NMMTqD+1C/E5F0UHqPrfAxgSA65QjtU3+ONV7WT3ed+FX913Po3Rj83v5TYVUNf9AjG0oBICi98tFVT3f7dRgZCd/34zGWQbUtBtCSnCpxNLfAwQrAm5Difk2j+loMxPeVdZHVPHHZm1xeF+BIu7QI6Lu+sqWsSajz3BEjlTXo+jhYqe/DzF1aMCoe4jrO24EjhfPsvsTAc1q5V3aI0ZvXw7JHiMRrbToMncQVSaOw3pagKNw2+tycZdQJofXE1tR0i3+O++ByCVbBFwEN07zcXz4YfFxDKS+8vGZFuqEld5RPhbp/AQUqRlBFZMe/soziB0cvCx9PEsSCPFzJmnR7AE4yAU1VM5DxpAx7bDNYSOsuMNtBV54fJ7ODP0RqzxDiIqTphlREO6/rMqzbT78zo3msqlVIHR+VrRBJYleQ9S9rc9YYO//lN/AUqsCxC9T0IdPfC9RpCR8qHb8/Z/iD905pHncdU6Gr+cw635z2vJabcG3lTtmunMVIHjsqhxNZxLtmL4kWLKLWrifrPUhO17hZdBwQEP8kbsMW8wFLRlxpzSdwI0HR6Zj/jczkgej2oX9udpVI+ymFSkQNoIipwFGu1YzlTZQdUAc/6VRqWGHuaL9DWhXdAI+xgXQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR08MB5902.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(19627235002)(508600001)(4326008)(956004)(26005)(2906002)(186003)(6486002)(5660300002)(8936002)(6916009)(83380400001)(1076003)(7696005)(52116002)(316002)(36756003)(6666004)(2616005)(8676002)(54906003)(86362001)(66556008)(66476007)(66946007)(38100700002)(30864003)(38350700002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6864 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Return-Path: Khasim.Mohammed@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 17cdc102-3a43-43d5-0c11-08d998a7b04b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ictOGkIRYEL2YLdMSxvcfqd8QGttA7vYTCGAnnS0NbkjF+KpqPWU+cxNUKvUlnNTiC3wIGx4JuVUPO2PSxlOcAiH97vB0yAdF4q/qyc7bcMOm1J6ALi2qBgjmMNq7R9Yz72V1+uMNpgz835NaqLGNgZ08DDsvWvvzAAkZsK2ZlJtUJwS9c5ND2VWSzTvI8eCTUnZJ5Cr8YyC2GJHPqnpEQgBcNjN7pWZ+aHhRo0DvpQx+JZ3W4SUB2z5qg9aHNSsv+3gl46kdYD+ftMA4xBQkNaxONGloK2nVaBSrFzbuM5ZQ1l4fviplKQUiIq2KSstUbl9BkIOGnJfAQ8DQF8U757J+L9CUTv6vkloHrTG9ULnBCLhRCiJX/LaOOgLhb8NQ9ZNC7lnXXIMqVMcqjN3pqzoGWMVjn6tk/qxufmJA2Hs4mXjMetHYalLC5/x241ql2AvdeddFjQFJM9lEpmC7c52mfaZt83nAAJIaHK8hXgOBhAZu9wE6srK4zD9tT7E9yyuH0WYXsNJWU0QVYy+5tTCFHTHSrC9mMvnpU8/qVBjLVUqu+m+VU1C6qGLkvLuXGe2WAhWhzTNnRMH2UZ8oLpueC2dvobPvTxIs4r7mWxbQb1TCGIJE2jYfjvhPBEo2QPl1IuXVModfUH+i2Vi+yfMi2Fm/jzJWNqq99NA2op9R9A6qgSzFBooaeYus2ujPMDE9D9TRKradgUgiZ0KVA== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(83380400001)(8936002)(1076003)(26005)(186003)(316002)(8676002)(356005)(54906003)(6666004)(6916009)(36860700001)(47076005)(508600001)(70206006)(82310400003)(7696005)(6486002)(336012)(36756003)(5660300002)(30864003)(19627235002)(2616005)(81166007)(956004)(86362001)(70586007)(2906002)(4326008);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2021 17:40:33.9827 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b3437dee-e408-48fc-e922-08d998a7b6aa X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6887 Content-Type: text/plain This patch introduces new PCDs required to enable chip to chip interface and corresponding memory map is updated. Signed-off-by: Chandni Cherukuri Signed-off-by: Khasim Syed Mohammed --- .../Library/PlatformLib/PlatformLib.inf | 28 +++++-- .../Library/PlatformLib/PlatformLibMem.c | 84 ++++++++++++++++--- Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec | 35 +++++++- 3 files changed, 125 insertions(+), 22 deletions(-) diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf index 166c9e0444..8e2154aadf 100644 --- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf +++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf @@ -1,6 +1,7 @@ ## @file +# Platform Library for N1Sdp. # -# Copyright (c) 2018-2020, ARM Limited. All rights reserved. +# Copyright (c) 2018-2021, ARM Limited. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -29,13 +30,17 @@ AArch64/Helper.S | GCC [FixedPcd] - gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress - - gArmTokenSpaceGuid.PcdSystemMemoryBase - gArmTokenSpaceGuid.PcdSystemMemorySize - gArmTokenSpaceGuid.PcdArmPrimaryCore - gArmTokenSpaceGuid.PcdArmPrimaryCoreMask - + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixBusMax + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixBusMin + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixExpressBaseAddress + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio32Base + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio32Size + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio64Base + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio64Size + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixRootPortConfigBaseAddress + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixRootPortConfigBaseSize + gArmNeoverseN1SocTokenSpaceGuid.PcdDramBlock2Base + gArmNeoverseN1SocTokenSpaceGuid.PcdExtMemorySpace gArmNeoverseN1SocTokenSpaceGuid.PcdPcieBusMax gArmNeoverseN1SocTokenSpaceGuid.PcdPcieBusMin gArmNeoverseN1SocTokenSpaceGuid.PcdPcieMmio32Base @@ -45,7 +50,12 @@ gArmNeoverseN1SocTokenSpaceGuid.PcdPcieRootPortConfigBaseAddress gArmNeoverseN1SocTokenSpaceGuid.PcdPcieRootPortConfigBaseSize - gArmNeoverseN1SocTokenSpaceGuid.PcdDramBlock2Base + gArmTokenSpaceGuid.PcdArmPrimaryCore + gArmTokenSpaceGuid.PcdArmPrimaryCoreMask + gArmTokenSpaceGuid.PcdSystemMemoryBase + gArmTokenSpaceGuid.PcdSystemMemorySize + + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress [Guids] gEfiHobListGuid ## CONSUMES ## SystemTable diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c index f9b3d03753..1c4a445c5e 100644 --- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c +++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c @@ -1,9 +1,9 @@ /** @file -* -* Copyright (c) 2018 - 2020, ARM Limited. All rights reserved. -* -* SPDX-License-Identifier: BSD-2-Clause-Patent -* + + Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + **/ #include @@ -13,7 +13,7 @@ #include // The total number of descriptors, including the final "end-of-table" descriptor. -#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 13 +#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 19 /** Returns the Virtual Memory Map of the platform. @@ -21,21 +21,23 @@ This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU on your platform. - @param[out] VirtualMemoryMap Array of ARM_MEMORY_REGION_DESCRIPTOR describing - a Physical-to-Virtual Memory mapping. This array - must be ended by a zero-filled entry. + @param[in] VirtualMemoryMap Array of ARM_MEMORY_REGION_DESCRIPTOR describing + a Physical-to-Virtual Memory mapping. This array + must be ended by a zero-filled entry. **/ VOID ArmPlatformGetVirtualMemoryMap ( IN ARM_MEMORY_REGION_DESCRIPTOR **VirtualMemoryMap ) { - UINTN Index = 0; + UINTN Index; ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable; EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttributes; NEOVERSEN1SOC_PLAT_INFO *PlatInfo; UINT64 DramBlock2Size; + UINT64 RemoteDdrSize; + Index = 0; PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)NEOVERSEN1SOC_PLAT_INFO_STRUCT_BASE; DramBlock2Size = ((UINT64)(PlatInfo->LocalDdrSize - NEOVERSEN1SOC_DRAM_BLOCK1_SIZE / SIZE_1GB) * @@ -55,6 +57,24 @@ ArmPlatformGetVirtualMemoryMap ( FixedPcdGet64 (PcdDramBlock2Base), DramBlock2Size); + if (PlatInfo->MultichipMode == 1) { + RemoteDdrSize = ((PlatInfo->RemoteDdrSize - 2) * SIZE_1GB); + + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdExtMemorySpace) + FixedPcdGet64 (PcdSystemMemoryBase), + PcdGet64 (PcdSystemMemorySize) + ); + + BuildResourceDescriptorHob ( + EFI_RESOURCE_SYSTEM_MEMORY, + ResourceAttributes, + FixedPcdGet64 (PcdExtMemorySpace) + FixedPcdGet64 (PcdDramBlock2Base), + RemoteDdrSize + ); + } + ASSERT (VirtualMemoryMap != NULL); Index = 0; @@ -114,6 +134,32 @@ ArmPlatformGetVirtualMemoryMap ( VirtualMemoryTable[Index].Length = PcdGet64 (PcdPcieMmio64Size); VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + // CCIX RC Configuration Space + VirtualMemoryTable[++Index].PhysicalBase = PcdGet32 (PcdCcixRootPortConfigBaseAddress); + VirtualMemoryTable[Index].VirtualBase = PcdGet32 (PcdCcixRootPortConfigBaseAddress); + VirtualMemoryTable[Index].Length = PcdGet32 (PcdCcixRootPortConfigBaseSize); + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + + // CCIX ECAM Configuration Space + VirtualMemoryTable[++Index].PhysicalBase = PcdGet32 (PcdCcixExpressBaseAddress); + VirtualMemoryTable[Index].VirtualBase = PcdGet32 (PcdCcixExpressBaseAddress); + VirtualMemoryTable[Index].Length = (FixedPcdGet32 (PcdCcixBusMax) - + FixedPcdGet32 (PcdCcixBusMin) + 1) * + SIZE_1MB; + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + + // CCIX MMIO32 Memory Space + VirtualMemoryTable[++Index].PhysicalBase = PcdGet32 (PcdCcixMmio32Base); + VirtualMemoryTable[Index].VirtualBase = PcdGet32 (PcdCcixMmio32Base); + VirtualMemoryTable[Index].Length = PcdGet32 (PcdCcixMmio32Size); + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + + // CCIX MMIO64 Memory Space + VirtualMemoryTable[++Index].PhysicalBase = PcdGet64 (PcdCcixMmio64Base); + VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdCcixMmio64Base); + VirtualMemoryTable[Index].Length = PcdGet64 (PcdCcixMmio64Size); + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + // SubSystem Pheripherals - UART0 VirtualMemoryTable[++Index].PhysicalBase = NEOVERSEN1SOC_UART0_BASE; VirtualMemoryTable[Index].VirtualBase = NEOVERSEN1SOC_UART0_BASE; @@ -138,6 +184,24 @@ ArmPlatformGetVirtualMemoryMap ( VirtualMemoryTable[Index].Length = NEOVERSEN1SOC_EXP_PERIPH_BASE0_SZ; VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE; + if (PlatInfo->MultichipMode == 1) { + //Remote DDR (2GB) + VirtualMemoryTable[++Index].PhysicalBase = PcdGet64 (PcdExtMemorySpace) + + PcdGet64 (PcdSystemMemoryBase); + VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdExtMemorySpace) + + PcdGet64 (PcdSystemMemoryBase); + VirtualMemoryTable[Index].Length = PcdGet64 (PcdSystemMemorySize); + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH; + + //Remote DDR + VirtualMemoryTable[++Index].PhysicalBase = PcdGet64 (PcdExtMemorySpace) + + PcdGet64 (PcdDramBlock2Base); + VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdExtMemorySpace) + + PcdGet64 (PcdDramBlock2Base); + VirtualMemoryTable[Index].Length = RemoteDdrSize; + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH; + } + // End of Table VirtualMemoryTable[++Index].PhysicalBase = 0; VirtualMemoryTable[Index].VirtualBase = 0; diff --git a/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec b/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec index 54b793a937..eea2d58402 100644 --- a/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec +++ b/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec @@ -1,5 +1,7 @@ +## @file +# Describes the entire platform configuration. # -# Copyright (c) 2018 - 2020, ARM Limited. All rights reserved. +# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -33,8 +35,8 @@ gArmNeoverseN1SocTokenSpaceGuid.PcdPcieBusMax|17|UINT32|0x00000005 gArmNeoverseN1SocTokenSpaceGuid.PcdPcieBusMin|0|UINT32|0x00000006 gArmNeoverseN1SocTokenSpaceGuid.PcdPcieIoBase|0x0|UINT32|0x00000007 - gArmNeoverseN1SocTokenSpaceGuid.PcdPcieIoMaxBase|0x00FFFFFF|UINT32|0x00000008 - gArmNeoverseN1SocTokenSpaceGuid.PcdPcieIoSize|0x01000000|UINT32|0x00000009 + gArmNeoverseN1SocTokenSpaceGuid.PcdPcieIoMaxBase|0x001FFFF|UINT32|0x00000008 + gArmNeoverseN1SocTokenSpaceGuid.PcdPcieIoSize|0x020000|UINT32|0x00000009 gArmNeoverseN1SocTokenSpaceGuid.PcdPcieIoTranslation|0x75200000|UINT32|0x0000000A gArmNeoverseN1SocTokenSpaceGuid.PcdPcieMmio32Base|0x71200000|UINT32|0x0000000B gArmNeoverseN1SocTokenSpaceGuid.PcdPcieMmio32MaxBase|0x751FFFFF|UINT32|0x0000000C @@ -44,3 +46,30 @@ gArmNeoverseN1SocTokenSpaceGuid.PcdPcieMmio64MaxBase|0x28FFFFFFFF|UINT64|0x00000010 gArmNeoverseN1SocTokenSpaceGuid.PcdPcieMmio64Size|0x2000000000|UINT64|0x00000011 gArmNeoverseN1SocTokenSpaceGuid.PcdPcieMmio64Translation|0x0|UINT64|0x00000012 + + # CCIX + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixBusCount|18|UINT32|0x00000016 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixBusMax|17|UINT32|0x00000017 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixBusMin|0|UINT32|0x00000018 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixExpressBaseAddress|0x68000000|UINT32|0x00000019 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixIoBase|0x0|UINT32|0x0000001A + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixIoMaxBase|0x01FFFF|UINT32|0x0000001B + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixIoSize|0x020000|UINT32|0x0000001C + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixIoTranslation|0x6D200000|UINT32|0x00000001D + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio32Base|0x69200000|UINT32|0x0000001E + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio32MaxBase|0x6D1FFFFF|UINT32|0x00000001F + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio32Size|0x04000000|UINT32|0x00000020 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio32Translation|0x0|UINT32|0x00000021 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio64Base|0x2900000000|UINT64|0x00000022 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio64MaxBase|0x48FFFFFFFF|UINT64|0x00000023 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio64Size|0x2000000000|UINT64|0x00000024 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixMmio64Translation|0x0|UINT64|0x00000025 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixRootPortConfigBaseAddress|0x62000000|UINT32|0x00000026 + gArmNeoverseN1SocTokenSpaceGuid.PcdCcixRootPortConfigBaseSize|0x00001000|UINT32|0x00000027 + + gArmNeoverseN1SocTokenSpaceGuid.PcdExtMemorySpace|0x40000000000|UINT64|0x00000029 + + # Remote Chip PCIe + gArmNeoverseN1SocTokenSpaceGuid.PcdRemotePcieIoTranslation|0x40075200000|UINT64|0x0000004A + gArmNeoverseN1SocTokenSpaceGuid.PcdRemotePcieMmio32Translation|0x40000000000|UINT64|0x0000004B + gArmNeoverseN1SocTokenSpaceGuid.PcdRemotePcieMmio64Translation|0x40000000000|UINT64|0x0000004C -- 2.17.1