[PATCH] Add new documentation section for OpenRISC CPU architecture.
Joel Sherrill
joel.sherrill at oarcorp.com
Wed Aug 20 20:51:11 UTC 2014
I pushed this. You had the right idea to prod us. There is a lot
of code flying right now and we want to not forget any of it.
Some comments.
+ Turn list of implementations into a bullet list with URLs.
+ I turned on spell check in gvim and fixed some.
If someone thinks there are other topics to address, please
speak up.
Is Thread Local Storage supported? I recall we turned it on
in gcc.
--joel
On 8/16/2014 11:30 AM, Hesham ALMatary wrote:
> ---
> doc/cpu_supplement/Makefile.am | 6 +++
> doc/cpu_supplement/cpu_supplement.texi | 2 +
> doc/cpu_supplement/or1k.t | 78 ++++++++++++++++++++++++++++++++++
> 3 files changed, 86 insertions(+)
> create mode 100644 doc/cpu_supplement/or1k.t
>
> diff --git a/doc/cpu_supplement/Makefile.am b/doc/cpu_supplement/Makefile.am
> index 3083922..300ff78 100644
> --- a/doc/cpu_supplement/Makefile.am
> +++ b/doc/cpu_supplement/Makefile.am
> @@ -23,6 +23,7 @@ GENERATED_FILES += m32r.texi
> GENERATED_FILES += m68k.texi
> GENERATED_FILES += microblaze.texi
> GENERATED_FILES += mips.texi
> +GENERATED_FILES += or1k.texi
> GENERATED_FILES += powerpc.texi
> GENERATED_FILES += nios2.texi
> GENERATED_FILES += sh.texi
> @@ -101,6 +102,11 @@ mips.texi: mips.t
> -u "Top" \
> -n "" < $< > $@
>
> +or1k.texi: or1k.t
> + $(BMENU2) -p "" \
> + -u "Top" \
> + -n "" < $< > $@
> +
> powerpc.texi: powerpc.t
> $(BMENU2) -p "" \
> -u "Top" \
> diff --git a/doc/cpu_supplement/cpu_supplement.texi b/doc/cpu_supplement/cpu_supplement.texi
> index 1087538..5c484d0 100644
> --- a/doc/cpu_supplement/cpu_supplement.texi
> +++ b/doc/cpu_supplement/cpu_supplement.texi
> @@ -73,6 +73,7 @@
> * M68xxx and Coldfire Specific Information::
> * Xilinx MicroBlaze Specific Information::
> * MIPS Specific Information::
> +* OpenRISC 1000 Specific Information::
> * Altera Nios II Specific Information::
> * PowerPC Specific Information::
> * SuperH Specific Information::
> @@ -97,6 +98,7 @@
> @include microblaze.texi
> @include mips.texi
> @include nios2.texi
> + at include or1k.texi
> @include powerpc.texi
> @include sh.texi
> @include sparc.texi
> diff --git a/doc/cpu_supplement/or1k.t b/doc/cpu_supplement/or1k.t
> new file mode 100644
> index 0000000..219f23b
> --- /dev/null
> +++ b/doc/cpu_supplement/or1k.t
> @@ -0,0 +1,78 @@
> + at c
> + at c COPYRIGHT (c) 2014 Hesham ALMatary <heshamelmatary at gmail.com>
> + at c All rights reserved.
> +
> + at ifinfo
> + at end ifinfo
> + at chapter OpenRISC 1000 Specific Information
> +
> +This chapter discusses the
> + at uref{http://opencores.org/or1k/Main_Page, OpenRISC 1000 architecture}
> +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.
> +
> + at subheading Architecture Documents
> +
> +For information on the OpenRISC 1000 architecture refer to the
> + at uref{http://openrisc.github.io/or1k.html,OpenRISC 1000 architecture manual}.
> +
> + at section Calling Conventions
> +
> +Please refer to the
> + at uref{http://openrisc.github.io/or1k.html#__RefHeading__504887_595890882,Function Calling Sequence}.
> +
> + at subsection Floating Point Unit
> +
> +A floating point unit is currently not supported.
> +
> + at section Memory Model
> +
> +A flat 32-bit memory model is supported.
> +
> + at section Interrupt Processing
> +
> +OpenRISC 1000 architecture has 13 exception types:
> +
> + at itemize @bullet
> +
> + at item Reset
> + at item Bus Error
> + at item Data Page Fault
> + at item Instruction Page Fault
> + at item Tick Timer
> + at item Alignment
> + at item Illegal Instruction
> + at item External Interrupt
> + at item D-TLB Miss
> + at item I-TLB Miss
> + at item Range
> + at item System Call
> + at item Floating Point
> + at item Trap
> +
> + at end itemize
> +
> + at subsection Interrupt Levels
> +
> +There are only two levels: interrupts enabled and interrupts disabled.
> +
> + at subsection Interrupt Stack
> +
> +OpenRISC RTEMS port uses RTEMS SW interrupt stack.
> +The stack for interrupts is allocated during interrupt driver initilization.
> +When an interrup entered, the _ISR_Handler routine is resposible for
> +switching from the interrupted task stack to RTEMS SW interrupt stack.
> +
> + at section Default Fatal Error Processing
> +
> +The default fatal error handler for this architecture performs the
> +following actions:
> +
> + at itemize @bullet
> + at item disables operating system supported interrupts (IRQ),
> + at item places the error code in @code{r0}, and
> + at item executes an infinite loop to simulate a halt processor instruction.
> + at end itemize
> +
> +
--
Joel Sherrill, Ph.D. Director of Research & Development
joel.sherrill at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the devel
mailing list