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

55 минут назад, Alexey_77 сказал:

Первый результат теста V3LP  - он просто заработал на прошивке от V3s.

Потестируйте память часа 2-3 чтение рандом-запись с проверкой... Будут ли какие-то ошибки..

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


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

Там для памяти нужны немного другие параметры. Как минимум zq другое и odt включить. Поэтому я сам удивлён, что заработало с неправильными параметрами.

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


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

В 12.11.2022 в 18:49, __Eugene сказал:

Дрова поставил, прямая загрузка и выполнение в SRAM заработало, светодиоды моргают. Но вопросы остаются, при попытке загрузить во flash того же файла командой:

sunxi-fel -p spiflash-write 0 pBoot.bin

получаем:

image.png.5f5695ee402a9650f3cdfd7065ab5d02.png

То есть, вроде как, все загрузилось. Если дернуть сброс, или питание то ничего не происходит. Точнее снова входим в USB загрузчик.

Если выполнить:

sunxi-fel spl pBoot.bin

через таймаут получим:

image.png.410fd4fed30cc0d802d343876d9135cc.png

Но код при этом работает, светодиоды моргают. Код прилагаю. Инициализаций 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 версия утилиты не доработана, там даже красным было выделено. 

По-хорошему, еще бы проверить на Линуксе. Но с ним не дружу :boredom:

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


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

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

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

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


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

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 с полноценным приложением

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

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


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

1 час назад, nanorobot сказал:

Как альтернатива -  прошить в SPI FLASH xboot - https://github.com/xboot/xboot собранный для вашего процессора - он инициализрует DDR RAM

Испокон веку С седых 2000-хх (думаю - и ранее) ROM-загрузчики процессоров TI умели сами инитить периферию по заголовку, прицепляемому к прошивке. Помню - так у меня OMAP-L137 грузился - сразу в SDRAM, которую инициализировал ROM-загрузчик, в соответствии с прописанными мной данными в заголовке .aix-файла прошивки. Ещё две пятилетки назад. Без всяких дополнительных костылей в виде доп.загрузчиков. Ещё пятилеткой ранее что-то подобное я использовал при загрузке TMS320VC5502.

Неужто в наше просвещённое прогрессивное время, современные продвинутые процессоры разучились такое делать???  :unknw:

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


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

Есть первая часть программы, которая называется SPL(или boot0) и основная программа(это ваша программа, или uboot,или что-то ещё).

SPL загружается во внутреннюю память процессора(16кБайт по адресу 0x00000000 для V3s) и выполняется. Что-бы она загрузилась, ей надо прописать правильный заголовок , размер и контрольную сумму.
SPL должен инициализировать частоту процессора, память DDR , SPI(UART по желанию для отладки, JTAG по желанию для отладки), найти во флэшке основную программу, загрузить её в DDR и прыгнуть на её начало.
Для помигать диодом SPL (без основной программы ) достаточно.
Если вдруг прошили  что-то неправильное, то перезапускаете с замкнутыми 2й и 4й ногой SPI флэшки(я кнопочку припаял для удобства) и возвращаетесь в FEL.

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


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

1 hour ago, Alexey_77 said:

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

https://github.com/nminaylov/F1C100s_projects/blob/master/tools/mksunxi/mksunxi.c
пример программы для контрольной суммы.

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


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

8 минут назад, Alexey_77 сказал:

https://github.com/nminaylov/F1C100s_projects/blob/master/tools/mksunxi/mksunxi.c
пример программы для контрольной суммы.

Все это я делал – ничерта..... не загружается. Только по USB и SD, а с флешки бортовой не получается.

У вас лично работает?

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

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


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

24 minutes ago, AntonGaribov said:

Все это я делал – ничерта..... не загружается. Только по USB и SD, а с флешки бортовой не получается.

У вас лично работает?

 

Вы про  https://github.com/nminaylov/F1C100s_projects/tree/master/projects/simple_loader? там  нужно реадми прочитать. там указан адрес по которому во флеш пишем. Да, у меня работает. И да, оно годится ТОЛЬКО для f1c100s / f1c200s  V3S не подойдет,

 

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

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


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

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) стартует.

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


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

2 часа назад, jcxz сказал:

Помню - так у меня OMAP-L137 грузился - сразу в SDRAM, которую инициализировал ROM-загрузчик

Почитайте даташит на аллвиннер, и многое станет ясно, ибо таких фишек как вы описали, либо DCD в imx6 здесь нет. Тут система работает так, есть 32кбайт ОЗУ в которое ROM загрузчик загружает прогу из усб или другого носителя, эта прога должна проинициализировать ДДР, загрузочное устр-во и потом уже в ДДР загружать основной образ, после чего его запустить...

Понятно, что DCD и пр - это круто, но по большому счету не так оно и нужно, как оказывается, а раз так, зачем тратить кучу времени на создание этих нетривиальных IP блоков? Да и цена, IMX6 стоит 20-30$,а  T113-S3 - 3-4$ Вот и выбирайте)))

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

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


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

похоже в BROM  от Allwinner-a есть скрытые области в которые просто так не записать, вот и рвет заливку, надо дробить программу.

например у F1C200s 
xfel write32 0x1F31 0xFFFF
xfel read32 0x1F31
выдает
0xd80000ff

https://linux-sunxi.org/FEL/USBBoot

 

 

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


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

BROM это ПЗУ загрузчика. Запрограммировано при изготовлении процессора и не может быть изменено.

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

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


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

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

 

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


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

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

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

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

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

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

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

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

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

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