Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp1493958iog; Sat, 18 Jun 2022 10:57:25 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u6lhN04PMZbo6yse4Gfk7kQ/RWuXLIZqtkFK1jcJkqDLvPON9VmRxktmK1zjnuG9wRCnrI X-Received: by 2002:a17:90a:4491:b0:1ea:f4bf:b134 with SMTP id t17-20020a17090a449100b001eaf4bfb134mr14081290pjg.122.1655575045152; Sat, 18 Jun 2022 10:57:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655575045; cv=none; d=google.com; s=arc-20160816; b=jjr7TKPwQAiOZ2HYZ4QGO5a8rcoQe4e22aG1ERlXuugtgK7a4XAvwSKnsrOZD/4a9u LShU75URyuPZZmxR5Le2+q6ybqFR17p4lpaKuLPS8cwH6XoPhepa2nO/GZQ6OJqrUOj3 GAOuvW3ozuz83SqD5eSHXBjKs9gqkBFYidApBX0jHKME/3fRN/JHNbjuuZ+IPvNn6Fwk SrGPX4f3RTxGjwp1OtGAR+q3HgiJSsX8nPyIxgnBdSkOnRTp6LNW0+12wf2d5TIusNW+ RXt3XenN1vbHMIS3X9vKouKOldtNUog/bc1kCdNnEI3+VPHKM7sM4OhPy+RBRqoBx/xY Qh7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:content-disposition :content-transfer-encoding:mime-version:user-agent:date:subject:to :from; bh=a4sDRkpV6PTJ1Y/fZxg87Nw+nIbSzXmOT+4W/DKmt0I=; b=AH3R3xsMSn2hFJ4O4dgd4Z4djTSZ1KfuuFl3mGFJmu9GJGdSJQIcgX1BW2b9NOVG9H XVJ7uM2ZE5i6VlUkDk+E5D6OOCgBJHeXE0/9C2IGElR7LqyWYJOzYUbUIypWoVHBj7GJ scp05kxiGWuSbFWZAgkpPQx2GkDaA8BaflRL9p5iQvJ2HgHbiH9qYA5/rvnOEjW1J0ud 03SjVflSJF4lweLpBAT9eqEPY4idf1WGW5le0IDu2oQj/JAeRg3EBSZAwigwzizn7pkM EBcWGjKhR4/eb+ur8CbiqxYVj9CkLWkv9PXB3LzlQSrLH7nx51JPjKKpS8KK5McWrk7d zHLQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q14-20020a170902bd8e00b0016215c2e4fasi1108017pls.74.2022.06.18.10.57.13; Sat, 18 Jun 2022 10:57:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237249AbiFRRlv (ORCPT + 99 others); Sat, 18 Jun 2022 13:41:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229449AbiFRRlu (ORCPT ); Sat, 18 Jun 2022 13:41:50 -0400 X-Greylist: delayed 402 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sat, 18 Jun 2022 10:41:49 PDT Received: from hosting.gsystem.sk (hosting.gsystem.sk [212.5.213.30]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 38E5712740; Sat, 18 Jun 2022 10:41:49 -0700 (PDT) Received: from [192.168.0.2] (chello089173232159.chello.sk [89.173.232.159]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by hosting.gsystem.sk (Postfix) with ESMTPSA id 909537A021E; Sat, 18 Jun 2022 19:35:04 +0200 (CEST) From: Ondrej Zary To: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Getting Backpack USB drives to work - looking for lost firmware Date: Sat, 18 Jun 2022 19:35:01 +0200 User-Agent: KMail/1.9.10 MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <202206181935.01392.linux@zary.sk> X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,USB_DRIVES autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, I'm trying to get Micro Solutions Backpack USB CD-RW to work and maybe write a simple firmware loader module. It's based on Cypress EZ-USB FX2 so it should be easy (the loading code is already present in the kernel for other devices). Micro Solutions released firmware and load scrips for Linux - it used to be called bpck-usb-firmware-1.1.tgz but seems to have vanished from the web, even archive.org does not have it. Frugalware distro used to include a package bpck-usb-firmware-1.1-1-i686.fpm until version 1.7 (it was removed in 1.8) but I was not able to find it anywhere (even tried Frugalware developers). At least the load script can be found here: https://www.linuxquestions.org/questions/linux-hardware-18/external-usb-backpack-cd-rewriter-problem-212360/ Firmware filenames extracted from the script: BP1SCAN.HEX, BP2SCAN.HEX (scan firmwares) BP1CD5.HEX, BP1CD6.HEX, BP1HD5.HEX, BP1HD6.HEX (for USB 1 chips) BP2CD5.HEX, BP2CD6.HEX, BP2HD5.HEX, BP2HD6.HEX (for USB 2 chips) BPINTCD.HEX, BPINTHD.HEX (for internal USB 2 chips) So there seems to be two kinds of external USB adapters/cables - with FX (USB 1) and FX2 (USB 2) chips. First, a "scan" firmware is loaded that identifies the drive type and changes the ID appropriately. Then a final firmware is loaded, depending on the chip type, drive version (5 or 6) and drive type (CD or HDD). The latest devices have integrated USB support - no scanning is needed, just a CD or HDD firmware is loaded, depending on the ID. My device (model 222011 with integrated USB) identifies as 0ac9:0010. Once the firmware is loaded, the identification changes to 0ac9:1234. I've tested it in Windows and extracted the firmware from usbsnoop dump. After loading using fxload, the ID changed but the device still reports vendor specific class. Probably the firmware for Windows is not the same as for Linux and is not fully USB mass storage compatible :( lsusb output (before loading firmware): Bus 002 Device 002: ID 0ac9:0010 Micro Solutions, Inc. BACKPACK Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x0ac9 Micro Solutions, Inc. idProduct 0x0010 BACKPACK bcdDevice 1.82 iManufacturer 1 Micro Solutions iProduct 3 Micro Solutions BACKPACK iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0020 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x88 EP 8 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0000 (Bus Powered) After loading firmware, only idProduct changes to 0x1234. Everything else remains. -- Ondrej Zary