此移植是在TQ UBOOT基础上改动部分, 网卡CS8900, LCD SAMSUNG3.5寸屏, 假设UBOOT目录为当前目录,用 ./ 表示
移植的地方如下示:
1. 添加自已板子信息, 进行配置:
UBOOT根目录下 Makefile文件1884行, 添加
my2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t my2440 NULL s3c24x0
是啥意思呢, 呵呵
第一句意思是 要不要 make my2440_config 判断, 如果有的话呢, 它就是 arm 系, 920系, 板子为my2440,也就是本Makefile中的(BOARD)表示的含义了,最后一个词意思是所属硬件架构s3c24x0
128行, 编译器信息要改成 打过softfloat补丁的crosstools_3.4.5或其它版本, 注意填写完整目录;
注意到206行,207行, 天嵌已把usb功能,WINCE功能做成了过程文件 module, 在./module 下;
2. 在第一步中, 我们已添加好自己板子的注册信息, 故要在(BOARDDIR)目录即 ./board下添加自已板子信息, 先COPY下天嵌的
1' sudo cp -rf ./board/EmbedSky ./board/my2440
注意, 在这里, 板子名必须与第一步中的倒数第三个单词(BOARD)信息一致, 否则编译出错.
2' 更改my2440.c, 对照你的板子IO口配置进行配置, 大部分板子应该是不用动的, 几乎一致;
3' 更改Makefile , COBJS添加my2440.o
3. 添加驱动, 把CS8900.C CS8900.H COPY到./drivers/ 目录, 更改其目录下Makefile, 添加cs8900的编译信息;
./drivers/lcd/ 目录下是UBOOT启动时屏幕的LOGO信息, 可以更改;
4. ./lib_arm/目录下 board.c文件中可以添加开机打印信息;
5. ./include/configs/ 目录下添加自己的详细配置信息;
41行, 若你的板子时钟不是12MHz, 请更改;
66行, 分区信息, 与KERNEL的内核信息应该一致;
90行, 加入CS8900的配置
#define CONFIG_DRIVER_CS8900 1
#define CS8900_BASE 0x19000300
#define CS8900_BUS16 1
117行, LCD配置信息, 我的板子如下:
#define SAMSUNG35 8
#define LCD_TFT SAMSUNG35
#elif(LCD_TFT == SAMSUNG35)
#define CONFIG_LCD_VBPD 14
#define CONFIG_LCD_VFPD 4
#define CONFIG_LCD_VSPW 4
#define CONFIG_LCD_HBPD 0
#define CONFIG_LCD_HFPD 4
#define CONFIG_LCD_HSPW 18
#define CONFIG_LCD_CLKVAL 7
218行, 添加传递给KERNEL的命令 "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"
222行, 添加网络配置信息, 包括IP地址, 网关, 服务IP;
239行, 要不要添加命令前置符 "XXX > "
262行, 若你的时钟不是12MHz, 请更改;