This is the documentation for the latest (master) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

Generic LEON3


This board configuration is designed to work with LEON3 processor template designs available in the GRLIB GPL distribution. It can also be used with the evaluation version of the TSIM3 LEON3 simulator.


The board configuration is compatible with most GRLIB LEON3 FPGA template designs such as the Digilent Arty A7, Terasic DE0-Nano and Microsemi M2GL-EVAL-KIT.

Programming and Debugging


Applications for the generic_leon3 board configuration can be built as usual (see Building an Application). In order to build the application for generic_leon3, set the BOARD variable to generic_leon3.

Running on hardware

Connect with GRMON, then load and run the application. The example below uses the Terasic DE2-115 Cyclone IV FPGA board.

$ grmon -altjtag -u
  GRMON debug monitor v3.2.8 eval version

  Copyright (C) 2020 Cobham Gaisler - All rights reserved.
  For latest updates, go to
  Comments or bug-reports to

JTAG chain (1): EP3C120/EP4CE115
  GRLIB build version: 4250
  Detected frequency:  50.0 MHz

  Component                            Vendor
  LEON3 SPARC V8 Processor             Cobham Gaisler
  AHB Debug UART                       Cobham Gaisler
  JTAG Debug Link                      Cobham Gaisler
  GR Ethernet MAC                      Cobham Gaisler
  GRDMAC DMA Controller                Cobham Gaisler
  LEON2 Memory Controller              European Space Agency
  AHB/APB Bridge                       Cobham Gaisler
  LEON3 Debug Support Unit             Cobham Gaisler
  Generic UART                         Cobham Gaisler
  Multi-processor Interrupt Ctrl.      Cobham Gaisler
  Modular Timer Unit                   Cobham Gaisler
  General Purpose I/O port             Cobham Gaisler
  SPI Controller                       Cobham Gaisler
  AHB Status Register                  Cobham Gaisler

  Use command 'info sys' to print a detailed report of attached cores

grmon3> load zephyr/zephyr.elf
      40000000 text              16.2kB /  16.2kB   [===============>] 100%
      400040A8 initlevel           40B              [===============>] 100%
      400040D0 rodata             484B              [===============>] 100%
      400042B4 datas               20B              [===============>] 100%
      400042C8 sw_isr_table       256B              [===============>] 100%
      400043C8 devices             36B              [===============>] 100%
  Total size: 16.98kB (1.91Mbit/s)
  Entry point 0x40000000
  Image zephyr/zephyr.elf loaded

grmon3> run
*** Booting Zephyr OS build zephyr-v2.4.0-30-ga124c31ec4cf  ***
Hello World! generic_leon3

Running in simulation

The same application binary can be simulated with the TSIM3 LEON3 simulator.

$ tsim-leon3
 TSIM3 LEON3 SPARC simulator, version 3.0.2 (evaluation version)

 Copyright (C) 2020, Cobham Gaisler - all rights reserved.
 This software may only be used with a valid license.
 For latest updates, go to
 Comments or bug-reports to

Number of CPUs: 2
system frequency: 50.000 MHz
icache: 1 * 4 KiB, 16 bytes/line (4 KiB total)
dcache: 1 * 4 KiB, 16 bytes/line (4 KiB total)
Allocated 4096 KiB SRAM memory, in 1 bank at 0x40000000
Allocated 32 MiB SDRAM memory, in 1 bank at 0x60000000
Allocated 2048 KiB ROM memory at 0x00000000

tsim> load zephyr/zephyr.elf
  section: text, addr: 0x40000000, size 16552 bytes
  section: initlevel, addr: 0x400040a8, size 40 bytes
  section: rodata, addr: 0x400040d0, size 484 bytes
  section: datas, addr: 0x400042b4, size 20 bytes
  section: sw_isr_table, addr: 0x400042c8, size 256 bytes
  section: devices, addr: 0x400043c8, size 36 bytes
  Read 436 symbols
tsim> run
  Initializing and starting from 0x40000000
*** Booting Zephyr OS build zephyr-v2.4.0-30-ga124c31ec4cf  ***
Hello World! generic_leon3