From patchwork Mon Sep 16 12:24:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 1162769 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) 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="Al9MqaLV"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46X56k1205z9sPw for ; Mon, 16 Sep 2019 22:25:17 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A7527C22039; Mon, 16 Sep 2019 12:25:16 +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.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8C977C21FF8; Mon, 16 Sep 2019 12:24:37 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 5B817C22007; Mon, 16 Sep 2019 12:24:36 +0000 (UTC) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by lists.denx.de (Postfix) with ESMTPS id A6D05C21FF8 for ; Mon, 16 Sep 2019 12:24:32 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20190916122431euoutp02f1800d2907957c6754cc48cd64cbdb21~E6r357JJv2721627216euoutp02s for ; Mon, 16 Sep 2019 12:24:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20190916122431euoutp02f1800d2907957c6754cc48cd64cbdb21~E6r357JJv2721627216euoutp02s DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1568636671; bh=Fkpn1XiNOPZl2r5Z7EBsAERmkfG7tOaOPrSZqjOkVI0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Al9MqaLV8FpUsOG7wcU0ET7YC2T+1KtYtuRWOxazTAQvGXXYRLFEtGdH7EdaZBrQl U+dYe8ihtQbxyVNikKjoWcxiVyA7TKUqFkQHo/D8tyO97TxhGf+Y8tqPkEXRqYPuBX BTgxhD27PkR05UAD1/MiLQM9ugL6eYK7FjiRu23w= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20190916122431eucas1p1b9744e96cb15bdd0fc6826f2c0b21b86~E6r3dui5T2419824198eucas1p1s; Mon, 16 Sep 2019 12:24:31 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 31.43.04469.FFE7F7D5; Mon, 16 Sep 2019 13:24:31 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20190916122430eucas1p19918617895f7d0d57c3f58218adc85ae~E6r2nZ-yE2419724197eucas1p1J; Mon, 16 Sep 2019 12:24:30 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20190916122430eusmtrp2988813c0dfb9460746bf8c710fcdd501~E6r2ZXfuX1015910159eusmtrp2F; Mon, 16 Sep 2019 12:24:30 +0000 (GMT) X-AuditID: cbfec7f2-54fff70000001175-bb-5d7f7effd28c Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id F4.A6.04166.EFE7F7D5; Mon, 16 Sep 2019 13:24:30 +0100 (BST) Received: from AMDC2765.DIGITAL.local (unknown [106.120.51.73]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20190916122429eusmtip169a19a45df08c6650ef485061e446271~E6r18xFrf1939119391eusmtip1H; Mon, 16 Sep 2019 12:24:29 +0000 (GMT) From: Marek Szyprowski To: u-boot@lists.denx.de Date: Mon, 16 Sep 2019 14:24:15 +0200 Message-Id: <20190916122417.27520-2-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190916122417.27520-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRmVeSWpSXmKPExsWy7djP87r/6+pjDdbN4bDYOGM9q8WNX22s Fs/fXWayWHvkLrvFgslPWC1mTH7JZvF2bye7A7vHvFknWDzO3tnB6NG3ZRWjx/otV1kCWKK4 bFJSczLLUov07RK4MvbMespY8JCnYsv62WwNjPO4uhg5OSQETCS+zDnO0sXIxSEksIJRYuG5 tWwQzhdGiV1PtjJCOJ8ZJd59n8IM07Ly2AFWiMRyRomtl44yw7Usmr2VHaSKTcBQouttFxuI LSIgIfGr/yrYKGaBJiaJtrXvWUASwgKuEu1b3oLZLAKqEu+ez2bqYuTg4BWwldh/UxNim7zE 6g0HmEHCnAJ2EtteOoKMkRB4zyYx8cMnVogaF4m3r88yQtjCEq+Ob2GHsGUk/u+czwTR0Mwo 8fDcWnYIp4dR4nLTDKgOa4nDxy+ygmxgFtCUWL9LHyLsKDFpykU2kLCEAJ/EjbeCIGFmIHPS tunMEGFeiY42IYhqNYlZx9fBrT144RI0sDwkTvb8g4bvRGD4/nrCMoFRfhbCsgWMjKsYxVNL i3PTU4sN81LL9YoTc4tL89L1kvNzNzEC08Ppf8c/7WD8einpEKMAB6MSD29Da12sEGtiWXFl 7iFGCQ5mJRHegNr6WCHelMTKqtSi/Pii0pzU4kOM0hwsSuK81QwPooUE0hNLUrNTUwtSi2Cy TBycUg2MKf5H3dmNcxUWzQ3fJPqtprsp+ljxqpm5tgvv1QgGvz+ztv7C3+Kp/71XcE8/ppP8 P0xmiekHtbjM0HrD/af0D6zY6cSScafw03a+6qjeXwvDpjYcjXQ/0KvmmGBtobMmffuC7c8l YtflJpg8vZq97Hd40Suz09WZ361WPd916ZkD++HJwiZ8SizFGYmGWsxFxYkAmu0wbQsDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsVy+t/xu7r/6upjDR4d5bXYOGM9q8WNX22s Fs/fXWayWHvkLrvFgslPWC1mTH7JZvF2bye7A7vHvFknWDzO3tnB6NG3ZRWjx/otV1kCWKL0 bIryS0tSFTLyi0tslaINLYz0DC0t9IxMLPUMjc1jrYxMlfTtbFJSczLLUov07RL0MvbMespY 8JCnYsv62WwNjPO4uhg5OSQETCRWHjvA2sXIxSEksJRR4srB40wQCRmJk9MaWCFsYYk/17rY IIo+MUo0L9/JBpJgEzCU6HrbBWaLCEhI/Oq/yghSxCzQxiQxZdZGdpCEsICrRPuWtywgNouA qsS757OBNnBw8ArYSuy/qQmxQF5i9YYDzCBhTgE7iW0vHUHCQkAVR55sZpnAyLeAkWEVo0hq aXFuem6xoV5xYm5xaV66XnJ+7iZGYKhuO/Zz8w7GSxuDDzEKcDAq8fA2tNbFCrEmlhVX5h5i lOBgVhLhDaitjxXiTUmsrEotyo8vKs1JLT7EaAp00kRmKdHkfGAc5ZXEG5oamltYGpobmxub WSiJ83YIHIwREkhPLEnNTk0tSC2C6WPi4JRqYDRg3RpbozRHRaxFf93jaLmvzl3PmPZGeq3M WKnRemj5Hq5M+wk7G7xmMX5wmrKFb4bj27rK6VtN/5Temul3+Gd4g23C6iPrCnr4rfwTq/h4 HldYsCUcuLK4V5Px/IlIltfHksIOTJtY/eQKk82jNDXuL3bdN/cyG/9S23LHPdtz8/Ywzxtf 9imxFGckGmoxFxUnAgA/FE7KawIAAA== X-CMS-MailID: 20190916122430eucas1p19918617895f7d0d57c3f58218adc85ae X-Msg-Generator: CA X-RootMTR: 20190916122430eucas1p19918617895f7d0d57c3f58218adc85ae X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190916122430eucas1p19918617895f7d0d57c3f58218adc85ae References: <20190916122417.27520-1-m.szyprowski@samsung.com> Cc: Matthias Brugger , Bartlomiej Zolnierkiewicz , Marek Szyprowski Subject: [U-Boot] [PATCH 1/3] fat: write: fix broken write to fragmented files 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" The code for handing file overwrite incorrectly assumed that the file on disk is always contiguous. This resulted in corrupting disk structure every time when write to existing fragmented file happened. Fix this by adding proper check for cluster discontinuity and adjust chunk size on each partial write. Signed-off-by: Marek Szyprowski Reviewed-by: Oleksandr Suvorov Reviewed-by: Lukasz Majewski --- fs/fat/fat_write.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index 729cf39630d..6cfa5b45652 100644 --- a/fs/fat/fat_write.c +++ b/fs/fat/fat_write.c @@ -794,6 +794,8 @@ set_contents(fsdata *mydata, dir_entry *dentptr, loff_t pos, __u8 *buffer, newclust = get_fatent(mydata, endclust); + if ((newclust - 1) != endclust) + break; if (IS_LAST_CLUST(newclust, mydata->fatsize)) break; if (CHECK_CLUST(newclust, mydata->fatsize)) { @@ -811,7 +813,7 @@ set_contents(fsdata *mydata, dir_entry *dentptr, loff_t pos, __u8 *buffer, offset = 0; else offset = pos - cur_pos; - wsize = min(cur_pos + actsize, filesize) - pos; + wsize = min_t(unsigned long long, actsize, filesize - cur_pos); if (get_set_cluster(mydata, curclust, offset, buffer, wsize, &actsize)) { printf("Error get-and-setting cluster\n"); @@ -824,8 +826,6 @@ set_contents(fsdata *mydata, dir_entry *dentptr, loff_t pos, __u8 *buffer, if (filesize <= cur_pos) break; - /* CHECK: newclust = get_fatent(mydata, endclust); */ - if (IS_LAST_CLUST(newclust, mydata->fatsize)) /* no more clusters */ break; From patchwork Mon Sep 16 12:24:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 1162771 X-Patchwork-Delegate: lukma@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) 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="VrgKdYWJ"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46X58J0cvLz9sN1 for ; Mon, 16 Sep 2019 22:26:39 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 82EDDC22042; Mon, 16 Sep 2019 12:26:15 +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.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4FCDEC22006; Mon, 16 Sep 2019 12:24:40 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id CB2C8C22004; Mon, 16 Sep 2019 12:24:39 +0000 (UTC) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lists.denx.de (Postfix) with ESMTPS id 04E3BC22004 for ; Mon, 16 Sep 2019 12:24:33 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190916122432euoutp019b06cc4b8ceffd8f631ee3356921fd35~E6r4IFm6z3267232672euoutp01I for ; Mon, 16 Sep 2019 12:24:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20190916122432euoutp019b06cc4b8ceffd8f631ee3356921fd35~E6r4IFm6z3267232672euoutp01I DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1568636672; bh=n2agG1AMWNudGSLcTQ3TabOVLlk0M19UrXxdN6E9yjo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VrgKdYWJOnbtoy+UDEiUPJ8A90IoqaboLDfAqrKPtfYBqvmUoRDd9RTf0U01XEeX1 PvJqtpE4+QrUfH/IgdvYlb81B5XpwRJfPco6wW/Vf9U9/F0f+8skUcBcR13fT8bXEx PxxnVwkr2dp+IjFHelEgjXzDqz+5SEAKzffNh0pg= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20190916122431eucas1p23330eb01b9c5c0fc0624289ab2a1b596~E6r3vtJEu1035410354eucas1p2X; Mon, 16 Sep 2019 12:24:31 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id B1.43.04469.FFE7F7D5; Mon, 16 Sep 2019 13:24:31 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20190916122430eucas1p2dc270f6d0b8ee4da5521fe63d6df072f~E6r2-PpCr1034910349eucas1p2f; Mon, 16 Sep 2019 12:24:30 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20190916122430eusmtrp2c5f0676c3ce7a59ee1d872ecca96978d~E6r2xKIuB1025710257eusmtrp2O; Mon, 16 Sep 2019 12:24:30 +0000 (GMT) X-AuditID: cbfec7f2-569ff70000001175-bc-5d7f7eff8cfa Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 60.8B.04117.EFE7F7D5; Mon, 16 Sep 2019 13:24:30 +0100 (BST) Received: from AMDC2765.DIGITAL.local (unknown [106.120.51.73]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20190916122430eusmtip12b57641c527e1af81eb7f4cbf4ddc0b6~E6r2YED-n1375613756eusmtip1G; Mon, 16 Sep 2019 12:24:30 +0000 (GMT) From: Marek Szyprowski To: u-boot@lists.denx.de Date: Mon, 16 Sep 2019 14:24:16 +0200 Message-Id: <20190916122417.27520-3-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190916122417.27520-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRmVeSWpSXmKPExsWy7djP87r/6+pjDTack7LYOGM9q8WNX22s Fs/fXWayWHvkLrvFgslPWC1mTH7JZvF2bye7A7vHvFknWDzO3tnB6NG3ZRWjx/otV1kCWKK4 bFJSczLLUov07RK4Mpb8WclY8EG+ouHBFuYGxhPSXYycHBICJhKXLn1h6mLk4hASWMEo8efY M0YI5wujRNf+JVCZz4wSHX9es8C0HPq1ASqxnFHi0c3H7HAtd/+sYQWpYhMwlOh628UGYosI SEj86r8KNpdZoIlJom3te7BRwgKBEnO3nmTuYuTgYBFQldjXkAwS5hWwlTj4ZwIzxDZ5idUb DoCVcArYSWx76QgyRkLgPZvE7i1fWCFqXCQuH9oAZQtLvDq+hR3ClpH4v3M+E0RDM6PEw3Nr 2SGcHkaJy00zGCGqrCUOH7/ICrKBWUBTYv0ufYiwo0Tbrh+MIGEJAT6JG28FQcLMQOakbdOZ IcK8Eh1tQhDVahKzjq+DW3vwwiWo8z0kGi8fYYaEz0RGiTkrXzFNYJSfhbBsASPjKkbx1NLi 3PTUYsO81HK94sTc4tK8dL3k/NxNjMD0cPrf8U87GL9eSjrEKMDBqMTD29BaFyvEmlhWXJl7 iFGCg1lJhDegtj5WiDclsbIqtSg/vqg0J7X4EKM0B4uSOG81w4NoIYH0xJLU7NTUgtQimCwT B6dUA2NfoFzcYQZ+9dYJBtGbu47a3BHbKt7qMd12x8INDyvVdqqyfNz4mGVmo4/FIuXAhWU/ 5vCnyfpcD1z5/m6enkey9BRRFscziXPO3S+UcVYxln2irL47tuLJ826l9A2H15elvJ/UXuV3 9XpD7IUjpoUJ52wzjjO7MBRd9I4/aNb04LjEjErBlUosxRmJhlrMRcWJAHIZDWULAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsVy+t/xu7r/6upjDa7vV7fYOGM9q8WNX22s Fs/fXWayWHvkLrvFgslPWC1mTH7JZvF2bye7A7vHvFknWDzO3tnB6NG3ZRWjx/otV1kCWKL0 bIryS0tSFTLyi0tslaINLYz0DC0t9IxMLPUMjc1jrYxMlfTtbFJSczLLUov07RL0Mpb8WclY 8EG+ouHBFuYGxhPSXYycHBICJhKHfm1g6mLk4hASWMoo8WriZxaIhIzEyWkNrBC2sMSfa11s EEWfGCWuf3/NDpJgEzCU6HoLkuDkEBGQkPjVf5URpIhZoI1JYsqsjWBFwgL+EvOnfwWyOThY BFQl9jUkg4R5BWwlDv6ZwAyxQF5i9YYDzCAlnAJ2EtteOoKEhYBKjjzZzDKBkW8BI8MqRpHU 0uLc9NxiI73ixNzi0rx0veT83E2MwFDdduznlh2MXe+CDzEKcDAq8fA2tNbFCrEmlhVX5h5i lOBgVhLhDaitjxXiTUmsrEotyo8vKs1JLT7EaAp00kRmKdHkfGAc5ZXEG5oamltYGpobmxub WSiJ83YIHIwREkhPLEnNTk0tSC2C6WPi4JRqYCzJTrF4UhQfrfxqZsTsabPuX/p452gPe9mU gqfn/5bIZ+3XLvo7mTMl+BVH6b/f2+ZMZmP+GGCe+nc9l/T3H3XXGWZJPjroeG27S4Kj44x1 q1f8km9ruF8o/c3Y7vOEp2GuN27ZmxgaTOM7yxie05RwcP5xa66ii7v9pOWKm87sCX/5n4nN sFeJpTgj0VCLuag4EQA+Phk7awIAAA== X-CMS-MailID: 20190916122430eucas1p2dc270f6d0b8ee4da5521fe63d6df072f X-Msg-Generator: CA X-RootMTR: 20190916122430eucas1p2dc270f6d0b8ee4da5521fe63d6df072f X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190916122430eucas1p2dc270f6d0b8ee4da5521fe63d6df072f References: <20190916122417.27520-1-m.szyprowski@samsung.com> Cc: Matthias Brugger , Bartlomiej Zolnierkiewicz , Marek Szyprowski Subject: [U-Boot] [PATCH 2/3] usb: dwc2_udc_otg: add bcm2835 SoC (Raspberry Pi4) support 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" Broadcom 2835 SoC requires special conversion of physical memory addresses for DMA purpose, so add needed wrappers to dwc2_udc_otg driver. Also extend the list of compatible devices with 'brcm,bcm2835-usb' entry. This allows to use USB gadget drivers (i.e. DFU) on Raspberry Pi4 boards. Signed-off-by: Marek Szyprowski Reviewed-by: Lukasz Majewski --- drivers/usb/gadget/dwc2_udc_otg.c | 2 ++ drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c index 35f4147840e..49f342eb211 100644 --- a/drivers/usb/gadget/dwc2_udc_otg.c +++ b/drivers/usb/gadget/dwc2_udc_otg.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -1213,6 +1214,7 @@ static int dwc2_udc_otg_remove(struct udevice *dev) static const struct udevice_id dwc2_udc_otg_ids[] = { { .compatible = "snps,dwc2" }, + { .compatible = "brcm,bcm2835-usb" }, { .compatible = "st,stm32mp1-hsotg", .data = (ulong)dwc2_set_stm32mp1_hsotg_params }, {}, diff --git a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c index 7eb632d3b14..5e695b4ff2a 100644 --- a/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c +++ b/drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c @@ -28,7 +28,7 @@ static inline void dwc2_udc_ep0_zlp(struct dwc2_udc *dev) { u32 ep_ctrl; - writel(usb_ctrl_dma_addr, ®->in_endp[EP0_CON].diepdma); + writel(phys_to_bus((unsigned long)usb_ctrl_dma_addr), ®->in_endp[EP0_CON].diepdma); writel(DIEPT_SIZ_PKT_CNT(1), ®->in_endp[EP0_CON].dieptsiz); ep_ctrl = readl(®->in_endp[EP0_CON].diepctl); @@ -49,7 +49,7 @@ static void dwc2_udc_pre_setup(void) writel(DOEPT_SIZ_PKT_CNT(1) | sizeof(struct usb_ctrlrequest), ®->out_endp[EP0_CON].doeptsiz); - writel(usb_ctrl_dma_addr, ®->out_endp[EP0_CON].doepdma); + writel(phys_to_bus((unsigned long)usb_ctrl_dma_addr), ®->out_endp[EP0_CON].doepdma); ep_ctrl = readl(®->out_endp[EP0_CON].doepctl); writel(ep_ctrl|DEPCTL_EPENA, ®->out_endp[EP0_CON].doepctl); @@ -75,7 +75,7 @@ static inline void dwc2_ep0_complete_out(void) writel(DOEPT_SIZ_PKT_CNT(1) | sizeof(struct usb_ctrlrequest), ®->out_endp[EP0_CON].doeptsiz); - writel(usb_ctrl_dma_addr, ®->out_endp[EP0_CON].doepdma); + writel(phys_to_bus((unsigned long)usb_ctrl_dma_addr), ®->out_endp[EP0_CON].doepdma); ep_ctrl = readl(®->out_endp[EP0_CON].doepctl); writel(ep_ctrl|DEPCTL_EPENA|DEPCTL_CNAK, @@ -113,7 +113,7 @@ static int setdma_rx(struct dwc2_ep *ep, struct dwc2_request *req) (unsigned long) ep->dma_buf + ROUND(ep->len, CONFIG_SYS_CACHELINE_SIZE)); - writel((unsigned long) ep->dma_buf, ®->out_endp[ep_num].doepdma); + writel(phys_to_bus((unsigned long)ep->dma_buf), ®->out_endp[ep_num].doepdma); writel(DOEPT_SIZ_PKT_CNT(pktcnt) | DOEPT_SIZ_XFER_SIZE(length), ®->out_endp[ep_num].doeptsiz); writel(DEPCTL_EPENA|DEPCTL_CNAK|ctrl, ®->out_endp[ep_num].doepctl); @@ -161,7 +161,7 @@ static int setdma_tx(struct dwc2_ep *ep, struct dwc2_request *req) while (readl(®->grstctl) & TX_FIFO_FLUSH) ; - writel((unsigned long) ep->dma_buf, ®->in_endp[ep_num].diepdma); + writel(phys_to_bus((unsigned long)ep->dma_buf), ®->in_endp[ep_num].diepdma); writel(DIEPT_SIZ_PKT_CNT(pktcnt) | DIEPT_SIZ_XFER_SIZE(length), ®->in_endp[ep_num].dieptsiz); @@ -921,7 +921,7 @@ static int dwc2_udc_get_status(struct dwc2_udc *dev, (unsigned long) usb_ctrl + ROUND(sizeof(g_status), CONFIG_SYS_CACHELINE_SIZE)); - writel(usb_ctrl_dma_addr, ®->in_endp[EP0_CON].diepdma); + writel(phys_to_bus(usb_ctrl_dma_addr), ®->in_endp[EP0_CON].diepdma); writel(DIEPT_SIZ_PKT_CNT(1) | DIEPT_SIZ_XFER_SIZE(2), ®->in_endp[EP0_CON].dieptsiz); From patchwork Mon Sep 16 12:24:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 1162772 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 (mailfrom) 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="oSnuaKAb"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46X58l4jhVz9sN1 for ; Mon, 16 Sep 2019 22:27:03 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 45604C22032; Mon, 16 Sep 2019 12:26:28 +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.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 9CC4BC2202C; Mon, 16 Sep 2019 12:24:40 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D4B62C22006; Mon, 16 Sep 2019 12:24:39 +0000 (UTC) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by lists.denx.de (Postfix) with ESMTPS id 41BC2C22006 for ; Mon, 16 Sep 2019 12:24:33 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190916122432euoutp014d38492c6db9de48eea8419372d72a39~E6r45d_8Y3267232672euoutp01J for ; Mon, 16 Sep 2019 12:24:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20190916122432euoutp014d38492c6db9de48eea8419372d72a39~E6r45d_8Y3267232672euoutp01J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1568636673; bh=sEfZwMO4Qrwk21NeGwERvcikJ1L7IyX9nY5BlzuDe/8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oSnuaKAbdCLTg+UQYCc6XmstYeNfUJOt/anF2oA+uKusrIYQuBSMC7wnEn6U0DIqk qTe1MedPLLIMbX2xeUWtnZ6Cm5R2o8IMYQf4kboVUmk/tr+pHQ/bE/uAHbrNrFXCj/ QnborKjsmniVo9sF760h0crtIVMvQLmVL7M4SVNI= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20190916122432eucas1p1964009ade76757da99997a72ce0b9198~E6r4R0_Zy2419724197eucas1p1M; Mon, 16 Sep 2019 12:24:32 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 10.42.04374.FFE7F7D5; Mon, 16 Sep 2019 13:24:31 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20190916122431eucas1p206a5a96f594baef702cd94b81c4917b1~E6r3dAZka0602506025eucas1p2f; Mon, 16 Sep 2019 12:24:31 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20190916122431eusmtrp274e7250d3494a64f5fb32372bb33133f~E6r3PAMCs1015910159eusmtrp2I; Mon, 16 Sep 2019 12:24:31 +0000 (GMT) X-AuditID: cbfec7f5-4ddff70000001116-a6-5d7f7effed39 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id C5.A6.04166.FFE7F7D5; Mon, 16 Sep 2019 13:24:31 +0100 (BST) Received: from AMDC2765.DIGITAL.local (unknown [106.120.51.73]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20190916122430eusmtip1a8b700cbb4ba59f5189c8f7e4f89bff7~E6r2xpfAl1938819388eusmtip1G; Mon, 16 Sep 2019 12:24:30 +0000 (GMT) From: Marek Szyprowski To: u-boot@lists.denx.de Date: Mon, 16 Sep 2019 14:24:17 +0200 Message-Id: <20190916122417.27520-4-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190916122417.27520-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOIsWRmVeSWpSXmKPExsWy7djPc7oM9fWxBms4LTbOWM9qceNXG6vF 83eXmSzWHrnLbrFg8hNWixmTX7JZvN3bye7A7jFv1gkWj7N3djB69G1ZxeixfstVlgCWKC6b lNSczLLUIn27BK6MP+d3MhXcE6qYunM1UwNjg0AXIyeHhICJxI/HnYxdjFwcQgIrGCVm353F DOF8YZQ4f24FlPOZUeLAiyPMMC3/V8JULWeUWNQ/jwWu5d2Or0wgVWwChhJdb7vYQGwRAQmJ X/1XwZYwCzQxSbStfc8CkhAW8JDYsmIq2FgWAVWJWxOfMoLYvAK2EnOPX2WEWCcvsXrDAaAa Dg5OATuJbS8dIcKv2ST6f4RD2C4SZ3atZ4GwhSVeHd/CDmHLSPzfOZ8JZK+EQDOjxMNza9kh nB5GictNM6AWWEscPn6RFWQBs4CmxPpd+hBhR4nvN3eAhSUE+CRuvBUECTMDmZO2TWeGCPNK dLQJQVSrScw6vg5u7cELl6CB5SGxdMkyaPhMZJT4OmEzywRG+VkIyxYwMq5iFE8tLc5NTy02 zkst1ytOzC0uzUvXS87P3cQITA6n/x3/uoNx35+kQ4wCHIxKPLwNrXWxQqyJZcWVuYcYJTiY lUR4A2rrY4V4UxIrq1KL8uOLSnNSiw8xSnOwKInzVjM8iBYSSE8sSc1OTS1ILYLJMnFwSjUw Lt2x7kCRz+y6i5mHwzv2rTWYJ6Z6V2GV/LeH2efcZycePbYv9dm6pX+M+yTjN1xJ4u4r8uiQ Ybr4yCHQKPTPpdi0KzyFoZfPKP74evZeWubG7gM7n+dNDEm+uLpd7L27cfc0toL01NNXmTec YnxgvSxYUq5svtmBXTu4jZZG8Dmr71+v/8+6SYmlOCPRUIu5qDgRADvYKXEKAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJLMWRmVeSWpSXmKPExsVy+t/xu7r/6+pjDQ48YbHYOGM9q8WNX22s Fs/fXWayWHvkLrvFgslPWC1mTH7JZvF2bye7A7vHvFknWDzO3tnB6NG3ZRWjx/otV1kCWKL0 bIryS0tSFTLyi0tslaINLYz0DC0t9IxMLPUMjc1jrYxMlfTtbFJSczLLUov07RL0Mv6c38lU cE+oYurO1UwNjA0CXYycHBICJhL/V85i7mLk4hASWMoosap7BhNEQkbi5LQGVghbWOLPtS42 iKJPjBKzLt1lB0mwCRhKdL0FSXByiAhISPzqv8oIUsQs0MYkMWXWRrAiYQEPiS0rpjKD2CwC qhK3Jj5lBLF5BWwl5h6/ygixQV5i9YYDQDUcHJwCdhLbXjqChIWASo482cwygZFvASPDKkaR 1NLi3PTcYkO94sTc4tK8dL3k/NxNjMBg3Xbs5+YdjJc2Bh9iFOBgVOLhbWitixViTSwrrsw9 xCjBwawkwhtQWx8rxJuSWFmVWpQfX1Sak1p8iNEU6KaJzFKiyfnASMoriTc0NTS3sDQ0NzY3 NrNQEuftEDgYIySQnliSmp2aWpBaBNPHxMEp1cBYfXbPoqvFO2IjdiSv7lrCeTVSrFcpOfw4 l9kUf0vhBZXO13Kbt64qyJzj7cqjl5kwh+eyQj2LzoUjKTI8c2PZnMW++4g+8HkduDbr1g/L xIgkzw9ffyrrqv7oUdl4tddYMVzAcy7bHn3eU7mtxuePKxTVKnimPY3fkNL1q5dHZPP7hJY4 NSWW4oxEQy3mouJEAHQjTeNsAgAA X-CMS-MailID: 20190916122431eucas1p206a5a96f594baef702cd94b81c4917b1 X-Msg-Generator: CA X-RootMTR: 20190916122431eucas1p206a5a96f594baef702cd94b81c4917b1 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190916122431eucas1p206a5a96f594baef702cd94b81c4917b1 References: <20190916122417.27520-1-m.szyprowski@samsung.com> Cc: Matthias Brugger , Bartlomiej Zolnierkiewicz , Marek Szyprowski Subject: [U-Boot] [PATCH 3/3] 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 and zImage. Signed-off-by: Marek Szyprowski Reviewed-by: Lukasz Majewski --- configs/rpi_4_32b_defconfig | 11 +++++++++++ include/configs/rpi.h | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig index a31a617a5fb..0a375b97369 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 @@ -19,6 +20,7 @@ CONFIG_CMD_FS_UUID=y CONFIG_ENV_FAT_INTERFACE="mmc" CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_DFU_MMC=y CONFIG_DM_KEYBOARD=y CONFIG_DM_MMC=y CONFIG_MMC_SDHCI=y @@ -26,6 +28,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 77d2d5458a1..f502915ad53 100644 --- a/include/configs/rpi.h +++ b/include/configs/rpi.h @@ -70,9 +70,18 @@ #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 +#define ENV_DFU_SETTINGS \ + "dfu_alt_info=u-boot.bin fat 0 1;uboot.env fat 0 1;zImage fat 0 1" +#endif + /* Console configuration */ #define CONFIG_SYS_CBSIZE 1024 + /* Environment */ #define CONFIG_ENV_SIZE SZ_16K #define CONFIG_SYS_LOAD_ADDR 0x1000000 @@ -185,6 +194,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