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 相提并论