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

Версия 2409-6.6

⤓ Скачать Baikal ARM64 SDK 2409-6.6

Baikal ARM64 SDK 2409-6.6 Release Notes

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

  1. 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.

  2. TianoCore UEFI (EDK II) edk2-stable202408, лицензия 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.6.48.
    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).
  4. Baikal-S: поддержка межпроцессорного взаимодействия (3 x PCIe CCIX x16).

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

  6. Baikal-M: Бинарные библиотеки OpenGL и OpenCL c поддержкой Wayland/Weston: OpenGL ES 1.1, 2.0, 3.0. OpenCL 1.1.

  7. Baikal-M: Набор патчей c поддержкой Mali T628 для Mesa 20.2.

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

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

  10. Toolchain на основе gcc 14.1 / binutils 2.42
    https://gcc.gnu.org/

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

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

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

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

  15. ACPICA версии 20240322 (iASL, tools).

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

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

Примечание

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

Changelog (2406-6.6 → 2409-6.6)

  1. SDK (основное дерево SDK)

    • ACPICA обновлена до версии 20240827.

    • BE-S1000: прошивка XCP обновлена до версии 5.7.1. Теперь эта прошивка стала универсальной и может использоваться как для однопроцессорных, так и для двухпроцессорных систем (актуальная конфигурация платы считывается из EEPROM). В связи с этим все файлы прошивок XCP для различных платформ на базе BE-S1000 теперь одинаковы по содержанию и отличаются только именами.

    • README.rst: добавлена информация о новых зависимостях, которые необходимо установить перед использованием SDK: python3-anytree python3-click python3-prettytable python3-pyelftools. Эти зависимости необходимы для вывода карты памяти при сборке TF-A.

    • build-boot-img.sh: изменены правила работы опции -c/--clean:

      • если скрипт вызывается с опцией -c/--clean без каких-либо иных аргументов - удаляется всё содержимое поддиректории build.
      • если скрипт вызывается с опциями -c/-clean, -a/--all либо -ad/--all-debug в сочетании с именем целевой платформы: из директории build удаляются только файлы, ранее собранные для указанной платформы.
    • build-boot-img.sh: модули ядра компилируются и включаются в образ initramfs при выполнении следующих условий:

      • cуществует директория, заданная переменной BUILD_KMODULES_DIR;
      • на целевой платформе поддерживается работа с загрузочной флеш-памятью объёмом >16 Мбайт (на данный момент - только платы серий DBM, DBS и MBS).
    • build-boot-img.sh: добавлены опции -ct/--clean-tfa (удалить артефакты сборки TF-A) и -cu/--clean-uefi (удалить артефакты сборки UEFI); теперь TF-A и UEFI собираются для каждой поддерживаемой платформы в отдельной директории, и поэтому вместе с вышеупомянутыми опциями необходимо указывать имя платформы.

    • build-boot-img.sh: в связи с тем, что размер сектора флеш-памяти может достигать 256 кбайт, границы стираемых регионов в двоичном образе загрузочной флеш-памяти округлены до этой величины:

      • DBM 1.0 / DBM 2.0:
        [00000000 - 0000efff] = BL1
        [00040000 - 001fffff] = FIP (со служебным 4-байтовым префиксом)
        [00200000 - 0023ffff] = конфигурация DDR0
        [00240000 - 0027ffff] = конфигурация DDR1
        [00280000 - 0033ffff] = переменные UEFI
        [00340000 - 01ffffff] = FAT
      • MBM 1.0 / MBM 2.0:
        [00000000 - 0007ffff] = XCP-FW
        [00080000 - 0008efff] = BL1
        [0008f000 - 0023ffff] = FIP
        [00240000 - 0027ffff] = конфигурация DDR0
        [00280000 - 002bffff] = конфигурация DDR1
        [002c0000 - 0037ffff] = переменные UEFI
        [00380000 - 01ffffff] = FAT
      • DBS / DBS-OV / MBS-1S / MBS-2S:
        [00000000 - 0001fbff] = BL1
        [0001fc00 - 0001fc0b] = аргументы XCP-FW
        [00020000 - 0003ffff] = DDR-FW
        [00040000 - 0027ffff] = FIP
        [00280000 - 002bffff] = конфигурация DDR
        [002c0000 - 0037ffff] = переменные UEFI
        [00380000 - 01ffffff] = FAT
    • Двоичный образ дерева устройств (DTB) больше не размещается по фиксированному адресу во флеш-памяти (см. карту памяти выше), а является составной частью FIP (Firmware Image Package).

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

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

    VERSION
    prebuilts/*
    baikal/README.rst
    baikal/src/acpica/*
    baikal/tools/build-boot-img.sh
    baikal/tools/build-initrd-img.sh
    baikal/tools/environment.sh
  2. ARM Trusted Firmware (TF-A)

    • Усовершенствованы драйверы DDR (в частности, для взаимодействия с процедурами конфигурации из UEFI).
    • Исправлены мелкие стилистические и логические ошибки в процедурах инициализации и драйверах различных подсистем. Оптимизировано использование памяти в BL1.

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

    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_mmavlsp.c
    plat/baikal/bm1000/bm1000_mmca57.c
    plat/baikal/bm1000/bm1000_mmca57.h
    plat/baikal/bm1000/bm1000_mmcoresight.c
    plat/baikal/bm1000/bm1000_mmmali.c
    plat/baikal/bm1000/bm1000_mmpcie.c
    plat/baikal/bm1000/bm1000_mmusb.c
    plat/baikal/bm1000/bm1000_mmvdec.c
    plat/baikal/bm1000/bm1000_mmxgbe.c
    plat/baikal/bm1000/bm1000_pm.c
    plat/baikal/bm1000/bm1000_sip_svc.c
    plat/baikal/bm1000/bm1000_splash.c
    plat/baikal/bm1000/bm1000_splash.h
    plat/baikal/bm1000/bm1000_vdu.h
    plat/baikal/bm1000/drivers/bm1000_cmu.c
    plat/baikal/bm1000/drivers/bm1000_cmu.h
    plat/baikal/bm1000/drivers/ddr/ddr_baikal.h
    plat/baikal/bm1000/drivers/ddr/ddr_init.c
    plat/baikal/bm1000/drivers/ddr/ddr_lcru.c
    plat/baikal/bm1000/drivers/ddr/ddr_lcru.h
    plat/baikal/bm1000/drivers/ddr/ddr_main.c
    plat/baikal/bm1000/drivers/ddr/ddr_main.h
    plat/baikal/bm1000/drivers/ddr/ddr_menu.c
    plat/baikal/bm1000/drivers/ddr/ddr_menu.h
    plat/baikal/bm1000/drivers/ddr/ddr_spd.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_dimm_spd.c
    plat/baikal/bs1000/bs1000_dt.c
    plat/baikal/bs1000/bs1000_sip_svc.c
    plat/baikal/bs1000/bs1000_smmu.c
    plat/baikal/bs1000/bs1000_usb.c
    plat/baikal/bs1000/drivers/bs1000_cmu.c
    plat/baikal/bs1000/drivers/bs1000_cmu.h
    plat/baikal/bs1000/drivers/bs1000_coresight.c
    plat/baikal/bs1000/drivers/ddr/ddr_ctrl.h
    plat/baikal/bs1000/drivers/ddr/ddr_main.c
    plat/baikal/bs1000/drivers/ddr/ddr_main.h
    plat/baikal/bs1000/drivers/ddr/ddr_master.c
    plat/baikal/bs1000/drivers/ddr/ddr_master.h
    plat/baikal/bs1000/drivers/ddr/ddr_menu.c
    plat/baikal/bs1000/drivers/ddr/ddr_menu.h
    plat/baikal/bs1000/drivers/ddr/ddr_misc.c
    plat/baikal/bs1000/drivers/ddr/ddr_misc.h
    plat/baikal/bs1000/drivers/ddr/ddr_odt_settings.c
    plat/baikal/bs1000/drivers/ddr/ddr_spd.h
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_init.c
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_load.c
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_misc.c
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_misc.h
    plat/baikal/bs1000/drivers/ddr/phy/ddr_phy_msgb.c
    plat/baikal/bs1000/include/bs1000_def.h
    plat/baikal/bs1000/include/platform_def.h
    plat/baikal/bs1000/platform.mk
    plat/baikal/common/baikal_bl2_mem_params_desc.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/cdns_sdemmc.c
    plat/baikal/common/crc.c
    plat/baikal/common/dw_apb_timer.c
    plat/baikal/common/include/cdns_sdemmc.h
    plat/baikal/common/include/tzc400.h
    plat/baikal/common/spi_nor_flash.c
    plat/baikal/common/tzc400.c
    plat/baikal/bs1000/include/bs1000_scp_lcru.h переименован,
    новое имя plat/baikal/bs1000/include/bs1000_sc_lcru.h
    plat/baikal/bs1000/bs1000_scp_lcru.c переименован,
    новое имя plat/baikal/bs1000/bs1000_sc_lcru.c

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

    plat/baikal/bs1000/drivers/ddr/ddr_menu.c
    plat/baikal/bs1000/drivers/ddr/ddr_menu.h
    plat/baikal/common/cdns_sdemmc.c
    plat/baikal/common/include/cdns_sdemmc.h
    plat/baikal/common/include/tzc400.h
    plat/baikal/common/tzc400.c
  3. UEFI

    • UEFI обновлён до edk2-stable202408.
    • BE-S1000: реализовано графическое меню для настройки параметров инициализации DDR.
    • Исправлены мелкие ошибки в драйверах различных подсистем (ACPI, VDU и др.).

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

    Platform/Baikal/Application/DdrSettings/DdrSettings.h
    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/RamStruc.c
    Platform/Baikal/BM1000Rdb/Drivers/RamMenu/RamStruc.h
    Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
    Platform/Baikal/BM1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
    Platform/Baikal/BM1000Rdb/Library/BaikalSpdLib/BaikalSpdLib.c
    Platform/Baikal/BM1000Rdb/Library/BaikalSpdLib/BaikalSpdLib.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/AcpiPlatform.h
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Pptt.c
    Platform/Baikal/BS1000Rdb/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.c
    Platform/Baikal/Drivers/GmacDxe/Gmac.c
    Platform/Baikal/Include/Library/BaikalSpdLib.h
    Platform/Baikal/Library/BaikalVduLib/BaikalVdu.c
    Platform/Baikal/Library/BaikalVduLib/BaikalVduPlatform.c
    Platform/Baikal/Library/PlatformPeiLib/PlatformPeiLib.c
    Platform/Baikal/Library/PlatformPeiLib/PlatformPeiLib.inf
    Silicon/Baikal/BM1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c
    Silicon/Baikal/BS1000/Include/BS1000.h
    Silicon/Baikal/BS1000/Library/PciHostBridgeLib/PciHostBridgeLibConstructor.c

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

    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/DsdtDbm10.asl
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/DsdtDbm20.asl
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/DsdtInclude.asl
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/DsdtMbm10.asl
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/DsdtMbm20.asl
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/MultimediaMezz.asl
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/README
    Platform/Baikal/BM1000Rdb/Drivers/AcpiPlatformDxe/XgbeMezz.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/DsdtDbs.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/DsdtDbsOv.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Dsdt.h
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/DsdtMbs1s.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/DsdtMbs2s.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/EspiMezz.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Qspi2Mezz.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/README
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenu1s.inf
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenu1s.vfr
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenu2s.inf
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenu2s.vfr
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenu.c
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenuComponent.c
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenuComponent.h
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenuDataStruct1s.h
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenuDataStruct2s.h
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenu.h
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenuHii.c
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenuHii.h
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamMenu.uni
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamStruc.c
    Platform/Baikal/BS1000Rdb/Drivers/RamMenu/RamStruc.h
    Platform/Baikal/Library/BasePlatformHookLib/BasePlatformHookLib.c
    Platform/Baikal/Library/BasePlatformHookLib/BasePlatformHookLib.inf

    Удалённые файлы:

    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/Dsdt-S1.asi
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcie.asl
    Platform/Baikal/BS1000Rdb/Drivers/AcpiPlatformDxe/SsdtPcie-S1.asi
  4. Kernel (Linux kernel 6.6.48)

    • Слияние с kernel.org 6.6.48 (поддерживается патч PREEMPT_RT версии 6.6.48-rt40, который распространяется отдельно от SDK).
    • Добавлена поддержка ACPI в драйвер dw_wdt.
    • Оптимизация деревьев устройств.

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

    arch/arm64/boot/dts/baikal/bm1000-dbm.dtsi
    arch/arm64/boot/dts/baikal/bm1000.dtsi
    arch/arm64/boot/dts/baikal/bs1000-dbs.dtsi
    arch/arm64/boot/dts/baikal/bs1000.dtsi
    arch/arm64/boot/dts/baikal/bs1000-mbs-2s.dts
    arch/arm64/configs/baikal_defconfig
    drivers/clocksource/baikal_dw_apb_timer.c
    drivers/misc/Kconfig
    drivers/watchdog/dw_wdt.c
  5. Initrd (Baikal Embedded Linux)

    • Busybox обновлён до версии 1.36.1.
    • Мелкие исправления в /etc/motd.

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

static/baikal/etc/motd