blob: 3d9e12b8a20664f969eced872bd7b749141cf0cf (
plain) (
blame)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
.. COMMENT: COPYRIGHT (c) 1989-2007.
.. COMMENT: On-Line Applications Research Corporation (OAR).
.. COMMENT: All rights reserved.
OpenRISC 1000 Specific Information
**********************************
This chapter discusses the`OpenRISC 1000 architecture
http://opencores.org/or1k/Main_Page dependencies in this port of RTEMS. There
are many implementations for OpenRISC like or1200 and mor1kx. Currently RTEMS
supports basic features that all implementations should have.
**Architecture Documents**
For information on the OpenRISC 1000 architecture refer to the`OpenRISC 1000
architecture manual http://openrisc.github.io/or1k.html.
Calling Conventions
===================
Please refer to the`Function Calling Sequence
http://openrisc.github.io/or1k.html#__RefHeading__504887_595890882.
Floating Point Unit
-------------------
A floating point unit is currently not supported.
Memory Model
============
A flat 32-bit memory model is supported.
Interrupt Processing
====================
OpenRISC 1000 architecture has 13 exception types:
- Reset
- Bus Error
- Data Page Fault
- Instruction Page Fault
- Tick Timer
- Alignment
- Illegal Instruction
- External Interrupt
- D-TLB Miss
- I-TLB Miss
- Range
- System Call
- Floating Point
- Trap
Interrupt Levels
----------------
There are only two levels: interrupts enabled and interrupts disabled.
Interrupt Stack
---------------
The OpenRISC RTEMS port uses a dedicated software interrupt stack. The stack
for interrupts is allocated during interrupt driver initialization. When an
interrupt is entered, the _ISR_Handler routine is responsible for switching
from the interrupted task stack to RTEMS software interrupt stack.
Default Fatal Error Processing
==============================
The default fatal error handler for this architecture performs the following
actions:
- disables operating system supported interrupts (IRQ),
- places the error code in ``r0``, and
- executes an infinite loop to simulate a halt processor instruction.
Symmetric Multiprocessing
=========================
SMP is not supported.
|