Age | Commit message (Collapse) | Author |
|
|
|
Recent GCC have SPARC multilib with muser-mode. This makes
CAS instruction operating in both user and priveleged mode.
It is required to allow the CAS in systems where RTEMS run
in user mode.
|
|
The LEON3 BSP has been using mcpu=cypress which is a
SPARCV7 that is compatible with SPARCv8 CPUs. This patch
enables the relatively new LEON3 model and generates
SPARCv7 compatible code. This shuold be comptabile with
all single-core LEON3/4 systems. The LEON3 model is
required for SMP to make GCC generate the CAS instruction.
|
|
|
|
* Coding style cleanups.
* Use OS reserved trap 0x89 for IRQ Disable
* Use OS reserved trap 0x8A for IRQ Enable
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 traphandler with
five instructions due to this.
|
|
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.
|
|
By using a optimized trap entry we can move instructions from
the window overflow function into the trap entry vector. By
using the saved locals instead of g1 we don't need to save
that register temporarily. Also spead out non store instructions
inbetween stores to use the write buffer better.
|
|
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
|
|
With this patch it is possible to compile a kernel that works on
both FPU and non-FPU SPARC systems. The SPARC PSR register contains
a bit indicating if FPU is present.
It is a minimal increase to the foot-print.
|
|
The printf() causing the problem is removed temporarily. It
must be analysed more in depth why this problem occurs. The
stack is overflowed when the signal handler is called. What
triggers it might be related to a slow UART, but I believe the
actual problem is something else.
The following steps can be seen:
1. Thread is switched in, a call frame is added for the signal
handler.
2. The signal handler calls printf()
3. a semaphore is taken which blocks the signal handler
4. the task switched in again, but now it starts execcuting
the signal handler *again*. Jump to 1. After a couple of
loops the stack is overflowed.
It might be that systems with a larger UART FIFO or faster UART
is not affected.
|
|
In order to support older toolchains and LEON3 v7 systems the
-mcpu=leon3 flag can not be used. The SMP kernel however requires
-mcpu=leon3 for the CAS support only present in GCC-4.8.3 and
GCC-4.9.
|
|
Change semaphore attributes to resolve problem where semaphore is not
released upon a context switch.
|
|
Change semaphore attributes to prevent semaphore from being
locked and never released upon a context switch.
|
|
Change semaphore attributes to prevent semaphore from being
locked and never released upon a context switch.
|
|
Similar to the task priority option, the new CPU affinity
option is first controlled by the RPCI specific rpciodCpuset
option. If that is not set, it uses the global network task config.
If that is also not set, it falls back to not setting the affinity
at all, using all CPUs.
|
|
This patch adds a default network tasks CPU affinity configuration
option. The network drivers have the option to create their own
daemon tasks with a custom CPU affinity set, or rely on the
default set.
|
|
The LEON3 BSP have support for up to 8 termios consoles, the
LEON3-FT GR712RC uses 6 UARTs.
This does not take into account the BSP maximum devices instead
it is hardcoded to 6. This patch increases it the maximum
devices of DEVFS04 from 6 to 10.
|
|
|
|
This should have been added.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Loads 2 interdependent ELF object files.
|
|
|
|
|
|
Adding a local symbol lets the relocator find local symbols referenced
in relocation records. The local symbol table is erased once the object
module has been loaded.
|
|
Specifically the beagleboard, beagleboard xM, beaglebone, beaglebone black.
More info on these targets: http://www.beagleboard.org/
This commit forms a basic BSP by combining Claas's work with
. new clock and irq code and definitions for
beagle targets (beagleboard and beaglebones), mostly
reused from the Minix codebase, thus making
irqs, ticks and non-polled console mode work too
. new timer code for ns timing with high timer resolution,
24MHz on the AM335X and 13MHz on the DM37XX
. select the console uart based on target at configure time
. removing all the lpc32xx-specific macros and code and
other unused code and definitions that the beagle bsp
was based on
. re-using some standard functions instead of lpc32xx versions
. fixed some whitespace problem in preinstall.am
. fixed some compile warnings
. configure MMU: set 1MB sections directly in the TTBR,
just to show the difference between cacheable RAM and
non-cacheable device memory and invalid ranges; this lets us
turn on caches and not rely on boot loader MMU configuration.
Verified to work when MMU is initially either on or off when
RTEMS gets control.
Thanks for testing, commentary, improvements and fixes to Chris Johns,
Brandon Matthews, Matt Carberry, Romain Bornet, AZ technology and others.
Signed-Off-By: Ben Gras <beng@shrike-systems.com>
|
|
Coding done in course of GSoC2012.
Commit edited to be brought up-to-date with mainline by
Ben Gras <beng@shrike-systems.com>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is a merge of the RTL project.
|
|
|
|
|
|
rtems_cpu_usage_top should be used for this information.
|
|
|
|
|