sweetpirate 0 10 декабря, 2018 Опубликовано 10 декабря, 2018 · Жалоба Здравствуйте, имеется в наличии процессорный модуль Салют-ЭЛ24ПМ2. Являюсь новичком, поэтому вопросы будут глупые. Интересует вопрос, как можно загрузить Linux/Buildroot во внутреннюю память ПЗУ mmc0? Какие требования к разделам? И что нужно знать, чтобы осуществить это. В мануале это явно не описывается, к сожалению. Либо я со своим скудным опытом не могу понять. Надеюсь на помощь, спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ELVEES R&D Center 0 10 декабря, 2018 Опубликовано 10 декабря, 2018 (изменено) · Жалоба Quote Интересует вопрос, как можно загрузить Linux/Buildroot во внутреннюю память ПЗУ mmc0? mmc0 это микросхема eMMC, установленная на процессорном модуле Салют-ЭЛ24ПМ2. Для этого можно использовать утилиту mcom02_flash_mmc.py из пакета mcom02-flash-tools. Ссылка на github: https://github.com/elvees/mcom02-flash-tools Ссылка на дистрибутив: ftp://ftp.elvees.com/1892VM14YA/linux/Buildroot/v2.9/mcom02-buildroot-v2.9.0-2018-09-21.tar.bz2 . Путь относительно корня архива: Процесс установки данного пакета в Windows описан в п.3 документа «Инструкция по прошивке SPI флеш-памяти модулей на базе 1892ВМ14Я». В ОС Linux пакет Python 2.7 обычно уже установлен. Необходимо выполнить одно из предложенных ниже действий: pip install --upgrade <mcom02_flash_tools> для установки из распакованного архива, где <mcom02_flash_tools> — путь к архиву пакета или директории, содержащей распакованный пакет. pip install --upgrade git+https://github.com/elvees/mcom02-flash-tools.git для установки из репозитория на github. При работе в OC Windows путь установки python/имя пользователя/имя компьютера не должны содержать кириллических символов. После установки пакета необходимо: Прошить на SD-карту образ ftp://ftp.elvees.com/1892VM14YA/linux/Buildroot/v2.9/mcom02-buildroot-sdcard-v2.9.0-2018-09-21.img.gz или аналогичный, если используется дистрибутив Buildroot версии отличной от 2.9. Процесс записи образа на SD-карту в ОС Linux описан в п.6 документа «Дистрибутив ОС GNU/Linux на базе Buildroot для 1892ВМ14Я.Руководство системного программиста». Запись образа SD-карты в ОС Windows можно выполнить с помощью программы Win32DiskImager (https://sourceforge.net/projects/win32diskimager/). Необходимо использовать загрузчик U-boot с версией, соответствующей версии используемого дистрибутива. Выполнить загрузку ОС с SD-карты: Установить джампер XP4 в положение "uSDcard"; Установить переключатели BOOT (SA1) в положение «011» (загрузка из SPI-Flash); Подключить разъем XS13 к ПЭВМ c помощью кабеля MiniUSB-USB; Запустить терминал COM-порта; Подать питание на отладочный модуль; Остановить автозагрузку U-Boot отправкой любого символа в терминал COM-порта; Выполнить команды: env set mmcdev 1 //устанавливаем загрузку и импорт переменных окружения с SD-карты; saveenv //Сохраняем изменения 8. Перезагрузить отладочный модуль. Прошить необходимый образ SD-карты в eMMC (mmc0) c помощью утилиты mcom02_flash_mmc.py. 1. Подключить отладочный модуль к сети; 2. Подать питание на отладочный модуль; 3. Дождаться появления запроса входа в систему в терминале COM-порта; 4.На ПК запустить процесс прошивки eMMC: mcom_flash_mmc.py <bord ip or host name > </dev/ mmcblk0> <path to img> , где <bord ip or host name > - ip-адрес или сетевое имя отладочного модуля; </dev/ mmcblk0> - имя устройства, в которое будет записан образ. В Вашем случае необходимо использовать /dev/ mmcblk0 т.е. eMMC; <path to img> - путь до образа SD-карты, который необходимо прошить в eMMC. 5. Дождаться окончания процесса прошивки (Verifying... ОК). Проверить работоспособность записанного образа: 1. Выполнить перезагрузку отладочного модуля; 2.Остановить автозагрузку U-Boot отправкой любого символа в терминал COM-порта; 3. Выполнить команды: env set mmcdev 0 //устанавливаем загрузку и импорт переменных окружения с eMMC; saveenv //Сохраняем изменения 4. Перезагрузить отладочный модуль; 5.Убедиться в успешном запуске ОС с eMMC. Возникающие вопросы лучше адресовать напрямую на [email protected], чтобы сократить время ответа. Изменено 10 декабря, 2018 пользователем ELVEES R&D Center Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sweetpirate 0 10 декабря, 2018 Опубликовано 10 декабря, 2018 · Жалоба Здравствуйте, спасибо огромное за столь быстрый и исчерпывающий ответ. Все работает замечательно. Скажите, алгоритм для прошивки NAND Flash идентичный? И последний вопрос по поводу загрузки Linux по TFTP. Установил ip адреса setenv ipaddr <ip_address> и setenv serverip <server_ip_address> Задал параметры запуска Linux setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rwrootwait' Установил команду загрузки setenv bootcmd 'tftpboot; bootz ${loadaddr} - ${fdtcontroladdr}' На хостмашине (Windows 10) запустил TFTP server (TftpServ.exe) выбрал папку к образу SD карты (к разделу Boot). Запустил сервер. Плата виснет и требует рестарта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ELVEES R&D Center 0 10 декабря, 2018 Опубликовано 10 декабря, 2018 · Жалоба 43 minutes ago, sweetpirate said: Скажите, алгоритм для прошивки NAND Flash идентичный? Нет, утилита mcom_flash_mmc.py не подходит для прошивки NAND-Flash. Инструкция по прошивке NAND-Flash представлена в п.5.3.1. документа "Загрузчик U-Boot для 1892ВМ14Я. Руководство пользователя". 47 minutes ago, sweetpirate said: Задал параметры запуска Linux setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rwrootwait' Установил команду загрузки setenv bootcmd 'tftpboot; bootz ${loadaddr} - ${fdtcontroladdr}' На хостмашине (Windows 10) запустил TFTP server (TftpServ.exe) выбрал папку к образу SD карты (к разделу Boot). Запустил сервер. Плата виснет и требует рестарта. Настройку TFTP Вы выполняете правильно. В U-Boot 2017.07.0.14 (из Buildroot v.2.9) возникает ошибка при загрузке через TFTP. Ошибка будет исправлена в следующих выпусках дистрибутива Buildroot. Если Вам требуется загрузка по TFTP, рекомендуем Вам использовать Buildroot v.2.8 и соответствующий загрузчик U-Boot. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sweetpirate 0 10 декабря, 2018 Опубликовано 10 декабря, 2018 · Жалоба Спасибо большое! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sweetpirate 0 11 декабря, 2018 Опубликовано 11 декабря, 2018 · Жалоба Здравствуйте, попытался загрузить Linux по tftp. Столкнулся с проблемой. При попытке загрузиться выдаётся сообщение ARP Retry count exceeded; starting again. Я так понимаю проблема в ftp server-e? Хотя с хост машины он пингуется. А вот боард не пингуется(Destination host unreachable) Буду благодарен за помощь, спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sweetpirate 0 11 декабря, 2018 Опубликовано 11 декабря, 2018 (изменено) · Жалоба Разобрался, проблема была действительно в настройках tftp-сервера. Как я понимаю таким способом можно загрузить только ядро ОС, которое, в свою очередь, запускает файловую систему, расположенную на eMMC или SD устройстве. Что не совсем подходит. Вопрос: возможно ли вместе с ядром ОС загрузить и файловую систему по TFTP, чтобы имелась возможность перепрошить модуль eMMC? Спасибо. Изменено 12 декабря, 2018 пользователем sweetpirate Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ELVEES R&D Center 0 12 декабря, 2018 Опубликовано 12 декабря, 2018 · Жалоба 20 hours ago, sweetpirate said: Вопрос: возможно ли вместе с ядром ОС загрузить и файловую систему по TFTP, чтобы имелась возможность перепрошить модуль eMMC? Можно включить в состав ядра файловую систему в виде диска c файловой системой в ОЗУ. Сделать это можно в конфигураторе ядра Linux (make menuconfig). Там же указывается путь до каталога с rootfs. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sweetpirate 0 17 декабря, 2018 Опубликовано 17 декабря, 2018 (изменено) · Жалоба Здравствуйте, появилось несколько новых вопросов. Каким образом можно запустить Linux на одном arm-ядре? Возможно ли назначить различные модули ОЗУ для каждого ядра? Например, первый модуль ОЗУ используется для Linux, который запущен на 0 ядре. И, следовательно, второй модуль выделен для baremetal приложений, которые работают на втором ядре? И как, в таком случае, возможен обмен данными между Linux и baremetal приложением? И имеется ли доступ к виртуальным регистрам arm ядер из Linux-a? Спасибо. Изменено 17 декабря, 2018 пользователем sweetpirate Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ELVEES R&D Center 0 19 декабря, 2018 Опубликовано 19 декабря, 2018 · Жалоба On 12/17/2018 at 10:26 AM, sweetpirate said: Каким образом можно запустить Linux на одном arm-ядре? Для этого существует параметр запуска ядра nosmp. On 12/17/2018 at 10:26 AM, sweetpirate said: Возможно ли назначить различные модули ОЗУ для каждого ядра? Например, первый модуль ОЗУ используется для Linux, который запущен на 0 ядре. И, следовательно, второй модуль выделен для baremetal приложений, которые работают на втором ядре? Тут возможны два варианта: 1.Можно ограничить использование памяти (SDRAM) с помощью параметра запуска ядра mem=; 2. Можно использовать другой тип памяти (SRAM) для второго ядра. Во втором случае необходимо будет настроить блок NORMPORT микросхемы 1892ВМ14Я в загрузчике U-boot. On 12/17/2018 at 10:26 AM, sweetpirate said: И как, в таком случае, возможен обмен данными между Linux и baremetal приложением? Для этой цели можно использовать блок Mailbox микросхемы 1892ВМ14Я. On 12/17/2018 at 10:26 AM, sweetpirate said: И имеется ли доступ к виртуальным регистрам arm ядер из Linux-a? Не понятно о каких регистрах идет речь. Описанный Вами режим работы потребует существенной доработки загрузчика U-boot. При разработки baremetal-приложения следует учесть тот факт, что контроллер прерываний (GIC) общий для двух ARM-ядер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oldparrot 0 26 декабря, 2018 Опубликовано 26 декабря, 2018 · Жалоба On 12/10/2018 at 1:48 PM, sweetpirate said: Здравствуйте, имеется в наличии процессорный модуль Салют-ЭЛ24ПМ2. Являюсь новичком, поэтому вопросы будут глупые. Интересует вопрос, как можно загрузить Linux/Buildroot во внутреннюю память ПЗУ mmc0? Какие требования к разделам? И что нужно знать, чтобы осуществить это. В мануале это явно не описывается, к сожалению. Либо я со своим скудным опытом не могу понять. Надеюсь на помощь, спасибо. А где покупали модуль и почем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 27 декабря, 2018 Опубликовано 27 декабря, 2018 · Жалоба On 12/26/2018 at 12:27 PM, oldparrot said: А где покупали модуль и почем? На официальном сайте с ними можно связаться, вроде продают ничего не тая и не капризничая, правда подобный модуль может встать в 70К. Много это или мало? Ну для школьника много, а для того кто всерьез хочет разрабатывать на базе этой платформы - вроде нормально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sweetpirate 0 11 января, 2019 Опубликовано 11 января, 2019 · Жалоба Здравствуйте, чтобы не создавать множество тем, буду писать тут. Сразу прошу прощения, если мои вопросы покажутся глупыми для профессионала, тк я только учусь. И так, потихоньку вникаю во всю инфраструктуру. И вопросов становится все больше. На данный момент - это вопрос о совместном запуске Buildroot и baremetal приложений. Первый момент: в руководстве написано, что существуют 2 варианта использования приложений: с возвратом и без возврата в u-boot. При выполнении примеров возврата в u-boot не происходит(тк приложение уходит в бесконечный цикл), т.е. возврат в u-boot происходит только после завершения работы baremetal приложения? И только тогда можно запустить Linux? И второе, существует ли возможность запуска на исполнение baremetal приложений из под Linux-a. (В этом случае Linux будет запущен на CPU0, CPU1 для исполнения baremetal и управления DSP). Т.е. во время работы Linux-a при выполнении определенных условий имеется необходимость загружать различные baremetal-приложения. И еще вопрос, можно ли получить, при разработке ПО, доступ к регистрам CPU и DSP из под Linux? Надеюсь не сильно запутанно описал свои вопросы. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 12 января, 2019 Опубликовано 12 января, 2019 · Жалоба Рискну предположить, что запуск конфигурации, где одно ядро занято Linux, а второе bare metal - это штатная возможность, которая может быть много где описана, не обязательно лишь для этого процессора. Аналогично и с u-boot. Запуск кода на DSP независимо от ОС это вроде штатная возможность, про регистры ничего не скажу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ELVEES R&D Center 0 15 января, 2019 Опубликовано 15 января, 2019 · Жалоба On 1/11/2019 at 2:25 PM, sweetpirate said: Первый момент: в руководстве написано, что существуют 2 варианта использования приложений: с возвратом и без возврата в u-boot. При выполнении примеров возврата в u-boot не происходит(тк приложение уходит в бесконечный цикл), т.е. возврат в u-boot происходит только после завершения работы baremetal приложения? И только тогда можно запустить Linux? При запуске U-Boot (начиная с версии v2017.07.0.7) останавливает ядро CPU1 и отключает его домен питания. Предполагается, что U-Вoot загружает приложение используя только одно ядро CPU. Само приложение может включить домен питания и использовать второе ядро. Вы можете доработать U-Вoot так, чтобы он запускал baremetal-приложение на ядре CPU1. On 1/11/2019 at 2:25 PM, sweetpirate said: И второе, существует ли возможность запуска на исполнение baremetal приложений из под Linux-a. (В этом случае Linux будет запущен на CPU0, CPU1 для исполнения baremetal и управления DSP). Т.е. во время работы Linux-a при выполнении определенных условий имеется необходимость загружать различные baremetal-приложения. Штатно такой возможности нет. Для добавления такой возможности необходимо разработать отдельный драйвер. На данный момент ведётся разработка драйвера Linux для DSP-кластера DELcore-30M. Драйвер позволит запускать задачи на DSP-ядрах и получать результаты в user space. On 1/11/2019 at 2:25 PM, sweetpirate said: И еще вопрос, можно ли получить, при разработке ПО, доступ к регистрам CPU и DSP из под Linux? Доступ к регистрам разрешен из ядра Linux (kernel space). Можно реализовать в драйвере мапировние регистров в пользовательское пространство. Такой подход не рекомендуется, т.к. некорректная работа пользовательского приложения может нарушить работоспособность всей системы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться