| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This patch is a part of the BSP source reorganization.
Update #3285.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the interrupt and stop the spurious interrupt from happening.
The fix moves the EOI to C code and cleans that functionality out
of the asm part of the ISR handler.
The code checks the ISR and IRR registers on the enable.
Only ack the master for a slave IRQ if the slave has no other pending
requests.
|
| |
|
| |
|
| |
|
|
|
|
| |
Interrupt support for SMP and the per-CPU thread dispatch disable level.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The commit partially restores the _ISR_Handler code to the original
version in commit b8fc2de1ce089c585da81c157ec0f24a90e484b7. A list of
reverted changes follows.
commit c236082873cb4a2fd42af4ca0868106e1dd65422
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date: Tue Jul 30 15:54:53 2013 +0200
smp: Provide cache optimized Per_CPU_Control
Delete _Per_CPU_Information_p.
This commit was completely reverted.
commit 39e51758c86754cef5ba4521c0c36578521f73d0
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date: Fri Jun 14 14:00:38 2013 +0200
smp: Add and use _CPU_SMP_Get_current_processor()
Add and use _SMP_Get_current_processor() and
rtems_smp_get_current_processor().
Delete bsp_smp_interrupt_cpu().
Change type of current processor index from int to uint32_t to match
_SMP_Processor_count type.
This commit was completely reverted.
commit e94aa61b6820e34732840139dbe3f2016c6f1e24
Author: Till Straumann <strauman@slac.stanford.edu>
Date: Fri Aug 5 00:15:50 2011 +0000
2011-08-04 Till Straumann <strauman@slac.stanford.edu>
* shared/irq/irq_asm.S: BUGFIX (introduced by SMP changes
which moved code around, apparently): *must* store i8259
mask to frame *before* switching to IRQ stack. The code
retrieves the mask after switching back to original stack.
Also, the IRQ stack has no reserved space for the mask;
storing it there could overwrite memory!
This commit was completely reverted.
commit 01f2692e338d592f363b2e27b2f62d8182d1124e
Author: Jennifer Averett <Jennifer.Averett@OARcorp.com>
Date: Mon Aug 1 13:41:50 2011 +0000
2011-08-01 Jennifer Averett <Jennifer.Averett@OARcorp.com>
PR 1802
* shared/irq/irq_asm.S, shared/irq/irq_init.c, shared/smp/smp-imps.c,
shared/smp/smp-imps.h: Add SMP support for i386.
* shared/smp/getcpuid.c: New file.
The parts modifying the code of _ISR_Handler were reverted.
commit 66729db3115e865fa45bc4e9ab81d8266894151c
Author: Joel Sherrill <joel.sherrill@OARcorp.com>
Date: Wed Mar 16 20:05:17 2011 +0000
2011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>
PR 1729/cpukit
* shared/irq/irq_asm.S: Add next step in SMP support. This adds an
allocated array of the Per_CPU structures to support multiple cpus vs
a single instance of the structure which is still used if SMP support
is disabled. Configuration support is also added to explicitly enable
or disable SMP. But SMP can only be enabled for the CPUs which will
support it initially -- SPARC and i386. With the stub BSP support, a
BSP can be run as a single core SMP system from an RTEMS data
structure standpoint.
This commit was completely reverted.
|
|
|
|
| |
Delete _Per_CPU_Information_p.
|
|
|
|
|
|
|
|
|
|
| |
Add and use _SMP_Get_current_processor() and
rtems_smp_get_current_processor().
Delete bsp_smp_interrupt_cpu().
Change type of current processor index from int to uint32_t to match
_SMP_Processor_count type.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
* shared/irq/irq_asm.S: BUGFIX (introduced by SMP changes
which moved code around, apparently): *must* store i8259
mask to frame *before* switching to IRQ stack. The code
retrieves the mask after switching back to original stack.
Also, the IRQ stack has no reserved space for the mask;
storing it there could overwrite memory!
|
|
|
|
|
|
|
| |
PR 1802
* shared/irq/irq_asm.S, shared/irq/irq_init.c, shared/smp/smp-imps.c,
shared/smp/smp-imps.h: Add SMP support for i386.
* shared/smp/getcpuid.c: New file.
|
|
|
|
|
|
| |
* shared/irq/irq_asm.S: Rename rtems_smp_maximum_processors to
rtems_configuration_smp_maximum_processors since it is defined in
confdefs.h.
|
|
|
|
|
|
|
|
| |
PR 1768/bsps
* shared/irq/irq_asm.S: The nbench benchmark highlighted the fact that
we do not perform a cld before calling C code in the ISR. This was
historically not a problem but gcc 4.3 changed the behavior. From
http://gcc.gnu.org/gcc-4.3/changes.html
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1729/cpukit
* shared/irq/irq_asm.S: Add next step in SMP support. This adds an
allocated array of the Per_CPU structures to support multiple cpus vs
a single instance of the structure which is still used if SMP support
is disabled. Configuration support is also added to explicitly enable
or disable SMP. But SMP can only be enabled for the CPUs which will
support it initially -- SPARC and i386. With the stub BSP support, a
BSP can be run as a single core SMP system from an RTEMS data
structure standpoint.
|
|
|
|
| |
* shared/irq/irq_asm.S: Fix typo.
|
|
|
|
| |
* shared/irq/irq_asm.S: Fix typo where license said found in found in.
|
|
|
|
| |
* shared/irq/irq_asm.S: Fix spelling.
|
|
|
|
| |
* shared/irq/irq_asm.S: Rename rtems_per_cpu_info.
|
|
|
|
|
|
|
|
| |
PR 1573/cpukit
* shared/irq/irq.c, shared/irq/irq_asm.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/irq/irq_asm.S: Fix capitalization.
|
| |
|
|
|
|
|
| |
* pc386/make/custom/pc586-sse.cfg, pc386/start/start.S,
shared/irq/irq_asm.S: Added experimental SSE support.
|
|
|
|
|
|
|
|
| |
* shared/irq/irq_asm.S: Make sure stack is aligned to CPU_STACK_ALIGNMENT
for *all* C-routines (including _Thread_Dispatch() and
_ThreadProcessSignalsFromIrq()) not only C_dispatch_isr().
* shared/irq/irq.c: Added IRQ statistics counters.
|
|
|
|
|
| |
* shared/irq/irq_asm.S: Beautification; ajusted margins and
spaces to make the whole thing more readable.
|
|
|
|
|
|
|
| |
* shared/irq/irq_asm.S, shared/irq/irq.c: removed
(fake) exception frame argument to _ThreadProcessSignalsFromIrq().
This has never been used and removing it simplifies the assembly
code.
|
|
|
|
|
| |
* shared/irq/irq_asm.S: Make sure stack is aligned to
CPU_STACK_ALIGNMENT before invoking C-code.
|
|
|
|
|
|
|
|
|
| |
PR 1385/cpukit
* shared/irq/irq_asm.S: When the type rtems_boolean was switched to the
C99 bool, the size changed from 4 bytes to 1 byte. The interrupt
dispatching code accesses two boolean variables for scheduling
purposes and the assembly implementations of this code did not get
updated.
|
|
|
|
|
| |
* shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_asm.S: Add shared
interrupt support to i386.
|
|
|
|
|
|
| |
* Makefile.am, comm/i386-stub-glue.c, comm/tty_drv.c, comm/uart.c,
irq/idt.c, irq/irq.c, irq/irq.h, irq/irq_asm.S, irq/irq_init.c: Moved
irq.h and irq_asm.h to bsp subdirectory.
|
|
|
|
|
| |
* irq/irq.c, irq/irq.h, irq/irq_asm.S, irq/irq_init.c: Added parameter
to irq handler
|
| |
|
| |
|
|
|
|
| |
* irq/irq_asm.S: Include <rtems/asm.h> instead of <asm.h>.
|
|
|
|
| |
* irq/irq_asm.S: Convert #..-comments to /*..*/ comments.
|
|
|
|
|
| |
* comm/gdb_glue.c, irq/idt.c, irq/irq.c, irq/irq.h, irq/irq_asm.S,
irq/irq_asm.h, irq/irq_init.c: URL for license changed.
|
|
.s files to .S in conformance with GNU conventions. This is a
minor step along the way to supporting automake.
|