Выпуск Linux 6.18 – Основные изменения, архитектуры Arm, RISC-V и MIPS

Линус Торвальдс только что объявил о выпуске Linux 6.18 в списке рассылки Linux Kernel Mailing List (LKML), который, вероятно, станет следующим ядром LTS:

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

Большинство исправлений в последний момент — это мелкие правки в драйверах, а также случайные изменения в других местах (bluetooth, ceph, afs…). Ничто не кажется мне выдающимся, но, эй, если хотите увидеть детали, в конце приложен короткий список изменений.

И это, очевидно, означает, что окно слияния откроется завтра, и у меня уже есть три десятка запросов на слияние. Спасибо. И, как я уже упоминал пару недель назад в одном из примечаний к релизу-кандидату, в этом предстоящем выпуске окно слияния совпадет с ежегодным саммитом сопровождающих ядра, что означает, что я буду в отъезде на второй неделе. Я надеюсь завершить основную часть окна слияния до поездки, чтобы это было не так заметно, но посмотрим.

Таким образом, фактический выпуск rc1 может быть отложен из-за поездки, но это *не* означает, что я буду принимать запросы на слияние после закрытия окна. Это лишь означает, что я могу обрабатывать вовремя поступившие запросы не так оперативно, как это принято, и, возможно, rc1 будет отложен из-за разницы во времени на день или два. Просто имейте в виду (но я уже делал это раньше — «поездка во время второй недели окна слияния», и обычно последствия довольно незначительны).

А затем, позже, в выпуске 6.19 нас ждет праздничный сезон. Обычно это задерживает выпуск на неделю.

Теперь, глядя на календарь, я не уверен на 100%, что для 6.19 потребуется дополнительная неделя, потому что даже при обычном графике выпуска он выйдет в феврале. И к тому времени люди, предположительно, уже придут в себя после пищевой комы. Но сейчас мой план состоит в том, чтобы просто выпустить 6.19 с rc8, потому что я не вижу большого недостатка в добавлении этой дополнительной недели для компенсации любого возможного потерянного времени.

В любом случае, *сегодня* важным ядром является только что выпущенное 6.18. Пожалуйста, продолжайте тестирование.

Linux 6.17 был выпущен 28 сентября, около двух месяцев назад, удалив поддержку одноядерных процессоров (теперь они работают с поддержкой SMP), реализовав контроли векторов атак для архитектуры x86 для лучшего контроля над мерами защиты от уязвимостей оборудования, добавив поддержку динамического обновления (live patching) для 64-битных систем Arm и объединив новый модуль ядра DAMON_STAT для упрощенного мониторинга активности управления памятью в системе, среди многих других изменений. Теперь, когда вышел Linux 6.18, пришло время ознакомиться с некоторыми интересными изменениями и углубиться в подробности об архитектурах Arm, RISC-V и MIPS.

Linux 6.18

Примечательные изменения в Linux 6.18

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

  • Спорная файловая система bcachefs была полностью удалена и теперь управляется как внешний модуль DKMS.
  • Производительность приема UDP была улучшена до 47% .
  • Использование инфраструктуры таблицы подкачки в качестве бэкенда кэша подкачки приводит к повышению производительности на 5–20% по пропускной способности, RPS или времени сборки для бенчмарков и тестовых нагрузок. См. коммит для подробностей и некоторых тестов.
  • Поддержка Rust расширяется за счет привязок для атомарных операций, совместимых с моделью памяти ядра Linux, использования деревьев maple, создания файлов DebugFS и манипуляции с битовыми картами. Драйвер GPU Arm Mali CSF на базе Tyr написан на Rust . Грег Кроа-Хартман также сказал , что все компоненты, необходимые для реализации типичного драйвера USB на Rust, теперь на месте.

Изменения для Arm в Linux 6.18

  • Allwinner
    • Allwinner A523 – Добавлена поддержка GMAC200, тактов MCU PRM, контроллера сброса и Vivante GC9000 NPU
    • Драйверы – Некоторые изменения в драйвере SRAM. Одно — для явной регистрации syscon. Другое — для добавления новой записи драйвера для A523, который имеет два Ethernet-контроллера и, следовательно, два регистра управления задержкой тактов RGMII.
    • Изменения в дереве устройств для Linux 6.18
      • Поддержка тактов MCU PRCM и контроллера сброса в семействе SoC A523/A527/T527, что особенно влияет на NPU (блок IP Vivante GC9000)
      • На отладочных платах семейства A523 теперь правильно настроены внутренние часы RTC, так что RTC не «уплывает». Добавлены отсутствующие функции для AXP717 на этих платах. Добавлены отсутствующие GPIO сброса и задержки для PHY Ethernet. Наконец, для Cubie A5E теперь описаны и доступны к использованию его светодиоды.
      • Добавлен оверлей (наложение) для интерфейсной платы (дополнительной платы) Orange Pi Zero. Её можно использовать с Orange Pi Zero и Zero Plus 2. Для этих двух плат (для использования с дополнением) была добавлена маршрутизация аудио по умолчанию, чтобы дополнить оверлей.
    • Новые устройства
      • ТВ-бокс Amediatech X96Q ( Allwinner H313 )
      • Модуль NetCube Systems Nagami SoM ( Allwinner T113s ) и две базовые платы.
  • Rockchip
    • PHY
      • Поддержка Rockchip RK3588 MIPI CSI-2 DPHY, поддержка RK3528 combphy
      • Активация порта U3 OTG
      • PCIe – Переход на макрос FIELD_PREP_WM16
    • Тактовая частота – Экспорт тактовой частоты dsi-24MHz на RK3368, что, по-видимому, привлекает внимание для обеспечения поддержки DSI.
    • DRM – Поддержка вывода DPTX на RK3588
    • Rocket – Добавлен новый драйвер для NPU от Rockchip, используемого в SoC RK3588
    • Новые устройства
      • FriendlyElec NanoPi Zero2 SBC (Rockchip RK3528A)
      • ArmSoM Sige1 SBC (Rockchip RK3528A)
      • Платы Radxa ROCK 2A/2F (Rockchip RK3528A)
      • Маршрутизаторы HINLINK H66K/ H68K (Rockchip RK3568)
      • Firefly ROC-RK3588-RT
  • Amlogic
    • ASoC – iu-encoder-i2s: исправление полярности тактового сигнала
    • SPI
      • Поддержка Amlogic A113L2
      • Добавлен контроллер SFC флеш-памяти для Amlogic A113L2
    • Часы (Clock)
      • Факторизация функций probe контроллеров часов Amlogic
      • Очистка определений периферийных часов Amlogic
      • Очистка избыточных определений составных часов Amlogic
    • Pinctrl – Добавлен недостающий pinmux i2c_d; Amlogic GXL имеет 4 I2C, подключенных к gpio-periphs. I2C_D находится на GPIOX_10/11. Добавлен соответствующий func 3 pinmux согласно datasheet для S805X/S905X/S905D.
    • Изменения в драйверах
      • Утечка устройства при probe в meson_sm
      • Исправление значения по умолчанию для compile-test в meson_sm
    • Дерево устройств ARM64 для Linux 6.18:
      • Добавлена информация о кеше для SoC Amlogic
      • Добавлен узел RTC для SoC Amlogic C3
      • Исправлен узел PWM для SoC Amlogic C3
      • Удалена возможность UHS для карты SD в Odroid-C2
    • Новое устройство – Н/Д
  • Samsung
    • Драйверы контроллера памяти – Samsung Exynos SROM: исправлена утечка ресурсов карты ввода-вывода, если of_platform_populate() в probe() завершился неудачно.
    • драйвер clk
      • Tesla FSD: Предоставление тактовых сигналов CSI потребителям (DTS)
      • Exynos990
        • Несколько исправлений для fixed factor clocks, ширины регистров и правильных источников PLL
        • Добавлено еще четыре тактовых сигнала для DPU и тактовый сигнал HSI0 для USB
        • Добавлены контроллеры часов PERIC0 и PERIC1 (CMU), отвечающие за предоставление тактовых сигналов последовательным движкам (serial engines)
      • Добавлено семь контроллеров часов для нового SoC Axis ARTPEC-8. SoC разделяет все основные блоки, включая контроллеры часов, с SoC Samsung, поэтому используются те же драйверы и привязки (bindings).
      • Очистка: переход на clk_ops::determine_rate()
    • драйверы pinctrl
      • Добавлены драйверы контроллера выводов (pin controller) для нового SoC Axis ARTPEC-8. SoC разделяет все основные блоки, включая контроллер выводов, с SoC Samsung, поэтому используются те же драйверы и привязки (bindings).
      • Удалена оставшаяся поддержка контроллеров выводов для SoC Samsung S3C2410. Фактическая поддержка этого SoC была удалена в январе 2023 года, так что это лишь оставшаяся очистка.
    • Драйверы SoC
      • Google GS101
        • Включен CPU Idle, который требует программирования подсказок (hints) для состояния простоя C2 через микропрограмму ACPM (Alive Clock and Power Manager). Патч, вводящий это, зависит от свойства Devicetree ‘local-timer-stop’, которое было объединено в v6.17.
        • Исправлена обработка кодов ошибок в драйвере микропрограммы ACPM при взаимодействии с PMIC.
      • Exynos2200 – Добавлен выделенный совместимый идентификатор (compatible) для последовательных движков (USI).
    • Изменения в DTS для ARM
      • Удален SoC S3C2416 из привязок (bindings), поскольку он был удален из ядра в 2023 году.
      • Добавлен Ethernet, подключенный через контроллер SROM (шина памяти) на SMDK5250. Это не тестировалось, но код должен работать так же, как он работает на платах на базе Exynos5410.
    • Изменения в DTS для ARM64 для Linux 6.18 от Samsung
      • Плата Exynos850 e850 – Включен Ethernet.
      • Exynos990 – Включены watchdog и USB, добавлено больше контроллеров часов.
      • Exynos2200 – Переключение на 32-битное адресное пространство для блоков, поскольку все периферийные устройства помещаются там. Добавлены оставшиеся узлы последовательных движков (USI) (serial, I2C).
      • Несколько улучшений по очистке кода.
    • Изменения в конфигурации (defconfig)
      • Очистка от MTD_NAND_S3C2410, удаляемого из ядра через отдельное дерево.
      • Включен SoC Axis ARTPEC в конфигурацию arm64 defconfig – новая подархитектура Samsung.
    • Новое устройство – SoC Axis Artpec ARTPEC-8 с платой, базовая поддержка (не напрямую от Samsung, но дизайн от корейской компании и он разделяет «все основные блоки с другими SoC Samsung (шины, контроллеры часов, контроллеры выводов, PCIe, USB)». Медиа/видеоблоки от Axis)
  • Qualcomm
    • Драйвер тактовых сигналов
      • Введение глобального, дисплейного, rpmh и tcsr контроллеров тактовых сигналов Qualcomm Glymur
      • Введение контроллера тактовых сигналов APSS Qualcomm IPQ5424
      • Расширение глобального контроллера тактовых сигналов Qualcomm MSM8916 для добавления поддержки MSM8937
      • Преобразование Qualcomm alpha PLL в determine_rate() clk_ops
      • Добавление недостающих сбросов в дисплейный контроллер тактовых сигналов Qualcomm SC7280
    • Почтовый ящик – добавление привязки Glymur CPUCP mailbox
    • Драйвер контроллера PCIe
      • Выбор драйвера PCI Power Control Slot, чтобы шины питания слота можно было включать/выключать, если они описаны в узле devicetree Root Port
      • Разбор только дочерних узлов PCI bridge в devicetree, пропуская несвязанные узлы, такие как OPP (Operating Performance Points), которые вызывали сбои при probe.
      • Добавление настроек выравнивания 8.0 GT/s и 32.0 GT/s
      • Консолидация свойств Root Port ‘phy’ и ‘reset’ в struct qcom_pcie_port, независимо от того, получены ли они из узла Root Port или узла host bridge.
      • Получение и отображение пространства регистров ELBI в ядре DWC, а не в каждом драйвере отдельно.
      • Включение механизма ECAM в ядре DWC путем настройки iATU с ‘CFG Shift Feature’ и использование этого в драйвере qcom.
      • Добавление совместимости SM8750 в qcom,pcie-sm8550.yaml
      • Обновление qcom,pcie-x1e80100.yaml для разрешения пятого хоста PCIe на Qualcomm Glymur, который совместим с X1E80100, но не имеет тактового сигнала cnoc_sf_axi.
    • PHY
      • Новое: поддержка двухканального PHY PCIe Qualcomm SM8750 QMP, поддержка ретранслятора PMIV0104 eusb2, поддержка PHY eDP QCS8300.
      • Обновление: поддержка PHY UFS Qualcomm и регулятора нагрузки PLL.
    • Ethernet – поддержка функции Ethernet для SoC IPQ9574.
    • WiFi – Qualcomm/Atheros (ath10k): исправления переустановки ключа GTK.
    • ASoC – поддержка Qualcomm Glymur и PM4125.
    • Coresight – добавление поддержки драйвера Qualcomm Trace Network On Chip.
    • Trusted Execution Environment – добавление драйвера Qualcomm TEE (QTEE).
    • Обновления драйверов устройств
      • Внесение приложения uefisec в разрешительный список для предоставления доступа к переменным UEFI на Dell Inspiron 7441 и Latitude 7455, Hamoa EVK и Lenovo Thinkbook 16.
      • Отключение tzmem на платформе SC7180, так как это вызывает проблемы с rmtfs.
      • Очистка неиспользуемых, оставшихся параметров в API загрузчика MDT.
      • Безусловная очистка бита триггера TCS для избежания ложных IRQ завершения в драйвере RPMh/RSC. Исправление проблемы порядка байтов в драйвере SMEM.
      • Добавление поддержки pd-mapper для SM8750.
      • Введение поддержки загрузки прошивки в последовательные движки QUP из Linux, что позволяет отложить выбор протокола (uart, i2c, spi и т.д.) для данного SE до загрузки ОС.
      • Введение интерфейса «object invoke» в драйвере SCM для предоставления интерфейса драйверу Qualcomm TEE.
    • Обновления дерева устройств Arm64
      • IPQ5424 – масштабирование частоты CPU и недостающий UART.
      • SM8976 – сенсорные кнопки включены на BQ Aquaris X5 Plus.
      • QCM2290 – видеоускоритель включен, также как и режимы синхронизации HS для eMMC.
      • SM6150 (ранее QCS615) – введение масштабирования частоты CPU и контроллера WiFi PCIe.
      • QRB220 RB1 – видеоускоритель venus включен.
      • SC7280 / QCS6490
        • Представлен первый контроллер PCIe и PHY. Добавлена поддержка SoundWire, LPASS и USB offload, кодеки и звуковая карта затем описаны на QCM6490 IDP.
        • Введен сброс ядра MDSS для очистки конфигурации загрузчика на устройствах на базе SC7280.
        • На Fairphone5 добавлен USB audio offload.
        • Введена поддержка AudioReach и использована для включения звука на плате RB3 Gen2 .
      • SC8180X – добавлен контроллер видеотактирования.
      • SC8280XP – описаны и включены контроллеры GPI DMA.
      • SDM632 – включены дисплей и GPU для Fairphone 3 и зарядка на Google Pixel 3a.
      • SDM850 – описана маршрутизация для второго USB-разъема на Lenovo Yoga C630.
      • SM6150 – введены ADSP и CDSP FastRPC, а также видео кодер/декодер (venus).
      • SM6350 – включена статистика RPMh, введен DAI USB audio offload и на Fairphone4 включена поддержка USB audio offload.
      • SM8450 – на QRD описан PMIC GLINK для добавления функциональности USB Type-C и аккумулятора.
      • SM8650
        • Добавлены уровни ACD для GPU.
        • Обновлены power-domains для контроллеров тактовых сигналов камеры и видео на SM8450, SM8550 и SM8650, теперь, когда поддержка нескольких power-domains принята.
      • SM8750 – получает поддержку bwmon для динамического масштабирования шины и узлы PCIe.
      • Узлы DWC3 glue и core объединены на ряде платформ.
      • Поддержка USB Type-C DisplayPort расширена до 4 линий (с 2) на различных платформах, теперь, когда драйвер QMP PHY поддерживает это.
      • Платформенно-специфичные константы RPMh PD заменены на общие везде, где это возможно.
      • IPQ5018
        • Добавлена поддержка Crypto, tsens, rng, SPI NAND, добавлены две шины MDIO и внутренний GE PHY.
        • Добавлен еще один набор контроллеров UART и I2C.
      • Lemans Auto (ранее SA8775P)
        • Изменение названия для уменьшения путаницы с именем чипа.
        • Введена и сделана по умолчанию карта памяти IoT; добавлены узлы GDSP FastRPC и GPR.
        • Введены SDHCI и подсистема камеры, контроллеры USB обновлены до новой объединенной привязки.
        • Lemans EVK получает определение Ethernet, определено больше контроллеров QUP и их движков GPI DMA. Также добавлены PCIe, SDHCI, remoteproc и видеоускоритель iris.
      • Monaco (QCS8300)
        • Введено масштабирование пропускной способности L3 и DDR. Также добавлена поддержка eMMC и generic packer router (GPR).
        • На плате Monaco Ride включен контроллер eMMC.
        • Введены GPU и GMU, узлы контроллеров USB обновлены до новой объединенной привязки. GPU включен на платах EVK и Ride.
      • MSM8916 – определены сбросы SDCC и MDSS.
      • MSM8939 – получает сброс MDSS.
      • QCM2290 – добавлен интерфейс тактовых сигналов камеры.
      • QCS615 – введены tsens и связанные thermal-zones.
      • SDM845
        • Смартфон OnePlus 6 получает светодиод уведомлений, и ядро сенсоров (SLPI) включено на Samsung Galaxy S9.
        • Платы разработки Cheza удалены, так как больше не используются.
      • SM8750 MTP – включены WiFi и Bluetooth.
      • Snapdragon X Elite (и производные)
        • PM8010 отключен по умолчанию, что убирает загрузочные сообщения об ошибках на различных платах без этого PMIC, добавлен контроллер видеотактирования.
        • Для X Elite и X Plus CRD, а также Lenovo Thinkpad T14s, HBR3 помечен как допустимый для внешних DisplayPort. Включен сканер отпечатков пальцев, найденный на CRD. Включен слот PCIe x8 на QCP.
        • Две модели Microsoft Surface Laptop 7 получают поддержку WiFi и Bluetooth.
        • Добавлена поддержка GPU для SoC X Plus.
        • Введен видеоускоритель IRIS и включен на различных ноутбуках.
      • Контроллеры DisplayPort на различных платах обновлены для описания дополнительных пиксельных тактовых сигналов, используемых для MST.
    • Обновления дерева устройств Arm32
      • MSM8960 – перенос нескольких обновлений на платформу MSM8960 и добавление поддержки Sony Xperia SP.
      • Добавлена поддержка сенсорных кнопок на Samsung Galaxy Grand 2.
      • Ряд исправлений в DeviceTree.
    • Обновления arm64 defconfig для Linux 6.18
      • Платформа Qualcomm X Plus получила поддержку GPU, включен необходимый контроллер тактовых сигналов.
      • Улучшена поддержка платформы Qualcomm QCS615, включены связанные с мультимедиа контроллеры тактовых сигналов.
    • Новые устройства
      • Hamoa IoT SOM и плата Hamoa EVK
      • Ноутбук HP Omnibook X14
      • Плата Particle Tachyon
      • Samsung Galaxy S22 (SM-S901E), Samsung Galaxy S20
      • Lenovo Thinkbook 16
      • Dell Inspiron 7441, Dell Latitude 7455,
      • Billion Capture+
      • Monaco EVK (QCS8300) и Lemans EVK.
  • MediaTek
    • Serial – 8250_mtk: активация тактового сигнала бод и управление в runtime PM.
    • Networking – добавлена поддержка MediaTek PCIe 5G HP DRMR-H01.
    • Maibox
      • Добавлен новый драйвер почтового ящика GPUEB.
      • mdq: удалены вызовы pm_runtime из send_data.
      • gce: сделаны необязательными.
    • Драйвер контроллера PCIe Gen3
      • Добавлена настройка времени готовности системного тактового сигнала для предотвращения сбоев сигнала sys_clk_rdy в MT6991 и MT8196.
      • Добавлена привязка DT и поддержка драйвера для MT6991 и MT8196.
    • WiFi – mt76
      • Улучшения перезапуска аппаратной части.
      • Поддержка MLO.
    • I2C
      • Добавлена поддержка SoC MediaTek MT8196 для Chromebook и его близкого родственника, MediaTek Dimensity 9400 MT6991 SoC.
      • Добавлена поддержка хоста для MediaTek MT6878.
    • Драйвер тактовых сигналов – добавлена новая совместимость для SoC MediaTek MT8196, полностью совместимая с MT6765.
    • Новое устройство – нет.
  • Другие новые аппаратные платформы и SoC на Arm
    • Apple – M2 Pro, M2 Max и M2 Ultra, используемые в поколении высокопроизводительных рабочих станций и ноутбуков Apple 2022/2023 годов. Работа над ними в Linux ведётся уже некоторое время, но всё ещё требуются патчи.
    • Aspeed – 5 плат BMC на 32-битных SoC ASpeed.
    • Axis – Artpec8, чип на Armv8, основанный на дизайне Samsung Exynos.
    • Broadcom – 3 сетевых маршрутизатора на SoC IXP4xx (ARMv5!) и Broadcom bcm4708 (ARMv7).
    • NXP
      • i.MX91 однокристальная система на Cortex-A55.
      • Системные модули TQ Embedded TQMa91xx на базе CPU NXP i.MX91 на плате типа LGA или сокетируемой. MBa91xxCA – базовый стартовый комплект для TQMa91xx на адаптерной плате.
      • Системный модуль TQ Embedded TQMLS1012AL с использованием CPU NXP LS1012A. MBLS1012AL – опорная конструкция несущей платы.
      • Одноплатный компьютер Ultratronik Ultra-MACH на базе SoC NXP i.MX8M Plus с 2 ГБ LPDDR4.
    • Renesas – RZ/T2H (r9a09g077m44), RZ/N2H (r9a09g087m44), RZ/T2H (r9a09g077) и RZ/N2H (r9a09g087), промышленные встраиваемые SoC на ядрах Cortex-A55; опорные платы.
    • Xilinx – добавлена поддержка карт Kria K24, KR260 и KD240 CC.
  • Изменения, специфичные для Raspberry Pi
    • Назначены частоты тактовых сигналов для контроллера Ethernet в системах Raspberry Pi 5.
    • Добавлен псевдоним ethernet0, чтобы позволял клиентским программам, использующим этот псевдоним, получать правильный MAC-адрес Ethernet для систем Raspberry Pi 5.
    • Описан сигнал прерывания VGIC таким образом, чтобы можно было использовать KVM в системах Raspberry Pi 5.
    • drm/v3d – создана выделенная блокировка для dma fence – не смешивать блокировку dma fence с блокировкой active_job. Используется fence_lock для защиты dma fence, используемого планировщиком drm при сигнализации о завершении задания, и queue_lock для защиты конкурентного доступа к активному bin-заданию при OOM и сборе статистики для данного файлового дескриптора. Проблема была обнаружена при использовании PREEMPT_RT, когда система зависала при открытии нескольких вкладок Chromium на Raspberry Pi 5.
    • Преобразование привязки DeviceTree контроллера сенсорного экрана Raspberry Pi фирменной прошивки 7″ в json-schema.
    • Добавлена поддержка контроллера Ethernet Raspberry Pi RP1 .
    • Активирован драйвер pinctrl RP1 для Pi 5.
    • Добавлены узлы контроллера пинов, дополнительный контроллер GPIO, узел второго контроллера SDHCI для SDIO Wi-Fi и UARTA для Bluetooth в DTS для BCM2712 (Raspberry Pi 5).
    • Активированы записи devicetree для USB на Rpi5.

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

В Linux 6.18 много изменений для RISC-V, частично из-за проблем с качеством и своевременностью наборов патчей для Linux 6.17, которые в итоге были отклонены Линусом Торвальдсом. Они были переработаны и объединены в Linux 6.18 вместе с другими обновлениями.

  • Замена __ASSEMBLY__ на __ASSEMBLER__ в заголовочных файлах (другие архитектуры уже выполнили эту очистку).
  • Введение ioremap_wc() для RISC-V.
  • Очистка кода RISC-V kprobes для использования в основном существующих макросов вместо написания кода вручную.
  • Модульный тест для RISC-V kprobes.
  • Реализация набора макросов для замены порядка байт, специфичная для архитектуры, использующая для этой цели специальные инструкции RISC-V, если они доступны.
  • Возможность идентифицировать и сообщать пользовательскому пространству о наличии специфичного для MIPS P8700 расширения ISA, а также использовать его специфичную для MIPS реализацию PAUSE в cpu_relax().
  • Поддержка стандартизированного интерфейса RPMI для RISC-V. RPMI — это механизм связи для управления платформой между операционными системами, работающими на процессорах приложений, и удаленным процессором управления платформой. Аналогичен ARM SCMI, TI SCI и т.д. Включает изменения в irqchip, mailbox и clk.
  • Поддержка расширения MPXY SBI, стандартизированного для RISC-V. MPXY — это специфичный для RISC-V стандарт, реализующий разделяемую память mailbox между операционными системами в режиме S (например, Linux) и прошивкой в режиме M (например, OpenSBI). Он включен в этот PR, поскольку один из случаев его использования — позволить прошивке в режиме M выступать в качестве единого клиента RPMI для всей активности RPMI на ядре (включая активность RPMI в режиме S). Включает драйвер mailbox.
  • Некоторые обновления, связанные с ACPI, для обеспечения использования RPMI и MPXY.
  • Добавление статических встроенных функций Linux memcpy_{from,to}_le32() для использования в RPMI.
  • Изменение конфигурации Kconfig для ACPI, позволяющее использовать загрузочные логотипы на любой архитектуре с ACPI (включая RISC-V).
  • Изменение конфигурации defconfig для RISC-V для добавления поддержки GPIO-клавиатуры и устройства событий, предназначенных для кнопок выключения или перезагрузки на передней панели.
  • Несколько разрозненных исправлений и улучшений кода.
  • ESWIN – Добавлена поддержка системы на кристалле EIC7700 , состоящей из кластера процессоров SiFive Quad-Core P550 и первой платы разработки на его основе, SiFive HiFive Premier P550.
  • Microchip
  • SiFive – Поддержка специфичных для производителя SiFive расширений в файле привязок (binding) для расширений. В настоящее время они используются только в реализации SBI.
  • Sophgo
    • Добавлен PHY для USB Sophgo CV1800 (CV18XX/SG200X).
    • Драйвер контроллера PCIe Sophgo SG2042.
    • Изменение в дереве устройств – для SG2042L включена поддержка NUMA, что позволяет увидеть значительный прирост производительности, например, в тесте STREAM.
  • SpacemiT
    • Драйвер тактовых сигналов.
      • Перевод на использование clk_ops::determine_rate().
      • Исправление родительских тактовых сигналов SSPA в драйвере SpacemiT.
    • PMIC SpacemiT P1 – драйверы RTC и регуляторов.
    • SpacemiT K1
      • Поддержка контроллера PDMA, драйвер MAC для Ethernet.
      • Включение драйвера MMP_PDMA в качестве модуля в сборках defconfig, где он требуется для плат Spacemit K1.
    • Изменения в дереве устройств.
      • Добавлена поддержка сброса (reset) в драйвер UART.
      • Удален узел sec_uart1.
    • Новая плата – Orange Pi RV2.
  • StarFive
    • Добавлены системные модули Milk-V Mars CM и CM Lite (JH7110).
    • Несколько улучшений в общем файле dtsi для JH7110, некоторые связаны со свойствами, используемыми U-Boot или обнаруженными в процессе разработки U-Boot.
    • Привязка (binding) и узел дерева устройств для контроллера памяти (DMC) на JH7110.

Изменения в архитектуре MIPS

Для архитектуры MIPS все еще наблюдается минимальная активность. Краткий обзор:

  • перевод платформы longson32 на использование дерева устройств (DT) и фреймворка MIPS_GENERIC.
  • исправления и улучшения для деревьев устройств lantiq.
  • другие исправления и улучшения кода.

Выдержка из более длинного лога:

  • mips: math-emu: замена устаревшей функции strcpy() в me-debugfs.
  • MIPS: configs: объединение конфигураций defconfig для Loongson1.
  • MIPS: унификация Loongson1 PRID_REV.
  • MIPS: loongson32: переход на универсальное ядро (generic core).
  • MIPS: loongson: добавление поддержки встроенного DTB.
  • MIPS: dts: loongson: добавление платы CQ-T300B.
  • MIPS: dts: loongson: добавление платы Smartloong-1C.
  • MIPS: dts: loongson: добавление платы LSGZ_1B_DEV.
  • MIPS: dts: loongson: добавление платы LS1B-DEMO.
  • dt-bindings: mips: loongson: добавление плат LS1B-DEMO и CQ-T300B.
  • mips: lantiq: danube: переименование узла stp на референсной плате EASY50712.
  • mips: lantiq: xway: sysctrl: переименование тактового сигнала stp.
  • MIPS: RB532: замена устаревшей функции strcpy() на memcpy() и strscpy().
  • MIPS: Loongson64: замена устаревшей функции strcpy() на strscpy_pad().
  • MIPS: generic: замена устаревшей функции strcpy() в ocelot_detect().
  • MIPS: octeon: замена устаревшей функции strcpy() в octeon_model_get_string_buffer().
  • MIPS: octeon: замена memset(0) + устаревшей функции strcpy() на strscpy_pad().
  • MIPS: arc: замена устаревшей функции strcpy() на memcpy().
  • MIPS: txx9: замена устаревшей функции strcpy() на strscpy().
  • MIPS: sni: замена устаревшей функции strcpy() в sni_console_setup().

Для получения более подробной информации можно прочитать   журнал изменений Linux 6.18   , сгенерированный командой git log v6.17..v6.18-rc7 --stat, чтобы показать только сообщения коммитов (без кода). Как обычно, также можно проверить Kernelnewbies для получения более широкого списка изменений в последнем ядре Linux 6.18.

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

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

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

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

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