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

Линус Торвальдс   объявил о выпуске Linux 7.3 в списке рассылки LKML в прошлое воскресенье:

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

Так или иначе, за последнюю неделю, похоже, не произошло ничего особенного, поэтому, как и ожидалось, финальная версия 7.3 вышла, и, следовательно, завтра открывается окно слияния для 7.4. Вот только я сейчас в ежегодном семейном отпуске, поэтому вместо того, чтобы с самого утра заниматься слияниями, большую часть дня проведу на лодке и под водой. К слияниям вернусь во второй половине дня, но ожидаю, что мой график какое-то время будет несколько необычным.

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

Обратите внимание: эта дополнительная неделя не означает, что будут приниматься запросы на включение, поступившие после обычного срока, — правила по-прежнему таковы, что всё, что попадает в слияние, должно быть готово *до* открытия окна слияния, а не быть некой поздней разработкой *во время* окна слияния. Так что не стоит пытаться обходить правила.

Ниже приведён краткий журнал изменений за последнюю неделю разработки 7.3. Он выглядит довольно разрозненным, без явной закономерности: случайные исправления по всему коду.

Линус

Выпущенный около двух месяцев назад Linux 7.2 принёс нам планирование задач с учётом кэша для более высокой производительности и меньшего числа промахов кэша, более справедливый планировщик GPU, USB4STREAM для потоковой передачи данных через USB4 и четвёртую фазу реализации таблицы подкачки, среди прочих изменений. Теперь рассмотрим Linux 7.3: список ключевых изменений и подробный разбор изменений архитектур Arm, RISC-V и MIPS.

Linux 7.3

Некоторые ключевые изменения Linux 7.3

К числу заметных изменений в Linux 7.3 относятся:

  • Улучшенное управление VRAM для видеокарт начального уровня – Когда видеокарте не хватает VRAM (Video RAM), различные приложения могут начать конкурировать за VRAM. В этом выпуске можно использовать dmem cgroup, чтобы смягчить ситуацию, когда два приложения конкурируют за RAM. Вместо немедленного отступления система попытается вытеснить незащищённые буферы из домена, чтобы освободить место для защищённого буфера. Это гарантирует, что приложения действительно смогут использовать всю предоставленную системой защиту памяти, не подвергаясь риску пинг-понга. Подробнее на pixelcluster.dev .
  • Улучшения производительности Btrfs и Ext4
    • Btrfs возвращает производительность Direct I/O, потерянную в предыдущих выпусках. Для дисков, отличных от SSD, удаление ненужной задержки в 1 jiffy при нагрузках журналирования приводит к снижению задержки и пятикратному увеличению пропускной способности. fsync с включённой функцией no-holes (по умолчанию с btrfs-progs 5.15) также в 5 раз быстрее.
    • Ext4 повышает производительность параллельных записей direct I/O и производительность fallocate(), а также исправлена регрессия буферизованной записи.
  • Повышена производительность FUSE io_uring — Linux 7.3 позволяет серверам FUSE передавать пул буферов, который ядро будет использовать для обслуживания запросов, что снижает требования к объёму используемой памяти. Также добавлен zero-copy в FUSE io-uring для дальнейшего повышения производительности. Ознакомьтесь с официальной документацией для получения подробностей.
  • Поддержка субпланировщиков cgroup (sched_ext) — реализация sched_ext теперь завершена. Она позволяет cgroup управлять своими процессами с помощью собственного планировщика задач на основе BPF. Разные cgroup могут иметь разные BPF-субпланировщики и принимать разные решения по планированию. Прочитайте эту статью LWN для получения дополнительной информации.

Обновления Arm в Linux 7.3

  • Allwinner
    • Драйвер Clk  – некоторые доработки библиотеки драйверов тактирования Allwinner и добавлена поддержка часов RTC Allwinner A733.
    • Allwinner A733 – добавлена поддержка контроллеров MMC, RTC, NMI
    • Изменения дерева устройств для Linux 7.3
      • A10 – исправлен номер прерывания PMU
      • A100/A133 – добавлена поддержка LRADC
      • Включена поддержка оверлеев для плат sun8i-h2-plus pi
      • A523 – добавлена поддержка инфракрасного приёмника
      • ТВ-приставка X96QPRO+ на базе H728 получает аудиовыход S/PDIF
      • Исправлена ориентация установки mpu6050 в PinePhone
      • Различные исправления стиля
    • Defconfig Arm64 – включение LRADC
    • Новые устройства
      • Baijie Helper A133
      • NetCube Systems OpenNMC (dobermann)
  • Rockchip
    • Драйвер тактирования
      • Драйвер тактирования для Rockchip RV1106
      • Исправление мультиплексора источника SPI для Rockchip rk3576
      • Улучшено представление дробных коэффициентов PLL в драйвере тактирования Rockchip
      • Исправление dclk Rockchip для третьего видеопорта, чтобы изменение его частоты не влияло на другие компоненты
    • PHY — обновлена настройка фазы тактовой линии Rockchip, добавлена поддержка 2500 Мбит/с и обработка скорости TMDS
    • Pinctrl — добавлена поддержка SoC Rockchip RK3308B и RV1106
    • IOMMU — переработана обработка состояния Rockchip и исправлена обработка тактирования, probe и устаревших сбоев
    • Контроллер CAN-DF — добавлена поддержка на RK3588
    • Сторожевой таймер — добавлен для RV1106
    • Новые устройства
      • плата EmbedFire LubanCat 4 (RK3588S)
      • игровая консоль Anbernic RG Vita-Pro (RK3576)
      • платы Vicharak Vaaman2 и Axon (RK3588)
      • плата LCKFB Taishan Pi 3M (RK3576)
      • Orange Pi 5 Pro плата (RK3588S)
      • плата Graperain G3568 v2 (RK3568)
      • маршрутизатор HINLINK/LinkStar H28K (RK3528)
      • одноплатный компьютер Youyeetoo YY3588 (RK3588)
      • несущая плата Alientek DLRV1126 и основной модуль CLRV1126F (Rockchip RV1126)
      • LincStation E1
  • Amlogic
    • Драйвер тактирования
      • Добавлены AO и периферийные тактовые сигналы Amlogic A9
      • Исправлен неверный номер родительского источника для тактового сигнала 32k на Amlogic GXBB
    • Драйвер контроллера Meson PCIe – Исправлено состояние GPIO PERST#, чтобы оно оставалось активным до стабилизации питания и REFCLK, для устранения сбоя перечисления
    • Драйвер SoC — добавлена поддержка SoC Amlogic A1 и T7
    • Драйверы Amlogic
      • Исправление измерения тактовой частоты в debugfs
      • Поддержка измерения тактовой частоты для Amlogic A1 и T7
    • Дерево устройств Arm — Н/Д
    • Дерево устройств Arm64 для Linux 7.3
      • Исправления Amlogic AXG для PCIe и NAND
      • Общие исправления отступов и пробельных символов
      • Узлы Pinctrl и GPIO IRQ для Amlogic A9
      • Узлы измерения тактовой частоты для Amlogic T7 и A1
    • Новое устройство — Н/Д
  • Samsung
    • Добавлена SoC для флагманских мобильных телефонов Samsung Exynos 1580 (с 2024 года)
    • PHY – улучшения драйвера Samsung hdptx для модернизации доступа к регистрам и очистки кода
    • Управление выводами – Добавлена SoC Samsung Exynos 8855
    • Ввод
      • Обновления драйвера клавиатуры Samsung для сохранения прерываний отключёнными, пока устройство закрыто, а также очистка логики пробуждения и использование проверок pm_runtime_active
      • Обновление количества контактов Samsung SUR40 в соответствии со спецификацией PixelSense
    • Драйвер тактирования
      • Exynos990: добавлены несколько отсутствующих тактовых сигналов и исправлены родительские элементы стробирующих тактовых сигналов в контроллере тактирования PERIS.
      • Очистка – использование kzalloc_flex для проверок __counted_by в драйвере clk Samsung.
    • Драйверы SoC
      • Исправлена очень давняя утечка узла OF в драйвере PMU.
      • Несколько чисток и новые привязки для syscon HSI0 Exynos Auto v920.
    • Изменения DTS Arm – добавлен Bluetooth в плату Google Manta (Nexus 10) на базе Exynos5250.
    • Изменения Samsung DTS Arm64 для Linux 7.3
      • Новая SoC Exynos8855 (рыночное название: Exynos 1580) – базовая поддержка с её отладочной платой SMDK.
      • ExynosAutov920: добавлен узел syscon HSI0.
      • Несколько нефункциональных изменений (пробелы и стиль) для соответствия стилю кодирования DTS, как сообщает недавний инструмент dt-check-style. Цель — постепенно добиться отсутствия dt-check-style --mode strict предупреждений.
    • Изменения defconfig – Н/Д
    • Новые устройства – Samsung Exynos8855 SMDK
  • Qualcomm
    • Новая SoC – «Загадочная» SoC Qualcomm на базе Cortex-A78C «Shikra»
    • ASoC – исправления Qualcomm LPASS для ограничений воспроизведения и громкости макроса WSA
    • Подсветка – Qualcomm WLED: удалить избыточные dev_err() вызовы
    • MFD
      • Qualcomm SPMI PMIC: документировать PMG1110 и устройство тактильной обратной связи
      • Qualcomm TCSR: добавить совместимость для SoC Hawi, Maili и Shikra, задокументировать блок TCSR IPQ9650
    • Термальная подсистема
      • Добавить поддержку термального монитора Qualcomm Master BandGap
      • Добавить совместимость для привязок Maili Temperature
    • Драйвер тактирования
      • Qualcomm Maili: тактовые сигналы GCC, TCSR, RPMh и видео
      • Qualcomm Shikra: тактовые сигналы GCC, RPM, GPU, дисплея и аудио
      • Qualcomm Nord: тактовые сигналы дисплея и графики
      • Qualcomm Glymur: тактовые сигналы камеры и EVA
      • Тактовые сигналы видео Qualcomm Hawi
    • PHY
      • Qualcomm SM8475 QMP USB PHY и PCIe PHY, IPQ9650 QMP PCIe PHY, QUSB2 PHY для Shikra SoC, поддержка Hawi для QMP PCIe PHY и UFS PHY.
      • Драйвер Glymur QMP PCIe Multi-PHY и поддержка нескольких режимов линии, поддержка PCIe PHY IPQ5210
      • Qualcomm удалены дублирующиеся заголовки v8 DP, улучшена обработка во время выполнения для драйверов QMP
    • Soundwire – постраничная адресация SCP Qualcomm, поддержка mclk_freq шины. Увеличение числа портов данных до 17 и улучшения драйвера
    • Управление выводами
      • Добавлены Qualcomm Maili TLMM SoC, PMG1110 PMIC и Eliza LPASS LPI TLMM SoC
      • GPIO TLMM Qualcomm безусловно помечены как способные к пробуждению
      • Улучшения Qualcomm на основе улучшений irqchip PDC Qualcomm (контроллер доменов питания) из дерева tglx:s
      • Исправления несрочных групп выводов Qualcomm IPQ806x и IPQ9650
    • Драйвер контроллера PCIe
      • Добавлена совместимость IPQ9650 с глобальным прерыванием
      • Добавлена совместимость IPQ5210 с резервным вариантом IPQ9574
      • Добавлены привязка DT и поддержка драйвера для Hawi SoC
      • Пропускать GPIO PERST#, предоставляемые нижестоящими устройствами PCIe, которые должны обрабатываться драйверами этих устройств
      • Прекратить объявление Attention Button Present (ни одна SoC Qcom не поддерживает Attention Buttons), чтобы pciehp мог использовать события Presence Detect Changed
    • WiFi – Qualcomm (ath12k)
      • Большой объем работ по интеграции инфраструктуры ядра
      • Поддержка MultiPD на платформе AHB
    • IOMMU
      • ARM SMMUv2
        •   Обновления привязок device-tree для SoC Qualcomm Eliza, Maili, Shikra и IPQ9650
        • Добавлена поддержка Qualcomm SM8450
      • Исправлены гонки в runtime-PM Qualcomm, при откате probe, при сообщении о сбоях и при инициализации таблиц страниц
    • ASoC
      • Обновления в стеке драйверов Qualcomm
      • Новые платформы: Qualcomm LPI MI2S, SM8475, WSA855X
    • I2C – Добавлена поддержка Qualcomm Nord SA8797P, SA8255p
    • Обновления драйверов
      • Добавлены привязки платформы Maili для SCM, IMEM, AOSS и PMIC GLINK. Добавлена поддержка Shikra IMEM, RPM SMD, LLCC и UBWC, включая обработку сконфигурированных прошивкой прерываний LLCC ECC.
      • Добавлена общая служба Peripheral Authentication Service с бэкендами SCM и OP-TEE, а драйверы MSM DRM и IPA переведены на нее.
      • Добавлены трассировочные точки SMC-вызовов SCM и настраиваемая доставка minidump через always-on SRAM. Исправлен порядок указателей в режиме загрузки SCM и улучшена диагностика probe в режиме загрузки.
      • Переработана база конфигурации UBWC и добавлена конфигурация Milos и Shikra. Добавлены сопоставления доменов защиты для SA8775P и QCS8300, поддержка более новых версий ICE, статистика подсистемы Hawi и идентификация SDM850.
      • Упрощены выбор Qualcomm SoC в Kconfig и архитектурные зависимости.
      • Использованы управляемые ресурсы в путях probe EBI2 и RPMh RSC для корректной очистки при сбоях.
      • Добавить разбор SMEM для данных конфигурации DDR и использовать старший бит адреса банка для выбора подходящей конфигурации UBWC.
      • Включить общие API доверенной зоны PAS для медиадрайверов Iris и Venus.
      • Исправить состояние повторных попыток зондирования SCM, очистку зарезервированной памяти и раннее разыменование NULL в обработчике IRQ. Включить доступ к переменным EFI QSEECOM на Asus Zenbook A16.
      • Исправить проверку размера прошивки GENI с использованием аппаратной глубины CFG RAM и исправить раскладку дополнительных данных Thunderbolt PMIC GLINK.
      • Документировать побочный канал Nord AOSS и свойство SRAM минидампа IMEM.
      • Очистить макросы статистики Qualcomm и схему привязки WCNSS.
    • Обновления дерева устройств Arm64
      • Добавить поддержку DeviceTree для SoC Shikra, его контроллеров тактовой частоты GCC и RPM, платформ SoM CQM, CQS и IQS и их оценочных плат. Документировать SoC Hawi и Maili.
      • Добавить деревья устройств для платформ Eliza CQS SoM и EVK, QCS8550 RB5 Gen 2, Vicharak Axon Mini, HONOR MagicBook Art 14, Microsoft Surface Pro 12, Xiaomi 12 Lite, Motorola Edge 30, Sony Xperia M2 и Motorola Moto G2.
      • Расширить поддержку Eliza описаниями USB, SD-карты, сенсорного экрана, PMIC, межсоединений, терморегулирования, монитора пропускной способности CPU и LLCC, QUPv3 и GPR ADSP.
      • Расширить поддержку Glymur контроллерами тактовой частоты GPU, камеры и EVA, аудио LPASS, CoreSight, PCIe, USB, областями памяти IMEM и PIL, доменами питания, термоохлаждением и периферией CRD. Добавить описания SoCCP, регулятора PMIC, TRNG и вычислительной способности CPU.
      • Добавить поддержку дисплея, IPA, камеры, USB, аудио, криптографии, TRNG, CoreSight и терморегулирования для платформ Kaanapali, Milos, Hamoa и связанных с ними. Добавить поддержку встроенного контроллера для плат Hamoa и Glymur.
      • Улучшить описания сетевых платформ обновлениями порта PCIe IPQ, PHY, тактовой частоты, PWM, регулятора и прерываний. Обновить описания CTCU, дисплея, Iris, аудио, камеры, PCIe, USB-C, домена питания, области памяти и терморегулирования на существующих платформах Qualcomm.
      • Исправить привязки и проверку DeviceTree для строк совместимости Qualcomm, устаревших резервных совместимых строк, именования и форматирования узлов, диапазонов адресов, спецификаторов тактовой частоты, зарезервированной памяти, регуляторов, GPIO и подключения периферии.
      • Добавить описания моста PCIe IPQ9574 и включить PCIe0 и PCIe2 для Wi-Fi-карт QCN92xx на RDP454. Привести описания PHY и сброса PCIe для IPQ5018, IPQ6018 и IPQ8074 в соответствие с привязкой узла порта.
      • Расширить включение платформы Shikra описаниями Wi-Fi и Bluetooth для SoM CQM и IQS. Включить удалённые процессоры CDSP, LPAICP и MPSS на EVK CQM, CQS и IQS и добавить SMP2P, QUPv3, монитор пропускной способности DDR, аппаратные блоки тактовой частоты CPU, межсоединение EPSS L3, таблицы OPP, термозоны, резервирования GPIO и контроллеры тактовой частоты дисплея и GPU.
      • Включить аудио Eliza CQS EVK и добавить описания макроса LPASS и SoundWire для неё. Добавить поддержку ADC PMIC для Hamoa, Monaco и Lemans, а также макросы каналов ADC для блока ADC третьего поколения. Добавить конфигурации SRAM минидампа на затронутых платформах Qualcomm.
      • Исправить назначения питания vdda-phy и vdda-pll для QMP PHY на платформах Qualcomm. Исправить отображения IOMMU PCIe для QCS6490, Lemans, Monaco, Talos, SM, SC и связанных плат. Исправить отображение прерываний PDC Glymur/Mahua, свойства USB HS и конфигурацию пробуждения; исправить идентификаторы плат, конфигурацию контактов, питание GPIO, частоту шины по умолчанию и проблемы проверки DT.
      • Включить самое глубокое состояние простоя X1E80100, настроить термомониторинг ADC SPMI на SM8550 и SM8650, добавить контроллер тактовой частоты GPU Milos и назначить тактовые частоты CCI для SM8650.
    • Обновления дерева устройств для Arm32
      • Добавлена начальная поддержка дерева устройств для Sony Xperia M2 на базе MSM8926 и Motorola Moto G2 (2014) на базе MSM8226.
      • В дерево устройств для HTC One M8 на базе MSM8974 добавлена поддержка сенсорного экрана, конфигурации выводов Bluetooth, NFC и многоцветного светодиода состояния.
      • В дерево устройств для Samsung ExpressATT на базе MSM8960 добавлен узел touchkey со значением совместимости coreriver,tc360-touchkey, а также помечены каналы XOADC PM8921.
      • Общие свойства IPA объединены в дереве устройств для SDX55.
    • Обновления defconfig для Arm64
      • Включён драйвер встроенного контроллера эталонного устройства Qualcomm для Hamoa и Glymur
      • Включён звуковой драйвер DMIC для платформ Monaco и Lemans
      • Включён драйвер BAM-DMUX WWAN для Shikra и других платформ, использующих аппаратное обеспечение A2 BAM.
    • Новые устройства
      • Asus Zenbook A16 (UX3607OA)
      • платформа Eliza CQS SoM и плата Eliza CQS EVK
      • Vicharak Axon Mini SBC (QCS6490)
      • Motorola Moto G2 (телефон 2014 года)
      • Sony Xperia M2
      • Microsoft Surface Pro 12in
      • системные модули Shikra IQ2390S/CQ2390M и EVK
      • Xiaomi 12 Lite 5G (taoyao)
      • Motorola Edge 30 (dubai)
  • MediaTek
    • Драйвер MFD
      • MediaTek MT6397: добавлена поддержка AUXADC и EFUSE для mt6323
      • MediaTek MT8195 SCP: добавлена поддержка SoC MT8189
    • Драйвер тактирования — добавлена поддержка MediaTek MT8173 MFG_TOP
    • Драйвер контроллера PCIe — добавлена поддержка контроллера PCIe в SoC EcoNet EN7528 и EN751221
    • Драйвер контроллера PCIe Gen3 — добавлен ‘memory-region’ mediatek-gen3 для буфера DMA с ограниченным доступом
    • WiFi (mt76):
      • поддержка MT7928
      • поддержка NAN MT7925
      • улучшения энергосбережения AP MT7996
    • Обновления драйвера SoC
      • Исправлена пропущенная проверка ошибок в mtk-socinfo, а также пропущенная MODULE_DEVICE_TABLE() в драйвере mtk-dvfsrc.
      • Переработан способ задания таблиц MMSYS с помощью макроса, при котором аппаратный экземпляр компонента отделяется от фактического типа, что снимает предварительное условие для реструктуризации mediatek-drm.
    • Обновления Arm32
      • Исправлена незначительная проблема с отступами в дереве устройств MT8127
      • Добавлена поддержка Auxiliary ADC, присутствующего в MT6323 PM
    • Обновления дерева устройств Arm64 для Linux 7.3
      • Исправления отступов/пробелов для некоторых деревьев устройств
      • Улучшения документации для MediaTek Mute-X
      • Исправления предупреждений dtbs-check
        • Платы MT8390 Tungsten: удаление ненужных ячеек
        • SoC MT6795: удаление устаревшего свойства в UART DMA
      • RTC PMIC MT6359 теперь использует правильную строку совместимости
      • SoC MT8183/86/88/92/95 получают поддержку IP-блоков UART DMA
      • MT8186 получает новую таблицу OPP CCI для устранения зависаний
      • Chromebook на MT8188/83 теперь получают правильное питание SPI NOR
      • MT8192 Asurada прекращает поддержку (неиспользуемого) порта MMC1
      • MediaTek Genio 510/700/1200 EVK и Radxa NIO-12L теперь получают завершённое дерево входов питания PMIC с назначением правильных источников питания
    • Обновления defconfig — Н/Д
    • Новые устройства — Н/Д
  • Прочие новые аппаратные платформы и SoC на Arm
    • Altera – SoC FPGA Agilex72 на базе Cortex-A720.
    • Apple – Добавлена поддержка SoC M3 Pro, Max и Ultra (на основе базовой поддержки M3 из Linux 7.2),
    • NVIDIA – настольная система Lenovo ThinkEdge SE70 (Jetson Xavier NX)
    • NXP
    • Texas Instruments
  • Изменения, специфичные для Raspberry Pi
    • V3D — сокращение задержки автоприостановки PM runtime. Задержка автоприостановки 100 мс всегда была лишь обходным решением: более короткие задержки вызывали более частые циклы приостановки/возобновления во время выполнения на BCM2711 (Raspberry Pi 4), что проявляло ошибки когерентности кэша и MMU в виде случайных зависаний GPU. После устранения этих зависаний увеличенная задержка больше не нужна. Сократить её с 100 мс до 50 мс, чтобы домен питания GPU мог освобождаться раньше, как только GPU переходит в состояние простоя.
    • VC4
      • Исправление сбоя выделения слота binner на простаивающем GPU (ошибка Raspberry Pi 3)
      • Использовать управляемый опрос KMS для исправления UAF при отвязке
    • Добавить поддержку 7-дюймового Raspberry Pi Touch Display 2 на плате Toradex Versin

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

Также имеется значительное количество изменений в архитектуре RISC-V:

  • Добавить начальные определения и обнаружение для расширений RISC-V ISA Smcsrind, Sscsrind, Smcntrpmf, Ssccfg, Smcdeleg, Zicclsm, Ziccamoa, Ziccif, Ziccrse, Za64rs и Ssqosid
  • Улучшить реализацию update_mmu_cache_range() для RISC-V за счёт использования flush-by-ASID, что обеспечивает повышение производительности на
    микроархитектурах, поддерживающих соответствующие оптимизации; и за счёт использования расширения RISC-V ISA Svinval на микроархитектурах,
    которые его поддерживают
  • Дополнительно уменьшить выделение теневого стека CFI (до 512 МБ), чтобы сэкономить виртуальное адресное пространство (и физическую память в системах со строгой политикой overcommit)
  • Добавить начальную поддержку переключения контекста CPU для маркировки QoS (Ssqosid)
  • Сделать код теста скорости невыровненного векторного доступа синхронным, чтобы избежать множества ошибок, связанных с ненужной асинхронностью
  • Включить ARCH_HAS_ACPI_TABLE_UPGRADE для RISC-V, чтобы помочь с отладкой таблиц ACPI (аналогично ARM64 и x86)
  • Извлекать смещения секций vDSO во время сборки, а не во время выполнения, чтобы избежать накладных расходов при загрузке
  • Использовать директивы ассемблера для управления использованием инструкций из расширений RISC-V ISA Zacas и Zabha вместо флагов -march компилятора,
    которые могут влиять на всё ядро (аналогично ARM64)
  • Добавить kselftest для поддержки kprobes для инструкции c.jal на RISC-V
  • Когда службы времени выполнения UEFI доступны, использовать их для перезагрузки и выключения питания
  • Исправить ARCH_HAS_ACPI_TABLE_UPGRADE для RISC-V, добавив отсутствующий заголовочный файл в код ACPI
  • Перенести резервирование непрерывной памяти DMA на более поздний этап загрузки, чтобы гарантировать выделение правильных глобальных пулов и пулов для каждого узла при
    включённом CONFIG_CMA_SIZE_PERNUMA
  • Запретить пробы на обработчиках точек останова, чтобы избежать бесконечной рекурсии в do_trap_break()
  • Исправлять compat vDSO при обработке альтернатив во время выполнения, а не только стандартный vDSO
  • Удалить некоторые оставшиеся элементы поддержки XIP, пропущенные коммитом 9b3a2be84803 («riscv: Remove support for XIP kernel»)
  • Исправить переключение широковещательного таймера в состояниях питания ACPI LPI, реализовав версию arch_get_idle_state_flags() для RISC-V
  • Различные исправления, включая: упрощение makefile vDSO; пометку default_power_off() как __noreturn; исправления обработки ошибок в драйвере perf PMU SBI; единообразие использования заглавных букв в названиях расширений RISC-V; использование макросов BIT() в одном из заголовочных файлов; и некоторые исправления документации
  • Alibaba T-Head (TH1520)
    • DRM – th1520-dw-hdmi
      • Исправить проверку ошибки возвращаемого значения dw_hdmi_probe()
      • Исправить обратный вызов remove()
    • PWM – использовать вертикальный стиль импорта
    • Дерево устройств – набор изменений для остальных микросхем расширения ввода-вывода на плате LicheePi 4a на базе TH1520.
  • Canaan/Kendryte
    • Добавлен K230 RISC-V- 64-битный AI SoC на основе более ранней микросхемы K210
    • Начальная поддержка CanMV-K230 и K230-EVB
  • Microchip – Hwmon – датчик температуры/напряжения PolarFire SoC
  • Sophgo
    • SG2000 — это гибридная микросхема Arm/RISC-V, которая уже поддерживалась с использованием ядра Arm, но теперь также добавлена для RISC-V вместе с
      несколькими другими вариантами серии cv18xx
    • Дерево устройств
      • Начальная поддержка плат Milk-V Duo S (SG2000) и Duo 256M (SG2002)
      • Разрешить мультиплексору DMA задавать номер канала для контроллера DMA
  •   Spacemit
    • Термальное управление — добавить devm-действие для очистки аппаратных прерываний, выборки и регистров управления на Spacemit K1
    • PHY — комбинированный драйвер PHY USB3/PCIe Spacemit
    • Драйвер контроллера PCIe — добавить отсутствующий MODULE_DEVICE_TABLE() для генерации информации о псевдонимах модулей для автозагрузки модулей на основе OF
    • Драйвер тактирования
      • Добавить тактирование для контроллера UFS SpacemiT
      • Добавить тактирование I2S SpacemiT и исправления
    • Изменения дерева устройств
      • K3 SoC
        • Включить поддержку SD-карт
        • Включить QSPI
        • Исправить задержку сброса ETH PHY
        • Исправить идентификатор PHY для ETH
        • Символьный идентификатор PDAM
        •   Добавить поддержку контроллера SPI
        • Добавить поддержку USB и PHY
        • Добавить узлы I2S
      • K1 SoC
        • Символьный идентификатор PDAM
        • Включить поддержку cpufreq
        • Исправить максимальное напряжение ядра CPU
      • Платы K3
        • Pico-ITX
          • Включить ALDPS на PHY RTL8211F
          • Отключить тактирование 125 МГц на PHY RTL8211F
          • Включить поддержку NOR flash
          • Добавить поддержку EEPROM
        • Модуль CoM260 — добавить поддержку EEPROM
      • Платы K1
  •   StarFive
    • Драйвер контроллера PCIe
      • Исправление утечек ресурсов на путях ошибок в host_init()
      • Исправление обработки runtime PM и порядка завершения, чтобы избежать доступа к регистрам, когда питание или тактовые сигналы отключены
      • Проверка сбоя возобновления runtime PM, чтобы избежать доступа к регистрам, когда питание или тактовые сигналы отключены
    • SPI – Добавление поддержки StarFive JHB100 SFC (контроллер флеш-памяти SPI)
    • Дерево устройств – Добавление привязок для StarFive JHB100 PLIC

Изменения MIPS

Как обычно, представлено лишь несколько обновлений MIPS:

  • Перевести код GPIO на использование swnodes
  • Переработка кода GPIO TXX9
  • Включить multi-VPE для econet
  • Чистка и исправления

Полный список:

  • mips: dts: econet: Описание процессора 34Kc с dual-VPE
  • mips: econet: добавить поддержку multi-vpe в EN751221
  • MIPS: ptrace: Исправление пропуска системных вызовов через PTRACE_SYSCALL
  • mips: удаление неиспользуемого select
  • MIPS: BCM47XX: Преобразование кнопок в software nodes
  • ssb: gpio: Добавление и регистрация software node для GPIO-контроллера
  • bcma: gpio: Добавление и регистрация software node для GPIO-контроллера
  • MIPS: ip22-gio: Удаление #include <linux/mod_devicetable.h>
  • MIPS: TXX9: Очистка txx9_iocled_init()
  • MIPS: TXX9: Перевод gpio_txx9 на динамическое выделение базы GPIO
  • MIPS: TXX9: Удаление select GPIOLIB_LEGACY
  • MIPS: TXX9: Использование таблицы поиска GPIO для светодиодов iocled
  • MIPS: TXX9: Уменьшение TXX9_IOCLED_MAXLEDS до 3
  • MIPS: TXX9: rbtx4927: Использование таблицы поиска GPIO для светодиодов TXx9
  • MIPS: TXX9: rbtx4927: Использование таблицы поиска GPIO для SIO DTR
  • MIPS: TXX9: Удаление предварительных объявлений txx9_7segled_*()
  • MIPS: TXX9: Удалить tx4938_spi_init() и txx9_spi_init()
  • MIPS: ядро: proc: Использовать два вызова seq_putc() в show_cpuinfo()

Всего было 18 765 неслитых коммитов, из которых 1 920 имели тег «Assisted-by», что означает, что около 10% коммитов в ядро Linux были выполнены с помощью ИИ-агентов, или, по крайней мере, использование ИИ было добровольно указано для этих коммитов. Требование к тегу «Assisted-by» исчезнет в следующих выпусках.

Можно ознакомиться с более подробным список изменений Linux 7.3 , сгенерированным только с комментариями, с помощью команды git log v7.2..v7.3-rc7 --stat. Кроме того, можно также прочитать список изменений на Kernelnewbies .

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

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

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

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

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