я понимаю. но сколько занимает просыпание из deep, судя по всему, никому не известно, так как его нет ) из s2idle с заполнением генератора случайных чисел просыпается с выводом в консоль за 0.3-0.4 секунды. выходит что за 1 секунду в теории его можно было бы разбудить, с учётом того что нужен только lima. а вот загрузить u-boot, ядро и приложение на QT5 - это явно далеко не 1 секунда. потому и хотелось будить его а не запускать по новой... сейчас вожусь с подсказками от гугловской поддельной головы с загрузкой SPL ядра по адресу без файловой системы, обещает какое- то время сэкономить.
я думаю вам, как опытным людям, не сложно догадаться для чего это делается, раз мне нужен только socketcan, lima, qt5, и минимальное время загрузки с минимальным энергопотреблением... )
Имеете в виду грузить ядро слинкованное с корневой фс - initramfs?
При старте ядра большая часть времени уходит на запуск и инициализацию драйверов, собственно способ ускорения запуска системы сводится к к отключению всех неиспользуемых драйверов (кстати, это не так просто как кажется, т.к. они зачастую сильно переплетены) с линковкой только самых необходимых, а второстепенные драйвера монтировать после загрузки.
Старт с initramfs просто добавит несколько секунд т.к. ядро потяжелеет на несколько М ...
Вы не пробовали, сильно понизить минимальную частоту (она по моему 400М, а опустить ее до 100-50МГц) и оценить потребление?
Еще учтите, что можно попробовать на модуле с 1 DDR3 чипом (все в копилочку потребления), но правда хватит ли при этом памяти и производительности ...
можно и за секунду но задача нетривиальная - тут пример на техачсовском старом проце - в принципе не раз видел что именно на нем делают быстрый старт, на алвинерах получится ли - большой вопрос, но факт что реально бывает :)
Бодро у них получилось, с 12с уложиться в 1с!
В списке их оптимизаций я особо ничего специфичного для TI не заметил (из непривычного, разве что фс использовали SquashFS), да и изначальные цифры времени запуска вполне себе типичные, так что думаю для Allwinner вполне реально подобный старт.
Насчет понижения потребления, есть еще идеи :)
Можно частоту DDR3 памяти понизить (до 400 или 300МГц).
Но по опыту с imx6, потребление могло в разы уменьшаться с отключением ODT терминации.
С эти можно крутить прямо через менюконфиг makeuboot-menuconfig
Нет. Грузить ядро до загрузки полноценного u-boot силами spl, адресуясь к нему через сектора emmc, чтобы не тратить время ещё и на работу с файловой системой. Если посмотреть на время от включения до окончания загрузки ядра - там u-boot секунды полторы чего-то медитируем.
помоему для алвинеров это не реализовано, к тому же в самом SPL увеличены все задержки в 10 раз иначе DDR нестабильно на морозе стартует
вот я сейчас про него и изучаю. никаких внятных упоминаний в англоязычном и русскоязычном виде нету. в том что есть у нас - пока никаких упоминаний в исходниках sunxi в u-boot тоже не вижу. руки уже начинают опускаться. после STM32 пока что для меня всё это выглядит дико и не понятно.
вот я сейчас про него и изучаю. никаких внятных упоминаний в англоязычном и русскоязычном виде нету. в том что есть у нас - пока никаких упоминаний в исходниках sunxi в u-boot тоже не вижу. руки уже начинают опускаться. после STM32 пока что для меня всё это выглядит дико и не понятно.
я давно этим не интересовался, мне запомнилось что надо что-то дописывать хотя там в доке ничего не говорится про то что надо дополнительно реализовать, всего лишь это
Function that a board must implement
void spl_board_prepare_for_linux(void)
optional, called from SPL before starting the kernel
spl_start_uboot()
required, returns “0” if SPL should start the kernel, “1” if U-Boot must be started.
в stm32 естественно одна из лучших поддержек от самого производителя, для алвинера большинство кода сообщество переносит из алвинеровских sdk
помоему для алвинеров это не реализовано, к тому же в самом SPL увеличены все задержки в 10 раз иначе DDR нестабильно на морозе стартует
Не пойму, а в чем сложность читать с еммс просто по секторам (в приведенной методичке они так же читали) и это ещё falcon mode называть?
Увеличение задержек в ините памяти, точно не помню, но и на десяток мили секунд не потянут ...