From patchwork Tue Mar 15 06:36:40 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Yuan X-Patchwork-Id: 597365 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3qPQB02g4Fz9sds for ; Tue, 15 Mar 2016 17:46:00 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=freescale.onmicrosoft.com header.i=@freescale.onmicrosoft.com header.b=Oyow5Byr; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id CAAE4A764F; Tue, 15 Mar 2016 07:45:58 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zIxssiTwsz0q; Tue, 15 Mar 2016 07:45:58 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 383DBA748F; Tue, 15 Mar 2016 07:45:58 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D56C5A748F for ; Tue, 15 Mar 2016 07:45:54 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 92pUBKKUmFZV for ; Tue, 15 Mar 2016 07:45:54 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bn0109.outbound.protection.outlook.com [157.56.110.109]) by theia.denx.de (Postfix) with ESMTPS id 39A59A745C for ; Tue, 15 Mar 2016 07:45:50 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freescale.onmicrosoft.com; s=selector1-freescale-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=VluA4yRunnmBjfAFRb3OJTO6B0FmV6c4LbUAt0taWEg=; b=Oyow5ByrtHrC7hp+HhTcVmC8YoTfbN+af/Uo3mXIsP+PHhUxPTSCfs3bwXxpka6Fbo+3PPpYPRSHISikWx6BptUUJPKx+Z0kgrE9yXeG/RRWui9CrXBsK6J5UW8ZVeQLhrd9dO7ZZOl91NrxLX5Ngd7z4Mt0Yw8KeaElthKhU1s= Received: from BLUPR03CA010.namprd03.prod.outlook.com (10.255.124.27) by BN1PR0301MB0660.namprd03.prod.outlook.com (10.160.171.21) with Microsoft SMTP Server (TLS) id 15.1.434.16; Tue, 15 Mar 2016 06:45:48 +0000 Received: from BL2FFO11FD050.protection.gbl (10.255.124.4) by BLUPR03CA010.outlook.office365.com (10.255.124.27) with Microsoft SMTP Server (TLS) id 15.1.409.15 via Frontend Transport; Tue, 15 Mar 2016 06:45:47 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD050.mail.protection.outlook.com (10.173.161.212) with Microsoft SMTP Server (TLS) id 15.1.434.11 via Frontend Transport; Tue, 15 Mar 2016 06:45:47 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u2F6jhYU007233; Mon, 14 Mar 2016 23:45:45 -0700 From: Yuan Yao To: , Date: Tue, 15 Mar 2016 14:36:40 +0800 Message-ID: <1458023804-7233-1-git-send-email-yao.yuan@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(3190300001)(199003)(189002)(107886002)(50466002)(189998001)(586003)(5001770100001)(47776003)(106466001)(77096005)(4001430100002)(5008740100001)(229853001)(105606002)(33646002)(11100500001)(1096002)(6806005)(1220700001)(87936001)(104016004)(50986999)(36756003)(81166005)(48376002)(4326007)(2906002)(50226001)(85426001)(5003940100001)(86362001)(19580405001)(19580395003)(92566002)(7059030)(21314002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR0301MB0660; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD050; 1:3QPRMvIrGOR2XyKpuOPXT1Z7L51SZ/mRtRMgFTCY67CVPTBPUyjrXrv7znTMIMweNtlSWvZlu4/AzZP8e/4+dDMRzhplGE4n362Th7mOtzKAtIA+nQ+O5ZKS3p/AYrfXr0oi+IfN1c9PG/z4tyvxycN00bavOR/cGZkHTo8KzcanrMquv8N7fCKWtTmftF3ubkUyUO4Qjk5WqRDopFfEwCg7Z28AH/JRzxoclf7BORRxlVO9QDgvKHvV4vB/52Ycr/N8z1iMX6wwml6A0mezGq1qCDIqmOuz0YBOXdmLHMlnfQxAimJHxeU0dJVXSgkJjORtEYQ42E+QyHho8KFkcB3fKS9o3en5sZIALyJRILyaafb6m+1T2+qW7RZXf23cs7aDgNg0xuMeLf/mviXpxazbCzHwUc12iz+CY8D5mKrB4o7zln7SDn+6iLYjSIWZEU3VclDaZbrjc0uDCPvw3tknbZUMw88WYqFS46zz3XtvecSv2T7lvdUSblfdgie5RN2wQx2jAQ0Qzazvjz1yfA== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 7b57bcd7-98b4-43ba-1222-08d34c9d7105 X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0660; 2:IJCF7aoOh/6SC1tyNHMfIsK4rrzXMfBWGD28LZ2aFFBolloRwGET60lPvXN+OwBToahzL3eeezESVmtMjCa5vxsJPGgg7L78cIgKpzo2NRnkeebTd02awOQZZMYw2JjcRxCRwvg43MpyAlGjUhs6IzgYATi6qrHxtMzxQkUUDPpVxP2CfERO6U2dudToZhtR; 3:D9O4VpA6vw/ze6Ootv2QhhFvRX9cngHuNYId1SflEpwBlOF8y3sXaD0zZiUVglp6CVfwJDXKKtzYztOTvjT2eWef0hLFE+hpVVZXV/kN+UNTsLEI2Ect8uckpwZpxnS/3ksYK0I4tv2FM/Anl58NN5hSFv8D3a3h96WysHyzdb6pS1bYfddHZ3+ely3YifbF2pUd2ia60Kwd6jA4zbTPTdF1VggYbMDBUNTSudcvRcg=; 25:1wJXMjdBo63t9nfOYMVR9PtSk4HZNKgMleWEn2ni6IysKBpQINwOe0pXOM1A3CS77YRotuoEsMbUZHSXvm3fxyxwMGFuolQz0ApFs4JaSLQpDPfCtYJeTFxJrTpW5TpbZhtdPbqH8cjqy7K+L852LZNtFEk6pJpkFhWa63ZMAe6YCP3C1qFB/05Ol2w6pYPixn7Y7DkJaiNJNl0GoZ8YhfC9NZE9WS9kHAWqs1aJUDgxjrkmQZPxAOVAYvyPAb/fXGqlMz/nUYdI7/Wla8QIeTez9LoAvwj/q1MuaKdGw6ncbHqTfJ85p3t0cVAYii2dJac3irQ95U9HuBaft1deZQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR0301MB0660; X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0660; 20:Kr+KPkl6U2PhGR7SFSD7Z0/Mj13fPki6/guj/UOrgFQH0XoCV4PKHcRoTKW7vDvaoidbcWWA5273+caAZxdm+4upAlxap6ABUltE9HqetqBHuOXvaa/o7YjRT6nWIR5QGdQflROD+mwTn9DRUBsGgL1VndVnCZdudjoZMdRi4we+Rz8EmxDMWvotZnrvuW9MAUvKxbFC+Vbuv/IRSSIiKVj8xZewF2z1AYCg9GkNNdCKyH4XVZGZqgRqeROQmJLG5Va73+E2a9UDqA4Uq9+ScYadBxYRpEBnqE0ub72F+/tGKApQZ//142DVIsRMMAY/TpNJbXVjMPVb/kUguUTkuaUEG0E8ElclnuGs/h62t3E0wk0sPwSgvMJCxmHVqKjppY96oAbBxIHWlw8NNHZWeaX0fo31jcCOFugdhKNaT35QijN+yQP7CDLDu4ynaXdU; 4:/F5CGGmvGk+QsW+3iitBOaTUUv71SLOKR+BIVv9UnuERRg+IEpd4g5NCsuwvzaeMPB4qWLtsGniSeSJZZjUpWRYLr2IReNVvM4gp8hU9b91vF+sOo6cTIWD0Ch4eliXAOih28jNNEzsPe7xoIU6h0MNh7+9bqpQdUue3wnkRxNiEJfohdu9kYrfTN7BwzEB7YVidPcO9X2GCSQ4lqxIhEgCweMgZ+SA8w5QJ5I7mm9ueiw0tkbIuYdEC3Xj75oCyK9Q5bP62B8thyK5ZJukraPUAAuq+AdM9lGQj+b9F9Q1PaKvivNIfvWtdodxXrYA/1CQQ3bkze34xPiAN51/pJJhltRpx/ox+cXxEANFaNKIqv/tApTEVX/GNjCdi7FFZRyuWT/YX7H6sXq2HOlCIBLK3lLf/sWJNpd1738QOlwhB/sHxk4n7ePslxt9S/Tptop3uDYxXVCsCzUy5VkNlnQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13018025)(8121501046)(5005006)(13017025)(13015025)(13023025)(13024025)(10201501046)(3002001); SRVR:BN1PR0301MB0660; BCL:0; PCL:0; RULEID:; SRVR:BN1PR0301MB0660; X-Forefront-PRVS: 08828D20BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR0301MB0660; 23:0gPtHmiIGFC7k/RzPdDQ8fVoSITdfcmoKEhDy2c?= =?us-ascii?Q?C0Ooa9h8RIBu9cYnCdoUvR2IKiiFs7tiMgl01DSDMMa+juL16PcFWQwk2jnq?= =?us-ascii?Q?Qokw5FqxEiZNQw7RJvTR8p/C3279YjRLQiprXHSi5HGEI8+CZdj1os9BqMpz?= =?us-ascii?Q?tDGAvzBscdVwBlEnJDoqwfbJUQcsJlocbPJ2gsAUkTje9NCxL7VR8hSPM86c?= =?us-ascii?Q?6nuitL/suH0x3n7Cr66wzP0VyiR38UUlf9DU3FOVTsWxyL9Fckwik6VeiQr9?= =?us-ascii?Q?iAWwrV3hUeeMqcyVra9Sjv5pM8jB3o0bA3SShlPrl/OGRb9z42FJlJX8/mNB?= =?us-ascii?Q?aKsQidYi761HKVlQTA2NOrAcSMpQgK538DjngQQBuLdKLXJv1SbV5LqM1pCP?= =?us-ascii?Q?pm0pE22jDuVmaQuId4mF36Wn9XbdBZtnORTxwJuTmZil3s91pTZIovCbP/+N?= =?us-ascii?Q?E8DmP4bPABuirKhbmgbDQKwdZHuSqrO8JLuDGCYTyLn3tCg4CiYmSbrjrCY5?= =?us-ascii?Q?baXBR05KJ616xN9ezFeKsVe5vOqY2SP9H6pvUKQijJWtH/5j/Y0Hf+bDZfs5?= =?us-ascii?Q?GpvEUtry35ax/06H09MVjZCcVonNL8vKgTCGGpEa6dcFK3/Go8r//WfokeVi?= =?us-ascii?Q?TyOV8D5RglMJPvKUR4GcmsgJiCjBBFDxywawSwmopJdtKWmUxbP815iQTP5C?= =?us-ascii?Q?hzHb2FHDIsP2cmRvFnJcR0+kJx/YgkEWBG/hghifSV8/QexctGINmmCvL7AK?= =?us-ascii?Q?apOgqI67QfDxlh69NVuB/jpNwtQy7IiB0VtKSMB1ksKGOghrtwweboSb0Fcm?= =?us-ascii?Q?zlFY7cHmDQftj2KuUEsk7DjpBeAcwtls2cirjqyT5eOwvOpOYOgHM7xLcJbt?= =?us-ascii?Q?+6WjZn6a/WLE425HP90dIDmWGefJ8Nys9nWH6GuelLK0ZvLsD+oT4Ta7offL?= =?us-ascii?Q?UxV/U4azbA1L5NV++OLWYHHXBqQT0YgkDhCjGNV9CCi1flG27wzdE/JcPVQc?= =?us-ascii?Q?56OdhPVNYsbFwSSGP6laQgyEYA3kQWuvsCxlQUNII9FJStIURwraPtJ2h77b?= =?us-ascii?Q?Kj0502b72VY3pL9MSF5N/Wy01sVBaKINLZGNjqlCulJLA3fqG8hrjTuAu6wE?= =?us-ascii?Q?WwXAYW9TacZw=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0660; 5:Zw9HyxZtEEHOdUs1W3+zwOWiopDPwTaiUAcKCCcr5VSSIfsAlTdAL12t1YIO03srdDEGqDAUFOn7TyLjhNcJPbGIPuYi+uJVOU6+Ds1SgpeVkF0aG6hGPRr6OdRT3ixfLkCFP7rtHrgUMG8kFidS8Q==; 24:f/wjx/Dl+ZrrkSZAad0j+KlDyXUd9+XUgmoRZAzoKjtQYhXFVsm5RbHGj287AHSrnvJzC5J5jBPOcFN+BJCk2oz6BvSvNdfIP5v6ov5tmTk= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2016 06:45:47.7390 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR0301MB0660 Cc: yunhui.cui@nxp.com, u-boot@lists.denx.de, Prabhakar Kushwaha Subject: [U-Boot] [PATCH 1/4] spi: fsl_qspi: Fix issues on arm64 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 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: Yuan Yao The address value and size value get from dts "reg" property have type of u64 on arm64. If we assign those values to "u32" variables, driver can't work correctly. Converting the type of those variables to fdt_xxx_t. Signed-off-by: Yuan Yao Signed-off-by: Prabhakar Kushwaha Signed-off-by: Yuan Yao --- drivers/spi/fsl_qspi.c | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c index cb8d929..96fb909 100644 --- a/drivers/spi/fsl_qspi.c +++ b/drivers/spi/fsl_qspi.c @@ -92,9 +92,9 @@ DECLARE_GLOBAL_DATA_PTR; struct fsl_qspi_platdata { u32 flags; u32 speed_hz; - u32 reg_base; - u32 amba_base; - u32 amba_total_size; + fdt_addr_t reg_base; + fdt_addr_t amba_base; + fdt_size_t amba_total_size; u32 flash_num; u32 num_chipselect; }; @@ -940,8 +940,13 @@ static int fsl_qspi_probe(struct udevice *bus) priv->flags = plat->flags; priv->speed_hz = plat->speed_hz; - priv->amba_base[0] = plat->amba_base; - priv->amba_total_size = plat->amba_total_size; + /* + * QSPI SFADR width is 32bits, the max dest addr is 4GB-1. + * AMBA memory zone should be located on the 0~4GB space + * even on a 64bits cpu. + */ + priv->amba_base[0] = (u32)plat->amba_base; + priv->amba_total_size = (u32)plat->amba_total_size; priv->flash_num = plat->flash_num; priv->num_chipselect = plat->num_chipselect; @@ -984,10 +989,7 @@ static int fsl_qspi_probe(struct udevice *bus) static int fsl_qspi_ofdata_to_platdata(struct udevice *bus) { - struct reg_data { - u32 addr; - u32 size; - } regs_data[2]; + struct fdt_resource res_regs, res_mem; struct fsl_qspi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; int node = bus->of_offset; @@ -996,10 +998,16 @@ static int fsl_qspi_ofdata_to_platdata(struct udevice *bus) if (fdtdec_get_bool(blob, node, "big-endian")) plat->flags |= QSPI_FLAG_REGMAP_ENDIAN_BIG; - ret = fdtdec_get_int_array(blob, node, "reg", (u32 *)regs_data, - sizeof(regs_data)/sizeof(u32)); + ret = fdt_get_named_resource(blob, node, "reg", "reg-names", + "QuadSPI", &res_regs); + if (ret) { + debug("Error: can't get regs base addresses(ret = %d)!\n", ret); + return -ENOMEM; + } + ret = fdt_get_named_resource(blob, node, "reg", "reg-names", + "QuadSPI-memory", &res_mem); if (ret) { - debug("Error: can't get base addresses (ret = %d)!\n", ret); + debug("Error: can't get AMBA base addresses(ret = %d)!\n", ret); return -ENOMEM; } @@ -1017,16 +1025,16 @@ static int fsl_qspi_ofdata_to_platdata(struct udevice *bus) plat->num_chipselect = fdtdec_get_int(blob, node, "num-cs", FSL_QSPI_MAX_CHIPSELECT_NUM); - plat->reg_base = regs_data[0].addr; - plat->amba_base = regs_data[1].addr; - plat->amba_total_size = regs_data[1].size; + plat->reg_base = res_regs.start; + plat->amba_base = res_mem.start; + plat->amba_total_size = res_mem.end - res_mem.start + 1; plat->flash_num = flash_num; - debug("%s: regs=<0x%x> <0x%x, 0x%x>, max-frequency=%d, endianess=%s\n", + debug("%s: regs=<0x%llx> <0x%llx, 0x%llx>, max-frequency=%d, endianess=%s\n", __func__, - plat->reg_base, - plat->amba_base, - plat->amba_total_size, + (u64)plat->reg_base, + (u64)plat->amba_base, + (u64)plat->amba_total_size, plat->speed_hz, plat->flags & QSPI_FLAG_REGMAP_ENDIAN_BIG ? "be" : "le" );