Jump to content

    

Исходник BOOT0 для Allwinner R40,A40,T3

Recommended Posts

repstosw
On 3/29/2022 at 3:11 AM, mantech said:

Расковыряли, но так, как не надо)))

 

 

const uint8_t __attribute__((section (".ddr.bin"))) ddr_bin[] = {
    0x37, 0x03, 0x40, 0x00, 0x73, 0x20, 0x03, 0x7c, 0x37, 0x03, 0x03, 0x00,
    0x1b, 0x03, 0x33, 0x01, 0x73, 0x20, 0x23, 0x7c, 0x6f, 0x00, 0x40, 0x08,
    0x18, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xfb, 0x7b, 0x7b, 0x00,
    0x01, 0x00, 0x00, 0x00, 0xd2,.........................куча байт)))

void sys_dram_init(void)
{
    __asm__ __volatile__("li t1, 0x30013");
    __asm__ __volatile__(".word 0x7c232073");
    ((void(*)(void))((void *)0x00030000))();

 

:)

Неплохо, для начала пойдёт!

Share this post


Link to post
Share on other sites

mantech
4 часа назад, repstosw сказал:

Неплохо, для начала пойдёт!

Для любителей "магических чисел" самое то)))))))))))

Share this post


Link to post
Share on other sites

repstosw
18 hours ago, mantech said:

Для любителей "магических чисел" самое то)))))))))))

 

Вспомнил, что когда занимался A13 на плате Olinuxino (OLIMEX), то пришлось подкорректировать некоторые DRAM_PARAMS для DDR-памяти в исходниках. Иначе инициализация MMU завешивала программу.  Лишь только, когда раскурил более внимательно свою DDR в даташите, понял что надо поменять.  И оно всё заработало как надо! (MMU, DDR, тест всей памяти).

   

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

 

В олимексовской дев-борде стоят два чипа DDR: k482g0846q

Edited by repstosw

Share this post


Link to post
Share on other sites

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

то пришлось подкорректировать некоторые DRAM_PARAMS для DDR-памяти в исходниках.

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

 

5 часов назад, repstosw сказал:

В олимексовской дев-борде стоят два чипа DDR: k482g0846q

В китайплатах раньше любили ставить 2 или 4 8и битных чипа, реже 16и битные были, видимо 8и битных у них как грязи)))

Кстати, когда разкуривали V3s откуда брали инит памяти, ссылкой не поделитесь?

Share this post


Link to post
Share on other sites

repstosw
2 hours ago, mantech said:

Кстати, когда разкуривали V3s откуда брали инит памяти, ссылкой не поделитесь?

 

Инит памяти в файлах dram_sun8i_h3.c / dram_sun8i_h3.h . Функция unsigned long sunxi_dram_init(void);

Share this post


Link to post
Share on other sites

mantech
2 часа назад, repstosw сказал:

Инит памяти в файлах dram_sun8i_h3.c / dram_sun8i_h3.h .

Вот такие?

https://github.com/Moxa-Linux/BIOS-UC-8200_source_code/blob/master/arch/arm/include/asm/arch-sunxi/dram_sun8i_h3.h

https://github.com/Moxa-Linux/BIOS-UC-8200_source_code/blob/master/arch/arm/cpu/armv7/sunxi/dram_sun8i_h3.c

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

Так из них DIMM'ы собирали.

Да вот сколь видал диммов на ддр3 - везде 16и битки были...

Share this post


Link to post
Share on other sites

sasamy
On 3/28/2022 at 8:05 AM, _3m said:

На практике юзеры с предыдущими ревизиями процессора остались без апдейтов потому что ПО выпускается только под текущую ревизию в производстве.

каким образом (никаким) ПО связано с настройками внешней памяти ?

Share this post


Link to post
Share on other sites

aaarrr
22 hours ago, mantech said:

Да вот сколь видал диммов на ддр3 - везде 16и битки были...

Я бы сказал, 8 бит встерчаются много чаще. 16 на модулях малого объема и SO-DIMM.

Share this post


Link to post
Share on other sites

_3m
3 часа назад, sasamy сказал:

каким образом (никаким) ПО связано с настройками внешней памяти ?

Настройки памяти содержатся в образе прошивки. Разные ревизии процессора - разные бинарники несмотря на то что ПО одинаковое. Если зашить неправильный работать не будет потому что DDR неправильно инициализируется. Различить ревизии процессора программно невозможно.
(это был разговор о NUC970).
 

Автодетект памяти в проприетарном аллвинеровском uboot снимает вышеописанное неудобство.

Share this post


Link to post
Share on other sites

sasamy
54 minutes ago, _3m said:

Настройки памяти содержатся в образе прошивки.

когда пользовался nuc970 шил через nuwriter (есть и для вин и для лин) он записывает конфиг DDR - ему просто указывается файл ini c настойками DDR, к ПО которое записывается  это вообще никак не относится

https://github.com/OpenNuvoton/NUC970_NuWriter_CMD/tree/master/nudata/sys_cfg

1 hour ago, _3m said:

Различить ревизии процессора программно невозможно.

тот кто записывает знает какой он процессор зашивает.

Share this post


Link to post
Share on other sites

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

тот кто записывает знает какой он процессор зашивает.

Не знает!
У вас опломбированное устройство. Какая ревизия процессора в нем стоит ?
 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.