Версия 2503-5.4
Baikal ARM64 SDK 2503-5.4 Release Notes
Baikal ARM64 SDK 2503-5.4 содержит следующее программное обеспечение:
Trusted Firmware-A (TF-A) v2.12, лицензия BSD.
https://www.trustedfirmware.org/projects/tf-a
Не реализована цепочка доверия - Chain of Trust.Baikal-M
Инициализация DDR-контроллера реализована в TF-A.Baikal-S
Инициализация DDR-контроллера реализована в TF-A.TianoCore UEFI (EDK II) edk2-stable202502, лицензия BSD.
https://www.tianocore.org/Baikal-M
Поддерживается загрузка Linux с SATA, NVMe, USB, SPI Flash, Gigabit Ethernet, DVD-ROM, SD card, eMMC. Есть видеоконсоль HDMI/LVDS и USB-мышь/клавиатура, а также последовательная консоль на UART0. Имеется поддержка 3 x PCIe RC.ПримечаниеПоследовательная консоль в UEFI в релизной сборке отключена. Для включения последовательной консоли в релизной сборке необходимо использовать опцию
--uefi-serial-dxe=1
.Baikal-S
Поддерживается загрузка Linux с NVMe, USB, SPI Flash, Gigabit Ethernet. Есть USB-мышь/клавиатура, последовательная консоль на UART0 (включена как в релизной сборке, так и в отладочной). Доступен просмотр данных биннинга (разбраковочных характеристик).
Linux kernel 5.4.290.
https://www.kernel.org/Baikal-M
Поддержка плат c Baikal-M:- DBM 1.0 (Cortex-A57 1500 MHz, DDR4-1600, объём RAM до 64 GB)
- DBM 2.0 (Cortex-A57 1500 MHz, DDR4-2400, объём 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 (Panfrost/Midgard) 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 / DBS-OV (Cortex-A75 2000 MHz, DDR4-3200, объём RAM до 768 GB)
- RDS-1S (Single Socket, Cortex-A75 2000 MHz, DDR4-2400, объём RAM до 768 GB)
- RDS-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).Baikal-S: поддержка межпроцессорного взаимодействия (3 x PCIe CCIX x16).
Xen 4.17.2.
https://xenproject.org/
Гибридный гипервизор, адаптированный для запуска на платформах Baikal-S и Baikal-M.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 1.36.1.
https://www.busybox.net/Toolchain на основе gcc 14.1 / binutils 2.42
https://gcc.gnu.org/Возможность отладки с использованием OpenOCD / Olimex ARM-USB-OCD-H.
Поддерживается возможность использования профилировщика OProfile 1.4.0.
Есть возможность запуска rootfs Debian 12. В состав SDK не входит, поставляется отдельным архивом.
Библиотека SIMDe 0.7.6 для запуска ISA-расширений из других архитектур на ARM64.
ACPICA версии 20241212 (iASL, tools).
Библиотека OpenCSD, использующая возможности CoreSight для трассировки событий посредством утилиты ядра perf.
Поддерживается возможность применить PREEMPT_RT-патч для ядра Linux.
Файлы образов прошивок из директории prebuilts
совместимы со
старыми версиями утилиты flashrom (<= 0.9.x).
Если необходимо использовать более новые версии flashrom, следует
расширить файл образа до размера микросхемы флеш-памяти (32 Мб).
Это можно сделать при помощи ключа -bp
/--bootrom-padding
или вручную соответствующими командами ОС Linux (например, truncate
).
Changelog (2412-5.4 → 2503-5.4)
SDK (основное дерево SDK)
- ACPICA обновлена до версии 20241212.
build-boot-img.sh
: при сборке образа файловой системы (ключ--bootrom-linux
) явно выставляются исходные даты файлов и идентификатор раздела (ранее при повторной сборке образа файловой системы даже при неизменных составляющих его файлах каждый последующий образ отличался от предыдущего обновлёнными датами файлов и идентификатором раздела, что приводило к перезаписи нескольких секторов флеш-памяти при фактически идентичном содержимом файловой системы); файлы при этом располагаются в порядке загрузки.- Исправлены мелкие ошибки в скриптах сборки.
Изменённые файлы:
VERSION
README.rst
tools/build-boot-img.sh
src/acpica/*ARM Trusted Firmware (TF-A)
- DDR: теперь в процессе инициализации в UART-консоль выводятся отладочные серии как в отладочной, так и в релизной сборке (благодаря этому в случае длительной инициализации большого объёма памяти пользователь может убедиться, что плата не зависла).
- BE-M1000: оптимизированы процедуры инициализации, благодаря чему пропали моргания логотипов при начальной загрузке.
- Исправлены стилистические и мелкие логические ошибки в процедурах инициализации и драйверах различных подсистем.
Изменённые файлы:
plat/baikal/bm1000/bm1000_bl1_setup.c
plat/baikal/bm1000/bm1000_bl2_setup.c
plat/baikal/bm1000/bm1000_bl31_setup.c
plat/baikal/bm1000/bm1000_mmpcie.c
plat/baikal/bm1000/bm1000_pm.c
plat/baikal/bm1000/bm1000_sip_svc.c
plat/baikal/bm1000/drivers/bm1000_cmu.c
plat/baikal/bm1000/drivers/ddr/ddr_main.c
plat/baikal/bm1000/include/baikal_def.h
plat/baikal/bm1000/include/bm1000_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_ca75.c
plat/baikal/bs1000/bs1000_ca75.h
plat/baikal/bs1000/bs1000_pm.c
plat/baikal/bs1000/bs1000_sip_svc.c
plat/baikal/bs1000/drivers/ddr/ddr_ctrl.c
plat/baikal/bs1000/drivers/ddr/ddr_main.c
plat/baikal/bs1000/include/baikal_def.h
plat/baikal/bs1000/include/platform_def.h
plat/baikal/bs1000/platform.mk
plat/baikal/common/aarch64/baikal_helpers.S
plat/baikal/common/bl1.ld.S
plat/baikal/bm1000/bm1000_mmca57.c переименован,
новое имя plat/baikal/bm1000/bm1000_ca57.c
plat/baikal/bm1000/bm1000_mmca57.h переименован,
новое имя plat/baikal/bm1000/bm1000_ca57.h
plat/baikal/common/baikal_mshc.c переименован,
новое имя plat/baikal/bm1000/drivers/bm1000_mshc.c
plat/baikal/common/include/baikal_mshc.h переименован,
новое имя plat/baikal/bm1000/drivers/bm1000_mshc.h
UEFI
- UEFI обновлён до edk2-stable202502.
- BE-S1000: форма для отображения данных разбраковки (биннинга) существенно переработана и теперь данные представляются на экране в удобочитаемом виде.
- BE-S1000: при заполнении таблицы 17 SMBIOS имя производителя формируется в виде строки, соответствующей стандарту JEP106.
- Исправлены мелкие ошибки в драйверах различных подсистем.
Изменённые файлы:
Platform/Baikal/Application/DdrSettings/DdrSettings.c
Platform/Baikal/Application/DdrSettings/DdrSettings.inf
Platform/Baikal/Application/SpiFlash/SpiFlash.c
Platform/Baikal/Application/SpiFlash/SpiFlash.inf
Platform/Baikal/Baikal.dec
Platform/Baikal/BM1000Rdb/BM1000Rdb.dsc
Platform/Baikal/BM1000Rdb/BM1000Rdb.fdf
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
Platform/Baikal/BM1000Rdb/Drivers/ConfigDxe/ConfigDxe.c
Platform/Baikal/BM1000Rdb/Drivers/ConfigDxe/ConfigDxe.inf
Platform/Baikal/BM1000Rdb/Drivers/EuiClientDxe/EuiClientDxe.c
Platform/Baikal/BM1000Rdb/Drivers/EuiClientDxe/EuiClientDxe.inf
Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
Platform/Baikal/BM1000Rdb/Drivers/UidClientDxe/UidClientDxe.c
Platform/Baikal/BM1000Rdb/Drivers/UidClientDxe/UidClientDxe.inf
Platform/Baikal/BM1000Rdb/Drivers/XGmacDxe/XGmacDxe.inf
Platform/Baikal/BM1000Rdb/Library/BaikalSpdLib/BaikalSpdLib.c
Platform/Baikal/BM1000Rdb/Library/BaikalSpdLib/BaikalSpdLib.inf
Platform/Baikal/BM1000Rdb/Library/CmuLib/CmuLib.inf
Platform/Baikal/BS1000Rdb/BS1000Rdb.dsc
Platform/Baikal/BS1000Rdb/BS1000Rdb.fdf
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.c
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Srat.c
Platform/Baikal/BS1000Rdb/Drivers/ArmGicLpiDxe/ArmGicLpiDxe.c
Platform/Baikal/BS1000Rdb/Drivers/ArmGicLpiDxe/ArmGicLpiDxe.inf
Platform/Baikal/BS1000Rdb/Drivers/EuiClientDxe/EuiClientDxe.c
Platform/Baikal/BS1000Rdb/Drivers/EuiClientDxe/EuiClientDxe.inf
Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
Platform/Baikal/BS1000Rdb/Drivers/SpdClientDxe/SpdClientDxe.c
Platform/Baikal/BS1000Rdb/Drivers/SpdClientDxe/SpdClientDxe.inf
Platform/Baikal/BS1000Rdb/Drivers/UidClientDxe/UidClientDxe.c
Platform/Baikal/BS1000Rdb/Drivers/UidClientDxe/UidClientDxe.inf
Platform/Baikal/BS1000Rdb/Library/CmuLib/CmuLib.inf
Platform/Baikal/Drivers/EspiFlashBlockIoDxe/EspiFlashBlockIoDxe.c
Platform/Baikal/Drivers/EspiFlashBlockIoDxe/EspiFlashBlockIoDxe.inf
Platform/Baikal/Drivers/FruClientDxe/FruClientDxe.c
Platform/Baikal/Drivers/FruClientDxe/FruClientDxe.inf
Platform/Baikal/Drivers/GmacDxe/GmacDxe.inf
Platform/Baikal/Drivers/GmacDxe/GmacSnp.c
Platform/Baikal/Drivers/SmcFlashBlockIoDxe/SmcFlashBlockIoDxe.c
Platform/Baikal/Drivers/SmcFlashBlockIoDxe/SmcFlashBlockIoDxe.inf
Platform/Baikal/Drivers/SmcFlashFvbDxe/SmcFlashFvbDxe.c
Platform/Baikal/Drivers/SmcFlashFvbDxe/SmcFlashFvbDxe.inf
Platform/Baikal/Include/Library/SdLib.h
Platform/Baikal/Library/BaikalMemoryRangeLib/BaikalMemoryRangeLib.c
Platform/Baikal/Library/BaikalMemoryRangeLib/BaikalMemoryRangeLib.inf
Platform/Baikal/Library/BaikalVduLib/BaikalHdmiLib.inf
Platform/Baikal/Library/BaikalVduLib/BaikalVduHwLib.inf
Platform/Baikal/Library/BaikalVduLib/BaikalVduLib.inf
Platform/Baikal/Library/BaikalVduLib/BaikalVduPlatform.c
Platform/Baikal/Library/CrcLib/CrcLib.inf
Platform/Baikal/Library/PlatformPeiLib/PlatformPeiLib.c
Platform/Baikal/Library/PlatformPeiLib/PlatformPeiLib.inf
Platform/Baikal/Library/SdLib/SdLib.c
Platform/Baikal/Library/SdLib/SdLib.inf
Silicon/Baikal/BM1000/Drivers/NonDiscoverableAhciDxe/NonDiscoverableAhciDxe.inf
Silicon/Baikal/BM1000/Drivers/NonDiscoverableXhciDxe/NonDiscoverableXhciDxe.inf
Silicon/Baikal/BM1000/Library/DbSmbusLib/DbSmbusLib.inf
Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLib.inf
Silicon/Baikal/BS1000/Drivers/NonDiscoverableEhciDxe/NonDiscoverableEhciDxe.inf
Silicon/Baikal/BS1000/Drivers/NonDiscoverableOhciDxe/NonDiscoverableOhciDxe.inf
Silicon/Baikal/BS1000/Drivers/PcieEndpointDxe/PcieEndpointDxe.inf
Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLib.inf
Silicon/Baikal/Library/DwGpioLib/DwGpioLib.inf
Silicon/Baikal/Library/DwI2cLib/DwI2cLib.inf
Silicon/Baikal/Library/EspiLib/EspiLib.inf
Platform/Baikal/BM1000Rdb/Drivers/XGmacDxe/XGmac.c переименован,
новое имя Platform/Baikal/BM1000Rdb/Drivers/XGmacDxe/XGmacDxe.c
Platform/Baikal/BS1000Rdb/Include/Library/SmcEfuseLib.h переименован,
новое имя Platform/Baikal/Include/Library/SmcEfuseLib.h
Platform/Baikal/BS1000Rdb/Library/SmcEfuseLib/SmcEfuseLib.c переименован,
новое имя Platform/Baikal/Library/SmcEfuseLib/SmcEfuseLib.c
Platform/Baikal/BS1000Rdb/Library/SmcEfuseLib/SmcEfuseLib.inf переименован,
новое имя Platform/Baikal/Library/SmcEfuseLib/SmcEfuseLib.inf
Platform/Baikal/Drivers/GmacDxe/Gmac.c переименован,
новое имя Platform/Baikal/Drivers/GmacDxe/GmacDxe.c
Platform/Baikal/Drivers/SdBlockDxe/SdBlock.c переименован,
новое имя Platform/Baikal/Drivers/SdBlockIoDxe/SdBlockIoDxe.c
Platform/Baikal/Drivers/SdBlockDxe/SdBlock.inf переименован,
новое имя Platform/Baikal/Drivers/SdBlockIoDxe/SdBlockIoDxe.inf
Platform/Baikal/Drivers/SdFvbDxe/SdFvbDxe.c переименован,
новое имя Platform/Baikal/BM1000Rdb/Drivers/SdFvbDxe/SdFvbDxe.c
Platform/Baikal/Drivers/SdFvbDxe/SdFvbDxe.inf переименован,
новое имя Platform/Baikal/BM1000Rdb/Drivers/SdFvbDxe/SdFvbDxe.inf
Silicon/Baikal/BM1000/Drivers/NonDiscoverableAhciDxe/NonDiscoverableAhci.c переименован,
новое имя Silicon/Baikal/BM1000/Drivers/NonDiscoverableAhciDxe/NonDiscoverableAhciDxe.c
Silicon/Baikal/BM1000/Drivers/NonDiscoverableXhciDxe/NonDiscoverableXhci.c переименован,
новое имя Silicon/Baikal/BM1000/Drivers/NonDiscoverableXhciDxe/NonDiscoverableXhciDxe.c
Silicon/Baikal/BS1000/Drivers/NonDiscoverableEhciDxe/NonDiscoverableEhci.c переименован,
новое имя Silicon/Baikal/BS1000/Drivers/NonDiscoverableEhciDxe/NonDiscoverableEhciDxe.c
Silicon/Baikal/BS1000/Drivers/NonDiscoverableOhciDxe/NonDiscoverableOhci.c переименован,
новое имя Silicon/Baikal/BS1000/Drivers/NonDiscoverableOhciDxe/NonDiscoverableOhciDxe.c
Silicon/Baikal/BS1000/Drivers/PcieEndpointDxe/PcieEndpoint.c переименован,
новое имя Silicon/Baikal/BS1000/Drivers/PcieEndpointDxe/PcieEndpointDxe.cДобавленные файлы:
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoDxe.c
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoDxe.h
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoDxe.inf
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoUni.uni
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoVfr.vfrУдалённые файлы:
Platform/Baikal/BM1000Rdb/BM1000Rdb.dec
Platform/Baikal/BM1000Rdb/Include/Library/SmcEfuseLib.h
Platform/Baikal/BM1000Rdb/Library/SmcEfuseLib/SmcEfuseLib.c
Platform/Baikal/BM1000Rdb/Library/SmcEfuseLib/SmcEfuseLib.inf
Platform/Baikal/BS1000Rdb/BS1000Rdb.dec
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfo.c
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoComponent.c
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoComponent.h
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoDataStruc.h
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfo.h
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoHii.c
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfoHii.h
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfo.inf
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfo.uni
Platform/Baikal/BS1000Rdb/Drivers/BinningInfoDxe/BinningInfo.vfr
Platform/Baikal/Library/SdLib/SdReg.h
Silicon/Baikal/BM1000/Drivers/NonDiscoverableSdhciDxe/NonDiscoverableSdhci.c
Silicon/Baikal/BM1000/Drivers/NonDiscoverableSdhciDxe/NonDiscoverableSdhciDxe.infKernel (Linux kernel 5.4.290)
- Слияние с kernel.org 5.4.290 (поддерживается патч PREEMPT_RT версии 5.4.288-rt94, который распространяется отдельно от SDK).
- BE-M1000: исправлена процедура инициализации PCIe в режиме ACPI.
- Добавлен заголовочный файл baikal-smc.h с кодами SMC-вызовов, специфичных для платформ Baikal.
- Проведена оптимизация деревьев устройств, исправлены мелкие ошибки в драйверах различных подсистем и файле конфигурации ядра.
Изменённые файлы:
arch/arm64/boot/dts/baikal/bm1000-dbm.dtsi
arch/arm64/boot/dts/baikal/bm1000-dbm-mezzanine-xgbe-krkx4.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.dtsi
arch/arm64/boot/dts/baikal/bs1000-rds-2s.dts
Documentation/devicetree/bindings/vendor-prefixes.yaml
drivers/clk/baikal/clk-bm1000.c
drivers/clk/baikal/clk-bs1000.c
drivers/cpufreq/baikal-l-cpufreq.c
drivers/gpu/drm/baikal/baikal_vdu_drv.c
drivers/gpu/drm/panfrost/panfrost_gpu.c
drivers/hwmon/baikal-pvt-core.c
drivers/hwmon/baikal-pvt.h
drivers/hwmon/baikal-pvt-hwmon.c
drivers/hwmon/bs1000-pvt.c
drivers/hwmon/hwmon.c
drivers/mux/baikal.c
drivers/net/ethernet/stmicro/stmmac/dwmac-baikal.c
drivers/pci/controller/dwc/pcie-baikal-core.c
drivers/watchdog/baikal_wdt.c
drivers/watchdog/KconfigИзменённые файлы в модуле ядра
vdec
:../src/vdec/linux/vxd/vxd_debugfs_baikal.c
../src/vdec/linux/vxd/vxd_plat_dt.cДобавленные файлы:
include/linux/firmware/baikal/baikal-smc.h
Удалённые файлы:
arch/arm64/boot/dts/baikal/bs1000-clocks.dtsi
Initrd (Baikal Embedded Linux)
Изменений нет.