PowerPC-MPC56xx Flash模式启动过程

https://mp.weixin.qq.com/s/SpBOfzJJ1OizYP-rsLJVqQ

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,存放多个系统。

原文地址:https://www.cnblogs.com/wjcdx/p/9206457.html

时间: 2024-10-14 05:04:03

PowerPC-MPC56xx Flash模式启动过程的相关文章

深入理解 JBoss 7/WildFly Standalone 模式启动过程

概述 JBoss 7/WildFly Standalone 模式启动过程大致如下: 启动脚本 standalone.sh 启动 JBoss Modules,JBoss Modules 启动 JBoss MSC,JBoss MSC 运行加载相关的 Services,本文简单以调试代码的方式,简单说明这几个步骤. 调试 jboss modules 当我们完成 JBoss 安装,我们会发现在 JBOSS_HOME 目录下有一个 `jboss-modules.jar`,该 jar 主要加载 JBoss

深入理解 JBoss 7/WildFly Domain 模式启动过程

概述 JBoss 7/WildFly 以 domain 模式启动时会启动多个 JVM,例如如下通过启动脚本启动 domain 模式: ./domain.sh 启动后我们查看进程: [[email protected] tdump]$ jps -l 23655 /home/kylin/work/eap/jboss-eap-6.1/jboss-modules.jar 23671 /home/kylin/work/eap/jboss-eap-6.1/jboss-modules.jar 23736 /h

PowerPC-MPC56xx Flash模式代码启动过程

https://mp.weixin.qq.com/s/iruM5VwKgnH_7nmIQxO0-g 参考第5章 In order for the e200z4d core to be able to access memory, a valid MMU TLB entry has to be created. The SSCM does this automatically by reading the reset vector and modifying TLB entry 0 to crea

google 分屏 横屏模式 按home键界面错乱故障分析(二) 分屏的启动过程

google 进入分屏后在横屏模式按home键界面错乱(二) 你确定你了解分屏的整个流程? Android 关机对话框概率没有阴影故障分析 android recent key长按事件弹起触发最近列表故障分析 google 分屏 popup无法显示故障分析 分享此文便是对代码GG的支持,也是爱的表达方式,所以让爱来的猛烈些吧. 代码阅读,请到此处http://androidxref.com 查看原生代码 前情回顾: google 分屏 横屏模式 按home键界面错乱故障分析(一) 上一节我们主要

Linux启动过程学习

该学习过程是一个Linux从主引导记录到第一个用户空间程序的指导. 启动一个Linux系统的过程包含一系列步骤.但是无论你是启动一个标准的X86桌面或嵌入式PowerPC,大部分流程是相似的.该文章探索Linux从最初的引导程序到开启第一个用户空间程序的过程.同时,我们也将会学到其他一些启动相关的课题,例如引导装载程序,内核解压缩,最初的RAM和其他Linux启动的元素. 早期,引导启动一个计算机意味着提供一个包含启动程序或使用前面板地址/数据/控制开关手动加载一个启动程序的纸带.现在的计算机装

TMS320F2812启动过程

TMS320F2812从内部Flash启动的详细流程说明: 1>程序硬件复位或者软件复位; 2>判断XMP/MC信号状态;若该信号为高电平时是微处理器模式,此时外部接口Zone7有效,Zone7被映射到存储空间的高位,这样向量表指向外部,系统从Zone7启动.若该信号为低电平时是微计算机模式,此时Zone7被禁止,向量表指向Boot ROM,这样系统既可以从内部存储空间启动,也可以从外部存储空间启动. 3>到Boot ROM的0x3FFC00处取出复位向量,跳到Boot函数;(TMS32

linux服务器启动过程

随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统.由于Linux的桌面应用和Windows相比还有一 定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络.在服务器端大多使用Linux和Unix的,目前Linux的擅 长应用领域是单一应用的基础服务器应用,譬如DNS和DHCP服务器.Web服务器.目录服务器.防火墙.文件和打印服务器.Intranet代理服务器 .启动 Linux 系统的过程包括很多阶段.不管您是引导一个标

linux启动过程-//-转

from http://opens.itpub.net/7668319/viewspace-856199/ linux系统的启动过程是由很多步骤组成的,但是,无论你是启动一个标准的x86桌面计算机,还是一个嵌入式PowerPC的目标板,大多数的流程是惊人得相似的.这篇文章,探索了linux从最初的启动准备到用户空间中某个程序被开启之间的启动过程,跟随这个流程,你还能学到其他许多与启动有关的知识,例如,boot loaders,内核解压缩,初始化内存盘,以及其他一些linux启动的部分.[@[em

嵌入式启动过程笔记

内存. sram:静态内存,价格贵容量大,不需要初始化上电就能用. dram:动态内存,价格便宜容量小,需要初始化后才能使用. 在单片机额中,由于内存小希望开发尽量简单,所以内存适合全部用sram,在pc机中,所需内存大,软件复杂,不在乎dram初始化的开销,所以应该全部选用dram,在嵌入式系统中,内存需求量大而且没有norflash等启动介质.(一般内部有iram就是sram用来启动,运行用dram,我推测的). 外存 norflash:容量小,价格贵,可以和cpu总线直接相连,直接读取,所