狗剩百科

龙芯相关百科全书

用户工具

站点工具


pmon

PMON

目前为止,针对开源社区,龙芯设备主要使用的固件(Bootloader)是PMON。PMON是以带有附加协议的BSD分发的自由软件,支持i386 PowerPC MIPS三种架构。同时,PMON拥有悠久的历史。最初由Phil Bunce 开发(没错,他现在是一个Web开发者)。PMON早期主要针对LSI Logic MIPS R3000开发板,而后被NEC等MIPS设备广泛使用,甚至在Linksys WRT54G 以及 Asus WL-300g这样的路由器上使用。PMON的主要代码自2000年以来就再也没有更新过。一家商业公司Opsycon AB,对PMON进行了开发维护,并衍生出新的分支PMON2000。龙芯的大部分设备均使用PMON2000的基础上更改的版本。
后来,由于U-Boot等轻量Bootloader的流行,PMON开发社区归于沉寂。北京龙芯在给PMON移植更多的设备支持的基础上,还陆续移植了smbios,龙芯“固件与内核接口规范”等功能。
由于龙芯软件维护人手有限,目前PMON的代码质量非常低下,有许多历史遗留问题,但大致还算可以使用。

版本

1.x

仅支持龙芯2F/2E和小部分3A设备。属于遗产版本。具体发布时间等信息已不可考证。支持功能有限。目前可以找到曾经由龙芯梦兰维护的版本的源码,仅能由GCC 2.95工具链(32-bit),GCC 3.4工具链(64-bit)编译。
源代码:https://github.com/kisom/pmon
二进制发布文件大都已经丢失。

2.x

是一个短暂支持过的遗产版本,仅比1.x增加了部分3A/3B设备的支持。

3.x

此版本所有代码均可以在Loongnix的Git树中找到:http://www.loongnix.org/cgit/pmon-loongson3/

3.0

遵循“固件与内核接口规范”的基础版本,2011年10月20日发布

3.1

支持smbios,2012年10月30日发布

3.2

适配了Loongnix的2.6.32内核以及主线内核,针对内存映射等部分做了相应的调整,2014年1月28日发布

3.3

使用新的PMON交叉编译器gcc4.4的版本,2014年7月10日发布

使用

启动流程

按下电源按钮后,CPU就开始从板载Flash上加载PMON的二进制,并开始运行。PMON针对PCI,DRAM,EC, South Bridge等总线设备进行初始化。而后依照顺序从各个设备上寻找boot.cfg(启动描述文件),显示一个引导选择界面,待用户选择完毕,开始加载内核,initrd,并将smbios等内容驻留在内存中,引导内核。
若要终止自动启动过程进入PMON命令行,可以在屏幕亮起后按下DEL键。

命令行

env

显示pmon所有环境变量。

lsdev

列出pmon探测到的所有网络,磁盘,USB存储设备。

pmon.txt · 最后更改: 2018/10/31 04:30 (外部编辑)