Привет.
Краткая информация:
Davinci dm365, tms320dm365.
ОС Linux.
Данная платка имеет два PLL: PLL1 и PLL2
Процессор ARM926EJ-S может тактоваться от:
* PLLC1SYSCLK2 - устанавливается при загрузке ОС Linux == 243000 kHz.
* PLLC2SYSCLK2 - то что я могу менять.
Максимальная частота процессора, которую теоретически можно установить: 300 000 kHz.
Минимальная == 121500 kHz == PLLC1SYSCLK4 (CFG/DMA bus clock frequency).
Алгоритм:
1. перевести процессор из PLLC2SYSCLK2 на PLLC1SYSCLK2.
2. Сресетить PLL2.
3. Настроить делители\множитель на PLL2.
4. Перебросить процессор обратно на PLLC2SYSCLK2.
5. Вызвать adjust_jiffies() (которое я украл из cpufreq.c)
Столкнулся с ситуацией, что моя схема работает только на некоторых частотах.
Например на частоты можно стабильно переключатся, сколько угодно раз:
272000 (kHz), mul=17, div=2
204000 (kHz), mul=17, div=3
252000 (kHz), mul=21, div=3
201600 (kHz), mul=21, div=4
200000 (kHz), mul=25, div=5
249600 (kHz), mul=26, div=4
259200 (kHz), mul=27, div=4
268800 (kHz), mul=28, div=4
278400 (kHz), mul=29, div=4
232000 (kHz), mul=29, div=5
205714 (kHz), mul=30, div=6
297600 (kHz), mul=31, div=4
248000 (kHz), mul=31, div=5
212571 (kHz), mul=31, div=6
186000 (kHz), mul=31, div=7
На следующие частоты переключится нельзя, плата мгновенно зависает:
144000 (kHz), mul=3, div=0
180000 (kHz), mul=15, div=3
136000 (kHz), mul=17, div=5
126000 (kHz), mul=21, div=7
157714 (kHz), mul=23, div=6
171428 (kHz), mul=25, div=6
133333 (kHz), mul=25, div=8
178285 (kHz), mul=26, div=6
162000 (kHz), mul=27, div=7
174000 (kHz), mul=29, div=7
165333 (kHz), mul=31, div=8
158400 (kHz), mul=33, div=9
296000 (kHz), mul=37, div=5
203076 (kHz), mul=55, div=12
299076 (kHz), mul=81, div=12
Вся периферия тактуется от PLL1.
Данная плата не имеет никаких доменов частот.
Есть домены только по энергопотреблению.
Может кто подсказать в чем проблема??
Это сходит с ума ОС Linux, или все таки сама плата?
Я потерялся в догадках.
Если выставить на PLL2 нужную частоту, но не переключать на нее процессор (оставить на PLLC1SYSCLK2), то все продолжает стабильно работать.
Посоветуйте на что обратить внимание

))