All streams
Search
Write a publication
Pull to refresh
20
0
Send message
Образ делается debootstrap'ом, как и у автора.
Ядро в моём конкретном случае нужно только преобразовать в специальный формат для U-Boot-загрузчика (uImage
насколько я помню). Но без перекомплиции. Просто скачать, распаковать, преобразовать штатными дебиновскими
утилитами.

Я почему и зацепился, потому как усилий на порядок меньше получается.

Для достижения какой цели "усилий на порядок меньше получается"?
Никакого изврата с QEMU и кросскомпиляцией. Тупо залил корневую ФС и ядро из официального репозитория в соответствующие разделы NAND и всё.

Ну ведь образ, который надо тупо заливать в соответствующие разделы NAND, он ведь как-то делается.

В публикации как раз описывается, что делать если готовые ФС и/или ядро не подходят или вообще не существуют.
То, что могут припаять 8 ГБ ОЗУ — это хорошо, но есть одна проблема...

В Байкал-Т1 использовано ядро MIPS32. Это означает, что пользовательский процесс в Linux сможет адресовать не более 2 ГБ; именно таков размер сегмента kuseg, см. fig 2.1 MIPS memory map: the 32-bit view на странице 48 книжки See MIPS Run (увы, у меня не получается подобрать URL, переход по которому обеспечивает открытие нужной страницы).

А вот если бы для Байкал-Т1 купили бы ядро MIPS64, этой проблемы бы не было, соответствующий пользовательский сегмент xuseg имеет размер 4294967296 ГБ, см. fig. 2.2 A 64-bit view of the memory map на стр. 51 в той же книжке.
К сожалению, на практике все далеко не так просто.

Полностью согласен! Я так и написал — на реальной плате запуск будет более хлопотным чем на QEMU.

Например, в дебиане отсутствуют пакеты для целевой архитектуры.

Что значит "отсутствуют пакеты для целевой архитектуры"? Если для конкретной архитектуры пакеты совсем отсутствуют — тогда и вовсе не стоит говорить о существовании Debian для этой архитектуры. Вот к примеру, для RISC-V, AFAIK, Debian'а пока и нет.

А если же имеется в виду, что для MIPS/ARM нет некоторых пакетов, которые доступны для других архитектур, то да,
такая проблема есть.

На одной из моих машин с Debian в режиме Multiarch подключены сразу архитектуры i386 и mips, и я решил сравнить количество пакетов из testing main:

    $ cat /var/lib/apt/lists/ftp.ru.debian.org_debian_dists_testing_main_binary-i386_Packages | grep ^Package | sed "s/^Package: //" > /tmp/packages_list_i386
    $ cat /var/lib/apt/lists/ftp.ru.debian.org_debian_dists_testing_main_binary-mips_Packages | grep ^Package | sed "s/^Package: //" > /tmp/packages_list_mips
    $ wc -l /tmp/packages_list_*
    47430 /tmp/packages_list_i386
    45914 /tmp/packages_list_mips
    93344 total

Получается, что для mips полторы тыщёнки пакетов не доложили! Впрочем, это меньше четырёх процентов числа пакетов для i386.

С другой стороны часть пакетов для mips отсутствует по объективным причинам — ну не нужны на mips loadlin и lilo.
Кроме того, я просмотрел список отсутствующих для mips пакетов — из тех которые у всех на слуху я встретил пожалуй что только один — tomboy, остальные — это какие-то узкоспециальные пакеты, которых среднему пользователю особо и не жаль.

Или в ядре отсутствует поддержка имеющейся платы, а заодно и трех-четырех периферийных устройств.

Тут бы конкретную ситуацию обсуждать, а не все осуществимые возможности. Что значит "в ядре отсутствует поддержка"? В каком именно ядре? Если нет рабочего ядра linux, или ядро есть, но не поддерживает очень нужную периферию, то тут и говорить не о чем — либо ядро дописывать либо бросить всё как есть.

Если же речь идёт о ядре с kernel.org, то да, далеко не у всех разработчиков хватает сил/времени/желания на продвижение своих изменений ядра в kernel.org.

Самый типовой сценарий (то есть без учёта крайностей), запуска Debian на реальной плате по мотивом обсуждаемой публикации представляется мне так:

  • для выбранной платы есть поддержка в ядре linux (неважно с kernel.org или с openwrt.org, или откуда ещё);
  • производятся разборки по поводу того, как ядро будет попадать в плату и запускаться (припомощи штатного загрузчика, через EJTAG-ли или каким ещё чудом);
  • собираем требуемое ядро;
  • собираем образ rootfs Debian, как описано в публикации;
  • обеспечиваем попадание Debian rootfs на плату (записываем на встроенный накопитель, на внешнюю USB-флешку, планируем грузиться в режиме nfsroot или каким ещё волшебным образом);
  • запускам ядро с Debian rootfs;
  • PROFIT!

Думаю, этот сценарий подходит для большинства плат разработчика (devboard) или поддерживаемых openwrt устройств в широкой продаже.

А уж нетиповые ситуации потребуют нетиповых же мер.
Подскажите, а что имеется ввиду, под понятием "процессорный модуль"?

Подозреваю, что имеется в виду вот такой SMARC-модуль (см. пост https://geektimes.ru/company/icover/blog/271664/):

Вот что Юрий Панчул рассказал про лицензионную политику MIPS на семинаре MIPSfpga:

  • у MIPS (ну теперь Imagination) можно лицензировать готовое процессорное ядро — это стоит одних денег;
  • можно лицензировать архитектуру — это стоит в разы больших денег; лицензируя архитектуру, вы покупаете право разработать процессор, который соответствует архитектуре MIPS и гордо об этом рассказывать. MIPS со своей стороны поможет верификационныи тестами, которые проверят, что вы правильно реализовали архитектуру MIPS (ну чтобы на что попало не ставили гордый значок MIPS32 или даже MIPS64).

В случае с Байкал-Т1 было куплено готовое процессорное ядро, то есть это "обычный MIPS от Imagination". Сделали бы своё ядро — поводов для гордости было бы значительно больше. Всякие Broadcom'ы, да Cavium'ы свои ядра MIPS запилили...

Что же касается "просто ARM" от Samsung, Apple и Qualcomm, то они-то (если верить https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures) свои ARMы пилили сами, в итоге получились как раз не "просто ARM'ы",
я бы даже сказал это "ARMы, но не как у всех".
О какой незавершённости идёт речь?

В заглавии обещана «установка Quartus» — в тексте описана «установка Quartus». Что тут незавершённого?

А уж если подходить строго и допустить, что будет сказано «А» — это «установка Quartus», и будет сказано «Б» — «как задействовать USB-blaster», то возникнет вопрос — «А почему не описано то, как делать битовый поток?». Неужели сразу за установкой Quartus обязательно следует «шитьё»?
В статье упомянуты платы Марсоход, в которые встроен самобытный dongle на базе FT2232, который Quartus'ом (а точнеее Programmer'ом) из коробки не поддерживается. Поэтому ПЛИС на платах Марсоход проще всего шить при помощи openocd, пример см тут: openocd.zylin.com/#/c/2890

Если же в качестве dongl'а используется нечто, что плохо поддерживается в openocd (например, Altera USB Blaster II), тогда приходится использовать Altera Quartus Programmer. Однако я не припомню каких-либо ужасных неразрешимых проблем с ним.
Смутно помню, что проблемы могли возникать, если Programmer аварийно завершался, однако прямо сейчас не имею под рукой подходящей конфигурации чтобы попробовать воспроизвести проблему.
в виде ссылки на яндекс.диск подойдет?
Выкладывать исходные тексты таким образом можно только в случае крайней нужды.

Советую не пожалеть времени и освоить git!
Начать можно с Good Resources for Learning Git and GitHub.
Писать всю прошивку на ассемблере наверное нужно очень редко, но вот разобраться в том, как именно создаётся образ прошивки — это безусловно полезно.

Только один комментарий:
В следующей статье будем писать прошивку микроконтроллера чтобы реально проверить его работу — будем мигать светодиодом!
Надеюсь, что исходники прошивки из следующей статьи будут выложены в удобном для скачивания и обновления виде, например, в виде репозитория на github.

«Приведите, пожалуйста, ссылку на кого-нибудь, что обещал сделать клёвый CPU с нуля.»
Разве не вы это предлагаете? «Ориентироваться на лучших.»
Мол, выпустить «не топовый» процессор это какой-то позор, да?


Пока я предлагал только более аккуратно обращаться с прилагательным «российский» применительно к Байкал Т1, да немного цитировал информацию из открытых источников про процессоры на базе архитектуры SPARCv9.
Я очень надеюсь, что 1891ВМ6Я — это замечательный процессор.

А обещал Бабаян. К счастью этот человек давно покинул наши края.

Разве глубокоуважаемый Борис Арташесович обещал сделать клёвый CPU с нуля?

Практически обязательной частью его рассуждений о неслыханных достоинствах архитектуры Эльбрус является похвала коллективу разработчиков: дескать, нет этому коллективу равных в России, да и в мире возможно тоже. При этом нередко подчёркивается преемственность: есть в коллективе люди, которые ещё в разработке Эльбрус-1-2-3… участвовали, а потому… это ещё один довод в пользу гениальности архитектуры E2K. То есть Бабаян обещал делать не с нуля, но опираясь на некоторый, по его словам, колоссальный задел.
«Подскажите где взять данные для этой таблички?»
Получить доступ к чипу и померить самому. Только какой в этом смысл?
Речь не о том, что он хуже / лучше Фуджитсу. А о том, что он есть, выполняет свои задачи и имеются люди и база которые тянут такие проекты.

Э-э-э. Померить самому. Думаю не стоит отбирать хлеб у разработчиков R1000. Полагаю, что именно они должны быть заинтересованы в том, чтобы убедиться, что их детище имеет не только высокую пиковую (то есть недостижимую на практике, теоретическую) производительность, но и показывает ощутимую долю этой самой пиковой производительности на общепризнанных тестах. А уж если эта высокий процент от пика достигается на практике — тут уж и не грех на сайте МЦСТ этим похвастаться. Но что-то не хвастаются.

Кроме того, для того, чтобы выжать из железа максимум производительности при выполнении реальной программы желательно быть хорошо знакомым с этим железом — тут люди со стороны мало подходят. Кроме того, интересно же знать не только производительность одного чипа R1000, но и производительность многопроцессорного комплекса из нескольких таких чипов. Существуют ли вообще такие комплексы али нет — кто знает…

На этом предлагаю завершить тут, среди комментариев к Байкал Т1, затянувшееся обсуждение продукции МЦСТ вообще и очень таинственного, но как я надеюсь, замечательного, процессора 1891ВМ6Я, в частности.

Да, поэтому я ясно написал «до Exynos», а история Exynos начинается со второй ссылки.
Вы знаете о какой-либо другой линейке процессоров?

Видимо имеется в виду другая линейка процессоров Samsung. Нет, ничего про другую линейку Samsung я не знаю.
То есть заказывая авто в салоне, вы типа тоже являетесь проектировщиком авто?
Значит все покупатели VW должны раскошелиться — они же жулики, которых поймали? Нет?

Кабы эти ваши вопросы были заданы как-то яснее, возможно даже с использованием каких юридических формулировок… А то так как они заданы… я бы даже не пытался на них ответить.

Но зато легко представлю ситуацию из жизни. Вы заказали авто в салоне, и через некоторое время оно у вас.
На этом самом авто, которое было собрано в соответствии с вашими пожеланиями, приехали на встречу с друзьями. И там, как бы между делом, многозначительно заметили: «Да ведь и я внёс вклад в создание этого чудесного авто!». И ведь это будет чистая правда — без вашего участия авто не стало бы таким, каким стало.

Главное в этой ситуации — не допустить, чтобы друзья пустились в распросы с целью установления характера и величины вашего вклада в создание авто!

Как вы себе это представляете? Вы такой берёте и делаете клёвый CPU с нуля?

Любой, кто обещает делать новый и клёвый обязательно расскажет, что уж он-то знает как это сделать, у него просто крутейшая команда, у которой опыт не один десяток лет. Впрочем, это видимо применимо не только к разработчикам процессоров и не только в России.

А уж если кто что-то наобещал… Взялся за гуж — не говори, что не дюж.

Приведите, пожалуйста, ссылку на кого-нибудь, что обещал сделать клёвый CPU с нуля.

Табличка что вы привели, ни о чём не говорит вообще. 4 ядра вместо 8 или стандарт интерфейса памяти — это как-то говорит о качестве реализации? Это количественные параметры.

Да я бы рад привести какую другую табличку, например, с результатами LINPAK HPL хотябы малой ЭВМ на базе сотни-другой R1000 — ну чтобы эти проклятые межпроцессорные линки R1000 были задействованы, чтобы наконец пронаблюдать производительность больше терафлопа.
Подскажите где взять данные для этой таблички?

«Потуги» Самсунга до Exynos
en.wikipedia.org/wiki/List_of_Samsung_System_on_Chips

Да я имел в виду не все подряд потуги Samsung по созданию SoC (кстати по ссылке таблица, в которой самый новый чип 2010 года), а именно потуги по созданию своего ядра. Сейчас разобрался, что последние достижения в этом деле — next-generation System on Chip (SoC), the Exynos 8 Octa (8890), will ship with the company's first-ever custom CPU core built on the 64-bit ARMv8-A architecture.
Предлагаю перестать называть российским изделие собранное исключительно из не российских IP-блоков и сделанное не в России.

Иначе как надо будет называть изделие из российских IP-блоков и сделанное на каком-нибудь Ангстреме или Микроне? Сверх-российским что ли?

Повторюсь, я совсем не против того, что «Байкал», в соответствии с мировой практикой, берёт готовые запчасти и делает из них SoC.

С нетерпением жду появления доступных отладочных плат с Байкал T1!
Потому что вы сами решаете, какие блоки вам нужны, чтобы получить хорошее изделие, а не отверточно собираете то, что придумал за вас другой дядя.


Положим я хочу сделать SoC, похожий на T1 — с готовым безглючным процессорным ядром внутри. И желательно, чтобы ядро было с какой-нибудь популярной архитектурой, то есть чтобы была готовая поддержка в ПО.
Насколько широк выбор поставщиков подходящих процессорных ядер? Подозреваю, что выбор невелик. И это резко снижает мои возможности что-либо решать. И чем больше у меня чужих блоков на которые я не могу влиять, тем больше деятельность начинает напоминать отвёрточную сборку.
Fujitsu десятилетиями занимается разработкой микропроцессоров и имеет своё производство. Ничего удивительного, что их детище несколько лучше нашего, разработанного вчерашними студентами =).

Для достижения хороших результатов надо ориентироваться на лучших.
У R1000 насколько я понимаю, своя микроархитектура, а не Sun-овская. Но я говорил не о ней, а об архитектуре Elbrus, к которой R1000, несмотря на название, не относится.

Чтобы полнее оценить качества архитектуры надобно дождаться большего внедрения Эльбрусов.
А пока узок круг пользователей этих Эльбрусов. Страшно далеки они от народа.
В любом случае упомянутый мной Samsung не мог осилить ни создание собственной микроархитектуры, ни архитектуры (а это означает кучу работы по компиляторам, по тулзам) несмотря на лидирующие позиции и безграничные финансовые возможности.

Киньте, пожалуйста, какие-нибудь ссылки про потуги Samsung'а в этих делах.
Правда. Про 1891ВМ6Я вы не слышали? :-)
То что лидеры микроэлектронного производства не могли сделать — у нас сделали (Elbrus).


Последнее высказывание звучит немного двусмысленно :)

Что там такого у нас сделали?!?

Давайте сравним 1891ВМ6Я (он же R1000), с каким-нибудь другим процессором из 2011 года с архитектурой SPARCv9, например, с Fujitsu SPARC64 VIIIfx.

Данные о R1000 я взял с сайта МЦСТ, а о Fujitsu SPARC64 VIIIfx рассказывает из статьи SPARC64 VIIIfx: CPU for the K computer в FUJITSU Sci. Tech. J., Vol. 48, No. 3, pp. 274–279 (July 2012)

Результаты сравнения я свёл в табличку.


Как видно, сравнение совсем не в пользу R1000, никаких чудес мирового масштаба R1000 в 2011 году не продемонстрировал.

Давайте дальше рассмотрим — как применяются сравниваемые процессоры.

Сначала про SPARC64 VIIIfx: в июне 2011 года K computer, в котором таких процессоров целых 68544, занял первое место в Top500. Даже в Top500 от ноября 2015 года подновлённый до 88128 процессоров
Kcomputer занимает 4 место. См. www.top500.org/system/177232

Очевидно, что SPARC64 VIIIfx неплохо потестировали :)

А вот гоняли ли на R1000 LINPACK HPL — то большая загадка (см. например, www.linux.org.ru/forum/talks/8866718).
Вот что Wikipedia пишет про 1891ВМ6Я:
Выпускаются небольшими партиями по несколько десятков комплектов в месяц

Ну то есть тиражи, характерные скорее для космоса, чем для земли (хотя R1000 и не позицируется как процессор для космоса).
При таком тираже не слишком важно глючный ли процессор или вылизанный — если тот узкий круг задач, который он должен решать, решает, пусть даже с натяжкой и оговорками — ну и ладно. Круг лиц, которые знают о реальных показателях 1891ВМ6Я очень узок, а то, что с 2011 года он не получил хоть сколько-нибудь ощутимого применения не говорит в пользу его хорошего качества.

Так что считаю высказывание «в России есть разработчики, которые полностью сделали сравнительно безглючный процессор, работающий на 1 ГГц и более, со всякими 10G Ethernet'ами» недоказанным.

Что же касается «всяких Ethernet'ов», то хотя отчественные MAC-контроллеры для Ethernet существуют, но про отечественный PHY пока не слыхал, увы. А было бы здорово, если бы его наконец сделали.
Ну я не буду отвечать вопросом на вопрос.
Скажу прямо: T1 приблизительно на столько-же «российский», насколько Boeing на этой картинке зимбабвийский:

image

Этих самых «российских» процентов в T1 совсем мало (увы, Байкал не выдаст Verilog для точного учёта).

Компетенция в сборке SoC из IP-ядер получена (этим занимаются как вы правильно заметили сотни), а компетенция в создании самих этих IP-ядер — нет.

И почему собственно SoC это не изделие отвёрточной сборки? Берём готовые блоки с подходящими интерфейсами,
соединяем их по правилам, характерным для этих интерфейсов — et voilà SoC готова. Если у вас IP-блоки как-то плохо соединяются — так вас поставщики IP-блоков советами засоветают, блоки-то с поддеркой куплены.
ПО для SoC тоже уже готово, осталось поправить базовые адреса IP-блоков и разводку прерываний в linux (ну или на каком там ядре вы хотите работать), а уж процессорное ядро стандартное, компиляторами поддержано — компили — не хочу.
Я совсем не против того, что «Байкал», в соответствии с мировой практикой, берёт готовые запчасти и делает из них SoC.

Я против того, чтобы называть полученное изделие российским. А то простой человек прочитает «российский процессор Байкал Т1» и сразу мысль: «ага, в России есть разработчики, которые полностью сделали сравнительно безглючный процессор, работающий на 1 ГГц и более, со всякими 10G Ethernet'ами». Но разве это правда? Умение связать готовое процессорное ядро с готовым 10G Ethernet-контроллером совершенно не гарантирует понимания того, как работает ядро и как работает контроллер, не гарантирует умения спроектировать сопоставимые ядро и контроллер. Давайте не будем вводить людей в заблуждение.

Напомню, что раньше-то Байкал планировал сделать «российский процессор» с архитектурой ARM, но возникли сложности с лицензированием ядра у ARM, и этот «российский процессор» пока не появился :)

Что же касается интеллектуальной собственности на конечный продукт, то, для примера можем взглянуть на некоторые варианты лицензирования IP-блоков в той-же ARM. См. Licensing ARM IP: Per Use License:

  • The Per Use license is available on selected ARM IP and gives an ARM Partner the right to design a single ARM technology-based product within a specified time-frame (usually three years). The manufacturing rights are perpetual.

Если будет сделан «российский процессор» с IP-блоками по подобной лицензии, то может статься, что через пять лет без согласования с ARM Holdings plc, Cambridge, England нельзя даже перевыпустить партию с исправлением ошибок, пусть даже в не-ARM IP-блоках.

Думаю, Байкал не будет разглашать условий контракта с Imagination и другими поставщиками IP-блоков :)

Information

Rating
6,249-th
Registered
Activity