123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- ==============
- 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
|