OpenRISC Linux¶
這是 Linux 對 OpenRISC 微處理器系列的移植;最初的目標架構,具體來說,是 32 位 OpenRISC 1000 系列 (or1k)。
有關 OpenRISC 處理器和正在進行的開發的資訊
OpenRISC 工具鏈和 Linux 的構建說明¶
為了為 OpenRISC 構建和執行 Linux,您至少需要一個基本的工具鏈,或許還需要架構模擬器。在此處概述了將這些位安裝到位所需的步驟。
工具鏈
可以從 openrisc.io 或我們的 github 釋出頁面獲取工具鏈二進位制檔案。有關構建不同工具鏈的說明可以在 openrisc.io 或 Stafford 的工具鏈構建和釋出指令碼中找到。
構建
像往常一樣構建 Linux 核心
make ARCH=openrisc CROSS_COMPILE="or1k-linux-" defconfig
make ARCH=openrisc CROSS_COMPILE="or1k-linux-"
如果您想在核心中嵌入 initramfs,也請傳遞 CONFIG_INITRAMFS_SOURCE。例如
make ARCH=openrisc CROSS_COMPILE="or1k-linux-" CONFIG_INITRAMFS_SOURCE="path/to/rootfs path/to/devnodes"
有關此的更多資訊,請檢視 Ramfs, rootfs 和 initramfs。
在 FPGA 上執行(可選)
OpenRISC 社群通常使用 FuseSoC 來管理將 SoC 構建和程式設計到 FPGA 中。以下是將 De0 Nano 開發板與 OpenRISC SoC 程式設計的一個示例。在構建過程中,FPGA RTL 程式碼從 FuseSoC IP 核心儲存庫下載並使用 FPGA 供應商工具構建。二進位制檔案透過 openocd 載入到板上。
git clone https://github.com/olofk/fusesoc
cd fusesoc
sudo pip install -e .
fusesoc init
fusesoc build de0_nano
fusesoc pgm de0_nano
openocd -f interface/altera-usb-blaster.cfg \
-f board/or1k_generic.cfg
telnet localhost 4444
> init
> halt; load_image vmlinux ; reset
在模擬器上執行(可選)
QEMU 是一個處理器模擬器,我們建議使用它來模擬 OpenRISC 平臺。請按照 QEMU 網站上的 OpenRISC 說明,使 Linux 在 QEMU 上執行。您可以自己構建 QEMU,但您的 Linux 發行版可能會提供二進位制軟體包來支援 OpenRISC。
qemu openrisc
術語¶
在程式碼中,以下粒子用於符號,以將範圍限制為或多或少特定的處理器實現
openrisc |
OpenRISC 類處理器 |
or1k |
OpenRISC 1000 系列處理器 |
or1200 |
OpenRISC 1200 處理器 |
歷史¶
- 18-11-2003 Matjaz Breskvar (phoenix@bsemi.com)
Linux 到 OpenRISC/or32 體系結構的初始埠。所有核心內容都已實現,並且可以使用。
- 08-12-2003 Matjaz Breskvar (phoenix@bsemi.com)
完全改變了 TLB 未命中處理。重寫異常處理。在預設 initrd 中完全正常執行的 sash-3.6。一個改進很大的版本,進行了全面的更改。
- 10-04-2004 Matjaz Breskvar (phoenix@bsemi.com)
到處都是很多錯誤修復。乙太網支援,功能正常的 http 和 telnet 伺服器。執行許多標準的 Linux 應用程式。
- 26-06-2004 Matjaz Breskvar (phoenix@bsemi.com)
移植到 2.6.x
- 30-11-2004 Matjaz Breskvar (phoenix@bsemi.com)
很多錯誤修復和增強功能。添加了 opencores framebuffer 驅動程式。
- 09-10-2010 Jonas Bonn (jonas@southpole.se)
重大重寫,使其與上游 Linux 2.6.36 相提並論