From patchwork Mon Jun 29 02:32:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1318716 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=Orh8K+ZX; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49w9sy0YQNz9sQt for ; Mon, 29 Jun 2020 12:09:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 57D0B81ED7; Mon, 29 Jun 2020 04:09:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="Orh8K+ZX"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8E45181EE2; Mon, 29 Jun 2020 04:08:59 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: * X-Spam-Status: No, score=1.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,KHOP_HELO_FCRDNS,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,SUBJ_OBFU_PUNCT_FEW,SUBJ_OBFU_PUNCT_MANY autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on060e.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0d::60e]) (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 515BA81F02 for ; Mon, 29 Jun 2020 04:08:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g7trPgYXrNVhETRorKpVwtIk9x+ecGT8fG39Z5CgCpbuds8Jyi3eRNfkmj8BEcbKj2CPX3qWIiKPKrqX01roE6pwU7uKl9o3IMmKenetook1WT00SuqG8Ro003MxhhslV4AykehCd41RVINE26hQlkofZMTDIMK4kEYXHRFzzApg9h0RNVehnfWTpuLf83P572xTJJ8LCT1/eh2jiupITxqq/pjrPmnOZguXkHEpSl/XB+Szf2UriLe/S7ZRyQGYcz/3/35KYiuQh3gOb8SjVkonXWkSq74ZZRNgIZp1C+eKEvwvyiU06N8sIbeLfIUesiCVilSR65dstB9FxaiU+A== 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:X-MS-Exchange-SenderADCheck; bh=OkdYe3XOnRFmT+GF7tnPjI9QkrSyBf6LzaeSoyd0pas=; b=JWNcgNwRcUvsNVjYrslxqYZa3HjWY3lICiYMwQn36Yf8usBZsXuh35GxOsoUbK1WbEE6sbdzmocpQ/fCJ+xU8EWi3z3FIKdIHgX2yAP0It1HibWOj/wd/HyHvxF4QSJbENsUD8vVTct3QQNy83dfX/F5wQDL0UtV0H5qmoPPIgwKhuvstj95Y4ebls4VJ5Ltpzo8VM7L1DeRiGW3CiIDunHtqRm7kVxdP6WmAXlajXgMrvBEHgimzQ7fhgRE5jmJHmG+IJxI0W4EfkyOEZN5PcWJifTmTMzxFbetPmnl7zyQepdkycEdWGxt9Ow756oi0uuig3r0p44F2kg+5yZV6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OkdYe3XOnRFmT+GF7tnPjI9QkrSyBf6LzaeSoyd0pas=; b=Orh8K+ZXwLNP5LcQNCBsbskHXhZGG7rBayBN5YJ5RpKet60ceOsmajPNiJPJYeXzqPpS510PID1+tculbiY0p7ZNHdCNoeE3zEtkoQGKvFeO5v02ParuQ3eS3EgqNhc732Uxd0Gz5uBmpfQzI4XY4CrL7PycqSJDWts+1Mn02TY= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB7PR04MB4490.eurprd04.prod.outlook.com (2603:10a6:5:36::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 02:08:34 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701%4]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:08:34 +0000 From: Peng Fan To: sbabic@denx.de, marex@denx.de, lukma@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Frank Li , Peng Fan Subject: [PATCH 1/7] sdp: call board_usb_init at spl_sdp_load_image Date: Mon, 29 Jun 2020 10:32:52 +0800 Message-Id: <20200629023258.25452-1-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 X-ClientProxiedBy: SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Mon, 29 Jun 2020 02:08:31 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 59c798c4-ece0-4474-cf96-08d81bd153d6 X-MS-TrafficTypeDiagnostic: DB7PR04MB4490: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:346; X-Forefront-PRVS: 044968D9E1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3ZLH3xAnzGFEhGnhwnAvS3AqZ1KweD5W09VZuo9IGxgp+XMGzBky55piOqOA46q8q/ZCq1UAw3JZbtSLPvy0IT5WUFkX3UB6FnJXOOv2pazUZPAPT8UwQzuWBUF7076m6uzBhJun867PqhX9BVimmNGjz+U00Dxe2U7xlgWGMH5SVgYP2JBU5WqkN+KluYdEtGJp+dyfN3H17oiVoXYw0rRW04IFuK119dBDPuTuTdBW3YloISB/xABG+YNjJZqlR4aEphONlPi0m+pXjyhL4AwBJpa7l7fxKe4gL6cF4R1T9OSsz2lS7tzKfFx6Ogjxn9ZLMzdUtNh20i+um5icAg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(366004)(136003)(376002)(396003)(39860400002)(66556008)(36756003)(1076003)(4326008)(26005)(6506007)(956004)(2616005)(8936002)(44832011)(478600001)(8676002)(6512007)(186003)(83380400001)(16526019)(86362001)(66476007)(6486002)(6666004)(316002)(52116002)(2906002)(54906003)(66946007)(5660300002)(4744005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: G1komWU64fjr8wCAMnxEWdzGfF5wQEI3dXmgm/EcrT8hqE5BRBzKu4sVlFSSIogcolV6bPfCY7Eoo3yNmepf/6drN42FaCi7vjnqCJb9qDDqiTsfRHKGeYQ8hTHzdMc+KqPi+IY2QLaA3qEL78iKt58+329ZmT8J3es4n0KaRnbtAMMrlQSn133ek6IEhAMI1+pVvYvhn+3Bl9WQTnPezQAZ7Fxw6mNp4yjp6Dk6kp4DtXn4ixMA1MR/D/n4rnFapB4edLeTEn9nUs+OuF7gfSTLFwsZ8dFj3CjARk8WwYldT24Q7SJKYJz0q9ghqzyll/ka+8yd07ve1asvvci5uOVzJWVQM1K0I66ApxwztKhfELVDA6qblaQGA9iDC9Ev+3tjvMQIrYTnn6bXpGmF7e0aV/dS4bMN3O3Y1iR1uSdExD5nRATwxEcDeO5DNQLzDI6j57XkbWqA+Wo2yP6sOEiITdG9s82AjMLlCxm/mW4= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59c798c4-ece0-4474-cf96-08d81bd153d6 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2020 02:08:34.4775 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hzs1rjt4f1mnq0QppdqumHH5up9P1dceAsWeODte8llEah/R4iUeWX/Ts4hnRJmTWxWww16qCo2JPGu7AVbTeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4490 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean From: Frank Li Need initialize UDC before run sdp download Signed-off-by: Frank Li Signed-off-by: Peng Fan --- common/spl/spl_sdp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/spl/spl_sdp.c b/common/spl/spl_sdp.c index e7f7b68411..ae9c09883a 100644 --- a/common/spl/spl_sdp.c +++ b/common/spl/spl_sdp.c @@ -19,6 +19,8 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image, usb_gadget_initialize(controller_index); + board_usb_init(0, USB_INIT_DEVICE); + g_dnl_clear_detach(); ret = g_dnl_register("usb_dnl_sdp"); if (ret) { From patchwork Mon Jun 29 02:32:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1318720 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=lwRd0wCT; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49w9tq44Skz9sTJ for ; Mon, 29 Jun 2020 12:10:27 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8466881F17; Mon, 29 Jun 2020 04:09:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="lwRd0wCT"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B0C7981EB0; Mon, 29 Jun 2020 04:09:33 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0612.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::612]) (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 9AFD281F00 for ; Mon, 29 Jun 2020 04:08:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hOgenUS43lZHpedIbkHVY6xGmzRYITELk2irO4EuX2qG4e5A+X4n7aQNHqwaGfLzqwcPJF65+sxpsBv2CINUKQvhYezOQfMPDMW0xhpZpizsYJ8BbUpeFFl8CNnZzoZbqftCfIcx6FQzKRu2eChgzH8YBd1rxlqfLFhIwerrdLzdLGgIJgTeIGNbHtpdlOJNZAM983SiyuwmTH5oEOq94IJV87U4Is3VMygkMWy7TgcmVzTJcC0J5v67DheNRGcqZIsOG609qyFn6umOpCcuLeCJexAC3igrwWJQY+Q4+wO4WYjVDZy9vaBw/yZBYoY8vUlYtoWkVMg91RA5GvTgLg== 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:X-MS-Exchange-SenderADCheck; bh=UaKHkbHSMvcg1rUUU4IYgNmU8RbEk5liWMlhkoOuiqM=; b=YNlzuR7bad3i8DhlArqymWH4dhTrcqu6xziaUO/e+9GWbLkTE9fCmL3vEqbrETbQjXdhFdVB4hwyJQHs1TA4nzS6RB6jqMjqEoQCUr3F+21q+PWjhE0AAyrdjQaVYGFjIDV/mGZz1lrL+ozFG2X197d7Ok5FKNywfvSEHGjJnVHE367G/QlSIPa08AQyiPE4Q6w1gJ6GMwUjHICYcw9SJ9nmnF43s551+wiQDkTqFr1p1yOmngmK1eSyAbHFNUK5dA+yJeXQNHfNejHelg9BSbDJks93S2NS7mnLCyzCuFqhIqcd8F5rL3bfjD8jdkf83sXpKnA6+/Ks7nNob/UWGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UaKHkbHSMvcg1rUUU4IYgNmU8RbEk5liWMlhkoOuiqM=; b=lwRd0wCTZZkt7ZJuAcM1lqEPYJMWeRANJnu3q5vgwX6FQSVIT3f3hYEBpJTMZ+8jmteTWPC2aSAHadfMwXsZTmnJa/BPMMJkXSrpoaTK3tYxrFrO6AdaVQOotxIT+rnOaz8RUfZrKMmGi+9+0W2vOoAlbhzO3Dfv5eV13OK7sZs= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB3PR0402MB3913.eurprd04.prod.outlook.com (2603:10a6:8:3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 02:08:38 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701%4]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:08:37 +0000 From: Peng Fan To: sbabic@denx.de, marex@denx.de, lukma@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Ye Li , Peng Fan Subject: [PATCH 2/7] f_sdp: Add high speed endpoint descriptor Date: Mon, 29 Jun 2020 10:32:53 +0800 Message-Id: <20200629023258.25452-2-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200629023258.25452-1-peng.fan@nxp.com> References: <20200629023258.25452-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Mon, 29 Jun 2020 02:08:34 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 69fae00c-9d7a-4666-c992-08d81bd15594 X-MS-TrafficTypeDiagnostic: DB3PR0402MB3913: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-Forefront-PRVS: 044968D9E1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SIukGR8iPOogcCsOnCkOtTKGQQdSLCJq1Ic7SDdQw7lKWqrrW71YmWOAZA3R8GeS4sRFsoxJRquPmk5lBqAXd5geA6CxYbiKl8RSuHRdWIzpoQfcKkB7EHwft09TkCtXcOp68YUKVA2vQ73zCl135E3SAdxauTyy5b2zUo57Dhjb8crL8G/75FV7tyLZyniiglz0nyGFS25fORQhZcV6y1RFiP4VkZVC4PjJK1KJ65+4qeFEsREUjso7AUsKchCpUui02FuGuCI9gIl/9Pp5LAVqp3KI4R5mahJv+IZ9zOc1bJ0C+/dxK9DgSzZetmLNjZhQ1OUyd9aO/qnoStompw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(366004)(396003)(346002)(376002)(6486002)(6666004)(86362001)(52116002)(54906003)(66946007)(5660300002)(316002)(2906002)(66476007)(66556008)(1076003)(26005)(4326008)(36756003)(6512007)(8676002)(186003)(83380400001)(16526019)(6506007)(478600001)(44832011)(956004)(8936002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: sZAcv3Z4ZmAHeihaLk0k4bFPfaXM3Wm5UwqQxLhvxx46tq3bPlBof+isilFke8+gC/E7q4pqma0ungeWws6Mk6fT58HjtfILnHSr/NMxQ/u7e79nJdVEGNLEOiUo2dOcmKY4zPld/LyRT8B7hGE0pbR4/HnAwIp3QRz5A11I9cw3qo4N3GA7lJ90Sx4faDciIZ1SHxnBQ1qxPoWBJxtazLsmFaotUEFCh9v+gBbr5Lwq7Jw9+l5ax5riN2PXtKUCg9OCL/TWhz9aGJX/E03cPEInOuu9hf4u8/yrVcAHCx0t7KhVmTqMzl275kwX+nKk9Kffm1Fu+b9q2dOew/xbOF1jqeTtg+kuLHnB0cpLPBK0RjKPQiUkf1W+EhOcM1Bwy6pj6hrcJtksadcozrsfwEOcQ4++72xWVN72Hg48S0eODYESWpi9JHC8UktwKrV0F+U6h4WKDOy+RNi0O3/n6jp6BafghylrbrAQXvr4xsYDXqy4DWhu4aXolGAsZexc X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69fae00c-9d7a-4666-c992-08d81bd15594 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2020 02:08:37.3203 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: TspWuGTarjoEFcEa6XTtXiNVAignaKs9BEPhzcAU1GlnDpIZUUmj2jC0k0GJJsZZU5S7THZN0iL5TV6k31bV4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3913 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Add HS endpoint descriptor for SDP. So that we can use high speed endpoint, and the SDP device can send packet with 512 byte size. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- drivers/usb/gadget/f_sdp.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c index f2fe89d2a6..f971ccdeca 100644 --- a/drivers/usb/gadget/f_sdp.c +++ b/drivers/usb/gadget/f_sdp.c @@ -159,6 +159,16 @@ static struct usb_endpoint_descriptor in_desc = { .bInterval = 1, }; +static struct usb_endpoint_descriptor in_hs_desc = { + .bLength = USB_DT_ENDPOINT_SIZE, + .bDescriptorType = USB_DT_ENDPOINT, /*USB_DT_CS_ENDPOINT*/ + + .bEndpointAddress = 1 | USB_DIR_IN, + .bmAttributes = USB_ENDPOINT_XFER_INT, + .wMaxPacketSize = 512, + .bInterval = 1, +}; + static struct usb_descriptor_header *sdp_runtime_descs[] = { (struct usb_descriptor_header *)&sdp_intf_runtime, (struct usb_descriptor_header *)&sdp_hid_desc, @@ -166,6 +176,13 @@ static struct usb_descriptor_header *sdp_runtime_descs[] = { NULL, }; +static struct usb_descriptor_header *sdp_runtime_hs_descs[] = { + (struct usb_descriptor_header *)&sdp_intf_runtime, + (struct usb_descriptor_header *)&sdp_hid_desc, + (struct usb_descriptor_header *)&in_hs_desc, + NULL, +}; + /* This is synchronized with what the SoC implementation reports */ static struct hid_report sdp_hid_report = { .usage_page = { @@ -489,6 +506,11 @@ static int sdp_bind(struct usb_configuration *c, struct usb_function *f) goto error; } + if (gadget_is_dualspeed(gadget)) { + /* Assume endpoint addresses are the same for both speeds */ + in_hs_desc.bEndpointAddress = in_desc.bEndpointAddress; + } + sdp->in_ep = ep; /* Store IN EP for enabling @ setup */ cdev->req->context = sdp; @@ -541,11 +563,15 @@ static int sdp_set_alt(struct usb_function *f, unsigned intf, unsigned alt) { struct f_sdp *sdp = func_to_sdp(f); struct usb_composite_dev *cdev = f->config->cdev; + struct usb_gadget *gadget = cdev->gadget; int result; debug("%s: intf: %d alt: %d\n", __func__, intf, alt); - result = usb_ep_enable(sdp->in_ep, &in_desc); + if (gadget_is_dualspeed(gadget) && gadget->speed == USB_SPEED_HIGH) + result = usb_ep_enable(sdp->in_ep, &in_hs_desc); + else + result = usb_ep_enable(sdp->in_ep, &in_desc); if (result) return result; sdp->in_req = sdp_start_ep(sdp->in_ep); @@ -591,7 +617,7 @@ static int sdp_bind_config(struct usb_configuration *c) memset(sdp_func, 0, sizeof(*sdp_func)); sdp_func->usb_function.name = "sdp"; - sdp_func->usb_function.hs_descriptors = sdp_runtime_descs; + sdp_func->usb_function.hs_descriptors = sdp_runtime_hs_descs; sdp_func->usb_function.descriptors = sdp_runtime_descs; sdp_func->usb_function.bind = sdp_bind; sdp_func->usb_function.unbind = sdp_unbind; From patchwork Mon Jun 29 02:32:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1318717 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=Ey3SbaLh; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49w9t74hjTz9sQt for ; Mon, 29 Jun 2020 12:09:51 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 909A081EEB; Mon, 29 Jun 2020 04:09:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="Ey3SbaLh"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 398EB81EBD; Mon, 29 Jun 2020 04:09:27 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0612.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::612]) (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 148A181EE8 for ; Mon, 29 Jun 2020 04:08:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jxjha2F30pncFQ1eqQYuEEpO5ma0sHI09Ssl1xlIm04ETv4/15RC0XVoO0tHIbpbScbENslNMDOes8FwINgKZ42nZ3uOnt+LQt/YzIlYvWPm0zTzgbKqSfdFlqsnmLsvhAMQJLgU3vweAQ4gVNYUrfMObHVhaPbo7kR4Ro7l8PsRqI8cO8c0Xx/+R4iF5zsqD1mHaCSOwqsKFNL6kZ8OoO7diS2U5D5Q8JP8RqvMoqrJBgfOCN4pFd6yg8r42X7dSncGDlAHSXtqn8Ua50DBXw0Hy4wacq+wmN+Ye1Xx4krAp7ugAya8WmCQmioj3KEAz2cl3pA4z75jcn/lgbstiA== 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:X-MS-Exchange-SenderADCheck; bh=RRtSwXi11jJtd56Q+V6PNSDWtsKi3VIcUNlNgPsrss8=; b=beTzVLOUanFPCPsZijtakL9gzRFpWtq2HEoHgsBn7gua0G69Tsgwq2ZUcQH2sk/QIF/CSEIih2Yrd+RaY8cAbFTF4qGS+Mz294GJZl9nEPDxHPi1L+ZNh6Pqck9Vgj7dTf1UdJuS9L9fO3OsYIjJvHQl0RBKS57xw5deO3v8wETC7k8uRhgv3WMBbm1923y6S/qCE1eBoOCmTMGFJUdFBjAuHiynwPwjPbyBSWjYnVjgEROAFYutCuOQmUobtSIzbfoaEVLjchZuWRzj7ll6ydoGofdtz9vCs3fXYpQsKF8IxDTVJc1iI1NDNO7mn1n1DFJ3aHfb45MDQPQ/U2VLrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RRtSwXi11jJtd56Q+V6PNSDWtsKi3VIcUNlNgPsrss8=; b=Ey3SbaLhBtewZiKqf+J05V2p2AyGuy3AUyoNql+pcUyoozzjpbiFAI8DzHSCNYwE9i6w2rdreZMLSLJguAmHDuJj7LJsvOn3gT4tpHUdKFltGivK+iGTB+b5MzYAngqfgwSJ3jw4nldSSo5Rxr6gHwtvfqr5c8IMAn2hu4SuTs8= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB3PR0402MB3913.eurprd04.prod.outlook.com (2603:10a6:8:3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 02:08:40 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701%4]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:08:40 +0000 From: Peng Fan To: sbabic@denx.de, marex@denx.de, lukma@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Ye Li , Peng Fan Subject: [PATCH 3/7] f_sdp: Fix wrong usb request size Date: Mon, 29 Jun 2020 10:32:54 +0800 Message-Id: <20200629023258.25452-3-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200629023258.25452-1-peng.fan@nxp.com> References: <20200629023258.25452-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Mon, 29 Jun 2020 02:08:37 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6a6f5a54-0db5-44d9-ea90-08d81bd15752 X-MS-TrafficTypeDiagnostic: DB3PR0402MB3913: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2399; X-Forefront-PRVS: 044968D9E1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Jq7GrQkqw89zPZRpmKJI2QmgmNPSUFPL4SnIHLhfSa0oKCoT6U2rJjGlCTCatG/69WCpF+L8d1UXTqDvPgVwZgpVbMgteW1Gg89QfNrbESq9NcC8HIy47jAs1DKH69ylmZX9VX7o2XT5PZiqU7KGZEZqphHHneRPlJX8/M5nYUFVWhuKsaU8xqxjfgJhM1beN27tQwnp1FMYmphv+1hirj2fHFqF5B380dR2GhtK5hkSa3/LUEOgc/dJGX2inZ7NQcCeRPB4Rhe8EQRJExkRHIaJPr4YVc59r4YleCC714HB15mzl+3SOrwGHAhnsaoP6wvRuYljku0XSBg/xbGL/Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(366004)(396003)(346002)(376002)(6486002)(6666004)(86362001)(52116002)(54906003)(66946007)(4744005)(5660300002)(316002)(2906002)(66476007)(66556008)(1076003)(26005)(4326008)(36756003)(6512007)(8676002)(186003)(83380400001)(16526019)(6506007)(478600001)(44832011)(956004)(8936002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 46MlTXdsrRTM3MXeCiqT0RUV5AbCsEu/jR9Sx6HYty11QKcFSsb4BSexXshIoBj2KuhKvTr9gzBOQSQ6TMn5Yp/Ngz4GuFpxoQh4pdXqyisHajGWpYy7aKZlYGyJm1C/7BRt5H+hdJufCiFVdy5QTDmsyi7Jj/plf14tRzIB9IdVNyfbA+wzyjCATWR6C0at7EwM+92KXojW6Lb/x7RhzqQbTLXIS2vJXbkMKjJofSZRNacz66ZY2esiLV8TJEQL7cb5JSaxRbJJZudvOjHUkSO2DWlkGrWOURsMRnGANy+Hq8ckGaYTSF4sGAbP+hZQwRrYeryIm6Gt7dtscwnwC7EH9XndaBoTOVbKn8LaCY25diqTRBRwvmglwSdzbwFtqIqlDJxmbSIIhc0c4obO/Tz/HuPgo0jy29JS8UPXUJoN9Bs/+02WWTgyoMAp9GcNDK607JagywS//z4XHb2BVI9iSZvDeIVNMZEIZdRs50UXKgEhUGwIRx2AER4A5wmP X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a6f5a54-0db5-44d9-ea90-08d81bd15752 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2020 02:08:40.3970 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: D5GVTO/zmTmF4bcbZRIF5l/HgS7UlhLyhMbsGeSExCfVB+A0QI/ykHJUSbbh2dACRGSlsj1Q8H7uqdBjnXLldQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3913 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Because the buffer length of sdp usb request is 65, we have to allocate 65 bytes not 64 bytes. Otherwise there is potential buffer overflow. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- drivers/usb/gadget/f_sdp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c index f971ccdeca..eec7560fc2 100644 --- a/drivers/usb/gadget/f_sdp.c +++ b/drivers/usb/gadget/f_sdp.c @@ -548,7 +548,7 @@ static struct usb_request *sdp_start_ep(struct usb_ep *ep) { struct usb_request *req; - req = alloc_ep_req(ep, 64); + req = alloc_ep_req(ep, 65); debug("%s: ep:%p req:%p\n", __func__, ep, req); if (!req) From patchwork Mon Jun 29 02:32:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1318718 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=AE5aMHlN; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49w9tJ4kc5z9sRk for ; Mon, 29 Jun 2020 12:10:00 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 254F981F0C; Mon, 29 Jun 2020 04:09:51 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="AE5aMHlN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E644781EB0; Mon, 29 Jun 2020 04:09:26 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0612.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::612]) (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 3140F81EF2 for ; Mon, 29 Jun 2020 04:08:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KxbTTCqKBb5g7aM1WM+cVxMxeIazl+z4z5cBKAQQi3SkF4zliBAxuhHDJ7pb/0vC+iUKeu9W5R9IL3fIpp+ploGetlcCyjlcSi0CcdEUJN9LUY/9T+7vQVKwHBK6h25Nmk3hlula5KNJ39qW2pOocZD5bKgRyUk1BNgvYlXGDNtoKzKreY4E1M7/66nzjsgmGYKY4EWZZnIWChzuX66FJmf947kH+kQbXAtJLpOffr2Pin+N0VmD2bw0nC8Nzz0ADfaN63ZdsnIVnohzRNJD1jkAdDkoSvVMKwXSX1j3t9QEk2AMnCxpFw+6x7J82EZaVKazUSZSaL14n2vSsYQVNw== 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:X-MS-Exchange-SenderADCheck; bh=KuQUKf8YIJkEg1bHKCcTeKcmhX/wwqaqNYcVrxWL7a8=; b=cmk/aJuwxjZh9zNO2hXL4CaiSGbxRBpb8UW3+DEf2YZJGNVSJoa+vTsD8+gTkcmF2pkWy72nfSUh1RzdzT+FOHBNpqc9V4hXzqfBs4pKEW7k2ZzAyCAgsIcLVjvf4PS+gL9oXSgh2oyft03tqspPN/aSnTX81e9P4hpRet2mvfJsrGMgyU1bpO/foUGxls2abiI5OQtT4+3PXiCY9jpEXdsxZdoGLG3ctEVbeaHUWs9QopDdvMj3SaetWAqGvQKKwUPO0zrkHho5QAyoUSXw1KFJPXfuWh40eTXS2KW/nidcdI78VYPoaVvVYGpkfiWJNPzPucmVhfCVI0JJvtbF/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KuQUKf8YIJkEg1bHKCcTeKcmhX/wwqaqNYcVrxWL7a8=; b=AE5aMHlNQyNAxLzTp1i/+hL44MNpHEbuznUi+y3IBM0XN0QXPxYhdmpwioTnRXlfHklpB0uvrKkuQpT9gpBDF7lV6+W7SfAZVsMbVToVMXQ06peqyL/NKHTTCvWLCO5eBAWCutFHBBSGI2inAODoP97x6/+eSLJqHusDtRSdN/Y= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB3PR0402MB3913.eurprd04.prod.outlook.com (2603:10a6:8:3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 02:08:43 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701%4]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:08:43 +0000 From: Peng Fan To: sbabic@denx.de, marex@denx.de, lukma@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Peng Fan Subject: [PATCH 4/7] f_sdp: Support searching and loading FIT or container image Date: Mon, 29 Jun 2020 10:32:55 +0800 Message-Id: <20200629023258.25452-4-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200629023258.25452-1-peng.fan@nxp.com> References: <20200629023258.25452-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Mon, 29 Jun 2020 02:08:40 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 92994ccb-c492-45b8-560b-08d81bd158f8 X-MS-TrafficTypeDiagnostic: DB3PR0402MB3913: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3513; X-Forefront-PRVS: 044968D9E1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VW57MdzT6EZRm8bfAaGvPMIPv01vHnbywljf0LbiStc7YCat24e28RFhDOcQDhf2Npd5Hi9jgiKq06gK8smCf+eL8vmHdJzBn2um8FABq0a7BJpH2F2amr9+tcUJsM0NJyMakz44fr6M5861xFRdQJjpzwc4tBkw8C637MtfOjQzdol2tPQn23PL17N20bB/1LGqtH1mE59XYe4kh+cvWSnAEUVOsnssHIH2yrBxp26yywzhePs3ctQ947ewPH+aSdcrZX676qtDhEZ+/ALmKqohJ1I713g2WyrCoBapTY7kRJ74VemJ8ll6xkbWW6kxtZI1CFM2Ie6OZDG+kP4R9Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(366004)(396003)(346002)(376002)(6486002)(6666004)(86362001)(52116002)(66946007)(5660300002)(316002)(2906002)(66476007)(66556008)(1076003)(26005)(4326008)(36756003)(6512007)(8676002)(186003)(83380400001)(16526019)(6506007)(478600001)(44832011)(956004)(8936002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: GrbZXAkSTQOQDr7oNupdfXFotRGwNINa++EcTY+rwj2e8soArthzhxljuCu3kMp4dvEs2+l250Pk3gjD+TRcPSW3TXExNnvs+jmpSjBHbAx6fZBE21PQ58DzHsbCwUKznJwDshdd662mBhb64BxZiqrf6i8QNY4qjyAhDe0Rlz86UNjyULOB2OWae4LSeRrcqQaByFR5zX1rTSLyo2Pj17A3FkiIZjBurCN2j2o9IAbENdaGj8GHD1jhDoIfACWGyy27BSKtGbLJP8Nex2tlkx09+1xFtrbOZ/iV6FwzWB7UYlk1IktoHOhe/Gr69l62x91/3HSntEvnbbY2asrNwa9xTqmhoaILILmCTszK88ryevS/XlPJaspqKxwSBXg3FwX58Xa3cB9pYb3zws6f9tw8MAQI6x44JhotkCjczfPzds0CS1b1CLIMjJld6hLbR0m4ijryPduYfmM9TjLbylG7kV6wBoVINbGjLxDLKhmRICyLMeKvzxdwgB+YpkVM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92994ccb-c492-45b8-560b-08d81bd158f8 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2020 02:08:43.0058 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Jycqi1qVQYBB/CRGC5xhIMztU+Nr24SFOSMV3QL/eP8h2LapfNV2Wid1Z01Zn0nL5075WNvP4t+EBObvPcy7BA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3913 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean Add support to f_sdp to search and load iMX8 container image or iMX8M FIT image by new UUU command SDPV. When using the SDPV, the uuu will continue to send out data after first level boot loader used by ROM. This means uuu won't skip to the offset of the second boot loader, and the padding data before second boot loader will be sent out. So we have to search the FIT header or container header in the buffer that SDP received. Also change to more common method to exit f_sdp handler not depending on SPL_FIT_FOUND flag because container loader won't set this. Signed-off-by: Peng Fan --- drivers/usb/gadget/f_sdp.c | 72 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 13 deletions(-) diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c index eec7560fc2..9f5dab23d7 100644 --- a/drivers/usb/gadget/f_sdp.c +++ b/drivers/usb/gadget/f_sdp.c @@ -71,6 +71,8 @@ struct hid_report { #define SDP_COMMAND_LEN 16 +#define SDP_EXIT 1 + struct sdp_command { u16 cmd; u32 addr; @@ -667,19 +669,42 @@ static u32 sdp_jump_imxheader(void *address) } #ifdef CONFIG_SPL_BUILD -#ifdef CONFIG_SPL_LOAD_FIT -static ulong sdp_fit_read(struct spl_load_info *load, ulong sector, - ulong count, void *buf) +static ulong sdp_load_read(struct spl_load_info *load, ulong sector, + ulong count, void *buf) { debug("%s: sector %lx, count %lx, buf %lx\n", __func__, sector, count, (ulong)buf); memcpy(buf, (void *)(load->dev + sector), count); return count; } -#endif -#endif -static void sdp_handle_in_ep(struct spl_image_info *spl_image) +static ulong search_fit_header(ulong p, int size) +{ + int i; + + for (i = 0; i < size; i += 4) { + if (genimg_get_format((const void *)(p + i)) == IMAGE_FORMAT_FIT) + return p + i; + } + + return 0; +} + +static ulong search_container_header(ulong p, int size) +{ + int i; + u8 *hdr; + + for (i = 0; i < size; i += 4) { + hdr = (u8 *)(p + i); + if (*(hdr + 3) == 0x87 && *hdr == 0) + if (*(hdr + 1) != 0 || *(hdr + 2) != 0) + return p + i; + } + return 0; +} + +static int sdp_handle_in_ep(struct spl_image_info *spl_image) { u8 *data = sdp_func->in_req->buf; u32 status; @@ -731,6 +756,16 @@ static void sdp_handle_in_ep(struct spl_image_info *spl_image) /* If imx header fails, try some U-Boot specific headers */ if (status) { #ifdef CONFIG_SPL_BUILD + if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) + sdp_func->jmp_address = (u32)search_container_header((ulong)sdp_func->jmp_address, sdp_func->dnl_bytes); + else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT)) + sdp_func->jmp_address = (u32)search_fit_header((ulong)sdp_func->jmp_address, sdp_func->dnl_bytes); +#endif + if (sdp_func->jmp_address == 0) + panic("Error in search header, failed to jump\n"); + + printf("Found header at 0x%08x\n", sdp_func->jmp_address); + image_header_t *header = sdp_ptr(sdp_func->jmp_address); #ifdef CONFIG_SPL_LOAD_FIT @@ -740,13 +775,23 @@ static void sdp_handle_in_ep(struct spl_image_info *spl_image) debug("Found FIT\n"); load.dev = header; load.bl_len = 1; - load.read = sdp_fit_read; + load.read = sdp_load_read; spl_load_simple_fit(spl_image, &load, 0, header); - return; + return SDP_EXIT; } #endif + if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) { + struct spl_load_info load; + + load.dev = header; + load.bl_len = 1; + load.read = sdp_load_read; + spl_load_imx_container(spl_image, &load, 0); + return SDP_EXIT; + } + /* In SPL, allow jumps to U-Boot images */ struct spl_image_info spl_image = {}; spl_parse_image_header(&spl_image, header); @@ -769,6 +814,8 @@ static void sdp_handle_in_ep(struct spl_image_info *spl_image) default: break; }; + + return 0; } #ifndef CONFIG_SPL_BUILD @@ -777,6 +824,7 @@ int sdp_handle(int controller_index) int spl_sdp_handle(int controller_index, struct spl_image_info *spl_image) #endif { + int flag = 0; printf("SDP: handle requests...\n"); while (1) { if (ctrlc()) { @@ -784,18 +832,16 @@ int spl_sdp_handle(int controller_index, struct spl_image_info *spl_image) return -EINVAL; } -#ifdef CONFIG_SPL_BUILD - if (spl_image->flags & SPL_FIT_FOUND) + if (flag == SDP_EXIT) return 0; -#endif WATCHDOG_RESET(); usb_gadget_handle_interrupts(controller_index); #ifdef CONFIG_SPL_BUILD - sdp_handle_in_ep(spl_image); + flag = sdp_handle_in_ep(spl_image); #else - sdp_handle_in_ep(NULL); + flag = sdp_handle_in_ep(NULL); #endif } } From patchwork Mon Jun 29 02:32:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1318719 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=dIEiMk5V; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49w9td0Mlvz9sQt for ; Mon, 29 Jun 2020 12:10:16 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BD0C981F0D; Mon, 29 Jun 2020 04:09:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="dIEiMk5V"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6714A81EB0; Mon, 29 Jun 2020 04:09:29 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,KHOP_HELO_FCRDNS,MSGID_FROM_MTA_HEADER, T_SPF_HELO_TEMPERROR,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0612.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::612]) (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 ACB2F81F05 for ; Mon, 29 Jun 2020 04:08:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gn3gSsfG+vXsf6+RGNXc5TlxG9pocAjAwaeQhgpuMMaJ+SjuPUNp0DY9qQagJ04RWIIB7MVwqqQOL344mNt3hPjUCylAXDBQinETUgoQ+a+AZXmaNCAEqT4WVRs9Ar7wSmu2b/hogjR6JhV7k53Ez96nRAakXDnWz6BC38r003kA+mdKJigj7VF2VisZGtCFZtElAqsLmecxO0UWTv81PeJxjouQ22oDMM2lqbjMzIMSKJPIgBFLqqXMXIZCFWh2RfTuDlLmB5m31zqDyEZbfxrRfYD8MeHkp7dhNFShOHKUrPtrdyuL7GrZP7YyUWa5bT63dl4OPuP3nMZXfTAs7g== 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:X-MS-Exchange-SenderADCheck; bh=MFNKsJJOBx7K2wYBhOyEiPNsIvQ7mKJ4IkMQwrz9jgI=; b=myTUenpkEhhPlmgNhVGJo7645uUbxrwNfKTu7yIw7NII+tAzC9cDtRn4eAUIdjlZG4kl7YjSEmCInwx0yffRikekFaig7HVpHwOPRNZ0rGXext26gca3fzuGa58yaTGSpcLoe7Ov0xYZkmGkXF15UQpE1UjzQjrbIqStJzTcj7TjHaXOdFGX8mGLyehi9MSYkjTMcc03S6zVIHcGWJCwmkKNRy9rwZC2QHHbwDei0aIW02rJakwJKjdHtabkHKSKbVEtGVtAVAj0yC5MjboH2/6wEdhgY8p6P5/9OJ7Imvbx/7KCBwG/ipN1GBrhNoiz4pPTtWVWGc7AaKaeM3ig/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MFNKsJJOBx7K2wYBhOyEiPNsIvQ7mKJ4IkMQwrz9jgI=; b=dIEiMk5VZg+lb+F2zAWzS6Oyg+u9EBCvdl+sy2VKbP3RgX3z6YtOvNWvvegKAUNe28AsryStI6RDzv793jyEO1l0TA7JHvm4a/WK3k4y+l/ryRpFLgtcPe5s9oF/w0AJKbmFPO99Qqc0dDwRMQcah6CZwlOwQM6wTdVtBSyubA0= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB3PR0402MB3913.eurprd04.prod.outlook.com (2603:10a6:8:3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 02:08:45 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701%4]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:08:45 +0000 From: Peng Fan To: sbabic@denx.de, marex@denx.de, lukma@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Peng Fan Subject: [PATCH 5/7] spl: add g_dnl_get_board_bcd_device_number Date: Mon, 29 Jun 2020 10:32:56 +0800 Message-Id: <20200629023258.25452-5-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200629023258.25452-1-peng.fan@nxp.com> References: <20200629023258.25452-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Mon, 29 Jun 2020 02:08:43 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: fdfdd2f1-4a34-4876-9240-08d81bd15a8f X-MS-TrafficTypeDiagnostic: DB3PR0402MB3913: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1360; X-Forefront-PRVS: 044968D9E1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZrMNaG39cETCgYb4EX/oWghcxlhxUIjgKEAV21nBkzE26rRgBGT8mFGJQ2veVjBlK3MnrrTpJmkV2N7hsC7yHA2BtWNbyEjS62+bAMpDhZS3vNf3Jro7Wi+O3IJKkHEYmAZxe1Lk+XP3GGl6f3GgNnafjQJ+4wsQXFSyTxjt1ofZQPBuO4YXSpQt9zIqH7hQe9RmS8nO1RbGKEAfjgkbImwQuZyqrq4rixuXwcSkfxaLtjD4D0YhepPzRFA1SCcImaIqAYBjy55SSvun2B7RwNM2IK1QyuUcLw7lTtRxK/3SpejTcbHVLzLam2fV4yo30T9V0uDb+hF05ta62EOmNQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(366004)(396003)(346002)(376002)(6486002)(6666004)(86362001)(52116002)(66946007)(4744005)(5660300002)(316002)(2906002)(66476007)(66556008)(1076003)(26005)(4326008)(36756003)(6512007)(8676002)(186003)(16526019)(6506007)(478600001)(44832011)(956004)(8936002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: kLwWm4JkGQNh5Ra6Ubs/BIxb5GaymtiJKYAcpXvQgIFZKxsAFVS7oTRKKIeFOkPiMxv1BvC2Ig1CgV4OA086RuSaSSglieA8CZsCaZEHa+o9jmNTwpzsPgJNffEwRIlx8KGxa8swQKNt2R4jrQ/VJmWaq/WgrFABQnlsGUQUhGVIanOZBN8UGzeMJmL1DqM4FbDzmS12tx1TKEdJY4FrIHFmMqARzm9zu7xJvRn9BiwmYEV1og31C3hMq8N8miXBdzRims+cf1rdEMyZ23o15TT5szodTN9fVD9T5p4B/CGWYi11e9Grtu+96mykcoa779OKratzhVBwkqWLvJ+2nezh4rB/GtE23HA238hQwNifS5JahZEYTC77IJ8+aY6/uRpRDrBof039DbATQ0gDqO8eZtlg4g9SWcoyvSD/V/lhWvMee7O5UILgFCJrFn6nWY5v2HZsiHDVKnOvyjNT61T4R5raHlgsC/OJVhhjlBPgeEpYFVdPviosHeqXrgsQ X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fdfdd2f1-4a34-4876-9240-08d81bd15a8f X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2020 02:08:45.7817 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uwyYLacm64eb/PcZdp0AdPtw2AhWuabcEM3ZXAOA0b4XX4ltO8p9GlSbt6/dN7c83nscu3f0054HlJAjOKnYlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3913 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean Add g_dnl_get_board_bcd_device_number, the new BCD value is used by uuu to distinguish if the SPL supports the SDPV. Signed-off-by: Peng Fan --- arch/arm/mach-imx/spl.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c index 1a231c67f5..8c0596d1e1 100644 --- a/arch/arm/mach-imx/spl.c +++ b/arch/arm/mach-imx/spl.c @@ -187,6 +187,12 @@ int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) return 0; } + +#define SDPV_BCD_DEVICE 0x500 +int g_dnl_get_board_bcd_device_number(int gcnum) +{ + return SDPV_BCD_DEVICE; +} #endif #if defined(CONFIG_SPL_MMC_SUPPORT) From patchwork Mon Jun 29 02:32:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1318722 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=sjNcmXFG; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49w9vT3JHMz9sQt for ; Mon, 29 Jun 2020 12:11:01 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C766281EE7; Mon, 29 Jun 2020 04:10:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="sjNcmXFG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0BE2A81EE2; Mon, 29 Jun 2020 04:09:40 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,KHOP_HELO_FCRDNS,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0612.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::612]) (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 D0EDF81F06 for ; Mon, 29 Jun 2020 04:08:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OmDYSK4MM0+ZF3H0gqtUY08wdVSCTP5VPia8SfkzD27kOrLnsoQvsszfNgOo+Abv125LNFADUu8dZMqm719ggp6by3ueb+TdVbU+kM5l/M3KdajTGxp1wLgwSB6sHy1GADxRNk+mUMwzS2NJSB9dcYBsm6ihuHa/QJlUkQeyRsat4gDVFnGa6sOILN+aDu76s6sS584QIHqax17G4p9dcWbCN6s5jE8r1nbMzr8lK3TdITNW+koX/dUuD2pqTayWwSItuVpLwMqUH6cFhmS2Fy9/pm9dJ2mxbGOogiatqR93tfU7sKW7D4JvHgi9IafauMvFOXgDt2jmBwCwoWPgmQ== 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:X-MS-Exchange-SenderADCheck; bh=4xhp7dhA4y8nUdLHV5e7MPrkUt16yYMcxArL5GrPhC8=; b=DIVJJOSygRzWeeS6U4SplhrvbjXcZLSq7ZnjEDYp0Ft/8rehpZ+rvHsOoBFtKVESIKaRd7sVEWY1SIX+xOyTotddmCVo7u4xulWAyqgqMAQC9yTUVvUoKM/90VWZpWrMoojiD5d64c1a7Qaf2oG/MY9b29TeS/bJf/ABeoerq9+GXdV1vhX4kJoQ616+H8llpRMAVD6QxIRY2G8yz/vTidZJeHQOnFxZakToysoXTfQTEKlynOOWQk7CxS1tS2J7kkc7XAPrph4DZg7BbZquP54JdqG8sHDVJRk+QD15x5CWObZgLrrt1NI/6l205zszamW2NgMbVj/AB1U1TOZQhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4xhp7dhA4y8nUdLHV5e7MPrkUt16yYMcxArL5GrPhC8=; b=sjNcmXFGQQtIvejxMxd9lcy4STKXhsBKZB6CXePzEoaGTRMfywDXkBJdB6iM0njuAeLnA9NRv0qic5H98tIwLMEv9w/XYAHkWgZazo8aPcYa10djKzZg67yNiuEosOT8mdKui6Z3KNn1U8KJN3jAIZtZw2U6EEqEVyiyyI3A8kw= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB3PR0402MB3913.eurprd04.prod.outlook.com (2603:10a6:8:3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 02:08:49 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701%4]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:08:49 +0000 From: Peng Fan To: sbabic@denx.de, marex@denx.de, lukma@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Sherry Sun , Peng Fan Subject: [PATCH 6/7] f_sdp: Add EP1_OUT as default data receive pipe in sdp Date: Mon, 29 Jun 2020 10:32:57 +0800 Message-Id: <20200629023258.25452-6-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200629023258.25452-1-peng.fan@nxp.com> References: <20200629023258.25452-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Mon, 29 Jun 2020 02:08:46 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 76175cef-7d75-467d-2b72-08d81bd15c70 X-MS-TrafficTypeDiagnostic: DB3PR0402MB3913: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3826; X-Forefront-PRVS: 044968D9E1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8p6FI5ZdV4UkN/oRyrofV2GXj+ZfexkkOIgo2jDb54VCf8Z3bD0BapX40reId36XVsT1W71OBSi/NfUutKkXCT4Xa/+Tp87eQbHvxtGNI+o0tLMZNW9KT9VpdeIde+7XHExTQQQ+jDnFXrWKwEG15wul6hzZ/kKdTe9PDbCiBDOCgrkiUe1oEtydJUOYS+KfDOB8/t8MadyjCecNPuqrNRF04O3fu2JYG2NUHevSkX8gEyFNZ9lwZzTCgjVB4LEhXUXk45Z01s62AHx/zbbJ9PRFC8g0WOfpmoi3Huwt0c5g6kvU9TZhXh04GwNa557Wk3+BSV6IH3QvK00w1DztekqoJUSGbK0t7OSIG0r3kOaQAD9/FsnlGo8ApVxSnM5THBfXWTep2MgkzwsWtTAz7Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(366004)(396003)(346002)(376002)(6486002)(6666004)(86362001)(52116002)(54906003)(66946007)(5660300002)(316002)(2906002)(66476007)(66556008)(1076003)(26005)(4326008)(36756003)(6512007)(8676002)(186003)(83380400001)(16526019)(6506007)(478600001)(44832011)(956004)(8936002)(2616005)(473944003)(414714003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: eSiqwD/9DjYT46yD/Z+B6gthYRhvwuqzzkLf3NBF7LCxemMEuqhzEOjlPep8qHgkfzMbruerUvgm0DRuYmOXlt6Zdn63yyT3n04mv73RHFtS/7JYU14LpkYumqD99W7ex8/Bt+jW1w7HVnOcav9NCggHb5olprudgtAhpKKPLUJp7BobyfY6AxJQ62DZIuCF88EKSPNWow7OECUz86pwItAZ1FSjiYh3uSDUUvPaSwVhc7jaX5FpwaGswtLKruIuE3K25jY0XI3nfoj64GCM1/99FD1U14u/Dvn9Z2IrtkdgC4YwAc2vhaVhMpcSbgayRe/LsVOsMiGnhQYyKab9fr3reIJdaq7AXYfC0fR5jFZTlWNPSHhyA4k23NIIvxBNLaUKUT5cOv42un1UktT2DmlWq7/QnkK+GV5irmBS+bCNbgHdA6tOXDQB1M/YwvbHd0Se4NGjSaBYd+iRKAAjYjDMe241GaYo5CpYsRSrzNMMkO02sNyWr4+RMOgCLc7A X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76175cef-7d75-467d-2b72-08d81bd15c70 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2020 02:08:48.9453 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4rlZildkTk9Um3SkwRHK9fvznZt75GLN5KrO1PFfx3Uw8XG5Gjz7gw8F4IdDKcOTcpomQRF5p9fOSII8W2qPhw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3913 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean From: Sherry Sun EP0 has been used to transfer file data in sdp before, but the max packetsize of ep0 is 64 bytes. So in order to improve the file transfer speed, here add the EP1_OUT interrupt endpoint which max packetsize is set to 1024 byte. After testing, it turns out that using ep1out is twice as fast as using ep0 while receiving data in sdp. Signed-off-by: Sherry Sun Reviewed-by: Ye Li Signed-off-by: Peng Fan --- drivers/usb/gadget/f_sdp.c | 123 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 107 insertions(+), 16 deletions(-) diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c index 9f5dab23d7..4e33be6ada 100644 --- a/drivers/usb/gadget/f_sdp.c +++ b/drivers/usb/gadget/f_sdp.c @@ -71,6 +71,8 @@ struct hid_report { #define SDP_COMMAND_LEN 16 +#define SDP_HID_PACKET_SIZE_EP1 1024 + #define SDP_EXIT 1 struct sdp_command { @@ -84,8 +86,10 @@ struct sdp_command { enum sdp_state { SDP_STATE_IDLE, + SDP_STATE_RX_CMD, SDP_STATE_RX_DCD_DATA, SDP_STATE_RX_FILE_DATA, + SDP_STATE_RX_FILE_DATA_BUSY, SDP_STATE_TX_SEC_CONF, SDP_STATE_TX_SEC_CONF_BUSY, SDP_STATE_TX_REGISTER, @@ -116,8 +120,12 @@ struct f_sdp { /* EP1 IN */ struct usb_ep *in_ep; struct usb_request *in_req; + /* EP1 OUT */ + struct usb_ep *out_ep; + struct usb_request *out_req; bool configuration_done; + bool ep_int_enable; }; static struct f_sdp *sdp_func; @@ -131,7 +139,7 @@ static struct usb_interface_descriptor sdp_intf_runtime = { .bLength = sizeof(sdp_intf_runtime), .bDescriptorType = USB_DT_INTERFACE, .bAlternateSetting = 0, - .bNumEndpoints = 1, + .bNumEndpoints = 2, .bInterfaceClass = USB_CLASS_HID, .bInterfaceSubClass = 0, .bInterfaceProtocol = 0, @@ -161,6 +169,16 @@ static struct usb_endpoint_descriptor in_desc = { .bInterval = 1, }; +static struct usb_endpoint_descriptor out_desc = { + .bLength = USB_DT_ENDPOINT_SIZE, + .bDescriptorType = USB_DT_ENDPOINT, /*USB_DT_CS_ENDPOINT*/ + + .bEndpointAddress = 1 | USB_DIR_OUT, + .bmAttributes = USB_ENDPOINT_XFER_INT, + .wMaxPacketSize = 64, + .bInterval = 1, +}; + static struct usb_endpoint_descriptor in_hs_desc = { .bLength = USB_DT_ENDPOINT_SIZE, .bDescriptorType = USB_DT_ENDPOINT, /*USB_DT_CS_ENDPOINT*/ @@ -171,10 +189,21 @@ static struct usb_endpoint_descriptor in_hs_desc = { .bInterval = 1, }; +static struct usb_endpoint_descriptor out_hs_desc = { + .bLength = USB_DT_ENDPOINT_SIZE, + .bDescriptorType = USB_DT_ENDPOINT, /*USB_DT_CS_ENDPOINT*/ + + .bEndpointAddress = 1 | USB_DIR_OUT, + .bmAttributes = USB_ENDPOINT_XFER_INT, + .wMaxPacketSize = SDP_HID_PACKET_SIZE_EP1, + .bInterval = 1, +}; + static struct usb_descriptor_header *sdp_runtime_descs[] = { (struct usb_descriptor_header *)&sdp_intf_runtime, (struct usb_descriptor_header *)&sdp_hid_desc, (struct usb_descriptor_header *)&in_desc, + (struct usb_descriptor_header *)&out_desc, NULL, }; @@ -182,6 +211,7 @@ static struct usb_descriptor_header *sdp_runtime_hs_descs[] = { (struct usb_descriptor_header *)&sdp_intf_runtime, (struct usb_descriptor_header *)&sdp_hid_desc, (struct usb_descriptor_header *)&in_hs_desc, + (struct usb_descriptor_header *)&out_hs_desc, NULL, }; @@ -347,7 +377,7 @@ static void sdp_rx_data_complete(struct usb_ep *ep, struct usb_request *req) int status = req->status; u8 *data = req->buf; u8 report = data[0]; - int datalen = req->length - 1; + int datalen = req->actual - 1; if (status != 0) { pr_err("Status: %d\n", status); @@ -370,13 +400,15 @@ static void sdp_rx_data_complete(struct usb_ep *ep, struct usb_request *req) sdp->dnl_bytes_remaining -= datalen; } - if (sdp->state == SDP_STATE_RX_FILE_DATA) { + if (sdp->state == SDP_STATE_RX_FILE_DATA_BUSY) { memcpy(sdp_ptr(sdp->dnl_address), req->buf + 1, datalen); sdp->dnl_address += datalen; } - if (sdp->dnl_bytes_remaining) + if (sdp->dnl_bytes_remaining) { + sdp->state = SDP_STATE_RX_FILE_DATA; return; + } #ifndef CONFIG_SPL_BUILD env_set_hex("filesize", sdp->dnl_bytes); @@ -384,7 +416,7 @@ static void sdp_rx_data_complete(struct usb_ep *ep, struct usb_request *req) printf("done\n"); switch (sdp->state) { - case SDP_STATE_RX_FILE_DATA: + case SDP_STATE_RX_FILE_DATA_BUSY: sdp->state = SDP_STATE_TX_SEC_CONF; break; case SDP_STATE_RX_DCD_DATA: @@ -465,10 +497,12 @@ static int sdp_setup(struct usb_function *f, const struct usb_ctrlrequest *ctrl) case 1: value = SDP_COMMAND_LEN + 1; req->complete = sdp_rx_command_complete; + sdp_func->ep_int_enable = false; break; case 2: value = len; req->complete = sdp_rx_data_complete; + sdp_func->state = SDP_STATE_RX_FILE_DATA_BUSY; break; } } @@ -499,11 +533,17 @@ static int sdp_bind(struct usb_configuration *c, struct usb_function *f) return id; sdp_intf_runtime.bInterfaceNumber = id; - struct usb_ep *ep; + struct usb_ep *ep_in, *ep_out; /* allocate instance-specific endpoints */ - ep = usb_ep_autoconfig(gadget, &in_desc); - if (!ep) { + ep_in = usb_ep_autoconfig(gadget, &in_desc); + if (!ep_in) { + rv = -ENODEV; + goto error; + } + + ep_out = usb_ep_autoconfig(gadget, &out_desc); + if (!ep_out) { rv = -ENODEV; goto error; } @@ -511,9 +551,11 @@ static int sdp_bind(struct usb_configuration *c, struct usb_function *f) if (gadget_is_dualspeed(gadget)) { /* Assume endpoint addresses are the same for both speeds */ in_hs_desc.bEndpointAddress = in_desc.bEndpointAddress; + out_hs_desc.bEndpointAddress = out_desc.bEndpointAddress; } - sdp->in_ep = ep; /* Store IN EP for enabling @ setup */ + sdp->in_ep = ep_in; /* Store IN EP for enabling @ setup */ + sdp->out_ep = ep_out; cdev->req->context = sdp; @@ -546,18 +588,29 @@ static struct usb_request *alloc_ep_req(struct usb_ep *ep, unsigned length) } -static struct usb_request *sdp_start_ep(struct usb_ep *ep) +static struct usb_request *sdp_start_ep(struct usb_ep *ep, bool in) { struct usb_request *req; - req = alloc_ep_req(ep, 65); + if (in) + req = alloc_ep_req(ep, 65); + else + req = alloc_ep_req(ep, 2048); +/* + * OUT endpoint request length should be an integral multiple of + * maxpacket size 1024, else we break on certain controllers like + * DWC3 that expect bulk OUT requests to be divisible by maxpacket size. + */ debug("%s: ep:%p req:%p\n", __func__, ep, req); if (!req) return NULL; memset(req->buf, 0, req->length); - req->complete = sdp_tx_complete; + if (in) + req->complete = sdp_tx_complete; + else + req->complete = sdp_rx_command_complete; return req; } @@ -570,19 +623,27 @@ static int sdp_set_alt(struct usb_function *f, unsigned intf, unsigned alt) debug("%s: intf: %d alt: %d\n", __func__, intf, alt); - if (gadget_is_dualspeed(gadget) && gadget->speed == USB_SPEED_HIGH) + if (gadget_is_dualspeed(gadget) && gadget->speed == USB_SPEED_HIGH) { result = usb_ep_enable(sdp->in_ep, &in_hs_desc); - else + result |= usb_ep_enable(sdp->out_ep, &out_hs_desc); + } else { result = usb_ep_enable(sdp->in_ep, &in_desc); + result |= usb_ep_enable(sdp->out_ep, &out_desc); + } if (result) return result; - sdp->in_req = sdp_start_ep(sdp->in_ep); + + sdp->in_req = sdp_start_ep(sdp->in_ep, true); sdp->in_req->context = sdp; + sdp->out_req = sdp_start_ep(sdp->out_ep, false); + sdp->out_req->context = sdp; sdp->in_ep->driver_data = cdev; /* claim */ + sdp->out_ep->driver_data = cdev; /* claim */ sdp->altsetting = alt; sdp->state = SDP_STATE_IDLE; + sdp->ep_int_enable = true; return 0; } @@ -599,11 +660,18 @@ static void sdp_disable(struct usb_function *f) struct f_sdp *sdp = func_to_sdp(f); usb_ep_disable(sdp->in_ep); + usb_ep_disable(sdp->out_ep); if (sdp->in_req) { - free(sdp->in_req); + free(sdp->in_req->buf); + usb_ep_free_request(sdp->in_ep, sdp->in_req); sdp->in_req = NULL; } + if (sdp->out_req) { + free(sdp->out_req->buf); + usb_ep_free_request(sdp->out_ep, sdp->out_req); + sdp->out_req = NULL; + } } static int sdp_bind_config(struct usb_configuration *c) @@ -818,6 +886,27 @@ static int sdp_handle_in_ep(struct spl_image_info *spl_image) return 0; } +static void sdp_handle_out_ep(void) +{ + int rc; + + if (sdp_func->state == SDP_STATE_IDLE) { + sdp_func->out_req->complete = sdp_rx_command_complete; + rc = usb_ep_queue(sdp_func->out_ep, sdp_func->out_req, 0); + if (rc) + printf("error in submission: %s\n", + sdp_func->out_ep->name); + sdp_func->state = SDP_STATE_RX_CMD; + } else if (sdp_func->state == SDP_STATE_RX_FILE_DATA) { + sdp_func->out_req->complete = sdp_rx_data_complete; + rc = usb_ep_queue(sdp_func->out_ep, sdp_func->out_req, 0); + if (rc) + printf("error in submission: %s\n", + sdp_func->out_ep->name); + sdp_func->state = SDP_STATE_RX_FILE_DATA_BUSY; + } +} + #ifndef CONFIG_SPL_BUILD int sdp_handle(int controller_index) #else @@ -843,6 +932,8 @@ int spl_sdp_handle(int controller_index, struct spl_image_info *spl_image) #else flag = sdp_handle_in_ep(NULL); #endif + if (sdp_func->ep_int_enable) + sdp_handle_out_ep(); } } From patchwork Mon Jun 29 02:32:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1318721 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=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=QrPVwyr3; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49w9v44SHnz9sQt for ; Mon, 29 Jun 2020 12:10:40 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 40CC181F06; Mon, 29 Jun 2020 04:10:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.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=nxp.com header.i=@nxp.com header.b="QrPVwyr3"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7BD2281EB0; Mon, 29 Jun 2020 04:09:35 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0612.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::612]) (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 1928581F0B for ; Mon, 29 Jun 2020 04:08:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gEy5W3XD2xzKrgvnrFcVUD8wC6FbtF3cVzG6Z9iJrV5l8w81Yu8tFf0uJavcEleSFNT3f9BNL7E68K9NYLxNa7luwHYVf3L/ILmYNlPVVlCVgxfXEvAHaOxSY60eEDvOg0IfGfooLT+p5cs4csMmxXHNdlh7vD1syu+2sg5DWQfR+1bjpX88KDf3Ie/vabkSBAMGpNKuFsLaVpikMxG/0y48AtJVOfSXCFIq1XxD7QFS8KAvfN341cfus57dgN5tZTkQ9cRT/Rs1UjzTUhtdX4s8UJD6Ytqr7Dbn6dlmIO8JDq3BPcx3EyC0sffkYh1b5S8GH/mED8TrVFYiBwuo3Q== 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:X-MS-Exchange-SenderADCheck; bh=N1Tv9mYuPVgoIOlnMjdDnLPViIT1OAxqlw5iepMSvxg=; b=C6sZ9S4EJu5Vqj7fK8aV6DNeF0cya9ePXfELbMuMPr+LZNignLpsfb2qVJbnK89UYtlxJfbuAXgdYCOorOMiDPCLOzMeID1gAxG38PgoQifRMGcpl+KtATnV2Babp6xC4Q2iSzT3jRbm4tzvQ8XPLE6PjCgc4902Ly9peqU9ZbPx3V5MjtplikM7E/9QF0oScqAubZLd/+thMTZEAefRq1Z3QzLIDYy+dHuRUfSg/Lrv5EWugsnCT81ur7veliU1/8k07iUW9S93XUH0+4uOYrISihLVs4R+Wi+D1RPP9+ccS+HiNRmTaBiEjKNye1d3WTjhy5wSgbHwuDsZWbfWpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N1Tv9mYuPVgoIOlnMjdDnLPViIT1OAxqlw5iepMSvxg=; b=QrPVwyr3HqticACWY5vAbzirBJd6Jv1K0iCkAc9TojJF6r8d7DRsgcq7sJ9AEO+0iZJWWlgbuWkyIhKzD/d8gQol0w9q0ZQquiXdC8qERQsRCQ76g/C31tSCdQYekZqSaJOdoLh7n9nolwZZvpsMMV7mNXTjHXSUX3XF4lZj208= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB3PR0402MB3913.eurprd04.prod.outlook.com (2603:10a6:8:3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Mon, 29 Jun 2020 02:08:52 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::2d36:b569:17c:7701%4]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:08:51 +0000 From: Peng Fan To: sbabic@denx.de, marex@denx.de, lukma@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Sherry Sun , Peng Fan Subject: [PATCH 7/7] f_sdp: Change bInterval of interrupt endpoint to 3 Date: Mon, 29 Jun 2020 10:32:58 +0800 Message-Id: <20200629023258.25452-7-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200629023258.25452-1-peng.fan@nxp.com> References: <20200629023258.25452-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR06CA0185.apcprd06.prod.outlook.com (2603:1096:4:1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20 via Frontend Transport; Mon, 29 Jun 2020 02:08:49 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 2a5e2536-17f7-436e-f0fc-08d81bd15e33 X-MS-TrafficTypeDiagnostic: DB3PR0402MB3913: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-Forefront-PRVS: 044968D9E1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lTXvKARgs1Rm35XEOfnrysaG32Da7PMru+DubCyoT1b3ncLaDf6dHzGhhldrzI/azZhPLxUhh9TPnmEIuGVEyLv+zIYxEDB2SKdydEoPmSk0guL2nZeyp4cRmR3d/trnCxddko7oeDVDkouyJlUoJ/HqpDTPk0XMgDsnPY2+xpHWi2oS09P2K6CF8zXAYV4ROwgVd3iUKm10A/5miSFLKTDCBdQOst5/IYoMMulZlF17pE1NamdzECpbNFI8LFaWGg0firz2+WG3Y7wiYQ3JnFGpxcwU7sUNrqeFMHm0HG5pXgij5GLW/Fq5YGrGIqArOho3vEumn8XMEiDp4gBwOQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(136003)(366004)(396003)(346002)(376002)(6486002)(6666004)(86362001)(52116002)(54906003)(66946007)(5660300002)(316002)(2906002)(66476007)(66556008)(1076003)(26005)(4326008)(36756003)(6512007)(8676002)(186003)(83380400001)(16526019)(6506007)(478600001)(44832011)(956004)(8936002)(2616005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: MzTk4h20Nd5tDZs/Wk6tiEVnvqSmbk0swG1QxJLb2HgTyrWXOH1e74B/fuy1S6eeoALkKYGMs9Pud+ovsZ/efCWgPrTgnazSCu+J8rBsTBh3kiA3DI6pThVqQ4NYBu8dx6SSvzSUDTZiFZ0iJP1Hi6dIo8yd8QSdkhyA5KbjyW8pCqGyOUf+VL/aCSpKbFM/gqj4GXYZwtgrhh2otzNoa1/R+2heax706+yA4cuJc1PnBXzh3/NWB5B6oW9c0xoAZyHjyRAa7tEgkvVTpzU8ZpIDW4UVleS3ECemxBUvqHclayggz3XhfdLkjYhOQsAZDeU0fXYzyvLL/gG1/OL/ubJe3h0o1LtNZa6yP8ZL/0+Me+1Zq+ewWggLEZ9yOAzx8m51Sa3E32buaM2NhvbdYZNoYLEXP3H8gBdQux2xqrUs4i9EX7oxl7nnkzmZnuFXgg/datyVIFE3uX9/cNm2wPOFfYq/ra5/uRVvwjzlQ2tutSpyng233wG3YKB5BKx+ X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a5e2536-17f7-436e-f0fc-08d81bd15e33 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2020 02:08:51.9120 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: K4aZmAIe5NE+K9A3aWvRQNNvBSCUd+s+3kvxGXet6nHPvaFN2uQprwwd0KMGf+WUv3y1qbq3ZWhx/+tE8hwsRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3913 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean From: Sherry Sun Since the USB HID limits the maximum bandwidth(3072) for interrupt endpoint transfers, when the bInterval set to 1, we can only support 3 boards to run sdp at the same time. In order to support more boards, change the bInterval of interrupt endpoint to 3, which will not affect the transmission speed. Reviewed-by: Ye Li Signed-off-by: Sherry Sun Signed-off-by: Peng Fan --- drivers/usb/gadget/f_sdp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/f_sdp.c b/drivers/usb/gadget/f_sdp.c index 4e33be6ada..5bde08f707 100644 --- a/drivers/usb/gadget/f_sdp.c +++ b/drivers/usb/gadget/f_sdp.c @@ -186,7 +186,7 @@ static struct usb_endpoint_descriptor in_hs_desc = { .bEndpointAddress = 1 | USB_DIR_IN, .bmAttributes = USB_ENDPOINT_XFER_INT, .wMaxPacketSize = 512, - .bInterval = 1, + .bInterval = 3, }; static struct usb_endpoint_descriptor out_hs_desc = { @@ -196,7 +196,7 @@ static struct usb_endpoint_descriptor out_hs_desc = { .bEndpointAddress = 1 | USB_DIR_OUT, .bmAttributes = USB_ENDPOINT_XFER_INT, .wMaxPacketSize = SDP_HID_PACKET_SIZE_EP1, - .bInterval = 1, + .bInterval = 3, }; static struct usb_descriptor_header *sdp_runtime_descs[] = {