• PowerPC-MPC56xx Flash模式启动过程


     
    Flash启动模式为最常用模式。
    一般情况下,芯片上电之后,从flash起始位置读取第一条指令的地址,然后跳转到改地址处执行,进行一系列初始化动作。
    flash起始位置存放的一般为reset中断处理程序的地址。
     
    MPC56xx SoC的启动模块,做的更多。但背离了惯常做法,增加学习成本,吃力未必讨好。
     
    一. Flash地址区间
    芯片逻辑System Status and Configuration Module (SSCM)模块按地址从低到高,逐个检查Boot sector,看是否包含合法的BOOT_ID(0x5A),如果有,则选择该Boot sector使用。
    如果所有的都找完之后,没有发现合法的Boot sector,则进入静态模式。
     
    二. 静态模式
    找不到合法的Boot sector,SSCM执行如下动作:
    1. 为从BAM起始位置开始的4KB区间,创建MMU TLB entry,默认为VLE指令模式;
    2. 设置CPU的程序计数器(PC)指向BAM首地址,并开始执行以进入静态模式。
    这个程序执行如下过程:
    a. 打开看门狗Software Watchdog Timer (SWT);
    b. 执行wait指令,暂停CPU执行;
    3. 大约10ms后,SWT看门狗触发reset程序,再次搜索合法的Boot sector;
    如此周而复始。
     
    三. Boot sector
    Boot sector包含两项内容:
    1. 16-bit Reset Configuration Half Word (RCHW),包含BOOT_ID和VLE模式开关;
    2. 32-bit reset vector,如果Boot sector合法,则SSCM将CPU的PC指向这个地址开始执行;
     
    PS. 从flash结构图可以看出,可以配置多个boot sector,存放多个系统。
  • 相关阅读:
    Sql Server2012连接不上问题
    WinForm的App.config写法
    (原)centos 防火墙开放端口命令
    Linux下rsync的用法
    Centos7下部署minio
    arthas简单使用
    在Docker中运行MinIO单点模式
    中台是什么
    Kubernetes K8S之Ingress详解与示例
    Rancher2.x平台搭建与使用
  • 原文地址:https://www.cnblogs.com/wjcdx/p/9206457.html
Copyright © 2020-2023  润新知