Linux for LEON processors

Linux support for LEON3/4/5 is available in the LEON Linux 5.10 and 4.9 kernels distributed here and in the official Linux kernel from kernel.org. The LEON Linux kernels are based on long term stable (LTS) versions of the mainline Linux kernel. The LEON kernel supports SPARC V8 systems with floating point (FPU) and memory management unit (MMU) in both single-core and symmetric multi-processing (SMP) configurations. The overview document describes the LEON Linux software environment and requirements. All host tools and Linux software are provided in full source. Documentation, toolchain and software can be downloaded from our Linux download page.

For NOEL Linux support, see the NOEL-V Software Overview page.

Hardware supported by LEON Linux

The LEON Linux kernel has software support for a wide range of commercial interfaces available in the GRLIB IP Library. Most device drivers are available in the mainline sources and adheres to Linux's standard framework for respective interface. It ensures good platform independent software support in existing userspace applications and through APIs for writing custom applications. Below is a summary of LEON specific device drivers:

  • LEON3, LEON4, and LEON5, all supported both for single core and SMP.
  • MMU, V8, FPU
  • GPTIMER System Clock Timer
  • IRQMP or IRQAMP interrupt controller
  • APBUART system console
  • GRETH 10/100 and 10/100/1000 Network driver using the MDIO layer
  • GRPCI or GRPCI2 PCI Host support
  • GRUSBHC USB 1.1/2.0 Host controller
  • GRUSBDC USB 1.1/2.0 Device controller
  • GRVGA Graphical Frame Buffer
  • GRPS2 mouse/keyboard PS/2 controller
  • GRCAN and OCCAN implements the Linux socket CAN 2.0b interface
  • GRGPIO supports the generic General Purpose I/O model of Linux
  • SPICTRL supports SPI master interface through the spi-fsl driver
  • I2CMST support I2C master interface through the i2c-ocores driver
  • SPIMCTRL SPI master support

Additionally there is a GRLIB driver package available from the download page that contains the following support:

  • GRSPW SpaceWire driver kernel library
  • GRSPW SpaceWire driver zero-copy user-space interface
  • GRSPW ROUTER APB driver
  • MAPLIB linear physical memory library for zero-copy GRLIB device drivers

GNU Toolchain and C Library

The prebuilt LEON Linux toolchain for Linux 5.10 in the 5.10-1.x series includes the software listed below.

  • GNU Compiler Collection (GCC) 10.2.0
  • GNU BINUTILS 2.34
  • GNU C Library (GLIBC) 2.31
  • GNU Debugger (GDB) 8.2
  • Includes UT700 errata workaround support in GCC and GLIBC

The prebuilt LEON Linux toolchain for Linux 4.9 in the 4.9-2.x series includes the software listed below.

  • GNU Compiler Collection (GCC) 10.2.0
  • GNU BINUTILS 2.34
  • GNU C Library (GLIBC) 2.31
  • GNU Debugger (GDB) 8.2
  • Includes UT700 errata workaround support in GCC and GLIBC

LEON Linux vs. kernel.org kernels

The current official Linux sources available at kernel.org has support for LEON3, LEON4 and LEON5. We actively develop the Linux kernel's LEON support, submitting patches to the official kernel. All work such as new drivers and mainline LEON patches are available in the long term stable LEON Linux kernel distribution.

Our LEON Linux kernel distributions are based on LTS kernel versions from kernel.org. The current LEON Linux kernel distributions in the 5.10-1.x series and 4.9-2.x series supports errata workarounds for UT700 when used together with our corresponding prebuilt LEON Linux toolchains.

Gaisler Buildroot

We have a Gaisler Buildroot distribution, aimed for both LEON and NOEL, based on the 2023.02 LTS version of the open-source Buildroot tool. Buildroot is developed by the community at buildroot.org. Gaisler Buildroot is our officially supported Linux development and build environment. It can automatically download all needed LEON utilities, be used to configure, develop and build both kernel and user space environment, produce RAM images with MKLINUXIMG, and create bootable ROM images from the RAM images with MKPROM. Similarly for NOEL it can download and build everything needed and produce loadable RAM images using OpenSBI.

Buildroot targets embedded systems supporting both GLIBC and uClibc-ng which makes it suitable for the typical LEON or NOEL user. It supports several hundreds of useful userspace applications which can be automatically included in the generated root file system as selected by the user. Our Gaisler Buildroot environment makes it easy to get started with default configurations ready to build example RAM images with both kernel and RAM file system, and to be used as a starting point. Gaisler Buildroot is available from the download page.

LEON and NOEL specific documentation about Buildroot is found in the Gaisler Buildroot User's Manual. The general Buildroot manual is included in the Gaisler Buildroot release.

MKLINUXIMG

We provide an open-source RAM loader for the SPARC Linux kernel. The SPARC kernel requires low-level support in order to successfully run Linux. It is responsible to implement low-level initialization during boot and functionality requested by the kernel during run-time. The tool links a Linux image to a specific location in RAM and integrates a loader that is configured according to the user's command line options. See the MKLINUXIMG User's Manual for more information.

The generated Linux image can be loaded to RAM and executed with GRMON, TSIM or GRSIM. It can also be used with MKPROM to create an bootable ROM image. Sample single-core and multi-core images supporting standard systems such as GR712RC-BOARD and GR-CPCI-GR740 are available from the download page.

LINUXBUILD

The LINUXBUILD Linux development frontend has been deprecated and has been replaced by Gaisler Buildroot starting with version 2022.02-1.0. We advise using Gaisler Buildroot instead of LINUXBUILD for new projects.

LINUXBUILD is our deprecated open-source embedded software development environment for Linux. It focuses on connecting all LEON utilities with the Linux kernel and applications to obtain a Linux image. It integrates all required steps including configuration and cross building of Linux kernel, root file system, LEON Linux Loader and boot loader into a single graphical user interface. The Buildroot package has been integrated to allow rapid development of embedded Linux systems.