本文引用地址:http://m.butianyuan.cn/article/201611/322209.htm4.修改/cpu/arm/s3c24x0/interrupts.c,加入對(duì)2440的支持
(1)在第33行左右,修改
#if defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined(CONFIG_S3C2440) || defined (CONFIG_TRAB)
(2)在第40行左右,修改
#elif defined(CONFIG_S3C2410)||defined(CONFIG_S3C2440)
(3)在get_tbclk()函數(shù)中修改
#elif defined(CONFIG_SBC2410X) ||
defined(CONFIG_SMDK2410) ||
defined(CONFIG_MINI2440) ||
defined(CONFIG_VCMA9)
tbclk = CFG_HZ;
#else
5.修改/cpu/arm/s3c24x0/speed.c
(1)在33行左右修改:
#if defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined (CONFIG_S3C2440) || defined (CONFIG_TRAB)
#if defined(CONFIG_S3C2400)
#include
#elif defined(CONFIG_S3C2410)||defined(CONFIG_S3C2440)
(2)修改函數(shù)get_PLLCLK()
因?yàn)镾3C2440與S3C2410的MPLL、UPLL計(jì)算公式不同
在代碼:
m = ((r & 0xFF000) >> 12) + 8;
p = ((r & 0x003F0) >> 4) + 2;
s = r & 0x3
的后面添加:
#if defined(CONFIG_S3C2440)
if (pllreg == MPLL)
return((CONFIG_SYS_CLK_FREQ*m*2)/(p<else if(pllreg == UPLL)
#endif
return((CONFIG_SYS_CLK_FREQ * m) / (p << s));
}
(3)修改函數(shù)get_HCLK()
ulong get_HCLK(void)
{
S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
#if defined(CONFIG_S3C2440)
if(clk_power->CLKDIVN&0x6)
{
if((clk_power->CLKDIVN&0x06)==2)
return(get_FCLK()/2);
if((clk_power->CLKDIVN&0x06)==6)
return(clk_power->CAMDIVN&0x100)?
get_FCLK()/6:get_FCLK()/3;
if((clk_power->CLKDIVN&0x06)==4)
return(clk_power->CAMDIVN&0x200)?
get_FCLK()/8:get_FCLK()/4;
return(get_FCLK());
}
else return(get_FCLK());
#else
return((clk_power->CLKDIVN&0x02)?get_FCLK()/2:get_FCLK());
#endif
// return((clk_power->CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK());
}
6.修改/include/asm-arm/mach-types.h
添加mini2440機(jī)器ID,添加的ID內(nèi)核提供的ID保持一致
#define MACH_TYPE_MINI24401999
7.修改cpu/arm920t/s3c24x0/serial.c
修改drivers/rtc/s3c24x0_rtc.c
在有s3c2410宏定義開(kāi)關(guān)里加入對(duì)s3c2440的支持
評(píng)論