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

Версия 5.6

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

Baikal ARM64 SDK 5.6 Release Notes

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

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

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

    Baikal-M
    Добавлена процедура инициализации DDR контроллера.

    Baikal-S
    SCP выполняет инициализацию DDR контроллера.

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

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

    Примечание

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

    -ud/--uefi-debug

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

  3. Linux kernel 5.4.197.
    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.

    Baikal-S:

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

    • DBS (Cortex-A75 2000 MHz, DDR4-3200, объём RAM до 96 GB)

      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
      PVT
      MUX
      1 x DW UART (MUX)
      2 x I²C/SMBus (MUX)
      1 x eSPI (MUX)
      1 x QSPI (MUX)

      Поддержка следующих интерфейсов еще не добавлена в ядро Линукс:
      PCIe EP x16 / x8
      3 x PCIe CCIX x16
      CoreSight
  1. Baikal-M: Бинарные библиотеки OpenGL и OpenCL c поддержкой Wayland/Weston:

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

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

    VP8
    VP6
    Sorenson Spark (реализация стандарта Н.263)
    AVS
    MPEG4
    MPEG2
    MPEG1
    WMV9
    VC1
    H264
    HEVC (H265)
  4. rootfs на базе Busybox.
    https://www.busybox.net/source.html

  5. Toolchain на основе gcc 12.1 / binutils 2.35
    https://gcc.gnu.org/

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

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

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

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

  10. Поддерживается возможность применить RT Linux патч на ядро Linux 5.4.

Примечание

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

-bt/--build-padding 

или вручную соответствующими командами ОС Linux (например, truncate).

Changelog (5.5 → 5.6)

  1. SDK (основное дерево SDK)

    • GCC обновлён до версии 12.1.0.
    • Имя корневой директории SDK теперь имеет вид baikal-arm64-V.V-YYYYMMDD, где V.V - номер версии, YYYYMMDD - дата релиза. Для данного выпуска SDK - baikal-arm64-5.6-20220726. Далее в списках изменённых файлов имя корневой директории будет опускаться.
    • Добавлены исходные тексты библиотеки SIMD Everywhere (SIMDe), которая обеспечивает поддержку SIMD Intrinsics на платформе ARM64. Исходные тексты размещены в директории simde.
    • Baikal BE-M1000: обновлена прошивка SCP до версии 5.4:
    • изменился формат размещения прошивок во флеш-памяти для плат DBM;
    • добавлена возможность обновления прошивки SCP из EFI.
    • Скрипт build-boot-img.sh: добавлена опция -dbk для сборки образа Debian для QEMU. Подробности - в справке по скрипту; QEMU add-on в состав SDK не входит и распространяется отдельно.
    • Исправлены мелкие ошибки в скриптах сборки.

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

    VERSION
    prebuilts/bm1000-scp.bin
    src/vdec/Makefile
    tools/build-boot-img.sh
    tools/build-initrd-img.sh
    tools/environment.sh
    tools/run-qemu.sh
    xtools/*

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

    src/simde/*
    tools/build-debian-kit.sh
  2. ARM Trusted Firmware (TF-A)

    • Усовершенствованы процедуры инициализации DDR.

    • Исправлены ошибки в драйверах SPI, USB, PLL.

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

      plat/baikal/bm1000/bm1000_bl1_logo_v1.c
      plat/baikal/bm1000/bm1000_bl1_logo_v2.c
      plat/baikal/bm1000/bm1000_bl1_logo_v3.c
      plat/baikal/bm1000/bm1000_bl1_logo_v4.c
      plat/baikal/bm1000/bm1000_bl1_setup.c
      plat/baikal/bm1000/bm1000_bl2_setup.c
      plat/baikal/bm1000/bm1000_bl31_sdk_version_logo.c
      plat/baikal/bm1000/bm1000_bl31_setup.c
      plat/baikal/bm1000/bm1000_mmca57.c
      plat/baikal/bm1000/bm1000_mmca57.h
      plat/baikal/bm1000/bm1000_sip_svc.c
      plat/baikal/bm1000/drivers/bm1000_cmu.c
      plat/baikal/bm1000/drivers/bm1000_scp.c
      plat/baikal/bm1000/drivers/ddr/ddr_baikal.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_master.h
      plat/baikal/bm1000/drivers/ddr/ddr_odt_settings.c
      plat/baikal/bm1000/drivers/ddr/ddr_spd.c
      plat/baikal/bm1000/drivers/ddr/ddr_spd.h
      plat/baikal/bm1000/include/baikal_def.h
      plat/baikal/bm1000/include/platform_def.h
      plat/baikal/bm1000/platform.mk
      plat/baikal/bs1000/bs1000_bl1_setup.c
      plat/baikal/bs1000/bs1000_bl31_setup.c
      plat/baikal/bs1000/bs1000_sip_svc.c
      plat/baikal/bs1000/drivers/bs1000_cmu.c
      plat/baikal/bs1000/include/baikal_def.h
      plat/baikal/bs1000/include/bs1000_def.h
      plat/baikal/bs1000/include/platform_def.h
      plat/baikal/bs1000/platform.mk
      plat/baikal/common/baikal_io_storage.c
      plat/baikal/common/dw_i2c.c
      plat/baikal/common/include/baikal_sip_svc.h
      plat/baikal/common/include/baikal_sip_svc_flash.h
      plat/baikal/common/spi_dw_boot.c
      plat/baikal/common/spi_flash_ids.h

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

      plat/baikal/bs1000/drivers/bs1000_usb.c
      plat/baikal/bs1000/drivers/bs1000_usb.h
  3. UEFI

    • Обновлены таблицы SMBIOS и ACPI.

    • XGMAC реализовано корректное выставление MAC-адресов (псевдослучайно либо в соответствии с деревом устройств) аналогично интерфейсу GMAC.

    • Утилита SpiFlash доработана: теперь с её помощью можно обновлять загрузчик SCP.

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

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

      MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c
      MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h
      Platform/Baikal/Application/SpiFlash/SpiFlash.c
      Platform/Baikal/BM1000Rdb/BM1000Rdb.dsc
      Platform/Baikal/BM1000Rdb/BM1000Rdb.fdf
      Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
      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/Spcr.c
      Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcieCommon.asl
      Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcieCustom.asl
      Platform/Baikal/BM1000Rdb/Drivers/EuiClientDxe/EuiClientDxe.c
      Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
      Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
      Platform/Baikal/BM1000Rdb/Drivers/UidClientDxe/UidClientDxe.c
      Platform/Baikal/BM1000Rdb/Library/PlatformLib/FdtBaikalMem.c
      Platform/Baikal/BS1000Rdb/BS1000Rdb.dsc
      Platform/Baikal/BS1000Rdb/BS1000Rdb.fdf
      Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/AcpiPlatform.h
      Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.asl
      Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Iort.c
      Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Pmtt.c
      Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcie.asl
      Platform/Baikal/BS1000Rdb/Drivers/EuiClientDxe/EuiClientDxe.c
      Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
      Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
      Platform/Baikal/BS1000Rdb/Library/PlatformLib/FdtBaikalMem.c
      Platform/Baikal/Drivers/GmacDxe/Gmac.c
      Platform/Baikal/Drivers/GmacDxe/GmacSnp.c
      Platform/Baikal/Include/Library/BaikalSmcLib.h
      Platform/Baikal/Include/Library/BaikalSpdLib.h
      Platform/Baikal/Include/Library/BaikalVduPlatformLib.h
      Platform/Baikal/Library/BaikalMemoryInitPeiLib/BaikalMemoryInitPeiLib.c
      Platform/Baikal/Library/BaikalRtcLib/BaikalRtcLib.c
      Platform/Baikal/Library/BaikalSmcLib/BaikalSmcLib.c
      Platform/Baikal/PrePi/AArch64/ModuleEntryPoint.S
      Silicon/Baikal/BM1000/Include/BM1000.h
      Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
      Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLib.inf
      Silicon/Baikal/BS1000/Include/BS1000.h
      Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
      Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLib.inf
      Silicon/Baikal/Library/DwI2cLib/DwI2cLib.c
      Silicon/Baikal/Library/DwI2cLib/DwI2cLib.inf

      Platform/Baikal/Library/BaikalSpdLib/BaikalSpdLib.c переименован,
      новое имя Platform/Baikal/Library/BaikalSmbiosLib/BaikalSmbiosLib.c
      Platform/Baikal/Library/BaikalSpdLib/BaikalSpdLib.inf переименован,
      новое имя Platform/Baikal/BM1000Rdb/Library/BaikalSpdLib/BaikalSpdLib.inf

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

      Platform/Baikal/BM1000Rdb/Drivers/XGmacDxe/XGmac.c
      Platform/Baikal/BM1000Rdb/Drivers/XGmacDxe/XGmacDxe.inf
      Platform/Baikal/BM1000Rdb/Library/BaikalSpdLib/BaikalSpdLib.c
      Platform/Baikal/Include/Library/BaikalSmbiosLib.h
      Platform/Baikal/Library/BaikalSmbiosLib/BaikalSmbiosLib.inf

      Удалённые файлы:

      Platform/Baikal/Application/SpiFlashImage/SpiFlashImage.c
      Platform/Baikal/Application/SpiFlashImage/SpiFlashImage.inf
      Platform/Baikal/Include/Platform/Pcie.h
      Silicon/Baikal/BS1000/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c
      Silicon/Baikal/BS1000/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf
  4. Kernel (Linux kernel 5.4.197)

    • Слияние с kernel.org 5.4.197 (поддерживается Linux RT Patch 5.4.193-rt74, который распространяется отдельно от SDK).
    • Baikal-S (BE-S1000): поддержка драйвера MUX, реализующего на GPIO низкоскоростные интерфейсы - UART, I2C, SPI, eSPI.
    • В конфигурации ядра включены dynamic frequency scaling governors (ondemand, schedutil, conservative).
    • Исправление мелких ошибок в драйверах и файлах дерева устройств.
    • Изменения файлов без учёта изменений из kernel.org:

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

      arch/arm64/boot/dts/baikal/bm1000-clocks.dtsi
      arch/arm64/boot/dts/baikal/bm1000-dbm.dtsi
      arch/arm64/boot/dts/baikal/bm1000.dtsi
      arch/arm64/boot/dts/baikal/bm1000-mbm20.dts
      arch/arm64/boot/dts/baikal/bm1000-mbm.dtsi
      arch/arm64/boot/dts/baikal/bm1000-qemu-m.dts
      arch/arm64/boot/dts/baikal/bs1000-clocks.dtsi
      arch/arm64/boot/dts/baikal/bs1000-dbs.dts
      arch/arm64/boot/dts/baikal/bs1000.dtsi
      arch/arm64/boot/dts/baikal/bs1000-qemu-s.dts
      arch/arm64/boot/dts/baikal/Makefile
      arch/arm64/configs/baikal_defconfig
      arch/arm64/configs/baikal_defconfig_debug
      arch/arm64/Kconfig.platforms
      drivers/clk/baikal/clk-bm1000.c
      drivers/clk/baikal/clk-bs1000.c
      drivers/cpufreq/cpufreq-dt-platdev.c
      drivers/mux/Kconfig
      drivers/mux/Makefile
      drivers/net/ethernet/amd/Kconfig
      drivers/net/ethernet/amd/xgbe/baikal-mdio.c
      drivers/net/ethernet/amd/xgbe/xgbe-drv.c
      drivers/net/ethernet/amd/xgbe/xgbe.h
      drivers/net/ethernet/amd/xgbe/xgbe-platform.c
      drivers/net/phy/mdio-gpio-baikal.c
      drivers/net/phy/mv88x2222.c
      drivers/pci/controller/dwc/pcie-baikal-bs1000.c
      drivers/pci/controller/dwc/pcie-baikal.c

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

      drivers/mux/baikal.c
  5. Initrd (Baikal Embedded Linux)

    • Пакет benchmarks обновлён: теперь тесты собираются корректно и для процессора Baikal-S (BE-S1000).

    • Пакет rt-linux-test обновлён до версии 2.3.

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

      programs/benchmarks/Makefile
      programs/benchmarks/Stream/Makefile
      programs/benchmarks/coremark_v1.0/Makefileprograms/rt-linux-test/*