From patchwork Fri Dec 11 13:40:19 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 555761 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 1542E1402A9 for ; Sat, 12 Dec 2015 00:40:46 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 639A44B6EF; Fri, 11 Dec 2015 14:40:43 +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 X3UDC4ZfoNss; Fri, 11 Dec 2015 14:40:43 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id C9BA44B6CB; Fri, 11 Dec 2015 14:40:42 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 348BA4B6CB for ; Fri, 11 Dec 2015 14:40:39 +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 ondizU-BqHw8 for ; Fri, 11 Dec 2015 14:40:39 +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 mail-out.m-online.net (mail-out.m-online.net [212.18.0.10]) by theia.denx.de (Postfix) with ESMTPS id 055594B6C7 for ; Fri, 11 Dec 2015 14:40:34 +0100 (CET) Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3pHCt90WJ5z3hj0F; Fri, 11 Dec 2015 14:40:32 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3pHCt84JJmzvkM3; Fri, 11 Dec 2015 14:40:32 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id cT2Ratpr3klv; Fri, 11 Dec 2015 14:40:30 +0100 (CET) Received: from babic.homelinux.org (host-88-217-136-221.customer.m-online.net [88.217.136.221]) by mail.mnet-online.de (Postfix) with ESMTP; Fri, 11 Dec 2015 14:40:30 +0100 (CET) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id 09E71454036B; Fri, 11 Dec 2015 14:40:30 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at babic.homelinux.org Received: from babic.homelinux.org ([127.0.0.1]) by localhost (mail.babic.homelinux.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sLVfbbPt8pkq; Fri, 11 Dec 2015 14:40:27 +0100 (CET) Received: from papero.fritz.box (papero.fritz.box [192.168.178.20]) by babic.homelinux.org (Postfix) with ESMTP id 80E6D4540227; Fri, 11 Dec 2015 14:40:25 +0100 (CET) From: Stefano Babic To: u-boot@lists.denx.de Date: Fri, 11 Dec 2015 14:40:19 +0100 Message-Id: <1449841219-22857-1-git-send-email-sbabic@denx.de> X-Mailer: git-send-email 1.9.1 Cc: Fabio Estevam , Tom Rini , Eric Nelson , Pierre Aubert Subject: [U-Boot] [PATCH v2] imx_common: check for Serial Downloader in spl_boot_device 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Check for bmode before reading the boot device to check if a serial downloader is started, and returns UART if the serial downloader is set, letting SPL to wait for an image if CONFIG_SPL_YMODEM_SUPPORT is set. This allows to load again a SPL based board with imx_usb_loader together with a tool such as kermit. Signed-off-by: Stefano Babic CC: Tim Harvey CC: Fabio Estevam CC: Eric Nelson Reviewed-By: Eric Nelson Tested-By: Eric Nelson --- Changes in v2: - Add documentation (S. Roese) - Check just bits 24-25 because reserved bits are set on some variants (E. Nelson) - Set boot device to UARt if USB is set to let bmode working as suggested by Eric arch/arm/imx-common/spl.c | 8 ++++++++ doc/README.imx6 | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/arch/arm/imx-common/spl.c b/arch/arm/imx-common/spl.c index ac6e40e..a8f2492 100644 --- a/arch/arm/imx-common/spl.c +++ b/arch/arm/imx-common/spl.c @@ -20,7 +20,15 @@ u32 spl_boot_device(void) struct src *psrc = (struct src *)SRC_BASE_ADDR; unsigned int gpr10_boot = readl(&psrc->gpr10) & (1 << 28); unsigned reg = gpr10_boot ? readl(&psrc->gpr9) : readl(&psrc->sbmr1); + unsigned int bmode = readl(&psrc->sbmr2); + /* + * Check for BMODE if serial downloader is enabled + * BOOT_MODE - see IMX6DQRM Table 8-1 + */ + if ((((bmode >> 24) & 0x03) == 0x01) || /* Serial Downloader */ + (gpr10_boot && (1 == reg))) + return BOOT_DEVICE_UART; /* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */ switch ((reg & 0x000000FF) >> 4) { /* EIM: See 8.5.1, Table 8-9 */ diff --git a/doc/README.imx6 b/doc/README.imx6 index 437af2f..5aa41f2 100644 --- a/doc/README.imx6 +++ b/doc/README.imx6 @@ -84,3 +84,54 @@ Address: Reading bank 4: Word 0x00000002: 9f027772 00000004 + +2. Using imx_usb_loader for first install with SPL +-------------------------------------------------- + +imx_usb_loader is a very nice tool by BoundaryDevice that +allow to install U-Boot without a JTAG debugger, using +the USB boot mode as described in the manual. It is +a replacement for Freescale's MFGTOOLS. + +The sources can be found here: + + https://github.com/boundarydevices/imx_usb_loader.git + +Booting in USB mode, the i.MX6 announces itself to the Linux Host as: + +Bus 001 Device 111: ID 15a2:0061 Freescale Semiconductor, Inc. + +imx_usb_loader is able to download a single file (u-boot.imx) +to the board. For boards without SPL support, it is enough to +issue the command: + + sudo ../imx_usb_loader/imx_usb -v u-boot.imx + +Getting U-Boot when SPL support is active, it requires to use +two communications. imx_usb_loader downloads the SPL into +OCRAM and starts it. SPL will check for a valid u-boot.img, and +because it is not found, it will wait for it using the y-modem +protocol via the console. + +A first install is then possible combining imx_usb_loader with +another tool such as kermit. + +sudo ../imx_usb_loader/imx_usb -v SPL +kermit kermit_uboot + +and kermit_uboot contains something like this (set line should be adjusted): + +set line /dev/ttyUSB1 +set speed 115200 +SET CARRIER-WATCH OFF +set flow-control none +set handshake none +set prefixing all +set file type bin +set protocol ymodem +send u-boot.img +c + +The last "c" command tells kermit (from ckermit package in most distros) +to switch from command line mode to communication mode, and when the +script is finished, the U-Boot prompt is shown in the same shell.