Діагностична утиліта checkusb

У ситуації, коли до швидкісного xHCI-контролеру підключено USB 3.0 пристрій, варто визначитися: чи здійснюється підтримка режиму SuperSpeed ​​або обмін йде на знижених швидкостях, більш властивих протоколу USB 2.0 (High Speed ​​- 480 Мб / сек) або навіть USB 1.1 (Full Speed - 12 Мб / сек; Low Speed ​​- 1,5 Мб / сек). Відповідь на це питання покликана дати утиліта CheckUSB.

Принцип роботи CheckUSB 3.0

Діагностична утиліта дозволяє отримати детальну інформацію про поточний стан USB3.0 контролера xHCI і швидкісних характеристиках підключених пристроїв, зокрема, - прийняти рішення про підтримку режиму SuperSpeed, властивого тільки протоколу USB 3.0.

Опис результатів роботи CheckUSB 3.0

Детально розберемо поточний стан контролера USB3.0 xHCI, і сенс параметрів, отриманих за допомогою діагностичної утиліти CheckUSB 3.0. Як приклад розглянемо рапорт, згенерований на тестовій платформі, в якості якої використаний ноутбук ASUS N750JK.

Діагностична утиліта checkusb

Мал. 1.Скріншот діагностичної утиліти CheckUSB

Subsystem Vendor: Device
Ідентифікатори підсистеми. Код виробника 1043h використовується компанією ASUS. Код устрою 129Dh використовується для декількох пристроїв ноутбука N750JK. Зауважимо, що поля Subsystem ID не ідентифікують пристрій однозначно, а є уточнюючими по відношенню до полів Vendor ID, Device ID.

USB 2.0 Port Routing
У цьому полі використовується 14 молодших біт за максимальною кількістю обслуговуваних USB2-з'єднань. Кожному USB2-з'єднанню відповідає один біт. Нульове значення біта означає, що з'єднання обслуговується «старим» контролером USB2 EHCI, який також присутній в даному наборі системної логіки з метою сумісності з застарілими програмним забезпеченням. Середнє арифметичне значення дає змогу встановити в розпорядження USB2-підсистеми контролера xHCI. Значення 00003FFFh містить 14 одиничних бітів, що означає обслуговування всіх 14 з'єднань контролером xHCI.

USB 2.0 Port Routing Mask
Кожен біт цього регістра дозволяє (1) або забороняє (0) операційній системі модифікувати відповідний біт раніше розглянутого регістра, що означає дозвіл динамічно перемикати пристрої між контролерами USB2 EHCI і USB3 xHCI. Значення 00003FFFh дає операційній системі дозвіл на керування всіма 14 сполуками.

USB 3.0 Port SuperSpeed ​​Enable
У цьому полі використовується 6 молодших біт за максимальною кількістю обслуговуваних USB3-з'єднань. Кожен біт цього регістра дозволяє (1) або забороняє (0) детектування і включення режиму USB3 SuperSpeed. Значення 0000000Fh містить чотири одиничних біта. Відзначимо, що це відповідає кількості зовнішніх SuperSpeed ​​портів ноутбука.

USB 3.0 Port Routing Mask
Кожен біт цього регістра дозволяє (1) або забороняє (0) операційній системі модифікувати відповідний біт раніше розглянутого регістра, що означає дозвіл динамічно включати і вимикати підтримку режиму SuperSpeed ​​для кожного порту індивідуально. Тут також отримуємо значення 0000000Fh, в якому чотири одиничних біта.

USB 2.0 Port Disable Override
Кожен біт цього регістра забороняє (1) або дозволяє (0) сприйняття контролером xHCI інформації про USB2-судинних. Нагадаємо, що порти USB2 в цілях сумісності також можуть обслуговуються контролером USB2 EHCI. У нашому випадку, в регістрі значення 00000000h дозволяє контролеру xHCI реагувати на всі події в USB2-підсистемі.

USB 3.0 Port Disable Override
Кожен біт цього регістра забороняє (1) або дозволяє (0) сприйняття контролером xHCI інформації про USB3-судинних. Значення 00000000h дозволяє контролеру xHCI реагувати на всі події в USB3-підсистемі.

HCSPARAMS1
Host Controller Structural Parameters. Містить кілька бітових полів. Біти [31-24] декларують максимальну кількість USB-з'єднань (USB2 і USB3), що обслуговуються контролером, з урахуванням конфігурації відповідно до архітектури платформи, в даному випадку маємо 13h = 19. Поля [18-8] = MaxInterrupters, [7-0] = MaxSlots декларують канали взаємодії контролера і драйвера. У регістрі 13000820h.

Засоби розробки і налагодження CheckUSB 3.0

Вихідні тексти діагностичної утиліти CheckUSB підготовлені в форматі Flat Assembler 1.71.17. Програмний продукт розрахований на запуск в середовищі x64 UEFI. Поточна версія призначена тільки для роботи на персональних платформах, оснащених системною логікою Intel 8 Series. Результати роботи утиліти CheckUSB можливі, якщо режим USB 3.0 дозволений в установках CMOS Setup.

Схожі статті