summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc (follow)
Commit message (Collapse)AuthorAgeFilesLines
* bsps/sparc: Include right header fileSebastian Huber2014-10-232-2/+2
|
* bsp/leon3: Fix LEON3_mp_irq definitionSebastian Huber2014-10-233-6/+9
| | | | Provide it also if RTEMS_MULTIPROCESSING is defined.
* bsps: Move extern "C" to not cover includesSebastian Huber2014-10-233-12/+12
| | | | Some includes may use C++ and this conflicts if surrounded extern "C".
* bsp/sparc: Ensure that data cache snooping is enabledDaniel Cederman2014-10-232-2/+18
| | | | Check that data cache snooping exists and is enabled on all cores.
* sparc/leon3/include/bsp.h: Fix warningsJoel Sherrill2014-10-191-0/+5
|
* sparc/leon2/include/bsp.h: Fix warningsJoel Sherrill2014-10-191-1/+7
|
* sparc/erc32: Fix warningsJoel Sherrill2014-10-194-14/+21
|
* sparc/shared: Fix warningsJoel Sherrill2014-10-193-4/+12
|
* sparc/shared/include/b1553brm_rasta.h: FormattingJoel Sherrill2014-10-191-7/+7
|
* sparc/erc32/clock/ckinit.c: Fix warningsJoel Sherrill2014-10-131-5/+4
|
* sparc/leon2: Fix warningsJoel Sherrill2014-10-1311-39/+56
|
* LEON: let termios layer handle \n also in pollingDaniel Hellstrom2014-10-091-1/+1
|
* LEON: console print \r\n instead of \n\rDaniel Hellstrom2014-10-091-2/+3
|
* LEON3: use interrupt layer in clock driverDaniel Hellstrom2014-10-091-3/+20
| | | | | Manupilating the interrupt control registers directly instead of going through the interrupt layer can be deceiving.
* SPARC BSPs: irq-shared.c code style clean-upDaniel Hellstrom2014-10-091-27/+27
|
* LEON3 SMP: support static interrupt affinityDaniel Hellstrom2014-10-093-8/+46
| | | | Changed LEON3_irq-mp to const also.
* SPARC BSPs: added CPU aware interrupt ctrl operationsDaniel Hellstrom2014-10-093-13/+65
| | | | | | The LEON2 and ERC32 maps the new macros to CPU0 since they do not support SMP. With the LEON3 a specific CPU's interrupt controller registers can be modified using macros.
* termios: Partially hide rtems_termios_ttySebastian Huber2014-10-073-24/+32
| | | | | | | Move interrupt lock to device context and expose only this structure to the read, write and set attributes device handler. This makes these device handler independent of the general Termios infrastructure suitable for direct use in printk() support.
* termios: Separate flow control from normal handlerSebastian Huber2014-10-071-0/+2
|
* erc32,leon2: replace bsp_reset with SPARC fatal handlerDaniel Hellstrom2014-10-063-9/+2
| | | | | Now that a SPARC fatal handler is defined, we no longer need the BSP specific reset routine.
* LEON3: use CPU_Fatal_halt for haltDaniel Hellstrom2014-10-064-65/+90
| | | | | | | | | | | | | | By removing the bsp_reset() mechanism and instead relying on the CPU_Fatal_halt() routine SMP and single-core can halt by updating the _Internal_errors_What_happened structure and set the state to SYSTEM_STATE_TERMINATED (the generic way). This will be better for test scripts and debugger that can generically look into why the OS stopped. For SMP systems, only the fatal-reporting CPU waits until all other CPUs are powered down (with a time out of one clock tick). The reason why a fatal stop happend may be because CPU0 was soft-locked up so we can never trust that CPU0 should do the halt for us.
* SPARC: Fatal_halt use source and exit codesDaniel Hellstrom2014-10-068-0/+92
| | | | | | | | | | | | | | | The Fatal_halt handler now have two options, either halt as before or enter system error state to return to debugger or simulator. The exit-code is now also propagated to the debugger which is very useful for testing. The CPU_Fatal_halt handler was split up into two, since the only the LEON3 support the CPU power down. The LEON3 halt now uses the power-down instruction to save CPU power. This doesn't stop a potential watch-dog timer from expiring.
* SPARC: add BSP specific error handlerDaniel Hellstrom2014-10-068-3/+30
| | | | | | | | Instead of calling the system call TA instruction directly it is better paractise to isolate the trap implementation to the system call functions. BSP_fatal_exit() is added.
* SPARC BSPs: remove BSP_fatal_return unreached codeDaniel Hellstrom2014-10-064-13/+2
|
* bsp/leon3: Replace the define LEON3_MP_IRQ with a weakly linked variableDaniel Cederman2014-10-026-12/+22
| | | | | | | | The LEON3_MP_IRQ define is used to pick the IRQ to be used by the shared memory driver and for inter-processor interrupts. On some LEON3 systems, for example the GR712RC, the default value of 14 is not suitable. To make this value configurable from the application, it is replaced with a weakly linked variable that can be overridden from the application.
* Use correct prototype of benchmark_timer_read()Joel Sherrill2014-09-163-3/+3
| | | | | | | | | | | | | | This change starts with removing the effectively empty file timerdrv.h. The prototypes for benchmark_timer_XXX() were in btimer.h which was not universally used. Thus every use of timerdrv.h had to be changed to btimer.h. Then the prototypes for benchmark_timer_read() had to be adjusted to return benchmark_timer_t rather than int or uint32_t. I took this opportunity to also correct the file headers to separate the copyright from the file description comments which is needed to ensure the copyright isn't propagated into Doxygen output.
* score: Rename _BSP_Exception_frame_print()Sebastian Huber2014-09-113-3/+3
| | | | | Rename _BSP_Exception_frame_print() to _CPU_Exception_frame_print() to be in line with other CPU port functions.
* bsp/leon3: Include missing header fileSebastian Huber2014-09-081-0/+1
|
* score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in generalDaniel Cederman2014-09-011-1/+1
| | | | | Rename _BSP_Start_multitasking to _LEON3_Start_multitasking to show that it is LEON specific
* bsp/ngmp: Use -mcpu=leon3 GCC optionSebastian Huber2014-09-011-0/+2
| | | | | | | | | | | | | | | | | | There is support for the LEON3 processor available in Binutils 2.24 and the GCC 4.8 branch and GCC mainline. GCC 4.8 branch: http://gcc.gnu.org/viewcvs/gcc/branches/?view=log&pathrev=205331 GCC mainline: http://gcc.gnu.org/viewcvs/gcc/trunk/?view=log&pathrev=202664 It is mandatory to use this option for SMP on LEON3 since it enables usage of C11 atomic operations. It makes it also possible to use an inline function for _CPU_SMP_Get_current_processor() which avoids the function call overhead in critical sections.
* Regenerate all preinstall.am files.Chris Johns2014-08-292-10/+10
| | | | | With this patch the preinstall.am files are in a set order and not dependent on now perl implements a hash.
* Regenerate all preinstall.am files.Joel Sherrill2014-08-283-15/+15
| | | | | Apparently, at some point automake output changed and these were not updated.
* score: Add SMP support to the cache managerDaniel Cederman2014-08-221-0/+2
| | | | | | | | | Adds functions that allows the user to specify which cores that should perform the cache operation. SMP messages are sent to all the specified cores and the caller waits until all cores have acknowledged that they have flushed their cache. If CPU_CACHE_NO_INSTRUCTION_CACHE_SNOOPING is defined the instruction cache invalidation function will perform the operation on all cores using the previous method.
* bsp/sparc: Flush only instruction cacheDaniel Cederman2014-08-222-1/+9
| | | | | | The flush instruction on LEON flushes both the data and the instruction cache. Flushing of just the instruction cache can be done by setting the "flush instruction cache" bit in the cache control register.
* bsp/sparc: Flush icache before first time enabling interruptsDaniel Cederman2014-08-221-0/+9
| | | | | | | A secondary processor might miss changes done to the trap table if the instruction cache is not flushed. Once interrupts are enabled any other required cache flushes can be ordered via the cache manager.
* bsps/sparc: Set best baud in APBUART driverSebastian Huber2014-07-091-0/+14
| | | | | This prevents failures of all tests using rtems_shell_wait_for_input(), e.g. capture, termios, pppd, etc.
* bsps/sparc: Move APBUART printk supportChristian Mauderer2014-07-094-70/+70
|
* bsps/sparc: Add and use shared APBUART consoleSebastian Huber2014-07-095-325/+315
| | | | | | Move the APBUART console driver support to the shared SPARC area so that it can be reused by other BSPs. Only the console driver initialization is now BSP specific.
* score: PR2183: Fix context switch on SMPSebastian Huber2014-07-041-8/+49
| | | | | | | | Fix context switch on SMP for ARM, PowerPC and SPARC. Atomically test and set the is executing indicator of the heir context to ensure that at most one processor uses the heir context. Break the busy wait loop also due to heir updates.
* bsps/sparc: Reduce copy and pasteSebastian Huber2014-07-015-58/+28
|
* LEON3: devfs free nodes must be sizedDaniel Hellstrom2014-06-301-0/+3
| | | | | | | | | .. according to the maximum number of termios ports which is 8. Since LEON3 uses PnP to find how many UARTs there are present we must make sure worst case work. The current maximum of 4 free nodes caused for example the GR712RC with its 6 UARTs to fail during devfs02 test.
* LEON3: fix console close handlingDaniel Hellstrom2014-06-301-3/+3
| | | | | | On SMP rtems_interrupt_lock_context must be used. Most tests fail with a NULL pointer exception when exiting, except on NGMP where main memory is at 0x00000000.
* LEON2: enable exception prinout by defaultDaniel Hellstrom2014-06-051-1/+1
|
* LEON3: enable exception prinout by defaultDaniel Hellstrom2014-06-051-1/+1
|
* score/sparc: Add support for paravirtualizationChristian Mauderer2014-06-035-1/+40
| | | | | | | Guest systems in paravirtualization environments run usually in user mode. Thus it is not possible to directly access the PSR and TBR registers. Use functions instead of inline assembler to access these registers if RTEMS_PARAVIRT is defined.
* SPARC: syscall optimizations and PSR-write fixDaniel Hellstrom2014-05-281-1/+10
| | | | | | | | | | | | | | | The last optimization missed was incorrect in regards to PSR write instruction delay must be 3 instructions. New optimizations: * align to 32-byte cache line. * rearrange code into three "blocks" of 4 instructions that is executed by syscall 2 and 3. This is to optimize for 16/32 byte cache lines. * use delay-slot instruction in trap table to reduce by one instruction. * use the fact that "wr %PSR" implements XOR to reduce by one instruction.
* LEON3: coding style clean bsp_irq_fixup()Daniel Hellstrom2014-05-281-9/+9
|
* LEON3: add support for IRQ16..31 for CPU!=0Daniel Hellstrom2014-05-281-2/+3
|
* bsps/sparc: Change tabs to spaces.Daniel Cederman2014-05-2718-311/+309
|
* bsps/sparc: Add copyright and license informationDaniel Cederman2014-05-2720-38/+157
|