Создание пакетов программной поддержки для процессоров собственной разработки (Роман Ставцев, LVEE-2019) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) (Batch edit: replace PCRE (\n\n)+(\n) with \2) |
||
(не показано 16 промежуточных версий этого же участника) | |||
;{{SpeakerInfo}}: {{Speaker|Роман Ставцев}} <blockquote> The software development kit creating process for our own processors. </blockquote> {{VideoSection}} {{vimeoembed|366005076|800|450}} <!-- {{youtubelink|}} --> |g9KxTNJSM4M}} {{SlidesSection}} [[File:Создание пакетов программной поддержки для процессоров собственной разработки (Роман Ставцев, LVEE-2019).pdf|left|page=-|300px]] {{----}} == Thesis == АО «Байкал Электроникс» фаблесс-компания специализируется на проектировании систем на кристалле (СнК) и интегральных микросхем. Основной продукцией является СнК '''BE-T1000''' и '''BE-M1000'''. Процессоры Baikal производятся на фабрике компании TSMC. Вспомогательной продукцией является программные пакеты (Software Development Kit, '''SDK''') и оценочные платы. Микропроцессор '''BE-T1000''', другое название Байкал-Т1 относится к типу Система-на-кристале. Микропроцессор содержит два ядра MIPS32r5 P5600 Warrior. [[File:lvee2019-Stavtsev1.png|640px|center]] Перечислим некоторые технические характеристики: * 2 ядра P5600 MIPS 32 r5, максимальная частота до 1,2 ГГц * Кэш L2 1 Мбайт * Контроллер памяти DDR3-1600 * Энергопотребление не более 5 Вт *Технологический процесс 28 нм Интегрированные интерфейсы: * 1 порт 10 Gb Ethernet * 2 порта 1 Gb Ethernet * контроллер PCIe Gen.3 * 2 порта SATA 3.0 * USB 2.0 Микропроцессор '''BE—M1000''', другое название Байкал-M1 относится к типу Система-на-кристале. [[File:lvee2019-Stavtsev2.png|640px|center]] Перечислим некоторые технические характеристики: * 4 кластера по 2 ядра ARM Cortex-A57, максимальная частота до 1,5ГГц * Кэш L2 объемом 1 Мбайт на кластер * Когерентный кэш L3 объемом 8 Мбайт * 2 контроллера памяти DDR4-2400 * Графический процессор ARM Mail-T628 с поддержкой кэш L2 128 Кбайт на кластер * 2 видеоконтроллера с поддержкой LVDS и HDMI2.0 интерфейсов * Аппаратный 4K видео-декодер * Аудио-подсистема HDAudio * Подсистема управления загрузкой * Технологический процесс 28 нм * Корпус FCBGA 1521 Интегрированные интерфейсы: * 3 контроллера PCIe Gen3 (x8/x4/x4) * 2 контроллера SATA 6G * 2 контроллера XGb Ethernet * 2 контроллера 1Gb Ethernet * 2 контроллера USB 3.0/2.0 6 портов Низкоскоростная периферия: * eMMC/SD/SDIO * SPI/eSPI * SMBus * GPIO32 * UART Программные пакеты '''SDK''' (Software Development Kit) для процессоров семейства Baikal, концентрируется на простоте установки и использования, предоставляя при этом необходимы инструментарий. В большей части SDK опирается на свободное программное обеспечение. Для каждого типа СнК выпускается свой SDK. SDK для BE-T1000 был основан на наборе собственных сборочных скриптов. Такой подход позволил создать автономную систему с минимумом зависимостей. Однако имеются и существенные ограничения в нашем решении, основное сложность создания изменяемых сборок с пользовательскими приложениями. При разработке SDK для BE-M1000 мы сохранили прежний принцип построения, понимая и принимая все плюсы и минусы такого решения. Рассмотрим схожие компоненты SDK. В состав SDK входят средства разработки программ для целевого процессора, средства отладки, полный набор исходных кодов, комплект поддержки для отладочных/оценочных плат (BFK), образ встраиваемой операционной системы на основе ядра Linux и набора busybox, средства автоматизации сборки различных образов и прошивок для устройств на процессорах семейства Baikal. Состав SDK выглядит следующим образом: * Загрузчик * Ядро Linux * Образ initrd встраиваемой ОС на основе пакета busybox * Образ initramfs для запуска «больших» дистрибутивов ОС Linux * Прошивка для загрузочной флеш-памяти * Образ файловой системы для эмулятора QEMU * Скрипты автоматизации сборки * Тулчейн * Вспомогательные утилиты * Программный эмулятор * Скрипты поддержки/автоматизации для эмулятора * Исходные коды Основные компоненты немного подробнее. == Загрузчик == Мы используем модифицированную версию загрузчика U-BOOT для BE-T1000. Начинали с U-BOOT v2014.10 Мы используем для BE-M1000 UEFI tianocore основанный на «UEFI Development Kit» UDK2017. == Ядро Linux == для BE-T1000 были внесены дополнения в следующие ветки ядра Linux: * 3.19.xx — не поддерживается * 4.4.xx — активно поддерживается (https://github.com/baikalelectronics/Linux-kernel.4.4.xx) * 5.2 — в разработке для BE-M1000 были внесены дополнения в следующие ветки ядра Linux * 4.9.180 — в разработке == Тулчейн == Пакет средств кросс-компиляции на основе GNU gcc, binutils и т.д. * gcc–8.3.0, binutils–2.32 (для BE-T1000, SDK-4.18) * gcc 6.3.0, binutils 2.28 (для BE-M1000) Средства отладки (gdb) * gdb–8.2.1 (для BE-T1000, SDK-4.18) * gdb 7.12.1 (для BE-M1000) Предсобранные исполнимые файлы и библиотеки (sysroot) на основе glibc * glibc–2.29 (для BE-T1000, SDK-4.18) * glibc 2.25 (для BE-M1000) {{----}} [[File:{{#setmainimage:Создание пакетов программной поддержки для процессоров собственной разработки (Роман Ставцев, LVEE-2019)!.jpg}}|center|640px]] {{LinksSection}} * [ Talks page] <!-- <blockquote>[©]</blockquote> --> {{vklink|1430}} {{fblink|2421189171467423}} <references/> [[Категория:LVEE-2019]] [[Категория:Draft]]Байкал]] {{stats|disqus_comments=0|refresh_time=2021-08-31T18:26:06.484999|vimeo_plays=27|youtube_comments=0|youtube_plays=44}} |
Текущая версия на 12:23, 4 сентября 2021
- Докладчик
- Роман Ставцев
The software development kit creating process for our own processors.
Видео
Презентация
Thesis
АО «Байкал Электроникс» фаблесс-компания специализируется на проектировании систем на кристалле (СнК) и интегральных микросхем. Основной продукцией является СнК BE-T1000 и BE-M1000. Процессоры Baikal производятся на фабрике компании TSMC. Вспомогательной продукцией является программные пакеты (Software Development Kit, SDK) и оценочные платы.
Микропроцессор BE-T1000, другое название Байкал-Т1 относится к типу Система-на-кристале. Микропроцессор содержит два ядра MIPS32r5 P5600 Warrior.
Перечислим некоторые технические характеристики:
- 2 ядра P5600 MIPS 32 r5, максимальная частота до 1,2 ГГц
- Кэш L2 1 Мбайт
- Контроллер памяти DDR3-1600
- Энергопотребление не более 5 Вт *Технологический процесс 28 нм
Интегрированные интерфейсы:
- 1 порт 10 Gb Ethernet
- 2 порта 1 Gb Ethernet
- контроллер PCIe Gen.3
- 2 порта SATA 3.0
- USB 2.0
Микропроцессор BE—M1000, другое название Байкал-M1 относится к типу Система-на-кристале.
Перечислим некоторые технические характеристики:
- 4 кластера по 2 ядра ARM Cortex-A57, максимальная частота до 1,5ГГц
- Кэш L2 объемом 1 Мбайт на кластер
- Когерентный кэш L3 объемом 8 Мбайт
- 2 контроллера памяти DDR4-2400
- Графический процессор ARM Mail-T628 с поддержкой кэш L2 128 Кбайт на кластер
- 2 видеоконтроллера с поддержкой LVDS и HDMI2.0 интерфейсов
- Аппаратный 4K видео-декодер
- Аудио-подсистема HDAudio
- Подсистема управления загрузкой
- Технологический процесс 28 нм
- Корпус FCBGA 1521
Интегрированные интерфейсы:
- 3 контроллера PCIe Gen3 (x8/x4/x4)
- 2 контроллера SATA 6G
- 2 контроллера XGb Ethernet
- 2 контроллера 1Gb Ethernet
- 2 контроллера USB 3.0/2.0 6 портов
Низкоскоростная периферия:
- eMMC/SD/SDIO
- SPI/eSPI
- SMBus
- GPIO32
- UART
Программные пакеты SDK (Software Development Kit) для процессоров семейства Baikal, концентрируется на простоте установки и использования, предоставляя при этом необходимы инструментарий. В большей части SDK опирается на свободное программное обеспечение. Для каждого типа СнК выпускается свой SDK. SDK для BE-T1000 был основан на наборе собственных сборочных скриптов. Такой подход позволил создать автономную систему с минимумом зависимостей. Однако имеются и существенные ограничения в нашем решении, основное сложность создания изменяемых сборок с пользовательскими приложениями. При разработке SDK для BE-M1000 мы сохранили прежний принцип построения, понимая и принимая все плюсы и минусы такого решения.
Рассмотрим схожие компоненты SDK. В состав SDK входят средства разработки программ для целевого процессора, средства отладки, полный набор исходных кодов, комплект поддержки для отладочных/оценочных плат (BFK), образ встраиваемой операционной системы на основе ядра Linux и набора busybox, средства автоматизации сборки различных образов и прошивок для устройств на процессорах семейства Baikal.
Состав SDK выглядит следующим образом:
- Загрузчик
- Ядро Linux
- Образ initrd встраиваемой ОС на основе пакета busybox
- Образ initramfs для запуска «больших» дистрибутивов ОС Linux
- Прошивка для загрузочной флеш-памяти
- Образ файловой системы для эмулятора QEMU
- Скрипты автоматизации сборки
- Тулчейн
- Вспомогательные утилиты
- Программный эмулятор
- Скрипты поддержки/автоматизации для эмулятора
- Исходные коды
Основные компоненты немного подробнее.
Загрузчик
Мы используем модифицированную версию загрузчика U-BOOT для BE-T1000. Начинали с U-BOOT v2014.10 Мы используем для BE-M1000 UEFI tianocore основанный на «UEFI Development Kit» UDK2017.
Ядро Linux
для BE-T1000 были внесены дополнения в следующие ветки ядра Linux:
- 3.19.xx — не поддерживается
- 4.4.xx — активно поддерживается (https://github.com/baikalelectronics/Linux-kernel.4.4.xx)
- 5.2 — в разработке
для BE-M1000 были внесены дополнения в следующие ветки ядра Linux
- 4.9.180 — в разработке
Тулчейн
Пакет средств кросс-компиляции на основе GNU gcc, binutils и т.д.
- gcc–8.3.0, binutils–2.32 (для BE-T1000, SDK-4.18)
- gcc 6.3.0, binutils 2.28 (для BE-M1000)
Средства отладки (gdb)
- gdb–8.2.1 (для BE-T1000, SDK-4.18)
- gdb 7.12.1 (для BE-M1000)
Предсобранные исполнимые файлы и библиотеки (sysroot) на основе glibc
- glibc–2.29 (для BE-T1000, SDK-4.18)
- glibc 2.25 (для BE-M1000)
Примечания и ссылки
- [ Talks page]
- Discuss on VK
- Discuss on Facebook
Plays:71 Comments:0