summaryrefslogtreecommitdiffstats
path: root/libgloss/or1k
Commit message (Collapse)AuthorAgeFilesLines
* or1k: Typo fixesJeff Johnston2015-08-072-2/+2
| | | | | | | Wrong paranthesis and an incorrect symbol name are fixed. * or1k/boards/optimsoc.S: Fix symbol name * or1k/crt0.S: Remove paranthesis
* or1k: Allow exception nestingJeff Johnston2015-08-073-39/+143
| | | | | | | | | | | | | | | | | | | Allow exceptions to be nested, which is especially useful with urgent interrupts while processing an exception. The implementation counts up the nesting level with each call to an exception. In the outer exception (level 1), the exception stack is started. All nested exceptions just reserve the redzone (scratch memory that may be used by compiler) and exception context on the stack, but then process on the same scratch. Restriction: Impure pointers are shared among all exceptions. This may be solved by creating an impure data structure in the stack frame with each nested exception. * or1k/crt0.S: Add exception nesting * or1k/exceptions-asm.S: ditto * or1k/util.c: ditto
* or1k: Make heap end globally visibleJeff Johnston2015-08-071-1/+1
| | | | | | Boards may change the initial value from _end to another value. * or1k/sbrk.c: Make heap end globally visible
* or1k: Add missing initialization of impure ptrJeff Johnston2015-05-271-0/+3
| | | | * or1k/impure.c: Fix initialization of impure ptr
* or1k: set heap start for optimsoc-gzllJeff Johnston2015-05-271-0/+29
| | | | | | | | | | | | | | | | | | | - With the gzll kernel we have two different loading options: - If the image is loaded to the global memory, the bootstrapping loads the kernel to local memory. Applications are loaded on demand. The heap then starts right after bss. - If the image is pre-loaded to the local memory it includes the application binaries right after bss. The heap then starts after the application objects. - We can check if this is a gzll kernel as it has the string "gzll" at 0x2000. At 0x200c we then find the end of the application objects in the image. If there is no global memory we set _or1k_heap_start to this value. * or1k/boards/optimsoc.S: Heap for gzll kernel
* or1k: Make heap start configurableJeff Johnston2015-05-271-2/+3
| | | | | | | | | - Previously the heap started right after the bss section. This can now be configured by changing the _or1k_heap_start symbol that defaults to the old value (&end). In board_init_early, we can now set this to another value. * or1k/sbrk.c: Allow for different heap start
* or1k: UART also accept timeout interruptJeff Johnston2015-05-271-3/+5
| | | | | | | - The UART interrupt only handled receiver FIFO full interrupts, but we also want to handle timeout interrupts. * or1k/or1k_uart.c: Fix interrupts
* Bug fix in timer for or1kJeff Johnston2015-05-271-1/+1
| | | | | | - Properly set the interrupt pending flag in the timer mode register. * or1k/timer.c: Properly set interrupt flags
* Store entire context for or1kJeff Johnston2015-05-271-0/+10
| | | | | | | | - Store the exception program counter (from EPCR) and exception status register (from ESR) also during the exception. A runtime system may replace them thereby to implement a thread switch. * or1k/exception-asm.S: Store missing state
* Fix exception stack frame for or1kJeff Johnston2015-05-272-3/+3
| | | | | | | | | - We do not need a red zone here, as we do not operate on the current stack, but always use the clear exception stack. Also reserve two extra words for the context to store EPCR and ESR. * or1k/crt0.S: Fix exception stack frame * or1k/exception-asm.S: ditto
* Fix interrupt handling for or1k.Jeff Johnston2015-05-271-28/+24
| | | | | | | | | | | | - During interrupt handling the PICSR, table pointers and current interrupt line have been saved in incorrect registers and/or stored on the stack. - Save the pointer in r16/r18, PICSR in r20 and the current interrupt line in r22. Those are callee-saved registers, so that the register values will be preserved. * or1k/interruts-asm.S: Change registers to callee-saved.
* * or1k/or1k_uart.c: Write bugfix and cleanup/documentation.Corinna Vinschen2015-02-112-57/+100
| | | | * or1k/or1k_uart.h: Cleanup.
* * or1k/include/or1k-sprs.h: New auto-generated header file.Corinna Vinschen2015-01-141-0/+2417
|
* 2014-12-15 Stefan Wallentowitz <stefan.wallentowitz@tum.de>Jeff Johnston2014-12-1515-1/+790
| | | | | | | | | | | | | | | | | | * or1k/Makefile.in: Build and install board libraries * or1k/board.h: New file * or1k/boards/README: New file * or1k/boards/atlys.S: New file * or1k/boards/de0_nano.S: New file * or1k/boards/ml501.S: New file * or1k/boards/ml509.S: New file * or1k/boards/optimsoc.S: New file * or1k/boards/or1ksim-uart.S: New file * or1k/boards/or1ksim.S: New file * or1k/boards/ordb1a3pe1500.S: New file * or1k/boards/ordb2a.S: New file * or1k/boards/orpsocrefdesign.S: New file * or1k/boards/tmpl.S: New file * or1k/boards/tmpl.c: New file
* 2014-12-15 Stefan Wallentowitz <stefan.wallentowitz@tum.de>Jeff Johnston2014-12-1520-1/+2560
| | | | | | | | | | | | | | | | | | | | | | | * or1k/Makefile.in: Add libor1k * or1k/README: New file * or1k/caches-asm.S: New file * or1k/exceptions-asm.S: New file * or1k/exceptions.c: New file * or1k/impure.c: New file * or1k/include/or1k-nop.h: New file * or1k/include/or1k-support.h: New file * or1k/interrupts-asm.S: New file * or1k/interrupts.c: New file * or1k/mmu-asm.S: New file * or1k/or1k-internals.h: New file * or1k/or1k_uart.c: New file * or1k/or1k_uart.h: New file * or1k/outbyte.S: New file * or1k/sbrk.c: New file * or1k/sync-asm.S: New file * or1k/syscalls.c: New file * or1k/timer.c: New file * or1k/util.c: New file
* 2014-12-15 Stefan Wallentowitz <stefan.wallentowitz@tum.de>Jeff Johnston2014-12-156-0/+5165
* README: Add details about or1k. * configure.in: Add or1k/or1knd * configure: Regenerated. * or1k/aclocal.m4: New file. * or1k/configure: Ditto. * or1k/Makefile.in: New file * or1k/configure.in: New file * or1k/crt0.S: New file * or1k/include/or1k-asm.h: New file