Handling GET_DESCRIPTOR Configuration Requests
When the host issues a GET_DESCRIPTOR Configuration request the device needs to respond with the requested configuration descriptor plus all the interface and endpoint descriptors associated to that configuration descriptor during the DATA stage.
As a reminder, all GET_DESCRIPTOR request types are share the following properties:
bmRequestTypeis 0b10000000bRequestis 6 (i.e. the GET_DESCRIPTOR Request Code, defined in table 9-4 of the USB specification)
A GET_DESCRIPTOR Configuration request is determined the high byte of its wValue field:
- The high byte of
wValueis 2 (i.e. theCONFIGURATIONdescriptor type, defined in table 9-5 of the USB specification)
In the next sections, let's look into all the concepts required to respond to this request.