u-boot移植5-从nandflash启动.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Uboot移植5--支持从nand flash启动 同时支持norflash和nandflash启动 方法一:在时钟修改方法一条件下:修改cpu/arm920t/start.S /*#ifndef CONFIG_SKIP_RELOCATE_UBOOT relocate: */ /* relocate U-Boot to RAM */ 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*/ ldr r0, ldr r0,[r0] ands r0,r0,#6 bne nor_boot #define LENGTH_UBOOT 0x60000 #define NAND_CTL_BASE 0x4e000000 /*offset*/ #define oNFCONF 0x00 #define oNFCONT 0x04 #define oNFCMD 0x08 #define oNFSTAT 0x20 nand_boot: mov r1,#NAND_CTL_BASE ldr r2,=((712)|(78)|(74)) str r2,[r1,#oNFCONF] ldr r2,[r1,#oNFCONF] ldr r2,=((14)|(01)|(10)) str r2,[r1,#oNFCONT] ldr r2,[r1,#oNFCONT] ldr r2,=(0x6) str r2,[r1,#oNFSTAT] ldr r2,[r1,#oNFSTAT] mov r2,#0xff str r2,[r1,#oNFCMD] mov r3,#0 nand1: add r3,r3,#0x1 cmp r3,#0xa blt nand1 nand2: ldr r2,[r1,#oNFSTAT] tst r2,#0x4 beq nand2 ldr r2,[r1,#oNFCONT] orr r2,r2,#0x2 str r2,[r1,#oNFCONT] ldr sp, DW_STACK_START mov fp, #0 ldr r0, =TEXT_BASE mov r1, #0x0 mov r2, #LENGTH_UBOOT bl nand_read_ll tst r0, #0x0 beq ok_nand_read bad_nand_read: loop2: b loop2 ok_nand_read: mov r0, #0 ldr r1, =TEXT_BASE mov r2, #0x400 go_next: ldr r3, [r0], #4 ldr r4, [r1], #4 teq r3, r4 bne notmatch subs r2, r2, #4 beq stack_setup bne go_next notmatch: loop3: b loop3 nor_boot: adr r0, _start /* r0 - current position of code */ ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ ldr r2, _armboot_start ldr r3, _bss_start sub r2, r3, r2 /* r2 - size of armboot */ add r2, r0, r2 /* r2 - source end address */ copy_loop: ldmia r0!, {r3-r10} /* copy from source address [r0] */ stmia r1!, {r3-r10} /* copy to target address [r1] */ cmp r0, r2 /* until source end addreee [r2] */ ble copy_loop /* Set up the stack */ 接着在board/mao2440下新建文件nan

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档