mantech 49 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 55 минут назад, Alexey_77 сказал: Первый результат теста V3LP - он просто заработал на прошивке от V3s. Потестируйте память часа 2-3 чтение рандом-запись с проверкой... Будут ли какие-то ошибки.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey_77 0 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба Там для памяти нужны немного другие параметры. Как минимум zq другое и odt включить. Поэтому я сам удивлён, что заработало с неправильными параметрами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AntonGaribov 0 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба В 12.11.2022 в 18:49, __Eugene сказал: Дрова поставил, прямая загрузка и выполнение в SRAM заработало, светодиоды моргают. Но вопросы остаются, при попытке загрузить во flash того же файла командой: sunxi-fel -p spiflash-write 0 pBoot.bin получаем: То есть, вроде как, все загрузилось. Если дернуть сброс, или питание то ничего не происходит. Точнее снова входим в USB загрузчик. Если выполнить: sunxi-fel spl pBoot.bin через таймаут получим: Но код при этом работает, светодиоды моргают. Код прилагаю. Инициализаций DDR, SPI flash я пока не делал, просто начальная инициализация, пинов светодиодов, UART0 и все src.zip 9 кБ · 16 загрузок Добрый день! Как две капли воды таже история! Присоединяюсь к __Eugene. Код работает по USB и, кстати, с SD! Там правда есть нюанс, смещение надо ставить не 0, а 8КБ. А вот как и у вас с бортовой флеши ну никак не хочет, что только не пробовал! __Eugene, есть подозрения, что косячит утилитка sunxi-fel. Потому что, у нее есть еще функция читать с флеши sunxi-fel {-p} spiflash-read {address} {file} и при считывании в файл выдает массив 0xFF или 0х00. Я вообще хочу это точно проверить - подпаять мою проверенную winbond флэш. И еще, на офф сайте читал, что windows версия утилиты не доработана, там даже красным было выделено. По-хорошему, еще бы проверить на Линуксе. Но с ним не дружу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 17 марта, 2023 Опубликовано 17 марта, 2023 (изменено) · Жалоба On 11/12/2022 at 8:49 PM, __Eugene said: То есть, вроде как, все загрузилось. Если дернуть сброс, или питание то ничего не происходит. Точнее снова входим в USB загрузчик. Это так не работает. Необходим bootloader, который загрузит приложение из SPI FLASH в static RAM, или в DDR RAM. DDR RAM должна быть предварительно инициализирована тем же загрузчиком. В качестве примера можно посмотреть как это сделано для процессора f1с100s по ссылке https://github.com/nminaylov/F1C100s_projects/tree/master/projects/simple_loader. Как альтернатива - прошить в SPI FLASH xboot - https://github.com/xboot/xboot собранный для вашего процессора - он инициализрует DDR RAM и свое приложение можно запустить с помощью JLink Изменено 17 марта, 2023 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AntonGaribov 0 17 марта, 2023 Опубликовано 17 марта, 2023 (изменено) · Жалоба 1 час назад, nanorobot сказал: Необходим bootloader, который загрузит приложение из SPI FLASH в static RAM Так этим же занимается встроенный BOOTROM! При подаче питания, исполняется самый начальный загрузчик ROM, который и считывает с нулевого адреса BOOT0 предварительный пользовательский загрузчик в static RAM, а последний в свою очередь уже инициализирует DRAM и прочее, и загружает уже приложение. Разве не так? То есть, тот бутлодер, о котором вы говорите должен же как-то в любом случае попасть в SRAM! Выходит 3-х ступенчатая загрузка: 1. Вшитый на заводе BOOTROM, который загружает BOOT0 2. Пользовательский BOOT0 в SRAM, который загружает BOOT1 3. Пользовательский BOOT1 в DRAM с полноценным приложением Изменено 17 марта, 2023 пользователем AntonGaribov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 1 час назад, nanorobot сказал: Как альтернатива - прошить в SPI FLASH xboot - https://github.com/xboot/xboot собранный для вашего процессора - он инициализрует DDR RAM Испокон веку С седых 2000-хх (думаю - и ранее) ROM-загрузчики процессоров TI умели сами инитить периферию по заголовку, прицепляемому к прошивке. Помню - так у меня OMAP-L137 грузился - сразу в SDRAM, которую инициализировал ROM-загрузчик, в соответствии с прописанными мной данными в заголовке .aix-файла прошивки. Ещё две пятилетки назад. Без всяких дополнительных костылей в виде доп.загрузчиков. Ещё пятилеткой ранее что-то подобное я использовал при загрузке TMS320VC5502. Неужто в наше просвещённое прогрессивное время, современные продвинутые процессоры разучились такое делать??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey_77 0 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба Есть первая часть программы, которая называется SPL(или boot0) и основная программа(это ваша программа, или uboot,или что-то ещё). SPL загружается во внутреннюю память процессора(16кБайт по адресу 0x00000000 для V3s) и выполняется. Что-бы она загрузилась, ей надо прописать правильный заголовок , размер и контрольную сумму. SPL должен инициализировать частоту процессора, память DDR , SPI(UART по желанию для отладки, JTAG по желанию для отладки), найти во флэшке основную программу, загрузить её в DDR и прыгнуть на её начало. Для помигать диодом SPL (без основной программы ) достаточно. Если вдруг прошили что-то неправильное, то перезапускаете с замкнутыми 2й и 4й ногой SPI флэшки(я кнопочку припаял для удобства) и возвращаетесь в FEL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexey_77 0 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 1 hour ago, Alexey_77 said: Что-бы она загрузилась, ей надо прописать правильный заголовок , размер и контрольную сумму. https://github.com/nminaylov/F1C100s_projects/blob/master/tools/mksunxi/mksunxi.c пример программы для контрольной суммы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AntonGaribov 0 17 марта, 2023 Опубликовано 17 марта, 2023 (изменено) · Жалоба 8 минут назад, Alexey_77 сказал: https://github.com/nminaylov/F1C100s_projects/blob/master/tools/mksunxi/mksunxi.c пример программы для контрольной суммы. Все это я делал – ничерта..... не загружается. Только по USB и SD, а с флешки бортовой не получается. У вас лично работает? Изменено 17 марта, 2023 пользователем AntonGaribov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 17 марта, 2023 Опубликовано 17 марта, 2023 (изменено) · Жалоба 24 minutes ago, AntonGaribov said: Все это я делал – ничерта..... не загружается. Только по USB и SD, а с флешки бортовой не получается. У вас лично работает? Вы про https://github.com/nminaylov/F1C100s_projects/tree/master/projects/simple_loader? там нужно реадми прочитать. там указан адрес по которому во флеш пишем. Да, у меня работает. И да, оно годится ТОЛЬКО для f1c100s / f1c200s V3S не подойдет, Изменено 17 марта, 2023 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xVekx 0 17 марта, 2023 Опубликовано 17 марта, 2023 · Жалоба 38 минут назад, AntonGaribov сказал: Все это я делал – ничерта..... не загружается. Только по USB и SD, а с флешки бортовой не получается. У вас лично работает? присоединяюсь, пробовал https://github.com/nminaylov/F1C100s_projects проект simple_loader если размер bin файла больше 8кб то записать в f1c200s по юсб не выходит пробовал с mksunxi и без, если размер меньше записывается и стартует. плата lctech p; f1c200s v1.1, debug -> usart1 переписал. sunxi-fel -p write 0 Loader.bin_sunxi usb_bulk_send() ERROR -1: Input/Output Error пробовал lcd_test запускать на записанный в spinand через uboot(spinand) стартует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 49 17 марта, 2023 Опубликовано 17 марта, 2023 (изменено) · Жалоба 2 часа назад, jcxz сказал: Помню - так у меня OMAP-L137 грузился - сразу в SDRAM, которую инициализировал ROM-загрузчик Почитайте даташит на аллвиннер, и многое станет ясно, ибо таких фишек как вы описали, либо DCD в imx6 здесь нет. Тут система работает так, есть 32кбайт ОЗУ в которое ROM загрузчик загружает прогу из усб или другого носителя, эта прога должна проинициализировать ДДР, загрузочное устр-во и потом уже в ДДР загружать основной образ, после чего его запустить... Понятно, что DCD и пр - это круто, но по большому счету не так оно и нужно, как оказывается, а раз так, зачем тратить кучу времени на создание этих нетривиальных IP блоков? Да и цена, IMX6 стоит 20-30$,а T113-S3 - 3-4$ Вот и выбирайте))) Изменено 17 марта, 2023 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xVekx 0 18 марта, 2023 Опубликовано 18 марта, 2023 · Жалоба похоже в BROM от Allwinner-a есть скрытые области в которые просто так не записать, вот и рвет заливку, надо дробить программу. например у F1C200s xfel write32 0x1F31 0xFFFF xfel read32 0x1F31 выдает 0xd80000ff https://linux-sunxi.org/FEL/USBBoot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 19 марта, 2023 Опубликовано 19 марта, 2023 (изменено) · Жалоба BROM это ПЗУ загрузчика. Запрограммировано при изготовлении процессора и не может быть изменено. Изменено 19 марта, 2023 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xVekx 0 19 марта, 2023 Опубликовано 19 марта, 2023 · Жалоба 2 часа назад, GenaSPB сказал: BROM это ПЗУ загрузчика. Запрограммировано при изготовлении процессора и не может быть изменено. может но не сохранится после сброса, или я чего то не понимаю? https://github.com/linux-sunxi/sunxi-tools/blob/master/uart0-helloworld-sdboot.lds $make clean $make binfiles ./mksunxiboot uart0-helloworld-sdboot.bin uart0-helloworld-sdboot.sunxi File size: 0xbe8 Load size: 0xbe8 Read 0xbe8 bytes Write 0xe00 bytes $sunxi-fel write 0 uart0-helloworld-sdboot.sunxi $sunxi-fel read 0 0xe00 uart0-helloworld-sdboot.sunxi1 $diff uart0-helloworld-sdboot.sunxi uart0-helloworld-sdboot.sunxi1 $sunxi-fel exe 0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться