реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Загрузка i.MX6D с uSD, на примере Wandboard
AVR
сообщение Jan 24 2016, 17:28
Сообщение #1


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Очень интересует процесс загрузки процессора i.MX6S/D/Q с micro-SD карты памяти.
Например Wandboard загружается с uSD карточки у которой простая msdos таблица разделов, а на первом разделе тупо FAT32 и лежит загрузчик. Но это плата Wandboard.

Вопрос: если сделать плату на базе i.MX6S/D/Q (у них вроде одинаковая распиновка), напаять туда проц + LPDDR память и тупо подсунуть такую загрузочную micro-SD - грузиться будет?
Я имею ввиду, является ли это встроенным в сам процессор функционалом, или требуется адаптировать некий дополнительный загрузчик и записывать его в другой вид памяти?


--------------------
Go to the top of the page
 
+Quote Post
Kaligooola
сообщение Jan 25 2016, 15:21
Сообщение #2


Brubel
***

Группа: Свой
Сообщений: 321
Регистрация: 17-11-06
Из: Oudergem
Пользователь №: 22 444



Если вы имеете ввиду аппаратные вещи, то в этом процессоре можно выбирать откдуа грузится, то это выбирается значением на контатктах во время загрузки процессора.
Есть два контакта BOOT[1:0] которые отвечают за выбор, того откуда идёт выбор загрузочного устройства - из внутренних электрических прожиагемых "предохранителей", SERIAL или задается отдельной группой контактов на плате.

Мы на своей плате делали надписи на слое шелкографии, что за что отвечает.


Прикрепленное изображение

Прикрепленное изображение


По отличию запуска процессоров у Freescale/NXP был документ по правильному подключению питания процессоров. И Для Q и D есть отличия в схеме питания.

Но в графе для iomux tool указано что регистры настройков выводов для Q и D идентичны.
Правда сборкой проекта загрузчика я не занимался и подводных камней не знаю.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jan 25 2016, 18:15
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Kaligooola @ Jan 25 2016, 18:21) *
Правда сборкой проекта загрузчика я не занимался и подводных камней не знаю.

Спасибо за отклик! Про эти выводы выбора загрузки я в курсе. Буду ждать еще отзывов!

Вы можете уточнить этот момент у тех кто занимался софтом? Вся соль в том что можно ли рассчитывать что купив абсолютный новый проц у поставщика и подсунув ему uSD флэшку то я увижу его загружающимся? Или мне требуется заложить какой-то интерфейс загрузки и прошивки, может память какую-то?


--------------------
Go to the top of the page
 
+Quote Post
_3m
сообщение Jan 25 2016, 19:20
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(AVR @ Jan 25 2016, 21:15) *
Вся соль в том что можно ли рассчитывать что купив абсолютный новый проц у поставщика и подсунув ему uSD флэшку то я увижу его загружающимся? Или мне требуется заложить какой-то интерфейс загрузки и прошивки, может память какую-то?

Загрузится если на флэшке будет загрузочный образ с настройкой под конфигурацию памяти в данной плате. Если настройки контроллера памяти не соответствуют запаянным чипам памяти SDRAM - зависнет. Интерфейс загрузки лучше заложить. Обычно грузят через USB OTG.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jan 25 2016, 19:29
Сообщение #5


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(_3m @ Jan 25 2016, 22:20) *
Интерфейс загрузки лучше заложить. Обычно грузят через USB OTG.

Неужели просто разъем USB-OTG сделать на плате и оно будет грузить с USB-флэшки, у которой первый раздел FAT32 с загрузчиком? До чего дошел прогресс (у меня лежит на столе Wandboard для примера, но я не знаю какие подготовительные работы были проведены чтобы оно загружалось так просто и удобно), мне главное убедиться что достаточно например запаять uSD разъем и USB-OTG и новый с завода проц будет загружаться без каких-либо проблем...
В принципе, я уже понял ответы, тему можно закрыть, всё выяснил.


--------------------
Go to the top of the page
 
+Quote Post
_3m
сообщение Jan 26 2016, 06:23
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(AVR @ Jan 25 2016, 22:29) *
Неужели просто разъем USB-OTG сделать на плате и оно будет грузить с USB-флэшки, у которой первый раздел FAT32 с загрузчиком?

Через USB-OTG с флэшки грузиться не будет. Будет коннектиться с Mfgtool
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 27 2016, 10:03
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AVR @ Jan 25 2016, 22:29) *
Неужели просто разъем USB-OTG сделать на плате и оно будет грузить с USB-флэшки, у которой первый раздел FAT32 с загрузчиком?


На счет всяких бордов незнаю, но этот проц грузится только со специально подготовленной сд-карты или нанд-флеша.
Никаких ФАТ16\32 , ЕХТ и пр. не будет грузиться, если есть такие функции где-то, то только если сначала грузится бут с поддержкой ФС и потом...

СД-карту можно подготовить программой cfimager

Цитата(_3m @ Jan 26 2016, 09:23) *
Через USB-OTG с флэшки грузиться не будет. Будет коннектиться с Mfgtool


Mfgtool - просто заливает бинарник в память и запускает его. Дальше все зависит от того, что заливает, как правило, убут загружает специальный линукс, который уже прошивает нанд или сд-карту.

Цитата(AVR @ Jan 25 2016, 22:29) *
достаточно например запаять uSD разъем и USB-OTG и новый с завода проц будет загружаться без каких-либо проблем...


Если нужный софт подготовлен, то этих разъемов достаточно, хотя лучще еще вывести уарт1 для отладки, если что-то пошло не так laughing.gif
Go to the top of the page
 
+Quote Post
AVR
сообщение Jan 27 2016, 10:39
Сообщение #8


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(mantech @ Jan 27 2016, 13:03) *
На счет всяких бордов незнаю, но этот проц грузится только со специально подготовленной сд-карты или нанд-флеша.
Никаких ФАТ16\32 , ЕХТ и пр. не будет грузиться, если есть такие функции где-то, то только если сначала грузится бут с поддержкой ФС и потом...
СД-карту можно подготовить программой cfimager

Ага! Я так и знал что не всё так просто. Спасибо за комментарий!

Цитата(mantech @ Jan 27 2016, 13:03) *
Mfgtool - просто заливает бинарник в память и запускает его. Дальше все зависит от того, что заливает, как правило, убут загружает специальный линукс, который уже прошивает нанд или сд-карту.
Если нужный софт подготовлен, то этих разъемов достаточно, хотя лучще еще вывести уарт1 для отладки, если что-то пошло не так laughing.gif

В общем, USB-OTG ставлю в обязательном порядке, UART - это святое и будет в первую очередь sm.gif
Буду максимально внимателен со всеми этими выводами и загрузочными битами!


--------------------
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jan 27 2016, 12:48
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(AVR @ Jan 25 2016, 20:29) *
В принципе, я уже понял ответы, тему можно закрыть, всё выяснил.

Как ТопикСтартеру Вам флаг в руки, но мне до сих пор не ясно, КАКАЯ и ОТКУДА исполняется программа загрузчика, понимающая, что такое SDIO интерфейс, как читать SD карты, и какой именно файл/образ нужно оттуда прочесть и запустить.
Go to the top of the page
 
+Quote Post
_3m
сообщение Jan 27 2016, 15:00
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(KnightIgor @ Jan 27 2016, 15:48) *
Как ТопикСтартеру Вам флаг в руки, но мне до сих пор не ясно, КАКАЯ и ОТКУДА исполняется программа загрузчика, понимающая, что такое SDIO интерфейс, как читать SD карты, и какой именно файл/образ нужно оттуда прочесть и запустить.

ОТКУДА - из встроенной в чип ROM. Программисты freescale написали загрузчик который на заводе отливают в кремнии (там есть баги, кстати). По сбросу ARM всегда выполняет код из этой ROM.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jan 29 2016, 15:09
Сообщение #11


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(_3m @ Jan 27 2016, 18:00) *
ОТКУДА - из встроенной в чип ROM. Программисты freescale написали загрузчик который на заводе отливают в кремнии (там есть баги, кстати). По сбросу ARM всегда выполняет код из этой ROM.

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


--------------------
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 29 2016, 15:26
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(AVR @ Jan 29 2016, 19:09) *
Спасибо за информацию, для меня это критически важный момент. В принципе я был в курсе, но решил перестраховаться и еще раз убедиться в этой информации, я знаю на этом форуме есть те кто реально делал свои платы на базе iMX6.

А скоро прибавится. У меня два дизайна на нем же маячат.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 29 2016, 18:26
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AVR @ Jan 29 2016, 18:09) *
Спасибо за информацию, для меня это критически важный момент. В принципе я был в курсе, но решил перестраховаться и еще раз убедиться в этой информации, я знаю на этом форуме есть те кто реально делал свои платы на базе iMX6.


Еще не забудте про пару моментов:
1) Выбор загрузки идет через программирование фьюзов или резюки на порту EIM. Если не хотите связываться с однократно программируемыми фьюзами, на плате заложите эти резюки.
2) потребляемый ток от батарейки часов от 40 до 80мкА !!! Сначала не учел это - батарейки разряжались за 2 месяца crying.gif
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 1 2016, 16:17
Сообщение #14


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(Kaligooola @ Jan 25 2016, 18:21) *
Есть два контакта BOOT[1:0] которые отвечают за выбор, того откуда идёт выбор загрузочного устройства - из внутренних электрических прожиагемых "предохранителей", SERIAL или задается отдельной группой контактов на плате.
Мы на своей плате делали надписи на слое шелкографии, что за что отвечает.

Прикрепленное изображение

Про выводы BOOT_MODE[1:0] я понял - туда первым делом джамперы.
Однако про SW1 Boot не совсем понял - где про это в документации?

Допустим я ставлю BOOT_MODE[1:0] = 01 - загрузка от USB-OTG (на ПК появится виртуальный COM-порт???)
а если BOOT_MODE[1:0] = 10 - то что? По умолчанию с завода идет eFuse с BT_FUSE_SEL=0 и таким образом все настройки берутся опираясь на то как выбраны "GPIO overrides" (это 32 вывода)?

Вопросы:
1) На Вашей схеме SW1 Boot это 8 выводов хотя полный набор 32 бит. Почему? Из какой части документации эти SW1 Boot взяты?
2) Я вижу что в Wandboard в схеме wb-edm-imx6-rev-c1.pdf есть пример "Boot Config Select" и там 32 линии подключены! Однако в документации IMX6SDLRM.pdf в Table 8-3. GPIO Override Contact Assignments задействованы ну вообще другие выводы нежели в Wandboard. Например EIM_DA0 это BOOT_CFG1[0], а в Wandboard вообще EIM_DA0 не используется зато другие задействованы. Меня это очень напрягает. Я могу повторить схему как мартышка без понимания, но хотел бы понять sm.gif
3) То что эти настроечные "GPIO overrides" сидят на тех же линиях что и память меня беспокоит - их надо стараться сделать как можно короче? Или одинаковыми по длине?


--------------------
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 3 2016, 18:50
Сообщение #15


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AVR @ Feb 1 2016, 19:17) *
выбраны "GPIO overrides" (это 32 вывода)?


Нет. Это EIM_DA0 - DA15.

Какую память вы туда подключаете?? Для DDR используются другие ноги.

Цитата(AVR @ Feb 1 2016, 19:17) *
Про выводы BOOT_MODE[1:0] я понял - туда первым делом джамперы.


Зачем тут джамперы, если предполагается загрузка только с усб или сд-карты??
boot0 садим на землю, boot1 через резюк 10к на 3В или к SNVS. Последнее как-бы по даташиту, но добавляет потребление по линии часовой батарейки, я соединял с 3В работает не хуже, а батарейку жрет меньше laughing.gif

Цитата(AVR @ Feb 1 2016, 19:17) *
а если BOOT_MODE[1:0] = 10 - то что?


Это как раз то, что я использую.

Первичная загрузка с усб, если нет - с первого бут-устройства(SD1).

Линии EIM:
6,7,9,13-VCC(3V)
3,4,5,7,8,10,11,12,14,15 - GND
через резюки 10к. Остальные не подключены никуда.

Цитата(AVR @ Jan 24 2016, 20:28) *
Например Wandboard загружается с uSD карточки у которой простая msdos таблица разделов, а на первом разделе тупо FAT32 и лежит загрузчик. Но это плата Wandboard.


Ну и мой вопрос, так сказать, "о птичках". Я так понял, что фриску используете под линуксом, почему именно этот проц? Ведь для линуксовых систем есть более продвинутые и дешевые процы, например А20 и т.д. от аллвиннера?? Периферии там даже больше, чем в МХ6...

Сообщение отредактировал mantech - Feb 3 2016, 18:50
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 4 2016, 06:27
Сообщение #16


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(mantech @ Feb 3 2016, 21:50) *
Ну и мой вопрос, так сказать, "о птичках". Я так понял, что фриску используете под линуксом, почему именно этот проц? Ведь для линуксовых систем есть более продвинутые и дешевые процы, например А20 и т.д. от аллвиннера?? Периферии там даже больше, чем в МХ6...

На A20 насколько сложно сделать свою плату? iMX6 выбран исключительно потому что с ним приходилось работать (Wandboard, хотя у меня навалом и других отладочных плат с другими процами), и потому что он имеет порт параллельного ввода (IPU_CSI) который мне очень нужен, остальная периферия не нужна. Да, я использую Linux, и по слухам (не уверен насколько это так) у аллвиннера не супер с документацией, и если это так, то осуществлять ввод видеоданных от ПЛИС там это может оказаться сложнее чем у iMX6. В любом случае менять что то уже поздно, сроки горят, лишь бы хоть на iMX6 заработало - нет уверенности с нашим опытом.

Про остальные сведения - спасибо, я посмотрю, видимо я что-то не так понял.


--------------------
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 4 2016, 07:18
Сообщение #17


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AVR @ Feb 4 2016, 09:27) *
На A20 насколько сложно сделать свою плату?


Думаю, не сложнее, чем с МХ6. Хотя сам предпочитаю использовать готовые SOMы, т.к. соотношение цена-трудоемкость на их стороне...

На счет доков... Мм ну если я нашел достаточное кол-во доков для стандалона, без осей(bare metal), то для линукса их хоть завались biggrin.gif

ЗЫ. Хотя наврал немножко, с нандом там напряг есть - только готовый бинарь от производителя, без исходников и т.п. Хотя нанд не использую, больно он геморный sad.gif

Сообщение отредактировал mantech - Feb 4 2016, 07:21
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 4 2016, 07:45
Сообщение #18


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(mantech @ Feb 4 2016, 10:18) *
Думаю, не сложнее, чем с МХ6. Хотя сам предпочитаю использовать готовые SOMы, т.к. соотношение цена-трудоемкость на их стороне...

Тоже предпочитаю, однако задача настолько специфическая а требования к габаритам таковы, что сделать свою плату - единственный путь.


--------------------
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01541 секунд с 7
ELECTRONIX ©2004-2016