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-"
在 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
在模拟器上运行(可选)
QEMU 是一个处理器模拟器,我们建议使用它来模拟 OpenRISC 平台。请按照 QEMU 网站上的 OpenRISC 说明在 QEMU 上运行 Linux。您可以自己构建 QEMU,但您的 Linux 发行版很可能提供支持 OpenRISC 的二进制包。
qemu 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 并驾齐驱