U-boot移植 (以下步骤适用于s3c2440开发板) 1、修改Makefile文件: a.修改交叉编译宏(CROSS_COMPILE?=)修改为(CROSS_COMPILE?=arm-linux-); b.将._LIBS:后的两个变量交换位置(line289) c.添加tocore2440_config Make文件(line2997) tocore2440_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm920t tocore2440 tocore s3c24x0 包含六个参数:$1. tocore2440 表示在include/configs/目录下必须包含tocore2440.h文件;$2. arm表示在主目录下包含lib_arm目录,在include/目录下包含asm_arm目录;$3.arm920t表示CPU型号,在cpu目录下包含arm920t目录;$4.tocore2440芯片型号;$5.厂商目录(if($5!=NULL),则在board目录下有$5/$4目录,else,则在board目录下有$4目录);$6. s3c24x0表示在include/asm_arm/包含arch_ s3c24x0目录; d.以上部分表示在移植U-boot前首先要添加开发板自己的配置头文件,并在board目录下建立自己的开发板目录,修改s3c24x0(cpu/arm920t/s3c24x0,include/asm_arm/archs3c24x0)文件,改为支持2440开发板,修改过程如下: 1) 修改inperrupts.c文件,添加宏定义:#defined(CONFIG_S3C2440)( line36)。 2) 修改speed.c文件:a.添加宏定义:#defined (CONFIG_S3C2440) ( line33);b.在get_PLLCLK()函数中添加2440支持,具体修改方式如下:在return返回值前添加#if defined(CONFIG_S3C2440) if (pllreg == MPLL) return((CONFIG_SYS_CLK_FREQ * m * 2) / (p << s)); //得到2440开发板的频率 else if (pllreg == UPLL) #endif c.将get_HCLK()函数修改为2440支持,将原函数返回改为: //该函数为读取当前系统时钟 #if defined(CONFIG_S3C2440) if (clk_power->CLKDIVN & 0x6) { if ((clk_power->CLKDIVN & 0x6)==2) return(get_FCLK()/2); if ((clk_power->CLKDIVN & 0x6)==6) return((clk_power->CAMDIVN & 0x100) ? get_FCLK()/6 : get_FCLK()/3); if ((clk_power->CLKDIVN & 0x6)==4) return((clk_power->CAMDIVN & 0x200) ? get_FCLK()/8 : get_FCLK()/4); return(get_FCLK()); } else return(get_FCLK()); #else return((clk_power->CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK()); #endif d.修改time.c文件,添加宏定义#defined (CONFIG_S3C2440)(line33) |