forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
4.0 KiB
121 lines
4.0 KiB
============== |
|
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: |
|
|
|
======= ============================= |
|
website https://openrisc.io |
|
email [email protected] |
|
======= ============================= |
|
|
|
--------------------------------------------------------------------- |
|
|
|
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. |
|
|
|
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. |
|
|
|
========== ================================================= |
|
binaries https://github.com/openrisc/or1k-gcc/releases |
|
toolchains https://openrisc.io/software |
|
building https://github.com/stffrdhrn/or1k-toolchain-build |
|
========== ================================================= |
|
|
|
2) Building |
|
|
|
Build the Linux kernel as usual:: |
|
|
|
make ARCH=openrisc CROSS_COMPILE="or1k-linux-" defconfig |
|
make ARCH=openrisc CROSS_COMPILE="or1k-linux-" |
|
|
|
3) Running on FPGA (optional) |
|
|
|
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. |
|
|
|
:: |
|
|
|
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 |
|
|
|
4) Running on a Simulator (optional) |
|
|
|
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. |
|
|
|
============= ====================================================== |
|
qemu openrisc https://wiki.qemu.org/Documentation/Platforms/OpenRISC |
|
============= ====================================================== |
|
|
|
--------------------------------------------------------------------- |
|
|
|
Terminology |
|
=========== |
|
|
|
In the code, the following particles are used on symbols to limit the scope |
|
to more or less specific processor implementations: |
|
|
|
========= ======================================= |
|
openrisc: the OpenRISC class of processors |
|
or1k: the OpenRISC 1000 family of processors |
|
or1200: the OpenRISC 1200 processor |
|
========= ======================================= |
|
|
|
--------------------------------------------------------------------- |
|
|
|
History |
|
======== |
|
|
|
18-11-2003 Matjaz Breskvar ([email protected]) |
|
initial port of linux to OpenRISC/or32 architecture. |
|
all the core stuff is implemented and seams usable. |
|
|
|
08-12-2003 Matjaz Breskvar ([email protected]) |
|
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. |
|
|
|
10-04-2004 Matjaz Breskvar ([email protected]) |
|
alot of bugfixes all over. |
|
ethernet support, functional http and telnet servers. |
|
running many standard linux apps. |
|
|
|
26-06-2004 Matjaz Breskvar ([email protected]) |
|
port to 2.6.x |
|
|
|
30-11-2004 Matjaz Breskvar ([email protected]) |
|
lots of bugfixes and enhancments. |
|
added opencores framebuffer driver. |
|
|
|
09-10-2010 Jonas Bonn ([email protected]) |
|
major rewrite to bring up to par with upstream Linux 2.6.36
|
|
|