Bios71 0 August 14, 2018 Posted August 14, 2018 · Report post Что за зверь и как с ним бороться? Hot-Plug когда собственно "работать" должен? В БИОСе/UEFI-Shell? В DOS? В Win/Linux? В Win/Linux любом или только "серверном" варианте? В Win/Linux нужны ли "особые" драйвера, которые "оживляють" эту волшебную функциональность? Местами/временами упоминаются какието "защелки" держащие PCIe-плату и сигнализирующие микровыключателем, что "плата внутри". А если сервер есть, но на слоте нет той "защёлки", и нет той "микрокнопки", а ХотПлаговость тем не менее "заявлена" в описании на PCIe-слот? Видимо у всех все работает из коробки, и потому никто не утруждается описывать процесс "от и до". Ищу тех кто трогал PCIe-Hot-Plug своими руками Quote Share this post Link to post Share on other sites More sharing options...
krux 8 August 14, 2018 Posted August 14, 2018 · Report post весь PCIe хотплаг по идеологии представляет из себя 1) в железе - кнопку "хочу вынуть эту плату", цепи, обеспечивающие детектирования физического наличия в слоте, ключи на материнке, осуществляющие подачу питания на плату. вся эта радость по идеологии заведена на GPIO южного моста/чип компаньона 2) в BIOS реализованы соответствующие алгоритмы, рулящие процессом через GPIO, и отдающие соответствующие события в ACPI-таблицы. 3) операционка определяет хотплаг-события по наличию изменений в ACPI-таблицах, и предпринимает соответствующие действия по энумерации устройств, назначению BAR и подсовыванию драйвера. Плюс обратный процесс отрубания без вываливания в BSOD/Kernel panic. http://www.ti.com/lit/ds/symlink/tps2363.pdf вот вам пример типового hotplug-контроллера, который на материнке вешается на SMbus. Quote Share this post Link to post Share on other sites More sharing options...
Bios71 0 August 16, 2018 Posted August 16, 2018 (edited) · Report post Cпасибо за информацию. Действительно забыл про ACPI таблицы. Сходил к своим IT-шникам, они про это только в журналах читали, и то в лучшем случае про горячюю замену SATA дисков. Беда в том что в железе - кнопку "хочу вынуть эту плату", цепи, обеспечивающие детектирования физического наличия в слоте, ключи на материнке, осуществляющие подачу питания на плату. вся эта радость по идеологии заведена на GPIO южного моста/чип компаньона стандарт позволяет как с кнопкой так и без, как с лампочками так и без. Но минимум GPIO всетаки действительно нужен. В нашем биосе планируется GPIO эхспандер на PCA9535, через I2C, и с прерыванием от него. в BIOS реализованы соответствующие алгоритмы, рулящие процессом через GPIO, Тут все еще интереснее, у АМД последних серий, БИОС только готовит "таблицы" и "скармитвает" их ядрам микроконтроллеров(SMU/MP1). А вот код для тех микроконтроллеров(внутри ядер) PSP/MP0, SMI/MP1, идет бинарником и творит чтото своё "универсальное" , без кнопок/лампочек. Обыкновенная Вин10, после "скармливания" биосом таблиц для SMU, бодренько опознала все описанные слоты как HotPlug и "весело" с ними работает. Вставишь карту, менеджер устройств находит новое устройство. Вынешь - исчезает. Но это пока совсем не то что надо. Остается не определенной последовательность подачи напряжения в слот. А сгоревшие катры нам не к чему. Нужны кнопки, тайминги подачи напряжений, лампочки, и т.п. и отдающие соответствующие события в ACPI-таблицы. а вот в этом надо покопаться, давно не дебажил ACPI, надо вспомнить навыки. Еще раз спасибо за отклик. Edited August 16, 2018 by Bios71 Quote Share this post Link to post Share on other sites More sharing options...
krux 8 August 16, 2018 Posted August 16, 2018 · Report post тут весь вопрос может быть в другом. в спецификации PCIe есть такая штука как native hotplug. и я полагаю, что его сузили до рамок "пропал линк" - "ну ок, значит из слота плату вынули". и в связи с этим, имхо, опытом не подтверженное имхо, сейчас весь интерлокинг в виде "нажатие кнопки" - "мигание лампочками" - "обесточивание платы ключами" - "механическая защелка" - "ручка" возможно производить независимо от BIOS или OC. Quote Share this post Link to post Share on other sites More sharing options...
Bios71 0 August 17, 2018 Posted August 17, 2018 · Report post Вот нашел видео где ХотПлаг работает как у меня. Вставил карту - оборудование нашлось. Вынул - пропало. https://www.youtube.com/watch?v=YigN2mkQMPc Quote Share this post Link to post Share on other sites More sharing options...
Bios71 0 August 22, 2018 Posted August 22, 2018 (edited) · Report post тут весь вопрос может быть в другом. в спецификации PCIe есть такая штука как native hotplug. и я полагаю, что его сузили до рамок "пропал линк" - "ну ок, значит из слота плату вынули". и в связи с этим, имхо, опытом не подтверженное имхо, сейчас весь интерлокинг в виде "нажатие кнопки" - "мигание лампочками" - "обесточивание платы ключами" - "механическая защелка" - "ручка" возможно производить независимо от BIOS или OC. Да, зоопарк страшный. Тот же АМД вводит/использует следующие понятия - Simple Presence Detect, минимальная GPIO поддержка, реакция только на "present", дабы снять питание из опустевшего внезапно слота (наиболее энергосберегающий вариант), требует Runtime поддержки от биоса для коммуникации с/через ACPI таблицы/методы - PCIe модуль А , применяемый на оригинальных АМД платформах - PCIe модуль B , индустриальный формат, отличается от А GPIO распиновкой ехпандера - HotplugBasic - native - HotplugEnhanced, "всегда включено и всегда в поиске", при установке/удалении устройства на него реагирует сам P2P мост, генеря прерывание для ОС не требует поддержки БИОСа, но наиболее энергозатратный (питание всегда подано в слот) - HotplugServer , хаха ... серверный вариант! догадываемся кто и что под этим подразумевает. :biggrin: А PCIe спецификация одарила понятием - HotPlug-Surprise поддерживающий "ВНЕЗАПНОЕ" Hot-insertion/removal (под линуксом выдающий ТОЛЬКО сигнал DEV_REMOVAL) - HotPlug-Non-Surprise (Managed HotPlug) т.е. с предупреждением "СЕЙЧАС БУДЕТ ЗАЙЧИК" (под линуксом выдающий сигнал и DEV_SHUTDOWN и DEV_REMOVAL) А ACPI таблицы у меня хранят гробовое молчание, т.е. кода для поддержки HotPlug там вагон и маленькая тележка, но он не кем ни когда не вызывается. Все идет через внутренюю CPU/SMU/M1 кухню. Видимо в режиме HotplugEnhanced Edited August 22, 2018 by Bios71 Quote Share this post Link to post Share on other sites More sharing options...
Bios71 0 August 28, 2018 Posted August 28, 2018 · Report post полезная ссылка PCI EXPRESS BASE SPECIFICATION, REV. 3.0 str 514 6.7. PCI Express Hot-Plug Support Quote Share this post Link to post Share on other sites More sharing options...
Dvil 0 February 1, 2019 Posted February 1, 2019 · Report post On 8/16/2018 at 8:14 PM, krux said: тут весь вопрос может быть в другом. в спецификации PCIe есть такая штука как native hotplug. и я полагаю, что его сузили до рамок "пропал линк" - "ну ок, значит из слота плату вынули". и в связи с этим, имхо, опытом не подтверженное имхо, сейчас весь интерлокинг в виде "нажатие кнопки" - "мигание лампочками" - "обесточивание платы ключами" - "механическая защелка" - "ручка" возможно производить независимо от BIOS или OC. А как в драйверах, это ловить интересует QNX, Win, Linux ??? ( можно отвечать в последовательности следования ОСм) Quote Share this post Link to post Share on other sites More sharing options...
gerber 8 February 1, 2019 Posted February 1, 2019 · Report post 2 часа назад, Nik. сказал: А как в драйверах, это ловить интересует QNX, Win, Linux ??? ( можно отвечать в последовательности следования ОСм) В QNX через Dev-менеджер, в Win - через диспетчер Plug-and-Play (PnP), в Linux - через udev. Quote Share this post Link to post Share on other sites More sharing options...
Dvil 0 February 15, 2019 Posted February 15, 2019 · Report post On 2/1/2019 at 7:16 PM, gerber said: В QNX через Dev-менеджер, в Win - через диспетчер Plug-and-Play (PnP), в Linux - через udev. А ссылок, на какие нить примеры , не можете дать ? Quote Share this post Link to post Share on other sites More sharing options...