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