- 论坛徽章:
- 0
|
OBP 簡介-(01)
前言
在 SPARC 的機器上使用者所第一項會接觸的環境就是 OBP (OpenBoot PROM).
01.什麼是 OBP OpenBoot 是由 IEEE Standard 1275-1994. 為了開機韌體所制定的標準. OpenBoot 韌體可以在您將您系統的電源開啟後立即執行.
OpenBoot 韌體的主要工作如下: 測試期初始化系統硬體 給予硬體設定值 從儲存裝置或是網路來啟動作業系統 提供互動式除錯能力以供測試硬體及軟體
名詞:
Plug-in Device Drivers plug-in device driver:
通常是以 plug-in device 被載入, 諸如 SBus card. 在作業系統啟動自身的驅動程式之前, plug-in device driver 可以從裝置或是在裝置上顯示文字被用來啟動作業系統. 這個特性使得輸出/入裝置被特定系統所支援, 以便不用更改系統 PROM.
FCode Interpreter:
Plug-in drivers 是以機器獨立的轉譯語言所寫成的,稱之為 FCode. 每一個 OpenBoot system PROM 包含了 FCode interpreter. 因此, 相同的裝置與驅動程式可以被使用在不同 CPU 指令集的機器上.
Device Tree Device tree:
是一種資料結構用以描述裝置 (長期安裝與 plug-in 裝置) 所附加到系統中.使用者與作業系統可以藉由檢視 device tree 來決定系統的硬體設定.
Programmable User Interface OpenBoot:
使用者介面是以互動式程式語言 Forth 為基礎. 從完整的程式中,使用者命令的順序可以被結合, 以及對於軟體或硬體方面提供了相當有力的除錯能力.
02.進入 OpenBoot 環境
1.中止作業系統 2.按下 Stop-A 鍵 3.重新啟動系統 4.當系統硬體偵測到錯誤且無法回復 (這就是所謂的 Watchdog Reset.)
假如您的系統並未設定自動啟動, 系統將會停在 user interface. 假如自動啟動已被設定, 您可以在 console 中 banner 顯示之後, 但是在系統開始啟動作業系統之前, 藉由從鍵盤上按下 Stop-A 鍵使得系統中止在 user interface.
* The Device Tree 裝置是透過相互連結的匯流排層級而附加到主機電腦上. OpenBoot 以節點的樹狀來描繪相互連結的匯流排與所附加的裝置. 這樣的樹狀被稱之為 the device tree. 節點描述了從樹狀的根節點 (root node) 中主機電腦的主要實體位址匯流排. 每個裝置節點可以有: 1.屬性 (Properties), 資料結構中所描述的節點以及所相關的裝置. 2.方法 (Methods), 讀取裝置所使用的軟體程序. 3.資料 (Data), 由方法 (Methods) 所使用私有資料 (private data) 的初始值. 4.子節點 (Children), 在 device tree 中, 其他裝置節點直接由此節點所“附 加”的節點. 5.父節點 (A parent), 在 device tree 中, 該節點是直接位在此節點之上層.
* Device Path Names, Addresses, and Arguments
在系統中, OpenBoot 是直接去處理硬體裝置. 每個裝置皆有一個獨一的名稱以描述裝置的型態以及在系統定址結構中裝置的位址所在. 下列的範例所表示的是一個完整的裝置路徑名稱: /sbus@1f,0/SUNW,fas@e,8800000/sd@3,0:a
driver-name 人類所理解的字串由 1 到 31 個字母, 數字與標點符 號“, . _ + - ” 所組成,方便人類記憶. 大小寫有別. 在某些案例中, 這個名稱包含了裝置的製造商名稱以 及裝置的 model name, 並以逗號來分隔. 典型上來說,以製造商公開表列的股票代號大寫, 通常被用來當作 製造商的名稱 (e.g. SUNW,sd). 內建的裝置, 製造商 的名稱通常是被省略的 (e.g. sbus).
@ 必須位於位址參數之前.
unit-address 屬於文字字串, 這是指在其父節點的位址空間中所描 述裝置的實體位址. 這個文字的格式是為匯流排相依的. : 必須位於辨識參數之前. device-arguments 屬於文字字串, 這個格式以依賴特定的裝置所決定. 這個參數可以使用來傳遞額外的資訊給裝置的軟體.
範例: /sbus@1f,0/esp@0,40000/sd@3,0:a * 1f,0
描述在主系統匯流排的位址, 因為在這個範例中 SBus 是直接附加到主系統匯流排. * 0,40000 是 SBus 插槽編號 (in other words, 0) 與 offset (in other words, 40000), 因為在 SBus 插槽 0 的介面卡, esp 裝置是位於 在 offset 40000. * 3,0 是 SCSI target 與 logical unit number, 因為磁碟裝置是被附加到 target 3, logical unit 0 的 SCSI 匯流排.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18350/showart_109732.html |
|