加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

uboot移植

发布时间:2020-12-15 17:59:51 所属栏目:百科 来源:网络整理
导读:? 1.修改?Makefile ?????使其支持smd2440 ??2.复制头文件?? ?????/include/configs/smdk2440.h ?? 3.复制board文件夹 ??????/board/smdk2440 ? ?4.时钟的设置 ?? 5.sdram的配置 ?????位宽?刷新周期。。。 ??6.支持?norflash? ???????目的??????????????;???

?1.修改?Makefile
?????使其支持smd2440
??2.复制头文件??
?????/include/configs/smdk2440.h
??3.复制board文件夹
??????/board/smdk2440

??4.时钟的设置

??5.sdram的配置
?????位宽?刷新周期。。。

??6.支持?norflash?

???????目的??????????????;???实现用命令擦除,烧写nor?flash?

???????支持的norflash分类;?uboot?1.1.6?默认支持amd_lv400??amd_lv800?或??CFI接口norflash??

????????????????????????????(其他类型的norflash需要自己写驱动)

????????接口函数?????????;???amd_lv400??amd_lv800?的接口函数在/board/smdk2440/flash.C??需要添加到?Makefile?里

?????????????????????????????CFI接口norflash的接口函数在/drivers/Cfi_flash.c?中????

????类型选择方式???;???配置文件(/include/configs/smdk2440.h)中定义

??????????????????CONFIG_AMD_LV400?或?CONFIG_AMD_LV400?或CFG_FLASH_CFI_DRIVER?

??????????????????决定使用哪种?flash
??7.??支持串口xmodem协议?

?????????目的????????????使用securecrt工具操作?uboot

?????????常用的串口协议?xmodem?ymodem?zmodem

??8.支持网卡cs9000

?????????网卡属于内存类接口??这配置sdram时?已经将其配置?

?????????主要检查他的?位宽

?????????同时配置文件???(/include/configs/smdk2440.h)中做定义

?????????#define?CONFIG_DRIVER_CS8900?1??
?????????#define?CS8900_BASE
?????????#define?CS8900_BUS16??

??9.支持dm9000

????????同时配置文件???(/include/configs/smdk2440.h)中做定义

????????#define?CONFIG_DRIVER_DM9000??1
????#define?CONFIG_DM9000_USE_16BIT??1
????#define?CONFIG_DM9000_BASE???0x20000000
????#define?DM9000_IO?????0x20000000??
????#define?DM9000_DATA?????0x20000004
?10.支持?nandflash

???????uboot?对nand的支持有新旧两套代码??/drivers/nand??/drivers/nand_legacy

???????配置文件的配置?????
?????????????CONFIG_COMMANDS?中添加?CFG_CMD_NAND??

???????两套代码的选择

?????????????默认选择???/drivers/nand??当定义CFG_NAND_LEGACY
???????一些宏的定义

????????????#define?CFG_NAND_BASE???????????0??基地址
??????#define?CFG_MAX_NAND_DEVICE?????1?设备个数
????????????#define?NAND_MAX_CHIPS??????????1??一个设备由几片?nand芯片组成

????????nand的初始化函数???nand_init()

????????????nand_init()
?????????????????-->nand_init_chip
??????????????????????????-->?board_nand_init(这个函数需要自己写)

????????????在include/s3c24x0.h中添加?nand的结构体???
??????????????????typedef?struct?{
?????????????S3C24X0_REG32???NFCONF;
?????????????S3C24X0_REG32???NFCONT;
?????????????S3C24X0_REG32???NFCMD;
?????????????S3C24X0_REG32???NFADDR;
?????????????S3C24X0_REG32???NFDATA;
?????????????S3C24X0_REG32???NFMECCD0;
?????????????S3C24X0_REG32???NFMECCD1;
?????????????S3C24X0_REG32???NFSECCD;
?????????????S3C24X0_REG32???NFSTAT;
?????????????S3C24X0_REG32???NFESTAT0;
?????????????S3C24X0_REG32???NFESTAT1;
?????????????S3C24X0_REG32???NFMECC0;
?????????????S3C24X0_REG32???NFMECC1;
?????????????S3C24X0_REG32???NFSECC;
?????????????S3C24X0_REG32???NFSBLK;
?????????????S3C24X0_REG32???NFEBLK;
??????????}?/*__attribute__((__packed__))*/?S3C2440_NAND;

??????在include/s3c2410.h中添加?s3c2440_GetBase_NAND?函数

??????写board_nand_init()函数在cpu/arm920t/s3c24x0/nand_flash.C

??????这里的内容可以参考内核drivers/mtd/nand/s3c2410.c编写?

?11.?支持yaffs根文件系统的烧写?

?12.默认参数的定义??????????配置文件???(/include/configs/smdk2440.h)中做定义?????????传给内核???????????????#define?CONFIG_SETUP_MEMORY_TAGS????1??????#define?CONFIG_CMDLINE_TAG??????????1?????????在do_bootm_linux里设置tags判断?????????启动参数;?????????#define?CONFIG_BOOTDELAY?2?????????#define?CONFIG_BOOTARGS?????"noinitrd?root=/dev/mtdblock3?init=/linuxrc?console=ttySAC0"???????#define?CONFIG_BOOTCOMMAND?"read.jffs2?0x30007FC0?kernel;?bootm?0x30007FC0"???????网洛参数???????#define?CONFIG_ETHADDR?????08:00:3e:26:0a:5b???????#define?CONFIG_NETMASK??????255.255.255.0???????#define?CONFIG_IPADDR??192.168.7.17???????#define?CONFIG_SERVERIP??192.168.7.11???????其他???????#define?CFG_PROMPT??"OpenJTAG>?"?/*?Monitor?Command?Prompt?*/??命令前缀??????????

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读