Hi, All

As currently defined, UsbIo protocol performs USB transfers on an interface as 
well as it returns various descriptors data for the selected device 
configuration.

This functionality is sufficient for common device drivers - mass storage, 
keyboard/mouse. However, more complex devices implement several types of 
descriptors that are not supported by UsbIo. These are Class Specific interface 
and endpoint descriptors, as well as interface association descriptors.

Also, when an interface descriptor contains multiple alternate settings, 
currently it is impossible to retrieve the data of non-default setting without 
selecting this setting. And this selection involves USB transaction with 
SET_INTERFACE command. Issuing this command might change the device state and 
may not be desirable.

The list of such "complex" devices includes USB cameras, audio devices, 
communication devices, modems, network controllers. Writing UEFI device driver 
for these using existing UsbIo is challenging.

A new protocol UsbIoExt extends the functionality of UsbDxeBus and aims to 
overcome the above mentioned problems.
PR: https://github.com/tianocore/edk2/pull/6368

It implements a protocol that 1) retrieves class specific descriptors 2) allows 
to get data from different alt setting without switching to this setting

Interface Association descriptor support will be a different PR that makes use 
of this UsbIoExt protocol.

Please review and respond.

[cid:image001.png@01DB2620.1A038990]

Oleg Ilyasov

BIOS Core Group
American Megatrends International LLC.

+1(770)246-8798

-The information contained in this message may be confidential and proprietary 
to American Megatrends (AMI). This communication is intended to be read only by 
the individual or entity to whom it is addressed or by their designee. If the 
reader of this message is not the intended recipient, you are on notice that 
any distribution of this message, in any form, is strictly prohibited. Please 
promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and 
then delete or destroy all copies of the transmission.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120683): https://edk2.groups.io/g/devel/message/120683
Mute This Topic: https://groups.io/mt/109195507/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to