summaryrefslogtreecommitdiff
path: root/README.leon3
blob: 80fff5f46caf5f0dfdfa6ff3585574fffe3ad5d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

1. LEON3 emulation

The file 'leon3.c' contains a model of simple LEON3 sub-system. It
contains 16 Mbyte ROM and 16 Mbyte RAM. Standard peripherals
such as interrupt controller, UART and timer are provided.
The model can execute leon3 binaries that do not require an
MMU.

To start sis in Leon3 mode, add the -leon3 switch. In gdb,
use 'target sim -leon3' .

1.1 Multiprocessing

It is possible to emulate an SMP leon3 system with up to 4 cores.
Add the switch -m <n> when starting the simulator, where n can be 
2 - 4. The cores are simulated in a round-robin fashion with a time-
slice of 50 clocks. Shorter or longer time-slices can be selected
using -d <clocks>/

1.2 UART

The UART emulates an APBUART and is located at address 0x80000100.
The following registers are implemented:

- UART RX and TX register	(0x80000100)
- UART status register		(0x80000104)

The UART generates interrupt 3.

1.3 Timer unit (GPTIMER)

The GPTIMER programmable counter is emulated and located at
address 0x80000300. It is configured with two timers and separate
interrupts (8 and 9).

1.4 Interrupt controller

The IRQMP interrupt controller is implemented as described in the
GRLIB IP manual, with the exception of the interrupt level register.
Extended interrupts are not supported. The registers are located
at address 0x80000200.

1.5 Memory interface

The following memory areas are valid for the Leon3 simulator:

0x00000000 - 0x01000000		ROM (16 Mbyte, loaded at start-up)
0x40000000 - 0x41000000		RAM (16 Mbyte, loaded at start-up)
0x80000000 - 0x81000000		APB bus, including plug&play
0xFFFFF000 - 0xFFFFFFFF		AHB plug&play area

Access to non-existing memory will result in a memory exception trap.

1.6 Power-down mode

The Leon3 power-down feature (%asr19) is supported. When power-down is
entered, time is skipped forward until the next event in the event queue.
Ctrl-C in the simulator window will exit the power-down mode.