dm6446 系统引导过程

一、引导过程

1、系统接收

       DM6446基于ARM9+DSP架构,存储空间的分配与一般的ARM9处理器不同,DM6446的存储空间利用率很高,有很大部分空间是ARM与DSP核共用或只分配给DSP用。 EMIF: external Memory Interface 外部存储接口,共有四个可用Bank,每个Bank 32M。通过CS2,CS3,CS4,CS5 PIN来片选,对应CE0,CE1,CE2,CE3。

地址分配如下:
CE0:      0x0200 0000----0x03FF FFFF
CE1:      0x0400 0000----0x05FF FFFF
CE2:      0x0600 0000----0x07FF FFFF
CE3:      0x0800 0000----0x09FF FFFF

 

2、引导过程

        DM6446上电复位后,将运行片内ROM中的RBL(Rom BootLoader)程序,RBL根据BTSEL[0-3]来确定启动方式,如果是从Nand启动,RBL将从NandFlash的Block 1处加载UBL程序到内部RAM指定地址处(0x0100)运行。该指定地址是在烧写UBL二进制文件时由烧录程序自动添加在UBL文件前面的,保存在头信息(Header)的第一个字(Uint32)。之后UBL再加载u-boot到DDR指定地址(0x81080000),该地址也同样是由烧录程序添加在u-boot前面的文件头的第一个字(Uint32)。之后控制权就交给了U-boot。

3、空间大小

       在我们设计的板子中,nandflash使用的是128Mib的,每页大小为2048bytes,每块有64页。UBL放在block1,U-boot放在block6,其后的kernel和rootfs可自行调整。 实际设计时我们的NandFlash 分区如下:

Partition      start                               end                    size
Uboot:        0x000C      0000----------0x000F FFFF     256k (0x0004 0000)
Kernel:       0x0014      0000----------0x0033 FFFF      2M    (0x0020 0000)
Rootfs:       0x0034      0000----------0x0433 FFFF      64M  (0x0400 0000)
Userfs:    0x0434      0000----------0x0800 0000     ~61M  (0x03CC 0000)

 

4、启动信息

      Linux 启动时信息
      DaVinci NAND Controller rev. 2.1
      NAND device: Manufacturer ID: 0x2c, Chip ID: 0xa1 (Unknown NAND 128MiB 1,8V 8-bit)
      Scanning device for bad blocks
      Creating 4 MTD partitions on "NAND 128MiB 1,8V 8-bit":
      0x000c0000-0x00100000 : "uboot"
      0x00140000-0x00340000 : "kernel"
      0x00340000-0x04340000 : "rootfs"
      0x04340000-0x08000000 : "userfs"

5、NandFlash 烧写示意图

      NandFlash烧写存储空间示意图:

                   

      Header信息是烧写程序根据在烧录过程中加入的,并非UBL或U-boot本身含有。

6、DDR

      DDR空间为0x8000 0000到0x8FFF FFFF 共256M。 系统由UBL引导到u-boot后,控制权就给了u-boot,由u-boot进行一系列的初始化工作。然后加载linux 内核镜像,启动linux。

      DDR存储空间示意图:

                   

        U-boot 会在内核镜像文件前加0x40 个字节的头信息,所以真正内核的入口地址在 0x82000040处,这点在用mkimage制作uImage时要注意。
   ./mkimage -n  'linux-2.6.10' -A  arm -O  linux -T  kernel -C  none -a  0x82000000 -e  0x8200040 -d zImage uImage

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值