UBOOT 移植操作(2)
[4]开始配置U BOOT
1)给自己板子个公司起个名,我的公司叫T2T 板子叫TT,刚才那个例子公司名DAVE板子名B2 以B2板子的程序做为模板来做,省很多工作 #cd u-boot-1.1.2//进U BOOT目录 #cd board //进BOARD目录,该目录下存放各种公司的开发板,但44B0的好象只有一种B2 #cp -R dave T2T (复制 并且改名) #cd T2T #mv B2 TT (复制 并且改名) #cd TT # mv B2.c TT.c 修改TT里面的Makefile,把B2改成TT,编译时如果报的其它类似找不到B2的错误也是把相应的B2改成TT来处理。 修改T2T/TT/config.mk TEXT_BASE = 0x0c1000000 修改T2T/TT/Makefile 将所有的B2改为TT 2)/include/configs cp B2.h TT.h依旧是把B2的改个名 注意:DAVE的板子是用44B0的,但还有其他板子用吗?怎么确定只有它用?用以下命令 到board目录查了一下: 3)以下文件修改记录 ---------------------------------------------------------------------------------------------------- 找到 #define CONFIG_B2?????????? 1???????? 改成CONFIG_TT 找到 #define CONFIG_S3C44B0_CLOCK_SPEED??? 75??? 主频改成60 找到Size of malloc() pool这部分设置,改成这样。 #define CFG_MONITOR_LEN???????????? (256 * 1024)??? /* Reserve 256 kB for Monitor?????? */ #define CFG_ENV_SIZE????????????????? (64*1024)???????? /* 1024 bytes may be used for env vars*/ #define CFG_MALLOC_LEN?????????????? (CFG_ENV_SIZE + 128*1024 ) #define CFG_GBL_DATA_SIZE???? 128?? /* size in bytes reserved for initial data */ #define CFG_ENV_IS_IN_FLASH????????? 1?? 这个必不可少,如果你想把你的参数保存到flash的话 #define CFG_ENV_OFFSET 0x40000?????? 这个我后来看它源程序发现如果你上一步没有设置它的起始地址的话就会用它来作默认地址的了 #define CONFIG_AUTO_COMPLETE 其它地方没有深究哦,有些好像不要也行,你就试试吧。 找到Hardware drivers部分,这应该是网络芯片设置吧,参考一下这个吧(要看芯片的): #define CONFIG_DRIVER_RTL8019???????? 这个就要看你的板上用的是什么网卡了(这个是台湾出的,有10M) #define RTL8019_BASE???????? 0x06000300??? 这个是网卡相就寄存器的起始地址,有的挂在BANK4上了地址自然是0X08000300 以下部分我试过不要也行,你试下吧 #define RTL8019_BUS32????????????? 0 #define CONFIG_SMC_USE_16_BIT #undef?? CONFIG_SHOW_ACTIVITY #define CONFIG_NET_RETRY_COUNT??????????? 10??????? 应该是重试的次数吧
#define CONFIG_BAUDRATE????????????? 115200?? 设置波特率
???????????????????????????????????????????????????????? CFG_CMD_DATE | ???????????????????????????????????????????????????????? CFG_CMD_ELF???? | ???????????????????????????????????????????????????????? CFG_CMD_NET???? | ???????????????????????????????????????????????????????? CFG_CMD_EEPROM??? | ???????????????????????????????????????????????????????? CFG_CMD_I2C???????????? | ???????????????????????????????????????????????????????? CFG_CMD_FAT | ???????????????????????????????????????????????????????? CFG_CMD_JFFS2) 把CFG_CMD_EEPROM改成CFG_CMD_FLASH吧,虽然不改也是可以的,具体没考究。
#define CONFIG_BOOTDELAY??? 3???????????????? 这个就是运行bootcmd之前的等待时间 #define CONFIG_BOOTARGS?? "devfs=mount root=ramfs console=ttyS0,115200" 引导uClinux的时候传递的参数,不会就先不用管它也行。 #define CONFIG_ETHADDR??????? 00:50:c2:1e:af:fb???? 网卡的物理地址MAC #define CONFIG_NETMASK?? 255.255.255.0??????? 掩码地址,设置过ip的人都应该知道吧 #define CONFIG_IPADDR??? 192.168.0.30?????????? 这是你板上网卡8019的ip地址 #define CONFIG_SERVERIP??????? 192.168.0.10??????? 这是你宿主机的ip地址,以后用tftp下载的时候用到,一定要跟你的宿主机一致才行。 #define CONFIG_BOOTFILE??????? "u-boot.bin"???????? 这个就是你要下载文件的默认名字,注意的是不是UBOOT编译的文件 而是UBOOT下载以后在这个地址执行这个文件,比如这个文件在下LINUX后就常被改成UCLINUC.BIN了 #define CONFIG_BOOTCOMMAND??? "bootm 0x50000"??? 这是bootdelay后运行的命令
#define???? CFG_LONGHELP??????????????????????? /* undef to save memory??????? */ #define???? CFG_PROMPT?????? "TENWAY=>"??? 这是进入命令模式下的提示符,改个帅一点的吧 #define???? CFG_CBSIZE???????? 256????????? /* Console I/O Buffer Size????? */ #define???? CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ #define???? CFG_MAXARGS?????????? 100?????????????? /* max number of command args?? */ #define CFG_BARGSIZE????????????? CFG_CBSIZE /* Boot Argument Buffer Size??????? */
#define CFG_MEMTEST_END??????????? 0x0C800000??? /* 4 ... 8 MB in DRAM?? */ #undef?? CFG_CLKS_IN_HZ?????????????? /* everything,incl board info,in Hz */ #define???? CFG_LOAD_ADDR????????????? 0x0c008000???? 默认的下载地址 #define???? CFG_HZ?????????????????????? 1000?????????????? /* 1 kHz */ #define CFG_BAUDRATE_TABLE?? { 9600,19200,38400,57600,115200 } 可供选择的波特率 Physical Memory Map部分,比较重要,修改你的sdram和flash的地址和容量。 #define CONFIG_NR_DRAM_BANKS 1???????? 我们只占用了一个Bank用来映射sdram #define PHYS_SDRAM_1???????????? 0x0c000000????? sdram的起始地址 #define PHYS_SDRAM_1_SIZE??? 0x00800000????? sdram的容量(8M) #define PHYS_FLASH_1?????????????? 0x00000000????? flash的起始地址 #define PHYS_FLASH_SIZE???????? 0x00200000 flash的容量(2M) #define CFG_FLASH_BASE????????? PHYS_FLASH_1??? 定义多个名字而已,其它地方会用到 注意: FLASH organization部分,看注释应该知道了吧,参考一下: #define CFG_FLASH_ERASE_TOUT 4120000 /* Timeout for Flash Erase (in ms) 在前面加个4让它长点 */ #define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */ 其他地方还没动 以后动的再补上 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |