From patchwork Mon Dec 2 11:11:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 1203106 X-Patchwork-Delegate: matthias.bgg@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="omjmVL++"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 47RMtq1q4gz9sP3 for ; Mon, 2 Dec 2019 22:13:55 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id CBD3BC21E3A; Mon, 2 Dec 2019 11:12:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID, UPPERCASE_50_75 autolearn=no autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id EF02AC21E4E; Mon, 2 Dec 2019 11:11:37 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id ECE48C21C50; Mon, 2 Dec 2019 11:11:34 +0000 (UTC) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lists.denx.de (Postfix) with ESMTPS id 62184C21D74 for ; Mon, 2 Dec 2019 11:11:33 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20191202111133euoutp01aa1299b527e644b3a7a6978578ab9912~ciXIpX2nV0741707417euoutp01J for ; Mon, 2 Dec 2019 11:11:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20191202111133euoutp01aa1299b527e644b3a7a6978578ab9912~ciXIpX2nV0741707417euoutp01J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1575285093; bh=DKjlCk4Rt+vNJm5UAWX5otapZ+ncrxfWHMoIRRjG3ME=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=omjmVL++sLsrlnqnQowICsVwscHRdeo1FiZbc6e3KB4CwarqRMwJSqDxFcjExAPAg Rw9T1zuuSx/Eqm8PmosIZmMY+twsUlfFwuc3SL3QnQ2xYA1JXVP90jwIorDpEVo1Sn w8wWfngVmUaOZ3UCplKhopKArGqxUPAhw1oaIgH4= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20191202111132eucas1p2cf91f2bdc36ed8714cdc4836f55fd8bd~ciXIXnF4M2177121771eucas1p2r; Mon, 2 Dec 2019 11:11:32 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 0E.87.60679.461F4ED5; Mon, 2 Dec 2019 11:11:32 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20191202111132eucas1p1e25756addc317af3069b77557c8de60b~ciXIAeEVG0696006960eucas1p1L; Mon, 2 Dec 2019 11:11:32 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20191202111132eusmtrp1cac48685515f6847a87991fed762ead7~ciXH-6jGg1442414424eusmtrp18; Mon, 2 Dec 2019 11:11:32 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-81-5de4f164b361 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id D5.F8.07950.461F4ED5; Mon, 2 Dec 2019 11:11:32 +0000 (GMT) Received: from AMDC2765.digital.local (unknown [106.120.51.73]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20191202111131eusmtip28ca6c8dbae9f9165fb4319c3a85ba68e~ciXHZt92u1834718347eusmtip2G; Mon, 2 Dec 2019 11:11:31 +0000 (GMT) From: Marek Szyprowski To: u-boot@lists.denx.de Date: Mon, 2 Dec 2019 12:11:18 +0100 Message-Id: <20191202111118.12868-7-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191202111118.12868-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSe0hTYRjG+9zZ2dlscZqCr7MQVgplaorhIUst/OOQdBECI7FaelBTp2xq aVAyRXRY3lqtVSZWGOatOUyG12nONM0LmppKkhGODG9gmlabZ9Z/v/d9nud7Pj4+giN6xBUT cbIURi6TJkhwAdbQtdbvGb04G3n4SfMh6rWmlkuNredwqW8/hu2o6s4pHlVWMsul6p7OY5Sm ZA6nNlrXMEpdXM+j5pvzeFSHegEF29Ol2m6MXli8RJvbKnn05GgTTvdNNiL6rr4S0bX6EYzW melzxEXBsWgmIS6NkXsHXhHEdrafTTbuvaHWz+KZqM5ZhfgEkH4w/bAQUyEBISJfIuhT6zGr ICJXECypj7C8jGCw0307oKzQ2AIVCO4X1doGS6Dp17Kd1YWTPqCaV+FWdiQB1gtGkNXEIes4 MJ1jRFbBgQyFD1kTW3UY6QYNb3u2wkLyOLwZ6MXZOld4VdfGsTKfDITWvGdbbUCW8yB7vIXH mkKgYPUFl2UHMJv0tv0e6C3JtwWyEMz0V/PYIR/BsFKDWFcAdJgGLWnCcr8DUGvwtiKQJ6Br U8TiLhib3201cyxY3PCAw66FkJsjYs9wB62p5l9r+8CQzUKDsjuKfZ8iBC1V7/BC5Kr9X1WG UCVyYlIViTGMwlfGXPdSSBMVqbIYr6ikRB2yfJne36aVRmTYuGpEJIEkO4W55i+RIq40TZGe aERAcCSOwo+SmUiRMFqansHIky7LUxMYhRG5EJjESXhzx+cIERkjTWHiGSaZkW+rdgRfnImq Ty8E8XueuzQZ7umubZ6a+skN20gqFw/uT1Gi2/5Bg0W3zkOY4x3CTY27NV1A5okAz9JwJf01 w7QZ7z7n++m9fba/sGfGOVgcqks2TMzW+8F4YexQ32qNYVR80sOwcHTfGfT9cZg5Yskf7KtH 9Xy9h5xC2hBhFX/4j2+4BFPESn0OcuQK6V+OCtDzLgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrHLMWRmVeSWpSXmKPExsVy+t/xe7opH5/EGmxqFLHYOGM9q8WNX22s Fs/fXWayWHvkLrvFgslPWC02zH/LYjFj8ks2iz/7f7JYTJ20md3i7d5OdovDUz8wOnB7zJt1 gsXjw8c4j1cHVrF73Lm2h83j7J0djB59W1YxeqzfcpXFY9MrjwCOKD2bovzSklSFjPziElul aEMLIz1DSws9IxNLPUNj81grI1MlfTublNSczLLUIn27BL2MIwf9Cw7JVkzd8oStgXGDZBcj J4eEgIlE0/IZLF2MXBxCAksZJfZNPccCkZCRODmtgRXCFpb4c62LDaLoE6PEtTNtYEVsAoYS XW9BEpwcIgISEr/6rzKCFDEL7GCWWPy2lRkkISzgLXG++RZYA4uAqsS2o6eYQGxeAVuJ7RdO s0FskJdYveEAWD2ngJ3E/s7FQPUcQNtsJd6/j5vAyLeAkWEVo0hqaXFuem6xkV5xYm5xaV66 XnJ+7iZGYNhvO/Zzyw7GrnfBhxgFOBiVeHg7Xj2OFWJNLCuuzD3EKMHBrCTCe13pYawQb0pi ZVVqUX58UWlOavEhRlOgmyYyS4km5wNjMq8k3tDU0NzC0tDc2NzYzEJJnLdD4GCMkEB6Yklq dmpqQWoRTB8TB6dUA+NSY8YtnVNDCg9Ht0kcTU53ecfP5MzmlLndy+O/QDf75DVG0S8ZJL8b Tk1mb3VQrOo/V3jh6mT5soep4s4/Qj4+dvhg61x+S2r9IfXw10zhS/wdLxhNm79wVfUUT89X cYJsbIIhTxdU/Vp9PVZi96QtqrzxDOWNZUJHnzz+ef7GKkFT/0nsD5VYijMSDbWYi4oTAe92 BRaRAgAA X-CMS-MailID: 20191202111132eucas1p1e25756addc317af3069b77557c8de60b X-Msg-Generator: CA X-RootMTR: 20191202111132eucas1p1e25756addc317af3069b77557c8de60b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20191202111132eucas1p1e25756addc317af3069b77557c8de60b References: <20191202111118.12868-1-m.szyprowski@samsung.com> Cc: Matthias Brugger , Bartlomiej Zolnierkiewicz , Heinrich Schuchardt , Tom Rini , Marek Szyprowski Subject: [U-Boot] [PATCH v4 6/6] config: enable DFU over USB on Raspberry Pi4 boards X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Enable support for DFU over USB. This requires to enable USB gadget, DWC2 UDC OTG driver and DFU command. DFU entities are defined for the following firmware objects: u-boot.bin, uboot.env, config.txt, and zImage/Image. Signed-off-by: Marek Szyprowski Reviewed-by: Lukasz Majewski --- configs/rpi_4_32b_defconfig | 11 +++++++++++ configs/rpi_4_defconfig | 11 +++++++++++ include/configs/rpi.h | 20 ++++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig index 7ff390cd24..9d0515029c 100644 --- a/configs/rpi_4_32b_defconfig +++ b/configs/rpi_4_32b_defconfig @@ -12,6 +12,7 @@ CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SYS_PROMPT="U-Boot> " +CONFIG_CMD_DFU=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y CONFIG_CMD_MMC=y @@ -21,6 +22,7 @@ CONFIG_ENV_FAT_INTERFACE="mmc" CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_DFU_MMC=y CONFIG_DM_KEYBOARD=y CONFIG_DM_MMC=y CONFIG_MMC_SDHCI=y @@ -28,6 +30,15 @@ CONFIG_MMC_SDHCI_BCM2835=y CONFIG_PINCTRL=y # CONFIG_PINCTRL_GENERIC is not set # CONFIG_REQUIRE_SERIAL_CONSOLE is not set +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_DM_USB_GADGET=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 +CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_DM_VIDEO=y CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_CONSOLE_SCROLL_LINES=10 diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig index c5089eb9c8..3d660d182a 100644 --- a/configs/rpi_4_defconfig +++ b/configs/rpi_4_defconfig @@ -12,6 +12,7 @@ CONFIG_MISC_INIT_R=y # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SYS_PROMPT="U-Boot> " +CONFIG_CMD_DFU=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y CONFIG_CMD_MMC=y @@ -21,6 +22,7 @@ CONFIG_ENV_FAT_INTERFACE="mmc" CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_DFU_MMC=y CONFIG_DM_KEYBOARD=y CONFIG_DM_MMC=y CONFIG_MMC_SDHCI=y @@ -28,6 +30,15 @@ CONFIG_MMC_SDHCI_BCM2835=y CONFIG_PINCTRL=y # CONFIG_PINCTRL_GENERIC is not set # CONFIG_REQUIRE_SERIAL_CONSOLE is not set +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_DM_USB_GADGET=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="FSL" +CONFIG_USB_GADGET_VENDOR_NUM=0x0525 +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 +CONFIG_USB_GADGET_DWC2_OTG=y +CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_DM_VIDEO=y CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_CONSOLE_SCROLL_LINES=10 diff --git a/include/configs/rpi.h b/include/configs/rpi.h index 83e258a6b9..b53a4b65d0 100644 --- a/include/configs/rpi.h +++ b/include/configs/rpi.h @@ -74,6 +74,25 @@ #define CONFIG_TFTP_TSIZE #endif +/* DFU over USB/UDC */ +#ifdef CONFIG_CMD_DFU +#define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_1M +#define CONFIG_SYS_DFU_MAX_FILE_SIZE SZ_2M + +#ifdef CONFIG_ARM64 +#define KERNEL_FILENAME "Image" +#else +#define KERNEL_FILENAME "zImage" +#endif + +#define ENV_DFU_SETTINGS \ + "dfu_alt_info=u-boot.bin fat 0 1;uboot.env fat 0 1;" \ + "config.txt fat 0 1;" \ + KERNEL_FILENAME " fat 0 1\0" +#else +#define ENV_DFU_SETTINGS "" +#endif + /* Console configuration */ #define CONFIG_SYS_CBSIZE 1024 @@ -188,6 +207,7 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "dhcpuboot=usb start; dhcp u-boot.uimg; bootm\0" \ ENV_DEVICE_SETTINGS \ + ENV_DFU_SETTINGS \ ENV_MEM_LAYOUT_SETTINGS \ BOOTENV