龙芯PMON的常用命令,供大家快速熟悉龙芯PMON

[复制链接]
KeoLinux 发表于 2019-8-2 22:49:22 | 显示全部楼层 |阅读模式
龙芯平台计算机目前多采用PMON(Prom Monitor)作为基本的输入输出系统(BIOS)。

PMON具有强大而丰富的功能,包括硬件初始化、操作系统引导和硬件测试、程序调式等功能。

它提供多种加载操作系统的方式,可以从优盘、光盘、tftp服务器和硬盘等媒介加载;它提供对内存、串口、显示、网络、硬盘等的基础测试工具;此外,它还支持软件升级。
进入PMON控制界面
  作为一款通用pmon处理器,pmon支持很多种平台的启动。系统上电后,从0xbfc00000处开始运行pmon,随后pmon会完成初始化cpu,内存,总线等设备及对串口、键盘、鼠标等外设进行基础测试等一些列工作,进入pmon的字符界面。
  下面是三种加载linux内核的方法,在规定的7秒之内,如果不选择除enter键之外的其他按键的话,则会通过usb,光盘,硬盘自动加载内核,否则会进入PMON的界面,相关的提示会出现在字符界面上,如:

PMON>
U盘加载
load /dev/fs/ext2@usb0/vmlinuxboot
load (usb0,0)/vmlinuxboot
  在这有7秒的等待时间,让用户选择,如果你采用usb加载内核,在这个等待过程中就可以选择u来进行选择,或者按下除enter外的任意键则会进入PMON控制界面。

光盘加载
load /dev/fs/iso9660@cd0/boot/vmlinuxboot
load (cd0,0)/boot/vmlinuxboot
  在这有7秒的等待时间,让用户选择,如果你采用光盘加载内核,在这个等待过程中就可以选择c来进行选择,或者按下除enter外的任意键则会进入PMON控制界面。

硬盘加载
load /dev/fs/iso9660@wd0/boot/vmlinuxboot
load (wd0,0)/boot/vmlinuxboot
备注:PMON自2016年底开始支持以上两种语法格式。

Pmon的图形界面
  系统上电,完成基本的初始化后,会有等待<EL>进入pmon图形界面设置的提示,一般会等待3秒钟,当用户按下[DEL]键,会再次进入Pmon的图形设置界面。此外,还可以在pmon的字符控制界面输入main命令进入pmon图形的设置。以下逐一介绍在图形界面的使用:

SystemInfo 页:是启动pmon图形界面的显示的第一页。给出了时间、CPU名及其频率、内存大小、基本的指令和数据Cache大小、MAC地址等等信息。右面一览给出简单提示,屏幕的最下方给出不同按键的功能。在该页中,可以对时间进行调整,点击进入时间和日期调整,进入其调整的二级页面,输入新的时间和日期,保存退出。
BOOT页:在该页中可以指定系统从哪个盘启动,3a系统提供6个接口,可以挂在sata盘、光盘等等不同介质,同时也可以选择从usb启动内核。
Safe页:该页为设置pmon密码,输入密码并保存后,下次启动bios图形界面时需要输入命令才可进入。注意:请谨慎记住该密码,否则请联系生产厂商。
Exit页:该页提供四个选项:保存退出、不保存退出、退回到PMON、自动加载内核。在图形界面里有所改动、需要保存的话,需要在这次进行保存。




Pmon的基本命令
在PMON的字符界面提示下,
如下所示: “PMON>”
在这个界面,可以输入命令使用PMON的各种功能。其中h命令列出了当前pmon使能的所有命令,如:PMON>h 回车。要查看具体命令的用法,如:PMON> h load 回车,即查看load命令的用法。
h命令按组列出不同的命令,下面将按组一一介绍每个命令的用法及功能。(其中,第一列是命令,第二列是命令的帮助文档,中文是命令的功能及使用方法)。
Boot and Load 启动与加载内核
boot boot 启动pmon的命令,主要用来初始化cpu,mem,pci等
oload load memory from hostport 从端口加载内存
load load file 加载file文件,是pmon加载内核的命令,一般用在启动时加载内核,和pmon升级时软件模式的升级命令,目前PMON支持4种加载方式,前三种分别是:
load /dev/fs/ext2@wd0/vmlinux  为从硬盘加载内核。
load /dev/fs/ext2@usb0/vmlinuxboot 从优盘加载内核
load /dev/fs/iso9660@cd0/boot/vmlinuxboot 从光盘加载内核
第四种是tftp方式加载内核,使用这种方式,首先要保证tftp服务可以正常使用,其次必须配置好网络,具体的配置如下:
1)配置网络命令: ifaddr rte0 10.2.5.114 其中ifaddr是配置网络的命令,rte0是网卡设备,机器不同对应的该设备类型不一致,具体可使用devls查看,10.2.5.114是本机ip地址,注意要和tftp服务器在一个网段。
2)可以通过命令:ping 10.2.5.1 即查看本机到10.2.5.1网段是否通,有数据则网络畅通。
3)网络设置好以后,就可以从tftp上加载内核了。 具体操作如下:

load tftp://10.2.5.22/vmlinux.3bdgem 等待内核加载完毕vmlinux.3bdgem为对应的内核版本号。
MyCmds

1、pcs

select pci dev function  设置pci设备的访问空间
pcs   0  普通32位 cpu地址
pcs  -1  64位 uncache访问物理地址
pcs  -2  64位cache访问物理地址
pcs  -3  直接访问64位cpu地址
pcs  bus dev func 设置访问pci参数为bus=0,dev=0,func=0

2、d[1-8]

dl  0x1fc00000 100    查看地址0x1fc00000处的值开始的100个字节

d1 dump address byte    查看address地址的值,以byte为单位,默认为1,例如 d1 0x80300000 1 即为读取0x80300000处一个byte的内容
d2 dump address half word    查看address地址的值,以half word为单位,默认为1,例如d1 0x80300000 2 即为读取0x80300000处2个half word的内容
d4 dump address world    查看address地址的值,以half word为单位,默认为1,例如d1 0x80300000 2 即为读取0x80300000处2个word的内容
d8 dump address double world    查看address地址的值,以double word为单位,默认为1,例如d1 0x80300000 即为读取0x80300000处1个double word的内容

3、m[1-8]

m1 modify address byte    在address地址处写入一个byte大小的值,例如m1 0x80300000 0x12 即把0x12写入0x8030000的位置
m2 modify address half word    在address地址处写入一个half word大小的值,例如m1 0x80300000 0x1234 即把0x1234写入0x8030000的位置
m4 modify address world    在address地址处写入一个word大小的值,例如m1 0x80300000 0x12345678 即把0x12345678写入0x8030000的位置
m8 modify address double world    在address地址处写入一个double word大小的值,例如m1 0x80300000 0x1234567812345678 即把0x1234567812345678写入0x8030000的位置

4、setkbd

set kbd_available    查看或设置键盘可用或不可用,其中1为键盘可用,2为usb_kbd可用,0为不可用。只敲setkbd命令,则查看当前键盘和usb的是否可用状态,如下所示:
PMON>setkbd
kbd_available=0,usb_kbd_available=0
如想设置,则可以使用setkbd –t kbd_availble=1设置键盘可用。
目前3a的板子上kbd_available=0的功能不起作用,即即使设置了键盘不可用,其仍旧可用,但是usb不可用。

5、setinput

set input_from_both 输入和输出都是使能的为1, 0表示不支持输入和输出的功能。单独使用setinput命令,则查看当前输入输出状态,如下所示:
PMON>setinput
input_from_both=1,output_to_both=1    都为1则表示既可以接收输入也可以输出。
PMON>setinput 0    即设置输入不能用,此时如论使用什么设备如键盘,usb,串口,pmon均不接受输入的数据。重启可以恢复。(建议用户不要设置该项功能)。

6、setoutput

set output_from_both    输入和输出都是使能的为1, 0表示不支持输入和输出的功能。单独使用setoutput命令,则查看当前输入输出状态,如下所示:
PMON>setinout
input_from_both=1,output_to_both=1    都为1则表示既可以接收输入也可以输出。
PMON>setoutput 0    即设置输出不能用,此时任何数据均不能输出,PMON字符界面消失。重启可以恢复。(建议用户不要设置该项功能)。

7、initkbd

kbd_initialize 初始化外设设备,如键盘、鼠标等,同时会检测时钟、数据线。如下所示:
PMON>initkbd   
若初始化失败则显示:
KBD_TEST cmd failed,ignored!

8、loop

loopcmd count cmd...    循环执行某个命令,格式:loop cmd count即:循环count次执行cmd的命令。如下所示:
PMON> loop 2 date    即循环执行2次date命令,并显示NO.号
NO 1
wed Jan 26 09:57:21 2011
NO 2
wed Jan 26 09:57:21 2011

9、Loop

loopcmd count cmd...     循环执行某个命令,格式:loop cmd count即:循环count次执行cmd的命令。如下所示:
PMON>Loop 2 date    即循环执行2次date命令
wed Jan 26 09:57:38 2011
wed Jan 26 09:57:38 2011

10、fdisk

dump disk partation    读出disk的信息,其用法如下:
PMON>fdisk wd0    回车后显示wd0的信息,包括其大小、已用及剩余容量等等。


11、ifconfig

ifconfig fxp0 [up|down|remove|stat|setmac|readrom|setrom|addr] [netmask]  配置网络ip地址,fxp0为网卡设备号,可以使用devls命令查看具体网卡名称。

12、ifup

ifup fxp0 启动网络设备,fxp0因不同的设备而不同,如3a的板子是rte0

13、ifdown

ifdown fxp0  关闭网络设备fxp0

14、sleep

sleep ms  让pmon睡眠几毫秒

15、sleep1

sleep1 s    让pmon睡眠几秒钟,这期间除了强制关机、重启功能正常,其他均不可用。

16、memcpy

mymemcpy src dst count     从源地址src拷贝count大小的内容到目的地址dst
例如:

memcpy 0x8030000 0x80400000 2    即为从0x8030000拷贝2个byte的 内容到0x80400000的地址上。

17、mycmp

mecmp s1 s2 len    比较内存s1 和s2中len大小的长度

18、flashs

select flash for read/write    选择可读写的flash

19、flash

flash [-qev][[[addr]size]data]    把size大小的data烧写到给定的设备上。
flash 或 flash –q    列出当前flash的信息,
flash –e 0x8030000 100    擦除0x8030000处的内容。

20、devcp copy form src to dst
从源disk设备复制到目的disk设备

21、xmodem和ymodem
支持xmodem、ymodem协议的串口机制,在base和file之间传递数据,其命令格式如下:
xmodem xmodem [base=baseaddr] [file=filename] 在base与file之间传递数据
ymodem ymodem [base=baseaddr] [file=filename]

22、sysinfo
hardware test 对串口,cpu,网络等进行测试,并输出测试结果,可以单独列出要输出的信息,如sysinfo cpu 即输出cpu的消息。

23、info
hardware test 对硬件进行测试并输出测试信息

24、setup
setup boot loader 准备启动load,首先从硬盘上检测是否有可用的内核。

25、 |
run cmd and return 0 ‘|‘的作用是执行命令

26、losetup
losetup 为disk设备赋值,默认为:
Losetup loopdev0 devfile bs=0x20000 count=-1 seek=0

27、pnps
select pnp ops for d1,m1 为d1或者m1选择i/o,dma,内存段pnp支持的服务等

28、dumpsis
dump sis registers 打印系统寄存器的信息.

29、i2cs
select i2c ops for d1,m1 为d1或m1选择时钟总线,i/o,数据采集等等。

MISC
1、devls list devices 列出当前所有设备,如:
PMON>devls
DiskDrive name type
loopde0 Disk
rteo net
2、flush flush caches 刷新cache
3、reboot reboot system 重启系统
4、poweroff reboot system 直接关机
5、halt reboot system 挂起待机状态
6、flash program flash emmory 对flash进行编程,可以把size大小的data烧写到给定的设备上。或擦出更改flash的内容。
flash 或 flash –q列出f当前lash的信息,flash –e 0x8030000 100擦除0x8030000处的内容
7、tr transparent mode 设置成transparent模式
8、cdinstall install Linux system from CD_ROM 从光盘安装系统
9、usbinstall install Linux system from usb 从优盘安装系统
10、usbcdinstall install Linux system from usb CD_ROM使用usb把CD_ROM连接到主板上,然后从CD_ROM里面安装系统。
11、showwindows show all windows configuration for 3A
列出3A板子上所有的窗口,是北桥上可选的window窗口
Shell
1、more paginator 一屏显示不下时,more显示更多的内容,如按enter可以一行一行下翻,‘/‘可以匹配字符串,n显示n行。
2、h on-line help 列出pmon所有的命令
3、sh command shell 相应命令输入
4、vers print version info 打印版本信息
5、eval ecaluate and print result 计算并打印结果,具体用法如下:
PMON>eval 5+10 回车
输出结果:0x15 等
6、hi dispaly command history 查看当前用户的历史命令
7、date get/set date and time 给出当前时间,后加日期则会系统设置时间,其格式为:date 年月日时分秒,如:date 20110211143308 即为设定当前时间为2011年2月11日14点33分8秒。
8、about about PMON@2000 显示pmon@2000的一些信息
9、CTRL + c stop this process 结束当前进程,如:当正在运行ping www.baidu.com的命令时,用户希望继续终止该进程可以使用ctrl+c的命令结束。<

Network
1、ifaddr Configure Network Interface pmon下用于配置ip地址,如: ifaddr rte0 10.2.5.114
2、tftp tftp server tftp服务
3、ping ping remote host 查看是否通信
4、grub like command 有类似grub的管理工具,但目前pmon不支持
5、initrd load initrd/initramfs image 初始化寄存器
Memory
1、m modify memory 修改内存信息——不支持
2、d display memory 显示内存信息——不支持
3、compare compare memory to memory 把两块内存对比
4、copy copy memory to memory从源地址src拷贝count大小的内容到目的地址dst
例如:PMON>memcpy 0x8030000 0x80400000 2 即为从0x8030000拷贝2个byte的 内容到0x80400000的地址上。
5、fill fill memory 往内存里填充数据
例如:PMON> fill 0x80300000 0x5ata 往0x80300000处填充0x5a5a数据
6、search search memory 搜寻内存
7、mt simple memory test 对内存做一个简单测试
8、spacescan ALL space cached scan test 测试所有的空余内存
PCI (3A新加的功能)
1、pcicfg pci config space 排除pci的空白区间
2、pciscan scan pci bus 列出总线上所有挂在的设备
4.8 Environment
1、env display variable 显示当前已设定的环境变量
2、set display/set variable 显示已设定的变量或设定变量
3、unset unset variable(s) 撤销环境变量的设定
4、eset edit variable 编辑选定的环境变量
FXP
1、setmac_fxp set mac address into E100 eeprom 设置mac地址(fxp是用于文件交换协议)
2、readrom_fxp dump E100 eprom content 查看E100 eprom的内容,例如PMON>readrom_fxp rte0 即查看网卡eprom的信息
3、writerom_fxp write E100 eprom content 往E100 eprom中写入内容
Realtek 8111dl/8168
readrom dump rtl8111dl/8168 eeprom content and mac address 显示网卡设备上的信息
例如:PMON> readrom rte0
writerom dump rtl8111dl/8168 eeprom content
setmac set mac address into rtl8111dl/8168 eeprom
msqt_lan Motherboard Signal Quality Test for RTL8111 对网卡设备信号做测试
TEST
test:
test device    在pmon中做测试,敲test命令后会进入test的图形界面,按上下键依次选择需要测试内容,如cpu,memory,serial,keyboard,disk,pci,net,video等等。
PMON的更新
使用专门的烧录器工具更新
使用专门的支持49LF008x,49LF040x系列的烧制工具,将pmon最新的文件烧到flash上
使用软件更新
由于PMON文件具体存放的介质不同,更新方式稍有区别,主要是介质的文件格式和设备标识符不同,可用devls查看不同的设备标识符,如硬盘在有的PMON上显示wd0,有的显示sd0等,使用如下的load命令后,需要输入reboot重新启动才能生效,特别需要注意的是,软件升级既有可能导致系统无法启动,请谨慎操作,如果升级失败就需要使用专业的烧录器烧录芯片

  • 从TFTP服务器上更新BIOS

load -r -f 0xbfc00000 tftp://10.2.5.22/gzrom.bin (假设PMON更新文件gzrom.bin放在内部的tftp服务器10.2.5.22上)
  • 从硬盘上更新PMON

load -r -f 0xbfc00000 /dev/fs/ext2@wd0/boot/gzrom.bin (假设PMON更新文件gzrom.bin放在硬盘的/boot目录下)
  • 从U盘上更新PMON

load -r -f 0xbfc00000 /dev/fs/ext2@usb0/gzrom.bin (假设PMON更新文件gzrom.bin放在ext2格式的U盘的根目录下,如果U盘是fat格式,要写fat@usb0)
  • 从USB光驱上更新PMON

load -r -f 0xbfc00000 /dev/fs/iso9660@usb0/boot/gzrom.bin (假设PMON更新文件gzrom.bin放在光盘的/boot目录下)
  • 从sata光驱上更新PMON

load -r -f 0xbfc00000 /dev/fs/iso9660@cd0/boot/gzrom.bin (假设PMON更新文件gzrom.bin放在光盘的/boot目录下)







上一篇:龙芯PMON的编译方法
下一篇:龙芯Pmon的外设适配列表

本版积分规则

QQ|Archiver|手机版|小黑屋|RD之家 - 研发工程师的伊甸园 ( 京ICP备18037383号 )
360导航 360安全浏览器 蚂蚁搜索 速搜全球 酷帝网站目录 搜狗导航 114啦网址导航

GMT+8, 2019-11-17 07:50

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表