龙芯PMON基本命令总结

2022-03-09 15:25

1、h--帮助
命令格式:

h    [*|cmd..]    on-line help

输入h,列举全部命令;使用如下:

PMON> h      
            Boot and Load                           
            oload   load memory from hostport                                                 
            load   load file                                                                 
            MyCmds                               
            cp0s   access cp0                                                                 
            disks   select disk                                                               
            d2   dump address half world                                                   
            d8   dump address double word                                                   
            m2   mofify address half world                                                 
            m8   modify address double word                                                 
            initkbd   kbd_initialize
......

输入h 后跟一个命令,则列举出该命令的使用格式如下:

PMON>   h set
set    [[-t]    name    [value]]    display/set variable

2、vers--显示PMON版本信息
命令格式:

vers    [-a]    print version info

使用如下:

PMON> vers -a
3A PMON: 2.00 for 3a2000 PMON2000 3.3 (Bonito) #1:Tue Nov 12 17:44:01 PST 2019
commit e1e98f63b4010b5071a00a168110e9b4d22c5a24
Author: XXX <xxx@loongson.cn>
#PMON版本号,编译时间戳,git commit id号,最后提交git作者。

3、date--设置时间
命令格式:

data    [yyyymmddhhmm.ss]    get/set date and time

使用如下:

PMON> date
Sat Jan   1 00:24:19 2000
#显示时间
PMON> date 202105201314.09
Thu May 20 13:14:09 2021
#设置时间

4、devls--列举出目前板卡现有的设备
命令格式:

devls    [-an]    list devices
          -a      show all device types
          -n      show network devices

使用如下:

PMON> devls
Device name   Type
eth0         IFNET
eth1         IFNET
wd0          DISK
loopdev0     DISK
#设备名   设备类型 (eth0/1网络端口,wd0为硬盘)

5、load--加载文件
该命令主要用来加载内核/文件系统及烧写PMON等常规操作。
命令格式:

load    [-beastifr]    [-ooffs]    load file
         -s          don't clear old symbols
         -b          don't clear breakpoints
         -e          don't clear exception handlers
         -a          don't add offset to symbols
         -t          load at top of memory
         -i          ignore checksum errors
         -f          flash_addr -o load_addr offsetr   
         -n          don't load symbols
         -y          only load symbols
         -v          verbose messages
         -w          reverse endianness
         -k          prepare for kernel symbols
         -o<offs>    load offset
         -r          load raw file
         path        path and filename

加载内核:

PMON> load /dev/fs/ext2@wd0/boot/vmlinux
#加载位于第一块硬盘第一个分区的内核
PMON> load /dev/fs/ext2@wd1b/boot/vmlinux
#加载位于第二个硬盘第二分区的内核
#根据SATA口的先后顺序来列举SATA硬盘0/1/2...硬盘分区默认是第一分区,a代表第一分区,b为第二分区,c/d/e...
PMON> load /dev/fs/fat@usb0/vmlinux
#使用FAT格式的U盘中加载内核
PMON> load tftp://10.0.0.100/vmlinux
#使用tftp服务从远端加载内核,注意:先配置好网络IP
PMON> load /dev/fs/iso9660@cd0/boot/vmlinux
#使用光盘加载内核

在线更新PMON二进制:

PMON> load -r -f 0xbfc00000 /dev/fs/ext2@wd0/gzrom.bin
#使用硬件更新PMON二进制
PMON> load -r -f 0xbfc00000 /dev/fs/fat@usb0/gzrom.bin
#使用U盘更新PMON二进制
PMON> load -r -f 0xbfc00000 tftp://10.0.0.100/gzrom.bin
#使用网络tftp服务更新PMON二进制
PMON> load -r -f 0xbfc00000 /dev/fs/iso9660@cd0/gzrom.bin
#使用光盘更新PMON二进制

注意:可以使用fload 来替换 load -r -f。

6、bl--引导配置文件
命令格式:

bl   -d   cdrom/ideboot_config_file Load   Boot menu from config file

使用如下:

PMON> bl /dev/fs/ext2@wd0/boot/boot.cfg
#引导硬盘boot目录中的boot.cfg系统启动配置文件。

7、initrd--引导ramdisk
命令格式:

initrd    initrd/initramfs    path    load initrd/initramfs image

使用如下:

PMON> initrd /dev/fs/fat@usb0/boot/initramfs.img
#挂载initramfs.ing文件系统

8、g--执行程序
命令格式:

g   [-s]   [-bbpadr]   [-eadr]   [--args]   start execution (go)
    -s             don't set client sp
    -e <adr>       start address
    -b <bptadr>    temporary breakpoint
    -- <args>      args to be passed to client

引导内核:

PMON> g console=ttyS0,115200 console=tty root=/dev/sda1
#从epc寄存器指定地址处开始执行(内核入口地址),将参数传递给程序(内核)。
#硬盘第一分区引导系统启动,启动过程中的信息打印到显示器和CPU UART0。

9、ifaddr--配置网卡
命令格式:

ifaddr    <interface>    <ipaddr>    Configure Network Interface
          <interface>    Interface name
          <ipaddr>       IP Address

使用如下:

PMON> ifaddr eth0 192.168.1.110
#配置网口eth0 IP地址为:eth0 192.168.1.110

10、ifconfig--配置网卡
命令格式:

ifconfig    ifname    ifconfig    fx0
[up|down|remove|stat|setmac|readrom|setrom|addr [netmask]

使用ifconfig 设置IP地址:

PMON> ifconfig eth1 192.168.120
==arp_ifinit done

使用ifconfig up/down网口:

PMON> ifconfig   eth1 up

使用ifconfig 查看网口配置:

PMON> ifconfig eth0            
ip:192.168.1.110
netmask:255.255.255.0
broadcast:255.255.255.0
status:up running

11、ping--测试网络链接
命令格式:

ping    [-fqrv]    [-c   cnt]    [-s   sz]    host    ping remote host

使用如下:

PMON> ping 192.168.1.112
#192.168.1.112 为上位机IP

12、setmac--设置MAC地址
命令格式:

setmac    set the Mac address of syn0 and syn1

使用如下:

PMON> setmac eth1 00:12:13:14:34:55
#设置网口eth1的MAC地址,机器重启之后生效。 通过setmac eth1查看是否配置成功。

13、set/unset--设置环境变量
命令格式:

set    [[-t]    name    [value]]    display/set variable

查看目前设置的环境变量:

PMON> set 
installdelay = 5         
autoinstall = /dev/fs/ext2@usb0/vmlinuxboot
         FR = 1         
         al = /dev/fs/iso9600@cd0/boot/vmlinux
        al1 = /dev/fs/ext2@wd0/boot/vmlinux
     append = "console=tty root=/dev/sda1"
......

设置环境变量:

PMON> set ifconfig "eth0:192.168.1.113"
      ......
      ifconfig = eth0:192.168.1.113

取消环境变量:

PMON> unset ifconfig 

14、d1/d2/d4/d8--按照字节读内存或寄存器
命令格式:

d1    [addr]    [count]    dump address byte
d2    [addr]    [count]    dump address half world
d4    [addr]    [count]    dump address world
d8    [addr]    [count]    dump address double word

使用如下:

PMON> d1 0xbfe001e0 0x4   
ffffffffbfe001e0: 1b 00 c1 03                   
PMON> d2 0xbfe001e0 0x2
ffffffffbfe001e0: 0043 00c1                             
PMON> d4 0xbfe001e0 0x1
ffffffffbfe001e0: 0000005b                           
PMON> d8 0xbfe001e0 0x1
ffffffffbfe001e0: 000000000000001b

15、m1/m2/m4/m8--按照字节写内存或寄存器
命令格式:

m1    addr    [data]    modify address byte
m2    addr    [data]    modify address half world
m4    addr    [data]    modify address world
m8    addr    [data]    modify address double word

使用如下:

PMON> m1 0xbfe001e8 0x41
PMON> m2 0xbfe001e8 0x41
PMON> m4 0xbfe001e8 0x41
PMON> m8 0xbfe001e8 0x41

16、pciscan--查看PCI设备及空间分配
命令格式:

pciscan    [-b <bus>][-d <dev>]    scan pci bus
            -b <bus>    bus no
            -d <dev>    dev no

使用如下:

PMON> pciscan
>> BUS   0 <<
Dev Fun Device description
--------------------------
   0   0 vendor/product: 0x6305/0x0003 (bridge, PCI)
0x00000000:0xffffffff mem @0x00000000, 16 bytes
0x00000000:0xffffffff mem @0x00000000, 16 bytes
0x00070100:0x00ffffff mem @0x00070100, 16 bytes
0x00000000:0x0000f1f1 mem @0x00000000, 16 bytes
0x10001000:0xfff0fff0 mem @0x10001000, 16 bytes
0x00000010:0xfff1fff1 mem @0x00000010, 16 bytes
......

17、pcs--设置空间读写方式
命令格式:

pcs    bus dev func    select pci dev function

使用如下:

PMON> pcs   0 3 0
#选择bus 0 dev 3 function 0 的pci设备
PMON> d4 0x0 0x10
00000000: 7a030014 00000047 02000000 00800000 ...zG...........
00000010: 49198004 00000000 00000000 00000000 ...I............
00000020: 00000000 00000000 00000000 00000000 ................
00000030: 00000000 00000000 00000000 0000014c ............L...

切换不同的空间访问说明:

PMON> pcs 
pcs 0 : select select normal memory access 32 bit cpu address
pcs -1 : select select normal memory access 64 bit uncached phyiscal address
pcs -2 : select select normal memory access 64 bit cached phyiscal address
pcs -3 : select select normal memory access 64 bit cpu address
pcs bus dev func : select pci configuration space access with bus dev func
#pcs     0   选择32位CPU地址访问
#pcs    -1   选择64位uncache 物理地址访问
#pcs    -2   选择64位cache物理地址访问
#pcs    -3   选择64位CPU地址访问

注意:桥片映射空间只能用pcs 0/1正常访问。

具体操作如下:

18、loop--循环执行
命令格式:

loop   count cmd...    loopcmd count cmd...

使用如下:

PMON> loop 5 date   
NO 1
Wed Mar 10 11:58:09 2021
NO 2
Wed Mar 10 11:58:09 2021
NO 3
Wed Mar 10 11:58:09 2021
NO 4
Wed Mar 10 11:58:09 2021
NO 5
Wed Mar 10 11:58:09 2021

19、hi--查看历史命令
命令格式:

hi   [cnt]    display command history

使用如下:

PMON> hi
   75   hi
   74   h hi
   73   devls
#显示pmon启动以来最后使用的100个命令

20、reboot/poweroff--软重启/关机
命令格式:

reboot       reboot system
poweroff     poweroff system

使用如下:

PMON> reboot
PMON> poweroff