Перейти к основному содержимому

Версия 5.12

⤓ Скачать Baikal ARM64 SDK 5.12

Baikal ARM64 SDK 5.12 Release Notes

Baikal ARM64 SDK 5.12 содержит следующее программное обеспечение:

  1. Trusted Firmware-A (TF-A) v2.10, лицензия BSD.
    https://github.com/ARM-software/arm-trusted-firmware

    Не реализована цепочка доверия - Chain of Trust.

    Baikal-M
    Инициализация DDR-контроллера реализована в TF-A.

    Baikal-S
    Инициализация DDR-контроллера реализована в TF-A.

  2. TianoCore UEFI (EDK II) edk2-stable202311, лицензия BSD.
    https://github.com/tianocore/tianocore.github.io/wiki

    Baikal-M
    Поддерживается загрузка Linux с SATA, NVMe, USB, SPI Flash, Gigabit Ethernet, DVD-ROM, SD card, eMMC. Есть видеоконсоль HDMI/LVDS и USB-мышь/клавиатура, а также последовательная консоль на UART0. Имеется поддержка 3 x PCIe RC.

    Примечание

    Последовательная консоль в UEFI в релизной сборке отключена. При необходимости использование последовательной консоли необходимо пересобрать образ прошивки с опцией -ud/--uefi-debug

    Baikal-S
    Поддерживается загрузка Linux с NVMe, USB, SPI Flash, Gigabit Ethernet. Есть USB-мышь/клавиатура, последовательная консоль на UART0 (включена как в релизной сборке, так и в отладочной).

  3. Linux kernel 5.4.257.
    https://www.kernel.org/

    Baikal-M Поддержка плат c Baikal-M:

    • DBM (Cortex-A57 1500 MHz, DDR4-1600, объём RAM до 64 GB)
    • MBM 1.0 / 2.0 (Cortex-A57 1500 MHz, DDR4-2400, объём RAM до 64 GB)
  2 x PCIe x4 (Gen3)
1 x PCIe x8 (Gen3)
2 x SATA 6G
2 x Gigabit Ethernet (RGMII) (Поддержка XDP sockets)
2 x 10 Gigabit Ethernet (10GBase-KR/KX4)
4 x USB2.0
2 x USB3.0/2.0
Mali T628 (Midgard/Panfrost) 750 MHz
VDU/HDMI 2560x1440@60Hz, экспериментальный режим 3840x2160@27Hz
VDU/LVDS 2560x1440@60Hz
LVDS+HDMI одновременно, только Panfrost: 1920x1080@60 на каждом экране
HDMI audio
Video Decoder
I2S
HDA
1 x SPI
1 x eSPI
2 x UART
2 x I²C
2 x SMBus
1 x GPIO32
eMMC/SD/SDIO
DW Timers
PVT
CoreSight (Debug)

cpufreq - Динамическое управление частотой ядер A57 и Mali T628.
Поддержка включения/выключения ядер/кластеров Cortex-A57.
PMU - Performance Monitor Unit.
Поддержка виртуализации KVM + QEMU.
Поддержка виртуализации Xen.

Baikal-S

Поддержка плат c Baikal-S:

- DBS (Cortex-A75 2000 MHz, DDR4-3200, объём RAM до 768 GB)
- DBS-OV (Cortex-A75 2500 MHz, DDR4-3200, объём RAM до 768 GB)
- MBS-1S (Single Socket, Cortex-A75 2000 MHz, DDR4-2400, объём RAM до 768 GB)
- MBS-2S (Dual Socket, Cortex-A75 2000 MHz, DDR4-2400, объём RAM до 1,5 TB)


1 x QSPI
2 x ARM UART PL011
4 x DW Timers
USB2.0
Watchdog
1 x GPIO32
1 x GPIO16
2 x GPIO8
3 x I²C/SMBus
2 x Gigabit Ethernet (RGMII)
PCIe RC x16 / x8 / x4
PCIe EP x16 / x8
PVT
MUX
1 x DW UART (MUX)
2 x I²C/SMBus (MUX)
1 x eSPI (MUX)
1 x QSPI (MUX

cpufreq - Динамическое управление частотой ядер A75.
Поддержка виртуализации KVM + QEMU.
Поддержка виртуализации Xen.
PMU - Performance Monitor Unit.
CoreSight (Debug).
  1. Baikal-S: поддержка межпроцессорного взаимодействия (3 x PCIe CCIX x16).

  2. Xen 4.17.2. https://xenproject.org/ Гибридный гипервизор, адаптированный для запуска на платформах Baikal-S и Baikal-M.

  3. Baikal-M: Бинарные библиотеки OpenGL и OpenCL c поддержкой Wayland/Weston:

    • OpenGL ES 1.1, 2.0, 3.0.
    • OpenCL 1.1.
  4. Baikal-M: Набор патчей c поддержкой Mali T628 для Mesa 20.2.

  5. Baikal-M: Бинарная библиотека OpenMAX IL и GStreamer-плагин для работы с видеодекодером. Поддерживаемые кодеки:

    VP8 VP6 Sorenson Spark (реализация стандарта Н.263) AVS MPEG4 MPEG2 MPEG1 WMV9 VC1 H264 HEVC (H265)

  6. rootfs на базе Busybox.
    https://www.busybox.net/source.html

  7. Toolchain на основе gcc 13.1 / binutils 2.38
    https://gcc.gnu.org/

  8. Возможность отладки с использованием OpenOCD / Olimex ARM-USB-OCD-H.

  9. Поддерживается возможность использования профилировщика OProfile 1.4.0.

  10. Есть возможность запуска rootfs Debian 12. В состав SDK не входит, поставляется отдельным архивом.

  11. Библиотека SIMDe для запуска ISA расширений из других архитектур на ARM64.

  12. ACPICA версии 20221020 (iASL, tools).

  13. Библиотека OpenCSD, использующая возможности CoreSight для трассировки событий посредством утилиты ядра perf.

  14. Поддерживается возможность применить RT_PREEMPT-патч для ядра Linux.

Примечание

Файлы образов прошивок из директории prebuilts совместимы со старыми версиями утилиты flashrom (<= 0.9.x) Если необходимо использовать более новые версии flashrom, следует расширить файл образа до размера микросхемы флеш-памяти (32 Мб). Это можно сделать при помощи ключа -bp/--bootrom-padding или вручную соответствующими командами ОС Linux (например, truncate).

Changelog (5.11 → 5.12)

  1. SDK (основное дерево SDK)
  • BE-S1000: добавлена поддержка однопроцессорной материнской платы Olkhon MBS-Base v1.0 (наименование платформы при вызове скрипта сборки - mbs-1s).

  • BE-S1000: в прошивки SCP добавлена поддержка "компрессированной" карты памяти - прошивки обновлены до версий XCP_FW-4.2-231211 (однопроцессорные системы, объём ОЗУ до 2 + 30 + 736 = 768 Гбайт) и XCP_FW-5.3-duo-231211 (двухпроцессорные системы, объём ОЗУ до 2 x 768 Гбайт).

  • Директории _build и img, образовывающиеся в результате различных операций по сборке двоичных образов, объединены в единую директорию build, в которой образуется поддиректория kernel (см. ниже).

  • Частично изменены имена файлов и структура директорий prebuilts и build. Теперь в этих директориях появилась поддиректория kernel, куда помещается ядро и связанные с ним файлы:

    • config-5.4.257-baikal-arm64 - файл конфигурации ядра;
    • Image-5.4.257-baikal-arm64 - нескомпрессированный образ ядра;
    • initrd.img-5.4.257-baikal-arm64 - образ initrd;
    • modules/lib/modules/5.4.257-baikal-arm64/ - модули ядра (ранее распространялись в виде отдельного архивного файла);
    • System.map-5.4.257-baikal-arm64 - таблица символов ядра;
    • vmlinuz-5.4.257-baikal-arm64.efi - ядро в исполняемом формате EFI.
  • build-boot-img.sh: убран ключ -e / --empties (теперь в нём нет необходимости);
    Добавлена опция --debugconfig для генерации файла конфигурации ядра со включёнными отладочными опциями (см. файл kernel/configs/debug.config в дереве исходных текстов ядра).

  • build-initrd-img.sh: для сборки образа initrd используется алгоритм компрессии XZ вместо GZIP.

  • Исправлены мелкие ошибки в скриптах сборки и вспомогательных файлах.

    Изменённые файлы:

      README
    VERSION
    prebuilts/bs1000-scp.bin
    prebuilts/bs1000-scp-boot.bin
    prebuilts/bs1000-scp-slave.bin
    src/xen/drivers/passthrough/arm/smmu-v3.c
    tools/build-boot-img.sh
    tools/build-debian-kit.sh
    tools/build-initrd-img.sh
    tools/environment.sh

    Добавленные файлы:

      prebuilts/kernel/*
    prebuilts/kernel/modules/*
    prebuilts/mbs-1s.bl1.bin
    prebuilts/mbs-1s.dtb
    prebuilts/mbs-1s.efi.fd
    prebuilts/mbs-1s.fip.bin
    prebuilts/mbs-1s.flash0.img
    prebuilts/mbs-1s.flash.img
  1. ARM Trusted Firmware (TF-A)
  • TF-A обновлён до релиза v2.10.

  • ВЕ-S1000: изменена раскладка памяти DRAM по регионам (2 + 30 + 736 Гбайт).

  • Оптимизирован код драйвера DDR.

  • Исправлены мелкие стилистические и логические ошибки в процедурах инициализации и драйверах различных подсистем.

    Изменённые файлы:

      plat/baikal/bm1000/bm1000_pm.c
    plat/baikal/bm1000/bm1000_splash.c
    plat/baikal/bm1000/bm1000_vdu.h
    plat/baikal/bm1000/drivers/ddr/ddr_init.c
    plat/baikal/bm1000/drivers/ddr/ddr_main.c
    plat/baikal/bm1000/drivers/ddr/ddr_main.h
    plat/baikal/bm1000/drivers/ddr/ddr_master.c
    plat/baikal/bm1000/drivers/ddr/ddr_menu.c
    plat/baikal/bm1000/drivers/ddr/ddr_menu.h
    plat/baikal/bm1000/drivers/ddr/ddr_odt_settings.c
    plat/baikal/bm1000/include/baikal_def.h
    plat/baikal/bm1000/platform.mk
    plat/baikal/bs1000/bs1000_bl31_setup.c
    plat/baikal/bs1000/bs1000_pcie.c
    plat/baikal/bs1000/bs1000_pm.c
    plat/baikal/bs1000/bs1000_usb.c
    plat/baikal/bs1000/drivers/ddr/ddr_main.c
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_load.c
    plat/baikal/bs1000/include/baikal_def.h
    plat/baikal/bs1000/platform.mk
  •   plat/baikal/bs1000/drivers/bs1000_gmac.h переименован,
    новое имя plat/baikal/bs1000/bs1000_smmu.h
    plat/baikal/bs1000/drivers/bs1000_gmac.c переименован,
    новое имя plat/baikal/bs1000/bs1000_smmu.c
    plat/baikal/bs1000/drivers/bs1000_usb.c переименован,
    новое имя plat/baikal/bs1000/bs1000_usb.c
    plat/baikal/bs1000/drivers/bs1000_usb.h переименован,
    новое имя plat/baikal/bs1000/bs1000_usb.h

Добавленные файлы:

    plat/baikal/bm1000/drivers/ddr/ddr_menu.c
plat/baikal/bm1000/drivers/ddr/ddr_menu.h
  1. UEFI
  • UEFI обновлён до edk2-stable202311.

  • Добавлено конфигурационное меню для настройки параметров DDR (включая референсное напряжение Vref).

  • HDMI: при инициализации видеорежима используются временные параметры из EDID (из дерева устройств считывается только разрешение, если LVDS-панель присутствует в системе).

  • Теперь можно задавать цвета фона и шрифта для UEFI путём редактирования соответствующих переменных в файле Platform/Baikal/Library/PlatformBootManagerLib/PlatformBootManager.c:

      Initializer format is as follows:             {Blue,  Green, Red, 0}
    **/
    STATIC EFI_GRAPHICS_OUTPUT_BLT_PIXEL mBackground = {0, 0, 0, 0};
    STATIC EFI_GRAPHICS_OUTPUT_BLT_PIXEL mForeground = {0xFF, 0xFF, 0xFF, 0};
  • Исправлены мелкие ошибки в драйверах различных подсистем (PCIe, ACPI, SATA и др.).

    Изменённые файлы:

      Platform/Baikal/Application/DdrSettings/DdrSettings.c
    Platform/Baikal/Application/DdrSettings/DdrSettings.h
    Platform/Baikal/BM1000Rdb/BM1000Rdb.dsc
    Platform/Baikal/BM1000Rdb/BM1000Rdb.fdf
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/AcpiPlatform.h
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.asl
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Iort.c
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Mcfg.c
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcieCustom.asl
    Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
    Platform/Baikal/BM1000Rdb/Drivers/XGmacDxe/XGmac.c
    Platform/Baikal/BS1000Rdb/BS1000Rdb.dsc
    Platform/Baikal/BS1000Rdb/BS1000Rdb.fdf
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Dbg2.c
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Srat.c
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcie.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcie-S1.asi
    Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
    Platform/Baikal/BS1000Rdb/Drivers/SpdClientDxe/SpdClientDxe.c
    Platform/Baikal/BS1000Rdb/Library/PlatformLib/PlatformLibMem.c
    Platform/Baikal/Drivers/FruClientDxe/FruClientDxe.c
    Platform/Baikal/Drivers/FruClientDxe/FruInternals.c
    Platform/Baikal/Drivers/GmacDxe/Gmac.c
    Platform/Baikal/Drivers/HighMemDxe/HighMemDxe.c
    Platform/Baikal/Drivers/HighMemDxe/HighMemDxe.inf
    Platform/Baikal/Library/BaikalRtcLib/BaikalRtcLib.c
    Platform/Baikal/Library/BaikalVduLib/BaikalVdu.c
    Platform/Baikal/Library/BaikalVduLib/BaikalVdu.h
    Platform/Baikal/Library/BaikalVduLib/BaikalVduPlatform.c
    Platform/Baikal/Library/PlatformBootManagerLib/PlatformBootManager.c
    Silicon/Baikal/BM1000/Drivers/NonDiscoverableAhciDxe/NonDiscoverableAhci.c
    Silicon/Baikal/BM1000/Library/DbSmbusLib/DbSmbusLib.c
    Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
    Silicon/Baikal/BS1000/Include/BS1000.h
    Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c

    Добавленные файлы:

      Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenu.c
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenuComponent.c
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenuComponent.h
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenuDataStruct.h
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenu.h
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenuHii.c
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenuHii.h
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenu.inf
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenu.uni
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenu.vfr
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamStruc.c
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamStruc.h
    Silicon/Baikal/BS1000/Drivers/PcieEndpointDxe/PcieEndpoint.c
    Silicon/Baikal/BS1000/Drivers/PcieEndpointDxe/PcieEndpointDxe.inf
  1. Kernel (Linux kernel 5.4.257)
  • Слияние с kernel.org 5.4.257 (поддерживается Linux RT Patch 5.4.254-rt87, который распространяется отдельно от SDK).

  • Мелкие исправления в драйверах и конфигурационных файлах различных подсистем.

    Изменённые файлы:

      arch/arm64/boot/dts/baikal/bm1000-dbm.dtsi
    arch/arm64/boot/dts/baikal/bm1000.dtsi
    arch/arm64/boot/dts/baikal/bm1000-mbm.dtsi
    arch/arm64/boot/dts/baikal/bm1000-qemu-m.dts
    arch/arm64/boot/dts/baikal/bs1000-dbs.dtsi
    arch/arm64/boot/dts/baikal/bs1000.dtsi
    arch/arm64/boot/dts/baikal/bs1000-mbs-1s.dts
    arch/arm64/boot/dts/baikal/bs1000-mbs-2s.dts
    arch/arm64/configs/baikal_defconfig
    drivers/iommu/arm-smmu-v3.c
    drivers/pci/controller/dwc/pcie-baikal-core.c
    sound/pci/hda/hda_baikal.c
    sound/pci/hda/Kconfig
    sound/pci/hda/Makefile

    Добавленные файлы:

      arch/arm64/boot/dts/baikal/bs1000-mbs-1s.dts
    kernel/configs/debug.config
  1. Initrd (Baikal Embedded Linux)
  • В тест Coremark добавлена поддержка платы MBS-2S (запуск 96 потоков).

    Изменённые файлы:

      programs/benchmarks/Makefile
    programs/benchmarks/coremark_v1.0/Makefile