Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 1 | Introduction |
| 2 | ============ |
| 3 | |
| 4 | A USB high speed host must pass electrical compliance tests defined |
| 5 | by the USB-IF. These compliance tests require the host controller to |
| 6 | support various test modes defined by the USB 2.0 specification. |
| 7 | |
| 8 | USB-IF defines a standard method to initiate the test modes on an |
| 9 | embedded host controller by using a test fixture. During enumeration |
| 10 | by the USB host, this test fixture provides a Vendor-Id/Product-Id |
| 11 | (or VID/PID) pair which is used by the host to initiate a particular |
| 12 | test mode as each VID/PID pair corresponds to a unique test mode. |
| 13 | |
| 14 | Hardware description |
| 15 | ==================== |
| 16 | |
| 17 | The driver doesn't require any new hardware and is like any other |
| 18 | USB host class driver. It gets notified when a Test Fixture device is |
| 19 | connected to the host. |
| 20 | |
| 21 | The test modes that can be initiated are specific to the high speed |
| 22 | hosts controllers only. |
| 23 | |
| 24 | Software description |
| 25 | ==================== |
| 26 | |
| 27 | This EHSET (or Embedded High Speed Electrical Test) driver registers |
| 28 | itself with USB core as the preferred driver for the Test Fixture |
| 29 | device. During registration it provides the list of the various |
| 30 | VID/PID pairs which the Test Fixture may present during enumeration. |
| 31 | The VID is always 0x1A0A, and the PIDs presented by the Test Fixture |
| 32 | correspond to the following test modes: |
| 33 | |
| 34 | __________________________________________________ |
| 35 | PID Test Mode |
| 36 | -------------------------------------------------- |
| 37 | 0x0101 TEST_SE0_NAK |
| 38 | 0x0102 TEST_J |
| 39 | 0x0103 TEST_K |
| 40 | 0x0104 TEST_PACKET |
| 41 | 0x0106 HS_HOST_PORT_SUSPEND_RESUME |
| 42 | 0x0107 SINGLE_STEP_GET_DEV_DESC |
| 43 | 0x0108 SINGLE_STEP_SET_FEATURE |
| 44 | -------------------------------------------------- |
| 45 | |
| 46 | The control flow is as follows: |
| 47 | |
| 48 | 1. USB core notifies the ehset driver when a device (Test Fixture) is |
| 49 | attached to the host having the VID/PID pair as one of the specified |
| 50 | above. |
| 51 | |
| 52 | 2. EHSET driver checks the PID which the Test Fixture presented during |
| 53 | enumeration and then initiates the corresponding test mode. |
| 54 | |
| 55 | |
| 56 | Dependencies |
| 57 | ============ |
| 58 | |
| 59 | The driver depends on the USB EHCI Host support. |
| 60 | |
| 61 | Other |
| 62 | ===== |
| 63 | |
| 64 | The driver's code shall be added as a new file in the |
| 65 | /kernel/drivers/usb/misc directory. |
| 66 | |
| 67 | Embedded High-speed Electrical Test Procedure document is available |
| 68 | at: |
| 69 | http://www.usb.org/developers/onthego/EHSET_v1.01.pdf |