Linux готовит датчик температуры PROM21 для чипсетов AMD AM5

В Linux может появиться более аккуратный мониторинг температуры для платформы AMD AM5. Новая серия патчей добавляет поддержку датчика AMD Promontory 21, также известного как PROM21, через xHCI PCI-функции чипсета.
Это не функция разгона и не скрытый режим производительности. Речь о низкоуровневой доработке, которая позволит Linux-системам получать дополнительное температурное значение там, где датчики материнской платы через Super I/O или EC отображаются неполно либо не видны вообще.
Что добавляет патч
Серию патчей отправил Jihong Min. На момент публикации она находится в версии v4 и проходит обсуждение на Linux kernel mailing list. Код состоит из двух частей.
- Первый патч добавляет PROM21-specific xHCI PCI glue driver.
- Второй патч добавляет hwmon-драйвер prom21-xhci.
Glue-драйвер не переписывает работу USB. Он передаёт основную USB-логику стандартному xhci-pci, а сам привязывает контроллеры AMD PROM21 xHCI с PCI ID 1022:43fd и создаёт Auxiliary Device для опциональной поддержки hwmon.
Важная деталь: если Auxiliary Device не создаётся, USB должен продолжать работать. Температурный сенсор здесь рассматривается как дополнительная функция, а не как обязательное условие для работы контроллера.
Как температура появится в Linux
Драйвер prom21-xhci подключается к Auxiliary Device и публикует значение температуры как temp1_input под hwmon-именем prom21_xhci. Это означает, что показатель попадёт в стандартную подсистему аппаратного мониторинга Linux и в перспективе сможет считываться существующими инструментами.
Для temp*_input в Linux hwmon обычно используются миллиградусы Цельсия. В патче temp1_input также документируется как температурное значение в millidegrees Celsius.
Это продолжает серию точечных улучшений Linux для современного железа: ранее в ядре уже появлялись доработки для AMDGPU и других компонентов платформы, о чём мы писали в материалах про AMDGPU в Linux и Linux 6.18.
Откуда берётся значение
Температура считывается через vendor-specific register pair в PCI MMIO BAR xHCI-контроллера. В документации патча указаны offsets 0x3000 и 0x3008, а также selector 0x0001e520.
Публичной спецификации AMD для этих регистров нет. Метод был получен эмпирически на системе X870E с двумя PROM21 xHCI-контроллерами: один контроллер пробрасывался в Windows VM, а полученные данные сравнивались с показаниями HWiNFO64.
Платформа X870E остаётся одной из ключевых для AM5-систем, и похожие темы по новым платам мы уже затрагивали в материале о Gigabyte X870E AERO X3D.
Для конвертации 8-битного raw-значения используется формула:
temp[C] = raw * 0.9066 - 78.624Из-за этого показатель нельзя считать официально подтверждённой AMD температурой чипсета. Это рассчитанное значение с PROM21 xHCI-сенсора, которое должно быть близко к температуре чипсета и полезно как дополнительный источник данных.
Какие платформы затронуты
PROM21 используется в чипсетах AMD 6xx и 8xx, включая single-chip и daisy-chain конфигурации. Для пользователей AM5 это может быть актуально на платформах X670, B650, X870 и родственных решениях.
Особенно полезной такая поддержка будет для Linux-систем, где мониторинг материнской платы зависит от реализации конкретного производителя. Если часть датчиков недоступна через Super I/O или EC, новый hwmon-драйвер сможет дать ещё один измеряемый параметр без привязки к фирменным утилитам Windows.
Для пользователей Windows похожая тема обычно решается через фирменные пакеты и утилиты производителей, включая драйверы чипсета AMD для Windows 11, но в Linux такие данные часто требуют отдельной поддержки в ядре.
Драйвер не будет будить USB-контроллер ради датчика
В патче также учтён runtime PM. Драйвер не должен пробуждать xHCI PCI-контроллер только для того, чтобы прочитать температуру. Если родительское устройство активно, значение считывается. Если оно находится в suspended-состоянии, драйвер возвращает -ENODATA.
Это важно для корректной интеграции: мониторинговые утилиты не должны постоянным опросом мешать энергосберегающим состояниям USB-контроллера.
Интересная деталь: Assisted-by Codex
Обе части патча содержат отметку Assisted-by: Codex:gpt-5.5. Это не гарантирует принятие кода в ядро и не заменяет обычный review, но показывает, что AI-assisted code уже появляется даже в низкоуровневой Linux-разработке.
Ключевой вопрос остаётся прежним: не каким инструментом был подготовлен код, а насколько он корректен, поддерживаем, проверяем и хорошо документирован.
Когда ждать в ядре
Пока поддержка PROM21 hwmon остаётся патчем на рассмотрении. В mainline kernel она ещё не включена, и конкретная версия Linux, где она может появиться, не названа.
Если патч примут, Linux получит небольшой, но практичный шаг вперёд для AM5: температура PROM21 станет доступнее через стандартный hwmon, без поломки USB-логики и без постоянного пробуждения контроллера ради мониторинга.
За другими обновлениями ядра и open-source-драйверов можно следить в нашей ленте материалов о Linux, включая новости про Linux 6.19 RC и патчи Linux для NVMe.
Источник: Igor’sLAB