-
Notifications
You must be signed in to change notification settings - Fork 0
/
12_2019_Stavcev.tex
148 lines (122 loc) · 8.12 KB
/
12_2019_Stavcev.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
\documentclass[10pt, a5paper]{article}
\input{preamble.tex}
\begin{document}
\title{Создание пакетов программной поддержки для процессоров собственной разработки}
\author{Роман Ставцев, Москва, Russian Federation\footnote{\url{[email protected]}, \url{http://lvee.org/ru/abstracts/302}}}
\maketitle
\begin{abstract}
The software development kit creating process for our own processors.
\end{abstract}
АО <<Байкал Электроникс>> фаблесс-компания специализируется на проектировании систем на кристалле (СнК) и интегральных микросхем. Основной продукцией является СнК \textbf{BE-T1000} и \textbf{BE-M1000}. Процессоры Baikal производятся на фабрике компании TSMC. Вспомогательной продукцией является программные пакеты (Software Development Kit, \textbf{SDK}) и оценочные платы.
Микропроцессор \textbf{BE-T1000}, другое название Байкал-Т1 относится к типу Система-на-кристале. Микропроцессор содержит два ядра MIPS32r5 P5600 Warrior.
\begin{center}
\begin{figure}[h!]
\centering
\includegraphics[width=10cm]{Stavtsev1}
\label{stavtsev:fig1}
\end{figure}
\end{center}
Перечислим некоторые технические характеристики:
\begin{itemize}
\item 2 ядра P5600 MIPS 32 r5, максимальная частота до 1,2 ГГц
\item Кэш L2 1 Мбайт
\item Контроллер памяти DDR3-1600
\item Энергопотребление не более 5 Вт
*Технологический процесс 28 нм
\end{itemize}
Интегрированные интерфейсы:
\begin{itemize}
\item 1 порт 10 Gb Ethernet
\item 2 порта 1 Gb Ethernet
\item контроллер PCIe Gen.3
\item 2 порта SATA 3.0
\item USB 2.0
\end{itemize}
Микропроцессор \textbf{BE---M1000}, другое название Байкал-M1 относится к типу Система-на-кристале.
\begin{center}
\begin{figure}[h!]
\centering
\includegraphics[width=10cm]{Stavtsev2}
\label{stavtsev:fig2}
\end{figure}
\end{center}
Перечислим некоторые технические характеристики:
\begin{itemize}
\item 4 кластера по 2 ядра ARM Cortex-A57, максимальная частота до 1,5ГГц
\item Кэш L2 объемом 1 Мбайт на кластер
\item Когерентный кэш L3 объемом 8 Мбайт
\item 2 контроллера памяти DDR4-2400
\item Графический процессор ARM Mail-T628 с поддержкой кэш L2 128 Кбайт на кластер
\item 2 видеоконтроллера с поддержкой LVDS и HDMI2.0 интерфейсов
\item Аппаратный 4K видео-декодер
\item Аудио-подсистема HDAudio
\item Подсистема управления загрузкой
\item Технологический процесс 28 нм
\item Корпус FCBGA 1521
\end{itemize}
Интегрированные интерфейсы:
\begin{itemize}
\item 3 контроллера PCIe Gen3 (x8/x4/x4)
\item 2 контроллера SATA 6G
\item 2 контроллера XGb Ethernet
\item 2 контроллера 1Gb Ethernet
\item 2 контроллера USB 3.0/2.0 6 портов
\end{itemize}
Низкоскоростная периферия:
\begin{itemize}
\item eMMC/SD/SDIO
\item SPI/eSPI
\item SMBus
\item GPIO32
\item UART
\end{itemize}
Программные пакеты \textbf{SDK} (Software Development Kit) для процессоров семейства Baikal, концентрируется на простоте установки и использования, предоставляя при этом необходимы инструментарий. В большей части SDK опирается на свободное программное обеспечение. Для каждого типа СнК выпускается свой SDK. SDK для BE-T1000 был основан на наборе собственных сборочных скриптов. Такой подход позволил создать автономную систему с минимумом зависимостей. Однако имеются и существенные ограничения в нашем решении, основное сложность создания изменяемых сборок с пользовательскими приложениями. При разработке SDK для BE-M1000 мы сохранили прежний принцип построения, понимая и принимая все плюсы и минусы такого решения.
Рассмотрим схожие компоненты SDK. В состав SDK входят средства разработки программ для целевого процессора, средства отладки, полный набор исходных кодов, комплект поддержки для отладочных/оценочных плат (BFK), образ встраиваемой операционной системы на основе ядра Linux и набора busybox, средства автоматизации сборки различных образов и прошивок для устройств на процессорах семейства Baikal.
Состав SDK выглядит следующим образом:
\begin{itemize}
\item Загрузчик
\item Ядро Linux
\item Образ initrd встраиваемой ОС на основе пакета busybox
\item Образ initramfs для запуска <<больших>> дистрибутивов ОС Linux
\item Прошивка для загрузочной флеш-памяти
\item Образ файловой системы для эмулятора QEMU
\item Скрипты автоматизации сборки
\item Тулчейн
\item Вспомогательные утилиты
\item Программный эмулятор
\item Скрипты поддержки/автоматизации для эмулятора
\item Исходные коды
\end{itemize}
Основные компоненты немного подробнее.
\subsection*{Загрузчик}
Мы используем модифицированную версию загрузчика U-BOOT для BE-T1000.
Начинали с U-BOOT v2014.10
Мы используем для BE-M1000 UEFI tianocore основанный на <<UEFI Development Kit>> UDK2017.
\subsection*{Ядро Linux}
для BE-T1000 были внесены дополнения в следующие ветки ядра Linux:
\begin{itemize}
\item 3.19.xx --- не поддерживается
\item 4.4.xx --- активно поддерживается (https://github.com/baikalelectronics/Linux-kernel.4.4.xx)
\item 5.2 --- в разработке
\end{itemize}
для BE-M1000 были внесены дополнения в следующие ветки ядра Linux
\begin{itemize}
\item 4.9.180 --- в разработке
\end{itemize}
\subsection*{Тулчейн}
Пакет средств кросс-компиляции на основе GNU gcc, binutils и т.д.
\begin{itemize}
\item gcc–8.3.0, binutils–2.32 (для BE-T1000, SDK-4.18)
\item gcc 6.3.0, binutils 2.28 (для BE-M1000)
\end{itemize}
Средства отладки (gdb)
\begin{itemize}
\item gdb–8.2.1 (для BE-T1000, SDK-4.18)
\item gdb 7.12.1 (для BE-M1000)
\end{itemize}
Предсобранные исполнимые файлы и библиотеки (sysroot) на основе glibc
\begin{itemize}
\item glibc–2.29 (для BE-T1000, SDK-4.18)
\item glibc 2.25 (для BE-M1000)
\end{itemize}
\end{document}