2019-07-26 20:51:24 +08:00
|
|
|
==============
|
2011-06-05 03:45:16 +08:00
|
|
|
OpenRISC Linux
|
|
|
|
==============
|
|
|
|
|
|
|
|
This is a port of Linux to the OpenRISC class of microprocessors; the initial
|
|
|
|
target architecture, specifically, is the 32-bit OpenRISC 1000 family (or1k).
|
|
|
|
|
|
|
|
For information about OpenRISC processors and ongoing development:
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
======= =============================
|
2020-07-10 14:20:19 +08:00
|
|
|
website https://openrisc.io
|
2017-10-21 21:39:09 +08:00
|
|
|
email openrisc@lists.librecores.org
|
2019-07-26 20:51:24 +08:00
|
|
|
======= =============================
|
2011-06-05 03:45:16 +08:00
|
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
|
|
|
Build instructions for OpenRISC toolchain and Linux
|
|
|
|
===================================================
|
|
|
|
|
|
|
|
In order to build and run Linux for OpenRISC, you'll need at least a basic
|
|
|
|
toolchain and, perhaps, the architectural simulator. Steps to get these bits
|
|
|
|
in place are outlined here.
|
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
1) Toolchain
|
|
|
|
|
|
|
|
Toolchain binaries can be obtained from openrisc.io or our github releases page.
|
|
|
|
Instructions for building the different toolchains can be found on openrisc.io
|
|
|
|
or Stafford's toolchain build and release scripts.
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
========== =================================================
|
2017-10-21 21:39:09 +08:00
|
|
|
binaries https://github.com/openrisc/or1k-gcc/releases
|
|
|
|
toolchains https://openrisc.io/software
|
|
|
|
building https://github.com/stffrdhrn/or1k-toolchain-build
|
2019-07-26 20:51:24 +08:00
|
|
|
========== =================================================
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
2) Building
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
Build the Linux kernel as usual::
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2020-01-31 16:28:33 +08:00
|
|
|
make ARCH=openrisc CROSS_COMPILE="or1k-linux-" defconfig
|
|
|
|
make ARCH=openrisc CROSS_COMPILE="or1k-linux-"
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
3) Running on FPGA (optional)
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
The OpenRISC community typically uses FuseSoC to manage building and programming
|
|
|
|
an SoC into an FPGA. The below is an example of programming a De0 Nano
|
|
|
|
development board with the OpenRISC SoC. During the build FPGA RTL is code
|
|
|
|
downloaded from the FuseSoC IP cores repository and built using the FPGA vendor
|
|
|
|
tools. Binaries are loaded onto the board with openocd.
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
::
|
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
git clone https://github.com/olofk/fusesoc
|
|
|
|
cd fusesoc
|
|
|
|
sudo pip install -e .
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
fusesoc init
|
|
|
|
fusesoc build de0_nano
|
|
|
|
fusesoc pgm de0_nano
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
openocd -f interface/altera-usb-blaster.cfg \
|
|
|
|
-f board/or1k_generic.cfg
|
|
|
|
|
|
|
|
telnet localhost 4444
|
|
|
|
> init
|
|
|
|
> halt; load_image vmlinux ; reset
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
4) Running on a Simulator (optional)
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2017-10-21 21:39:09 +08:00
|
|
|
QEMU is a processor emulator which we recommend for simulating the OpenRISC
|
|
|
|
platform. Please follow the OpenRISC instructions on the QEMU website to get
|
|
|
|
Linux running on QEMU. You can build QEMU yourself, but your Linux distribution
|
|
|
|
likely provides binary packages to support OpenRISC.
|
2011-06-05 03:45:16 +08:00
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
============= ======================================================
|
2017-10-21 21:39:09 +08:00
|
|
|
qemu openrisc https://wiki.qemu.org/Documentation/Platforms/OpenRISC
|
2019-07-26 20:51:24 +08:00
|
|
|
============= ======================================================
|
2011-06-05 03:45:16 +08:00
|
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
|
|
|
Terminology
|
|
|
|
===========
|
|
|
|
|
|
|
|
In the code, the following particles are used on symbols to limit the scope
|
|
|
|
to more or less specific processor implementations:
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
========= =======================================
|
2011-06-05 03:45:16 +08:00
|
|
|
openrisc: the OpenRISC class of processors
|
|
|
|
or1k: the OpenRISC 1000 family of processors
|
|
|
|
or1200: the OpenRISC 1200 processor
|
2019-07-26 20:51:24 +08:00
|
|
|
========= =======================================
|
2011-06-05 03:45:16 +08:00
|
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
|
|
|
History
|
|
|
|
========
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
18-11-2003 Matjaz Breskvar (phoenix@bsemi.com)
|
2011-06-05 03:45:16 +08:00
|
|
|
initial port of linux to OpenRISC/or32 architecture.
|
|
|
|
all the core stuff is implemented and seams usable.
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
08-12-2003 Matjaz Breskvar (phoenix@bsemi.com)
|
2011-06-05 03:45:16 +08:00
|
|
|
complete change of TLB miss handling.
|
|
|
|
rewrite of exceptions handling.
|
|
|
|
fully functional sash-3.6 in default initrd.
|
|
|
|
a much improved version with changes all around.
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
10-04-2004 Matjaz Breskvar (phoenix@bsemi.com)
|
2011-06-05 03:45:16 +08:00
|
|
|
alot of bugfixes all over.
|
|
|
|
ethernet support, functional http and telnet servers.
|
|
|
|
running many standard linux apps.
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
26-06-2004 Matjaz Breskvar (phoenix@bsemi.com)
|
2011-06-05 03:45:16 +08:00
|
|
|
port to 2.6.x
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
30-11-2004 Matjaz Breskvar (phoenix@bsemi.com)
|
2011-06-05 03:45:16 +08:00
|
|
|
lots of bugfixes and enhancments.
|
|
|
|
added opencores framebuffer driver.
|
|
|
|
|
2019-07-26 20:51:24 +08:00
|
|
|
09-10-2010 Jonas Bonn (jonas@southpole.se)
|
2011-06-05 03:45:16 +08:00
|
|
|
major rewrite to bring up to par with upstream Linux 2.6.36
|