Перейти к основному содержимому

Версия 6.4

⤓ Скачать Baikal ARM64 SDK 6.4

Baikal ARM64 SDK 6.4 Release Notes

Baikal ARM64 SDK 6.4 содержит следующее программное обеспечение:

  1. Trusted Firmware-A (TF-A) v2.10, лицензия BSD.
    https://github.com/ARM-software/arm-trusted-firmware

    Не реализована цепочка доверия - Chain of Trust.

    Baikal-M
    Инициализация DDR-контроллера реализована в TF-A.

    Baikal-S
    Инициализация DDR-контроллера реализована в TF-A.

  2. TianoCore UEFI (EDK II) edk2-stable202311, лицензия BSD.
    https://github.com/tianocore/tianocore.github.io/wiki

    Baikal-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 (включена как в релизной сборке, так и в отладочной).

  3. Linux kernel 6.1.63.
    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 (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 (Cortex-A75 2000 MHz, DDR4-3200, объём RAM до 768 GB)

    • DBS-OV (Cortex-A75 2500 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).
  1. Baikal-S: поддержка межпроцессорного взаимодействия (3 x PCIe CCIX x16).

  2. Xen 4.17.2. https://xenproject.org/ Гибридный гипервизор, адаптированный для запуска на платформах Baikal-S и Baikal-M.

  3. Baikal-M: Бинарные библиотеки OpenGL и OpenCL c поддержкой Wayland/Weston:

    • OpenGL ES 1.1, 2.0, 3.0.
    • OpenCL 1.1.
  4. Baikal-M: Набор патчей c поддержкой Mali T628 для Mesa 20.2.

  5. Baikal-M: Бинарная библиотека OpenMAX IL и GStreamer-плагин для работы с видеодекодером. Поддерживаемые кодеки:

    • VP8
    • VP6
    • Sorenson Spark (реализация стандарта Н.263)
    • AVS
    • MPEG4
    • MPEG2
    • MPEG1
    • WMV9
    • VC1
    • H264
    • HEVC (H265)
  6. rootfs на базе Busybox.
    https://www.busybox.net/source.html

  7. Toolchain на основе gcc 13.1 / binutils 2.38
    https://gcc.gnu.org/

  8. Возможность отладки с использованием OpenOCD / Olimex ARM-USB-OCD-H.

  9. Поддерживается возможность использования профилировщика OProfile 1.4.0.

  10. Есть возможность запуска rootfs Debian 12. В состав SDK не входит, поставляется отдельным архивом.

  11. Библиотека SIMDe для запуска ISA расширений из других архитектур на ARM64.

  12. ACPICA версии 20221020 (iASL, tools).

  13. Библиотека OpenCSD, использующая возможности CoreSight для трассировки событий посредством утилиты ядра perf.

  14. Поддерживается возможность применить RT_PREEMPT-патч для ядра Linux.

Примечание

Файлы образов прошивок из директории prebuilts совместимы со старыми версиями утилиты flashrom (<= 0.9.x) Если необходимо использовать более новые версии flashrom, следует расширить файл образа до размера микросхемы флеш-памяти (32 Мб). Это можно сделать при помощи ключа -bp/--bootrom-padding или вручную соответствующими командами ОС Linux (например, truncate).

Changelog (6.3 → 6.4)

  1. SDK (основное дерево SDK)
  • BE-S1000: добавлена поддержка двухпроцессорной материнской платы MBS-2S (наименование платформы при вызове скрипта сборки - mbs-2s). Файлы прошивки SCP для ведущего (bs1000-scp-boot.bin) и ведомого (bs1000-scp-slave.bin) процессоров располагаются в директории prebuilts.

  • Добавлены исходные тексты гипервизора Xen 4.17.2, адаптированного для работы на платформах Baikal ARM64 (директория src/xen/). Предварительно собранный образ EFI-приложения xen.efi находится в директории prebuilts. Пересобрать xen.efi можно при помощи вызова скрипта build-boot-img.sh с указанием целевой платформы и ключа --xen.

  • build-boot-img.sh: при сборке ядра (ключи -k / --kernel) проверяется наличие файла дерева устройств (*.dtb), и при наличии такового он не собирается заново. При необходимости принудительной пересборки дерева устройств теперь нужно явно указывать ключ -f/-dtb. В случае применения ключей -a/--all или -ad/--all-debug по прежнему пересобираются все двоичные артефакты, включая и дерево устройств.

  • build-boot-img.sh: добавлен ряд опций для активации (включения) отдельных периферийных контроллеров в двоичном файл дерева устройств:
    --use-emmc активировать eMMC (только DBM; несовместима с --use-sd)
    --use-hda активировать HDA (только DBM)
    --use-i2s активировать I2S (только DBM)
    --use-lvds активировать LVDS (только DBM и MBM)
    --use-sd активировать SD (только DBM; взаимно несовместима с --use-emmc)
    --use-xgbe-krkx4 активировать XGbE KR/KX4 (только DBM).

    Опции-модификаторы относятся только к платам, указанным в скобках и влияют на любые сборочные опции, подразумевающие пересборку dtb-файла: -f/--dtb, -a/--all, -ad/--all-debug, а при определённых условиях (см. предыдущий пункт) и -k/--kernel.

  • build-boot-img.sh: при сборке образа Baikal Embedded Linux (ключи -bl / --bootrom-linux) вместо несжатого образа ядра формата Image используется сжатый образ формата vmlinuz.efi для экономии места во флеш-памяти (с актуальной версией grub образ формата vmlinuz.efi несовместим).

  • Toolchain: исправлены мелкие ошибки в gdb, добавлена библиотека libnuma.

  • Исправлены мелкие ошибки в скриптах сборки и вспомогательных файлах.

    Изменённые файлы:

    README
    VERSION
    prebuilts/bs1000-scp-boot.bin
    prebuilts/bs1000-scp-slave.bin
    source/compiler/aslrestype2q.c
    tools/build-boot-img.sh
    tools/build-debian-kit.sh
    tools/build-initrd-img.sh
    tools/environment.sh
    xtools/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gdb

    Добавленные файлы:

    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/include/numa.h
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/include/numacompat1.h
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/include/numaif.h
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/libnuma.a
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/libnuma.la
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/libnuma.so
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/libnuma.so.1
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/libnuma.so.1.0.0
    xtools/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/pkgconfig/numa.pc
  1. ARM Trusted Firmware (TF-A)
  • Добавлена поддержка многопроцессорных платформ (в настоящее время поддерживается двухпроцессорная плата MBS-2S).

  • Добавлена поддержка опций PSCI_OS_INIT_MODE, MEM_PROTECT.

  • Добавлена поддержка JEDEC JEP-106 SoC ID.

  • Исправлена ошибка инициализации SPI, которая в определённых условиях приводила к невозможности перезагрузки системы вследствие некорректной перезаписи содержимого флеш-памяти.

  • Исправлены мелкие стилистические и логические ошибки в процедурах инициализации и драйверах различных подсистем.

    Измененные файлы:

    drivers/arm/gic/v3/gicv3_helpers.c
    plat/baikal/bm1000/bm1000_bl31_logo_v1.c
    plat/baikal/bm1000/bm1000_bl31_logo_v2.c
    plat/baikal/bm1000/bm1000_bl31_logo_v3.c
    plat/baikal/bm1000/bm1000_bl31_logo_v4.c
    plat/baikal/bm1000/bm1000_font.c
    plat/baikal/bm1000/bm1000_mmavlsp.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/bm1000_efuse.c
    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/include/baikal_def.h
    plat/baikal/bm1000/include/platform_def.h
    plat/baikal/bm1000/platform.mk
    plat/baikal/bs1000/aarch64/bs1000_helpers.S
    plat/baikal/bs1000/bs1000_bl1_setup.c
    plat/baikal/bs1000/bs1000_bl31_setup.c
    plat/baikal/bs1000/bs1000_ca75.c
    plat/baikal/bs1000/bs1000_dimm_spd.c
    plat/baikal/bs1000/bs1000_dt.c
    plat/baikal/bs1000/bs1000_pcie.c
    plat/baikal/bs1000/bs1000_pm.c
    plat/baikal/bs1000/bs1000_scp_lcru.c
    plat/baikal/bs1000/bs1000_sip_svc.c
    plat/baikal/bs1000/bs1000_topology.c
    plat/baikal/bs1000/drivers/bs1000_cmu.c
    plat/baikal/bs1000/drivers/bs1000_coresight.c
    plat/baikal/bs1000/drivers/bs1000_coresight.h
    plat/baikal/bs1000/drivers/bs1000_gmac.c
    plat/baikal/bs1000/drivers/bs1000_scp.c
    plat/baikal/bs1000/drivers/bs1000_usb.c
    plat/baikal/bs1000/drivers/ddr/ddr_bs1000.h
    plat/baikal/bs1000/drivers/ddr/ddr_ctrl.c
    plat/baikal/bs1000/drivers/ddr/ddr_io.c
    plat/baikal/bs1000/drivers/ddr/ddr_main.c
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_calc.c
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_main.c
    plat/baikal/bs1000/include/baikal_def.h
    plat/baikal/bs1000/include/bs1000_def.h
    plat/baikal/bs1000/include/bs1000_dimm_spd.h
    plat/baikal/bs1000/include/bs1000_scp_lcru.h
    plat/baikal/bs1000/include/platform_def.h
    plat/baikal/bs1000/platform.mk
    plat/baikal/common/baikal_common.c
    plat/baikal/common/baikal_fdt.c
    plat/baikal/common/baikal_gicv3.c
    plat/baikal/common/baikal_pvt.c
    plat/baikal/common/dw_apb_timer.c
    plat/baikal/common/dw_spi_flash.c
    plat/baikal/common/include/baikal_gicv3.h
    plat/baikal/common/include/baikal_sip_svc.h
    plat/baikal/common/include/baikal_scp.h переименован,
    новое имя plat/baikal/bm1000/include/baikal_scp.h

    Добавленные файлы:

    plat/baikal/bs1000/include/baikal_scp.h
    plat/baikal/common/baikal_interrupt_mgmt.c
    plat/baikal/common/dw_apb_timer.c
    plat/baikal/common/include/baikal_interrupt_mgmt.h
    plat/baikal/common/include/dw_apb_timer.h
  1. UEFI
  • UEFI обновлён до edk2-stable202308, одновременно с обновлением полностью изменилась структура дерева исходных текстов.
  1. Kernel (Linux kernel 6.1.47)
  • Слияние с kernel.org 6.1.47 (поддерживается Linux RT Patch 6.1.46-rt13, который распространяется отдельно от SDK).

  • BE-S1000: реализована поддержка многопроцессорных систем (плата MBS-2S).

  • Драйвер PVT: добавлена обработка пороговых прерываний.

  • Мелкие исправления в драйверах и конфигурационных файлах различных подсистем.

    Изменения файлов без учёта изменений из kernel.org:

    Измененные файлы:

    arch/arm64/boot/dts/baikal/bm1000-coresight.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-coresight.dtsi
    arch/arm64/boot/dts/baikal/bs1000-dbs.dts
    arch/arm64/boot/dts/baikal/bs1000-dbs.dtsi
    arch/arm64/boot/dts/baikal/bs1000-dbs-mezzanine-espi.dtsi
    arch/arm64/boot/dts/baikal/bs1000-dbs-mezzanine-qspi2.dtsi
    arch/arm64/boot/dts/baikal/bs1000-dbs-ov.dts
    arch/arm64/boot/dts/baikal/bs1000.dtsi
    arch/arm64/boot/dts/baikal/bs1000-mbs-2s.dts
    arch/arm64/boot/dts/baikal/bs1000-qemu-s.dts
    arch/arm64/boot/dts/baikal/Makefile
    arch/arm64/configs/baikal_defconfig
    drivers/acpi/pci_mcfg.c
    drivers/clk/baikal/clk-bs1000.c
    drivers/gpu/drm/baikal/baikal_vdu_drv.c
    drivers/hwmon/Makefile
    drivers/hwmon/bt1-pvt.c
    drivers/hwmon/bt1-pvt.h
    drivers/mux/baikal.c
    drivers/net/ethernet/stmicro/stmmac/dwmac-baikal.c
    drivers/pci/controller/dwc/pcie-baikal-core.c

    Добавленные файлы:

    arch/arm64/boot/dts/baikal/bm1000-dbm-mezzanine-multimedia.dtsi
    arch/arm64/boot/dts/baikal/bm1000-dbm-mezzanine-xgbe-krkx4.dtsi
    arch/arm64/boot/dts/baikal/bs1000-mbs-2s.dts
    drivers/hwmon/baikal-pvt-common.c
    drivers/hwmon/baikal-pvt-common.h
    drivers/hwmon/baikal-pvt-specific.c
    drivers/hwmon/baikal-pvt-specific.h
  1. Initrd (Baikal Embedded Linux)
  • Исправлены мелкие ошибки.

    Изменённые файлы:

    programs/benchmarks/stressapptest-1.0.9/src/os.h
    programs/e2fsprogs.mk