USB Controller Endpoint Resource Management

By dynamically configuring USB interface and endpoint resources, turning on and off the pipeline according to the needs of specific USB devices, the problem of resource limitation of USB3.0 controllers is solved, and efficient management and resource optimization of multiple USB devices are achieved.

JP7662652B2Active Publication Date: 2025-04-15BLANCCO TECH GRP IP OY
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2022547940
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-02-07
Filing Date
2021-01-28
Publication Date
2025-04-15
Estimated Expiration
2041-01-28

AI Technical Summary

Technical Problem

Due to resource limitations, existing USB3.0 controllers cannot efficiently manage multiple USB devices, resulting in serious waste of endpoint resources when processing multiple USB devices at the same time, limiting the number of USB devices that the host can process at the same time.

Method used

By dynamically configuring the USB interface, the pipeline between the corresponding USB endpoints is turned on and off according to the requirements of the specific USB device, and only the minimum endpoint resource is retained to support diagnostic and erasing of USB devices.

Benefits of technology

Effectively reduces the use of USB endpoint resources, allows more USB devices to be processed simultaneously under the same or less resource conditions, and improves the efficiency and resource utilization of USB operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007662652000001
    Figure 0007662652000001
  • Figure 0007662652000002
    Figure 0007662652000002
  • Figure 0007662652000003
    Figure 0007662652000003
Patent Text Reader

Abstract

A method for performing an operation on a USB device includes configuring a USB interface on a USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of the USB device according to a required USB endpoint configuration of the USB device required to perform the operation on the USB device, performing the operation on the USB device, and unconfiguring the configured USB interface on the USB controller to close one or more pipes between the USB controller and the one or more corresponding USB endpoints of the USB device. Such a method allows the operation to be performed simultaneously on a greater number of USB devices than prior art methods and / or allows the operation to be performed simultaneously on the same number of USB devices while using fewer USB endpoint resources of the USB controller and / or fewer USB controllers than prior art methods.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to methods and apparatus for performing operations on a USB device via a USB controller, and in particular, but not exclusively, to methods and apparatus for performing diagnostic and / or erase operations on a USB device via a USB controller. [Background technology]

[0002] The latest generation of USB 3.0 controllers are known to have limitations due to the limited number of resources within the USB 3.0 controller. For example, according to the Intel® eXtensible Host Controller Interface for Universal Serial Bus (xHCI) Specification (Rev.1.2, May 2019), "xHC maintains a global Resources Available variable that is initialized to indicate that all xHC resources are available. Resource is an xHC implementation-defined metric that refers to internal xHC data structures, buffer space, or other implementation-specific resources required to support an endpoint type." A USB endpoint is one such resource that may be a limiting factor as to how many USB devices (or USB interfaces) a single USB controller is capable of managing simultaneously.

[0003] For example, when a USB device is connected to a host machine or computational resource such as a personal computer (PC) through a USB controller, traditionally, the operating system (OS) of the host machine automatically configures the USB interface of the USB controller to open several pipes, where each pipe defines a corresponding data channel between the USB controller and a different endpoint of the USB device. Here, the "USB interface" corresponds to the USB controller operation of the USB functional interface according to the Universal Serial Bus Specification (Rev. 2.0, April 27, 2000). For example, connecting a USB flash drive to the host machine may cause the host machine's OS to configure the USB interface of the USB controller to open a group of three or four pipes, whereas connecting a headset and other sensors to the host machine may cause the host machine's OS to configure the USB interface of the USB controller to open a group of ten pipes.

[0004] When a USB device is connected to a host machine through a USB controller, different functions and / or interfaces of the USB device may require the OS of the host machine to configure different USB interfaces on the USB controller to open different groups of one or more pipes between the USB controller and the USB device by default, thereby reserving a corresponding number of endpoint resources of the USB controller by default for communication with the USB device. For example, a USB mouse and a USB keyboard, as well as one or more mass storage functions of the USB device, may each require the OS of the host machine to configure different USB interfaces on the USB controller to open one or more pipes between the USB controller and the USB device by default, thereby reserving a corresponding number of endpoint resources of the USB controller by default for communication with the USB device. For example, ADB (Android Debug Bridge) requires the OS of the host machine to configure a USB interface on the USB controller to open two pipes by default. Serial communication requires the host machine's OS to configure the USB interface on the USB controller to open one, two or three pipes by default, and the MTP / PTP protocols require the host machine's OS to configure the USB interface on the USB controller to open three pipes by default (one pipe to the USB device, one pipe from the USB device, and one pipe from the USB controller to the exception endpoint of the USB device).

[0005] It is also known to simultaneously perform diagnostic and / or erase operations on several USB devices, such as several mobile USB devices, by connecting the mobile USB devices to a host machine via a single USB controller routed to a USB hub and executing dedicated software in the form of an application running on the OS of the host machine to perform the diagnostic and / or erase operations. The application may request that different USB interfaces be configured in the USB controller (and thus that several pipes be opened and a corresponding number of endpoint resources of the USB controller be reserved) depending on the interface associated with the mobile USB device. For example, the application may request that one or more of the MTP / PTP interface, ADB (Android Debug Bridge), one or more Apple specific interfaces, and a serial interface be configured. For example, a single Android device may request that up to 16 pipes be opened and a corresponding number of endpoint resources of the USB controller be reserved.

[0006] Currently, the USB interfaces configured in the USB controller are determined when the mobile USB device and the host machine are connected through the USB controller. When the mobile USB device is connected to the host machine and enumerated, the OS of the host machine configures the USB interfaces in the USB controller to open all pipes between the USB controller and the corresponding USB endpoints of the mobile USB device that are required by default for all possible interfaces of the mobile USB device, thereby automatically reserving a corresponding number of endpoint resources of the USB controller until the mobile USB device is disconnected from the host machine. Upon connection of the mobile USB device to the host machine, the action to be performed is not known, and therefore the OS of the host machine may configure an excessive number of USB interfaces, thereby automatically reserving an excessive number of limited endpoint resources of the USB controller until the mobile USB device is disconnected from the host machine.

[0007] When all endpoint resources of a USB controller are reserved, the host machine is prevented from communicating with another mobile USB device through the same USB controller, thereby preventing any operations from being performed with respect to any other mobile USB device connected through the same USB controller. Thus, the hardware limitations of known USB controllers and the wasteful endpoint USB controller resource allocation methods of known host machine operating systems limit the number of mobile USB devices that a host machine can simultaneously handle through known USB controllers. A known solution to this problem is the use of additional USB expansion cards or modules in the host machine, each with one or more additional USB controllers. For example, it is known to add USB expansion cards, each with at least one additional USB controller, to the PCI Express bus of the host machine.

[0008] Furthermore, if the Mobile USB device's interfaces required to perform the desired operation are not enabled when the connection between the Mobile USB device and the host machine is established through the USB controller, the connection must be terminated and re-established with the required Mobile USB device interfaces enabled. As an example, when an Android® Mobile USB device is connected to a host machine through a USB controller, ADB is initially disabled by default (not shown in the Mobile USB device descriptor) and it is only possible to identify the Mobile USB device by other means, for example, through a serial connection (e.g., by receiving the Mobile USB device model and IMEI code). Currently, ADB must be enabled by the user before diagnostic tests can be run, with the serial connection also enabled. This can also result in limited USB controller endpoint resources being reserved until the Mobile USB device is disconnected from the host machine.

[0009] More specifically, referring to Figure 1, there is shown a well-known host machine in the form of a computational resource, such as a PC 2, for performing diagnostic and / or erase operations on a number of mobile USB devices 4a, 4b and 4c. Each mobile USB device 4a, 4b, 4c may comprise a mobile device, such as, for example, a mobile phone, a cell phone, a smart phone, a tablet, a laptop, etc. The PC 2 includes a processor 6, a memory 8 and a USB controller 10. As indicated by the dashed lines, the processor 6 is configured for communication with the memory 8 and the USB controller 10. The memory 8 stores the PC 2's OS 12 and dedicated software in the form of a diagnostic and / or erase application 14 configured to run on the PC 2's OS 12.

[0010] 2, a prior art method 100 is shown for use in performing diagnostic and / or erase operations on one of the mobile USB devices 4a, 4b, 4c. The method 100 begins in response to connection of one of the mobile USB devices 4a, 4b, and 4c to a host computing resource, such as PC2, via a USB controller 10. At step 102, the OS 12 of PC2 causes the USB controller 10 to establish a control pipe between the USB controller 10 and the mobile USB device 4a, 4b, 4c. At step 104, the OS 12 of PC2 generates a hot plug event to the diagnostic and / or erase application 14. At step 106, the OS 12 of PC2 then checks whether the "allowed by default" setting is set to "true." If the "Allowed by Default" setting is set to "True", then in step 108, the OS 12 of the PC2 configures the USB interfaces on the USB controller 10 to open all pipes between the USB controller 10 and the corresponding endpoints of the mobile USB devices 4a, 4b, 4c according to the default endpoint configuration for the mobile USB devices 4a, 4b, 4c. If the "Allowed by Default" setting is not set to "True", then the OS 12 of the PC2 waits in step 110 until permission is granted by the diagnostic and / or erase application 14 by some other authorization mechanism before proceeding to step 108. In step 112, the diagnostic and / or erase application 14 then performs the desired diagnostic and / or erase operations on the mobile USB devices 4a, 4b, 4c via the configured interfaces of the USB controller 10.

[0011] Furthermore, the OS 12 of PC2 checks whether the setting of “Allowed USB Interfaces” is set to “True”, and if the “Allowed USB Interfaces” setting is set to “True”, the OS 12 of PC2 updates the kernel permission status in step 120, which allows the diagnostic and / or erase application 14 to register and use one or more drivers of the USB controller 10 in step 122 so that the diagnostic and / or erase application 14 can perform desired diagnostic and / or erase operations on the mobile USB devices 4a, 4b, 4c via the configured USB interfaces of the USB controller 10. The OS 12 of PC2 then updates the “Allowed USB Interfaces” setting by updating the kernel permission status, which allows the diagnostic and / or erase application 14 to unregister one or more drivers for the USB controller 10 in step 124. If the “Allowed USB Interfaces” setting is not set to “True”, then in step 122 the diagnostic and / or erase application 14 is not permitted to perform the desired diagnostic and / or erase operations on the mobile USB devices 4a, 4b, 4c via the configured USB interfaces of the USB controller 10. Summary of the Invention [Means for solving the problem]

[0012] According to one aspect of the present disclosure, there is provided a method for performing an operation on a USB device, the method comprising: configuring a USB interface on a USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of the USB device according to a required USB endpoint configuration of the USB device that is required to perform an operation with respect to the USB device; performing an operation on a USB device; unconfiguring a USB interface configured on a USB controller to close one or more pipes between the USB controller and one or more corresponding USB endpoints on a USB device; Includes.

[0013] By configuring a USB interface on a USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of a USB device according to a required USB endpoint configuration of the USB device that is required to perform a particular operation on the USB device, the number of USB endpoint resources of the USB controller reserved for performing operations on the USB device can be reduced compared to a prior art method of automatically configuring a USB interface on a USB controller to open a sufficient number of pipes between the USB controller and the corresponding USB endpoints of the USB device that are required for all possible interfaces of the USB device. Thus, such a method allows operations to be performed simultaneously on a greater number of USB devices than prior art methods and / or allows operations to be performed simultaneously on the same number of USB devices using fewer USB endpoint resources of the USB controller and / or fewer USB controllers than prior art methods.

[0014] By deconfiguring a USB interface of the USB controller to close one or more pipes between the USB controller and one or more corresponding USB endpoints of the USB device after an operation has been performed, the time that USB endpoint resources of the USB controller are reserved for performing operations on a USB device is minimized, thereby potentially enabling operations to be performed simultaneously on a greater number of USB devices than prior art methods and / or potentially enabling operations to be performed simultaneously on the same number of USB devices using fewer USB endpoint resources of the USB controller and / or fewer USB controllers than prior art methods.

[0015] The method may include configuring a USB interface in a USB controller to open one or more pipes between the USB controller and the USB device in response to communication between the USB device and the USB controller.

[0016] The method may include configuring a USB interface on a USB controller to open one or more pipes between the USB controller and the USB device in response to detecting an attachment or connection of a USB device to the USB controller.

[0017] The method may include receiving information regarding a USB device and / or receiving information regarding an operation to be performed regarding the USB device.

[0018] The method may include determining a required endpoint configuration for the USB device based at least in part on the received information regarding the USB device and / or the received information regarding operations to be performed regarding the USB device.

[0019] The required endpoint configuration of a USB device may include a minimum number of USB endpoints of the USB device that are required to perform an operation on the USB device.

[0020] The method may include determining a minimum number of USB endpoints of the USB device required to perform an operation on the USB device based at least in part on the received information about the USB device and / or the received information about the operation to be performed on the USB device.

[0021] The USB controller may be configured for communication with a computational resource, such as a personal computer. The USB controller may be connected to the computational resource. The computational resource may act as a host machine for the USB controller.

[0022] The computational resources may include processing resources and memory.

[0023] The memory may include volatile memory, such as random access memory (RAM). The memory may include non-volatile memory, such as a hard disk drive (HDD) or a solid state drive (SSD). The memory may include one or more removable media, such as one or more USB flash drives.

[0024] The memory may store an operating system (OS) of the computing resource.

[0025] The memory may store a computer program.

[0026] Computer programs may include dedicated software or applications.

[0027] A computer program can be configured to run on an OS.

[0028] The computer program, when executed by a processing resource, may cause the processing resource to perform any of the methods described above.

[0029] The computer program, when executed by the processing resource, may cause the processing resource to modify or override default USB endpoint configuration functionality of the OS and configure a USB interface in the USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of the USB device in accordance with a required USB endpoint configuration of the USB device that is required to perform an operation with respect to the USB device.

[0030] The computer program, when executed by a processing resource, may cause the processing resource to modify or override a default USB endpoint deconfiguration function of the OS and cause the USB controller to deconfigure a configured USB interface to close one or more pipes between the USB controller and one or more corresponding USB endpoints of a USB device.

[0031] The OS of the computing resource may include the Linux OS.

[0032] The method may include modifying or overriding a default USB endpoint configuration function and / or a default USB endpoint deconfiguration function defined by at least a portion of a kernel of a Linux OS of the computational resource.

[0033] The method may include selecting appropriate parameters of the OS to modify or override default USB endpoint configuration and / or default USB endpoint deconfiguration functions of the OS.

[0034] The method comprises: Reading the USB device descriptor from the USB device; selecting, using the USB device descriptor, information about the USB device and / or information about an operation to be performed with respect to the USB device from accumulated information about a plurality of known USB devices stored in a memory of the computational resource or from a database; may include.

[0035] The database may be located remotely from the computing resources.

[0036] The computational resource may comprise a user interface.

[0037] The computer program, when executed by a processing resource, may cause the processing resource to request from a user, via a user interface, information regarding the USB device and / or information regarding operations performed with respect to the USB device.

[0038] The computer program, when executed by the processing resource, may cause the processing resource to control a user interface to display requests for input of information regarding the USB device and / or information regarding operations to be performed with respect to the USB device.

[0039] When executed by a processing resource, the computer program may cause the processing resource to modify and / or override an OS default USB endpoint configuration function and / or an OS default USB endpoint deconfiguration function in response to information regarding a USB device and / or information regarding operations to be performed with respect to the USB device.

[0040] Performing an operation with respect to a USB device may include performing an operation on the USB device or causing an operation to be performed on or by the USB device.

[0041] The operation may include an erase operation.

[0042] Performing an erase operation may include overwriting data stored in the memory of the USB device.

[0043] Performing the erase operation may include causing the USB device to perform an erase operation defined by the USB device.

[0044] The operations may include diagnostic operations.

[0045] Performing diagnostic operations may include performing diagnostic operations on the USB device.

[0046] Performing a diagnostic operation may include causing the USB device to perform a diagnostic operation defined by the USB device.

[0047] The method comprises: configuring one or more USB interfaces on the USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of the plurality of USB devices in accordance with a corresponding plurality of required USB endpoint configurations of the plurality of USB devices, where the required USB endpoint configuration of any given USB device is a USB endpoint configuration required to perform a corresponding operation with respect to the given USB device; and performing a corresponding operation with respect to each one of the plurality of USB devices; unconfiguring one or more configured USB interfaces of the USB controller to close one or more pipes between the USB controller and one or more corresponding USB endpoints of the plurality of USB devices; may include.

[0048] Each USB device may include a mobile USB device, such as a mobile phone, a cell phone, a smart phone, a tablet, a laptop, and the like.

[0049] According to one aspect of the present disclosure, there is provided an apparatus for performing operations with respect to a USB device, the apparatus comprising: A USB controller; A computational resource configured for communication with a USB controller; Equipped with The computing resources include processing resources and memory, the memory storing an operating system and a computer program; The OS defines a default USB endpoint configuration function, and the computer program, when executed by a processing resource, causes the processing resource to modify or override the OS's default USB endpoint configuration function, thereby causing the processing resource to perform any of the methods described above. Each USB device may include a mobile USB device, such as a mobile phone, a cell phone, a smart phone, a tablet, a laptop, and the like.

[0050] It should be understood that any one or more of the features of any one of the above aspects of the present disclosure may be combined with any one or more of the features of any of the other above aspects of the present disclosure.

[0051] One or more apparatus and methods for performing operations in relation to USB devices will now be described, by way of non-limiting example only, and with reference to the accompanying drawings, in which: [Brief description of the drawings]

[0052] [Figure 1] FIG. 1 shows a schematic diagram of multiple USB devices connected to a prior art apparatus for performing operations on multiple USB devices. [Diagram 2] FIG. 2 illustrates generally a prior art method for performing an operation on a USB device in the processing flow of an OS of a computational resource of the prior art apparatus of FIG. 1; [Diagram 3]FIG. 2 shows a schematic diagram of a number of USB devices connected to an apparatus for performing operations in relation to the number of USB devices. [Figure 4] 4A-4C are schematic diagrams illustrating a method for performing an operation on one of the USB devices shown in FIG. 3 using the apparatus shown in FIG. 3; [Diagram 5] 5 is a diagram illustrating the method of FIG. 4 in the process flow of an OS of a computing resource of the device shown in FIG. 3. [Figure 6A] FIG. 4 is a schematic diagram illustrating USB interface claim operations related to the method of FIG. 3. [Figure 6B] 4 is a diagram illustrating a USB interface release operation associated with the method of FIG. 3; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0053] 3, there is shown a computational resource in the form of a PC 202 for performing diagnostic and / or erase operations on a plurality of mobile USB devices 4a, 4b and 4c. The PC 202 includes processing resources 206, memory 208 and a user interface 209. The PC 202 acts as a host for a USB controller 210. As indicated by the dashed lines, the processing resources 206 are configured for communication with the memory 208, the user interface 209 and the USB controller 210. The memory 208 stores the OS 212 of the PC 202 and dedicated software in the form of a diagnostic and / or erase application 214 configured to run on the OS 212.

[0054] The diagnostic and / or erase application 214 defines a method 300 for use in performing diagnostic and / or erase operations on one of the mobile USB devices 4a, 4b, 4c, which will now be described with reference to Figure 4. Operating on the OS 212, the diagnostic and / or erase application 214, when executed by the processing resources 206 of the PC 202, causes the processing resources 206 to perform the method 300. The method 300 begins at step 301, where the diagnostic and / or erase application 214 temporarily modifies or overrides a default endpoint configuration function of the OS 212. Thereafter, in response to a physical connection of any one of the Mobile USB devices 4a, 4b, 4c to the PC 202 in step 302, the diagnostic and / or erase application 214 reads a USB device descriptor from the Mobile USB device 4a, 4b, 4c in step 304 and uses the USB device descriptor to select information about the Mobile USB device 4a, 4b, 4c from accumulated information about a plurality of known Mobile USB devices stored in the memory 208 of the PC 202 and / or to select information about an operation to be performed with respect to the Mobile USB device 4a, 4b, 4c from accumulated information about a plurality of known Mobile USB devices stored in the memory 208 of the PC 202. In step 306, the diagnostic and / or erase application 214 checks whether the Mobile USB device 4a, 4b, 4c is supported. That is, the diagnostic and / or erase application 214 checks whether information about the Mobile USB device 4a, 4b, 4c and / or information about operations performed with respect to the Mobile USB device 4a, 4b, 4c is stored in the memory 208 of the PC 202. If, in step 306, it is determined that the Mobile USB device 4a, 4b, 4c is not supported, the method returns to step 302.If, at step 306, it is determined that the mobile USB devices 4a, 4b, 4c are supported, the method continues at step 308 where the diagnostic and / or erase application 214 determines a required USB endpoint configuration required to perform an operation on the USB device in the form of a minimum USB interface set required to perform a diagnostic and / or erase operation on the mobile USB devices 4a, 4b, 4c. The diagnostic and / or erase application 214 then configures the minimum USB interface set on the USB controller 210 at step 310 to open one or more pipes between the USB controller 210 and one or more corresponding USB endpoints of the mobile USB devices 4a, 4b, 4c. Once the minimum USB interface set is configured on the USB controller 210, the diagnostic and / or erase application 214 at step 312 causes the processing resources 206 to perform the diagnostic and / or erase operation on the mobile USB devices 4a, 4b, 4c via the USB controller 210. Once diagnostic and / or erase operations have been performed with respect to the mobile USB devices 4a, 4b, 4c, the diagnostic and / or erase application 214 causes the processing resources 206 to deconfigure the minimum USB interface set in the USB controller 210 to close one or more pipes between the USB controller 210 and one or more corresponding USB endpoints of the mobile USB devices 4a, 4b, 4c in step 314. The method 300 continues by checking whether further operations are to be performed with respect to the mobile USB devices 4a, 4b, 4c using the diagnostic and / or erase application 214 in step 316. If further operations are to be performed with respect to the mobile USB devices 4a, 4b, 4c, the method returns to step 308. If further operations are not to be performed with respect to the mobile USB devices 4a, 4b, 4c, the method returns to step 302.

[0055] Use of the minimum USB interface set minimizes the USB endpoint resources of the USB controller 210 that need to be reserved in order to perform diagnostic and / or erase operations on the mobile USB devices 4a, 4b, 4c via the USB controller 210. Thus, use of the minimum USB interface set may allow operations to be performed simultaneously on a greater number of mobile USB devices than prior art methods and / or may allow operations to be performed simultaneously on the same number of mobile USB devices using fewer USB endpoint resources of the USB controller 210 and / or fewer USB controllers than prior art methods. Moreover, after diagnostic and / or erase operations have been performed on mobile USB devices 4a, 4b, 4c via USB controller 210, deconfiguring a minimum USB interface set of USB controller 210 to close one or more pipes between USB controller 210 and one or more corresponding USB endpoints of mobile USB devices 4a, 4b, 4c frees up USB endpoint resources of USB controller 210 at the earliest possible opportunity without having to physically disconnect mobile USB devices 4a, 4b, 4c from USB controller 210. Thus, method 300 allows operations to be performed simultaneously on a greater number of mobile USB devices than prior art methods and / or allows operations to be performed simultaneously on the same number of mobile USB devices using fewer USB endpoint resources of USB controller 210 and / or fewer USB controllers than prior art methods.

[0056] As described in more detail below, in method 300, endpoint configuration is postponed until diagnostic and / or erase application 214 determines which particular interface of mobile USB device 4a, 4b, 4c to use. The actual implementation mechanism is based on a two-level USB authorization framework in OS 212 of PC 202, which provides access control at the USB device level and also at the USB interface level. Method 300 effectively combines USB endpoint configuration and deconfiguration with interface level permission control. Next, a method 300 for use in performing a diagnostic and / or erase operation on one of the mobile USB devices 4a, 4b, 4c will be described in the process flow of the OS 212 of the PC 202 with reference to FIG. 5. The method 300 begins in response to a physical connection of one of the mobile USB devices 4a, 4b, 4c to the USB controller 210. In step 402, the OS 212 of the PC 202 causes the USB controller 210 to establish a control pipe between the USB controller 210 and the mobile USB device 4a, 4b, 4c. In step 404, the OS 212 of the PC 202 generates a hot plug event to the diagnostic and / or erase application 214. In step 406, the OS 212 of the PC 202 then checks whether the "Allowed by Default" setting is set to "True". If the "Allowed by Default" setting is set to "True", then in step 408, OS 212 of PC 202 configures USB interfaces of USB controller 210 to open all pipes between USB controller 210 and corresponding endpoints of mobile USB devices 4a, 4b, 4c according to the default endpoint configuration for mobile USB devices 4a, 4b, 4c. If the "Allowed by Default" setting is not set to "True", then OS 212 of PC 202 waits in step 410 until permission is granted by diagnostic and / or erase application 214 by some other authorization mechanism before proceeding to step 412. If the "Allowed by Default" setting is set to "True" in step 412, then OS 212 of PC 202 proceeds to step 408.

[0057] If proceeding to step 408 to open all pipes between the USB controller 210 and the corresponding endpoints of the mobile USB devices 4a, 4b, 4c according to the default endpoint configuration for the mobile USB devices 4a, 4b, 4c, the diagnostic and / or erase application 214 performs the desired diagnostic and / or erase operations with respect to the mobile USB devices 4a, 4b, 4c via the USB interface of the USB controller 210 as configured in the device default configuration.

[0058] However, if the "Interfaces not allowed by default" setting is set to "True", then OS 212 of PC 202 proceeds to step 420, and upon receiving the USB interface authorization, OS 212 of PC 202 configures the USB endpoints of mobile USB devices 4a, 4b, 4c as required according to the minimum USB interface set determined in step 308 of FIG. 4. Additionally, the OS 212 of the PC 202 updates the kernel permission status of the USB controller 210 in step 422, thereby allowing the diagnostic and / or erase application 214 to register and use one or more drivers of the USB controller 210 such that the diagnostic and / or erase application 214 can perform desired diagnostic and / or erase operations with respect to the mobile USB devices 4a, 4b, 4c through the configured USB interfaces of the USB controller 210 in step 424. The OS 212 of the PC 202 then updates the "Allowed USB Interfaces" setting to allow the diagnostic and / or erase application 214 to unregister one or more drivers for the USB controller 210 in step 426. The OS 212 of the PC 202 causes the USB controller 210 to unconfigure the USB endpoints of the mobile USB devices 4a, 4b, 4c configured according to the minimum USB interface set in step 428 to free the corresponding USB endpoint resources of the USB controller 210. The kernel permission status of the OS 212 of the PC 202 is updated in step 430 to allow the diagnostic and / or erase application 214 to unregister one or more drivers for the USB controller 210 in step 430 .

[0059] From the above description of Figure 5, one skilled in the art will appreciate that if the "Interfaces not allowed by default" setting is set to "True", then in step 420 the USB endpoints of mobile USB devices 4a, 4b, 4c are configured for mobile USB devices 4a, 4b, 4c's minimum USB interface set, and otherwise in step 408 the USB endpoints of mobile USB devices 4a, 4b, 4c are configured according to the USB device default configuration. Furthermore, one skilled in the art will appreciate that after diagnostic and / or erase application 214 is executed in step 424, the configured USB endpoints are unconfigured in step 428, thereby freeing up USB endpoint resources of USB controller 210.

[0060] FIG. 6A illustrates a USB interface claim operation implemented by OS 212 of PC 202 with the addition of a check step for use in combination with method 300 in which, if the USB interface is not currently allowed, the USB interface is allowed and flagged as allowed based on the claim request.

[0061] Conversely, FIG. 6B illustrates a USB interface release operation implemented by embedded software 216 with an additional check step for use in combination with method 300, in which if the USB interface is authorized in response to a claim request, the USB interface is automatically deauthorized.

[0062] Those skilled in the art will appreciate that the above described apparatus and method may be modified without departing from the scope of the invention as defined by the appended claims. For example, rather than selecting information regarding mobile USB device 4a, 4b, 4c and / or information regarding operations performed with respect to mobile USB device 4a, 4b, 4c from accumulated information regarding a plurality of known mobile USB devices stored in memory 208 of PC 202, the method may include selecting information regarding mobile USB device 4a, 4b, 4c and / or information regarding operations performed with respect to mobile USB device 4a, 4b, 4c from accumulated information regarding a plurality of known mobile USB devices stored in a database, such as a database located remotely from PC 202.

[0063] In another variation of the method 300 described with reference to FIG. 4, between steps 306 and 308, the diagnostic and / or erase application 214 may request information from the user via the user interface 209 of the PC 202 regarding the mobile USB devices 4a, 4b, 4c and / or operations to be performed with respect to the USB devices 4a, 4b, 4c. For example, the diagnostic and / or erase application 214 may request that the user select a diagnostic operation and / or erase operation to be performed with respect to the USB devices 4a, 4b, 4c. Once the user has input information regarding the mobile USB devices 4a, 4b, 4c and / or operations to be performed with respect to the USB devices 4a, 4b, 4c via the user interface 209, the diagnostic and / or erase application 214 may then determine, based at least in part on the information provided by the user, a required USB endpoint configuration required to perform an operation with respect to the USB devices 4a, 4b, 4c in the form of a minimum USB interface set required to perform a diagnostic operation and / or erase operation with respect to the mobile USB devices 4a, 4b, 4c.

[0064] Those skilled in the art will also appreciate that, depending on the implementation, some of the steps of the method shown in Figures 5, 6A, and 6B defined by the OS 212 of the PC 202 may be defined by the diagnostic and / or erase application 214. Conversely, some of the steps of the method shown in Figures 5, 6A, and 6B defined by the diagnostic and / or erase application 214 may be defined by the OS 212 of the PC 202.

[0065] Those skilled in the art will understand that one or more of the features of the embodiments of the present disclosure described above with reference to the drawings may produce effects or provide advantages when used separately from one or more of the other features of the embodiments of the present disclosure, and that different combinations of features are possible other than the specific combinations of features of the embodiments of the present disclosure described above.

Claims

1. 1. A method for performing an operation on a USB device, comprising: configuring a USB interface on the USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of a USB device according to a required USB endpoint configuration of the USB device that is required to perform an operation with respect to the USB device; performing said action with respect to said USB device; and unconfiguring the configured USB interface to the USB controller to close the one or more pipes between the USB controller and the one or more corresponding USB endpoints of the USB device; the USB controller is configured for communication with a computational resource including a processing resource and a memory, the memory storing an operating system (OS) and a computer program configured to operate on the OS; The computer program, when executed by the processing resource, causes the processing resource to modify or override default USB endpoint configuration functions defined by the OS and causes the USB controller to configure the USB interface to open the one or more pipes between the USB controller and one or more corresponding USB endpoints of the USB device according to the required USB endpoint configuration of the USB device required to perform the operation with respect to the USB device. A method comprising:

2. 2. The method of claim 1, comprising configuring the USB interface on the USB controller to open one or more pipes between the USB controller and the USB device in response to communication between the USB device and the USB controller and in response to detecting an attachment or connection of the USB device to the USB controller.

3. The method of claim 1 or 2, comprising receiving information about the USB device and / or receiving information about the operation to be performed on the USB device.

4. 4. The method of claim 3, comprising determining the required USB endpoint configuration of the USB device based at least in part on the received information about the USB device and / or the received information about the operation to be performed on the USB device.

5. 5. The method of claim 4, wherein the required USB endpoint configuration of the USB device comprises a minimum number of USB endpoints of the USB device that are required to perform the operation on the USB device.

6. 6. The method of claim 5, comprising determining the minimum number of USB endpoints of the USB device required to perform the operation on the USB device based at least in part on the received information about the USB device and / or the received information about the operation to be performed on the USB device.

7. The method of claim 1 , wherein the USB controller is connected to the computational resource.

8. The method of claim 1 , wherein the computer program comprises dedicated software or an application.

9. 2. The method of claim 1, wherein the computer program, when executed by the processing resource, causes the processing resource to modify or override a default USB endpoint deconfiguration function defined by the OS and cause the USB controller to deconfigure the configured USB interface to close the one or more pipes between the USB controller and the one or more corresponding USB endpoints of the USB device.

10. The method of claim 1 , wherein the OS of the computing resource comprises a Linux OS.

11. 11. The method of claim 10, comprising modifying or overriding the default USB endpoint configuration functionality defined by at least a portion of a kernel of the Linux OS of the computing resource.

12. 2. The method of claim 1, comprising selecting appropriate parameters of the OS to modify or override the default USB endpoint configuration functionality of the OS.

13. A method for performing an operation on a USB device, comprising: configuring a USB interface on the USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of a USB device according to a required USB endpoint configuration of the USB device that is required to perform an operation with respect to the USB device; performing said action with respect to said USB device; and unconfiguring the configured USB interface to the USB controller to close the one or more pipes between the USB controller and the one or more corresponding USB endpoints of the USB device; the USB controller is configured for communication with a computational resource including a processing resource and a memory, the memory storing an operating system (OS) and a computer program configured to run on the OS, the computer program, when executed by the processing resource, causing the processing resource to perform the method; reading a USB device descriptor from the USB device; and using the USB device descriptor to select the information about the USB device and / or the information about the operation to be performed on the USB device from accumulated information about a plurality of known USB devices stored in the memory of the computational resource or from a database, such as a database located remotely from the computational resource. A method comprising:

14. 14. The method of claim 1 or 13, wherein the computer program, when executed by the processing resource, causes the processing resource to request from a user, via a user interface of the computational resource, information about the USB device and / or information about the operations performed with respect to the USB device.

15. The method of claim 1 , wherein the operation comprises an erase operation.

16. 16. The method of claim 15, wherein performing the erase operation includes overwriting data stored in a memory of the USB device and / or causing the USB device to perform an erase operation defined by the USB device.

17. The method of claim 1 , wherein the operation comprises a diagnostic operation.

18. 18. The method of claim 17, wherein performing the diagnostic operation comprises performing the diagnostic operation on the USB device and / or causing the USB device to perform a diagnostic operation defined by the USB device.

19. configuring one or more USB interfaces on the USB controller to open one or more pipes between the USB controller and one or more corresponding USB endpoints of the plurality of USB devices according to a corresponding plurality of required USB endpoint configurations of the plurality of USB devices, where the required USB endpoint configuration of any given USB device is the USB endpoint configuration required to perform a corresponding operation with respect to the given USB device; and performing the corresponding operation with respect to each one of the plurality of USB devices; unconfiguring the one or more configured USB interfaces of the USB controller to close the one or more pipes between the USB controller and the one or more corresponding USB endpoints of the plurality of USB devices; 19. The method of any one of claims 1 to 18, comprising:

20. 20. The method of any one of claims 1 to 19, wherein each USB device comprises a mobile USB device including at least one of a mobile phone, a cell phone, a smart phone, a tablet, and a laptop.

21. 1. An apparatus for performing operations with respect to a USB device, comprising: A USB controller; a computational resource configured for communication with the USB controller; Equipped with the computing resources include processing resources and memory, the memory storing an operating system and computer programs; The OS defines a default USB endpoint configuration function, and the computer program, when executed by the processing resource, causes the processing resource to modify or override the default USB endpoint configuration function of the OS, thereby causing the processing resource to perform any of the methods described above.

22. 22. The apparatus of claim 21, wherein each USB device comprises a mobile USB device including at least one of a mobile phone, a cell phone, a smart phone, a tablet, and a laptop.

Citation Information

Patent Citations

  • Electronic apparatus, and method for apparatus and data transfer control

    JP2004349836A

  • Data transfer control method, and data transfer controller

    JP2006252335A

  • Data processor and data processing system

    JP2011065514A

  • USB communication method and USB communication device

    JP2012048275A

  • Information processing apparatus, control method of the same and program

    JP2012155687A