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

Allwinner A10 и др. Прошивка NAND своим загрузчиком

4 минуты назад, mantech сказал:

Не понял, в чем вопрос, мне нужно физически записать в нанд загрузчик 32Кбайта размером. В общем случае - это boot0. Только это не стандартный бут0, а измененный мной. В данный момент он записан на сд карту, со смещением, как указано и стартует нормально. Но мне хотелось бы не ставить специально сд карту для бута и еще одну с фат32 для всех остальных программ, а загрузчик записать в нанд, т.к. он физически есть на плате процессора. Но как собственно записать в нанд я не знаю...

Прошу прощения, но лучше я начну сначала.

Мой загрузчик находится в SPI0 (припаянная микросхема). Чтобы его загрузить, я создал особый загрузчик на SD, где инициализировал аппарат SPI (и дополнительные интерфейсы). Конечный загрузчик в микросхему на SPI0 перекачал через интерфейс UART. Аналогично вместо SPI можно поставить NAND (хотя мне никогда не требовалось).

Другой способ вряд ли получится, потому как будет порождение самим собой самого себя.

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


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

36 minutes ago, TrestConsom said:

Чтобы его загрузить, я создал особый загрузчик на SD, где инициализировал аппарат SPI (и дополнительные интерфейсы).

Беда в том, что интерфейс NAND несколько сложнее SPI-флешки, а оллвиннеровский u-boot, если я правильно помню, не умеет писать boot0 и т.п.

ИМХО, проще один раз залить тот же самый u-boot в NAND (можно даже на винде под виртуалкой, только тулзы чуть скорректировать придется),

а затем грузить приложение его средствами.

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


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

39 минут назад, TrestConsom сказал:

Прошу прощения, но лучше я начну сначала.

Мой загрузчик находится в SPI0 (припаянная микросхема). Чтобы его загрузить, я создал особый загрузчик на SD, где инициализировал аппарат SPI (и дополнительные интерфейсы). Конечный загрузчик в микросхему на SPI0 перекачал через интерфейс UART. Аналогично вместо SPI можно поставить NAND (хотя мне никогда не требовалось).

Другой способ вряд ли получится, потому как будет порождение самим собой самого себя.

SPI - Это несколько другое, с нандом засада в том, что если писать свой прошивальщик, необходимо иметь исходники или документацию по встроенному нанд-контроллеру, которой нет. Писать "пограммный" контроллер "ногодрыгом" - тоже нет большого желания. 

Кстати, SPI-шную флешку какую используете, и прошивка там тоже с 8К смещением нужна или прямо с 0го адреса? Заголовок загрузчика (eGON .... BT0) и контрольные суммы такие же, как на сд-карте?

3 минуты назад, aaarrr сказал:

проще один раз залить тот же самый u-boot в NAND (можно даже на винде под виртуалкой, только тулзы чуть скорректировать придется),

а затем грузить приложение его средствами.

Вот честно говоря, этого бы хотелось меньше всего...

47 минут назад, TrestConsom сказал:

Конечный загрузчик в микросхему на SPI0 перекачал через интерфейс UART.

А сд-карты нет в устройстве? Может проще с нее бутлодырь перекидывать, чем из уарта??

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


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

6 minutes ago, mantech said:

Кстати, SPI-шную флешку какую используете, и прошивка там тоже с 8К смещением нужна или прямо с 0го адреса? Заголовок загрузчика (eGON .... BT0) и контрольные суммы такие же, как на сд-карте?

SPI с нулевого адреса загружается, заголовки те же.

 

6 minutes ago, mantech said:

Вот честно говоря, этого бы хотелось меньше всего...

Почему? Самый простой способ избежать возни с NAND.

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


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

Только что, aaarrr сказал:

Почему? Самый простой способ избежать возни с NAND.

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

5 минут назад, aaarrr сказал:

SPI с нулевого адреса загружается, заголовки те же.

Понял. Т.е. тот же бинарь, что и с сд карты, просто скопировать без смещения и должно запуститься?

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


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

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

Если отработана загрузка с SD-карты, так пользуйтесь лучше ей.

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


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

10 минут назад, aaarrr сказал:

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

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

13 минут назад, aaarrr сказал:

Если отработана загрузка с SD-карты, так пользуйтесь лучше ей.

Конечно, если не найду других решений. Но почему б не попробовать??:yes3:

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


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

15 minutes ago, mantech said:

Ну почему не нужное и устаревшее?

NAND в условиях мелкосерийного производства ничего, кроме геморроя, не приносит.

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


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

1 минуту назад, aaarrr сказал:

NAND в условиях мелкосерийного производства ничего, кроме геморроя, не приносит.

Тут полностью согласен, особенно, если использовать его не только под загрузчик, а и как диск для чтения и записи, почему и спросил про spi флешку, ибо подкинуть ее не проблема и они есть в наличии. 

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


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

14 часов назад, mantech сказал:

SPI - Это несколько другое, с нандом засада в том, что если писать свой прошивальщик, необходимо иметь исходники или документацию по встроенному нанд-контроллеру, которой нет. Писать "пограммный" контроллер "ногодрыгом" - тоже нет большого желания. 

Кстати, SPI-шную флешку какую используете, и прошивка там тоже с 8К смещением нужна или прямо с 0го адреса? Заголовок загрузчика (eGON .... BT0) и контрольные суммы такие же, как на сд-карте?

Вот честно говоря, этого бы хотелось меньше всего...

А сд-карты нет в устройстве? Может проще с нее бутлодырь перекидывать, чем из уарта??

Ошибся, загрузка в микросхему на SPI сразу с SD. Это самообновление загрузчика в SPI-микросхеме через UART.

Bin-загрузчик из носителя на SPI у Allwinner перегружается в ОЗУ с нулевого адреса носителя. Смещение есть только в тех загрузочных носителях, где намечается наличие файловой системы (SD, eMMC, получается и NAND), но на запуск в ОЗУ смещение не влияет.

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


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

18 часов назад, aaarrr сказал:

Беда в том, что интерфейс NAND несколько сложнее SPI-флешки, а оллвиннеровский u-boot, если я правильно помню, не умеет писать boot0 и т.п.

ИМХО, проще один раз залить тот же самый u-boot в NAND (можно даже на винде под виртуалкой, только тулзы чуть скорректировать придется),

mainline u-boot с denx.de умеел писать boot0 в nand. И умел запускать SPL из нанд, умел грузить uImage из NAND но в своем формате. У меня это даже работало. А вот ubifs в MLC NAND не взлетело. Потом все связанное с MLC NAND прибили.

sunxi-fel умеет грузить U-boot через USB в RAM, он же умеет грузить произвольный бинарник и скрипты в RAM. Потом u-boot пропишет все в NAND. У меня так emmc прошивается.

Чтобы "подкорректировать" аллвинеровские тулзы надо разобраться с китайской грамотой FEX... при полном отсутствии документации.

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

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


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

3 часа назад, TrestConsom сказал:

загрузка в микросхему на SPI сразу с SD

Вот, это уже другое дело :yes3:

По партномерам флешек, которые использовали, проконсультируете? У себя нашел некоторое кол-во таких:

W25x16V

W25Q16V

W25Q40V

AT25DF041A

MXIC25L800

Подойдет-ли что-нить из этих или без разницы вообще?

30 минут назад, _3m сказал:

Чтобы "подкорректировать" аллвинеровские тулзы надо разобраться с китайской грамотой FEX... при полном отсутствии документации.

Я так и понял... Короче, ну их нафиг с их грамотой :dash2:

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


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

10 минут назад, mantech сказал:

Вот, это уже другое дело :yes3:

По партномерам флешек, которые использовали, проконсультируете? У себя нашел некоторое кол-во таких:

W25x16V

W25Q16V

W25Q40V

AT25DF041A

MXIC25L800

Подойдет-ли что-нить из этих или без разницы вообще?

Я так и понял... Короче, ну их нафиг с их грамотой :dash2:

Все микросхемы, какие поддерживают JEDEC, у производителей сразу об этом у пишут. Например, все указанные Winbond. К тому же SPI еще не QSPI, потому все проще.

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


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

3 минуты назад, TrestConsom сказал:

Например, все указанные Winbond.

Спасибо. Ну и отлично, их как-раз хватает на мои цели...

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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