From patchwork Mon Apr 18 12:56:16 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 611736 X-Patchwork-Delegate: sbabic@denx.de 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 3qpT7x4zBSz9t4R for ; Mon, 18 Apr 2016 23:12:13 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 2E73FA7615; Mon, 18 Apr 2016 15:12:11 +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 kvTsGNZE5P0E; Mon, 18 Apr 2016 15:12:11 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 9FFCAA760E; Mon, 18 Apr 2016 15:12:10 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id B8213A760E for ; Mon, 18 Apr 2016 15:12:05 +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 rBav2TJtBYDs for ; Mon, 18 Apr 2016 15:12:05 +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 na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0070.outbound.protection.outlook.com [157.56.111.70]) by theia.denx.de (Postfix) with ESMTPS id DFB4BA7498 for ; Mon, 18 Apr 2016 15:12:00 +0200 (CEST) Received: from BN3PR0301CA0012.namprd03.prod.outlook.com (10.160.180.150) by CY1PR0301MB1228.namprd03.prod.outlook.com (10.161.212.150) with Microsoft SMTP Server (TLS) id 15.1.466.19; Mon, 18 Apr 2016 12:56:51 +0000 Received: from BN1AFFO11FD023.protection.gbl (2a01:111:f400:7c10::190) by BN3PR0301CA0012.outlook.office365.com (2a01:111:e400:4000::22) with Microsoft SMTP Server (TLS) id 15.1.466.19 via Frontend Transport; Mon, 18 Apr 2016 12:56:51 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.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 BN1AFFO11FD023.mail.protection.outlook.com (10.58.52.83) with Microsoft SMTP Server (TLS) id 15.1.472.8 via Frontend Transport; Mon, 18 Apr 2016 12:56:51 +0000 Received: from fabio-Latitude-E6410.am.freescale.net (fabio-Latitude-E6410.am.freescale.net [10.29.244.192]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u3ICukW9005478; Mon, 18 Apr 2016 05:56:49 -0700 From: Fabio Estevam To: Date: Mon, 18 Apr 2016 09:56:16 -0300 Message-ID: <1460984176-5132-2-git-send-email-fabio.estevam@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1460984176-5132-1-git-send-email-fabio.estevam@nxp.com> References: <1460984176-5132-1-git-send-email-fabio.estevam@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131054578112058860; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(586003)(189998001)(81166005)(229853001)(575784001)(2351001)(11100500001)(50986999)(86362001)(85426001)(4326007)(19580405001)(76176999)(19580395003)(1220700001)(1096002)(110136002)(1720100001)(77096005)(104016004)(105606002)(47776003)(33646002)(48376002)(6806005)(50226001)(5008740100001)(230783001)(106466001)(2906002)(92566002)(2950100001)(15975445007)(36756003)(50466002)(87936001)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB1228; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD023; 1:tpZHut22ssmj03Zmv6/s/AlkGO2vpzX8TTrltnvNZGV3wueYf9kYeT293l/Eg4wiY3S/Wqo7xqMgJXU5uAFEPNMeaMR5sEEBieE3dn4XGgjxTWTzvb6Yl9+kLbXlkUvy2SZp1fcx472R/kRwmfYq0NuyPk7UEk0a9mqc/OaIzwZB4Xy5TMAQ/6IEnxwT7NXLEda63CrjVxC1M/JdkMJifRb72g9o/V0L//UxF0WBPkBg24POQET0mVcrXraju15iSisYJPZsfb7mWRXMH0S0itEw254bDDTojg1brQiiz9Napya5YrWLUr+drEsYbjtOEVxmarY8+u6qZrdovIAqyy3KN76yMtuIUSJxgA6I9H3Tf6fl18zrp4aPtLkUqZHHfRFblFkJ4YXLish8liKNl9NSk9+FHIfjkn2MOFXcq0248ad49YDylohzegbtsku4E/W8ySQ3IGeihahPk8p7DG8bv00LE/3VjZHrq9jRcUY+cxtKKNBj0Zy1L2lyFG4caGjNztBpPzlSnsseMs62ghj45W/kBiGHeqTtG2Lt2klKwjjlPw5pwMoMROwSjpN9X1Daa+gA8r6Ko7enunakzBTwa6316v0JnrIussyJOFcB3joczkjm24iQz7xJwe3dFv2PBPgf7rYRe+ZD9rL0Rb+IfTyO9lFwUTBQI6xclKENkPCKvFo8V8AGUVQFLC8U MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 661344fe-6f06-4080-d5ec-08d36788e905 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1228; 2:/8pEBH8/eDwow7e7fW7IA+1PUYg8n+wGl4lovoVxi8uyNiGtg7kh1XVMgMEnvcvlxesEkmv31vZL7JiyvIZVYqMSSjLgtue16qJzFHrzdJcTOJgHOl065g0cXZp2XiolKc/GkaoAxbhLOApuxP4w5coPa+qbPhwgNYKj88dzBP2Kmrytzxvdrm9H1mwLddPH; 3:mr1Q0zpds6HMbjpm9MtYBbPKxmlo12XS7SPn/BJfi98OjVyDv55FR8Y5o8KUMZxJ2BzFEkPmuLFa84YHae3BJBUtnVGbbpUMH0FOH+RnTfVxs9fEzxndjFJMpVACXVVcmuveyShtQTG9ogxcXPwxkyD84NBkgPKkmbfhdGRPe4tONlvskGBE7xET33t6xwm0faRQpdS8mRkQ0pAWbnSm6ipfCF3K2CaPV6Q4sCXXGgk=; 25:wz6RA3n5hX6LX+S8Ac/o5ZTgac0UXtC2pZnt5fBMXMZbUy7RzWgNNbJapWUQmZKs0XTjDNcDu4i/RBKUvHS9ioLINofUXDvN8Cvjx0Jfc8y2Y9qo0G3haCu7C8+L1HCoXvNVWjfdgnSgo3bSC35EQII/RONA9EF3HlC1tZcuifbAVgXhaVzUMkxbtO0i52eiU9WgF//9gcef+pdt1Bu5b6Bkj3R8VmuBkoLwX5/hzo3itY+SSFpA/Xzv1l86hi62VUiok9y+TvPZSGLZ8GAJI5wiN+tAWSTrI90UrgDRm6UpTu5WgnQQVDBks78jIlptw78D8NE5cwg+keTyYeWXeA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1228; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13023025)(13024025)(13015025)(13017025)(13018025)(5005006)(8121501046)(10201501046)(3002001)(6055026); SRVR:CY1PR0301MB1228; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB1228; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1228; 4:gFutHy7eVLuvEAvi8tYs1iA71Kt3ygoiwzJSbog+P/VtB74naOJ9pjCrjxgzCf+YjbRj0VRJCe/M6Rxh3KpfKFDEiZfAIdCcPEmJua1g1KHKL8B+oxj8lf95onXv0AeWmcHK1wD2Ko+ZvS3MJtyUEOYY2Jz+B6iDBrEyXt5u1I/PChCjjdS5urDkW7TTq/chM5CKiXmeyF9TxJ5dfWcyAeXsYlZb61FgBtnOLzSn21l/yLw7CULUA9ZPOnhd3KV3EVgRPvEp9rFCPWI+Sj91UIGbHqDjoJCEJkeOm2gmhyvqe9IrN9zwo34yykWeKoeoHYv2roOHmgFU10Nnh25PeXrZx7RpJURmKw5SaTuT3Tw+QXfqXcJrPaS19aDaoooeuRtdRm3JJ+vV2EzzwbMNsNht2JTQ+TH8+xlOI+zQmL09MlbrwwltJaCXr5lVLqZse/JHpRF2z17E1bxuc96QwjllupQ9he7xhL72EL6iPOI= X-Forefront-PRVS: 0916FC3A18 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB1228; 23:H+tQaFY6hugP4xQXIyL9RDNemIFhw6BdSQ7o031?= =?us-ascii?Q?Ppjheb2U8GdxRyaLsGysxf2nLM7Jild4Z3jntU0h+RRCUpg/vr80RKD5KmvI?= =?us-ascii?Q?uqGulwk4rF7nb+00fkPPhnv84Q5umJep7IGdUlSVi6WeBn22pF/TczT5f8K4?= =?us-ascii?Q?J7OjmSn0FrrC+Qdz7iJZxBagKslI9Tb6sne9BJDcG47r2n1b9rgEuagYyfLc?= =?us-ascii?Q?n+DVPA4VBF0Lrflvm0EGr+soqc13MYltrB3D0HB0xovlOmsdUsJF1+9VJkKr?= =?us-ascii?Q?+EIs/VQ0qJtY8J9QqCr7GoaMNwqLcaKFpKSWLE1ru19nCrdNGE97yXEL4YAL?= =?us-ascii?Q?QwZe1i3H2klbXwPQ2fqz3Yt/nw/S675So/ASfxApuD8uocj0ZJCsipUiQg+r?= =?us-ascii?Q?eggmiTA4qmNPBGo4/WxI5jMFI2wtMN3zAh3GKT4I+bdxY+E2nft5VYv59thd?= =?us-ascii?Q?Vl/4B1m97tIo4LyH7kaiZdP+vY1lomiT/o/wACzMltwqrbj8HEjhG+ZIDJIi?= =?us-ascii?Q?6wGeMc5b05f20+0p21YtSkFZs6G60qaDasPBtObq/JrGnAWUbnPQwlah26i9?= =?us-ascii?Q?afmrHCLcmbwhpT/RHdDe2GcLSBiWME1SlPz/as3SsbnIeBBQr3ohuWgpHoUN?= =?us-ascii?Q?L4ieQMqdvrqkzMQ+NtWKqJRL/sm6MZpFdkNbL+x7a+/gnjFKa0BSkuBHT0K2?= =?us-ascii?Q?I3/45+v0lVzlu5x+iekzkBV+r3roDlTxWgtu1DsCNJ5NQ1GiQAuRK8XnaAv6?= =?us-ascii?Q?3/+rSl5i22o0tbh5BA8B32HMnW8P/NeskflZeL+Zrs1VD9cmrVmtLMh5TJ3k?= =?us-ascii?Q?eswSFySedreG/vzZiPvCFrBGv1S4SaN9w5ZBNMgapZ0uNsPmkSVCPxwCjuNU?= =?us-ascii?Q?2TmxxgmeDBW5KFosAMgfuthovVwU+/9MVqgIlnQoxb5UqIAxmMiCNU4FMbSf?= =?us-ascii?Q?Zoo2u3p0lEPtVM04WCxr4G+OKwAfnbn4FYRNpvSCmaqpxogBH7j7kHWjNJzc?= =?us-ascii?Q?hqL3YjptDgsN+fuETXElYSc+qmjexNq9b8lJbDaslpKGHH7jL6X9PY4IZINz?= =?us-ascii?Q?GzgbgV6psCTlAOCal+YvZtRlYpHDGt7EKxglaMuBGIrHl6T4Ypm+No+ACXl5?= =?us-ascii?Q?vUvUpJLyILZI=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1228; 5:C6F1JUbBrfCeZm0+eMHP5SgQNy+hx+b+sYpsQZhGlgIuUMovNwLa9O9xjnybnlysWIlEVArZaWfgl6BNllsBcTksj9eJStThawSuaTs4A3qBzy87vKiHTs0qBo95ZuCMeYv3MC1PKnvXCHaA4g4lLCzcCzJrqI+jJJ4SvAwKyzdnLAJgnDHK6VHPZEK8s7tmf4OyIDCTDBShsGj8AKrt0Q==; 24:SKDIXRwpFMNELrgjbQLuF0WNDKBdFuao2CqUW91cq2YKSeR2rJjkII2vfpkmry/LY0MX5piJhPwt9kvDjawT2yAK0wpbjtpgAqz8fanJ2Lg=; 7:doT+rS8MJQd2bjYba6xQOOJO7sFGakZ1VDunRwM9pbiSlio9oDbQaRIK6/KSkPAOlUxhxO72CG2/fs5EQ2G0VcyC2Iyl8zMsJihI5yschluqqJaTA2tK/p8kEZ88dDVFw32dKIKj8sNkFkwuW2wS791XV0tYip4FsBTyZqppf73lnc9HZqBIDUbhJbQIYQCpwDNuNGpq6BdrlZGnL71IrXI2LaN4wVlsNLfc7nJAsb4= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2016 12:56:51.0342 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB1228 Cc: Fabio Estevam , u-boot@lists.denx.de, richard.hu@technexion.com Subject: [U-Boot] [PATCH 2/2] Add initial support for Technexion's PICO-IMX6UL-EMMC board 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" Add support for Technexion's PICO-IMX6UL-EMMC board. For information about this board, please visit: http://www.technexion.com/products/pico/pico-som/pico-imx6-emmc Signed-off-by: Richard Hu Signed-off-by: Fabio Estevam --- arch/arm/cpu/armv7/mx6/Kconfig | 5 ++ board/technexion/pico-imx6ul/Kconfig | 15 ++++ board/technexion/pico-imx6ul/MAINTAINERS | 7 ++ board/technexion/pico-imx6ul/Makefile | 7 ++ board/technexion/pico-imx6ul/imximage.cfg | 97 ++++++++++++++++++++ board/technexion/pico-imx6ul/pico-imx6ul.c | 119 ++++++++++++++++++++++++ configs/pico-imx6ul_defconfig | 5 ++ include/configs/pico-imx6ul.h | 140 +++++++++++++++++++++++++++++ 8 files changed, 395 insertions(+) create mode 100644 board/technexion/pico-imx6ul/Kconfig create mode 100644 board/technexion/pico-imx6ul/MAINTAINERS create mode 100644 board/technexion/pico-imx6ul/Makefile create mode 100644 board/technexion/pico-imx6ul/imximage.cfg create mode 100644 board/technexion/pico-imx6ul/pico-imx6ul.c create mode 100644 configs/pico-imx6ul_defconfig create mode 100644 include/configs/pico-imx6ul.h diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig index 1bcd399..663f970 100644 --- a/arch/arm/cpu/armv7/mx6/Kconfig +++ b/arch/arm/cpu/armv7/mx6/Kconfig @@ -136,6 +136,10 @@ config TARGET_OT1200 bool "Bachmann OT1200" select SUPPORT_SPL +config TARGET_PICO_IMX6UL + bool "PICO-IMX6UL-EMMC" + select MX6UL + config TARGET_PLATINUM_PICON bool "platinum-picon" select SUPPORT_SPL @@ -200,6 +204,7 @@ source "board/gateworks/gw_ventana/Kconfig" source "board/kosagi/novena/Kconfig" source "board/seco/Kconfig" source "board/solidrun/mx6cuboxi/Kconfig" +source "board/technexion/pico-imx6ul/Kconfig" source "board/tbs/tbs2910/Kconfig" source "board/tqc/tqma6/Kconfig" source "board/udoo/Kconfig" diff --git a/board/technexion/pico-imx6ul/Kconfig b/board/technexion/pico-imx6ul/Kconfig new file mode 100644 index 0000000..81acd61 --- /dev/null +++ b/board/technexion/pico-imx6ul/Kconfig @@ -0,0 +1,15 @@ +if TARGET_PICO_IMX6UL + +config SYS_BOARD + default "pico-imx6ul" + +config SYS_VENDOR + default "technexion" + +config SYS_SOC + default "mx6" + +config SYS_CONFIG_NAME + default "pico-imx6ul" + +endif diff --git a/board/technexion/pico-imx6ul/MAINTAINERS b/board/technexion/pico-imx6ul/MAINTAINERS new file mode 100644 index 0000000..594a883 --- /dev/null +++ b/board/technexion/pico-imx6ul/MAINTAINERS @@ -0,0 +1,7 @@ +Technexion PICO-IMX6UL board +M: Richard Hu +M: Fabio Estevam +S: Maintained +F: board/technexion/pico-imx6ul/ +F: include/configs/pico-imx6ul.h +F: configs/pico-imx6ul_defconfig diff --git a/board/technexion/pico-imx6ul/Makefile b/board/technexion/pico-imx6ul/Makefile new file mode 100644 index 0000000..ac8ff9e --- /dev/null +++ b/board/technexion/pico-imx6ul/Makefile @@ -0,0 +1,7 @@ +# (C) Copyright 2015 Technexion Ltd. +# (C) Copyright 2015 Freescale Semiconductor, Inc. +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y := pico-imx6ul.o diff --git a/board/technexion/pico-imx6ul/imximage.cfg b/board/technexion/pico-imx6ul/imximage.cfg new file mode 100644 index 0000000..9145b44 --- /dev/null +++ b/board/technexion/pico-imx6ul/imximage.cfg @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2015 Freescale Semiconductor, Inc. + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Refer docs/README.imxmage for more details about how-to configure + * and create imximage boot image + * + * The syntax is taken as close as possible with the kwbimage + */ + +#define __ASSEMBLY__ +#include + +/* image version */ + +IMAGE_VERSION 2 + +/* + * Boot Device : one of + * spi/sd/nand/onenand, qspi/nor + */ +BOOT_FROM sd + +/* + * Device Configuration Data (DCD) + * + * Each entry must have the format: + * Addr-type Address Value + * + * where: + * Addr-type register length (1,2 or 4 bytes) + * Address absolute address of the register + * value value to be stored in the register + */ + +/* Enable all clocks */ +DATA 4 0x020c4068 0xffffffff +DATA 4 0x020c406c 0xffffffff +DATA 4 0x020c4070 0xffffffff +DATA 4 0x020c4074 0xffffffff +DATA 4 0x020c4078 0xffffffff +DATA 4 0x020c407c 0xffffffff +DATA 4 0x020c4080 0xffffffff + +DATA 4 0x020E04B4 0x000C0000 +DATA 4 0x020E04AC 0x00000000 +DATA 4 0x020E027C 0x00000030 +DATA 4 0x020E0250 0x00000030 +DATA 4 0x020E024C 0x00000030 +DATA 4 0x020E0490 0x00000030 +DATA 4 0x020E0288 0x00000030 +DATA 4 0x020E0270 0x00000000 +DATA 4 0x020E0260 0x00000030 +DATA 4 0x020E0264 0x00000030 +DATA 4 0x020E04A0 0x00000030 +DATA 4 0x020E0494 0x00020000 +DATA 4 0x020E0280 0x00000030 +DATA 4 0x020E0284 0x00000030 +DATA 4 0x020E04B0 0x00020000 +DATA 4 0x020E0498 0x00000030 +DATA 4 0x020E04A4 0x00000030 +DATA 4 0x020E0244 0x00000030 +DATA 4 0x020E0248 0x00000030 +DATA 4 0x021B001C 0x00008000 +DATA 4 0x021B0800 0xA1390003 +DATA 4 0x021B080C 0x00000000 +DATA 4 0x021B083C 0x01380134 +DATA 4 0x021B0848 0x40404244 +DATA 4 0x021B0850 0x40405050 +DATA 4 0x021B081C 0x33333333 +DATA 4 0x021B0820 0x33333333 +DATA 4 0x021B082C 0xf3333333 +DATA 4 0x021B0830 0xf3333333 +DATA 4 0x021B08C0 0x00921012 +DATA 4 0x021B08b8 0x00000800 +DATA 4 0x021B0004 0x0002002D +DATA 4 0x021B0008 0x00333030 +DATA 4 0x021B000C 0x676B52F3 +DATA 4 0x021B0010 0xB66D8B63 +DATA 4 0x021B0014 0x01FF00DB +DATA 4 0x021B0018 0x00201740 +DATA 4 0x021B001C 0x00008000 +DATA 4 0x021B002C 0x000026D2 +DATA 4 0x021B0030 0x006B1023 +DATA 4 0x021B0040 0x00000047 +DATA 4 0x021B0000 0x83180000 +DATA 4 0x021B001C 0x02008032 +DATA 4 0x021B001C 0x00008033 +DATA 4 0x021B001C 0x00048031 +DATA 4 0x021B001C 0x15208030 +DATA 4 0x021B001C 0x04008040 +DATA 4 0x021B0020 0x00000800 +DATA 4 0x021B0818 0x00000227 +DATA 4 0x021B0004 0x0002552D +DATA 4 0x021B0404 0x00011006 +DATA 4 0x021B001C 0x00000000 diff --git a/board/technexion/pico-imx6ul/pico-imx6ul.c b/board/technexion/pico-imx6ul/pico-imx6ul.c new file mode 100644 index 0000000..c038d43 --- /dev/null +++ b/board/technexion/pico-imx6ul/pico-imx6ul.c @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2015 Technexion Ltd. + * + * Author: Richard Hu + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ + PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) + +#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \ + PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) + +#define OTG_ID_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \ + PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) + +int dram_init(void) +{ + gd->ram_size = imx_ddr_size(); + + return 0; +} + +static iomux_v3_cfg_t const uart6_pads[] = { + MX6_PAD_CSI_MCLK__UART6_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), + MX6_PAD_CSI_PIXCLK__UART6_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL), +}; + +static iomux_v3_cfg_t const usdhc1_pads[] = { + MX6_PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_READY_B__USDHC1_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_CE0_B__USDHC1_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_CE1_B__USDHC1_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_CLE__USDHC1_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL), +}; + +static iomux_v3_cfg_t const usb_otg_pad[] = { + MX6_PAD_GPIO1_IO00__ANATOP_OTG1_ID | MUX_PAD_CTRL(OTG_ID_PAD_CTRL), +}; + +static void setup_iomux_uart(void) +{ + imx_iomux_v3_setup_multiple_pads(uart6_pads, ARRAY_SIZE(uart6_pads)); +} + +static void setup_usb(void) +{ + imx_iomux_v3_setup_multiple_pads(usb_otg_pad, ARRAY_SIZE(usb_otg_pad)); +} + +static struct fsl_esdhc_cfg usdhc_cfg[1] = { + {USDHC1_BASE_ADDR}, +}; + +int board_mmc_getcd(struct mmc *mmc) +{ + return 1; +} + +int board_mmc_init(bd_t *bis) +{ + imx_iomux_v3_setup_multiple_pads(usdhc1_pads, ARRAY_SIZE(usdhc1_pads)); + usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); + return fsl_esdhc_initialize(bis, &usdhc_cfg[0]); +} + +int board_early_init_f(void) +{ + setup_iomux_uart(); + + return 0; +} + +int board_usb_phy_mode(int port) +{ + return USB_INIT_DEVICE; +} + +int board_init(void) +{ + /* Address of boot parameters */ + gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; + + setup_usb(); + + return 0; +} + +int checkboard(void) +{ + puts("Board: PICO-IMX6UL-EMMC\n"); + + return 0; +} diff --git a/configs/pico-imx6ul_defconfig b/configs/pico-imx6ul_defconfig new file mode 100644 index 0000000..9157faa --- /dev/null +++ b/configs/pico-imx6ul_defconfig @@ -0,0 +1,5 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX6=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/technexion/pico-imx6ul/imximage.cfg" +CONFIG_TARGET_PICO_IMX6UL=y +CONFIG_OF_LIBFDT=y diff --git a/include/configs/pico-imx6ul.h b/include/configs/pico-imx6ul.h new file mode 100644 index 0000000..3e37815 --- /dev/null +++ b/include/configs/pico-imx6ul.h @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2015 Technexion Ltd. + * + * Configuration settings for the Technexion PICO-IMX6UL-EMMC board. + * + * SPDX-License-Identifier: GPL-2.0+ + */ +#ifndef __PICO_IMX6UL_CONFIG_H +#define __PICO_IMX6UL_CONFIG_H + + +#include +#include +#include "mx6_common.h" +#include + +#define CONFIG_DISPLAY_CPUINFO +#define CONFIG_DISPLAY_BOARDINFO + +/* Size of malloc() pool */ +#define CONFIG_SYS_MALLOC_LEN (16 * SZ_1M) + +#define CONFIG_BOARD_EARLY_INIT_F + +#define CONFIG_MXC_UART +#define CONFIG_MXC_UART_BASE UART6_BASE_ADDR + +/* MMC Configs */ +#define CONFIG_FSL_USDHC +#define CONFIG_FSL_ESDHC +#define CONFIG_SYS_FSL_ESDHC_ADDR USDHC1_BASE_ADDR + +#define CONFIG_MMC +#define CONFIG_CMD_MMC +#define CONFIG_GENERIC_MMC +#define CONFIG_CMD_FAT +#define CONFIG_DOS_PARTITION +#define CONFIG_SUPPORT_EMMC_BOOT + +/* USB Configs */ +#define CONFIG_CMD_USB +#define CONFIG_USB_EHCI +#define CONFIG_USB_EHCI_MX6 +#define CONFIG_USB_STORAGE +#define CONFIG_EHCI_HCD_INIT_AFTER_RESET +#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) +#define CONFIG_MXC_USB_FLAGS 0 +#define CONFIG_USB_MAX_CONTROLLER_COUNT 1 /* Only OTG1 port enabled */ + +#define CONFIG_CI_UDC +#define CONFIG_USBD_HS +#define CONFIG_USB_GADGET_DUALSPEED +#define CONFIG_USB_GADGET + +#define CONFIG_CMD_USB_MASS_STORAGE +#define CONFIG_USB_FUNCTION_MASS_STORAGE +#define CONFIG_USB_GADGET_DOWNLOAD +#define CONFIG_USB_GADGET_VBUS_DRAW 2 + +#define CONFIG_G_DNL_VENDOR_NUM 0x0525 +#define CONFIG_G_DNL_PRODUCT_NUM 0xa4a5 +#define CONFIG_G_DNL_MANUFACTURER "FSL" + +#define CONFIG_G_DNL_VENDOR_NUM 0x0525 +#define CONFIG_G_DNL_PRODUCT_NUM 0xa4a5 +#define CONFIG_G_DNL_MANUFACTURER "FSL" + +#define CONFIG_DEFAULT_FDT_FILE "imx6ul-pico-hobbit.dtb" + +#define CONFIG_SYS_MMC_IMG_LOAD_PART 1 + +#define CONFIG_EXTRA_ENV_SETTINGS \ + "image=zImage\0" \ + "console=ttymxc5\0" \ + "fdt_high=0xffffffff\0" \ + "initrd_high=0xffffffff\0" \ + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ + "fdt_addr=0x83000000\0" \ + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ + "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ + "mmcautodetect=yes\0" \ + "mmcargs=setenv bootargs console=${console},${baudrate} " \ + "root=${mmcroot}\0" \ + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ + "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ + "mmcboot=echo Booting from mmc ...; " \ + "run mmcargs; " \ + "if run loadfdt; then " \ + "bootz ${loadaddr} - ${fdt_addr}; " \ + "else " \ + "echo WARN: Cannot load the DT; " \ + "fi;\0" + +#define CONFIG_BOOTCOMMAND \ + "if mmc rescan; then " \ + "if run loadimage; then " \ + "run mmcboot; " \ + "else run netboot; " \ + "fi; " \ + "else run netboot; fi" + +#define CONFIG_CMD_MEMTEST +#define CONFIG_SYS_MEMTEST_START 0x80000000 +#define CONFIG_SYS_MEMTEST_END CONFIG_SYS_MEMTEST_START + SZ_128M + +#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR +#define CONFIG_SYS_HZ 1000 + +#define CONFIG_CMDLINE_EDITING +#define CONFIG_STACKSIZE SZ_128K + +/* Physical Memory Map */ +#define CONFIG_NR_DRAM_BANKS 1 +#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR + +#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM +#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR +#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE + +#define CONFIG_SYS_INIT_SP_OFFSET \ + (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_ADDR \ + (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) + +/* FLASH and environment organization */ +#define CONFIG_SYS_NO_FLASH + +#define CONFIG_ENV_SIZE SZ_8K +#define CONFIG_ENV_IS_IN_MMC +#define CONFIG_ENV_OFFSET (8 * SZ_64K) + +#define CONFIG_SYS_MMC_ENV_DEV 0 +#define CONFIG_SYS_MMC_ENV_PART 0 +#define CONFIG_MMCROOT "/dev/mmcblk0p2" + +#define CONFIG_CMD_BOOTZ +#define CONFIG_CMD_CACHE + +#endif /* __PICO_IMX6UL_CONFIG_H */