Pavel Ivanchenko  
	
		
	  
	
		
		 
		Admin  
		 
		 
		 
		 
		Пункты: 95466  
		Регистрация: 24.03.2009  
		Пол: Мужчина  
		 
		
	 
		
		Озадачился разгоном памяти до сабжевой частоты, но пока не понял как в boot_prep скрутить частоту ...
Лучше, чем сделать так, пока не придумал:
Код void init_clock() 
{ 
	HW_CLKCTRL_FRAC_SET(BM_CLKCTRL_FRAC_CLKGATEEMI); 
#ifdef EMI_96M 
	set_emi_frac(30); 
#else //EMI_133M 
//pi	set_emi_frac(33); 
	set_emi_frac(28); 
#endif 
	HW_CLKCTRL_FRAC_CLR(BM_CLKCTRL_FRAC_CLKGATEEMI); 
	delay(11000); 
 
#ifdef EMI_96M 
	HW_CLKCTRL_EMI_WR(BF_CLKCTRL_EMI_DIV_XTAL(1)| 
			  BF_CLKCTRL_EMI_DIV_EMI(3) 
			 ); 
#else 
	HW_CLKCTRL_EMI_WR(BF_CLKCTRL_EMI_DIV_XTAL(1)| 
			  BF_CLKCTRL_EMI_DIV_EMI(2) 
			 ); 
#endif 
Проверяю номинал осциллографом, из-за того что она управляется по СKE, точно не измерить, поэтому как то на "глаз" получилось ...
Поднял вопрос поднятия тактовой на 
форуме  FreeScale, говорят "работает до 133М" - явно перестраховываются.
 
		 
		
	  
	
		
	 
	
		
	 
 
 
	
	Pavel Ivanchenko  
	
		
	  
	
		
		 
		Admin  
		 
		 
		 
		 
		Пункты: 95466  
		Регистрация: 24.03.2009  
		Пол: Мужчина  
		 
		
	 
		
		Итак, на форуме FreeScale дали внятный ответ, из которого следует, что set_emi_frac(26) делает частоту тактовой DDR 166МГц, что и требовалось получить.
Сейчас имею следующие тайминги:
Код void init_ddr_mt46v32m16_167Mhz(int ce) 
{ 
	HW_DRAM_CTL00_WR(0x01010001); 
	HW_DRAM_CTL01_WR(0x00010100); 
	HW_DRAM_CTL02_WR(0x01000101); 
	HW_DRAM_CTL03_WR(0x00000001); 
	HW_DRAM_CTL04_WR(0x00000101); 
	HW_DRAM_CTL05_WR(0x00000000); 
	HW_DRAM_CTL06_WR(0x00010000); 
	HW_DRAM_CTL07_WR(0x01000001); 
	HW_DRAM_CTL09_WR(0x00000001); 
	HW_DRAM_CTL10_WR(0x07000200); 
//	HW_DRAM_CTL11_WR(0x00070202); //CAS Lat 
	HW_DRAM_CTL11_WR(0x00070202); 
//	HW_DRAM_CTL12_WR(0x02020000); 
	HW_DRAM_CTL12_WR(0x02020000); 
//	HW_DRAM_CTL13_WR(0x04040a01); //CAS Lat 
	HW_DRAM_CTL13_WR(0x05050a01); 
	HW_DRAM_CTL14_WR(0x00000200|ce); 
//	HW_DRAM_CTL15_WR(0x02040000); 
	HW_DRAM_CTL15_WR(0x03050000); 
	HW_DRAM_CTL16_WR(0x02000000); 
//	HW_DRAM_CTL17_WR(0x19000f08); 
	HW_DRAM_CTL17_WR(0x18000d0a); 
//	HW_DRAM_CTL18_WR(0x0d0d0000); 
	HW_DRAM_CTL18_WR(0x15150000); 
//	HW_DRAM_CTL19_WR(0x02021313); 
	HW_DRAM_CTL19_WR(0x02021313); 
//	HW_DRAM_CTL20_WR(0x02061521); 
	HW_DRAM_CTL20_WR(0x03071524); 
//	HW_DRAM_CTL21_WR(0x0000000a); 
	HW_DRAM_CTL21_WR(0x0000000c); 
	HW_DRAM_CTL22_WR(0x00080008); 
	HW_DRAM_CTL23_WR(0x00200020); 
	HW_DRAM_CTL24_WR(0x00200020); 
	HW_DRAM_CTL25_WR(0x00200020); 
//	HW_DRAM_CTL26_WR(0x000003f7); 
	HW_DRAM_CTL26_WR(0x00000509); 
	HW_DRAM_CTL29_WR(0x00000020); 
	HW_DRAM_CTL30_WR(0x00000020); 
	HW_DRAM_CTL31_WR(0x00c80000); 
//	HW_DRAM_CTL32_WR(0x000a23cd); 
	HW_DRAM_CTL32_WR(0x000d2d62); 
	HW_DRAM_CTL33_WR(0x000000c8); 
//	HW_DRAM_CTL34_WR(0x00006665); 
	HW_DRAM_CTL34_WR(0x000081c7); 
	HW_DRAM_CTL36_WR(0x00000101); 
	HW_DRAM_CTL37_WR(0x00040001); 
	HW_DRAM_CTL38_WR(0x00000000); 
	HW_DRAM_CTL39_WR(0x00000000); 
	HW_DRAM_CTL40_WR(0x00010000); 
	HW_DRAM_CTL08_WR(0x01000000); 
} 
C которыми ядро "нормально" работает, но memtester (на 45М) находит ошибки.
 
		 
		
	  
	
		
	 
	
		
	 
 
 
	
	Pavel Ivanchenko  
	
		
	  
	
		
		 
		Admin  
		 
		 
		 
		 
		Пункты: 95466  
		Регистрация: 24.03.2009  
		Пол: Мужчина  
		 
		
	 
		
		Потому как "1 chip enable", GPIO не пойдет - арбитраж шины не сделаете. 
 
PS лучше было это отдельной темой оформить