OpenRISC Linux

這是 Linux 對 OpenRISC 微處理器系列的移植;最初的目標架構,具體來說,是 32 位 OpenRISC 1000 系列 (or1k)。

有關 OpenRISC 處理器和正在進行的開發的資訊


OpenRISC 工具鏈和 Linux 的構建說明

為了為 OpenRISC 構建和執行 Linux,您至少需要一個基本的工具鏈,或許還需要架構模擬器。在此處概述了將這些位安裝到位所需的步驟。

  1. 工具鏈

可以從 openrisc.io 或我們的 github 釋出頁面獲取工具鏈二進位制檔案。有關構建不同工具鏈的說明可以在 openrisc.io 或 Stafford 的工具鏈構建和釋出指令碼中找到。

  1. 構建

像往常一樣構建 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

  1. 在 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
  1. 在模擬器上執行(可選)

QEMU 是一個處理器模擬器,我們建議使用它來模擬 OpenRISC 平臺。請按照 QEMU 網站上的 OpenRISC 說明,使 Linux 在 QEMU 上執行。您可以自己構建 QEMU,但您的 Linux 發行版可能會提供二進位制軟體包來支援 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 相提並論