Релиз Linux 7.2 – основные изменения, архитектуры Arm, RISC-V и MIPS

Линус Торвальдс выпустил Linux 7.2 в LKML в прошлое воскресенье :

Что ж, последняя неделя релиза была – снова – более масштабной, чем я бы хотел, но, учитывая всю эту «новую нормальность», если бы я задерживал релизы по этой причине, у нас, вероятно, вообще никогда бы не было релиза.

Включено довольно много довольно поздних откатов – особенно выделяются откаты планировщика DRM, но здесь есть и несколько других. Это может быть некрасиво, но это правильный способ справиться с ситуацией «о, этот код не был готов и вызывал проблемы». Люди попробуют сделать это снова позже.

Но хотя откаты DRM выделяются и являются одними из самых крупных патчей здесь, повсюду есть множество небольших исправлений. В основном в драйверах, но сетевая подсистема также оставалась довольно активной на этой последней неделе. А ещё есть несколько разрозненных патчей для файлов архитектуры и ядра perf.

С этим, merge window для 7.3, очевидно, открывается завтра, и уже есть 40 ожидающих pull requests. Выражается благодарность всем, кто успел вовремя. Они знают, о ком речь,

Linus

Выпущен в середине июня 2026 года, Linux 7.1 Linux 7.1 принёс очередную версию реализации файловой системы NTFS, различные улучшения безопасности, переработку ядра высокоточного таймера для повышения производительности, а также множество других изменений. Кроме того, была удалена поддержка устаревших 486-субархитектур, таких как M486, M486SX и ELAN. Но теперь, когда выпущен Linux 7.2, пришло время рассмотреть некоторые заслуживающие внимания изменения и подробнее остановиться на архитектурах Arm, RISC-V и MIPS.

Linux 7.2 release

Заметные изменения в Linux 7.2

  • Кэш-ориентированное планирование задач для повышения производительности и уменьшения промахов кэша – Linux 7.2 представляет кэш-ориентированную балансировку нагрузки задач, целью которой является размещение задач, совместно использующих данные (например, потоков одного процесса), в одном домене кэша последнего уровня. Улучшая локальность кэша, планировщик может уменьшить кэш-баунсинг и промахи кэша, что в конечном итоге повышает эффективность доступа к данным. эта статья LWN для подробностей.
  • Планировщик GPU Fair(er) – Процессы, использующие ресурсы видеокарты, отправляют задания, которые выполняются внутри GPU, а планировщик GPU решает, какое задание будет выполняться следующим. До сих пор используемый алгоритм основан на принципе «первым пришёл — первым обслужен» (FIFO). Новый планировщик GPU «Fair(er)» вдохновлён оригинальным планировщиком задач CFS в Linux и улучшает справедливость и планирование интерактивных клиентов при параллельной работе с высокими нагрузками на GPU. Подробности можно найти на запись в блоге на Igalia .
  • USB4STREAM для потоковой передачи данных через USB4 – Этот выпуск добавляет поддержку потоковой передачи данных напрямую через кабель путем передачи сырых пакетов от одного хоста к другому по кабелям USB4/Thunderbolt. Драйвер предоставляет /dev/tbstreamX устройства на каждой стороне соединения, что позволяет опираться на обычные операции файловой системы, такие как чтение и запись. Это может быть полезно в случаях, когда сетевой инструментарий недоступен или для существующих приложений, таких как dd и cat, которые не поддерживают сокеты.
  • Фаза IV таблицы подкачки – Ещё один релиз Linux, ещё одно улучшение таблицы подкачки. Фаза IV работ над таблицей подкачки унифицирует выделение и учёт анонимной и shmem-подкачки в folios, обеспечивает лучшую синхронизацию и консолидирует управление метаданными. Она отбрасывает статический массив и карту, улучшая производительность и сводя статические накладные расходы на метаданные почти к нулю. Например, монтирование устройства подкачки размером 1 ТБ экономит около 512 МБ памяти. LWN содержит подробнее .

Изменения Arm в Linux 7.2

Архитектура Arm обычно приносит множество обновлений, и Linux 7.2 не исключение. Вот некоторые из основных моментов:

  • Allwinner
    • ASoC – Добавлена особенность только для воспроизведения для кодека H616 в драйвере Allwinner
    • Изменения драйверов
      • Изменения драйвера SRAM, позволяющие одной области SRAM быть «занятой» несколькими клиентами. Когда область «занята», она удаляется или отключается из поля зрения ЦП. Это необходимо на H6 и H616, у которых одна область алиасов, по-видимому, разделяется между видеокодеком и дисплейным движком.
      • Небольшое исправление для драйвера RSB
    • Изменения device tree для Linux 7.2
      • A83T получает драйвер приемника MIPI CSI-2
      • Включены оверлеи для плат Pine64
      • D1s / T113 и H616 получают высокоскоростной таймер
      • Включен сторожевой таймер T113s (для перезагрузки)
      • H616 получил корректные области SRAM
      • Семейство A523 получило прерывание виртуального таймера EL2 и GPADC
      • Исправление IRQ pinctrl для A523
    • Новые устройства – N/A
  • Rockchip
    • ASoC и SoundWire – Очистка непроверенных и проблематичных замен макроса guard() в драйвере Rockchip SAI
    • Драйвер PHY
      • Добавлена поддержка USB PHY Rockchip RK3528
      • Обновлен Rockchip GRF для поддержки RK3568/RV1108
    • Rockchip IOMMU – Отключить лимит времени выборки DTE
    • Драйвер тактовых сигналов
      •   Добавить стробируемые тактовые сигналы для выходов i2s на Rockchip RK3588
        Разрешить тесты компиляции для всего драйвера тактовых сигналов
    • Дерево устройств Arm – Очистка для платформы ChromeOS на базе RK3288
    • Дерево устройств Arm64
      • Сторожевой таймер на RK3528, приемник MIPI CSI-2 на RK3588
      • Добавление frl-enable-gpios на ряд плат для поддержки HDMI 2.0.
      • Набор исправлений и новой периферии для ряда плат.
      • Базовая поддержка камеры на RK3588 – Новые периферийные модули RK3588 vicap, а также добавление камеры на некоторые платы, USB на RK3528 и включение USB на некоторых платах, поддержка RGA3 на RK3588. Добавлено отсутствующее прерывание виртуального таймера EL2 на RK3588.
      • Ещё несколько дополнительных периферийных устройств для предстоящей платы Khadas Edge 2L.
    • Новые устройства – N/A
  • Amlogic
    • Драйвер контроллера PCIe Meson
      • Распространение ошибки devm_add_action_or_reset() для исправления пути ошибки при зондировании
      • Добавлен обратный вызов .remove() для деинициализации моста хоста и отключения питания PHY
    • Драйвер управления выводами
      • Добавлена поддержка Amlogic (meson) A9 SoC
      • Исправление выброса на выходе в контроллере выводов Amlogic (meson) A4
    • Прерывания – Добавлена поддержка Amlogic A9 SoC в контроллер прерываний meson-gpio
    • Термоконтроль – Добавлен термодатчик Amlogic T7 вместе с данными термокалибровки, считываемыми через вызовы SMC
    • Драйвер тактового генератора – Незначительные исправления привязок DT для контроллеров тактового генератора Amlogic T7
    • Arm device tree – Н/Д
    • Arm64 device tree для Linux 7.2
      • Особенности Khadas VIM4 (T7 SoC):
        • Корректировка раскладки памяти
        • Диапазон регистров GIC
        • Исправление имени модели
        • Поддержка PWM, eMMC, SD-карт и SDIO
        • PWM-светодиод
        • Узел pinctrl I2C
      • Особенности Khadas VIM1s
        • Bluetooth
        • PWM-светодиод
        • Кнопка питания
        • Функциональная клавиша через SARADC
        • RTC
        • Карта клавиш пульта дистанционного управления
      • Узел Bluetooth для Phicomm N1
    • Новое устройство – нет данных
  • Samsung
    • Питание – новый драйвер для зарядного устройства аккумулятора в Samsung S2M PMIC
    • LED и MFD
      • Добавлена поддержка Samsung S2MU005 PMIC, который включает контроллеры зарядного устройства, MUIC, вспышки и RGB-светодиодов
      • Samsung Core: Установите маску согласованного DMA в ноль для устройства Samsung PMIC, чтобы подавить ненужные сообщения «DMA mask not set»
    • Драйверы SoC
      • Добавлена поддержка блока управления температурой Samsung
      • Улучшен драйвер прошивки Samsung Exynos (и Google GS101) ACPM (Alive Clock and Power Manager):
        • Несколько улучшений кода.
        • Добавлена поддержка протокола для связи с блоком управления температурой (TMU). Это позволит реализовать термодрайвер, работающий с новыми SoC Samsung Exynos и Google GS101.
    • Тактовый драйвер
      • Exynos850: помечены тактовые сигналы I3C APM (Active Power Management) как критически важные, поскольку они необходимы для связи с прошивкой, но на данный момент у них нет потребителей.
      • Exynos990: исправлены родительские сигналы некоторых мультиплексоров и передача запросов частоты вверх.
    • Изменения mach/soc: удалено использование прямых номеров GPIO для платы crag6410 на базе S3C6410.
    • Изменения DTS Arm: не применимо
    • Изменения Samsung DTS Arm64 для Linux 7.2
      • Exynos850: реализовано корректное выключение питания для полного отключения платы и снижения потребляемого тока
      • ExynosAutov920: добавлена поддержка хранилища UFS
    • Изменения Defconfig: не применимо
    • Новые устройства: не применимо
  • Qualcomm
    • Новый SoC: Qualcomm Dragonwing IPQ9650 — беспроводной сетевой SoC с четырьмя ядрами Cortex-A55 и одним ядром Cortex-A78
    • SPMI: поддержка арбитра PMIC Qualcomm v8.5 и Hawi, а также очистка документации ядра и использование гибкого kzalloc
    • PCI: избегать SBR для Qualcomm WCN6855/WCN7850 WiFi, модемов SDX62/SDX65, которые, по-видимому, его не поддерживают
    • Драйвер контроллера PCIe
      • Добавлена совместимость с SoC Eliza в привязке DT
      • Установлен максимальный OPP при возобновлении работы, чтобы обращения к регистрам DBI не завершались ошибками NoC
      • Добавлена функция pci_host_common_d3cold_possible() для определения, находятся ли нижестоящие устройства уже в состоянии D3hot и поддерживают ли устройства с включенным пробуждением генерацию PME из D3cold
      • Добавлен обратный вызов .get_ltssm() для получения статуса LTSSM без DBI, поскольку DBI может быть недоступен после PME_Turn_Off
      • Выключение PHY через PARF_PHY_CTRL перед отключением линий питания/тактовых сигналов для предотвращения утечки питания
      • Решение о том, следует ли при приостановке переводить линию в состояние L2 и выключать питание с помощью pci_host_common_d3cold_possible(), вместо проверки того, включен ли ASPM L1
      • Добавлена поддержка qcom D3cold для отзыва пропускной способности межсоединений и запросов OPP
      • Обработка неподдерживаемых смешанных конфигураций PERST#/PHY в DT, например, PHY в узле RP, а PERST# в узле RC, с предупреждением о проблеме в DT
      • Программирование T_POWER_ON на основе свойства DT ‘t-power-on-us’, если оборудование сообщает неверные значения
      • Отключение ASPM L0s для SA8775P
      • Инициализация блокировки MSI DWC для хостов ECAM под управлением прошивки, которые не используют путь dw_pcie_host_init(), инициализирующий блокировку
    • Драйвер PHY
      • Добавлена поддержка Qualcomm Eliza QMP PHY, Eliza Synopsys eUSB2, PCIe PHY Eliza, Nord QMP UFS PHY, USB3 PHY IPQ5210
      • Обновлена поддержка Qualcomm QSERDES COM v2
    • hwspinlock: избегать неинициализированных членов структуры в драйвере hwspinlock Qualcomm
    • remoteproc
      • Добавление привязок Qualcomm Hawi ADSP/CDSP, вместе с привязками Shikra RPM и поддержкой CDSP, LPAICP и MPSS PAS.
      • Исправление утечки minidump Qualcomm, очистка обработки сброса PAS и WCSS.
      • Приведение видимых пользователю наименований Qualcomm к единообразию.
    • Драйвер Pinctrl
      • Добавление Qualcomm Nord TLMM, Shikra TLMM, SM6350 LPASS LPI и IPQ9650 TLMM
      • Обновления/улучшения
        • Поддержка GPIO Qualcomm PM8010 в PM8010
        • Поддержка EGPIO Qualcomm SM6115 в SM6115
        • Перевод драйверов Qualcomm LPASS LPI на использование runtime PM для управления питанием
        • Небольшая очистка раздела Kconfig Qualcomm для включения необходимых драйверов для каждой субархитектуры
    • SMMUv2:
      • Обновления привязок device-tree для SoC Qualcomm Hawi, Nord и Shikra
      • Ограничение набора часов, которые могут быть указаны для новых SoC Qualcomm
      • Исправление нерабочей совместимой строки для конфигурации префетчера Qualcomm и добавление новой записи для Glymur MDSS
      • Обеспечение подачи питания на SMMU при записи контекстного банка для клиента Adreno
    • Обновления драйверов
      • Включение QSEECOM и тем самым доступа к переменным UEFI на ноутбуке Surface Pro 12in
      • Рефакторинг вспомогательного кода Geni Serial-Engine, чтобы позволить драйверам последовательного движка (таким как I2C) работать на целевых платформах, где питание и производительность управляются через SCMI-сервер вместо отдельных ресурсов в Linux
      • Расширение драйвера LLCC для поддержки чтения его данных из таблицы системного кэша (SCT) в памяти вместо жестко заданных значений для каждой платформы в драйвере. Также добавлена поддержка платформы Eliza
      • Добавление поддержки платформы Hawi в pd-mapper
      • Перевод драйвера SMEM на отслеживание разделов с помощью xarray для лучшей обработки постоянно растущего числа хостов
      • Расширение драйвера socinfo сведениями о SoC Nord, SM7750, IPQ9650 и Shikra, а также о PMIC PMAU0102, PMC1020H, PMIV0102 и PMIV0104
      • Определение UBWC 3.1 и добавление пары удобных вспомогательных функций в библиотеку UBWC для MDSS и Adreno
      • Исправление утечки памяти в механизме загрузки прошивки WCNSS.
    • Звуковые обновления – Доработки поддержки разгрузки USB-аудио Qualcomm
    • Ethernet – at803x: управление тактовыми сигналами Rx и Tx для PHY IPQ5018
    • WiFi
      • ath9k – улучшения интерфейса GPIO
      • ath12k
        • Поддержка WDS
        • Замена динамического выделения памяти в Rx-пути WMI
        • Поддержка термотроттлинга/устройств охлаждения
        • Обнаружение помех от действующих пользователей в диапазоне 6 ГГц
        • Канал 177 в диапазоне 5 ГГц
    • Регулятор – Поддержка новых устройств для Qualcomm Nord RPMH, PM8109, PM8150 и PMAU0102,
    • Драйвер I2C – Добавлены совместимые строки для Qualcomm CCI Glymur и Shikra
    • Драйвер тактовых генераторов
      • Добавить глобальные контроллеры тактовой частоты, TCSR и RPMh для мобильного SoC Qualcomm Hawi
      • Добавить тактовый генератор GX для Qualcomm Milos, а также обеспечить запрос пропускной способности межсоединения контроллером тактовой частоты камеры для гарантированного включения TOP_GDSC.
      • Добавить контроллеры тактовой частоты камеры и видео для Qualcomm Hamoa и Purwa. Уменьшить max_register контроллера тактовой частоты дисплея, чтобы избежать попыток regmap выполнить дамп защищенных регистров.
      • Добавить глобальный контроллер тактовой частоты для SoC Qualcomm IPQ9650 и добавить поддержку IPQ5332 в драйвер cmnpll.
      • Добавить недостающий сброс USB2 PHY в Qualcomm Nord NegCC.
      • Переработать реализацию тактового мультиплексора PHY Qualcomm по мере необходимости для предстоящей поддержки USB4.
    • CPUFreq – Добавить поддержку масштабирования cpufreq для SoC Qualcomm Shikra
    • Обновления дерева устройств Arm64
      • Опишите блок IPA на платформе Agatti и недостающие уровни OPP для видеоэнкодера/декодера.
      • Для Eliza опишите последовательные движки QUP, GPI DMA, SDHCI, LLCC, IMEM, криптографию QCE, remoteproc ADSP и узлы USB. Включите поддержку DSI-панели, DisplayPort, USB и ADSP на Eliza MTP.
      • На Glymur включите remoteproc ADSP и CDSP, FastRPC, криптографическое оборудование, устройства охлаждения CPUfreq и узлы Coresight. Включите remoteproc и датчик LID на Glymur CRD.
      • Опишите контроллер CAN-FD, найденный на Hamoa EVK. Исправьте таблицы OPP контроллера DisplayPort.
      • Опишите сторожевой таймер на IPQ5210 и IPQ9650.
      • Опишите USB-контроллер и PHY для платформы Kaanapali и включите базовую поддержку USB на устройствах MTP и QRD.
      • Включите вторую подсистему дисплея на Lemans и используйте её для включения дополнительных выходов DisplayPort на плате Lemans Ride, а также мезонинной плате IFP для EVK. Также включите расширитель GPIO на Lemans EVK для вывода сигналов CAN.
      • Добавьте узлы криптографического оборудования и qfprom на Milos. Уменьшите размер общей памяти remotefs, чтобы избежать проверок корректности в прошивке модема, отклоняющих эту область. Включите вибромотор на FairPhone FP6.
      • Добавьте поддержку GPSDP FastRPC на Monaco и опишите контроллер Bluetooth на плате Arduino VENTUNO Q.
      • Представьте оверлей EL2 для IoT EVK Purwa.
      • Включите контроллер шины CAN на QCS6490 RB3gen2 и добавьте узел remotefs.
      • Включите FastRPC на ADSP SC8280XP.
      • Исправьте идентификаторы каналов ADSP FastRPC для SDM630 и SDM660. Также добавьте область памяти ADSP на SDM630.
      • На устройствах SDM845 включите NFC на Google Pixel 3, OnePlus 6, OnePlus 6T и SHIFT SHIFT6mq. Включите вспышку камеры на устройствах LG. Переработайте описание фреймбуфера на устройствах Samsung, SHIFT и Xiaomi. Включите вспышку камеры на устройствах LG. Исправьте Bluetooth и Wi-Fi на устройствах LG и Xiaomi.
      • Включите MDSS и дисплейную панель на Xiaomi Mi A3.
      • Масштабируйте запросы частоты L3 и DDR на основе выбора CPUfreq.
      • Включить контроллер тактовой частоты камеры, устройства охлаждения cpufreq и исправить опорную частоту DSI1 на SM8750.
      • На платформе Talos описать поддержку QSPI, сервисы GPR и аудио, и включить звук на целевой плате EVK. Включить QSPI и описать SPINOR на этой шине на плате QCS615 Ride.
      • Описать домен питания и интерфейсную тактовую частоту для Inline Crypto Engine (ICE) на различных платформах.
      • Исправить имя источника питания RFA Bluetooth на различных устройствах.
    • Обновления дерева устройств Arm32 – N/A
    • Обновления defconfig для Arm64 – N/A
    • Новые устройства
      • Плата RDP488 на основе платформы роутера/шлюза IPQ9650
      • Добавлена поддержка Motorola Edge 30 и Nothing Phone.
  • MediaTek
    • PCI/Виртуализация – Избегать FLR для MediaTek MT7925 WiFi, где FLR не срабатывает после некорректного завершения ВМ.
    • Драйвер контроллера PCIe
      • Использовать FIELD_PREP() для исправления неправильного приоритета операторов в PCIE_FTS_NUM_L0
      • Исправить утечку домена IRQ при сбое включения порта
      • Использовать фактический физический адрес для адреса сообщения MSI вместо virt_to_phys()
      • Добавить EcoNet EN7528 в привязку DT
    • Драйвер контроллера PCIe Gen3
      • Снять сигнал PCIE_PHY_RSTB, чтобы REFCLK был стабильным в течение как минимум 100 мс (PCIE_T_PVPERL_MS) перед снятием PERST#
      • Добавить .shutdown() для установки PERST# перед выключением устройства
      • При удалении драйвера выполнять полное выключение устройства, включая установку PERST#
      • Исправить сообщение об ошибке «failed to create pwrctrl devices», которое было случайно пропущено
    • MFD – Добавить поддержку PMIC MT6365 и документировать источники питания регулятора для варианта MT6359
    • WiFi – mt76
      • Добавить поддержку MT7927
      • mt792x: неисправное обнаружение USB-транспорта
      • mt7921: регуляторные улучшения
    • Регулятор – заполнение и исправление описания MediaTek MT6359
    • Обновления драйверов SoC – добавляет совместимость с идентификатором подсистемы в MediaTek CMDQ, подготавливая почву для добавления поддержки SoC MT8196, и исправляет маски маршрутизации Multimedia System (MMSYS) для SoC MT8167.
    • Обновления Arm32 – добавляет поддержку узла таймера ARMv7 в SoC MT6589 и выполняет пару исправлений dtbs_check в devicetree MT7623 и MT8135
    • Обновления дерева устройств Arm64 для Linux 7.2
      • Добавляет поддержку криптографического ускорителя SoC MT7981
      • Включает gpio-keys и светодиоды, имеющиеся на маршрутизаторе Xiaomi AX3000T на базе MT7981b
      • Добавляет новые варианты MT7988 Banana Pi BPi-R4 Pro
      • Небольшие дополнительные очистки для всех плат BPi-R4 Pro
      • Добавляет дерево устройств MediaTek MT6365 и использует его на всех соответствующих поддерживаемых платах вместо MT6359, где это необходимо (PMIC MT6365 является полностью совместимым вариантом PMIC MT6359, но всё же не называется MT6359).
      • Добавляет корректные источники питания для процессоров и устройств на различных Chromebook от MediaTek и платах Genio AIoT, включая:
        • MT8186 Corsola Chromebooks
        • MT8192 Asurada Chromebooks
        • MT8195 Cherry Chromebooks
        • Платы на базе MT8390 Genio
        • Платы на базе MT8395 Genio
      • Добавлена поддержка HDMI TX для плат Ezurio Tungsten 510/700 .
    • Обновления Defconfig – N/A
    • Новые устройства – N/A
  • Другие новые аппаратные платформы Arm и SoC
    • Apple – t8122 (M3) SoC для ноутбуков 2023 года
    • ASPEED
      • AST27xx 64-битный контроллер управления базовой платой (Cortex-A35)
      • AST26xx BMC поддержка для двух серверных плат
    • Cortina Systems – два NAS-бокса на базе старого SoC Gemini с ядром ARMv4 FA526 CPU
    • NXP – 18 промышленных встраиваемых плат на базе NXP i.MX6/8/9 и LX2160A SoC от Variscite, Toradex и SolidRun
    • Renesas – R-Car M3Le (R8A779MD), вариант автомобильного SoC R-Car M3-N (R8A77965)
    • Texas Instruments – одна несущая плата и SoM с использованием TI K3 AM62x, в дополнение к новым оверлеям для более старых SoM
    • ZTE – ZX297520v3 старый недорогой беспроводной SoC (ядро Cortex-A53). Это возвращает семейство чипов ZX, которое было удалено в 2021 году после того, как поддержка исходных чипов ZX296702 и ZX296718 так и не была завершена
  • Изменения, специфичные для Raspberry Pi
    • Удаление нерабочего виртуального таймера EL2 на BCM2712
    • Raspberry Pi RP1 – net: macb: добавлен обратный вызов тайм-аута зависания TX для восстановления после потерянной записи TSTART
    • Прошивка – Изменение зависимости на ARCH_BCM2835 и COMPILE_TEST. Драйвер прошивки Raspberry Pi не имеет зависимостей компиляции от драйвера почтового ящика BCM2835. Это лишь косвенная зависимость во время выполнения: драйвер работает только на Raspberry Pi.

Обновления RISC-V в Linux 7.2

Активность разработки для архитектуры RISC-V по-прежнему высока

  • Предотвращение возврата функцией get_free_mem_region() регионов, которые в определенных обстоятельствах невозможно отобразить, путем определения DIRECT_MAP_PHYSMEM_END для RISC-V
  • Исправление проблемы ранней загрузки с kexec_file, когда объем установленной физической памяти на системе превышает размер прямого отображения, что возможно в некоторых режимах виртуальной памяти RISC-V
  • Unconditionally выполнять sfence.vma в новом коде обработки области vmalloc в обработчике страничных ошибок, поскольку даже наличие Svvptc не гарантирует, что CPU не вызовет снова ошибку сразу после завершения обработчика исключений и впоследствии не приведет к сбою
  • Исправить ftrace_graph_ret_addr(), чтобы использовать корректный указатель задачи (в соответствии с тем, что делают другие архитектуры)
  • Исправить код проверки производительности при невыровненном доступе в случаях, когда производительность задана в командной строке ядра и когда процессоры были переведены в автономный режим и обратно
  • Устранить фиктивное смещение адреса в версии walk_stackframe() без указателя кадра, приведя её в соответствие с кодом, основанным на указателе кадра
  • Исправить проблему RISC-V kfence, вызывающую ложные предупреждения об использовании после освобождения
  • Добавить ARCH_HAS_CC_CAN_LINK для RISC-V, которому нужны другие флаги командной строки компилятора, чем другим архитектурам
  • Реализовать _THIS_IP_ с использованием ассемблера, специфичного для RISC-V, что, по-видимому, менее хрупко (с точки зрения компилятора), чем взятие адреса метки
  • Снизить накладные расходы при запуске ядра, определив HAVE_BUILDTIME_MCOUNT_SORT, поскольку arch/riscv соответствует всем требованиям
  • Патчить CFI vDSO во время обработки альтернатив, а не только стандартный vDSO
  • Исправить потенциальную утечку памяти в коде cacheinfo
  • Привести в порядок kernel/setup.c:add_resource(), чтобы передавать возвращаемое значение insert_resource() и улучшить отображение диапазонов ресурсов
  • Привести в порядок файлы purgatory.[ch], согласовав прототип purgatory() с тем, что в arch/x86, и очистив verify_sha256_digest()
  • Привести в порядок cpu_is_stopped(), чтобы её функция немного больше соответствовала её названию
  • Заменить использование некоторых функций для работы со строками без ограничения длины в get_early_cmdline() и коде ptdump на strscpy()
  • Заменить sprintf() на sysfs_emit() в cpu_show_ghostwrite() для более безопасной проверки границ
  • Стандартизировать указание флагов вывода компилятора в RISC-V kselftests, приведя их в соответствие с другими архитектурами
  • Использовать стандартный для Linux макрос cmp_int() вместо самостоятельно реализованного макроса “cmp_3way()” в kernel/module-sections.c
  • Вызывать панику на раннем этапе загрузки, если стеки обработчиков IRQ не могут быть выделены, вместо того чтобы делать вид, что работа продолжается нормально
  • Добавить поддержку Eswin SoCs в RISC-V defconfig
  • Удалить некоторые ненужные условные выражения в sbi_hsm_hart_{start,stop}()
  • Исправить некоторые недочёты в Kconfig, обнаруженные Kconfirm
  • Заменить самостоятельно реализованную версию min() в коде kexec_elf на стандартную функцию min()
  • Увеличить значение NR_CPUS по умолчанию для 64BIT до 256 – SpacemiT уже выпустила 80-ядерный RVA23 RISC-V сервер, а если оглянуться назад, двухсокетный Sophgo Pisces на базе SG2042 имеет 128 ядер. Поэтому значения NR_CPUS, равного 64, недостаточно.
  • Alibaba T-Head
    • PWM – th1520: Убрать требование об использовании mul_u64_u64_div_u64_roundup
    • Device tree – Включить WiFi на двух платах TH1520: BeagleV Ahead и Lichee Pi 4a .
  • Microchip
    • Драйверы SoC – Единое добавление compatible в dt-binding для irqmux на pic64gx
    • Дерево устройств – На этот раз ничего, кроме исправлений для плат Microchip. Всё это исправления с низким приоритетом и очистка, сосредоточенные на платах pic64gx и beaglev-fire. Новая поддержка не добавлена.
  • SpacemiT
    • K1 — драйвер SPI, включение драйвера I2C, термодатчик
    • K3 — поддержка USB2 PHY, драйвер ASoC
    • Драйвер тактовой частоты
      • Переключение опорных часов PCIe SpacemiT
      • Исправление смещения регистра тактовой частоты PCIe SpacemiT
      • Добавление тактовой частоты DBI для PCIe SpacemiT
    • MFD — SpacemiT P1: добавление ячейки перезагрузки для чипа SpacemiT P1
    • Изменения дерева устройств
      • SoC K3
        • Добавление расширения Ziccrse
        • Добавление поддержки PWM
        • Добавление поддержки PDMA
        • Добавление поддержки USB 2.0
        • Исправление питания ввода-вывода pinctrl
      • SoC K1
        • Добавление поддержки карт Micro SD
        • Добавление скорости передачи в консоль
        • Добавление поддержки SPI
        • Включение термодатчика
        • Исправление тактовой частоты 32K
      • Платы K1
    • Новые платы — платы CoM260-IFX на базе K1 и DeepComputing FML13V05
  • Sophgo
    • Обновления дерева устройств для Linux 7.2
      • CV18xx – добавлены привязки для платы Milk-V «Duo S».
      • SG2042
        • Адрес блока CPU ошибочно использовал десятичные числа,  особенно для узлов, значение которых >= 10. Теперь исправлено на использование шестнадцатеричных чисел.
        • Контроллер MSI на самом деле поддерживает только 16 прерываний; исправлено в соответствии с фактической ситуацией.
        • PCIe RC когерентны с кэшем CPU. Отмечено для RC-узлов.
      • SG2044: – аналогично SG2042, используйте hex для адреса устройства CPU.
  • StarFive
    • Прерывания – Переименовать и переработать контроллер прерываний StarFive JH8100 для новой SoC JHB100, так как JH8100 был снят с производства до выпуска.
    • SiFive ccache – Добавить StarFive JH7110 в список устройств, которым требуются нестандартные кэш-операции, поскольку GPU, в отличие от других периферийных устройств, является DMA-некогерентным.
    • Источник тактовой частоты – Добавить совместимую строку привязок DT для clint StarFive JHB100.
    • Добавить поддержку SGMII GMAC для JHB100.

Журнал изменений MIPS

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

  • Использовать программные узлы для кода GPIO
  • Очистка и исправления

Вот список некоторых исправлений:

  • mips: выбирать устаревшие интерфейсы gpiolib там, где они используются
  • MIPS: lib: удалить ‘.hidden’ для локальных символов
  • MIPS: VDSO: избегать включения .got в динамический сегмент
  • MIPS: smp: сообщать о завершающем работу CPU в RCU в stop_this_cpu()
  • MIPS: kernel: proc: удалить лишние фигурные скобки в show_cpuinfo()
  • MIPS: kernel: proc: использовать вызовы seq_putc() в show_cpuinfo()
  • mips: sched: исправить повреждение памяти CPUMASK_OFFSTACK
  • MIPS: mm: Исправление записи за пределами границ в maar_res_walk()
  • MIPS: ath79: Уменьшение ARCH_DMA_MINALIGN
  • mips: dts: ar9132: Исправление имени узла wdt
  • mips: Удаление оставшихся ссылок на драйвер pktcdvd в defconfig
  • MIPS: mm: Удаление комментария, ссылающегося на удалённый CONFIG_MIPS_CMP
  • MIPS: alchemy: db1300: Переход на статические свойства устройств
  • MIPS: alchemy: gpr: Переход на статические свойства устройств
  • MIPS: alchemy: db1000: Использование узлов, привязанных к GPIO-чипам, в свойствах
  • MIPS: alchemy: mtx1: Прикрепление программных узлов к чипам GPIO
  • MIPS: alchemy: Предоставление видимых прототипов функций для файлов плат
  • MIPS: alchemy: platform: Добавление отсутствующего include
  • MIPS: ip22-gio: не экспортировать функцию освобождения устройства
  • MIPS: ip22-gio: переход на динамическое корневое устройство

См. полный журнал изменений Linux 7.2 для получения подробностей. Он был сгенерирован только на основе комментариев с помощью команды git log v7.1..v7.2 --stat. Кроме того, журнал изменений можно прочитать на Kernelnewbies для более длинного и обширного списка изменений.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments