Есть плата собственной разработки на базе SK-iMX6Q.
Ядро 3.0.35. В нормальных условиях работает нормально.
Пытаемся заморозить плату до -20. Грузится и доходит до строчек:
Static Power Management for Freescale i.MX6
wait mode is enabled for i.MX6
cpaddr = c0880000 suspend_iram_base=c091c000
PM driver module loaded
IMX usb wakeup probe
add wake up source irq 75
IMX usb wakeup probe
cpu regulator mode:ldo_enable
i.MXC CPU frequency driver
Internal error: Oops - undefined instruction: 0 [#g dummy regulator
Modules linked in:яя
и после "i.MXC CPU frequency driver" либо ничего, либо Упс, либо какая то странная инструкция и ничего не происходит.
в ядре пробовал режимы энергосбережения менять - запускается только в powersave. в других режимах при загрузке доходит до строчек:
Bus freq driver module loaded
imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_10 = 0x00100000
Bus freq driver Enabled
mxc_dvfs_core_probe
DVFS driver module loaded
snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 4 ports detected
UBIFS: recovery needed
usb 2-1.1: new full speed USB device number 3 using fsl-ehci
далее строки "DVFS driver module loaded" никогда не уходит.
Интересная формулировка
Я понимаю, схематику "срисовали" и компоненты примерно так же поставили, ну а дальше - как повезет.
SK-iMX6Q (вся комплектация коммерческого температурного диапазона - от 0) я в свое время гонял в бытовом морозильнике (прототипы и первые изделия всех устройств всегда в морозилке проверяю), обязательно с кулкером на плату (иначе она в + останется), до -10-15С охлаждалось - проблем не видел.
ИМХО вероятнее всего начинаются проблемы с памятью (от температуры сильно изменяются параметры выходных буферов - на десятки процентов), у IMX6 вагон настроек и сила буферов и относительный сдвиг и сила ODT терминации ... в экспериментах можно на месяц(ы) погрязнуть.
Еще есть режим автокалибровки DDR3 памяти, но для его работы нужно соединение D0-D0, D16-D16 ... (младшие биты по чипам), если этого нет - тогда только аналитически перебирать настройки сдвигов.
Из простейшего - понизить частоту шины памяти.
Память какая ? Питание какое ? Все микросхемы на -40 ? Пульсации в минусе не повышаются? Конденсаторы X7R/X5R ? В минусе использование диэлектрика y5v нежелательно.
Смотрите питание процессора, обвязку. Прогоните тест памяти из u-boot`а.
тут у нас откалибровано, записано в u-boot, который на плате обновили.
память пока mt41j256m16ha-107it, питание 1,5, все на -40, конденсаторы x5r.
пульсации в минусе вроде как повышаются(дую фризером на проц).
тест памяти изменений не дает - все исправно проходит, по питанию ничего не меняется по входу.
5 вольт на проце нормальные, стабильно 4,8 вольта у нас. если загрузить в НУ и потом начать морозить, то умирает: при этом запускал пинг - и он неожиданно перестает работать - безо всяких выводов в консоль.
Найдено следующее: в минусе зависает если напряжение ядра низкое - ручками подняли в настройках борды. USB не работает, если частота не 396 МГц.
как сделать, чтоб работа USB не зависела от частоты процессора?
Конденсаторы по PLL ? По кварцу ? Резистор мегоомный на кварце ?Питания процессора какие ? PMIC есть или своё питание ?
Частота вестимо зависит от PLL и напряжения процессора...
Запустите memtester в НКУ и засуньте в минус. Будет ли ошибки пока не зависнет...
по PLL есть, по кварцу есть, резистор отсутствует(от него зависит долгий запуск вроде), питания на одной плате 1,4 и 1,5 на другой(ведут себя одинаково).
При питании ядра 0,95 В и при охлаждении получается вот так:
# memtester 100
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).