From patchwork Wed Sep 21 02:25:56 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chin Liang See X-Patchwork-Id: 672515 X-Patchwork-Delegate: marek.vasut@gmail.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 3sf3Rd4cj3z9sxN for ; Wed, 21 Sep 2016 12:27:08 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=altera.onmicrosoft.com header.i=@altera.onmicrosoft.com header.b=NHXZZDxY; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 85E15A754C; Wed, 21 Sep 2016 04:27:04 +0200 (CEST) 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 NQvcuHaLpQEM; Wed, 21 Sep 2016 04:27:04 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id EA659A7548; Wed, 21 Sep 2016 04:27:03 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id B13FBA7534 for ; Wed, 21 Sep 2016 04:26:59 +0200 (CEST) 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 W_NAX4jitVQL for ; Wed, 21 Sep 2016 04:26:59 +0200 (CEST) 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 NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0054.outbound.protection.outlook.com [104.47.38.54]) by theia.denx.de (Postfix) with ESMTPS id 04EB3A7533 for ; Wed, 21 Sep 2016 04:26:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.onmicrosoft.com; s=selector1-altera-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=VcUMd8X7uh54PLuQrUuzY7qCWrS4zUzzLzzeW4Gjlxo=; b=NHXZZDxYDeO+1WYj1zduv0QGvNVbjSNSp1aM+73OR8AU0y/Th3iJ1LIpr1N7AZ/G7LtKd3IkUz7cS/rjXUl/5qIrHvE1kz4Rze16Lg25cyEFhg4lNBBn5mQ33aX0ONe6eVU6vYAxGbinFsFBUMe8S1SMaGNZQUe0EDxdsCPip6Q= Received: from BN3PR0301CA0028.namprd03.prod.outlook.com (10.160.180.166) by CY1PR03MB2249.namprd03.prod.outlook.com (10.166.207.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.639.5; Wed, 21 Sep 2016 02:26:53 +0000 Received: from BL2FFO11OLC013.protection.gbl (2a01:111:f400:7c09::169) by BN3PR0301CA0028.outlook.office365.com (2a01:111:e400:4000::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8 via Frontend Transport; Wed, 21 Sep 2016 02:26:52 +0000 Authentication-Results: spf=softfail (sender IP is 66.35.236.227) smtp.mailfrom=altera.com; lists.denx.de; dkim=none (message not signed) header.d=none; lists.denx.de; dmarc=none action=none header.from=altera.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning altera.com discourages use of 66.35.236.227 as permitted sender) Received: from sj-itexedge03.altera.priv.altera.com (66.35.236.227) by BL2FFO11OLC013.mail.protection.outlook.com (10.173.160.161) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.629.5 via Frontend Transport; Wed, 21 Sep 2016 02:26:50 +0000 Received: from sj-mail01.altera.com (137.57.1.6) by webmail.altera.com (66.35.236.227) with Microsoft SMTP Server (TLS) id 14.3.174.1; Tue, 20 Sep 2016 19:25:48 -0700 Received: from ubuntu.localdomain (pg-clsee-450.altera.priv.altera.com [137.57.103.36]) by sj-mail01.altera.com (8.13.7+Sun/8.13.7) with ESMTP id u8L2QKGn018934; Tue, 20 Sep 2016 19:26:28 -0700 (PDT) From: Chin Liang See To: Date: Wed, 21 Sep 2016 10:25:56 +0800 Message-ID: <1474424764-3284-1-git-send-email-clsee@altera.com> X-Mailer: git-send-email 2.5.0 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.35.236.227; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(199003)(189002)(305945005)(19580405001)(19580395003)(68736007)(50226002)(5003940100001)(92566002)(356003)(107886002)(86362001)(586003)(7846002)(105596002)(106466001)(189998001)(229853001)(2351001)(110136003)(97736004)(36756003)(50986999)(33646002)(4001430100002)(4326007)(626004)(2906002)(87936001)(8676002)(47776003)(8936002)(48376002)(5660300001)(16796002)(50466002)(81166006)(81156014)(7099028)(39844003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2249; H:sj-itexedge03.altera.priv.altera.com; FPR:; SPF:SoftFail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC013; 1:H3nPg7lrcp4X6NC92z1RAUDGRWbupG3738gyHesHKMj/VR57YgsBszBUutDLTg+aI9QIiuq1xmiIPS7uaPl9qKOxSLinqOZSCnAhDwcauDJIfe4mlHS8vb+w2dlTXCkFVyYnvv+ht77hU/ma2K5Y7RZDdWjVLGk1FAg7DdE5SEiYkc+zQcb+1pH13UM4cRgp7dSnw5MT3q1g++gu/9Hm0zEpzAdRdqP2LD2b44K0mfSiV0fxXGYWaCaKoxnNCYUjGWwxCjKsDqMr4e9zod0dukN21oyOPGyug+8e+b8VOb+oZNlrmEnQbhDytyKSlqGj5zq3Xtc8/zI+QqbgzfFO9sBQItjTP+PVd7HWekAjG4Rjsl2K44cNCZ4lQMMAt0cy/B7o7V70VbQGg9Tp9PJ6/elwLujbH5XCqWSVfaaHfy+Q/zanuTtXl9DPkhvfPYY1wyENPeLfN9QJ3nTAqGrOGJSrPHfbZCZeHjjYf8T9SpovfNsJsDArcEpem0u7wEaU6B6egH4/6NExFwzKGIdid043+RagkOgbXP8V30is+Oc= X-MS-Office365-Filtering-Correlation-Id: 63d9265d-89b7-49f4-e697-08d3e1c6bf4a X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2249; 2:Sbn2GYcqr4zq0pNl3nkZaKV6ptvOWqyyh4NCQYZ8YJbSvg2YWVgQEXc4wvjRXebSSPdYZ1PYmjf8D5NvHVKBmsIz3qtPTvxcHX0ifQcKOUY5FQxV+h/2a8cairFCcsmsoC27WHcjQrqO/gDuKaz8+8SB/CO/hxODZiJ8R8tUgXfiwwC/CVlzctEzaO+35WaC; 3:ctvcREmbTN1NYM3g41IgzrSd8IgOrElV0B8/bhfTgCqan8MYRgjv7pX2dbWsH/2tH9rJGo+QBykv3+2YktV4zt5tjn+kqWVHT9kmRwIxr4+cUDPD+Qm9kyLFAbrvtJO/EFvoGGekrGZ0FwKMdy00mqshhwu+Bl05jfIrYjFQWRiiQsaB4urnC1dr3OqOxir59qvNndwLd0tG1Otdogcod2FwtX165R9EDYUVJ8GPT+s=; 25:xsgkVG9v7JblB/kBqx3v2VGt1PlGAxrPny+ZEQebuBOj/qdeSdmYhQM56NEX6r2AdSi/qPwy7U7+snFcBvoSrZYc3GbBOLbYrh8o/aiFQRlYgVnu5nxi5SaGg0lrPGbMRj90PtOdFdokbXPGo4Ci6Wp4BUeZ8nZa3MsMZIuEM8+fnmPYGyQy0p87TCyG1v3a4mOyKuXeC7j7MdtRiYVFBZXfHPHJcwGsDE6M21aeXxG3lyBzvwPG5LJNnT4dkjU081L/mDUYQpnw5QkO57crHK8JSZw/wz14tcb7Z3TzdI1E2qgDoEG/hcCup1h4odqNmwx/J0q9nPr/A04Kn1z5FOygsbZEwyo3AHzLPC0hEk8D9X6ITnWvaMGykouR+VmRz5ntbmJwmnTwsYW6jb1ZMt/esQyvtv22r2spnzmpZpE= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB2249; X-LD-Processed: fbd72e03-d4a5-4110-adce-614d51f2077a,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2249; 31:pTBzaHX5k923CMzCT3LS+ccvmqXzVZFKKpaS5PE0rJh8nRs2J/OkYz78aKMP7PRvg1Rckri2osqpS9NMDABCT7QpmAdHGn2jvgAvQGGPHPmZ8FGLBhp2SIN1SxGCoFx0XLbiw5lwfTXNMhPlrT473FC51UcWjGmqeD9L3HhH/abJRtYQs/4F8O4vr1svKSJPCsh5Uq6lROM0loVJv6EtN4HpYIOjvh/dqbSOBlkO43Q=; 20:xIKbWf8oLK/cP1cnr0n4m2MPZH0aCzPo2Lzx0OcFlnJGz60TZa/cHvvR2BJnKAkbjl7xKKAYTBe17XbZ3TusfvNROKAZj6QiZP0/hbAxuRHaSZDRhp/6hRTOE3aj4jnyHfYbWnfjWBXe8QCYcq1mlacQibVm8dd3jTAd26/Qfbo=; 4:8aiNFGE0+OFS8Dxga7XBN57xD7CEkcVqtxpMqRgF9b4kJd3+zCkUzYCjsupJdMAKS2qFb9k8Ca+bB6AIpmihxuQJo1+ugszUDCI7GRsV6Lc5Yc2Nop8gOzVjmOuPuN9FPAETTyNbV95QmMySMtjdw5eN9q9825aO6SLt5Nk2VlugZ9zhzPLVgJaEy64zj+E1xrC+hubJd3DMaXtqf+TlGzFZUKF/X+Nwg0KkECjQE25FTxEMUDK65v6ErdoKO/v92+8YnJiHV3/uQW3yqHXZk0l/+S8cIrG6IkOI7xeaCHput+OxB5pW+DDeoRP0/UpT27wx9rRakQPlOFnBBhRDbof1r9qlvSffPLPO+ZNL8M8gSmRlvpSeuA/Yg5MVnOvmTjrSRDlsl968MrZQjH8DRy/yZE2JcUyhTKyWK6tFkLDDbTSDutgSmdIrnuCD6e/dhCrPwdzYEEb93rDmgmdHh2NJE/ATJ8Gf6WkA27o83ikgwOvwM+MCXBMEhMYBdS7KwfxKPYOgxVN4w7tGHI9Et4SNybs2p2DpzpjwtmH97tU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(80048183373757); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13015025)(13017025)(13023025)(13024025)(13018025)(5005006)(8121501046)(10201501046)(3002001)(6055026); SRVR:CY1PR03MB2249; BCL:0; PCL:0; RULEID:; SRVR:CY1PR03MB2249; X-Forefront-PRVS: 007271867D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2249; 23:XY1lM5LdXI+XI5Pyt6AzETqtJSAlX2s3nWlMaFU7e?= =?us-ascii?Q?/DAb94mgAhqH2Z0kspA4D4BG+0XV852qXI3D3+JdZbY93C2YgdtgYSkl+/Rr?= =?us-ascii?Q?u+fl/GsoLQH6ExaqSE+oqYjWdBPffSEEK33C6YPpqqYmi+4biyYMgdHmQkiF?= =?us-ascii?Q?U/5wRvGpW7jkvb30mWv/z7YqiXqxvgBiviAI6TaIbvH+NyBgoA7ozp7PFz8D?= =?us-ascii?Q?4vpo9Y24F0TVlpmwiPrOisanO9ygHFpuquX7w3CzJrLzEe4v6oO+h3oRfd4q?= =?us-ascii?Q?dT5HWRLZgox2zCpYv0Gb27Z/EnZt7ERIg3/rKyNz7xyV591NqDJLIxYbmBiK?= =?us-ascii?Q?yTW7+oTcnCUJoDAssHhWp6m8HoM1WW5jBCpE0+ZiUcaaxlJtA5NeAEk5GQhw?= =?us-ascii?Q?GGPwvD48yceFThOt3o4LXZIhIkPS8RGtFXpEa0oT86tifZncofCtU81iHeHT?= =?us-ascii?Q?i7oJJademCE2qCFhfZ/05MYM0hQLbKnTfWo9wRShl2/Wz2SWLwD0YbxIeUsi?= =?us-ascii?Q?nH5N0TF6HReOyAQ9BeQMmvzhhqDX5DW9Dw/ZxY4Iei9lITqOBvrV7zL2KFXe?= =?us-ascii?Q?8HoSe586ctNBCu72pLRKrUq82luuu7x1zM0O6JShO9xeGLAHfQAqz8i/iEwU?= =?us-ascii?Q?BOnfXfJNyXFILCjNvfJNEeeNRl4KSaMrjwwzVu6pCWB6L1xG1f8I38xCJjxN?= =?us-ascii?Q?zBqcOoklWgXw5MBPVG9b/pOrLe4D4sSMBFNZk/MCTLoXN8vIw6RMs08TeP03?= =?us-ascii?Q?DduAhO4Dsd7olgSg58j3h55CeskxLBs4DVz/TXLfnAWL5cZEkClHMUzELoQK?= =?us-ascii?Q?ZsNpesBQ1WxkSlSjG72AimywoIBncgQYYsvp31zudfptu0bfP+E3feofjHHP?= =?us-ascii?Q?eoVG3dQXdaSGGi0zCCtlYNYV6u2WJsqW5it/GVSKbw4N5/+juOhd9W4i4zDz?= =?us-ascii?Q?pcgVWjjBySLp9aEkdTrDo5BY+xi8jcPNaDOBGaYaJDwlfwjvt7IR5Jm1kf3f?= =?us-ascii?Q?F1DcpR6g2ebWVK6LVGNciUtutrP/vyznx777QBpUnAVPMPkaI9L9mU1gWb8S?= =?us-ascii?Q?5c3eDw=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2249; 6:aZDf7v6aT3t1g1koUZgSGi13xfDajgAK5lYQ381zi55rLYK2PSpdpc2PKarMjv67Z7in9Z0eCIQQIMaVFh6AU1nRltZV/lsDLhRYozvGaLE2pAWKGA8TG75N/UlNZHjq/hFz0J9va5KOMMzzgP5pVuhBa/6Im/0BLfhrmuzatxYVx75nwTCr5SwNJgJpXSlvF0lQsoJPPFpNpBHVw4zVllJ+EzZeiRPdhVGSIfly0OsozFyzCogxLqgutFAmHQxXRLO2XkSmdD/hi4SxbYDTvKgi9W3w3iVmLijLCbSSACFrlaVWqAAQltPo4BmfrGBCM0blU0L1m8YBoz7T8s8hMQ==; 5:Ix+FmNMQLvOywGmtBvPBeCAMb7Vx0CY/Z8iFpaA7WlcC0NGnxYRDTgVSSIzLwj0D4GXB6LcdI6+t0fAc61eRJBiYKNFMGtIC13gXAm/dManeJNV1oSO9RYi+1L8mxEJFlBYrBzGTi72aI2pd40oTkg==; 24:K9b+Rn8WBxfry0D+qLZ06IDA/vCnqdksSYhhgmDQYBctsJN0z46Des8l3dQQyyZga43qVaCdh0FFmai2CwlOI33FmXM4Iqm8PiNZmXSraQI=; 7:d9ZgTKe8H0I4PLYBS2q7XqmqQ/hHPDfgZ8UYHh4mO4lCSBn4IhGk8uSzI3ztZ+a9xX24CJHNBKCIbJ8n04yot30oz6aGEZCjSWy+BNwuT2JLPJej5Gp3y4UlR/pjmiLc33PkTy1OBKU8PF9Wt83AFrqfSkgmocCP9qK7ko7En1fWsuv9DaOV2v5ughOthiSqwKrYnvPb3FxWGKJsYAVPdiU+krwVE1EkAdtE1yjy5/9tkyQ48CrOPm2rzJ5gH0Q5ovqnGAgEVhNWZmdeIHOJZrg3QWlrpe9n3+zUpNKq5U+LNBfLNcNULikksyr4Halh SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2016 02:26:50.7271 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a; Ip=[66.35.236.227]; Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2249 Cc: Marek Vasut , Chin Liang See Subject: [U-Boot] [PATCH v3 1/9] ddr: altera: Configuring SDRAM extra cycles timing parameters 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" To enable configuration of sdr.ctrlcfg.extratime1 register which enable extra clocks for read to write command timing. This is critical to ensure successful LPDDR2 interface Signed-off-by: Chin Liang See Cc: Marek Vasut Cc: Dinh Nguyen --- Changes for v3 - Removed ifdef by setting macro to zeroes for all boards Changes for v2 - Removed v1 patches #2 to #9 as no boards are using LPDDR2 --- arch/arm/mach-socfpga/include/mach/sdram.h | 8 +++++++- arch/arm/mach-socfpga/qts-filter.sh | 2 +- arch/arm/mach-socfpga/wrap_sdram_config.c | 7 +++++++ drivers/ddr/altera/sdram.c | 3 +++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-socfpga/include/mach/sdram.h b/arch/arm/mach-socfpga/include/mach/sdram.h index f12bb84..b11228f 100644 --- a/arch/arm/mach-socfpga/include/mach/sdram.h +++ b/arch/arm/mach-socfpga/include/mach/sdram.h @@ -30,7 +30,8 @@ struct socfpga_sdr_ctrl { u32 dram_timing4; /* 0x10 */ u32 lowpwr_timing; u32 dram_odt; - u32 __padding0[4]; + u32 extratime1; + u32 __padding0[3]; u32 dram_addrw; /* 0x2c */ u32 dram_if_width; /* 0x30 */ u32 dram_dev_width; @@ -88,6 +89,7 @@ struct socfpga_sdram_config { u32 dram_timing4; u32 lowpwr_timing; u32 dram_odt; + u32 extratime1; u32 dram_addrw; u32 dram_if_width; u32 dram_dev_width; @@ -427,6 +429,10 @@ SDR_CTRLGRP_MPTHRESHOLDRST_2_THRESHOLDRSTCYCLES_79_64_MASK \ /* Field instance: sdr::ctrlgrp::dramsts */ #define SDR_CTRLGRP_DRAMSTS_DBEERR_MASK 0x00000008 #define SDR_CTRLGRP_DRAMSTS_SBEERR_MASK 0x00000004 +/* Register template: sdr::ctrlgrp::extratime1 */ +#define SDR_CTRLGRP_EXTRATIME1_RD_TO_WR_LSB 20 +#define SDR_CTRLGRP_EXTRATIME1_RD_TO_WR_BC_LSB 24 +#define SDR_CTRLGRP_EXTRATIME1_RD_TO_WR_DIFF_LSB 28 /* SDRAM width macro for configuration with ECC */ #define SDRAM_WIDTH_32BIT_WITH_ECC 40 diff --git a/arch/arm/mach-socfpga/qts-filter.sh b/arch/arm/mach-socfpga/qts-filter.sh index 050d6ba..1148a71 100755 --- a/arch/arm/mach-socfpga/qts-filter.sh +++ b/arch/arm/mach-socfpga/qts-filter.sh @@ -119,7 +119,7 @@ EOF # Filter out only the macros which are actually used by the code # grep_sdram_config() { - egrep "#define (CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_MEMTYPE|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_MEMBL|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ADDRORDER|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCEN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCCORREN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_REORDEREN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_STARVELIMIT|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_DQSTRKEN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_NODMPINS|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCWL|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_AL|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCL|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRRD|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TFAW|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRFC|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TREFI|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TRCD|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TRP|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWR|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWTR|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRTP|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRAS|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRC|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TMRD|CO! NFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TCCD|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING4_SELFRFSHEXIT|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING4_PWRDOWNEXIT|CONFIG_HPS_SDR_CTRLCFG_LOWPWRTIMING_AUTOPDCYCLES|CONFIG_HPS_SDR_CTRLCFG_LOWPWRTIMING_CLKDISABLECYCLES|CONFIG_HPS_SDR_CTRLCFG_DRAMODT_READ|CONFIG_HPS_SDR_CTRLCFG_DRAMODT_WRITE|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_COLBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_ROWBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_BANKBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_CSBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMIFWIDTH_IFWIDTH|CONFIG_HPS_SDR_CTRLCFG_DRAMDEVWIDTH_DEVWIDTH|CONFIG_HPS_SDR_CTRLCFG_DRAMINTR_INTREN|CONFIG_HPS_SDR_CTRLCFG_LOWPWREQ_SELFRFSHMASK|CONFIG_HPS_SDR_CTRLCFG_STATICCFG_MEMBL|CONFIG_HPS_SDR_CTRLCFG_STATICCFG_USEECCASDATA|CONFIG_HPS_SDR_CTRLCFG_CTRLWIDTH_CTRLWIDTH|CONFIG_HPS_SDR_CTRLCFG_CPORTWIDTH_CPORTWIDTH|CONFIG_HPS_SDR_CTRLCFG_CPORTWMAP_CPORTWMAP|CONFIG_HPS_SDR_CTRLCFG_CPORTRMAP_CPORTRMAP|CONFIG_HPS_SDR_CTRLCFG_RFIFOCMAP_RFIFOCMAP|CONFIG_HPS_SDR_CTRLCFG_WFIFOCMAP_WFIFOCMAP! |CONFIG_HPS_SDR_CTRLCFG_CPORTRDWR_CPORTRDWR|CONFIG_HPS_SDR_CTRLCFG_POR TCFG_AUTOPCHEN|CONFIG_HPS_SDR_CTRLCFG_FPGAPORTRST|CONFIG_HPS_SDR_CTRLCFG_FIFOCFG_SYNCMODE|CONFIG_HPS_SDR_CTRLCFG_FIFOCFG_INCSYNC|CONFIG_HPS_SDR_CTRLCFG_MPPRIORITY_USERPRIORITY|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_0_STATICWEIGHT_31_0|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_1_STATICWEIGHT_49_32|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_1_SUMOFWEIGHT_13_0|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_2_SUMOFWEIGHT_45_14|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_3_SUMOFWEIGHT_63_46|CONFIG_HPS_SDR_CTRLCFG_PHYCTRL_PHYCTRL_0|CONFIG_HPS_SDR_CTRLCFG_MPPACING_0_THRESHOLD1_31_0|CONFIG_HPS_SDR_CTRLCFG_MPPACING_1_THRESHOLD1_59_32|CONFIG_HPS_SDR_CTRLCFG_MPPACING_1_THRESHOLD2_3_0|CONFIG_HPS_SDR_CTRLCFG_MPPACING_2_THRESHOLD2_35_4|CONFIG_HPS_SDR_CTRLCFG_MPPACING_3_THRESHOLD2_59_36|CONFIG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_0_THRESHOLDRSTCYCLES_31_0|CONFIG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_1_THRESHOLDRSTCYCLES_63_32|CONFIG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_2_THRESHOLDRSTCYCLES_79_64|RW_MGR_ACTIVATE_0_AND_1|RW_MGR_ACTIVATE_0_AND_1_WAIT1|RW_MGR_A! CTIVATE_0_AND_1_WAIT2|RW_MGR_ACTIVATE_1|RW_MGR_CLEAR_DQS_ENABLE|RW_MGR_GUARANTEED_READ|RW_MGR_GUARANTEED_READ_CONT|RW_MGR_GUARANTEED_WRITE|RW_MGR_GUARANTEED_WRITE_WAIT0|RW_MGR_GUARANTEED_WRITE_WAIT1|RW_MGR_GUARANTEED_WRITE_WAIT2|RW_MGR_GUARANTEED_WRITE_WAIT3|RW_MGR_IDLE|RW_MGR_IDLE_LOOP1|RW_MGR_IDLE_LOOP2|RW_MGR_INIT_RESET_0_CKE_0|RW_MGR_INIT_RESET_1_CKE_0|RW_MGR_LFSR_WR_RD_BANK_0|RW_MGR_LFSR_WR_RD_BANK_0_DATA|RW_MGR_LFSR_WR_RD_BANK_0_DQS|RW_MGR_LFSR_WR_RD_BANK_0_NOP|RW_MGR_LFSR_WR_RD_BANK_0_WAIT|RW_MGR_LFSR_WR_RD_BANK_0_WL_1|RW_MGR_LFSR_WR_RD_DM_BANK_0|RW_MGR_LFSR_WR_RD_DM_BANK_0_DATA|RW_MGR_LFSR_WR_RD_DM_BANK_0_DQS|RW_MGR_LFSR_WR_RD_DM_BANK_0_NOP|RW_MGR_LFSR_WR_RD_DM_BANK_0_WAIT|RW_MGR_LFSR_WR_RD_DM_BANK_0_WL_1|RW_MGR_MRS0_DLL_RESET|RW_MGR_MRS0_DLL_RESET_MIRR|RW_MGR_MRS0_USER|RW_MGR_MRS0_USER_MIRR|RW_MGR_MRS1|RW_MGR_MRS1_MIRR|RW_MGR_MRS2|RW_MGR_MRS2_MIRR|RW_MGR_MRS3|RW_MGR_MRS3_MIRR|RW_MGR_PRECHARGE_ALL|RW_MGR_READ_B2B|RW_MGR_READ_B2B_WAIT1|RW_MGR_READ_B2B_WAIT2|RW_MGR_RE! FRESH_ALL|RW_MGR_RETURN|RW_MGR_SGLE_READ|RW_MGR_ZQCL|RW_MGR_TRUE_MEM_D ATA_MASK_WIDTH|RW_MGR_MEM_ADDRESS_MIRRORING|RW_MGR_MEM_DATA_MASK_WIDTH|RW_MGR_MEM_DATA_WIDTH|RW_MGR_MEM_DQ_PER_READ_DQS|RW_MGR_MEM_DQ_PER_WRITE_DQS|RW_MGR_MEM_IF_READ_DQS_WIDTH|RW_MGR_MEM_IF_WRITE_DQS_WIDTH|RW_MGR_MEM_NUMBER_OF_CS_PER_DIMM|RW_MGR_MEM_NUMBER_OF_RANKS|RW_MGR_MEM_VIRTUAL_GROUPS_PER_READ_DQS|RW_MGR_MEM_VIRTUAL_GROUPS_PER_WRITE_DQS|IO_DELAY_PER_DCHAIN_TAP|IO_DELAY_PER_DQS_EN_DCHAIN_TAP|IO_DELAY_PER_OPA_TAP|IO_DLL_CHAIN_LENGTH|IO_DQDQS_OUT_PHASE_MAX|IO_DQS_EN_DELAY_MAX|IO_DQS_EN_DELAY_OFFSET|IO_DQS_EN_PHASE_MAX|IO_DQS_IN_DELAY_MAX|IO_DQS_IN_RESERVE|IO_DQS_OUT_RESERVE|IO_IO_IN_DELAY_MAX|IO_IO_OUT1_DELAY_MAX|IO_IO_OUT2_DELAY_MAX|IO_SHIFT_DQS_EN_WHEN_SHIFT_DQS|AFI_RATE_RATIO|CALIB_LFIFO_OFFSET|CALIB_VFIFO_OFFSET|ENABLE_SUPER_QUICK_CALIBRATION|MAX_LATENCY_COUNT_WIDTH|READ_VALID_FIFO_SIZE|REG_FILE_INIT_SEQ_SIGNATURE|TINIT_CNTR0_VAL|TINIT_CNTR1_VAL|TINIT_CNTR2_VAL|TRESET_CNTR0_VAL|TRESET_CNTR1_VAL|TRESET_CNTR2_VAL)[[:space:]]" + egrep "#define (CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_MEMTYPE|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_MEMBL|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ADDRORDER|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCEN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCCORREN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_REORDEREN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_STARVELIMIT|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_DQSTRKEN|CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_NODMPINS|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCWL|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_AL|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCL|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRRD|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TFAW|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRFC|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TREFI|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TRCD|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TRP|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWR|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWTR|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRTP|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRAS|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRC|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TMRD|CO! NFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TCCD|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING4_SELFRFSHEXIT|CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING4_PWRDOWNEXIT|CONFIG_HPS_SDR_CTRLCFG_LOWPWRTIMING_AUTOPDCYCLES|CONFIG_HPS_SDR_CTRLCFG_LOWPWRTIMING_CLKDISABLECYCLES|CONFIG_HPS_SDR_CTRLCFG_DRAMODT_READ|CONFIG_HPS_SDR_CTRLCFG_DRAMODT_WRITE|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_COLBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_ROWBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_BANKBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_CSBITS|CONFIG_HPS_SDR_CTRLCFG_DRAMIFWIDTH_IFWIDTH|CONFIG_HPS_SDR_CTRLCFG_DRAMDEVWIDTH_DEVWIDTH|CONFIG_HPS_SDR_CTRLCFG_DRAMINTR_INTREN|CONFIG_HPS_SDR_CTRLCFG_LOWPWREQ_SELFRFSHMASK|CONFIG_HPS_SDR_CTRLCFG_STATICCFG_MEMBL|CONFIG_HPS_SDR_CTRLCFG_STATICCFG_USEECCASDATA|CONFIG_HPS_SDR_CTRLCFG_CTRLWIDTH_CTRLWIDTH|CONFIG_HPS_SDR_CTRLCFG_CPORTWIDTH_CPORTWIDTH|CONFIG_HPS_SDR_CTRLCFG_CPORTWMAP_CPORTWMAP|CONFIG_HPS_SDR_CTRLCFG_CPORTRMAP_CPORTRMAP|CONFIG_HPS_SDR_CTRLCFG_RFIFOCMAP_RFIFOCMAP|CONFIG_HPS_SDR_CTRLCFG_WFIFOCMAP_WFIFOCMAP! |CONFIG_HPS_SDR_CTRLCFG_CPORTRDWR_CPORTRDWR|CONFIG_HPS_SDR_CTRLCFG_POR TCFG_AUTOPCHEN|CONFIG_HPS_SDR_CTRLCFG_FPGAPORTRST|CONFIG_HPS_SDR_CTRLCFG_FIFOCFG_SYNCMODE|CONFIG_HPS_SDR_CTRLCFG_FIFOCFG_INCSYNC|CONFIG_HPS_SDR_CTRLCFG_MPPRIORITY_USERPRIORITY|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_0_STATICWEIGHT_31_0|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_1_STATICWEIGHT_49_32|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_1_SUMOFWEIGHT_13_0|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_2_SUMOFWEIGHT_45_14|CONFIG_HPS_SDR_CTRLCFG_MPWIEIGHT_3_SUMOFWEIGHT_63_46|CONFIG_HPS_SDR_CTRLCFG_PHYCTRL_PHYCTRL_0|CONFIG_HPS_SDR_CTRLCFG_MPPACING_0_THRESHOLD1_31_0|CONFIG_HPS_SDR_CTRLCFG_MPPACING_1_THRESHOLD1_59_32|CONFIG_HPS_SDR_CTRLCFG_MPPACING_1_THRESHOLD2_3_0|CONFIG_HPS_SDR_CTRLCFG_MPPACING_2_THRESHOLD2_35_4|CONFIG_HPS_SDR_CTRLCFG_MPPACING_3_THRESHOLD2_59_36|CONFIG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_0_THRESHOLDRSTCYCLES_31_0|CONFIG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_1_THRESHOLDRSTCYCLES_63_32|CONFIG_HPS_SDR_CTRLCFG_MPTHRESHOLDRST_2_THRESHOLDRSTCYCLES_79_64|RW_MGR_ACTIVATE_0_AND_1|RW_MGR_ACTIVATE_0_AND_1_WAIT1|RW_MGR_A! CTIVATE_0_AND_1_WAIT2|RW_MGR_ACTIVATE_1|RW_MGR_CLEAR_DQS_ENABLE|RW_MGR_GUARANTEED_READ|RW_MGR_GUARANTEED_READ_CONT|RW_MGR_GUARANTEED_WRITE|RW_MGR_GUARANTEED_WRITE_WAIT0|RW_MGR_GUARANTEED_WRITE_WAIT1|RW_MGR_GUARANTEED_WRITE_WAIT2|RW_MGR_GUARANTEED_WRITE_WAIT3|RW_MGR_IDLE|RW_MGR_IDLE_LOOP1|RW_MGR_IDLE_LOOP2|RW_MGR_INIT_RESET_0_CKE_0|RW_MGR_INIT_RESET_1_CKE_0|RW_MGR_LFSR_WR_RD_BANK_0|RW_MGR_LFSR_WR_RD_BANK_0_DATA|RW_MGR_LFSR_WR_RD_BANK_0_DQS|RW_MGR_LFSR_WR_RD_BANK_0_NOP|RW_MGR_LFSR_WR_RD_BANK_0_WAIT|RW_MGR_LFSR_WR_RD_BANK_0_WL_1|RW_MGR_LFSR_WR_RD_DM_BANK_0|RW_MGR_LFSR_WR_RD_DM_BANK_0_DATA|RW_MGR_LFSR_WR_RD_DM_BANK_0_DQS|RW_MGR_LFSR_WR_RD_DM_BANK_0_NOP|RW_MGR_LFSR_WR_RD_DM_BANK_0_WAIT|RW_MGR_LFSR_WR_RD_DM_BANK_0_WL_1|RW_MGR_MRS0_DLL_RESET|RW_MGR_MRS0_DLL_RESET_MIRR|RW_MGR_MRS0_USER|RW_MGR_MRS0_USER_MIRR|RW_MGR_MRS1|RW_MGR_MRS1_MIRR|RW_MGR_MRS2|RW_MGR_MRS2_MIRR|RW_MGR_MRS3|RW_MGR_MRS3_MIRR|RW_MGR_PRECHARGE_ALL|RW_MGR_READ_B2B|RW_MGR_READ_B2B_WAIT1|RW_MGR_READ_B2B_WAIT2|RW_MGR_RE! FRESH_ALL|RW_MGR_RETURN|RW_MGR_SGLE_READ|RW_MGR_ZQCL|RW_MGR_TRUE_MEM_D ATA_MASK_WIDTH|RW_MGR_MEM_ADDRESS_MIRRORING|RW_MGR_MEM_DATA_MASK_WIDTH|RW_MGR_MEM_DATA_WIDTH|RW_MGR_MEM_DQ_PER_READ_DQS|RW_MGR_MEM_DQ_PER_WRITE_DQS|RW_MGR_MEM_IF_READ_DQS_WIDTH|RW_MGR_MEM_IF_WRITE_DQS_WIDTH|RW_MGR_MEM_NUMBER_OF_CS_PER_DIMM|RW_MGR_MEM_NUMBER_OF_RANKS|RW_MGR_MEM_VIRTUAL_GROUPS_PER_READ_DQS|RW_MGR_MEM_VIRTUAL_GROUPS_PER_WRITE_DQS|IO_DELAY_PER_DCHAIN_TAP|IO_DELAY_PER_DQS_EN_DCHAIN_TAP|IO_DELAY_PER_OPA_TAP|IO_DLL_CHAIN_LENGTH|IO_DQDQS_OUT_PHASE_MAX|IO_DQS_EN_DELAY_MAX|IO_DQS_EN_DELAY_OFFSET|IO_DQS_EN_PHASE_MAX|IO_DQS_IN_DELAY_MAX|IO_DQS_IN_RESERVE|IO_DQS_OUT_RESERVE|IO_IO_IN_DELAY_MAX|IO_IO_OUT1_DELAY_MAX|IO_IO_OUT2_DELAY_MAX|IO_SHIFT_DQS_EN_WHEN_SHIFT_DQS|AFI_RATE_RATIO|CALIB_LFIFO_OFFSET|CALIB_VFIFO_OFFSET|ENABLE_SUPER_QUICK_CALIBRATION|MAX_LATENCY_COUNT_WIDTH|READ_VALID_FIFO_SIZE|REG_FILE_INIT_SEQ_SIGNATURE|TINIT_CNTR0_VAL|TINIT_CNTR1_VAL|TINIT_CNTR2_VAL|TRESET_CNTR0_VAL|TRESET_CNTR1_VAL|TRESET_CNTR2_VAL|CONFIG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_T! O_WR|CONFIG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR_BC|CONFIG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR_DIFF_CHIP)[[:space:]]" } # diff --git a/arch/arm/mach-socfpga/wrap_sdram_config.c b/arch/arm/mach-socfpga/wrap_sdram_config.c index 31cc7de..8fb808a 100644 --- a/arch/arm/mach-socfpga/wrap_sdram_config.c +++ b/arch/arm/mach-socfpga/wrap_sdram_config.c @@ -81,6 +81,13 @@ static const struct socfpga_sdram_config sdram_config = { SDR_CTRLGRP_DRAMODT_READ_LSB) | (CONFIG_HPS_SDR_CTRLCFG_DRAMODT_WRITE << SDR_CTRLGRP_DRAMODT_WRITE_LSB), + .extratime1 = + (CONFIG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR << + SDR_CTRLGRP_EXTRATIME1_RD_TO_WR_LSB) | + (CONFIG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR_BC << + SDR_CTRLGRP_EXTRATIME1_RD_TO_WR_BC_LSB) | +(CONFIG_HPS_SDR_CTRLCFG_EXTRATIME1_CFG_EXTRA_CTL_CLK_RD_TO_WR_DIFF_CHIP << + SDR_CTRLGRP_EXTRATIME1_RD_TO_WR_DIFF_LSB), .dram_addrw = (CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_COLBITS << SDR_CTRLGRP_DRAMADDRW_COLBITS_LSB) | diff --git a/drivers/ddr/altera/sdram.c b/drivers/ddr/altera/sdram.c index 7e4606d..e74c5b0 100644 --- a/drivers/ddr/altera/sdram.c +++ b/drivers/ddr/altera/sdram.c @@ -418,6 +418,9 @@ static void sdr_load_regs(const struct socfpga_sdram_config *cfg) debug("Configuring DRAMODT\n"); writel(cfg->dram_odt, &sdr_ctrl->dram_odt); + + debug("Configuring EXTRATIME1\n"); + writel(cfg->extratime1, &sdr_ctrl->extratime1); } /**