• 君正X2000开发板试用体验之二:君正X2000引导过程分析


    X2000内部集成了32KB Boot ROMCPU上电复位后先执行Boot ROM中的程序。

    X2000芯片上的三个引脚 BOOT_SEL0, BOOT_SEL1, BOOT_SEL2 决定了X2000的启动方式。

    默认情况下,开发板的CON1CON2两个跳线帽连接2-3插针,BOOT_SEL0BOOT_SEL2通过下拉电阻接地,因此默认的启动方式为SFC0@PE3.3V;如果将两个跳线帽连接1-2插针,

    BOOT_SEL0BOOT_SEL2上拉至1.8V则启动方式可以更改为MSC0@PD1.8V

    CPU启动时,首先执行Boot ROM中的代码,引导程序进行一些基本的初始化动作(主要是SPI控制器初始化)之后,将SPI Flash上的辅助程序装载器(Secondary Program Loader, SPL)装入SRAM中。X2000中集成了32K SRAM,其地址范围为0xB2400000 ~ 0xB2408000

    SRAM的内存布局如上图所示,其中开头的4K用于堆栈和数据空间。因此引导程序会跳转到0xb2401000处开始执行SPL代码。spl signature (512B)用于存储启动类型信息,随后的 sc boot keys (1.5K)用于安全引导,spl.text(不到22K512字节对齐)是真正的代码段。

    之所以需要SPL,是因为SRAM数量有限(X2000只有32KB),通常uboot可执行文件的大小远远大于SRAM大小,而此时DRAM尚未初始化,因而DRAM不可用。SPL将初始化DRAM,将uboot装入内存并跳转去执行。

    启动顺序大体上是:

    Boot ROM --> SPL --> uboot --> kernel

    类似于X86 PC的启动顺序:

    BIOS --> MBR --> GRUB --> kernel
  • 相关阅读:
    体验cygwin纪实
    播布客视频PIT专用播放器MBOO2015
    rpm基本命令参考
    rhel7.x配置本地yum
    mtr网络连通性测试
    Oracle下载汇聚
    Spring Cloud心跳监测
    Hystrix的用法
    Redis系列十:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
    dubbo异步调用三种方式
  • 原文地址:https://www.cnblogs.com/brep/p/13343668.html
Copyright © 2020-2023  润新知