Jaguar.Yuan 的U-Boot之行——基于s3c2440的移植(免费分享).docVIP

Jaguar.Yuan 的U-Boot之行——基于s3c2440的移植(免费分享).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Jaguar.Yuan 的U-Boot之行——基于s3c2440的移植(免费分享)

/* * @hardware: mini s3c2440 * @author: Jaguar.Yuan * @u-boot version: 2010.9 * @arm-linux-gcc -v: gcc version 4.3.3 */ 版本:2010.09移植时网上最新版本) $ cd board/samsung/ $ cp smdk2410 s3c2440 -a $ cd s3c2440/ 0$ mv smdk2410.c s3c2440.c $ gedit Makefile 修改:COBJS := s3c2440.o flash.o $ cd ../../../include/configs/ $ cp smdk2410.h s3c2440.h $ gedit ../../Makefile 修改约160行:CROSS_COMPILE ?= arm-linux- 在约2231行前添加: s3c2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t s3c2440 samsung s3c24x0 切换到root模式进行编译版本是否可行: yuan@EndSville_CShuai:~/u-boot-2010.09/include/configs$ su 密码: # cd ../../u-boot-2010.09目录下) # make distclean # make s3c2440_config Configuring for s3c2440 board... # make all 直到出现:arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin root@EndSville_CShuai:/home/yuan/u-boot-2010.09# 只能说明一个问题.ok,编译成功了,版本可行,正式开始移植呗: 因为一般要修改nor flash里面的相对简单一点,直接把对应的芯片选对就OK了,但为了做到在Nand flash里就有难度一点,这里做主要是为了从nand flash里启动,接照系统启动的顺利进行修改。 首先修改/arch/arm/cpu/arm920t/start.S文件,这可是系统上电后正式加载的第一个文件 修改113行的内容,因为下面这两行是AT91RM9200DK的内容,S3C2440上面没必要用的东东,所以呢改为: #if defined(CONFIG_AT91RM9200DK) bl coloured_LED_init bl red_LED_on #endif 在148行添加: #define CLK_CTL_BASE 0x4C000000 #define MDIV_405 0x7f 12 #define PSDIV_405 0x21 #define MDIV_200 0xa1 12 #define PSDIV_200 0x31 在修改后的165行(下同,所指的行数均指在前面所说的修改行数后) ldr r1, =0x3ff修改为ldr r1, =0x7ff 所改173行/* FCLK:HCLK:PCLK = 1:2:4 */这是默认的,而2440为1:4:8,所以要进行相应的修改: 173行的mov r1, #3修改为mov r1, #5 并在后面174行后面添加 mrc p15, 0, r1, c1, c0, 0 orr r1, r1, #0xc0000000 mcr p15, 0, r1, c1, c0, 0 mov r1, #CLK_CTL_BASE mov r2, #MDIV_405 add r2, r2, #PSDIV_405 str r2, [r1, #0x04] 接下来感觉是能不能启动的重点,从nand flash启动的,首先就得先在193行后添加: /***** CHECK_CODE_POSITION **********/ adr r0, _start /* r0 - current position of code */ ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ cmp r0, r1 /* dont reloc during debug */ beq stack_setup /****** CHECK_CODE_POSITION *********/ /******* CHECK_BOOT_FLASH *********/ ldr r1, =( (428)|(34)|(32) ) /*

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档