lophyxp 发表于 2017-1-21 18:13:17

【PMON 研究】【03】PMON 代码执行流程

心映真的空间
苦心励志 技术强国
让我们面对现实 让我们忠于理想
欢迎来到唐刚的首页

PMON 代码执行流程                        
龙芯相关 » PMON 研究 » PMON 代码执行流程                        
PMON 代码执行流程如下图所示

当整个板子起电后,CPU将从 0xBFC00000 取指令开始执行,而ROM在系统中的地址就是从该地址开始的。所以,其中的第一条指令就是整个过程中 CPU 要执行的第一个指令。

[*]初始化CPU内的寄存器,清TLB.
[*]初始化一些北桥的基本配置,以确保uart能够正常工作.
[*]初始化uart,主要是设置波特率.
[*]初始化内存(主要通过I2C协议从内存的EEPROM读取内存参数来进行设置).
[*]初始化cache.
[*]拷贝pmon的代码到内存,然后通过


la      v0, initmips
jalr    v0
nop

从此代码便到内存中间去了,从这开始因为可以读写内存,所以有了栈,故可以用C的代码了,所以以后的程序便是C代码了.
                  

yzwguet 发表于 2017-4-6 15:26:03

咨询下楼主,像龙芯1C这样的CPU,CPU上电复位的时候从存储PMON的SPI-FLash中直接寻址。这时,CPU会从SPI-Flash中拷贝多少数据到内存呢?

lophyxp 发表于 2017-4-6 15:46:31

帖子是转的,你的问题很抱歉,我无法回答。

yzwguet 发表于 2017-4-6 16:32:51

一起研究下呗,我感觉龙芯的资料还不够清晰。不像三星2440那样很明确的告诉你,是拷贝4K数据。

lophyxp 发表于 2017-4-6 21:36:49

PMON也需要更多人的关注。

简单平安 发表于 2017-4-7 10:21:45

yzwguet 发表于 2017-4-6 15:26
咨询下楼主,像龙芯1C这样的CPU,CPU上电复位的时候从存储PMON的SPI-FLash中直接寻址。这时,CPU会从SPI-Fla ...

参考帖子 http://www.openloongson.org/forum.php?mod=viewthread&tid=203&extra=page%3D1&page=2
的17,18,19,20楼,在初始化sdram后,就拷贝nor flash中的到内存了。


pmon源码
Targets\LS1X\ls1x\tgt_machdep.c中,函数tgt_mapenv()
页: [1]
查看完整版本: 【PMON 研究】【03】PMON 代码执行流程