loongson官方PMON使用


PMON使用介紹

  • 龍芯平台計算機目前多采用PMON(Prom Monitor)作為基本的輸入輸出系統(BIOS)。
  • PMON具有強大而豐富的功能,包括硬件初始化、操作系統引導和硬件測試、程序調式等功能。
  • 它提供多種加載操作系統的方式,可以從優盤、光盤、tftp服務器和硬盤等媒介加載;它提供對內存、串口、顯示、網絡、硬盤等的基礎測試工具;此外,它還支持軟件升級。

進入PMON控制界面

  作為一款通用pmon處理器,pmon支持很多種平台的啟動。系統上電后,從0xbfc00000處開始運行pmon,隨后pmon會完成初始化cpu,內存,總線等設備及對串口、鍵盤、鼠標等外設進行基礎測試等一些列工作,進入pmon的字符界面。
  下面是三種加載linux內核的方法,在規定的7秒之內,如果不選擇除enter鍵之外的其他按鍵的話,則會通過usb,光盤,硬盤自動加載內核,否則會進入PMON的界面,相關的提示會出現在字符界面上,如:

  1. PMON>
  • 優盤加載
  1. load /dev/fs/ext2@usb0/vmlinuxboot

  在這有7秒的等待時間,讓用戶選擇,如果你采用usb加載內核,在這個等待過程中就可以選擇u來進行選擇,或者按下除enter外的任意鍵則會進入PMON控制界面。

  • 光盤加載
  1. load /dev/fs/iso9600@cd0/boot/vmlinuxboot

  在這有7秒的等待時間,讓用戶選擇,如果你采用光盤加載內核,在這個等待過程中就可以選擇c來進行選擇,或者按下除enter外的任意鍵則會進入PMON控制界面。

  • 硬盤加載
  1. load /dev/fs/iso9600@wd0/boot/vmlinuxboot

Pmon的圖形界面

  系統上電,完成基本的初始化后,會有等待<EL>進入pmon圖形界面設置的提示,一般會等待3秒鍾,當用戶按下[DEL]鍵,會再次進入Pmon的圖形設置界面。此外,還可以在pmon的字符控制界面輸入main命令進入pmon圖形的設置。以下逐一介紹在圖形界面的使用:

  1. SystemInfo 頁:是啟動pmon圖形界面的顯示的第一頁。給出了時間、CPU名及其頻率、內存大小、基本的指令和數據Cache大小、MAC地址等等信息。右面一覽給出簡單提示,屏幕的最下方給出不同按鍵的功能。在該頁中,可以對時間進行調整,點擊進入時間和日期調整,進入其調整的二級頁面,輸入新的時間和日期,保存退出。
  2. BOOT頁:在該頁中可以指定系統從哪個盤啟動,3a系統提供6個接口,可以掛在sata盤、光盤等等不同介質,同時也可以選擇從usb啟動內核。
  3. Safe頁:該頁為設置pmon密碼,輸入密碼並保存后,下次啟動bios圖形界面時需要輸入命令才可進入。注意:請謹慎記住該密碼,否則請聯系生產廠商。
  4. 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種加載方式,前三種分別是:

  1. load /dev/fs/ext2@wd0/vmlinux 為從硬盤加載內核。
  2.  

load /dev/fs/ext2@usb0/vmlinuxboot 從優盤加載內核
load /dev/fs/iso9600@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 [-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設備賦值,默認為:

  1. Losetup loopdev0 devfile bs=0x20000 count=-1 seek=0
  2.  

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的更新

  • 使用專門的燒錄器工具更新
  1. 使用專門的支持49LF008x49LF040x系列的燒制工具,將pmon最新的文件燒到flash
  2.  
    • 使用軟件更新
      • 由於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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM