From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (EUR05-VI1-obe.outbound.protection.outlook.com [40.107.21.47]) by mx.groups.io with SMTP id smtpd.web12.1246.1591640570941326549 for ; Mon, 08 Jun 2020 11:22:51 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@nxp1.onmicrosoft.com header.s=selector2-nxp1-onmicrosoft-com header.b=heafplaK; spf=pass (domain: oss.nxp.com, ip: 40.107.21.47, mailfrom: wasim.khan@oss.nxp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DcQZdIjOIMJjaZQ4cik3l6Ck/ZHLYgiQpcP+MD/IfykzVlDlleDfOzZAfbnIQAgH/CjTC8RgT0eHTp25dANYXDs/ijd6bJHh08sulQivzwUr3Gd3BcKRvVbhKpFG4jjWu+WOpn6fMC/voWqAngllz2tCnNeaHLEqzXQCqj2Xl8YDu8hHKEpv4aEBabPLBzcG4OHg1ejGsDO2yWg4ycqP9C2B+ivo65xfodkMaAE/2pBXCNBlaEteU1Mhg70TuXTUfDTskRE64Jtg1E236SIcxdfCP5j787ZCK7xP5x+avo7A654cqT6u3v9iNk2ziD9tgnjF1Q6f5E+U8EJi5lOLwg== 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-SenderADCheck; bh=JcLpvcqYSTP9rt7DrDICckIT76U+WVGDbZrtXQsatAM=; b=D7lKKjn3fdAksAJ8GVfPwprrNArwWxaqM660bi0UCE84SES3uwfxDS6KpJyUe0A4J6FjEtp0zs4fPtrgtYhZIkpE8THYPLB+I8ZFBQaWn8SViASmw+egjtjYTxW5bq4Sr2G009DAX2zhPveab/AORcKv6mvEXWMnlNXg2p6a3zN5YZvrAlE+ZqzCk3y0qK6V8YInDpQuh+gDvMlM8AxPX1XNTyMXyq6nTpv0w7/+nuYu8ssAMziK0FfC36t0j5qVH+Mtbc9bG6f5dhBN+GIt3LtKX20Z1Uy/sA/75Dd+DDxz7f+J8wQiMie1jx8LhGtJqp0Oqyy3WNiua2FuDDs0Ig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JcLpvcqYSTP9rt7DrDICckIT76U+WVGDbZrtXQsatAM=; b=heafplaKUvD40WI3F05l8WspQkGXISLIDRZgEHJBenBvK914FlGHJGJUf3rwe4cQt8fjvOxymwY5Wly2nw2plgUX25YdLLM+Y9WRjwmyhqgpwVSSzViAxqEwTPpLuNO/Z/dDLaK02S3eED4CVRyDO+9CY4jRtJddYtr0bardCFk= Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=oss.nxp.com; Received: from VE1PR04MB6702.eurprd04.prod.outlook.com (2603:10a6:803:123::13) by VE1PR04MB6525.eurprd04.prod.outlook.com (2603:10a6:803:120::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.20; Mon, 8 Jun 2020 18:22:48 +0000 Received: from VE1PR04MB6702.eurprd04.prod.outlook.com ([fe80::81c4:97a6:7592:f225]) by VE1PR04MB6702.eurprd04.prod.outlook.com ([fe80::81c4:97a6:7592:f225%7]) with mapi id 15.20.3066.023; Mon, 8 Jun 2020 18:22:48 +0000 From: Wasim Khan To: devel@edk2.groups.io, meenakshi.aggarwal@nxp.com, V.Sethi@nxp.com, ard.biesheuvel@arm.com, leif@nuviainc.com CC: Wasim Khan Subject: [PATCH edk2-platforms v4 3/3] Silicon/NXP: PciHostBridgeLib: Initialize only enabled PCIe controllers Date: Mon, 8 Jun 2020 23:52:18 +0530 Message-ID: <1591640538-24751-4-git-send-email-wasim.khan@oss.nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1591640538-24751-1-git-send-email-wasim.khan@oss.nxp.com> References: <1591640538-24751-1-git-send-email-wasim.khan@oss.nxp.com> X-ClientProxiedBy: PN1PR0101CA0065.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00:d::27) To VE1PR04MB6702.eurprd04.prod.outlook.com (2603:10a6:803:123::13) Return-Path: wasim.khan@oss.nxp.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from wasimk-VirtualBox.nxp.com (157.37.163.9) by PN1PR0101CA0065.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00:d::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3066.18 via Frontend Transport; Mon, 8 Jun 2020 18:22:46 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [157.37.163.9] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 2e6eb2f8-2789-4bf7-3e77-08d80bd8f292 X-MS-TrafficTypeDiagnostic: VE1PR04MB6525: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-Forefront-PRVS: 042857DBB5 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PfMCNBO4nFXwyvTU9G3I8eKNHzxkC8A4ZAMkZOl7qNu9n6oajm6sAUYHIe/qpHcbbY81gMq500FRHBV+aT9l35KF/GX3eHIxMRAJu+6oShOcWdcpON9WnP3V92r/zXJW+KlzGsiUgNIgSnkWZ+CFE88LKIuVXMGCjC6T2OsyiqThjLJl3vhFHWrxDSqjaMtiSo+ROXSs2+xu3rVGr2B2or6Ub0iRkD/nbYyofMoSXJxJw3jsQkHsacZ5GMtX1yHlicyIgqygp3gUcUmASRM3c/NezLpCbD2IoZgf/UL95lIhqCa96R8r0R5ERMbf78rmrZmOC1Uj3ZjXiRGemCfkXQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6702.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(346002)(39860400002)(376002)(366004)(136003)(396003)(186003)(26005)(16526019)(8936002)(8676002)(4326008)(83380400001)(86362001)(478600001)(66946007)(6666004)(5660300002)(66556008)(956004)(316002)(6486002)(6512007)(52116002)(66476007)(6506007)(2616005)(44832011)(2906002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 7flEa+NYMSNs+sJBnbnkdajtEVXWjkjWNFOWf7sUOWsCdXSwfDyczF4mipl2A1REhyquQvHp3S0roiyQLIzO1r3auJP8s8l2rW2O7xDhkCeVo2jkhO4D1UrPZI6WtzxVVtElyUjV6xPMUfnEhyK0KpmcUjj8YF/Z2Y4m75+gFTOeXUtpQYvnnLqZ8YVghRoXRp/Ly4FknFhy798dGmdHipxl6NeYwGs07f4qJOB1Kotl0u4pu0GnPpm5Z6zqzkPMSXCCbMtsv+B8lJvMjOOn6/yAAriEB1BLmeDQHKxrb7jPXIrVoNOQDx/E5D716+DNsEjdpVKJiMfY7XvYF+AwqJox4P9azM484907Qs2Zywuf5KWb07flA0wvcm/yK01zsWUv13C3cGKtANzkPLA6ZT6wgKX0P8MdqrCRenuz0hNaMMmSMeU5zhizuURdccrhfDSFz0Kop1oeb0hynmHuBw7ajBB9MDWxAEp3j8xkaaA= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e6eb2f8-2789-4bf7-3e77-08d80bd8f292 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2020 18:22:48.7075 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: S7sEWqFUKwY8Oak1DMA1x3hnbAaS2t964CME8gAORcVIMZRAVIPxeiuee3yznpwmhN5fEEgr/liHlKLeouBRjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6525 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain From: Wasim Khan Based on the serdes protocol value in reset configuration word (RCW), different PCIe controllers are enabled. Get SerDes protocol map and initialize only enabled PCIe controllers. Signed-off-by: Wasim Khan Reviewed-by: Leif Lindholm --- Notes: Changes in V4: - No Change =20 Changes in V3: - No Change =20 Changes in V2: - Addressed review comments for structure, variable and function names - Using BIT0 instead of 0x1u Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.inf | 1 + Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.c | 35 +++++++++++= ++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.inf b/Si= licon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.inf index aa5a9dec7c34..6003da708698 100644 --- a/Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.inf +++ b/Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.inf @@ -28,6 +28,7 @@ [LibraryClasses] IoAccessLib MemoryAllocationLib PcdLib + SocLib =20 [FeaturePcd] gNxpQoriqLsTokenSpaceGuid.PcdPciLutBigEndian diff --git a/Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.c b/Sili= con/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.c index e5309a4f4248..8bbbaaa6e24d 100644 --- a/Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.c +++ b/Silicon/NXP/Library/PciHostBridgeLib/PciHostBridgeLib.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -721,6 +722,32 @@ PcieSetupCntrl ( } =20 /** + This function checks whether PCIe is enabled or not + depending upon SoC serdes protocol map + + @param PcieNum PCIe number. + + @return The PCIe number enabled in map. + @return FALSE PCIe number is disabled in map. + +**/ +STATIC +BOOLEAN +IsPcieNumEnabled( + IN UINTN PcieNum + ) +{ + UINT64 SerDesProtocolMap; + + SerDesProtocolMap =3D 0; + + // Reading serdes protocol map + GetSerDesProtocolMap (&SerDesProtocolMap); + + return (SerDesProtocolMap & (BIT0 << (PcieNum))) !=3D 0; +} + +/** Return all the root bridge instances in an array. =20 @param Count Return the count of root bridge instances. @@ -752,13 +779,19 @@ PciHostBridgeGetRootBridges ( PciPhyIoAddr [Idx] =3D PCI_SEG0_PHY_IO_BASE + (PCI_BASE_DIFF * Idx); Regs[Idx] =3D PCI_SEG0_DBI_BASE + (PCI_DBI_SIZE_DIFF * Idx); =20 + // Check is the PCIe controller is enabled + if (IsPcieNumEnabled (Idx + 1) =3D=3D 0) { + DEBUG ((DEBUG_INFO, "PCIE%d reg @ 0x%lx is disabled \n", Idx + 1, Re= gs[Idx])); + continue; + } + // Check PCIe Link LinkUp =3D PcieLinkUp(Regs[Idx], Idx); =20 if (!LinkUp) { continue; } - DEBUG ((DEBUG_INFO, "PCIE%d Passed Linkup Phase\n", Idx + 1)); + DEBUG ((DEBUG_INFO, "PCIE%d reg @ 0x%lx :Passed Linkup Phase\n", Idx += 1, Regs[Idx])); // Set up PCIe Controller and ATU windows PcieSetupCntrl (Regs[Idx], PciPhyCfg0Addr[Idx], --=20 2.7.4