From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (EUR04-DB3-obe.outbound.protection.outlook.com [40.107.6.53]) by mx.groups.io with SMTP id smtpd.web11.46898.1590482334269839294 for ; Tue, 26 May 2020 01:38:54 -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=TG87ri10; spf=pass (domain: oss.nxp.com, ip: 40.107.6.53, mailfrom: wasim.khan@oss.nxp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dn4ZT+XfNbzwqWt9+qsKjdvveZfOrYVGXJi897gUOcSkgQ0fzg5oRUbSUVvJEye6BT7kbeimcQHHhgKTROE6XVWA0OI5nXep92d6qwNzZxJYyVKV+Z+TXANNPKyaCxRk875dBH8JDojMJW2NL0xuvBmvpFKSKznYV+D18+maX6Voz3b8d6NYOoUt9QTGfwkuVclBQ7rTiHOII8nkfN6FXaDY1+Pb1gT/DUFmardAaSk5nIq/e3VRQGoSkpm9FqAeZSexIdQaXAzBoulz89YaMNWA9MO9Q0Sg394EAitcVXOjDUIiL6jiWLfBOtn6MDDc40aSPYhMiEkW8HZkIBhZIg== 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=0aFYVDnU8qf4jDsWkIfBozhES7s7IT5fMCvQdnO0hP8=; b=HiBCB5Z5ML+IVea8CMsb1bCDja1Us6RHw+VyhKoKTqk+XM9f6lIOZDjEvuOFu65u1Uz0/9OZD1wdsbCCmPgsQiamTcp7Ti/Nb6uETjFtjn39RlAP3qipsVdCkcJ9EBSZVYdiWQZXV6BpmZp1Nvg6+nKfK+vdpsos9ja3ugfL4Gfa52bBEZR3GZgXBco80wlp5ZB9cVPLlHrQAR/nuV9kpPvGc3tf9Wlt2XAM98Nwn/UvBzwvcIL3e89gdvYwy/CmBvpAFOxguabMSF3D/EFDHzB1zr97fx+p/Wk7kuiU9oniAG4f9KIkVPnoXyXwtw2qLPVhkg6sIyyOSXXums+lsA== 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=0aFYVDnU8qf4jDsWkIfBozhES7s7IT5fMCvQdnO0hP8=; b=TG87ri10JButLnEC2Bn+WHAcDyYmcWr/dv73f0FyQ7CgISkDHkdleQsO7QJ48lXckUbaeoxOp/GrtkUwvH+ljHTIVqMFjthUR9wc7k7moMQNq3UxIJ5bAdkpjurpEjICZKsmQovLJe3jjf2IauoyJGPfV40D78LcNpEwMEkziEc= 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 VE1PR04MB6367.eurprd04.prod.outlook.com (2603:10a6:803:11a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.27; Tue, 26 May 2020 08:38:52 +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.3021.029; Tue, 26 May 2020 08:38:52 +0000 From: Wasim Khan To: devel@edk2.groups.io, meenakshi.aggarwal@nxp.com, vabhav.sharma@nxp.com, V.Sethi@nxp.com, ard.biesheuvel@arm.com, leif@nuviainc.com, jon@solid-run.com CC: Wasim Khan Subject: [PATCH edk2-platforms v2 10/16] Silicon/NXP: PciSegmentLib: Add ECAM config support for PCIe LS Controller Date: Tue, 26 May 2020 14:07:15 +0530 Message-ID: <1590482241-13132-11-git-send-email-wasim.khan@oss.nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1590482241-13132-1-git-send-email-wasim.khan@oss.nxp.com> References: <1590482241-13132-1-git-send-email-wasim.khan@oss.nxp.com> X-ClientProxiedBy: BM1PR0101CA0015.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:18::25) 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 (171.79.147.152) by BM1PR0101CA0015.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:18::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3021.23 via Frontend Transport; Tue, 26 May 2020 08:38:48 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [171.79.147.152] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1663f23d-2011-4559-4d5a-08d8015037a4 X-MS-TrafficTypeDiagnostic: VE1PR04MB6367: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-Forefront-PRVS: 041517DFAB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L3exq2Vxin+APZvByrS8Yyux7bhlh4ZyW8+3yaUjpdA6MUt5G/BfaAgYFDSLl3TztrzutgYJQXSWcYlXOcqL9P/9B9soJmQrdQPHgQtFQhMTH/ZLOY2fuoPRUUfTeJDZGDl1q/nNd5X/qwYA9Qmmi5T7r9ebwcbn1h4sFj2tUYLRqia/GfS2xnp/bmdDH3BfSVwJzzqGsZlq9AZ0mQ3w6+nT+u2RYkIOs8TY1MsPESH5589aPM2HqwI+L2O2LtkxLv+xtoI4GSaRh4NuS5XVdI3lzhQ/sdi6yv4q7B1jD9xtyBpTayE+ixpOP1m8rUZYTReflP3j2rDJ1q06ZkS1tw== 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)(376002)(396003)(346002)(39860400002)(366004)(136003)(478600001)(6666004)(66946007)(86362001)(956004)(66476007)(44832011)(5660300002)(19627235002)(66556008)(316002)(2616005)(8936002)(2906002)(8676002)(6506007)(4326008)(16526019)(6486002)(52116002)(26005)(186003)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: GbiMzPe2+34gIo0T//GXTaeyUTcwkGGiOMOl1SebnI8xdDkJedoCPg8iu88HxSBZVXKaNwODGPJCjb2c63CF50GYl0W5so7d71V6GB2K6UcVB9K4fOCAjhCskByBq6oUDsPCZnvGTKzfCa+9Uhvl4jtO0Sx6om477FNikWXziAPoBSZblcOWKJe+9XWJw6kwy43BmaFbTimlhJrvbk0CjoHQ9DEH0wDJFzGcq27WA9CqS0b578Ai0BNB0uWziT1Cv9f+LymCZ7M//2fQu9dRl/2PGb0jPTGDnqDf/CJimMP/fkgh9Ak4TRQdwnGg+l6I850y6U/nJRTGh0Qr+j33MghLLTM81KWpvAk5yDCrvatxVYlZsVHOU85vIGDWIIwgmjW7NhZgey1zJC0f5mC8shU9B+GskvtZhD/1bwE9GvDKn589XRgZ2h4rIbVQx8jlmwAYTztIz9Yh/Mcgo+vsf1FrS1M24th1Dyeg4AvpZYw= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1663f23d-2011-4559-4d5a-08d8015037a4 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2020 08:38:52.1008 (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: bEl4VIeUX69902/toXIVOAv0RxnAqjvmvVXpihOcWObXpfzoO63cb+2wGvhAXIEfOkydGCoaJCJsR8785Hd5yA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6367 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain From: Wasim Khan PCIe Layerscape controller can be enabled for ECAM style configuration access using CFG SHIFT Feature. Check for PcdPciCfgShiftEnable to decide the configuration access scheme to be used with PCIe LS controller. Signed-off-by: Wasim Khan --- Notes: V2: - Addressed review comment to use (Bus > 0) instead of (Bus) Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.inf | 3 +++ Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.c | 20 ++++++++++++++++-= --- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.inf b/Silicon/= NXP/Library/PciSegmentLib/PciSegmentLib.inf index a36e79239b33..936213dc8a9d 100755 --- a/Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.inf +++ b/Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.inf @@ -30,3 +30,6 @@ [LibraryClasses] =20 [FixedPcd] gNxpQoriqLsTokenSpaceGuid.PcdPciExp1BaseAddr + +[Pcd] + gNxpQoriqLsTokenSpaceGuid.PcdPciCfgShiftEnable diff --git a/Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.c b/Silicon/NX= P/Library/PciSegmentLib/PciSegmentLib.c index d0bacca3d0d7..e5251ecf0dd8 100755 --- a/Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.c +++ b/Silicon/NXP/Library/PciSegmentLib/PciSegmentLib.c @@ -34,6 +34,8 @@ typedef enum { #define ASSERT_INVALID_PCI_SEGMENT_ADDRESS(A,M) \ ASSERT (((A) & (0xffff0000f0000000ULL | (M))) =3D=3D 0) =20 +static BOOLEAN CfgShiftEnable; + STATIC UINT64 PciLsCfgTarget ( @@ -88,11 +90,20 @@ PciLsGetConfigBase ( { UINT32 CfgAddr; =20 - CfgAddr =3D (UINT16)Offset; - if (Bus > 0) { - return PciLsCfgTarget (PCI_SEG0_DBI_BASE + PCI_DBI_SIZE_DIFF * Segment= , Address, Segment, Bus, Offset); + if (CfgShiftEnable) { + CfgAddr =3D (UINT32)Address; + if (Bus > 0) { + return PCI_SEG0_MMIO_MEMBASE + PCI_BASE_DIFF * Segment + CfgAddr; + } else { + return PCI_SEG0_DBI_BASE + PCI_DBI_SIZE_DIFF * Segment + CfgAddr; + } } else { - return PCI_SEG0_DBI_BASE + PCI_DBI_SIZE_DIFF * Segment + CfgAddr; + CfgAddr =3D (UINT16)Offset; + if (Bus > 0) { + return PciLsCfgTarget (PCI_SEG0_DBI_BASE + PCI_DBI_SIZE_DIFF * Segme= nt, Address, Segment, Bus, Offset); + } else { + return PCI_SEG0_DBI_BASE + PCI_DBI_SIZE_DIFF * Segment + CfgAddr; + } } } =20 @@ -608,5 +619,6 @@ PciSegLibInit ( IN EFI_SYSTEM_TABLE *SystemTable ) { + CfgShiftEnable =3D CFG_SHIFT_ENABLE; return EFI_SUCCESS; } --=20 2.7.4