loongson:pmon

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
loongson:pmon [2022/09/23 20:14] – 移除 - 外部编辑 (Unknown date) 127.0.0.1loongson:pmon [2022/09/23 20:14] (当前版本) – ↷ 页面pmon被移动至loongson:pmon mariabombardier
行 1: 行 1:
 +====== PMON ======
 +目前为止,针对开源社区,龙芯设备主要使用的固件(Bootloader)是PMON。PMON是以带有附加协议的BSD分发的自由软件,支持i386 PowerPC MIPS三种架构。同时,PMON拥有悠久的历史。最初由[[http://www.philbunce.com|Phil Bunce]] 开发(没错,他现在是一个Web开发者)。PMON早期主要针对LSI Logic MIPS R3000开发板,而后被NEC等MIPS设备广泛使用,甚至在Linksys WRT54G 以及 Asus WL-300g这样的路由器上使用。PMON的主要代码自2000年以来就再也没有更新过。一家商业公司[[https://www.opsycon.se|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存储设备。