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

    

MSEL/BSEL в Cyclone 5 SoC

Доброе утро,

 

запутался, пожалуйста, подскажите.

 

Хочу, чтобы у Cyclone 5 SoC всегда при подаче питания грузил линукс в HPS из 2-го блока с SDCARD (вначале убут, и потом сам линукс), а FPGAшная часть всегда грузилась только из линукса копированием в /dev/fpga0 и чтобы не было ни jtaga ни еще чего на плате.

 

Скажите, пожалуйста, правильно ли я понимаю, что мне надобно выставить в этом случае MSEL=00000, BSEL=101, но никак не могу понять где указывается, что грузиться надо не с 0-гого блока (MBR) а со второго, пожалуйста, подскажите? И скажите, пожалуйста, правильно ли я понимаю, что если, например, BSEL[1]=0, то это означает, что BSEL1 надо воткнуть в GND?

 

Спасибо!

 

ИИВ

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


Ссылка на сообщение
Поделиться на другие сайты
Хочу, чтобы у Cyclone 5 SoC всегда при подаче питания грузил линукс в HPS из 2-го блока с SDCARD (вначале убут, и потом сам линукс), а FPGAшная часть всегда грузилась только из линукса копированием в /dev/fpga0 и чтобы не было ни jtaga ни еще чего на плате.

в нестираемом начальном загрузчике прописаны такие параметры и их изменить невозможно:

The SD/MMC controller supports two booting modes:
• MBR (partition) mode
• The boot image is read from a custom partition (0xA2)
• The first image is located at the beginning of the partition, at offset 0x0
• Start address = partition start address
• Raw mode
• If the MBR signature is not found, SD/MMC driver assumes it is in raw mode.
• The boot image data is read directly from sectors in the user area and is located at the first sector of
the SD/MMC.
• The first image is located at the start of the memory card, at offset 0
• Start address = 0

 

всё, что можно сделать, положить в 0-й блок загрузчик, который будет тащить загрузчик со 2-ого блока и тыды - зачем, не знаю, но условие выполнены

 

И скажите, пожалуйста, правильно ли я понимаю, что если, например, BSEL[1]=0, то это означает, что BSEL1 надо воткнуть в GND?

да, строго на gnd

если плата для отладки, то есть смысл заложить блок выключателей и обвесить резисторами..

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


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

Спасибо, Jury093!!!

 

да, строго на gnd

если плата для отладки, то есть смысл заложить блок выключателей и обвесить резисторами..

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

 

всё, что можно сделать, положить в 0-й блок загрузчик, который будет тащить загрузчик со 2-ого блока и тыды - зачем, не знаю, но условие выполнены

скажите, пожалуйста, правильно ли я понимаю, что если я эту SD карту больше нигде не планирую использовать и вынимать только для загрузки нового варианта линукса и прошивки, то можно и в MBR положить?

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


Ссылка на сообщение
Поделиться на другие сайты
скажите, пожалуйста, правильно ли я понимаю, что если я эту SD карту больше нигде не планирую использовать и вынимать только для загрузки нового варианта линукса и прошивки, то можно и в MBR положить?

не знаю, что вы там собираетесь раскладывать, но стандартный путь такой

- нарезаете разделы

- накидываете загрузчики

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

вот статья для полного понимания от des333

https://habrahabr.ru/company/metrotek/blog/235707/

процесс нарезки uSD описан там в "Создание SD-карты"

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


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

...

вот статья для полного понимания от des333

так я именно по этому пути и собирался идти и это и понятно, но мое непонимание лежит именно в разводке ибо я сам плату с таким SoCом сейчас пытаюсь развести. И для этой разводки спрашивал, чтобы убедиться верно ли что если я выставлю BOOTSEL=101, MSEL=00000 и CLKSEL=00, то все будет именно так, как в статье des333.

 

Просто сами переключатели или даже перемычки-резисторы 0402 для всех BOOTSEL, MSEL и CLKSEL у меня на плату из-за их размеров не помещаются, поэтому хочу наверняка их правильно соединить, чтобы место на плате сэкономить.

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


Ссылка на сообщение
Поделиться на другие сайты
так я именно по этому пути и собирался идти и это и понятно, но мое непонимание лежит именно в разводке ибо я сам плату с таким SoCом сейчас пытаюсь развести. И для этой разводки спрашивал, чтобы убедиться верно ли что если я выставлю BOOTSEL=101, MSEL=00000 и CLKSEL=00, то все будет именно так, как в статье des333.

если ваше железо совпадает с тем, что в статье, то вполне все будет работать..

по настройкам, открываете даташит на свой камень и ищете таблицы с конфигурациями, например для BSEL page 3477 "Boot select"

0x5 3.3 V SD/MMC flash memory with internal transceiver

т.е. ваши 101 правильные для загрузки с uSD/SD с питанием 3v3

оставшиеся msel и clksel выставляете аналогично в соответствие с вашими желаниями, согласно тому же даташиту

 

Просто сами переключатели или даже перемычки-резисторы 0402 для всех BOOTSEL, MSEL и CLKSEL у меня на плату из-за их размеров не помещаются, поэтому хочу наверняка их правильно соединить, чтобы место на плате сэкономить.

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация