移植u-boot、內(nèi)核是按照別人的教程做的,沒什么個人成果,就把重要的修改文件記錄下來:
u-boot:
開發(fā)板文件夾:/board/samsung/mini2440 (需要在根目錄下Makefile中添加mini2440_config)||師兄的:board/open24x0/
開發(fā)板頭文件:/include/configs/mini2440.h 配置啟動設(shè)置:NFS啟動或者SD卡啟動 /
u-boot 第一個要運行的程序:/cpu/arm920t/start.S
鏈接分配文件:/cpu/arm920t/u-boot.lds
board/samsung/my2440/flash.c
MD9000 網(wǎng)卡驅(qū)動:drivers/net/dm9000x.c
u-boot中查看mini2440機器碼的位置在:inchlude/asm-arm/mach-types.h
來對 Nand 操作的命令集列表:common/cmd_nand.c
設(shè)置u-boot啟動文字
/lib_arm/board.c
修改logo在tools/Makefile中定義:
ifeq ($(LOGO_BMP),)
LOGO_BMP= logos/linux_blackfin.bmp
endif
u-boot環(huán)境變量
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內(nèi)核:
u-boot中查看mini2440機器碼的位置在:inchlude/asm-arm/mach-types.h
linux內(nèi)核中查看mini2440的機器碼的位置在:arch/arm/tools/mach_types
linux內(nèi)核對mini2440開發(fā)板支持的文件配置在:arch/arm/mach-s3c2440/Kconfig (這里的顯示信息只是在內(nèi)核配置菜單中出現(xiàn))
linux內(nèi)核對mini2440開發(fā)板nand flash的分區(qū)信息在:arch/arm/mach-s3c2440/mach-mini2440.c
分區(qū)情況:arch/arm/plat-s3c24xx/common-smdk.c
linux內(nèi)核對MAC設(shè)置在:drivers/net/dm9000.c
linux內(nèi)核對LCD背光設(shè)置在:drivers/video/mini2440_backlight.c
linux內(nèi)核對LCD的配置和參數(shù)設(shè)置在:arch/arm/mach-s3c2440/mach-mini2440.c
開機logo在:drivers/video/logo/linux_logo_clut224.ppm
ADC驅(qū)動在:drivers/char/mini2440_adc.c (AD輸入和觸摸屏接口共用A/D轉(zhuǎn)換器)
觸摸屏驅(qū)動程序在:drivers/input/touchscreen/s3c2410_ts.c
u-boot 提供在 u-boot 啟動時傳遞到內(nèi)核中取代內(nèi)核提供的參數(shù)。 除了我們最容易知道的 bootargs(即內(nèi)核 commandline)參數(shù)項外,要傳遞的參數(shù)還有 MACH_TYPE(即我們所說的機器碼)、系統(tǒng)根設(shè)備信息(標(biāo)志,頁面大小)、內(nèi)存信息(起始地址,大小)、RAMDISK 信息(起始地址,大小)、壓縮的 RAMDISK 根文件系統(tǒng)信息(起始地址,大小)。由此可見要傳遞的參數(shù)很多,這時候,u-boot 就提供一種叫做參數(shù)鏈表(tagged list)的方式把這些參數(shù)組織起來,鏈表結(jié)構(gòu)體定義在:include/asm-arm/setup.h 中,而實現(xiàn)鏈表的組織在 lib_arm/bootm.c 中。
添加驅(qū)動需要在drivers目錄下的對應(yīng)文件夾中創(chuàng)建并編寫自己的“.c”和“.h”文件,并在Makefile中添加對應(yīng)的“.o”目標(biāo)模塊。在Kconfig中添加對應(yīng)的配置項