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-"
  1. 在 FPGA 上运行(可选)

OpenRISC 社区通常使用 FuseSoC 来管理构建和将 SoC 编程到 FPGA 中。下面是一个使用 OpenRISC SoC 编程 De0 Nano 开发板的示例。在构建过程中,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 说明在 QEMU 上运行 Linux。您可以自己构建 QEMU,但您的 Linux 发行版很可能提供支持 OpenRISC 的二进制包。


术语

在代码中,以下标记用于符号,以将范围限制为或多或少特定的处理器实现

openrisc

OpenRISC 系列处理器

or1k

OpenRISC 1000 系列处理器

or1200

OpenRISC 1200 处理器


历史

2003-11-18 Matjaz Breskvar (phoenix@bsemi.com)

linux 到 OpenRISC/or32 架构的初始移植。所有核心内容都已实现,并且看起来可用。

2003-12-08 Matjaz Breskvar (phoenix@bsemi.com)

完全更改了 TLB 未命中处理。重写了异常处理。在默认的 initrd 中完全可用的 sash-3.6。一个改进了很多的版本,各处都有更改。

2004-04-10 Matjaz Breskvar (phoenix@bsemi.com)

各处进行了大量错误修复。以太网支持,功能正常的 http 和 telnet 服务器。运行许多标准的 linux 应用程序。

2004-06-26 Matjaz Breskvar (phoenix@bsemi.com)

移植到 2.6.x

2004-11-30 Matjaz Breskvar (phoenix@bsemi.com)

大量的错误修复和增强。添加了 opencores 帧缓冲驱动程序。

2010-10-09 Jonas Bonn (jonas@southpole.se)

重大重写,使其与上游 Linux 2.6.36 并驾齐驱