移植u-boot、内核是按照别人的教程做的,没什么个人成果,就把重要的修改文件记录下来:
u-boot:
开发板文件夹:/board/samsung/mini2440 (需要在根目录下Makefile中添加mini2440_config)||师兄的:board/open24x0/
开发板头文件:/include/configs/mini2440.h 配置启动设置:NFS启动或者SD卡启动 /
u-boot 第一个要运行的程序:/cpu/arm920t/start.S
链接分配文件:/cpu/arm920t/u-boot.lds
board/samsung/my2440/flash.c
MD9000 网卡驱动:drivers/net/dm9000x.c
u-boot中查看mini2440机器码的位置在:inchlude/asm-arm/mach-types.h
来对 Nand 操作的命令集列表:common/cmd_nand.c
设置u-boot启动文字
/lib_arm/board.c
修改logo在tools/Makefile中定义:
ifeq ($(LOGO_BMP),)
LOGO_BMP= logos/linux_blackfin.bmp
endif
u-boot环境变量
bootargs=noinitrd console=ttySAC0 root=179:2 init=/linuxrc //SD卡启动 bootargs=noinitrd console=ttySAC0 root=/dev/nfs rw
nfsroot=192.168.1.200:/opt/FriendlyARM/mini2440/root_qtopia
ip=192.168.1.70:192.168.1.1:255.255.255.0 init=/linuxrc //NFS启动
bootcmd=nand read.jffs2 0x32000000 0x50000 0x500000; bootm 0x32000000
bootdelay=3
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
ipaddr=192.168.1.70
serverip=192.168.1.1
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:5m@0(kernel),8m(jffs2),-(yaffs)
partition=nand0,0
mtddevnum=0
mtddevname=kernel
linux内核:
u-boot中查看mini2440机器码的位置在:inchlude/asm-arm/mach-types.h
linux内核中查看mini2440的机器码的位置在:arch/arm/tools/mach_types
linux内核对mini2440开发板支持的文件配置在:arch/arm/mach-s3c2440/Kconfig (这里的显示信息只是在内核配置菜单中出现)
linux内核对mini2440开发板nand flash的分区信息在:arch/arm/mach-s3c2440/mach-mini2440.c
分区情况:arch/arm/plat-s3c24xx/common-smdk.c
linux内核对MAC设置在:drivers/net/dm9000.c
linux内核对LCD背光设置在:drivers/video/mini2440_backlight.c
linux内核对LCD的配置和参数设置在:arch/arm/mach-s3c2440/mach-mini2440.c
开机logo在:drivers/video/logo/linux_logo_clut224.ppm
ADC驱动在:drivers/char/mini2440_adc.c (AD输入和触摸屏接口共用A/D转换器)
触摸屏驱动程序在:drivers/input/touchscreen/s3c2410_ts.c
u-boot 提供在 u-boot 启动时传递到内核中取代内核提供的参数。 除了我们最容易知道的 bootargs(即内核 commandline)参数项外,要传递的参数还有 MACH_TYPE(即我们所说的机器码)、系统根设备信息(标志,页面大小)、内存信息(起始地址,大小)、RAMDISK 信息(起始地址,大小)、压缩的 RAMDISK 根文件系统信息(起始地址,大小)。由此可见要传递的参数很多,这时候,u-boot 就提供一种叫做参数链表(tagged list)的方式把这些参数组织起来,链表结构体定义在:include/asm-arm/setup.h 中,而实现链表的组织在 lib_arm/bootm.c 中。
添加驱动需要在drivers目录下的对应文件夹中创建并编写自己的“.c”和“.h”文件,并在Makefile中添加对应的“.o”目标模块。在Kconfig中添加对应的配置项