Версия 5.2
Baikal ARM64 SDK 5.2 Release Notes
Baikal ARM64 SDK 5.2 содержит следующее программное обеспечение:
Trusted Firmware-A (TF-A) v2.4, лицензия BSD.
https://github.com/ARM-software/arm-trusted-firmwareДобавлена процедура инициализации DDR контроллера.
Не реализована цепочка доверия - Chain of Trust.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.
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.
Бинарные библиотеки OpenGL и OpenCL c поддержкой Wayland/Weston:
- OpenGL ES 1.1, 2.0, 3.0.
- OpenCL 1.1.
Набор патчей c поддержкой Mali T628 для Mesa 20.2.
Бинарная библиотека OpenMAX IL и GStreamer-плагин для работы с видеодекодером. Поддерживаемые кодеки:
VP8
VP6
Sorenson Spark (реализация стандарта Н.263)
AVS
MPEG4
MPEG2
MPEG1
WMV9
VC1
H264
HEVC (H265)rootfs на базе Busybox.
https://www.busybox.net/source.htmlБудет возможность запуска rootfs Debian 10. В состав SDK не входит, будет отдельным архивом.
Toolchain на основе gcc 10.2 / binutils 2.34
https://gcc.gnu.org/Возможность отладки с использованием OpenOCD / Olimex ARM-USB-OCD-H.
Changelog (5.1 → 5.2)
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
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
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
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
Initrd (Baikal Embedded Linux)
Устранена мелкая ошибка, приводящая к прерыванию сборки образа корневой файловой системы на некоторых платформах.
Изменённые файлы:
programs/kexec-tools/purgatory/arch/arm64/Makefile