From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5EBF7C432BE for ; Tue, 31 Aug 2021 11:30:34 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B12FD60FE6 for ; Tue, 31 Aug 2021 11:30:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B12FD60FE6 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=toradex.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 65B488345D; Tue, 31 Aug 2021 13:29:11 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=toradex.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=toradex.com header.i=@toradex.com header.b="r6YqB91A"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id CDA0E8339D; Tue, 31 Aug 2021 11:46:46 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on072b.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe02::72b]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2EC2B83410 for ; Tue, 31 Aug 2021 11:46:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=toradex.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=francesco.dolcini@toradex.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=II2Z6VoK9oPem966dj8hsZvSDixqNjaqYNe6/kp+12jCrwBi3c5aDyJwieAlPXr+eeoztfMEbx+8vn0C07WEh79W2aqbJcXTLM0MiH1qn0Is2qfV9hH6bcB9Y15N60BX5U+zebUQULbiPdbrUtB+rUxnjvqFyPQL2sH5Z2ghaFh5hZGasaegfe+eXyDagI6hVOg11Kt8Jk02d8I+5zs6YthpKYaP7/0aQCaVkUTazV9lCp6yqenWP2XJjqnUGG+DmogcTf68OOd8i2u28fBzTcBiT0fudRwlhSvmT+aZugOFIcg75JsUI/ZVdF4NpBkoGUYRceKqP5DwKYKo/GbOQg== 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; bh=OB6t69EA3dbEn0tRcjOtjshlvQj5OkAlxy9ZpQ4M0wI=; b=W1HdIpHEtaBunppFx1mz112/N5xNe14SdisH7HkgjbfG9TF7YzQpwy8tXL2i2aPgYudhkfVRRaJGYb1shZMa6lT4sYFJwdZdLQ6w3MJnI8Wxkt45ZuhmWIW/9LMXeB/CUOWY2CqBMP2G0Ke9V8b4qRBPXRqGZD7lYf2FdhTReJjXU1IgoLAhWKcJeXucpSQjimb50OUC0bPCgNGQyh0nBePMx753Fa/DFbRrTs+Z30XBaYM+qVnn6F0RHcrCSMYnM7gFXMjgcYK1fIJVDS1Tee3c+Y+D6m1xQ4IQScE8RMmpfW1HQJNCi7DCYh+TuujN19nrFuDoxy1arZEKVwV9Ig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=toradex.com; dmarc=pass action=none header.from=toradex.com; dkim=pass header.d=toradex.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toradex.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OB6t69EA3dbEn0tRcjOtjshlvQj5OkAlxy9ZpQ4M0wI=; b=r6YqB91A0nbwPW43BtD0YT0Vq/Oomcqhou+5w/kDxCJCU97BfZwXlcfoYEauaaW6R5YnZiaWnlxj3iDYFJa2OOHyWa7AxvZTnMlO4TLGkaUJBn+jncJkzbk4HNUPPB4UCVqL111+A8duYasanP2tVGtwLYKEi74srSPnK3Y29FI= Authentication-Results: chromium.org; dkim=none (message not signed) header.d=none;chromium.org; dmarc=none action=none header.from=toradex.com; Received: from AM4PR05MB3474.eurprd05.prod.outlook.com (2603:10a6:205:4::31) by AM8PR05MB7492.eurprd05.prod.outlook.com (2603:10a6:20b:1da::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.17; Tue, 31 Aug 2021 09:46:36 +0000 Received: from AM4PR05MB3474.eurprd05.prod.outlook.com ([fe80::f097:f224:3678:148c]) by AM4PR05MB3474.eurprd05.prod.outlook.com ([fe80::f097:f224:3678:148c%5]) with mapi id 15.20.4457.024; Tue, 31 Aug 2021 09:46:36 +0000 From: Francesco Dolcini To: u-boot@lists.denx.de Cc: Francesco Dolcini , Max Krummenacher , Harald Seiler , Heiko Schocher , Ming Liu , Oleksandr Suvorov , Patrick Delaunay , Simon Glass Subject: [PATCH v1 1/2] colibri-imx6: use dynamic DDR calibration Date: Tue, 31 Aug 2021 11:46:05 +0200 Message-Id: <20210831094606.13479-2-francesco.dolcini@toradex.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210831094606.13479-1-francesco.dolcini@toradex.com> References: <20210831094606.13479-1-francesco.dolcini@toradex.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: ZR0P278CA0009.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::19) To AM4PR05MB3474.eurprd05.prod.outlook.com (2603:10a6:205:4::31) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from francesco-nb.toradex.int (31.10.206.124) by ZR0P278CA0009.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.20 via Frontend Transport; Tue, 31 Aug 2021 09:46:35 +0000 Received: by francesco-nb.toradex.int (Postfix, from userid 1000) id D48EB10A0353; Tue, 31 Aug 2021 11:46:34 +0200 (CEST) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b63e8b3b-7be2-4790-f7dc-08d96c6438f8 X-MS-TrafficTypeDiagnostic: AM8PR05MB7492: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:397; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: C7MkG7HaiGVctNBr4nHcJwZk9vCehuhzBhUOr2wN1pvEUnC1eKXUAiBcIWZ5tgPizYpBYMKhU2wNivrxMuPxFM/19pOE7bfnJ+aM2xbRfYSKI5LuuclRVb2sJthzNgdeg3x0N8muHw724T+I/5R8d3h505aImrWkbyoLgMcu92l1OnAR1QXRwQw2cFZU2rG5gX9BytzFqYl0/yG8QXy3r/BG0gIP5r9Tr7chW7hEi9/bnLCZohEC+ijszHHjBFxmwYS53BQEVXK16kTo5p515eOxoP7gU1cjzvitE0bDWhsbrd/wr9hX6++7kfHAU1xrnzgd/vXmxXz9HKhOce+mZh7xZNKkomkwpMyr9+Fg01DhwduRtgM9duRSADGJeKgmC4oVE9L6rStcN/BnBf6Ug5Xk3fX0sFdp90OVwtnAQXHwMiivtdfFcgMTo79B0hC6lEphXpDVfq2q43ZJInMVCk5s2Jx8JbHRPH+32MSz4FKS+WOD/s05wOivSekj0o3h3ML/6tIJighu6HppVbyAp9pHyUy+FovG8Fpg8wvrHOncYRLGfjnkJvetZqNRK8IE6lgtlS/wWlWfDAknp3qJIPOK6hqh+V0UoLLDd5YFCZ/3Pulp9mbEL3w95ZzWxlj7O8mR79chrOm66tNn/vKhabG0cZ1jUBLXH48eD5/Iy56yBh3E+D4WfYoUvw+m2Gre86l6F4ukCFa+QR8gEYUc4w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM4PR05MB3474.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39840400004)(376002)(396003)(136003)(346002)(8936002)(6266002)(8676002)(42186006)(316002)(2616005)(66476007)(44832011)(4326008)(54906003)(66556008)(6666004)(2906002)(186003)(66946007)(86362001)(52116002)(26005)(5660300002)(1076003)(478600001)(36756003)(6916009)(38100700002)(38350700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?W8duvN92IuU0POt/S34QSv98SUfTfRMNyeFJY7TJ3DuRCAox+eL45z2HAn0W?= =?us-ascii?Q?Tp+Uzo86mZRlal8ssCUurdLG4bfT/jYnJb0MB8eoYB/0cNZIMuCANPfJA0/X?= =?us-ascii?Q?lUA0zrXXKuF3yldX662ChucL/herTp0+4XgtXmCQusx9mUGux62+6WPDAfOb?= =?us-ascii?Q?Pyy24ZSvtfoBRb3uiy7a983yypDbEm1+ZbO/8RyuelaUYdUU5hqLt9YAd+Yu?= =?us-ascii?Q?p5eICGfHnHWEgDLTGIr3lufrHq9gbeEqQ6Idg9RLLDvlUXMT4IQauw86H0wh?= =?us-ascii?Q?0BBsoRvKsAcDjS7Z5YMhAb7qSfdlQww/bZOTXSsxRIMbYZSfZpCqyiStQp1b?= =?us-ascii?Q?K1KiQG0W2GDqLuMYzpCKJNM0AT0lvnQ1SFleBwl3PxfGaa4SCADipiZawL4h?= =?us-ascii?Q?6FeIAtgXp/Ul1PPkWoKcUXCvSfs9yaGTV0M24qGJ9GJeATFE7ybH50/SXGen?= =?us-ascii?Q?u/25s4jBXcfAKdwAPKtz07CKBoclX4xLfWBYQJ9PBji8JTaZ4uFRYIad8U/I?= =?us-ascii?Q?h8zIWD+zj53iiPHQBsq2PncGJECLztwk1a60cjzznONLqKUXIOl4LYQqqxtK?= =?us-ascii?Q?ie+ebZrU/EIs6FyRFcQ+WSwwTnZlxTnJPZ+EtWp5ml8JeBH6I9EduSGG6p1J?= =?us-ascii?Q?5fLwo+ahNsDis2MxxyHlUDpstOHpwtZ2MFEwa08UhboJFdY+Hf75aG8sc/3P?= =?us-ascii?Q?jD8PM3te2W1EMOXB8tf9RmJlQmFYwnH6fh7yoNWpV5rt+Xb+6svW0+6SXyyp?= =?us-ascii?Q?Q3C7iX58xIQsBhEeRsNV2tzjK4NVkhYM3UXzZ5xLkF+0ttlw4fIteZYBdyqX?= =?us-ascii?Q?rUJLEwRfK2IcVHkWQJO02oReCiZoPdSNckPqkXX0e/Nq3zHtrd6zoOsCjfJT?= =?us-ascii?Q?TgfAnEH2rMB9entcwPYIUvPYt0PG5q9AP9KQLGHmKTEv32HmyRIEzC4aeF7t?= =?us-ascii?Q?ng4qBkw60BEdyMgOGmYWXE/hUOQZXKSQ2QIyoK4KKt0yPMigkMkrJrlPP5oO?= =?us-ascii?Q?5H2qlDGEla4WuQD2h1Hqt1/9Ek1reMJwJYtVfYIoudj6uA/JvckCvehNu0AR?= =?us-ascii?Q?V4a/h+MzSUQ2lrKN4Kbcz6fcB5aHXoMO4S3t/PxPHaSCAaj/woowLkDcAECQ?= =?us-ascii?Q?VzLpYJAmnFSw26vXrH3qLcaRibaDJj9HI7ahwjV/0EnduMLTNMcbowrTrqW1?= =?us-ascii?Q?Bi2bINjmF0HG3Ge5sRuk4guP+xW2U81X1lzSxNkOZINCcHOQS9x4fFFxutOQ?= =?us-ascii?Q?mxsB3xdoODwylbNoHEnTuAtudspYCOg88q8gHjtAK6TZ35ZreDRKMBY20yIP?= =?us-ascii?Q?YONOzJw3PIRS5vdTViuK7rva?= X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-Network-Message-Id: b63e8b3b-7be2-4790-f7dc-08d96c6438f8 X-MS-Exchange-CrossTenant-AuthSource: AM4PR05MB3474.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2021 09:46:35.9544 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2eyZKsgY3hrmUs6tu0g9bMjQoenCIrnHzTPYXouU818LgEophu0AQaaZnK/pQ0griJkY0U3dq+nIddNZ63kdUkzvu7vlPSBHZT6v9UeKJ4U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR05MB7492 X-Mailman-Approved-At: Tue, 31 Aug 2021 13:28:26 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Enable dynamic DDR calibration to have a reliable behavior on edge temperatures conditions. Signed-off-by: Max Krummenacher Signed-off-by: Francesco Dolcini --- board/toradex/colibri_imx6/colibri_imx6.c | 22 ++++++++++++++++++++++ configs/colibri_imx6_defconfig | 1 + 2 files changed, 23 insertions(+) diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c index 587d92a8e9..0fdeec51c4 100644 --- a/board/toradex/colibri_imx6/colibri_imx6.c +++ b/board/toradex/colibri_imx6/colibri_imx6.c @@ -998,9 +998,28 @@ static void ddr_init(int *table, int size) writel(table[2 * i + 1], table[2 * i]); } +/* Perform DDR DRAM calibration */ +static void spl_dram_perform_cal(u8 dsize) +{ +#ifdef CONFIG_MX6_DDRCAL + int err; + struct mx6_ddr_sysinfo ddr_sysinfo = { + .dsize = dsize, + }; + + err = mmdc_do_write_level_calibration(&ddr_sysinfo); + if (err) + printf("error %d from write level calibration\n", err); + err = mmdc_do_dqs_calibration(&ddr_sysinfo); + if (err) + printf("error %d from dqs calibration\n", err); +#endif +} + static void spl_dram_init(void) { int minc, maxc; + u8 dsize = 2; switch (get_cpu_temp_grade(&minc, &maxc)) { case TEMP_COMMERCIAL: @@ -1010,6 +1029,7 @@ static void spl_dram_init(void) ddr_init(mx6dl_dcd_table, ARRAY_SIZE(mx6dl_dcd_table)); } else { puts("Commercial temperature grade DDR3 timings, 32bit bus width.\n"); + dsize = 1; ddr_init(mx6s_dcd_table, ARRAY_SIZE(mx6s_dcd_table)); } break; @@ -1021,11 +1041,13 @@ static void spl_dram_init(void) ddr_init(mx6dl_dcd_table, ARRAY_SIZE(mx6dl_dcd_table)); } else { puts("Industrial temperature grade DDR3 timings, 32bit bus width.\n"); + dsize = 1; ddr_init(mx6s_dcd_table, ARRAY_SIZE(mx6s_dcd_table)); } break; }; udelay(100); + spl_dram_perform_cal(dsize); } static iomux_v3_cfg_t const gpio_reset_pad[] = { diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig index 47b1cfb191..5a4f901fa7 100644 --- a/configs/colibri_imx6_defconfig +++ b/configs/colibri_imx6_defconfig @@ -10,6 +10,7 @@ CONFIG_SYS_MEMTEST_END=0x10010000 CONFIG_ENV_SIZE=0x2000 CONFIG_ENV_OFFSET=0xFFFFDE00 CONFIG_MX6DL=y +CONFIG_MX6_DDRCAL=y CONFIG_TARGET_COLIBRI_IMX6=y CONFIG_DM_GPIO=y CONFIG_DEFAULT_DEVICE_TREE="imx6-colibri" -- 2.25.1