Версия 5.6
Baikal ARM64 SDK 5.6 Release Notes
Baikal ARM64 SDK 5.6 содержит следующее программное обеспечение:
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 контроллера.TianoCore UEFI (EDK II) 2020-08, лицензия BSD.
https://github.com/tianocore/tianocore.github.io/wikiBaikal-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 (включена как в релизной сборке, так и в отладочной).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
Baikal-M: Бинарные библиотеки OpenGL и OpenCL c поддержкой Wayland/Weston:
- OpenGL ES 1.1, 2.0, 3.0.
- OpenCL 1.1.
Baikal-M: Набор патчей c поддержкой Mali T628 для Mesa 20.2.
Baikal-M: Бинарная библиотека OpenMAX IL и GStreamer-плагин для работы с видеодекодером. Поддерживаемые кодеки:
VP8
VP6
Sorenson Spark (реализация стандарта Н.263)
AVS
MPEG4
MPEG2
MPEG1
WMV9
VC1
H264
HEVC (H265)rootfs на базе Busybox.
https://www.busybox.net/source.htmlToolchain на основе gcc 12.1 / binutils 2.35
https://gcc.gnu.org/Возможность отладки с использованием OpenOCD / Olimex ARM-USB-OCD-H.
Поддерживается возможность использования профилировщика OProfile 1.4.0.
Есть возможность запуска rootfs Debian 11. В состав SDK не входит, поставляется отдельным архивом.
Библиотека simde для запуска ISA расширений из других архитектур на ARM64.
Поддерживается возможность применить RT Linux патч на ядро Linux 5.4.
Файлы образов прошивок из директории prebuilts совместимы со старыми версиями утилиты flashrom (<= 0.9.x) Если необходимо использовать более новые версии flashrom, следует расширить файл образа до размера микросхемы флеш-памяти (32 Мб). Это можно сделать при помощи ключа
-bt/--build-padding
или вручную соответствующими командами ОС Linux (например, truncate).
Changelog (5.5 → 5.6)
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.shARM 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
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
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
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/*