serjj1333 0 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба Всем доброго. Вожусь сейчас с ARM Cortex-A9 в составе Altera Cyclone V HPS. Интересует следующее. На борту имеется EMAC Synopsys DesignWare 3504-0 Universal Ethernet MAC в числе двух штук. Разбираюсь с bare metal приложением. У Альтеры на EMAC не нашел ни одного примера по работе с ним и в библиотеки для bare metal (hwlib) тоже ничего к EMAC относящегося не нашел (при этом есть остальные интерфейсы кроме USB). При этом под линухом EMAC разумеется поднимается и в U-Boot тоже. Но ОС на него ставить пока в планы не входило. Вообще хотелось бы узнать насколько это неблагодарное занятие в bare metal поднимать Ethernet драйвер на ARM? И возможно кто-то уже работал с этим Eth контроллером и на него можно достать готовые драйвера? (ARM же он ARM и есть) У меня пока каша в голове по поводу процессора, не программировал его раньше. В общем хотелось бы услышать совета от спецов по ARMу :rolleyes: PS Раньше на простеньком Nios и самописном контроллере делал простой драйвер и надстройку в виде UDP/ARP и всё было просто, а тут такие дебри. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 13 февраля, 2015 Опубликовано 13 февраля, 2015 · Жалоба И возможно кто-то уже работал с этим Eth контроллером и на него можно достать готовые драйвера? (ARM же он ARM и есть) Так ведь u-boot и Linux есть в качестве примера. Драйвер u-boot вряд ли стоит рассматривать серьёзно, но для старта и он сойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 13 февраля, 2015 Опубликовано 13 февраля, 2015 (изменено) · Жалоба Но ОС на него ставить пока в планы не входило. Вообще хотелось бы узнать насколько это неблагодарное занятие в bare metal поднимать Ethernet драйвер на ARM? Сейчас вы тут огребете по самое... в смысле, что без линуха поднимать это дело глупо, тупо и безнадежно, займет годы и пр... приготовьтесь Занятие и вправду, неблагодарное, сам поднимал с нуля MX6... Впечатление мощное А если серьезно, описание от АРМ - это очень мучительное чтиво, помню по контроллеру кэша L2. Думаю проше будет "выколупать" из убута, действительно. Поищите, может есть какой либо SDK, он мне очень помог в освоении MX6. Изменено 13 февраля, 2015 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 14 февраля, 2015 Опубликовано 14 февраля, 2015 · Жалоба Коллеги, спасибо что отозвались. в смысле, что без линуха поднимать это дело глупо, тупо и безнадежно Тут дело такое, у меня изделие должно полностью грузиться в пределах секунды :05: Линукс разве так умеет? И какие есть альтернативы bare metal для очень быстрой загрузки проца? Так ведь u-boot и Linux есть в качестве примера. Драйвер u-boot вряд ли стоит рассматривать серьёзно, но для старта и он сойдет Там беда в том, что их там целая куча под разные семейства-конфигурации-вендоров, при этом разной степени вменяемости (где-то init, packet_read, packet_write, а где-то тонна всякого хлама) У меня есть вариант перенести на проц старое решение с Nios'a с самодельным контроллером, т.к. у меня Eth только для отладки нужен. Но хотелось всё таки со штатным EMAC разобраться, а то их там целых 2 и как-то странно свой ставить. И раз про ОС речь зашла: насколько это вообще жизненная идея делать bare metal проект на ARM? Основные задачи - обработка сигналов, управление, решения, обмен с FPGA. Высокоуровневые сервисы а-ля web, snmp не нужны. Высокоскоростных интерфейсов тоже не планируется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 14 февраля, 2015 Опубликовано 14 февраля, 2015 · Жалоба И раз про ОС речь зашла: насколько это вообще жизненная идея делать bare metal проект на ARM? Кстати, тоже интересно. Чем "взрослый" проц отличается от МК? На МК (STM32, Coldfire V2) делал драйвер Ethernet (практически с нуля, по мануалу) и прикручивал к lwip без ОС. Чем проц хуже? Настройка кэша? Отсутствие вменяемой документации? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 14 февраля, 2015 Опубликовано 14 февраля, 2015 (изменено) · Жалоба Чем проц хуже? Настройка кэша? Отсутствие вменяемой документации? Ничем не хуже, но: 1) Отсутствие ПУТЕВОЙ документации, я не беру во внимание NDAшные камни - тут вааще весело.. 2) Отсутствие примеров программ, библиотек, и тп. Бывают SDK, но очень урезанные, приходится пилить и пилить... 3) Сам камень по-себе намного сложнее (настройка стартап файла, конфигурация DCD загрузки, тактировки, кэши, MMU... в некоторых случаях требуется полная переконфигурация линкера). И самое интересное - без ПРАВИЛЬНОЙ настройки всего этого, проц либо вообще не запускается, глючит или работает как черепаха. В СТМ о таком и не догадывался. 4) почти не у кого спросить, в чем у моя проблема, т.к. все либо на линуксах, либо вообще о таких камнях только слышали отдаленно, последних больше. 5) Несколько раз приходилось копаться в линуксовых исходниках, т.к. информации просто нигде нет, ни в SDK, ни в даташите. А ковыряние в линуксе - это отдельная песня, кто в теме - тот знает. Вообщем, как-то так... По себе могу сказать, пока поднимал такой камень, раза 3 хотел плюнуть на него, и забросить эту плату так далеко, чтоб не вспоминать о ней, но здравый смысл был сильнее, и не давал мне покоя, пока ее не запустил :08: Дорогу осилит идущий, только потребуется много терпения и сил. Удачи!! ЗЫ. ТСу скажу, приступайте к драйверу сетевухи, только если разобрались с самим процом, настройкой портов ВВ для альтерн. функций, кэшами, MMU, прерываниями, контроллером памяти. Если есть какая-то хоть простенькая отладка(типа printf через уарт), иначе это будет мартышкин труд. При работе с буферами и конфигурационными записями сетевухи, учитывайте, что они должны быть в некэшируемой области памяти! Тут дело такое, у меня изделие должно полностью грузиться в пределах секунды Линукс разве так умеет? У TimeSys линукса есть какая-то приблуда, которая кеширует образы закрузки на диск, а потом их загружает прямо в память и запускает. На счет секунды не знаю, но за 2-3сек загружает точно. Это на случай, если с камнем не справитесь :laughing: Изменено 14 февраля, 2015 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 14 февраля, 2015 Опубликовано 14 февраля, 2015 · Жалоба ЗЫ. ТСу скажу, приступайте к драйверу сетевухи, только если разобрались с самим процом, настройкой портов ВВ для альтерн. функций, кэшами, MMU, прерываниями, контроллером памяти. Я таки извиняюсь, работал с чем-то похожим, как я понимаю, а именно с Zynq от Xilinx. И что бы там написать baremetal программку для общения через Ethernet мне не приходилось все это делать. Да и вообще, работать с ним без операционной системы ни капли не сложнее чем с Microblaze (аналог Nios). Там вся периферия (ddr, клоки...) конфигурируется автоматически, на основе параметров заданных в визарде. А работа с конкретными устройствами описана в небольшой библиотеке драйверов для baremetal приложений. У альтеры разве не тоже самое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 14 февраля, 2015 Опубликовано 14 февраля, 2015 · Жалоба Видел кто-то хвастал линуксом который грузится за доли секунды от начала, до консоли... Ведь совершенно не обязательно поднимать все службы... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 14 февраля, 2015 Опубликовано 14 февраля, 2015 · Жалоба Видел кто-то хвастал линуксом который грузится за доли секунды от начала, до консоли... Наверно это как раз тот линукс, про который я писал выше. Там вся периферия (ddr, клоки...) конфигурируется автоматически, на основе параметров заданных в визарде. А работа с конкретными устройствами описана в небольшой библиотеке драйверов для baremetal приложений. Ну тогда вам просто повезло с процом, в моем случае никаких визардов и в помине не было :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 14 февраля, 2015 Опубликовано 14 февраля, 2015 · Жалоба Там беда в том, что их там целая куча под разные семейства-конфигурации-вендоров, при этом разной степени вменяемости (где-то init, packet_read, packet_write, а где-то тонна всякого хлама) Ну а в данном случае как? И раз про ОС речь зашла: насколько это вообще жизненная идея делать bare metal проект на ARM? Основные задачи - обработка сигналов, управление, решения, обмен с FPGA. Высокоуровневые сервисы а-ля web, snmp не нужны. Высокоскоростных интерфейсов тоже не планируется. Нормальная идея: ставить Linux просто из тех соображений, что железо это позволяет сделать, тоже неразумно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 14 февраля, 2015 Опубликовано 14 февраля, 2015 · Жалоба ЗЫ. ТСу скажу, приступайте к драйверу сетевухи, только если разобрались с самим процом, настройкой портов ВВ для альтерн. функций, кэшами, MMU, прерываниями, контроллером памяти. Если есть какая-то хоть простенькая отладка(типа printf через уарт), иначе это будет мартышкин труд. При работе с буферами и конфигурационными записями сетевухи, учитывайте, что они должны быть в некэшируемой области памяти! Ага разобрался с загрузкой, инициализацией MMU, прерываниями и подключением к FPGA, взялся за сетевуху. Есть и отладка и кастомная платка, на них и тружусь. Вообщем, как-то так... По себе могу сказать, пока поднимал такой камень, раза 3 хотел плюнуть на него, и забросить эту плату так далеко, чтоб не вспоминать о ней, но здравый смысл был сильнее, и не давал мне покоя, пока ее не запустил Тоже иногда хочется утопить ее где нибудь... Я таки извиняюсь, работал с чем-то похожим, как я понимаю, а именно с Zynq от Xilinx. И что бы там написать baremetal программку для общения через Ethernet мне не приходилось все это делать. Да и вообще, работать с ним без операционной системы ни капли не сложнее чем с Microblaze (аналог Nios). Там вся периферия (ddr, клоки...) конфигурируется автоматически, на основе параметров заданных в визарде. А работа с конкретными устройствами описана в небольшой библиотеке драйверов для baremetal приложений. У альтеры разве не тоже самое? Кастомизация у альтеры слабая, приходится много своими руками делать, и документация не на все есть. Ну а в данном случае как? Пока ничего путного не нашел для альтерного сока. Нормальная идея: ставить Linux просто из тех соображений, что железо это позволяет сделать, тоже неразумно. Радует, а то пока про bare metal и ARM какие-то панические отзывы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 15 февраля, 2015 Опубликовано 15 февраля, 2015 · Жалоба Ага разобрался с загрузкой, инициализацией MMU, прерываниями и подключением к FPGA, взялся за сетевуху. Есть и отладка и кастомная платка, на них и тружусь. Радует, а то пока про bare metal и ARM какие-то панические отзывы Тогда полдела уже сделано, я в основном по-первости и буксовал, дальше все пошло более-менее нормально. Из линукса по сетевке все-таки придется кое-что выдрать, попробуйте, по началу сложно, но все решаемо. Как правило, смотрите в каталоге Arch и Drivers. Главное - не слушайте мнение "толпы", что все сложно и безнадежно B) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexen 0 18 февраля, 2015 Опубликовано 18 февраля, 2015 · Жалоба Возможно, не совсем в тему: на TI DM365 отдельным разработчикам удалось получить запуск Linux за 0.6 с - http://www.makelinux.com/emb/fastboot/dm365 У нас получились более скромные результаты - порядка 8 с. Основное ограничение, оказывающее влияние на время запуска, - медленное чтение образа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 19 февраля, 2015 Опубликовано 19 февраля, 2015 · Жалоба Возможно, не совсем в тему: на TI DM365 отдельным разработчикам удалось получить запуск Linux за 0.6 с Спасибо за любопытную инфу, погляжу. У нас получились более скромные результаты - порядка 8 с А вы с какого носителя загружались? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться