Линус Торвальдс выпустил 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
- Кэш-ориентированное планирование задач для повышения производительности и уменьшения промахов кэша – 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
Разрешить тесты компиляции для всего драйвера тактовых сигналов
- Добавить стробируемые тактовые сигналы для выходов 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
- Особенности Khadas VIM4 (T7 SoC):
- Новое устройство – нет данных
- Драйвер контроллера PCIe Meson
- 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
- Milk-V Jupiter — включение eMMC
- Muse Pi Pro — включение EEPROM/PCIe/QSPI/USB
- OrangePi R2S — включение PMIC/USB3
- OrangePi RV2 — включение eMMC/I2C/PCIe/PMIC/QSPI/USB
- SoC K3
- Новые платы — платы 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.
- Обновления дерева устройств для Linux 7.2
- 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.
Оригинал статьи вы можете прочитать здесь.

