From patchwork Sun Aug 25 15:42:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Z.Q. Hou" X-Patchwork-Id: 1152811 X-Patchwork-Delegate: prabhakar@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="MS92ZJyU"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46GfZD48YKz9s00 for ; Mon, 26 Aug 2019 01:44:04 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 22824C21EA1; Sun, 25 Aug 2019 15:43:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 3CD42C21D8A; Sun, 25 Aug 2019 15:42:57 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 29E8FC21DFB; Sun, 25 Aug 2019 15:42:50 +0000 (UTC) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50040.outbound.protection.outlook.com [40.107.5.40]) by lists.denx.de (Postfix) with ESMTPS id CC2C5C21E6A for ; Sun, 25 Aug 2019 15:42:46 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QNa3Y0tBqF5PEj4cqN5BjCJJPx+lQoJR/Ps8MBKn/UexZbA6+rp4AGW9xri+LHEv4ePIpO5I3cnDwYvCD8qZVfiDeJdddoInCMTaHf9R/wdY02OSv0FVLhbAOUbbspaxdYULv7f66UHvDCfXAUCcxY6PSSjLAAyhHMBONjTUX+lc6u5gcdID50pv4ndIjyfRTI74rVi8vgHHdAacJUDLJ8u/xiA0Smklia4N+vVUjyMfpHnWdHu5pk+7lOYBic2gxF4tultg5j2+xU+rHJ8524qadzMYHwuDerWTigNO00qg2duv5fBxX/liFAOyD52hUOOTMreswdRJbKSMB7xGiA== 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=VC6L6d3BwKAAmBpOhUQVWVBW4nptgCNl8du/ZuTiAYQ=; b=AM5yMY9u0BxRcafZomvpGolbzCftuodP18AmA6tubshDSXS+2NfI3EXjq5/fCZBTAJVTXqIUJjLotKeBcgmwJZ5h8MP2IP/Fe/FzARPlRB1fMwfwJMVcOTEc92tigPE11Qdob5be2MCmh7SKQR+818nNwtwhJ2628DDul9CByiD9eqEN5qwVo+dzBAb9OuUY6/cLhD5BNklZXPCTthkp05Y+Z4LLy9PCycV+hzDoI0r9Wkr7OZPo3EXXdpgIZuDd0YZYSkGmt8ZXasHXLbHFxraKyzhHxOGQeOvNdleJlwnRC6aNfLyttyUn3TAmnXq3CJ06kmclqznbQey6+z/yqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VC6L6d3BwKAAmBpOhUQVWVBW4nptgCNl8du/ZuTiAYQ=; b=MS92ZJyUvBmguX0kW0Z+8uOO8NRwlY8lu1Hl8QfeKI6UcD0zQRrHBSzNocIdgRewjUQch51hPCZ7YGU5gsFRPT1c+Ml4cn1AAdkOPhz9WOVPaVtdaW/ZusdsiAuoiYXWETmtB0UCctPvfPzzEdq7lLonUfZbLBhhozPxOXvShV0= Received: from DB8PR04MB6747.eurprd04.prod.outlook.com (20.179.250.159) by DB8PR04MB5690.eurprd04.prod.outlook.com (20.179.11.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.19; Sun, 25 Aug 2019 15:42:45 +0000 Received: from DB8PR04MB6747.eurprd04.prod.outlook.com ([fe80::19ec:cddf:5e07:37eb]) by DB8PR04MB6747.eurprd04.prod.outlook.com ([fe80::19ec:cddf:5e07:37eb%3]) with mapi id 15.20.2178.020; Sun, 25 Aug 2019 15:42:45 +0000 From: "Z.q. Hou" To: "u-boot@lists.denx.de" , Prabhakar Kushwaha , "bmeng.cn@gmail.com" Thread-Topic: [PATCHv2 3/3] dm: pcie_fsl: Fix the calculation of controller index Thread-Index: AQHVW1u9iyXjV5Gp8EKGCehGpnjsPw== Date: Sun, 25 Aug 2019 15:42:45 +0000 Message-ID: <20190825154423.30781-4-Zhiqiang.Hou@nxp.com> References: <20190825154423.30781-1-Zhiqiang.Hou@nxp.com> In-Reply-To: <20190825154423.30781-1-Zhiqiang.Hou@nxp.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK0PR03CA0083.apcprd03.prod.outlook.com (2603:1096:203:72::23) To DB8PR04MB6747.eurprd04.prod.outlook.com (2603:10a6:10:10b::31) authentication-results: spf=none (sender IP is ) smtp.mailfrom=zhiqiang.hou@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0efd5382-11fe-4fb8-c69e-08d72972dfdf x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DB8PR04MB5690; x-ms-traffictypediagnostic: DB8PR04MB5690: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3044; x-forefront-prvs: 01401330D1 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(366004)(39860400002)(136003)(346002)(396003)(199004)(189003)(36756003)(14454004)(386003)(71200400001)(81166006)(71190400001)(50226002)(486006)(316002)(7736002)(25786009)(52116002)(81156014)(11346002)(2616005)(99286004)(5660300002)(476003)(86362001)(2906002)(446003)(6512007)(66066001)(305945005)(4326008)(1076003)(76176011)(478600001)(256004)(186003)(8936002)(2501003)(6486002)(8676002)(6116002)(66446008)(26005)(6436002)(66946007)(66476007)(66556008)(64756008)(110136005)(3846002)(53936002)(102836004)(6506007); DIR:OUT; SFP:1101; SCL:1; SRVR:DB8PR04MB5690; H:DB8PR04MB6747.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Hov/39nn+MmFCA/WZ+c/UTGmVdfMtEXRDfp9XspTYP8+IE5YbKDn4i1lJjXKZPTK5RZnxb4QdmQVJ60qgc846J/V/Gs5Grc1JDXQGgI/8UlimzcPJRIEwwnOkTaAngfjsY5cKkV66IrGALhMTC19tCRCBDaMny9VAHkzA4TGoFSU4xIS7kFslhHXqlPLNR0wH0XGnOtlLNVbUOsq5Avilc33eGaa+bt7nz89MVkrX3O5SoFu+uAJLslkQKIi4L2ejF5eBBDVxJUiIjq5c5RKQCiRgx2il1KI3oRa3R5hobEX82YS+qGRicP6gV+3jQmkG+26N+g5FWMoIChVev5Q9N7TIfFqiG5cC1W/2NZuVWonGoQP6Qqosw3Q/t7JqwoRx713G38NcBJqoCQFcoLiMeBr0KvNi9h9jRHM2X7s2oY= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0efd5382-11fe-4fb8-c69e-08d72972dfdf X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2019 15:42:45.8008 (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: wzwmdntoyBXsmH84pgPCG5f4Co4MkKfUfnwlAWATJhbH5jsGKYKZw7gyixzrYzohSWXhsi9UZekvOfqjJELRng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB5690 Cc: "Z.q. Hou" Subject: [U-Boot] [PATCHv2 3/3] dm: pcie_fsl: Fix the calculation of controller index X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Hou Zhiqiang The PCIe controller register address in CCSR is different on various platforms, the current code erroneously use the hardcoded address (0xffe240000) and stride (0x10000) to calculate the controller's index. Fix it by adding the related info to the driver data structure. Signed-off-by: Hou Zhiqiang Reviewed-by: Bin Meng --- V2: - No change. drivers/pci/pcie_fsl.c | 14 ++++++++++++-- drivers/pci/pcie_fsl.h | 7 +++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/pci/pcie_fsl.c b/drivers/pci/pcie_fsl.c index 60d274124b..ff9b07506a 100644 --- a/drivers/pci/pcie_fsl.c +++ b/drivers/pci/pcie_fsl.c @@ -579,6 +579,7 @@ static int fsl_pcie_probe(struct udevice *dev) static int fsl_pcie_ofdata_to_platdata(struct udevice *dev) { struct fsl_pcie *pcie = dev_get_priv(dev); + struct fsl_pcie_data *info; int ret; pcie->regs = dev_remap_addr(dev); @@ -593,7 +594,10 @@ static int fsl_pcie_ofdata_to_platdata(struct udevice *dev) return ret; } - pcie->idx = (dev_read_addr(dev) - 0xffe240000) / 0x10000; + info = (struct fsl_pcie_data *)dev_get_driver_data(dev); + pcie->info = info; + pcie->idx = abs((u32)(dev_read_addr(dev) & info->block_offset_mask) - + info->block_offset) / info->stride; return 0; } @@ -603,8 +607,14 @@ static const struct dm_pci_ops fsl_pcie_ops = { .write_config = fsl_pcie_write_config, }; +static struct fsl_pcie_data t2080_data = { + .block_offset = 0x240000, + .block_offset_mask = 0x3fffff, + .stride = 0x10000, +}; + static const struct udevice_id fsl_pcie_ids[] = { - { .compatible = "fsl,pcie-t2080" }, + { .compatible = "fsl,pcie-t2080", .data = (ulong)&t2080_data }, { } }; diff --git a/drivers/pci/pcie_fsl.h b/drivers/pci/pcie_fsl.h index cdf28dbea2..32af54ce49 100644 --- a/drivers/pci/pcie_fsl.h +++ b/drivers/pci/pcie_fsl.h @@ -45,6 +45,12 @@ #define P4080_SERDES_ADDR (CONFIG_SYS_IMMR + 0xEA000) +struct fsl_pcie_data { + u32 block_offset; /* Offset from CCSR of 1st controller */ + u32 block_offset_mask; /* Mask out the CCSR base */ + u32 stride; /* Offset stride between controllers */ +}; + struct fsl_pcie { int idx; struct udevice *bus; @@ -54,6 +60,7 @@ struct fsl_pcie { bool mode; /* RC&EP mode flag */ bool enabled; /* Enable status */ struct list_head list; + struct fsl_pcie_data *info; }; extern struct list_head fsl_pcie_list;