USB controller end-point resource management

By configuring USB interfaces to open the minimum required pipes based on device needs and closing them post-operation, the method optimizes USB controller resource usage, allowing simultaneous operations on more devices with fewer resources.

JP2025102939AInactive Publication Date: 2025-07-08BLANCCO TECH GRP IP OY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025061662
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-02-07
Filing Date
2025-04-03
Publication Date
2025-07-08
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

The limited number of endpoint resources in USB controllers restricts the simultaneous management of USB devices, leading to inefficient resource allocation and preventing communication with additional devices when existing methods reserve excessive resources for a single USB device.

Method used

Configuring USB interfaces to open the minimum number of pipes required for operations based on the specific USB device's needs, and closing these pipes after operations are completed, thereby optimizing resource usage.

Benefits of technology

Enables simultaneous operations on a larger number of USB devices using fewer endpoint resources and controllers, minimizing resource reservation time and avoiding the need to physically disconnect devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025102939000001_ABST
    Figure 2025102939000001_ABST
Patent Text Reader

Abstract

To make it possible to allow USB devices greater in the number than the method of the conventional art to be simultaneously executed in operation.SOLUTION: A method for executing operation on an USB devices includes: configuring an USB controller with an USB interface so as to open one or a plurality of pipes between the USB controller and one or a plurality of corresponding USB end points of the USB device, according to a necessity USB end-point configuration of the USB device required to execute operation on the USB device; executing operation on the USB device; and cancelling the configuration of the USB interface configured to the USB controller so as to close the one or a plurality of pipes between the USB controller and the one or plurality of corresponding USB end points of the USB device.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to methods and apparatuses for performing operations with respect to a USB device via a USB controller, and more particularly, but not limited thereto, to methods and apparatuses for performing diagnostic operations and / or erasure operations with respect to a USB device via a USB controller.

Background Art

[0002] It is known that the latest generation of USB 3.0 controllers 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), "The xHC maintains a global Resources Available variable that is initialized to indicate that all xHC resources are available. A Resource is an xHC implementation-defined metric that refers to an internal xHC data structure, buffer space, or other implementation-specific resources required to support an endpoint type." A USB endpoint can be such a resource that can be a limiting factor regarding how many USB devices (or USB interfaces) a single USB controller can manage simultaneously.

[0003] For example, when a USB device is connected to a host machine or computing resource such as a personal computer (PC) via a USB controller, conventionally, the operating system (OS) of the host machine automatically configures the USB interface of the USB controller to open several pipes that define corresponding data channels between each pipe and different endpoints of the USB device and the USB controller. Here, the "USB interface" corresponds to the USB controller operation of the USB function interface according to the Universal Serial Bus Specification (Rev. 2.0, April 27, 2000). For example, when a USB flash drive is connected to the host machine, the OS of the host machine may configure the USB interface of the USB controller to open a group of 3 to 4 pipes, but when a headset and other sensors are connected to the host machine, the OS of the host machine may configure the USB interface of the USB controller to open a group of 10 pipes.

[0004] When a USB device is connected to a host machine via a USB controller, different functions and / or interfaces of the USB device configure different USB interfaces in the USB controller to open different groups of one or more pipes between the USB controller and the USB device by default, thereby requesting the host machine's OS to reserve 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, each configure different USB interfaces in the USB controller to open one or more pipes between the USB controller and the USB device by default, thereby requesting the host machine's OS to reserve a corresponding number of endpoint resources of the USB controller by default for communication with the USB device. For example, ADB (Android (registered trademark) Debug Bridge) requests the host machine's OS to configure a USB interface in the USB controller to open two pipes by default. Serial communication requests the host machine's OS to configure a USB interface in the USB controller to open one, two, or three pipes by default, and the MTP / PTP protocol requests the host machine's OS to configure a USB interface in the USB controller to open three pipes (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) by default.

[0005] Also, a dedicated software in the form of an application operating on the host machine's OS is executed to connect a mobile USB device to the host machine via a single USB controller routed to a USB hub and perform a diagnostic operation and / or an erasure operation, thereby simultaneously performing a diagnostic operation and / or an erasure operation on several USB devices, such as several mobile USB devices. The application may request to configure different USB interfaces in the USB controller (thus opening several pipes and reserving the corresponding number of endpoint resources of the USB controller) according to the interface associated with the mobile USB device. For example, the application may request that one or more of an MTP / PTP interface, ADB (Android (registered trademark) Debug Bridge), one or more Apple-specific interfaces, and a serial interface be configured. For example, a single Android (registered trademark) device may request that up to 16 pipes be opened and the corresponding number of endpoint resources of the USB controller be reserved. SUMMARY OF THE INVENTION PROBLEMS TO BE SOLVED BY THE INVENTION

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

[0007] When all the endpoint resources of the USB controller are reserved, the host machine is prevented from communicating with another mobile USB device via the same USB controller, thereby preventing any operations from being performed on any other mobile USB device connected via the same USB controller. Thus, due to the well-known hardware limitations of the USB controller and the wasteful endpoint USB controller resource allocation method of the well-known host machine operating system, the number of mobile USB devices that the host machine can simultaneously process via the well-known USB controller is limited. A well-known solution to this problem is to use, in the host machine, an additional USB expansion card or module each having one or more additional USB controllers. For example, it is known to add a USB expansion card each having at least one additional USB controller to the PCI Express bus of the host machine.

[0008] Furthermore, when the connection between the mobile USB device and the host machine is established via the USB controller, if the interface of the mobile USB device required to perform the desired operation is not enabled, the connection is disconnected and must be re-established using the required interface of the enabled mobile USB device. As an example, when an Android (registered trademark) mobile USB device is connected to a host machine via 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, via a serial connection (for example, by receiving the mobile USB device model and IMEI code). Currently, ADB must be enabled by the user before the diagnostic test is executed while keeping the serial connection also enabled. This can also result in the reserved USB controller endpoint resources being limited until the mobile USB device is disconnected from the host machine.

[0009] More specifically, referring to FIG. 1, a well-known host machine in the form of computing resources, such as a PC 2, for performing diagnostic operations and / or erasure operations on a plurality of mobile USB devices 4a, 4b, and 4c is shown. Each mobile USB device 4a, 4b, 4c may comprise a mobile device, such as a mobile phone, cell phone, smartphone, tablet, laptop, etc. The PC 2 includes a processor 6, a memory 8, and a USB controller 10. As shown by the dashed line, the processor 6 is configured for communication with the memory 8 and the USB controller 10. The memory 8 stores the OS 12 of the PC 2 and dedicated software in the form of a diagnostic and / or erasure application 14 configured to operate on the OS 12 of the PC 2.

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

[0011] Further, the OS 12 of the PC 2 checks whether the setting of the "permitted USB interface" is set to "true". If the setting of the "permitted USB interface" is set to "true", the OS 12 of the PC 2 updates the kernel permission status in step 120, whereby in step 122, the diagnostic and / or erasure application 14 can perform desired diagnostic and / or erasure operations on the mobile USB devices 4a, 4b, 4c via the configured USB interface of the USB controller 10. One or more drivers of the USB controller 10 can be registered and used. The OS 12 of the PC 2 then updates the "permitted USB interface" setting by updating the kernel permission status, whereby in step 124, the diagnostic and / or erasure application 14 can unregister one or more drivers for the USB controller 10. If the setting of the "permitted USB interface" is not set to "true", in step 122, the diagnostic and / or erasure application 14 is not permitted to perform desired diagnostic and / or erasure operations on the mobile USB devices 4a, 4b, 4c via the configured USB interface of the USB controller 10.

Means for Solving the Problems

[0012] According to one aspect of the present disclosure, a method for performing operations on a USB device is provided. The method includes configuring a USB interface for 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 operations on the USB device; performing operations on the USB device; Configuring the USB interface configured in the USB controller to close one or more pipes between the USB controller and one or more corresponding USB endpoints of the USB device including.

[0013] Compared with the prior art method of automatically configuring the USB interface of the USB controller so as to open 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 a specific operation with respect to the USB device, the number of USB endpoint resources of the USB controller reserved for performing operations with respect to the USB device can be reduced. Thus, such a method enables operations to be performed simultaneously with respect to a larger number of USB devices than the prior art method, and / or enables operations to be performed simultaneously with respect to the same number of USB devices using fewer USB endpoint resources of the USB controller and / or fewer USB controllers than the prior art method.

[0014] After an operation is executed, by de-configuring the 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, the time for which the USB endpoint resources of the USB controller are reserved to perform operations regarding the USB device is minimized, thereby potentially enabling the simultaneous execution of operations regarding a larger number of USB devices than with conventional methods, and / or potentially enabling the simultaneous execution of operations regarding the same number of USB devices using fewer USB endpoint resources of the USB controller and / or fewer USB controllers than with conventional methods.

[0015] The method may include configuring the USB interface of 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.

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

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

[0018] The method may include determining the required endpoint configuration of 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 the minimum number of USB endpoints of the USB device required to perform operations regarding the USB device.

[0020] This method may include determining the minimum number of USB endpoints of the USB device required to perform operations regarding the USB device, based at least in part on the received information regarding the USB device and / or the received information regarding the operations performed regarding the USB device.

[0021] The USB controller may be configured for communication with computing resources such as a personal computer. The USB controller may be connected to the computing resources. The computing resources may function as a host machine for the USB controller.

[0022] The computing 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 the operating system (OS) of the computing resources.

[0025] The memory may store a computer program.

[0026] The computer program may include dedicated software or an application.

[0027] The computer program may be configured to operate on the OS.

[0028] When executed by a processing resource, a computer program can cause the processing resource to execute any of the above methods.

[0029] When executed by a processing resource, a computer program can cause the processing resource to change or override the OS's default USB endpoint configuration function and configure the USB interface in 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 the required USB endpoint configuration of the USB device required to perform operations regarding the USB device.

[0030] When executed by a processing resource, a computer program can cause the processing resource to change or override the OS's default USB endpoint configuration release function and deconfigure the configured USB interface in the USB controller 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] This method may include changing or overriding the default USB endpoint configuration function and / or the default USB endpoint configuration release function defined by at least a portion of the kernel of the Linux® OS of the computing resource.

[0033] This method may include selecting appropriate parameters of the OS to change or override the default USB endpoint configuration function and / or the default USB endpoint configuration release function of the OS.

[0034] This method reading a USB device descriptor from the USB device and Using a USB device descriptor, select information about the USB device and / or information about operations to be performed on the USB device from stored information about a plurality of known USB devices stored in the memory of the computing resources or from a database. It may include.

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

[0036] The computing resources may include a user interface.

[0037] When executed by the processing resources, the computer program may cause the processing resources to request information about the USB device and / or information about operations to be performed on the USB device from the user via the user interface.

[0038] When executed by the processing resources, the computer program may cause the processing resources to control the user interface to display a request for input of information about the USB device and / or information about operations to be performed on the USB device.

[0039] When executed by the processing resources, the computer program may cause the processing resources to change and / or override the OS's default USB endpoint configuration function and / or the OS's default USB endpoint configuration cancellation function in response to information about the USB device and / or information about operations to be performed on the USB device.

[0040] Performing an operation on 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 erasure operation may include overwriting data stored in the memory of the USB device.

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

[0044] The operation may include a diagnostic operation.

[0045] Performing a diagnostic operation may include performing a diagnostic operation 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 includes configuring one or more USB interfaces of 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 the 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 the corresponding operation with respect to the given USB device, and further performing the corresponding operation for each one of the plurality of USB devices, and deconfiguring one or more of the 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 and may include.

[0048] Each USB device may include a mobile USB device such as a mobile phone, cell phone, smartphone, tablet, laptop, etc.

[0049] According to one aspect of the present disclosure, an apparatus for executing an operation with respect to a USB device is provided, the apparatus comprising: a USB controller; computing resources configured for communication with the USB controller; and The computing resources include processing resources and a memory, the memory storing an operating system and a computer program, the OS defines a default USB endpoint configuration function, and when executed by the processing resources, the computer program causes the processing resources to change or override the default USB endpoint configuration function of the OS, thereby causing the processing resources to execute any of the methods described above. Each USB device may include a mobile USB device such as a mobile phone, a cellular phone, a smart phone, a tablet, a laptop, etc.

[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] Next, one or more apparatuses and methods for executing an operation with respect to a USB device will be described by way of non-limiting examples only with reference to the accompanying drawings.

Brief Description of the Drawings

[0052]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6A

Figure 6B

DETAILED DESCRIPTION OF THE INVENTION

[0053] Referring to FIG. 3, computing resources in the form of a PC 202 for performing diagnostic operations and / or erasure operations on a plurality of mobile USB devices 4a, 4b, and 4c are shown. The PC 202 includes a processing resource 206, a memory 208, and a user interface 209. The PC 202 functions as a host for a USB controller 210. As shown by the dashed line, the processing resource 206 is 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 erasure application 214 configured to operate on the OS 212.

[0054] Diagnostic and / or erasure application 214 defines a method 300 for use when performing diagnostic and / or erasure operations on one of mobile USB devices 4a, 4b, 4c. Next, method 300 will be described with reference to FIG. 4. When operating on OS 212 and executed by processing resources 206 of PC 202, diagnostic and / or erasure application 214 causes processing resources 206 to execute method 300. Method 300 starts at step 301, and diagnostic and / or erasure application 214 temporarily changes or temporarily overrides the default endpoint configuration function of OS 212. Thereafter, in response to a physical connection of any one of mobile USB devices 4a, 4b, and 4c to PC 202 in step 302, diagnostic and / or erasure application 214 reads a USB device descriptor from mobile USB devices 4a, 4b, 4c in step 304, and uses the USB device descriptor to select information about mobile USB devices 4a, 4b, 4c from the accumulated information about a plurality of known mobile USB devices stored in memory 208 of PC 202, and / or select information about operations to be performed on mobile USB devices 4a, 4b, 4c from the accumulated information about a plurality of known mobile USB devices stored in memory 208 of PC 202. In step 306, diagnostic and / or erasure application 214 checks whether mobile USB devices 4a, 4b, 4c are supported. That is, diagnostic and / or erasure application 214 checks whether information about mobile USB devices 4a, 4b, 4c and / or information about operations to be performed on mobile USB devices 4a, 4b, 4c is stored in memory 208 of PC 202. If it is determined in step 306 that mobile USB devices 4a, 4b, 4c are not supported, the method returns to step 302.In step 306, if it is determined that mobile USB devices 4a, 4b, 4c are supported, the method continues in step 308, and the diagnostic and / or erasure application 214 determines the necessary USB endpoint configuration in the form of the minimum USB interface set required to perform diagnostic and / or erasure operations on the mobile USB devices 4a, 4b, 4c to perform operations on the USB device. The diagnostic and / or erasure application 214 then, in step 310, configures the minimum USB interface set in the USB controller 210 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. When the minimum USB interface set is configured in the USB controller 210, the diagnostic and / or erasure application 214, in step 312, causes the processing resource 206 to perform diagnostic and / or erasure operations on the mobile USB devices 4a, 4b, 4c via the USB controller 210. When the diagnostic and / or erasure operations are performed on the mobile USB devices 4a, 4b, 4c, the diagnostic and / or erasure application 214, in step 314, causes the USB controller 210 to deconfigure the minimum USB interface set 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 the processing resource 206. The method 300 continues, and in step 316, checks whether further operations are to be performed on the mobile USB devices 4a, 4b, 4c using the diagnostic and / or erasure application 214. If further operations are to be performed on the mobile USB devices 4a, 4b, 4c, the method returns to step 308. If no further operations are to be performed on the mobile USB devices 4a, 4b, 4c, the method returns to step 302.

[0055] By using a minimal USB interface set, the USB endpoint resources of the USB controller 210 reserved for performing diagnostic operations and / or erasure operations on the mobile USB devices 4a, 4b, 4c via the USB controller 210 are minimized. Thus, by using a minimal USB interface set, operations can be performed simultaneously on a larger number of mobile USB devices than in the prior art methods, and / or operations can 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 in the prior art methods. Moreover, after diagnostic operations and / or erasure operations are performed on the mobile USB devices 4a, 4b, 4c via the USB controller 210, by deconfiguring the minimal USB interface set of 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, it is not necessary to physically disconnect the mobile USB devices 4a, 4b, 4c from the USB controller 210, and the USB endpoint resources of the USB controller 210 are freed at the earliest possible opportunity. Thus, method 300 enables operations to be performed simultaneously on a larger number of mobile USB devices than in the prior art methods, and / or enables 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 in the prior art methods.

[0056] As will be described in more detail below, in method 300, the endpoint configuration is deferred until the diagnostic and / or erasure application 214 determines which particular interface of the mobile USB devices 4a, 4b, 4c to use. The actual implementation mechanism is based on a two-level USB authentication framework of the OS 212 of the PC 202 that performs access control at the USB device level and also at the USB interface level. Method 300 effectively couples USB endpoint configuration and de-configuration to interface-level permission control. Next, a method 300 for use when performing a diagnostic operation and / or an erasure operation on one of the mobile USB devices 4a, 4b, 4c will be described in the processing flow of the OS 212 of the PC 202 with reference to FIG. 5. The method 300 starts in response to a physical connection of one of the mobile USB devices 4a, 4b, and 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 devices 4a, 4b, 4c. In step 404, the OS 212 of the PC 202 generates a hot plug event to the diagnostic and / or erasure application 214. In step 406, the OS 212 of the PC 202 then checks whether the setting of "permitted by default" is set to "true". If the setting of "permitted by default" is set to "true", the OS 212 of the PC 202 configures the USB interface of the USB controller 210 in 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. If the setting of "permitted by default" is not set to "true", the OS 212 of the PC 202 waits in step 410 until permission is granted by some other authorization mechanism to the diagnostic and / or erasure application 214 before proceeding to step 412. In step 412, if the setting of "interface permitted by default" is set to "true", the OS 212 of the 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 erasure application 214 performs the desired diagnostic and / or erasure operations regarding the mobile USB devices 4a, 4b, 4c via the USB interface of the USB controller 210 when configured in the device default configuration.

[0058] However, if the setting of "interface not permitted by default" is set to "true", the OS 212 of the PC 202 proceeds to step 420, and upon receiving USB interface permission, the OS 212 of the PC 202 configures the USB endpoints of the mobile USB devices 4a, 4b, 4c required according to the minimum USB interface set determined in step 308 of FIG. 4. Furthermore, in step 422, the OS 212 of the PC 202 updates the kernel permission status of the USB controller 210, whereby the diagnostic and / or erasure application 214 can register and use one or more drivers of the USB controller 210 so that the diagnostic and / or erasure application 214 can perform desired diagnostic operations and / or erasure operations on the mobile USB devices 4a, 4b, 4c via the configured USB interface of the USB controller 210. The OS 212 of the PC 202 then updates the "permitted USB interface" setting to enable the diagnostic and / or erasure application 214 to deregister one or more drivers for the USB controller 210 in step 426. In step 428, the OS 212 of the PC 202 causes the USB controller 210 to deconfigure the USB endpoints of the mobile USB devices 4a, 4b, 4c configured according to the minimum USB interface set to release 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 enable the diagnostic and / or erasure application 214 to deregister one or more drivers for the USB controller 210 in step 430.

[0059] From the above description of FIG. 5, those skilled in the art will understand that when the setting of "interfaces not permitted by default" is set to "true", in step 420, the USB endpoints of the mobile USB devices 4a, 4b, 4c are configured for the minimum USB interface set of the mobile USB devices 4a, 4b, 4c, and in other cases, in step 408, the USB endpoints of the mobile USB devices 4a, 4b, 4c are configured according to the USB device default configuration. Further, those skilled in the art will understand that after the diagnostic and / or erasure application 214 is executed in step 424, in step 428, the configured USB endpoints are deconfigured, thereby releasing the USB endpoint resources of the USB controller 210.

[0060] FIG. 6A shows the USB interface claim operation implemented by the OS 212 of the PC 202 with check steps added for use in combination with the method 300. In those check steps, if the USB interface is not currently permitted, the USB interface is permitted and flagged as being permitted based on the claim request.

[0061] Conversely, FIG. 6B shows the USB interface release operation implemented by the embedded software 216 with check steps added for use in combination with the method 300. In those check steps, if the USB interface is permitted in response to a claim request, the USB interface is automatically de-permitted.

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

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

[0064] Those skilled in the art will also understand that, depending on the implementation form, some of the steps of the methods shown in FIGS. 5, 6A, and 6B, which are defined by the OS 212 of the PC 202, may be defined by the diagnostic and / or erasure application 214. Conversely, some of the steps of the methods shown in FIGS. 5, 6A, and 6B, which are defined by the diagnostic and / or erasure application 214, may be defined by the OS 212 of the PC 202.

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

Claims

1. A method for performing an operation with respect to a USB device, comprising: configuring a USB interface for the 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 for performing the operation with respect to the USB device; performing the operation with respect to the USB device; deconfiguring the configured USB interface for 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. A method as described above.

2. The method according to claim 1, further comprising configuring the USB interface for 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, for example, in response to detecting attachment or connection of the USB device to the USB controller.

3. The method according to claim 1 or 2, further comprising receiving information about the USB device and / or receiving information about the operation performed with respect to the USB device.

4. The method according to claim 3, further comprising determining the required 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 performed with respect to the USB device.

5. The method according to claim 4, wherein the required endpoint configuration of the USB device includes a minimum number of USB endpoints of the USB device required for performing the operation with respect to the USB device.

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

7. The USB controller is configured for communication with a computing resource including processing resources and memory, the memory storing an operating system (OS) and a computer program configured to operate on the OS, and when executed by the processing resources, the computer program causes the processing resources to execute the method according to any one of claims 1 to 6.

8. The method according to claim 7, wherein the USB controller is connected to the computing resource.

9. The method according to claim 7 or 8, wherein the computer program includes dedicated software or an application.

10. When executed by the processing resources, the computer program causes the processing resources to change or override the default USB endpoint configuration function of the OS and configure the USB interface of the USB controller 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. The method according to any one of claims 7 to 9.

11. When executed by the processing resources, the computer program causes the processing resources to change or override the default USB endpoint configuration release function of the OS and reconfigure the configured USB interface 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 USB device. The method according to claim 10.

12. The method according to any one of claims 7 to 11, wherein the OS of the computing resource includes a Linux (registered trademark) OS.

13. The method according to claim 12, comprising changing or overriding the default USB endpoint configuration function and / or the default USB endpoint configuration cancellation function defined by at least a part of the kernel of the Linux (registered trademark) OS of the computing resource.

14. The method according to any one of claims 7 to 13, comprising selecting appropriate parameters of the OS to change or override the default USB endpoint configuration function and / or the default USB endpoint configuration cancellation function of the OS.

15. Reading a USB device descriptor from the USB device, and Using the USB device descriptor to select information about the USB device and / or information about the operations to be performed on the USB device from stored information about a plurality of known USB devices stored in the memory of the computing resource or from a database such as a database located remotely from the computing resource. The method according to any one of claims 7 to 14, comprising.

16. When executed by the processing resource, the computer program causes the processing resource to request the user, via a user interface of the computing resource, for information about the USB device and / or information about the operations to be performed on the USB device. The method according to any one of claims 7 to 15.

17. The method according to any one of claims 1 to 16, wherein the operation includes an erasing operation.

18. Performing the erasing operation includes overwriting data stored in the memory of the USB device and / or causing the USB device to perform an erasing operation defined by the USB device. The method according to claim 17.

19. The method according to any one of claims 1 to 18, wherein the operation includes a diagnostic operation.

20. Performing the diagnostic operation includes performing the diagnostic operation on the USB device and / or causing the USB device to perform a diagnostic operation defined by the USB device. The method according to claim 19.

21. Configuring one or more USB interfaces in 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 the corresponding plurality of required USB endpoint configurations of the plurality of USB devices, where the required USB endpoint configuration for any given USB device is the USB endpoint configuration necessary to perform the corresponding operation for the given USB device, and further, performing the corresponding operation for each one of the plurality of USB devices; deconfiguring 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 The method according to any one of claims 1 to 20, comprising.

22. The method according to any one of claims 1 to 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.

23. An apparatus for performing an operation with respect to a USB device, a USB controller; computing resources configured for communication with the USB controller comprising The computing resources include processing resources and a memory, the memory stores an operating system and a computer program, The OS defines a default USB endpoint configuration function, and when executed by the processing resources, the computer program causes the processing resources to change or override the default USB endpoint configuration function of the OS, thereby causing the processing resources to execute any of the methods described above.

24. The apparatus according to claim 23, 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.