| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.
This has at least seven problems:
* The make preinstall step itself needs time and disk space.
* Errors in header files show up in the build tree copy. This makes it
hard for editors to open the right file to fix the error.
* There is no clear relationship between source and build tree header
files. This makes an audit of the build process difficult.
* The visibility of all header files in the build tree makes it
difficult to enforce API barriers. For example it is discouraged to
use BSP-specifics in the cpukit.
* An introduction of a new build system is difficult.
* Include paths specified by the -B option are system headers. This
may suppress warnings.
* The parallel build had sporadic failures on some hosts.
This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.
The new cpukit include directories are:
* cpukit/include
* cpukit/score/cpu/@RTEMS_CPU@/include
* cpukit/libnetworking
The new BSP include directories are:
* bsps/include
* bsps/@RTEMS_CPU@/include
* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include
There are build tree include directories for generated files.
The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.
The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.
Update #3254.
|
|
|
|
|
|
|
| |
Remove old ISR parameter since is not used by the clock driver shell.
Make an implementation optional.
Update #3139.
|
|
|
|
|
|
| |
Change bsp_interrupt_vector_enable() and bsp_interrupt_vector_disable()
to not return a status code. Add bsp_interrupt_assert() and use it to
validate the vector number in the vector enable/disable implementations.
|
| |
|
| |
|
| |
|
|
|
|
| |
Update #2271.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Rename _BSP_Exception_frame_print() to _CPU_Exception_frame_print() to
be in line with other CPU port functions.
|
| |
|
|
|
|
| |
The MIPS port defines CPU_SIMPLE_VECTORED_INTERRUPTS to FALSE.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use a per-CPU thread dispatch disable level. So instead of one global
thread dispatch disable level we have now one instance per processor.
This is a major performance improvement for SMP. On non-SMP
configurations this may simplifiy the interrupt entry/exit code.
The giant lock is still present, but it is now decoupled from the thread
dispatching in _Thread_Dispatch(), _Thread_Handler(),
_Thread_Restart_self() and the interrupt entry/exit. Access to the
giant lock is now available via _Giant_Acquire() and _Giant_Release().
The giant lock is still implicitly acquired via
_Thread_Dispatch_decrement_disable_level().
The giant lock is only acquired for high-level operations in interrupt
handlers (e.g. release of a semaphore, sending of an event).
As a side-effect this change fixes the lost thread dispatch necessary
indication bug in _Thread_Dispatch().
A per-CPU thread dispatch disable level greatly simplifies the SMP
support for the interrupt entry/exit code since no spin locks have to be
acquired in this area. It is only necessary to get the current
processor index and use this to calculate the address of the own per-CPU
control. This reduces the interrupt latency considerably.
All elements for the interrupt entry/exit code are now part of the
Per_CPU_Control structure: thread dispatch disable level, ISR nest level
and thread dispatch necessary. Nothing else is required (except CPU
port specific stuff like on SPARC).
|
|
|
|
|
|
|
|
|
| |
This commit deletes all RTEMS ChangeLog files. These files have been abandoned
since converting to git version control. The historical data may be recovered
by checking out any commit before this one. Most of the contents of these
ChangeLog files can also be found in the git log.
Two external ChangeLog files, ChangeLog.slac and ChangeLog.zlib, remain.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add CPU port type CPU_Exception_frame and function
_CPU_Exception_frame_print().
The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh,
sparc64, and v850 use an empty default implementation of
_CPU_Exception_frame_print().
Add rtems_exception_frame and rtems_exception_frame_print().
Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions. Use rtems_fatal()
with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc,
and sparc for unexpected exceptions.
Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the
BSP_PRINT_EXCEPTION_CONTEXT define used in the default
bsp_fatal_extension().
Add test sptests/spfatal26.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
| |
|
|
|
|
|
|
| |
PR 1599/cpukit
* shared/irq/exception.S: Rename _Context_Switch_necessary to
_Thread_Dispatch_necessary to more properly reflect the intent.
|
|
|
|
|
| |
* shared/irq/exception.S: Removed _ISR_Signals_to_thread_executing
declaration.
|
|
|
|
|
|
|
|
| |
PR 1573/cpukit
* shared/irq/exception.S: Add a per cpu data structure which contains
the information required by RTEMS for each CPU core. This
encapsulates information such as thread executing, heir, idle and
dispatch needed.
|
|
|
|
|
| |
* shared/liblnk/lnklib.S, shared/liblnk/pmon.S, shared/liblnk/regs.h,
shared/startup/idtmem.S, shared/startup/idttlb.S: New files.
|
|
|
|
|
| |
* shared/irq/exception.S: rbtx4925, rbtx4938, and hurricane had very
similar versions of exception. Now all use shared/irq/exception.S
|
|
|
|
| |
* shared/irq/exception.S: New file.
|
|
|
|
| |
* shared/gdbstub/mips-stub.c: Remove warnings.
|
| |
|
| |
|
|
|
|
|
| |
* shared/gdbstub/mips-stub.c: Remove incorrect and unneccessary
prototype of printk.
|
|
|
|
| |
* shared/gdbstub/mips-stub.c: Removed warnings.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 433/tools
* mips-stub.c: Patch from C. M. Heard <heard@pobox.com> described as:
The purpose of the patch is to make the stub ignore all
characters except '+' (ack) or '-' (nak) when it has transmitted a
packet and expects an acknowledgment. Without the patch,
putpacket() will retransmit each time it receives anything other
than '+' when expecting an ack, and that, bitter experience has
found, frequently results in the stub failing to sync up when
initially attaching to gdb.
I think that rtems users will notice significant improvement in
the of the mips stub if this patch is incorporated in the
distribution; certainly I did in my stand-aline environment. I
should hasten to add that it is only an improvement and not a 100%
cure for synchronization problems because '+' characters can (and
do) during as message data, and it's still possible for these to
be mistaken as acks. I have no idea how to fix that short of
redesigning the gdb-remote protocol.
|
|
|
|
| |
* mips-stub.c: Removed warnings.
|
|
|
|
| |
* rtems-stub-glue.c: Removed should only be common copy.
|
|
|
|
|
|
|
| |
* mips-stub.c: Re-debugged a breakpoint problem, zbreak target
address was a char * which caused the target instruction to not
be fully copied, so the zbreak logic corrupted the original
instruction and didn't insert a valid break instruction.
|
|
|
|
| |
* mips-stub.c: Removed warnings.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* mips-stub.c: Debugged & tweaked the gdb command processing,
zbreak stuff, breakpoint and step code. Implemented 'T' command
support and debugged remote gdb support w/ the Mongoose bsp.
Added the memory segment support.
* memlimits.h: Disabled all contents in favor of memory sement
support. This file could probably go away.
* rtems-stub-glue.c (rtems_gdb_index_to_stub_id()): New routine.
rtems_gdb_stub_get_register_from_context(): Implemented MIPS version.
rtems_gdb_stub_get_offsets(): Implemented MIPS version.
* README: Updated.
|
|
|
|
| |
* ChangeLog: Corrected previous entry.
|
|
|
|
|
|
| |
* shared/gdbstub/README: Added text.
* shared/gdbstub/mips-stub.c: Modified isr install routine to
capture all exceptions.
|
|
|
|
|
|
|
|
|
|
|
| |
* Significant modifications including adding thread support, the 'X'
command, and reorganizing so that target CPU independent routines
could be reused.
* gdb_if.h: Added numerous prototypes.
* mips-stub.c: Added thread support as well as 'X' command.
Also noticed that the 'P' command was from the mips protocol.
* rtems-stub-glue.c: New file. This file contains all generic
support which should be able to be reused on another target CPU.
|
|
|
|
|
|
| |
* mips-stub.c (handle_exception): Prototype changed to be an RTEMS
entry point. Added comments about possible need to flush cache.
(mips_gdb_stub_install): New routine.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile, stubinit.S, r46kstub.ld, ioaddr.h: Removed as unused
with RTEMS.
* r46kstub.c: Renamed to mips-stub.c.
* mips-stub.c: New file -- was r46kstub.c.
* memlimits.h: New file was limits.h.
* limits.h: Removed.
* r4600.h: Eliminated need for this file.
* README: Updated.
* gdb_if.h: Added CVS Id.
* mips-stub.c: Attempt to deal with MIPS1 versus MIPS3.
|
|
* Merged r46kstub.c into RTEMS distribution without modification.
I got the code from Franz Fischer <Franz.Fischer@franz-fischer.de>
who had used this with an old version of RTEMS with the mips64orion
port of RTEMS. After adding this to the repository, I will tailor
this to work with the RTEMS exception processing model and trim
no longer needed parts.
* ChangeLog, gdb_if.h, ioaddr.h, limits.h, Makefile, mips_opcode.h,
r4600.h, r46kstub.c, r46kstub.ld, README, stubinit.S:
|