| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
Update #2268.
|
| |
|
|
|
|
|
|
|
| |
This allows it to be wrapped by another function at link-time
and can be used to trace interrupts. If not placed in a separate
file, the function pointer address used in BSP_shared_interrupt_init
will be resolved at compile-time, and the function will not be wrappable.
|
|
|
|
| |
Close #2242.
|
| |
|
| |
|
|
|
|
| |
Fixes bug introduced with dff1803cfbec3775fff1b9c34cc707c05494dc3b.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The dummy.c was a de-facto default configuration. Rename it to
default-configuration.c. Use unlimited objects and the stack checker.
This makes it easier for new RTEMS users which will likely use this file
if they just work with the usual main() function as the application
entry point. Provide proper arguments for main() using the BSP command
line. Add spare user extensions and drivers.
Do not initialize the network by default. Delete bspinit.c.
|
|
|
|
| |
Fixes bug introduced with dff1803cfbec3775fff1b9c34cc707c05494dc3b.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Coding style cleanups.
* Use OS reserved trap 0x89 for IRQ Disable
* Use OS reserved trap 0x8A for IRQ Enable
* Add to SPARC CPU supplement documentation
This will result in faster Disable/Enable code since the
system trap handler does not need to decode which function
the user wants. Besides the IRQ disable/enabled can now
be inline which avoids the caller to take into account that
o0-o7+g1-g4 registers are destroyed by trap handler.
It was also possible to reduce the interrupt trap handler by
five instructions due to this.
|
|
|
|
|
| |
Condition needs to be inverted, as a 1 in the mask register means
that the interrupt is enabled. Solves ticket #1959 in trac.
|
|
|
|
|
| |
Condition needs to be inverted, as a 1 in the mask register means
that the interrupt is enabled. Solves ticket #1958 in trac.
|
|
|
|
|
|
|
|
|
|
|
| |
Save five instructions on underflow handling.
By using an optimized trap entry we can move instructions from
the window underflow function into the trap entry vector. By
setting WIM=0 and using RESTORE it is possible to move the
new WIM register content from the trapped window into the
to-be-restored register window. It is then possible to avoid
the WIM write delay.
|
|
|
|
|
| |
I see no need for waiting the 3 instruction delay for wim to be
written in this case, since the STD after does not depend on WIM
|
|
|
|
|
| |
This option is necessary to use the latest GCC 4.8, 4.9 and 5.0
versions.
|
|
|
|
| |
close #2113
|
| |
|
|
|
|
| |
Provide it also if RTEMS_MULTIPROCESSING is defined.
|
|
|
|
| |
Some includes may use C++ and this conflicts if surrounded extern "C".
|
|
|
|
| |
Check that data cache snooping exists and is enabled on all cores.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Manupilating the interrupt control registers directly instead
of going through the interrupt layer can be deceiving.
|
| |
|
|
|
|
| |
Changed LEON3_irq-mp to const also.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Now that a SPARC fatal handler is defined, we no longer
need the BSP specific reset routine.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Rename _BSP_Exception_frame_print() to _CPU_Exception_frame_print() to
be in line with other CPU port functions.
|
| |
|
|
|
|
|
| |
Rename _BSP_Start_multitasking to _LEON3_Start_multitasking to show that
it is LEON specific
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
With this patch the preinstall.am files are in a set order and not
dependent on now perl implements a hash.
|