Usb enhanced host controller

Содержание

Usb enhanced host controller

Мной не проверялось.

Неполадки USB 2.0 в Windows 8 на материнских платах с Intel 6 Series Chipset

После апгрейда на Windows 8 мною была увидена странноватая неувязка: после спящего режима, а время от времени и при прохладном старте, я не мог войти в систему так как ни мышка ни клавиатура не функционировали! Спешу разочаровать тех кто сталкивается с этой неувязкой, понятного решения пока нет.

Проблема

Итак, причина нашлась достаточно стремительно. Оказывается, время от времени при старте системы один либо оба USB 2.0 контроллера просто не работают. Если глядеть диспетчер устройств, то одно либо сходу оба последующих устройства остановлены (желтоватый восклицательный символ):

  • Intel® 6 Series/C200 Series Chipset Family USB Enhanced Host Controller — 1C2D
  • Intel® 6 Series/C200 Series Chipset Family USB Enhanced Host Controller — 1C26

Соответственно ни одно из присоединенных устройств при всем этом не работает. Что любопытно, неувязка исчезает сама собой при перезагрузке.

Сначала я было помыслил, что неувязка в материнке (ASUS P8P67 Pro), но гугл дал подсказку, что неувязка появилась не только лишь у меня. Что броско, в Windows 7 таковой трудности не наблюдается.

Пролистав тему, я нашел последующие варианты решения трудности.

Использовать дополнительный контроллер

У меня на материнке есть дополнительный контроллер USB 3.0. Соответственно простым решением будет переткнуть критические устройства на его порты. Лично испробовал этот метод, все работает. К сожалению портов USB 3.0 значительно меньше, чем 2.0.

Отключить USB Legacy Mode

Советуют отключить USB Legacy Mode в BIOS. Судя по теме, помогает не многим, проблема может вернуться. Мне не помогло.

Intel 6 series C200 Series Chipset family USB enhanced host controller 1C26 | Fix Ports not working

Перезапуск контроллера вручную

Или не со всем вручную, а при помощи планировщика заданий по событию включения. Для этого используется инструмент devcon. Строка запуска будет примерно следующая:

devcon.exe restart "@PCI\VEN_8086&DEV_1C26&SUBSYS_04A91028&REV_04\3&11583659&0&E8"

С поправкой на ID устройства из диспетчера устройств.

Хак реестра

Предлагается удалить параметры «LowerFilters» и «UpperFilters» в реестре по адресу.

Usb enhanced host controller
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\

Мной не проверялось.

Итог

Глюк неприятный, хотя с ним и можно жить. Я уже было собрался менять материнку, но оказалось что проблема все-таки софтверная. К сожалению неизвестно, дождемся ли мы какой-то реакции от Intel или Microsoft, ибо уже несколько ревизий драйверов пролетело, но воз и ныне там.

  • Компьютерное железо
  • Софт

Что такое XHCI hand off в настройках BIOS?

Usb enhanced host controller

Fix Standard Universal PCI to USB Host Controller is not working properly in windows 7/8/10

Опция xhci hand off практически всегда встречается в современных материнских платах, на которых реализованы порты USB 3.0. Также данную опцию часто путают с EHCI Hand-Off. Обе они обычно имеют два состояния – Enabled (включено) и Disabled (выключено). Реже бывает значение AUTO.

В данной статье мы расскажем вам о назначении каждой из выше описанных опций, также когда и какую из них нужно включать.

Для чего нужны EHCI Hand-Off и XHCI hand off?

Обе данные опции отвечают за включение и отключение функции контроля передачи управления контроллером USB от BIOS к операционной системе.

Разница между ними состоит в том, что EHCI Hand-Off (расшифровывается как Enhanced Host Controller Interface) контролирует передачу управления контроллера USB 2.0, а XHCI Hand Off (eXtensible Host Controller Interface) – контроллера USB 3.0.

Стоит обратить внимание на тот факт, что usb порты работают как в BIOS, так и в операционной системе. Итак вот до того, как начнет грузится ОС работой контроллера USB управляет BIOS, а после загрузки ОС передает управление контроллером ей.

Ранее в этот самый момент передачи управления могли возникать проблемы и ошибки. Чтобы ошибки исключить и были придуманы опции EHCI Hand-Off и XHCI Hand Off. Последняя является продолжением первой, потому что современные материнские платы имеют на своем борту eXtensible Host Controller Interface – usb контроллер, поддерживающий работу с USB 3.0.

Какое значение выставлять?

Что касается старого EHCI Hand-Off, то, начиная с Windows XP, ей нужно выставлять значение Disabled, потому что механизм контроля и исключения ошибок при передачи управления контроллером USB 2.0 был интегрирован в операционную систему.

Usb enhanced host controller

Правильные значениях для опций XHCI hand off и EHCI Hand-Off

Что касается опции XHCI Hand Off, то здесь все наоборот. Она должны быть всегда включена вне зависимости от версии операционной системы. По дефлоту включена практически на всех материнских платах.

Usb enhanced host controller

Ее отключение может привести к сбоям в работе USB портов, также устройств, подключенным к ним.

Лучшая благодарность автору — репост к себе на страничку:

Usb enhanced host controllerКомпьютерная Энциклопедия

«Расширенный» хост-контроллер EHC (Enhanced Host Controller) был введен фирмой Intel для поддержки высокой скорости в USB 2.0. Его интерфейс — EHCI — описан в документе «Enhanced Host Controller Interface Specification for Universal Serial Bus», версия 1.0 опубликована в марте 2002 года. Контроллер EHC предназначен для работы с устройствами лишь на высокой скорости подключения к корневому хабу, при всем этом для устройств FS/LS, которые подключены через промежуточный хаб USB 2.0, контроллер EHC выполняет расщепленные транзакции. С теми портами корневого хаба, к которым непосредственно подключены хабы и устройства USB 1.x, работает контроллер-компаньон (UHC или OHC). Коммутацию портов и контроллеров осуществляет маршрутизирующая логика, входящая в состав корневого хаба USB 2.0. Обнаружением подключения устройств к корневому хабу занимается драйвер EHC через регистры EHC. Обнаружив подключение FS/LS-устройства, драйвер перекоммутирует данный порт на контроллер-компаньон, и отныне порт отдается в ведение компаньону и его драйверу. Компаньон и его драйвер могут и не «знать» о том, что они работают в составе контроллера USB 2.0. Для портов, остающихся в ведении EHC, эмулируется внешний хаб — ПО манипулирует портами, используя стандартные запросы к хабам USB.

Контроллер EHC имеет конфигурационные регистры PCI, операционные регистры ввода/вывода, отображенные на пространство памяти (memory mapped I/O) и использует область системной памяти для взаимодействия с драйвером. Исходя из убеждений взаимодействия с драйвером EHC отчасти напоминает UHC, но высокая скорость передачи (480 Мбит/с) потребовала усиления интеллекта контроллера с целью уменьшения числа операций обмена между драйвером, памятью и контроллером. В EHC просматриваются многие идеи, заложенные в OHC. Структуры данных разработаны с учетом минимизации обращений к памяти. Все структуры должны размещаться в памяти так, чтобы они не пересекали границы четырехкилобайтных страниц памяти — это позволяет оптимизировать сосуществование OHC с виртуальной памятью, основанной на страничной переадресации, применяемой в процессорах x86.

В EHCI исходя из убеждений планирования транзакций передачи делятся на периодические (изохронные и прерывания) и асинхронные (управляющие передачи и массивы). Любой из этих двух планов реализуется по-своему и может быть включен в работу и выключен. Контроллер начинает каждый микрокадр с выполнения периодических передач (если они разрешены), оставшееся от них время выделяется для выполнения асинхронных передач (аналогично UHC). За то, чтобы в микрокадре оставалось время для асинхронных передач, отвечает драйвер. Хост-контроллер аппаратно следит лишь за тем, чтобы транзакции не пересекали границу микрокадра: если контроллер «видит», что транзакция может не успеть завершиться к моменту EOF1, он ее не начнет. При всем этом возможна перестраховка, поскольку точное время исполнения транзакции заранее не известно (неизвестно, сколько придется вставить бит и каковы задержки в кабелях, хабах и устройстве).

Для всех передач с гарантированной доставкой (прерывания, управление и массивы) используются структуры данных qTD (Queue Element Transfer Descriptor), описывающие очереди буферов, обеспечивающие автоматическое упорядоченное исполнение потоков передач. В EHC под передачей понимается последовательность однотипных транзакций; ограничен лишь суммарный размер передаваемых блоков (20 Кбайт). Транзакции управления хост планирует как последовательность двух-трех «передач» (в терминах EHC). Драйвер может динамически (во время исполнения плана) добавлять новые передачи в очереди. Контроллер аппаратно поддерживает сигнализацию окончания блоков короткими пакетами: приняв короткий пакет, контроллер может пойти по альтернативной последовательности передач для данной очереди (другими словами организуется условный переход). Для изохронных передач используются специальные структуры данных (iTD — Isochronous Transaction Descriptors для HS и siTD — Split-transaction IsochronousTransfer Descriptors для расщепления транзакций с FS-устройствами). Для изохронных передач на HS дескриптор может описывать передачу до 24 Кбайт данных, на FS — до 1023 байт.

Основой планирования периодических транзакций является список кадров (Frame List) на 1024, 512 или 256 вхождений. Базовый адрес и длина списка устанавливается программно, текущий элемент списка выбирается по счетчику кадров. Исполнение плана начинается в каждом микрокадре, таким макаром, каждый текущий элемент списка выбирается 8 раз подряд, после этого контроллер переходит к следующему элементу. Элемент списка может указывать на iTD, siTD или заголовок очереди (QH), относящейся к прерываниям. Кроме того, он может указывать на специальные структуры (FSTN), используемые для обеспечения корректности отработки расщепленных транзакций около границы кадра. В элементе списка кроме собственно указателя имеется идентификатор типа структуры (Typ), на которую ссылается указатель (iTD, siTD, QH или FSTN), также признак заглушкитерминатора (T). Все дескрипторы изохронных передач и заголовки очередей имеют «горизонтальный» указатель на следующую структуру, в каком также задается и тип (Typ) этой структуры, и признак заглушки-терминатора (T). Цепочка дескрипторов и заголовков очередей, начинающаяся от списка кадров, должна завершаться дескриптором (или заголовком), у которого установлен признак заглушки-терминатора (T). Только отработав такой дескриптор (или заголовок), контроллер приступает к исполнению плана асинхронных передач.

Для упрощения планирования расщепленных транзакций (они не должны пересекать границу кадра) контроллер организует фазовый сдвиг между кадрами шины (BFrame), которые видны хабам и устройствам по факту смены номера кадра в маркере SOF, и кадрами хоста (HFrame), которыми оперирует драйвер при построении планов и по которым выбираются периодические транзакции из списка кадров. Кадры шины отстают от кадров хоста на один микрокадр, более подробные пояснения (но не мотивы) приведены в спецификации EHCI. Для обслуживания расщепленных периодических транзакций имеется специальная структура (узел) FSTN, содержащая пару указателей: нормальный, обеспечивающий переход к следующей структуре (iTD, siTD, QH или FSTN), и обратный, который может указывать лишь на заголовок очереди. Нюансы планирования расщепленных транзакций здесь приводить не будем, с ними можно ознакомиться в спецификации EHCI.

Основой планирования непериодических транзакций является асинхронный список (asynchronous list), представляющий из себя кольцо из заголовков очередей. В OHC регистр AsyncListAddr указывает на текущий элемент списка; к отработке этого элемента контроллер приступает, завершив отработку периодических передач в данном микрокадре (или сразу, если периодические передачи запрещены или отсутствуют). Далее, по мере отработки очередей, контроллер заносит в этот регистр адреса последующих указателей. Таким макаром, обслуживание всех асинхронных очередей выполняется по кругу, без привязки к конкретным кадрам. Контроллер останавливает обход асинхронного списка, когда обнаруживает опустошение всех его очередей, для возобновления обхода требуется вмешательство драйвера. Нормальной дисциплиной обслуживания очередей является отработка одной шинной транзакции из очереди, после этого контроллер переходит к следующей очереди. Возможен и специальный режим парковки (Asynchronous Schedule Park Mode), в каком контроллеру разрешается выполнять подряд по несколько транзакций из одной очереди. Режим парковки распространяется на все очереди высокоскоростных асинхронных передач.

Дескриптор iTD описывает изохронную передачу, которая может выполняться за1–8 этапов (микрокадров, в каких происходит обращение к данному дескриптору). Каждому этапу в дескрипторе соответствует своя запись (transaction record), управляющая выполнением и отражающая состояние транзакции (активность, ошибки выполнения, необходимость прерывания по выполнению, реальная длина) и содержащая указатель на буфер данных. Каждый этап может выполняться за 1–3 транзакции в микрокадре (точка может быть широкополосной). Дескриптор содержит и описание конечной точки: адрес устройства и точки, направление, размер пакета. Контроллер формирует транзакции исходя из указанного размера пакета. Буферы для данных могут располагаться в разных физических страницах памяти, но логически они должны представлять собой непрерывную область в виртуальной памяти. Для хранения данных (максимум 8 этапов по три транзакции по 1024 байт — 24 576 байт) может потребоваться до 7 страниц по 4 кбайт; для всех этих страниц в дескрипторе имеются соответствующие указатели.

Дескриптор siTD описывает одну расщепленную транзакцию. Адресная часть содержит номер и направление конечной точки, адрес устройства, также адрес и номер порта хаба, выполняющего трансляцию данной транзакции. В дескрипторе имеются поля битовых масок μFrame_S-mask и μFrame_C-mask, определяющих, в каких микрокадрах данного кадра должны выполняться транзакции SS и CS соответственно. Контроллер в дескрипторе отмечает микрокадры, в каких в действительности происходили транзакции CS. Дескриптор имеет обычный набор полей, управляющих выполнением и отражающих состояние транзакции (активность, ошибки выполнения, необходимость прерывания по выполнению, реальная длина). Кроме того, в siTD имеются специфические поля, управляющие текущей фазой (SS или CS), также признак специфической ошибки расщепленной транзакции — пропуска микрокадра, в каком должна выполняться очередная транзакция CS. Этот пропуск может случиться, если контроллер не выпустит текущую транзакцию из-за нехватки времени в микрокадре. Блок передаваемых данных (до 1023 байт) может располагаться в одной или двух физических страницах памяти, и в дескрипторе для них имеются необходимые указатели. В siTD имеется специфический элемент — обратный указатель (Back Pointer) на siTD предыдущего кадра, который применяется при планировании транзакций IN, завершающихся близко к границе кадра.

Элемент очереди-дескриптор передачи qTD, описывает одну передачу размером до 20 480 байт. Дескриптор привязан к своему заголовку очереди (QH); он содержит пару указателей на следующие элементы данной очереди:

  • основной, указывающий на дескриптор следующей передачи, которую требуется выполнить после нормального завершения текущей;
  • альтернативный, указывающий на дескриптор передачи, которую требуется выполнить в случае завершения текущей передачи по приему короткого пакета

Дескриптор имеет обычный набор полей, управляющих выполнением и отражающих состояние транзакции: активность, ошибки выполнения, необходимость прерывания по выполнению, используемый маркер (IN, OUT или SETUP). В дескрипторе указывается общая длина передачи. Буфер данных для передачи должен располагаться в непрерывной области виртуальной памяти; для описания буфера передачи максимальной длины имеется массив из пяти указателей физических страниц.

Заголовок очереди QH создается для каждой сконфигурированной неизохронной конечной точки каждого устройства USB. Заголовки очередей непериодических конечных точек связаны между собой по горизонтали в кольцо, зачем в каждом заголовке имеется соответствующий указатель. Заголовок очереди несет исчерпывающее описание конечной точки: номер и направление точки, максимальный размер пакета, число пакетов в микрокадре (для широкополосных точек), адрес устройства, его скорость. Для FS/LS устройств имеется и информация для выполнения расщепленных транзакций: номер хаба и порта, выполняющего расщепление транзакций, маски микрокадров для транзакций SS и CS. В заголовке очереди имеется оверлейная область, в которую контроллер помещает необходимые ему поля qTD текущей транзакции. Продвижение по очереди осуществляет контроллер, помещая в оверлей следующий qTD после завершения отработки предыдущего.

Контроллер EHC вырабатывает прерывания для разных категорий событий, и категории могут быть селективно замаскированы:

  • по завершении передачи, в дескрипторе которой имеется соответствующий признак, также по приему короткого пакета. Эти прерывания могут быть задержаны по времени до определенного задаваемого программно порога, что позволяет снизить частоту запросов прерывания от EHC. Без задержки частота запросов может достигать частоты микрокадров (для IBM PC это слишком часто); с задержкой они не смогут появляться быстрее, чем определяет значение порога;
  • по событию хост-контроллера: оборот по списку кадров, изменению состояния или перегрузке портов хаба, специальному разрешению программного изменения последовательности заголовков очередей, по ошибке системного подключения (переполнение или переопустошение буфера FIFO из-за занятости шины PCI).

Постановка запросов передач в очереди, как и включение изохронных передач в план, также добавление/удаление очередей может выполняться драйвером динамически, во время работы хост-контроллера. Однако для сохранения целостности и связанности структур программа должна соблюдать определенные правила взаимодействия, чтобы не пытаться изменять структуры, которые на этот момент отрабатываются контроллером. Для этой синхронизации хост-контроллер использует специальные биты-признаки в своем регистре состояния и в структурах данных. Для «сбора урожая» — поиска отработанных передач — драйверу приходится просматривать во всех дескрипторах передач признаки активности. Такого сервиса, как очередь исполненных передач (как в OHC), контроллер EHC не предоставляет. Но по сравнению с UHC, конечно, объем работ драйвера EHC сокращается, поскольку этот контроллер оперирует передачами, а не транзакциями. Однако у драйвера EHC появляется дополнительная довольно сложная задача — планирование расщепленных транзакций.

Похожие статьи

  • Sata controller что это

    Содержание Обзор SATA-контроллера ASMedia ASM1166 с интерфейсом PCIe 3.0 x2 ASMedia ASM1166 Тестирование Методика тестирования Участники тестирования…

  • Usb xhci controller

    Содержание Расширяемый интерфейс хост-контроллера — Extensible Host Controller Interface Архитектурные цели Архитектурные детали Поддержка всех скоростей…

  • Vmd controller что это

    Содержание RAID-массивы на NVMe Что такое RAID? Виды RAID-контроллеров Linux Software RAID Intel® Virtual RAID On CPU LSI MegaRAID 9460-8i Тестовый стенд…

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Что будем искать? Например,Человек

Мы в социальных сетях