Warning

此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。

Note

如果您发现本文档与原始文件有任何不同或者有翻译问题,请联系该文件的译者, 或者请求时奎亮的帮助:<alexs@kernel.org>。

Original

OpenRISC Linux

翻译

司延腾 Yanteng Si <siyanteng@loongson.cn>

OpenRISC Linux

这是Linux对OpenRISC类微处理器的移植;具体来说,最早移植目标是32位 OpenRISC 1000系列(或1k)。

关于OpenRISC处理器和正在进行中的开发的信息:


OpenRISC工具链和Linux的构建指南

为了构建和运行Linux for OpenRISC,你至少需要一个基本的工具链,或许 还需要架构模拟器。 这里概述了准备就位这些部分的步骤。

  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说明,让Linux在QEMU上运行。 你可以自己构建QEMU,但你的 Linux发行版可能提供了支持OpenRISC的二进制包。


术语表

代码中使用了以下符号约定以将范围限制在几个特定处理器实现上:

openrisc:

OpenRISC类型处理器

or1k:

OpenRISC 1000系列处理器

or1200:

OpenRISC 1200处理器


历史

2003-11-18 Matjaz Breskvar (phoenix@bsemi.com)
将linux初步移植到OpenRISC或32架构。

所有的核心功能都实现了,并且可以使用。

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

彻底改变TLB失误处理。 重写异常处理。 在默认的initrd中实现了sash-3.6的所有功能。 大幅改进的版本。

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

大量的bug修复。 支持以太网,http和telnet服务器功能。 可以运行许多标准的linux应用程序。

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

移植到2.6.x。

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

大量的bug修复和增强功能。 增加了opencores framebuffer驱动。

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

重大重写,使其与上游的Linux 2.6.36看齐。