Перейти к содержанию
    

Очень интересует процесс загрузки процессора i.MX6S/D/Q с micro-SD карты памяти.

Например Wandboard загружается с uSD карточки у которой простая msdos таблица разделов, а на первом разделе тупо FAT32 и лежит загрузчик. Но это плата Wandboard.

 

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

Я имею ввиду, является ли это встроенным в сам процессор функционалом, или требуется адаптировать некий дополнительный загрузчик и записывать его в другой вид памяти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вы имеете ввиду аппаратные вещи, то в этом процессоре можно выбирать откдуа грузится, то это выбирается значением на контатктах во время загрузки процессора.

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

 

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

 

post-22444-1453733842_thumb.jpg

post-22444-1453733987_thumb.jpg

 

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

 

Но в графе для iomux tool указано что регистры настройков выводов для Q и D идентичны.

Правда сборкой проекта загрузчика я не занимался и подводных камней не знаю.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правда сборкой проекта загрузчика я не занимался и подводных камней не знаю.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Загрузится если на флэшке будет загрузочный образ с настройкой под конфигурацию памяти в данной плате. Если настройки контроллера памяти не соответствуют запаянным чипам памяти SDRAM - зависнет. Интерфейс загрузки лучше заложить. Обычно грузят через USB OTG.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интерфейс загрузки лучше заложить. Обычно грузят через USB OTG.

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

В принципе, я уже понял ответы, тему можно закрыть, всё выяснил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели просто разъем USB-OTG сделать на плате и оно будет грузить с USB-флэшки, у которой первый раздел FAT32 с загрузчиком?

Через USB-OTG с флэшки грузиться не будет. Будет коннектиться с Mfgtool

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели просто разъем USB-OTG сделать на плате и оно будет грузить с USB-флэшки, у которой первый раздел FAT32 с загрузчиком?

 

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

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

 

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

 

Через USB-OTG с флэшки грузиться не будет. Будет коннектиться с Mfgtool

 

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

 

достаточно например запаять uSD разъем и USB-OTG и новый с завода проц будет загружаться без каких-либо проблем...

 

Если нужный софт подготовлен, то этих разъемов достаточно, хотя лучще еще вывести уарт1 для отладки, если что-то пошло не так :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

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

Если нужный софт подготовлен, то этих разъемов достаточно, хотя лучще еще вывести уарт1 для отладки, если что-то пошло не так :laughing:

В общем, USB-OTG ставлю в обязательном порядке, UART - это святое и будет в первую очередь :)

Буду максимально внимателен со всеми этими выводами и загрузочными битами!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе, я уже понял ответы, тему можно закрыть, всё выяснил.

Как ТопикСтартеру Вам флаг в руки, но мне до сих пор не ясно, КАКАЯ и ОТКУДА исполняется программа загрузчика, понимающая, что такое SDIO интерфейс, как читать SD карты, и какой именно файл/образ нужно оттуда прочесть и запустить.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как ТопикСтартеру Вам флаг в руки, но мне до сих пор не ясно, КАКАЯ и ОТКУДА исполняется программа загрузчика, понимающая, что такое SDIO интерфейс, как читать SD карты, и какой именно файл/образ нужно оттуда прочесть и запустить.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А скоро прибавится. У меня два дизайна на нем же маячат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Еще не забудте про пару моментов:

1) Выбор загрузки идет через программирование фьюзов или резюки на порту EIM. Если не хотите связываться с однократно программируемыми фьюзами, на плате заложите эти резюки.

2) потребляемый ток от батарейки часов от 40 до 80мкА !!! Сначала не учел это - батарейки разряжались за 2 месяца :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

post-22444-1453733842_thumb.jpg

Про выводы 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 не используется зато другие задействованы. Меня это очень напрягает. Я могу повторить схему как мартышка без понимания, но хотел бы понять :)

3) То что эти настроечные "GPIO overrides" сидят на тех же линиях что и память меня беспокоит - их надо стараться сделать как можно короче? Или одинаковыми по длине?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выбраны "GPIO overrides" (это 32 вывода)?

 

Нет. Это EIM_DA0 - DA15.

 

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

 

Про выводы BOOT_MODE[1:0] я понял - туда первым делом джамперы.

 

Зачем тут джамперы, если предполагается загрузка только с усб или сд-карты??

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

 

а если 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к. Остальные не подключены никуда.

 

Например Wandboard загружается с uSD карточки у которой простая msdos таблица разделов, а на первом разделе тупо FAT32 и лежит загрузчик. Но это плата Wandboard.

 

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

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...