Версия 5.7
Baikal ARM64 SDK 5.7 Release Notes
Baikal ARM64 SDK 5.7 содержит следующее программное обеспечение:
Trusted Firmware-A (TF-A) v2.7, лицензия BSD.
https://github.com/ARM-software/arm-trusted-firmwareНе реализована цепочка доверия - Chain of Trust.
Baikal-M
Добавлена процедура инициализации DDR контроллера.Baikal-S
SCP выполняет инициализацию DDR контроллера.TianoCore UEFI (EDK II) 2022-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.211. 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 до 768 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
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.
PMU - Performance Monitor Unit.
Поддержка следующих интерфейсов еще не добавлена в ядро Линукс:
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.
ACPICA версии 20220331 (iASL, tools).
Файлы образов прошивок из директории prebuilts совместимы со старыми версиями утилиты flashrom (<= 0.9.x) Если необходимо использовать более новые версии flashrom, следует расширить файл образа до размера микросхемы флеш-памяти (32 Мб). Это можно сделать при помощи ключа
-bt/--build-padding
или вручную соответствующими командами ОС Linux (например, truncate).
Changelog (5.6 → 5.7)
SDK (основное дерево SDK)
Baikal BE-S1000: обновлена прошивка SCP до версии 3.7.
build-boot-img.sh: опция -bt/--bootrom-truncate переименована в -bp/--bootrom-padding.
Исправлены мелкие ошибки в скриптах сборки.
Изменённые файлы:
acpica/*
prebuilts/bs1000-scp.bin
src/vdec/Makefile
tools/build-boot-img.sh
tools/build-debian-kit.sh
tools/build-initrd-img.sh
tools/environment.sh
VERSIONДобавленные файлы:
src/simde/*
tools/build-debian-kit.sh
ARM Trusted Firmware (TF-A)
TF-A обновлён до версии 2.7.
Усовершенствованы процедуры инициализации DDR для BE-M1000 и BE-S1000.
Изменённые файлы:
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_mmusb.c
plat/baikal/bm1000/bm1000_pm.c
plat/baikal/bm1000/bm1000_sip_svc.c
plat/baikal/bm1000/bm1000_splash.c
plat/baikal/bm1000/drivers/bm1000_cmu.c
plat/baikal/bm1000/drivers/bm1000_scp.c
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_odt_settings.c
plat/baikal/bm1000/drivers/ddr/ddr_spd.h
plat/baikal/bm1000/dt.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_pcie.c
plat/baikal/bs1000/bs1000_pm.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/aarch64/baikal_helpers.S
plat/baikal/common/baikal_bl1_stack.c
plat/baikal/common/baikal_bl2_mem_params_desc.c
plat/baikal/common/baikal_fdt.c
plat/baikal/common/baikal_io_storage.c
plat/baikal/common/baikal_sip_svc_flash.c
plat/baikal/common/include/baikal_fdt.h
plat/baikal/common/include/baikal_sip_svc_flash.h
plat/baikal/common/include/baikal_sip_svc.h
plat/baikal/common/include/spi_dw.h
plat/baikal/common/memtest.c
plat/baikal/common/spi_dw_boot.c
plat/baikal/common/spi_scp_boot.c переименован,
новое имя plat/baikal/common/scp_flash.cДобавленные файлы:
plat/baikal/bm1000/bm1000_mmusb.h
plat/baikal/bs1000/bs1000_pcie.c
plat/baikal/bs1000/bs1000_pcie.h
plat/baikal/common/include/scp_flash.hУдалённые файлы:
plat/baikal/common/spi_flash_ids.h
UEFI
UEFI обновлён до версии 2022-08.
Добавлена поддержка eSPI.
Исправлены ошибки и переработана структура драйвера SPI.
ACPICA обновлена до версии 20220331.
Исправлены мелкие ошибки в драйверах различных подсистем.
Изменения файлов без учёта изменений из upstream:
Изменённые файлы:
BaseTools/Conf/target.template
BaseTools/Conf/tools_def.template
BaseTools/Source/C/Makefiles/header.makefile
BaseTools/Source/Python/build/build.py
BaseTools/Source/Python/Eot/EotMain.py
BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
MdeModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.c
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h
MdeModulePkg/MdeModulePkg.dec
Platform/Baikal/Application/SpiFlash/SpiFlash.c
Platform/Baikal/Application/SpiFlash/SpiFlash.inf
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/AcpiPlatformDxe/AcpiPlatform.h
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.asl
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Iort.c
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Pptt.c
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcieCustom.asl
Platform/Baikal/BM1000Rdb/Drivers/ConfigDxe/ConfigDxe.c
Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
Platform/Baikal/BM1000Rdb/Drivers/XGmacDxe/XGmacDxe.inf
Platform/Baikal/BM1000Rdb/Library/BaikalSpdLib/BaikalSpdLib.c
Platform/Baikal/BM1000Rdb/Library/CmuLib/CmuLib.c
Platform/Baikal/BM1000Rdb/Library/PlatformLib/FdtBaikalMem.c
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/AcpiPlatform.h
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Iort.c
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Pptt.c
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcie.asl
Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
Platform/Baikal/BS1000Rdb/Drivers/UidClientDxe/UidClientDxe.c
Platform/Baikal/BS1000Rdb/Library/CmuLib/CmuLib.c
Platform/Baikal/Drivers/BaikalSpiBlockDxe/BaikalSpiBlockDxe.c
Platform/Baikal/Drivers/BaikalSpiBlockDxe/BaikalSpiBlockDxe.inf
Platform/Baikal/Drivers/BaikalSpiBlockDxe/Block.c
Platform/Baikal/Drivers/BaikalSpiExtBlockDxe/BaikalSpiExtBlockDxe.c
Platform/Baikal/Drivers/BaikalSpiExtBlockDxe/BaikalSpiExtBlockDxe.inf
Platform/Baikal/Drivers/BaikalSpiFvDxe/BaikalSpiFvDxe.c
Platform/Baikal/Drivers/BaikalSpiFvDxe/BaikalSpiFvDxe.inf
Platform/Baikal/Drivers/EspiFlashBlockIoDxe/EspiFlashBlockIoDxe.c
Platform/Baikal/Drivers/FdtClientDxe/FdtClientDxe.c
Platform/Baikal/Drivers/FdtClientDxe/FdtClientDxe.inf
Platform/Baikal/Drivers/FruClientDxe/FruClientDxe.inf
Platform/Baikal/Drivers/GmacDxe/GmacDxe.inf
Platform/Baikal/Drivers/GmacDxe/GmacSnp.c
Platform/Baikal/Drivers/HighMemDxe/HighMemDxe.inf
Platform/Baikal/Drivers/SdBlockDxe/SdBlock.c
Platform/Baikal/Drivers/SdBlockDxe/SdBlock.inf
Platform/Baikal/Drivers/SdBlockDxe/SdLib.c
Platform/Baikal/Drivers/SmcFlashBlockIoDxe/SmcFlashBlockIoDxe.c
Platform/Baikal/Drivers/SmcFlashFvbDxe/SmcFlashFvbDxe.c
Platform/Baikal/Include/Library/BaikalSpdLib.h
Platform/Baikal/Include/Library/BaikalVduPlatformLib.h
Platform/Baikal/Include/Library/CmuLib.h
Platform/Baikal/Library/BaikalRtcLib/BaikalRtcLib.c
Platform/Baikal/Library/BaikalRtcLib/BaikalRtcLib.inf
Platform/Baikal/Library/BaikalSmcFlashLib/BaikalSmcFlashLib.c
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/BaikalVduLib.inf
Platform/Baikal/Library/BaikalVduLib/BaikalVduPlatform.c
Silicon/Baikal/BM1000/Include/BM1000.h
Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLib.inf
Silicon/Baikal/BM1000/Library/PciSegmentLib/PciSegmentLib.c
Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLib.inf
Silicon/Baikal/BS1000/Library/PciSegmentLib/PciSegmentLib.c
Silicon/Baikal/Include/Library/DwSpiLib.h
Silicon/Baikal/Library/DwSpiLib/DwSpiExtLib.c
Silicon/Baikal/Library/DwSpiLib/DwSpiExtLib.inf
Platform/Baikal/Include/Library/BaikalSmcFlashLib.h переименован,
новое имя Platform/Baikal/Include/Library/SmcFlashLib.h
Platform/Baikal/Library/BaikalSmcFlashLib/BaikalSmcFlashLib.c переименован,
новое имя Platform/Baikal/Library/SmcFlashLib/SmcFlashLib.c
Platform/Baikal/Library/BaikalSmcFlashLib/BaikalSmcFlashLib.inf переименован,
новое имя Platform/Baikal/Library/SmcFlashLib/SmcFlashLib.inf
Platform/Baikal/Drivers/BaikalSpiExtBlockDxe/BaikalSpiExtBlockDxe.inf переименован,
новое имя Platform/Baikal/Drivers/BaikalEspiBlockDxe/BaikalEspiBlockDxe.inf
Platform/Baikal/Drivers/BaikalEspiBlockDxe/BaikalEspiBlockDxe.inf переименован,
новое имя Platform/Baikal/Drivers/EspiFlashBlockIoDxe/EspiFlashBlockIoDxe.inf
Silicon/Baikal/Library/DwSpiLib/DwSpiExtLib.inf переименован,
новое имя Silicon/Baikal/Library/EspiLib/EspiLib.inf
Silicon/Baikal/Library/DwSpiLib/DwSpiExtLib.c переименован,
новое имя Silicon/Baikal/Library/EspiLib/EspiLib.c
Platform/Baikal/Drivers/BaikalSpiBlockDxe/BaikalSpiBlockDxe.inf переименован,
новое имя Platform/Baikal/Drivers/SmcFlashBlockIoDxe/SmcFlashBlockIoDxe.inf
Platform/Baikal/Drivers/BaikalSpiExtBlockDxe/BaikalSpiExtBlockDxe.c переименован,
новое имя Platform/Baikal/Drivers/BaikalEspiBlockDxe/BaikalEspiBlockDxe.c
Platform/Baikal/Drivers/BaikalSpiFvDxe/BaikalSpiFvDxe.inf переименован,
новое имя Platform/Baikal/Drivers/SmcFlashFvbDxe/SmcFlashFvbDxe.inf
Silicon/Baikal/Include/Library/DwSpiLib.h переименован,
новое имя Silicon/Baikal/Include/Library/EspiLib.h
Platform/Baikal/Drivers/BaikalEspiBlockDxe/BaikalEspiBlockDxe.c переименован,
новое имя Platform/Baikal/Drivers/EspiFlashBlockIoDxe/EspiFlashBlockIoDxe.c
Platform/Baikal/Drivers/BaikalSpiBlockDxe/BaikalSpiBlockDxe.c переименован,
новое имя Platform/Baikal/Drivers/SmcFlashBlockIoDxe/SmcFlashBlockIoDxe.c
Platform/Baikal/Drivers/BaikalSpiFvDxe/BaikalSpiFvDxe.c переименован,
новое имя Platform/Baikal/Drivers/SmcFlashFvbDxe/SmcFlashFvbDxe.c
Platform/Baikal/Drivers/BaikalSpiBlockDxe/Block.c переименован,
новое имя Platform/Baikal/Drivers/BaikalSpiBlockDxe/BaikalSpiBlockDxe.c
Platform/Baikal/Drivers/BaikalSpiFvDxe/Fv.c переименован,
новое имя Platform/Baikal/Drivers/BaikalSpiFvDxe/BaikalSpiFvDxe.cДобавленные файлы:
Platform/Baikal/Drivers/BaikalSpiExtBlockDxe/BaikalSpiExtBlockDxe.c
Platform/Baikal/Drivers/BaikalSpiExtBlockDxe/BaikalSpiExtBlockDxe.inf
Silicon/Baikal/Include/Library/DwSpiLib.h
Silicon/Baikal/Library/DwSpiLib/DwSpiExtLib.c
Silicon/Baikal/Library/DwSpiLib/DwSpiExtLib.infУдалённые файлы:
MdePkg/Include/IndustryStandard/Acpi64.h
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Csrt.c
Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/Facs.c
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Csrt.c
Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Facs.c
Kernel (Linux kernel 5.4.211)
- Слияние с kernel.org 5.4.211 (поддерживается Linux RT Patch 5.4.209-rt77, который распространяется отдельно от SDK).
- Добавлена возможность обновления BL1, DTB и UEFI из Linux (/dev/mtd0 - BL1; /dev/mtd1 - DTB; /dev/mtd3 - FIP).
- Baikal-S (BE-S1000): реализованы драйверы PCIe и cpufreq.
- Baikal-S (BE-S1000): добавлен драйвер, позволяющий считывать регистры PVT посредством эмуляции I2C.
- Baikal-M (BE-M1000): увеличение числа MSI-X до 256, исправлены ошибки при работе с MSI.
- Исправление мелких ошибок в драйверах и файлах дерева устройств.
Изменения файлов без учёта изменений из 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-mbm.dtsi
arch/arm64/boot/dts/baikal/bm1000-mbm10.dts
arch/arm64/boot/dts/baikal/bm1000-mbm20.dts
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
drivers/edac/baikal_mc_edac.c
drivers/gpu/drm/baikal/baikal_vdu_crtc.c
drivers/hwmon/Kconfig
drivers/hwmon/Makefile
drivers/i2c/busses/i2c-baikal-smbus.c
drivers/mtd/spi-nor/spi-nor.c
drivers/net/ethernet/amd/xgbe/baikal-mdio.c
drivers/net/phy/mdio-gpio-baikal.c
drivers/pci/controller/dwc/Kconfig
drivers/pci/controller/dwc/Makefile
drivers/pci/controller/dwc/pcie-baikal-acpi.c
drivers/pci/controller/dwc/pcie-baikal-bs1000.c
drivers/pci/controller/dwc/pcie-baikal.c
drivers/spi/Kconfig
drivers/spi/Makefile
drivers/spi/spi-db-espi.c
sound/soc/dwc/baikal_snd.c
sound/soc/dwc/Makefile
drivers/spi/spi-db-espi.c переименован,
новое имя drivers/spi/spi-baikal-espi.c
sound/soc/dwc/be_snd.c переименован,
новое имя sound/soc/dwc/baikal_snd.cУдалённые файлы:
arch/arm64/boot/dts/baikal/bm1000-clocks.dtsi
Добавленные файлы:
drivers/hwmon/pvt-i2c.c
Initrd (Baikal Embedded Linux)
Изменений нет.