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

Версия 5.2

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

Baikal ARM64 SDK 5.2 Release Notes

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

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

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

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

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

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

    Поддержка плат 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 DRM
      VDU/LVDS
      HDMI audio
      Video Decoder
      I2S (audio output)
      1 x SPI
      1 x eSPI
      2 x UART
      2 x I²C
      2 x SMBus
      32 x GPIO
      eMMC/SD/SDIO
      DW Timers
      PVT
      CoreSight (Debug)

      cpufreq - Динамическое управление частотой ядер A57 и Mali T628.
      Поддержка включения/выключения ядер/кластеров Cortex-A57.
  4. Бинарные библиотеки OpenGL и OpenCL c поддержкой Wayland/Weston:

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

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

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

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

  8. Toolchain на основе gcc 10.2 / binutils 2.34
    https://gcc.gnu.org/

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

Changelog (5.1 → 5.2)

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

    • Изменена система именования целей сборки для скрипта build-boot-img.sh

      • dbm - плата DBM;
      • mbm10 - плата MBM 1.0;
      • mbm20 - плата MBM 2.0.
    • Обновлены файлы прошивки SCP (в связи с тем, что инициализация DDR-памяти теперь осуществляется средствами TF-A).

    • Добавлено правило udev для драйвера видеодекодера.

    • Для отрисовки номера версии в логотипе используется шрифт FreeMono.

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

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

      baikal/README
      baikal/SDK5_VERSION
      baikal/VERSION
      baikal/src/acpica/source/compiler/aslcompiler.l
      baikal/src/acpica/source/compiler/dtparser.l
      baikal/src/acpica/source/compiler/prparser.l
      baikal/src/mali/README
      baikal/src/vdec/target/README
      baikal/tools/build-boot-img.sh
      baikal/tools/build-initrd-img.sh
      baikal/tools/environment.sh
      baikal/prebuilts/*

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

      baikal/src/vdec/target/etc/udev/rules.d/99-vdec.rules

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

      baikal/prebuilts/dbm.board.ids
      baikal/prebuilts/mbm10.board.ids
      baikal/prebuilts/mbm20.board.ids
  2. ARM Trusted Firmware (TF-A)

    • Инициализация DDR-памяти теперь осуществляется средствами TF-A (в загрузчике BL1).

    • Подсистема SATA при инициализации переключается на тактирование от внешнего генератора (на плате).

    • Добавлена поддержка включения и отключения вычислительных ядер A57 (для совместной работы с драйвером в ядре Linux).

    • Изменён алгоритм расчёта коэффициентов при программировании PLL (с целью улучшения стабильности работы).

    • Исправлены ошибки при работе с 2- и 4-портовыми LVDS-панелями.

    • Исправлены мелкие ошибки при работе с VDU, SPI, I2C, SMBUS.

    • Незначительно изменены логотипы в графических заставках.

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

      plat/baikal/bm1000/bm1000_bl1_logo.c
      plat/baikal/bm1000/bm1000_bl1_logo_v1.c
      plat/baikal/bm1000/bm1000_bl1_logo_v2.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_common.c
      plat/baikal/bm1000/bm1000_hdmi.h
      plat/baikal/bm1000/bm1000_mmca57.c
      plat/baikal/bm1000/bm1000_mmlsp.c
      plat/baikal/bm1000/bm1000_mmusb.c
      plat/baikal/bm1000/bm1000_mmxgbe.c
      plat/baikal/bm1000/bm1000_pm.c
      plat/baikal/bm1000/bm1000_sip_svc.c
      plat/baikal/bm1000/bm1000_splash.c
      plat/baikal/bm1000/bm1000_splash.h
      plat/baikal/bm1000/drivers/bm1000_cmu.c
      plat/baikal/bm1000/drivers/bm1000_cmu.h
      plat/baikal/bm1000/drivers/bm1000_smbus.c
      plat/baikal/bm1000/drivers/bm1000_smbus.h
      plat/baikal/bm1000/dt.c
      plat/baikal/bm1000/include/bm1000_private.h
      plat/baikal/bm1000/include/platform_def.h
      plat/baikal/bm1000/platform.mk
      plat/baikal/common/aarch64/plat_bl1_helpers.S
      plat/baikal/common/aarch64/plat_helpers.S
      plat/baikal/common/baikal_console.c
      plat/baikal/common/baikal_gicv3.c
      plat/baikal/common/baikal_sip_svc_flash.c
      plat/baikal/common/include/baikal_gicv3.h
      plat/baikal/common/include/baikal_sip_svc_flash.h
      plat/baikal/common/include/spi_dw.h
      plat/baikal/common/spi_dw_boot.c
      plat/baikal/common/spi_dw_list.h
      plat/baikal/common/spi_scp_boot.c

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

      plat/baikal/bm1000/bm1000_bl1_logo_v3.c
      plat/baikal/bm1000/bm1000_bl1_logo_v4.c
      plat/baikal/bm1000/ddr_config/ddr_baikal.h
      plat/baikal/bm1000/ddr_config/ddr_init.c
      plat/baikal/bm1000/ddr_config/ddr_lcru.c
      plat/baikal/bm1000/ddr_config/ddr_lcru.h
      plat/baikal/bm1000/ddr_config/ddr_main.c
      plat/baikal/bm1000/ddr_config/ddr_main.h
      plat/baikal/bm1000/ddr_config/ddr_master.c
      plat/baikal/bm1000/ddr_config/ddr_master.h
      plat/baikal/bm1000/ddr_config/ddr_odt_settings.c
      plat/baikal/bm1000/ddr_config/ddr_spd.c
      plat/baikal/bm1000/ddr_config/ddr_spd.h
      plat/baikal/common/baikal_common.c
      plat/baikal/common/include/memtest.h
      plat/baikal/common/memtest.c

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

      plat/baikal/bm1000/bm1000_bl1_logo_debug.h
      plat/baikal/bm1000/bm1000_macaddr.c
      plat/baikal/bm1000/bm1000_macaddr.h
      plat/baikal/bm1000/drivers/vcs_debug_serial.S
      plat/baikal/common/crc32.c
      plat/baikal/common/include/crc32.h
  3. UEFI

    • Реализована поддержка таблиц SMBIOS и ACPI (DSDT, DBG2, FACP, FACS, MADT).

    • Добавлена графическая заставка.

    • Теперь во время начальной загрузки UEFI работают горячие клавиши: <Esc> либо <F2> - вызов Boot Manager; <S> - запуск EFI Shell.

    • В Boot Manager теперь высвечивается базовая системная информация (тип материнской платы, объём оперативной памяти, частота процессорных ядер, версия SDK).

    • Исправлены мелкие ошибки при работе с VDU.

    • Только для систем с LVDS-панелями: во избежание ошибок временные параметры развёртки LVDS-панели из дерева устройств должны быть продублированы в описании соответствующего видеорежима в файле Platform/Baikal/Include/Library/BaikalVduPlatformLib.h.

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

       Platform/Baikal/Baikal.dec
      Platform/Baikal/Drivers/BaikalSpiBlockDxe/BaikalSpiBlockDxe.inf
      Platform/Baikal/Drivers/BaikalSpiBlockDxe/Block.c
      Platform/Baikal/Drivers/BaikalSpiFvDxe/BaikalSpiFvDxe.inf
      Platform/Baikal/Drivers/BaikalSpiFvDxe/Fv.c
      Platform/Baikal/Include/Library/BaikalI2cLib.h
      Platform/Baikal/Include/Library/BaikalSmcLib.h
      Platform/Baikal/Include/Library/BaikalVduPlatformLib.h
      Platform/Baikal/Include/Library/LcdHwLib.h
      Platform/Baikal/Include/Platform/BaikalFlashMap.h
      Platform/Baikal/Include/Platform/Pcie.h
      Platform/Baikal/Library/BaikalI2cLib/BaikalI2cLib.inf
      Platform/Baikal/Library/BaikalI2cLib/I2cLib.c
      Platform/Baikal/Library/BaikalMemoryInitPeiLib/BaikalMemoryInitPeiLib.c
      Platform/Baikal/Library/BaikalPciHostBridgeLib/PciHostBridgeLib.c
      Platform/Baikal/Library/BaikalPciHostBridgeLib/PciHostBridgeLibCtor.c
      Platform/Baikal/Library/BaikalPciHostBridgeLib/PciHostBridgeLib.inf
      Platform/Baikal/Library/BaikalPciSegmentLib/PciSegmentLib.c
      Platform/Baikal/Library/BaikalPciSegmentLib/PciSegmentLib.inf
      Platform/Baikal/Library/BaikalSmcLib/BaikalSmcLib.inf
      Platform/Baikal/Library/BaikalVduLib/BaikalHdmi.c
      Platform/Baikal/Library/BaikalVduLib/BaikalHdmi.h
      Platform/Baikal/Library/BaikalVduLib/BaikalVdu.c
      Platform/Baikal/Library/BaikalVduLib/BaikalVdu.h
      Platform/Baikal/Library/BaikalVduLib/BaikalVduHwLib.inf
      Platform/Baikal/Library/BaikalVduLib/BaikalVduLib.inf
      Platform/Baikal/Library/BaikalVduLib/BaikalVduPlatform.c
      Platform/Baikal/PrePi/PrePi.dec
      Silicon/Baikal/BM1000/BM1000.dec
      Silicon/Baikal/BM1000/Include/Library/DwUartLib.h
      Silicon/Baikal/BM1000/Library/DwSerialPortLib/DwSerialPortExtLib.c
      Silicon/Baikal/BM1000/Library/DwSerialPortLib/DwSerialPortExtLib.inf
      Silicon/Baikal/BM1000/Library/DwSerialPortLib/DwSerialPortLib.c
      Silicon/Baikal/BM1000/Library/DwSerialPortLib/DwSerialPortLib.inf
      Silicon/Baikal/BM1000/Library/DwUartLib/DwUartLib.c
      Silicon/Baikal/BM1000/Library/DwUartLib/DwUartLib.inf

      Platform/Baikal/Drivers/BaikalEthDxe/BaikalEthSnp.c переименован,
      новое имя Platform/Baikal/Drivers/GmacDxe/GmacSnp.c

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

       Platform/Baikal/BM1000Rdb/BM1000Rdb.dsc
      Platform/Baikal/BM1000Rdb/BM1000Rdb.fdf
      Platform/Baikal/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
      Platform/Baikal/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.h
      Platform/Baikal/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
      Platform/Baikal/Drivers/AcpiPlatformDxe/Dbg2.c
      Platform/Baikal/Drivers/AcpiPlatformDxe/Dsdt.asl
      Platform/Baikal/Drivers/AcpiPlatformDxe/Fadt.c
      Platform/Baikal/Drivers/AcpiPlatformDxe/Gtdt.c
      Platform/Baikal/Drivers/AcpiPlatformDxe/Madt.c
      Platform/Baikal/Drivers/AcpiPlatformDxe/Pptt.c
      Platform/Baikal/Drivers/FruClientDxe/FruClientDxe.c
      Platform/Baikal/Drivers/FruClientDxe/FruClientDxe.inf
      Platform/Baikal/Drivers/FruClientDxe/FruInternals.c
      Platform/Baikal/Drivers/FruClientDxe/FruInternals.h
      Platform/Baikal/Drivers/GmacDxe/Gmac.c
      Platform/Baikal/Drivers/GmacDxe/GmacDxe.inf
      Platform/Baikal/Drivers/GmacDxe/GmacSnp.h
      Platform/Baikal/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
      Platform/Baikal/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
      Platform/Baikal/Include/Library/BaikalSmbusLib.h
      Platform/Baikal/Include/Library/BaikalSpdLib.h
      Platform/Baikal/Include/Protocol/FruClient.h
      Platform/Baikal/Library/BaikalSmbusLib/BaikalSmbusLib.c
      Platform/Baikal/Library/BaikalSmbusLib/BaikalSmbusLib.inf
      Platform/Baikal/Library/BaikalSmcLib/BaikalSmcLib.c
      Platform/Baikal/Library/BaikalSpdLib/BaikalSpdLib.c
      Platform/Baikal/Library/BaikalSpdLib/BaikalSpdLib.inf
      Platform/Baikal/Library/PlatformBootManagerLib/PlatformBootManager.c
      Platform/Baikal/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
      Platform/Baikal/Logo/Logo.bmp
      Platform/Baikal/Logo/Logo.c
      Platform/Baikal/Logo/LogoDxe.inf
      Platform/Baikal/Logo/Logo.idf

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

       Platform/Baikal/Drivers/BaikalEthDxe/BaikalEth.c
      Platform/Baikal/Drivers/BaikalEthDxe/BaikalEthDxe.inf
      Platform/Baikal/Drivers/BaikalEthDxe/BaikalEthSnp.h
      Platform/Baikal/Drivers/BaikalSpiBlockDxe/Block.h
      Platform/Baikal/Drivers/SmbiosDxe/Smbios.c
      Platform/Baikal/Drivers/SmbiosDxe/SmbiosDxe.inf
      Platform/Baikal/Include/Library/BaikalDebug.h
      Platform/Baikal/Include/Library/BaikalFruLib.h
      Platform/Baikal/Include/Library/BaikalSpiLib.h
      Platform/Baikal/Library/BaikalFruLib/BaikalFruLib.inf
      Platform/Baikal/Library/BaikalFruLib/FruLib.c
      Platform/Baikal/Library/BaikalSmcLib/Smc.c
      Platform/Baikal/Library/BaikalSpiLib/BaikalSpiLib.inf
      Platform/Baikal/Library/BaikalSpiLib/Spi.h
      Platform/Baikal/Library/BaikalSpiLib/SpiLib.c
  4. Kernel (Linux kernel 5.4.114)

    • Слияние с kernel.org 5.4.114.
    • Драйверы PVT и SMBUS доработаны для обеспечения совместимости с ACPI.
    • Добавлена поддержка регулировки яркости LVDS-панели посредством ШИМ (тестовая версия).
    • Добавлена возможность включения и отключения ядер A57 командой chcpu (chcpu --disable XXX / --enable XXX).
    • Добавлена возможность регулирования частоты Mali через механизмы CPUfreq governor (performance и simple_ondemand).
    • Улучшена стабильность работы драйвера I2S.
    • Увеличена производительность драйверов GbE и XGbE (за счёт отключения отладочных опций в файле конфигурации ядра baikal_defconfig).
    • Добавлены две образцовые версии файла конфигурации ядра: baikal_defconfig_debug (отладочные опции включены) и baikal_defconfig_release (отладочные опции отключены, за счёт чего повышается производительность).
    • Изменена логика выбора видеорежимов: по умолчанию не позволяется выставлять режимы с разрешением более 2560x1440; при необходимости выставить более высокое разрешение следует указать в командной строке ядра параметр baikal_vdu_drm.mode_override=1.
    • Исправлены мелкие ошибки в драйверах VDU и I2C.
    • Изменена структура дерева устройств, устранены мелкие ошибки.
    • Драйвер GbE: исправлены ошибки при формировании сигналов сброса.
    • Изменения файлов без учёта изменений из kernel.org:

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

      arch/arm64/boot/dts/baikal/bm1000-clocks.dtsi
      arch/arm64/boot/dts/baikal/bm1000.dtsi
      arch/arm64/boot/dts/baikal/bm-dbm.dts
      arch/arm64/boot/dts/baikal/bm-mali.dtsi
      arch/arm64/boot/dts/baikal/bm-mbm10.dts
      arch/arm64/boot/dts/baikal/bm-mbm20.dts
      arch/arm64/boot/dts/baikal/bm-mbm.dtsi
      arch/arm64/boot/dts/baikal/Makefile
      arch/arm64/configs/baikal_defconfig
      drivers/gpu/drm/baikal/baikal-hdmi.c
      drivers/gpu/drm/baikal/baikal_vdu_connector.c
      drivers/gpu/drm/baikal/baikal_vdu_crtc.c
      drivers/gpu/drm/baikal/baikal_vdu_debugfs.c
      drivers/gpu/drm/baikal/baikal_vdu_drm.h
      drivers/gpu/drm/baikal/baikal_vdu_drv.c
      drivers/gpu/drm/baikal/baikal_vdu_regs.h
      drivers/gpu/drm/panfrost/Kconfig
      drivers/gpu/drm/panfrost/panfrost_devfreq.c
      drivers/gpu/drm/panfrost/panfrost_job.c
      drivers/hwmon/pvt.c
      drivers/i2c/busses/i2c-baikal-smbus.c
      drivers/mmc/host/sdhci.c
      drivers/net/ethernet/stmicro/stmmac/dwmac-baikal.c
      sound/soc/codecs/tlv320aic3x.c

      arch/arm64/boot/dts/baikal/bm-mitx.dts переименован,
      новое имя arch/arm64/boot/dts/baikal/bm-mbm.dtsi
      arch/arm64/boot/dts/baikal/bm-soc.dtsi переименован,
      новое имя arch/arm64/boot/dts/baikal/bm1000.dtsi
      arch/arm64/boot/dts/baikal/bm-clocks.dtsi переименован,
      новое имя arch/arm64/boot/dts/baikal/bm1000-clocks.dtsi
      arch/arm64/boot/dts/baikal/bm-cpufreq.dtsi переименован,
      новое имя arch/arm64/boot/dts/baikal/bm1000-cpufreq.dtsi

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

      arch/arm64/boot/dts/baikal/bm-mbm20.dts
      arch/arm64/boot/dts/baikal/bm-mbm.dtsi
      arch/arm64/configs/baikal_defconfig_debug
      arch/arm64/configs/baikal_defconfig_release

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

      arch/arm64/boot/dts/baikal/bm-mali.dtsi
  1. Initrd (Baikal Embedded Linux)

    • Устранена мелкая ошибка, приводящая к прерыванию сборки образа корневой файловой системы на некоторых платформах.

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

       programs/kexec-tools/purgatory/arch/arm64/Makefile