Версия 2406-6.6
Baikal ARM64 SDK 2406-6.6 Release Notes
Baikal ARM64 SDK 2406-6.6 содержит следующее программное обеспечение:
Trusted Firmware-A (TF-A) v2.11, лицензия BSD.
https://github.com/ARM-software/arm-trusted-firmware
Не реализована цепочка доверия - Chain of Trust.Baikal-M
Инициализация DDR-контроллера реализована в TF-A.Baikal-S
Инициализация DDR-контроллера реализована в TF-A.TianoCore UEFI (EDK II) edk2-stable202405, лицензия BSD.
https://github.com/tianocore/tianocore.github.io/wikiBaikal-M
Поддерживается загрузка Linux с SATA, NVMe, USB, SPI Flash, Gigabit Ethernet, DVD-ROM, SD card, eMMC. Есть видеоконсоль HDMI/LVDS и USB-мышь/клавиатура, а также последовательная консоль на UART0. Имеется поддержка 3 x PCIe RC.ПримечаниеПоследовательная консоль в UEFI в релизной сборке отключена. При необходимости использование последовательной консоли необходимо пересобрать образ прошивки с опцией
-ud
/--uefi-debug
Baikal-S
Поддерживается загрузка Linux с NVMe, USB, SPI Flash, Gigabit Ethernet. Есть USB-мышь/клавиатура, последовательная консоль на UART0 (включена как в релизной сборке, так и в отладочной).Linux kernel 6.6.32.
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) 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)
- MBS-1S (Single Socket, Cortex-A75 2000 MHz, DDR4-2400, объём RAM до 768 GB)
- MBS-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.
https://www.busybox.net/source.htmlToolchain на основе 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 для запуска ISA расширений из других архитектур на ARM64.
ACPICA версии 20221020 (iASL, tools).
Библиотека OpenCSD, использующая возможности CoreSight для трассировки событий посредством утилиты ядра perf.
Поддерживается возможность применить PREEMPT_RT-патч для ядра Linux.
Файлы образов прошивок из директории prebuilts
совместимы со
старыми версиями утилиты flashrom (<= 0.9.x)
Если необходимо использовать более новые версии flashrom, следует
расширить файл образа до размера микросхемы флеш-памяти (32 Мб).
Это можно сделать при помощи ключа -bp
/--bootrom-padding
или вручную соответствующими командами ОС Linux (например, truncate).
Changelog (2403-6.6 → 2406-6.6)
SDK (основное дерево SDK)
- GCC обновлён до версии 14.1.
- ACPICA обновлена до версии 20240322.
- BE-S1000: прошивка XCP двухпроцессорных систем обновлена до версии 5.6-duo-240527.
build-boot-img.sh
: добавлен ключ--uefi-serial-dxe
, включающий поддержку последовательной консоли в UEFI.build-boot-img.sh
/build-initrd-img.sh
: теперь образ корневой файловой системы Baikal Embedded Linux собирается не в формате initrd, а в формате initramfs.
В директорияхprebuilts/kernel
иimg/kernel
теперь размещаются файлы:initramfs.cpio
- несжатый образ initramfs, который при необходимости может быть включён в ядро;initrd.img-6.6.32-baikal-arm64
- сжатый образ initramfs для записи на внешний носитель.
Для сборки комбинированного образа ядра, инкапсулирующего в себя образ initramfs, следует в файле конфигурации ядра задать соответствующие опции:CONFIG_INITRAMFS_SOURCE="/path/to/initramfs.cpio"
(подставить путь) иCONFIG_INITRAMFS_COMPRESSION_XZ=y
.
- Исправлены мелкие ошибки в скриптах сборки и вспомогательных файлах.
Изменённые файлы:
VERSION
prebuilts/*
baikal/README.template.rst
baikal/src/acpica/*
baikal/tools/build-boot-img.sh
baikal/tools/build-initrd-img.sh
baikal/tools/environment.sh
baikal/xtools/*Удалённые файлы:
baikal/utils/genext2fs
ARM Trusted Firmware (TF-A)
- TF-A обновлён до версии 2.11.
- Исправлены мелкие стилистические и логические ошибки в процедурах инициализации и драйверах различных подсистем.
Изменённые файлы:
drivers/arm/smmu/smmu_v3.c
include/drivers/arm/smmu_v3.h
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_common.c
plat/baikal/bm1000/bm1000_mmca57.c
plat/baikal/bm1000/bm1000_sip_svc.c
plat/baikal/bm1000/bm1000_splash.c
plat/baikal/bm1000/bm1000_topology.c
plat/baikal/bm1000/drivers/bm1000_cmu.c
plat/baikal/bm1000/drivers/dbm_bmc.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_master.c
plat/baikal/bm1000/drivers/ddr/ddr_menu.c
plat/baikal/bm1000/drivers/ddr/ddr_menu.h
plat/baikal/bm1000/drivers/ddr/ddr_odt_settings.c
plat/baikal/bm1000/include/baikal_def.h
plat/baikal/bm1000/include/bm1000_def.h
plat/baikal/bm1000/include/bm1000_private.h
plat/baikal/bm1000/include/platform_def.h
plat/baikal/bm1000/platform.mk
plat/baikal/bs1000/bs1000_bl1_setup.c
plat/baikal/bs1000/bs1000_bl2_setup.c
plat/baikal/bs1000/bs1000_bl31_setup.c
plat/baikal/bs1000/bs1000_dt.c
plat/baikal/bs1000/bs1000_pcie.c
plat/baikal/bs1000/bs1000_topology.c
plat/baikal/bs1000/drivers/bs1000_coresight.c
plat/baikal/bs1000/drivers/ddr/ddr_ctrl.c
plat/baikal/bs1000/drivers/ddr/ddr_main.c
plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_load.c
plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_main.c
plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_misc.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/aarch64/baikal_helpers.S
plat/baikal/common/baikal_bootflash.c
plat/baikal/common/baikal_console.c
plat/baikal/common/baikal_io_storage.c
plat/baikal/common/baikal_mshc.c
plat/baikal/common/baikal_sip_svc_flash.c
plat/baikal/common/bl1.ld.S
plat/baikal/common/dw_spi.c
plat/baikal/common/include/dw_spi.h
plat/baikal/common/include/memtest.h
plat/baikal/common/memtest.c
plat/baikal/common/spi_nor_flash.cДобавленные файлы:
plat/baikal/common/aarch64/vcs_console.S
plat/baikal/common/include/vcs.hУдалённые файлы:
plat/baikal/bm1000/bm1000_common.c
UEFI
- UEFI обновлён до edk2-stable202405.
- BE-S1000: добавлен драйвер ASpeed AST2500.
- Добавлен модуль RngDxe (генератор псевдослучайных чисел).
- Исправлены мелкие ошибки в драйверах различных подсистем (ACPI, VDU и др.).
Изменённые файлы:
Platform/Baikal/Application/DdrSettings/DdrSettings.c
Platform/Baikal/Application/DdrSettings/DdrSettings.inf
Platform/Baikal/Baikal.dec
Platform/Baikal/BM1000Rdb/BM1000Rdb.dsc
Platform/Baikal/BM1000Rdb/BM1000Rdb.fdf
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.asl
Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamMenu.inf
Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamStruc.c
Platform/Baikal/BS1000Rdb/BS1000Rdb.dsc
Platform/Baikal/BS1000Rdb/BS1000Rdb.fdf
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.asl
Platform/Baikal/Library/BaikalVduLib/BaikalVdu.c
Platform/Baikal/Library/BaikalVduLib/BaikalVduPlatform.c
Platform/Baikal/Library/BaikalMemoryInitPeiLib/BaikalMemoryInitPeiLib.inf переименован,
новое имя Platform/Baikal/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf
Platform/Baikal/Library/BaikalMemoryInitPeiLib/BaikalMemoryInitPeiLib.c переименован,
новое имя Platform/Baikal/Library/MemoryInitPeiLib/MemoryInitPeiLib.cДобавленные файлы:
Platform/Baikal/Drivers/RngDxe/RngDxe.c
Platform/Baikal/Drivers/RngDxe/RngDxe.infKernel (Linux kernel 6.6.32)
- Слияние с kernel.org 6.6.32 (поддерживается патч RT_PREEMPT версии 6.6.32-rt32, который распространяется отдельно от SDK).
- В конфигурации ядра включён (с компиляцией в виде модуля) драйвер ASpeed AST2500.
- I2C, SPI, UART: теперь обмен данными проходит с использованием DMA.
- Драйвер DesignWare DMA: портированы ранее разработанные и направленные в upstream патчи.
- Гармонизация
baikal_defconfig
сarm64/defconfig
. - Исправление мелких логических и стилистических ошибок в драйверах, файлах конфигурации и описаниях деревьев устройств.
Изменённые файлы:
arch/arm64/boot/dts/baikal/bm1000-dbm.dtsi
arch/arm64/boot/dts/baikal/bm1000.dtsi
arch/arm64/boot/dts/baikal/bm1000-qemu-m.dts
arch/arm64/boot/dts/baikal/bs1000-dbs.dtsi
arch/arm64/boot/dts/baikal/bs1000-mbs-1s.dts
arch/arm64/boot/dts/baikal/bs1000-mbs-2s.dts
arch/arm64/boot/dts/baikal/bs1000-qemu-s.dts
arch/arm64/configs/baikal_defconfig
drivers/dma/dw/core.c
drivers/dma/dw/dw.c
drivers/dma/dw/idma32.c
drivers/dma/dw/platform.c
drivers/dma/dw/regs.h
drivers/edac/baikal_mc_edac.c
drivers/gpu/drm/baikal/baikal_vdu_plane.c
drivers/gpu/drm/baikal/baikal_vdu_regs.h
drivers/hwmon/baikal-pvt-i2c.c
drivers/i2c/busses/i2c-designware-core.h
drivers/i2c/busses/i2c-designware-master.c
drivers/i2c/busses/i2c-designware-platdrv.c
drivers/mux/baikal.c
drivers/pci/controller/dwc/pcie-baikal-core.c
drivers/phy/baikal/baikal-usb-phy.cInitrd (Baikal Embedded Linux)
- Исправления в dhrystone, whetstone и memtester в связи с переходом на GCC 14.
- Мелкие исправления в связи с переходом на initramfs.
Изменённые файлы:
programs/benchmarks/Dhrystone/common_64bit/cpuidc64.c
programs/benchmarks/Dhrystone/common_64bit/cpuidh.h
programs/benchmarks/Dhrystone/dhry_1.c
programs/benchmarks/memtester-4.3.0/tests.c
programs/benchmarks/whetstone/common64/cpuidc64.c
programs/benchmarks/whetstone/common64/cpuidh.h
programs/benchmarks/whetstone/whets.c
programs/benchmarks/whetstone/whetsmp.c
static/baikal/files.specУдалённые файлы
programs/benchmarks/Dhrystone/common_32bit/cpuida.asm
programs/benchmarks/Dhrystone/common_32bit/cpuidc.c
programs/benchmarks/Dhrystone/common_32bit/cpuidh.h
programs/benchmarks/Dhrystone/common_32bit/README
programs/benchmarks/Dhrystone/common_32bit/test.c
programs/benchmarks/whetstone/common32/cpuida.asm
programs/benchmarks/whetstone/common32/cpuidc.c
programs/benchmarks/whetstone/common32/cpuidh.h
programs/benchmarks/whetstone/common32/README
programs/benchmarks/whetstone/common32/test.c