Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
MAX: starterkit.ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:1
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:2
Форум » starterkit.ru » Отладочные платы » SK-A40i
Allwinner A40i включение режима сна deep
sasamy
Добавлено 12.02.2026 23:48 Сообщение: 41
sasamy
4.71

Регистрация: 14.08.2009
Тут патч - там видно что я добавил, на всякий случай, с ним SPL штатного убута доходит до прыжка на ядро

https://dropmefiles.com/h7Qu7
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 13.02.2026 10:05 Сообщение: 42
Pavel Ivanchenko
Admin
4.34

Пункты: 150
Регистрация: 24.03.2009
Пол: Мужчина
Не хочу бесить своими советами, но есть соображения :) ...

1) раз уж терзаемая ветка убута такая особенная (в добавок с кучкой инитов платы) и судя по всему, до вас в нее особо никто не заглядывал ...
А может инит внешней памяти не проходит (или с ошибкой проходит)!?
Может попробовать собрать его вариант с mtest (или как то иначе) и проверить работоспособность ddr3 ...

2) можно ведь попробовать собрать ядро с влинкованным DTS и вколочеными в ядро аргументами запуска, чтобы исключить ошибки с их адресацией-записью-чтением ...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.02.2026 14:48 Сообщение: 43
sasamy
4.71

Регистрация: 14.08.2009
Цитата
Не хочу бесить своими советами, но есть соображения :) ...


1) Я пробую включить в штатном убуте, если нажимаю "с" загрузка ядра не выполняется а грузится второая основная часть убута и дальше штатная загрузка - все там работает, ядро грузится но напрямую из SPL нет, ядро не стартует

2) это я тоже пробовал
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 15.02.2026 02:21 Редактировалось 27.02.2026 10:16 Сообщение: 44
sasamy
4.71

Регистрация: 14.08.2009
Цитата

чего то в spl не хватает из того что потом делает основной убут


не хватало инита таймера, оживил фалкона, но разница не впечатлила

Штатно через основной убут

0.000001 0.000001
0.828026 0.828025 U-Boot SPL 2022.04 (Feb 07 2026 - 22:20:56 +0300)
0.843392 0.015366 DRAM: 512 MiB
0.875725 0.032333 Trying to boot from MMC2
1.163768 0.288043
1.163884 0.000116
1.163918 0.000034 U-Boot 2022.04 (Feb 07 2026 - 22:20:56 +0300) Allwinner Technology
1.191000 0.027081
1.191049 0.000050 CPU: Allwinner R40 (SUN8I 1701)
1.191887 0.000838 Model: Starterkit SK-A40i-SODIMM
1.192236 0.000349 DRAM: 512 MiB
1.251509 0.059273 Core: 35 devices, 18 uclasses, devicetree: separate
1.252576 0.001067 WDT: Not starting watchdog@1c20c90
1.253128 0.000551 MMC: mmc@1c11000: 1, mmc@1c12000: 2
1.253444 0.000316 Loading Environment from FAT... OK
1.299969 0.046525 In: serial@1c28000
1.321175 0.021206 Out: serial@1c28000
1.321634 0.000459 Err: serial@1c28000
1.336706 0.015072 Net: phy interface0
1.368938 0.032233 eth0: ethernet@1c50000
1.369551 0.000612 Hit any key to stop autoboot: 0
1.447618 0.078067 switch to partitions #0, OK
1.448389 0.000771 mmc1(part 0) is current device
1.448859 0.000470 Scanning mmc 1:1...
1.449111 0.000252 Found U-Boot script /boot.scr
1.449497 0.000386 277 bytes read in 1 ms (270.5 KiB/s)
1.449953 0.000456 ## Executing script at 43100000
1.495502 0.045549 switch to partitions #0, OK
1.495740 0.000238 mmc1(part 0) is current device
1.639973 0.144233 6346840 bytes read in 136 ms (44.5 MiB/s)
1.641106 0.001133 33543 bytes read in 1 ms (32 MiB/s)
1.673442 0.032336 Kernel image @ 0x42000000 0x000000 - 0x60d858
1.674511 0.001069 ## Flattened Device Tree blob at 43000000
1.675187 0.000676 Booting using the fdt blob at 0x43000000
1.675550 0.000363 Loading Device Tree to 49ff4000, end 49fff306 ... OK
1.704655 0.029106
1.704710 0.000055 Starting kernel ...
1.705227 0.000517
2.345337 0.640110 0.000000 Booting Linux on physical CPU 0x0

напрямую из SPL

0.000001 0.000001
0.813894 0.813893 U-Boot SPL 2022.04 (Feb 14 2026 - 22:56:02 +0300)
0.845363 0.031469 DRAM: 512 MiB
0.861710 0.016347 Trying to boot from MMC2
2.187133 1.325423 0.000000 Booting Linux on physical CPU 0x0

надо ядро кромсать и выносить все в модули чтобы размер уменьшить и подбирать архиватор


Как сделать фалкон

Тут патч

https://dropmefiles.com/E1iaW

его положить в дирекоторию

buildroot-2022.08.8-sk-a40i/boot/uboot

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

rm -r output/build/uboot-custom

еще нужно прописать в ядре параметры загрузки потому что SPL их не передает

make linux-menuconfig

Boot options --->
(console=ttyS0,115200 root=/dev/mmcblk2p2 rootwait mem=512M) Default kernel command string

и сдвинуть разделы чтобы освободить место для dtb и ядра, в файле buildroot-2022.08.8-sk-a40i/board/starterkit/sk-a40i-sodimm/genimage.cfg

добавить выделенный текст

partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 10M
}

собрать

make

залить имидж, остановить загрузку u-boot и выполнить

mmc dev 1
fatload mmc 1 $fdt_addr_r sun8i-a40i-sk.dtb
mmc write $fdt_addr_r 0x800 0x100
fatload mmc 1 $kernel_addr_r zImage
mmc write ${kernel_addr_r} 0x1000 0x4000

после перезагрузки SPL должен увидеть ядро и загрузить напрямую

Вместо ядра можно загрузить убут, для этого надо удерживать клавишу "c" на клавиатуре и нажать кнопку "reset" на плате (ближняя к светодиоду)

Все описанное для штатного buildroot и u-boot

Attachment file: uploads/forum/forum-uboot_a40i_falcon.zip
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 15.02.2026 17:59 Сообщение: 45
sasamy
4.71

Регистрация: 14.08.2009
Цитата

надо ядро кромсать и выносить все в модули чтобы размер уменьшить


1 в ядре вынес по максимуму в модули, ничего не отключал, архиватор тот же
2 добавил loglevel=3 и запуск своего приложения вместо init

console=ttyS0,115200 root=/dev/mmcblk2p2 rootwait mem=512M loglevel=3 init=/sbin/preinit

# cat /sbin/preinit
#!/bin/busybox sh

echo "-> Start Application..."

# Initialize your time-critical application here !
# /usr/bin/ConnectedCarIVI -plugin Tslib &

echo "-> Application started !"

# start real init (systemd/SysVinit)
exec /sbin/init

это для измерения времени - само приложение не запускается

это лог на маплате где grabserial срабатыввает не в момент подачи питания а когда spl получает управление

[0.000001 0.000001]
[0.125967 0.125966] U-Boot SPL 2022.04 (Feb 14 2026 - 22:56:02 +0300)
[0.154088 0.028121] DRAM: 512 MiB
[0.180288 0.026200] Trying to boot from MMC2
[1.622951 1.442663] -> Start Application...
[1.623631 0.000679] -> Application started !
[1.729105 0.105474] Starting syslogd: OK
[1.779974 0.050870] Starting klogd: OK
[1.817926 0.037951] Running sysctl: OK
[1.893186 0.075260] Starting haveged: haveged: command socket is listening at fd 3
[1.920879 0.027693] OK
[1.946286 0.025407] Populating /dev using udev: done
[3.566408 1.620122] Initializing random number generator: OK
[3.577659 0.011251] Saving random seed: OK
[3.658274 0.080615] Starting network: ip: RTNETLINK answers: File exists
[4.425500 0.767225] ip: either "dev" is duplicate, or "type" is garbage
[4.430873 0.005373] FAIL
[4.452707 0.021834] Starting dropbear sshd: OK
[4.620443 0.167736]
[4.620520 0.000077] Welcome to Buildroot

это лог на матплате на которой grabserial срабатывает сразу при подаче питания (видимо из-за помех)

[0.000001 0.000001]
[0.809787 0.809786] U-Boot SPL 2022.04 (Feb 14 2026 - 22:56:02 +0300)
[0.841570 0.031783] DRAM: 512 MiB
[0.857805 0.016235] Trying to boot from MMC2
[2.313075 1.455270] -> Start Application...
[2.313864 0.000789] -> Application started !
[2.408972 0.095108] Starting syslogd: OK
[2.472873 0.063901] Starting klogd: OK
[2.504821 0.031947] Running sysctl: OK
[2.584657 0.079836] Starting haveged: haveged: command socket is listening at fd 3
[2.618139 0.033482] OK
[2.632607 0.014468] Populating /dev using udev: done
[4.245855 1.613248] Initializing random number generator: OK
[4.246943 0.001088] Saving random seed: OK
[4.309874 0.062932] Starting network: ip: RTNETLINK answers: File exists
[5.061543 0.751669] ip: either "dev" is duplicate, or "type" is garbage
[5.062809 0.001265] FAIL
[5.093856 0.031048] Starting dropbear sshd: OK
[5.253859 0.160003]
[5.253932 0.000072] Welcome to Buildroot
[5.254622 0.000690] buildroot login:
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 15.02.2026 19:49 Сообщение: 46
sasamy
4.71

Регистрация: 14.08.2009
Цитата

сдвинуть разделы чтобы освободить место для dtb и ядра, в файле buildroot-2022.08.8-sk-a40i/board/starterkit/sk-a40i-sodimm/genimage.cfg


чтобы старотовала загрузка в режиме фалкона после запи имиджа без необходимости выполнять команды вручную для записи dtb и ядра - их можно прописать в имидж

image boot.vfat {
vfat {
files = {
"zImage",
"sun8i-a40i-sk.dtb",
"boot.scr"
}
}

size = 64M
}

image sdcard.img {
hdimage {
}

partition u-boot {
in-partition-table = "no"
image = "u-boot-sunxi-with-spl.bin"
offset = 8K
size = 1016K # 1MB - 8KB
}

partition falcon-dtb {
in-partition-table = "no"
image = "sun8i-a40i-sk.dtb"
offset = 1M
}

partition falcon-kernel {
in-partition-table = "no"
image = "zImage"
offset = 2M
}

partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 10M
}

partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

после записи образа SPL сразу будет грузить ядро напрямую.

В идеале как-то бы урезать SPL - для поддержки fat не хватает всего около килобайта sram в штатном варианте
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 16.02.2026 10:42 Сообщение: 47
Pavel Ivanchenko
Admin
4.34

Пункты: 150
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
это лог на матплате на которой grabserial срабатывает сразу при подаче питания (видимо из-за помех)
При включении питания (или после нажатия кнопки сброса) явно видна задержка (около 1 секунды) до первого сообщения SPL и вероятнее всего это следствие задержек в очередности включения питающих напряжений.
В силу отсутствия внятной документации, лезть в эту кухню чревато, если окажется что там после каждого включения пауза по 100мс, с другой стороны я не встречал DC/DC или LDO чипов у которых напряжение устанавливалось дольше чем за 5мс (типичное значение 1-3мс).
А так получается, оптимизация 200мс на фоне его штатного торможения 800мс - выглядит печально ...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 17.02.2026 13:07 Сообщение: 48
sasamy
4.71

Регистрация: 14.08.2009
Цитата

В идеале как-то бы урезать SPL - для поддержки fat не хватает всего около килобайта sram в штатном варианте


для эксперимента отключил pmic и i2c в SPL чтобы освободить место для fat, но при этом пришлось оставить частоту cpu как в бутроме - работает загрузка из SPL напрямую с FAT как это делает обычный убут но тормозит так что смысла нет от этого. Это на материнке которая не учитывает задержку питания, те к этому надо прибавить еще 0.8 сек

[0.000001 0.000001]
[0.076378 0.076377] U-Boot SPL 2022.04 (Feb 17 2026 - 11:39:15 +0300)
[0.081441 0.005064] DRAM: 512 MiB
[0.107017 0.025576] CPU freq as in bootrom
[0.111718 0.004700] Trying to boot from MMC2
[2.225210 2.113492] -> Start Application...
[2.225616 0.000407] -> Application started !


На всякий случай патч - может комуто нужно для продолжения экспериментов

https://dropmefiles.com/tZCEh
Спуститься к концу Подняться к началу
Персональная информация
phantom36
Добавлено 17.02.2026 15:45 Сообщение: 49
phantom36
0

Пункты: 5
Регистрация: 13.06.2015
я тут пропаду на дня два чтобы закончить интерфейс - и продолжу эксперименты в новой ветке.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 17.02.2026 17:49 Сообщение: 50
sasamy
4.71

Регистрация: 14.08.2009
Цитата

работает загрузка из SPL напрямую с FAT как это делает обычный убут но тормозит так что смысла нет от этого. Это на материнке которая не учитывает задержку питания, те к этому надо прибавить еще 0.8 сек

[0.000001 0.000001]
[0.076378 0.076377] U-Boot SPL 2022.04 (Feb 17 2026 - 11:39:15 +0300)
[0.081441 0.005064] DRAM: 512 MiB
[0.107017 0.025576] CPU freq as in bootrom
[0.111718 0.004700] Trying to boot from MMC2
[2.225210 2.113492] -> Start Application...
[2.225616 0.000407] -> Application started !


для сравнения - старт тогого же самого ядра и корневой с штатным убутом

[0.000000 0.000000]
[0.088714 0.088714] U-Boot SPL 2022.04 (Feb 17 2026 - 16:43:45 +0300)
[0.116681 0.027966] DRAM: 512 MiB
[0.142771 0.026090] Trying to boot from MMC2
[0.435808 0.293038]
[0.435908 0.000099]
[0.435938 0.000031] U-Boot 2022.04 (Feb 17 2026 - 16:43:45 +0300) Allwinner Technology
[0.440956 0.005018]
[0.440974 0.000018] CPU: Allwinner R40 (SUN8I 1701)
[0.443797 0.002823] Model: Starterkit SK-A40i-SODIMM
[0.449496 0.005699] DRAM: 512 MiB
[0.489340 0.039844] Core: 35 devices, 18 uclasses, devicetree: separate
[0.492443 0.003103] WDT: Not starting watchdog@1c20c90
[0.495772 0.003330] MMC: mmc@1c11000: 1, mmc@1c12000: 2
[0.509772 0.013999] Loading Environment from FAT... Unable to read "uboot.env" from mmc1:1...
[0.574105 0.064334] In: serial@1c28000
[0.574689 0.000584] Out: serial@1c28000
[0.576917 0.002228] Err: serial@1c28000
[0.611507 0.034590] Net: phy interface0
[0.634056 0.022549] eth0: ethernet@1c50000
[0.634696 0.000640] Hit any key to stop autoboot: 0
[0.691765 0.057068] switch to partitions #0, OK
[0.692477 0.000712] mmc1(part 0) is current device
[0.696330 0.003853] Scanning mmc 1:1...
[0.699532 0.003203] Found U-Boot script /boot.scr
[0.704280 0.004747] 277 bytes read in 1 ms (270.5 KiB/s)
[0.706773 0.002493] ## Executing script at 43100000
[0.765282 0.058509] switch to partitions #0, OK
[0.766035 0.000753] mmc1(part 0) is current device
[0.855632 0.089597] 3921664 bytes read in 84 ms (44.5 MiB/s)
[0.862700 0.007069] 33543 bytes read in 2 ms (16 MiB/s)
[0.865359 0.002659] Kernel image @ 0x42000000 [ 0x000000 - 0x3bd700 ]
[0.869425 0.004066] ## Flattened Device Tree blob at 43000000
[0.874457 0.005031] Booting using the fdt blob at 0x43000000
[0.878098 0.003641] Loading Device Tree to 49ff4000, end 49fff306 ... OK
[0.920018 0.041920]
[0.920095 0.000077] Starting kernel ...
[0.920552 0.000457]
[1.724293 0.803741] -> Start Application...
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-A40i