summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/shared/irq (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-04-23bsps: Move interrupt controller support to bspsSebastian Huber6-1452/+0
This patch is a part of the BSP source reorganization. Update #3285.
2018-01-25Remove make preinstallChris Johns3-266/+0
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.
2017-06-20bsps: Improve interrupt vector enable/disable APISebastian Huber1-8/+6
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.
2017-06-12i386: Support thread-local storage (TLS)Sebastian Huber1-1/+2
Update #2468.
2016-10-17bsps/i386: replace global interrupt disable by SMP build supporting locking.Pavel Pisa3-22/+51
2016-10-11bsps/i386: Separate variable for i8259 IRQs disable due to in progress state.Pavel Pisa1-19/+36
The global state of enabled and disabled interrupts has to hold interrupts really disabled by drivers and system. If the state is combined with interrupts temporarily disabled because they are processed at given time then it is impossible to maintain state by interrupt handlers in drivers.
2016-05-11i386/pc386: Clean out removed functions.Chris Johns1-46/+0
2016-05-11i386/pc386: Fix interrupt support.Chris Johns7-172/+469
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.
2016-03-03i386: refactor libcpu/cpu.h into rtems/score/i386.hJoel Sherrill2-2/+2
Fixes #2515.
2016-02-03Delete unused API extensionsSebastian Huber1-1/+0
2015-09-30bsps/i386: Interrupt server supportSebastian Huber3-1/+18
2014-11-20i386: global descriptor table manipulation functionsJan Dolezal1-36/+120
2014-10-16libbsp/i386/shared: Fix warningsJoel Sherrill2-6/+10
2014-10-13i386/pc386: Clean up and fix warningsJoel Sherrill1-0/+4
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns6-6/+6
2013-12-23i386: shared: Add doxygenChirayu Desai3-18/+54
2013-08-09bsps/i386: SMP and per-CPU thread dispatch disableSebastian Huber1-3/+10
Interrupt support for SMP and the per-CPU thread dispatch disable level.
2013-08-09bsps/i386: Revert most SMP related changesSebastian Huber1-54/+46
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.
2013-08-08PR766: Delete __RTEMS_VIOLATE_KERNEL_VISIBILITY__Sebastian Huber1-3/+0
2013-07-31smp: Provide cache optimized Per_CPU_ControlSebastian Huber1-2/+3
Delete _Per_CPU_Information_p.
2013-07-17smp: Add and use _CPU_SMP_Get_current_processor()Sebastian Huber1-1/+1
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.
2012-11-15bsps: Interrupt initialization error is fatalSebastian Huber1-7/+1
2012-05-11Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill6-12/+0
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.
2012-03-24bsps: Add shared default IRQ handlerSebastian Huber1-5/+0
2012-01-31Fix spelling error and improve comment.Joel Sherrill1-1/+1
2011-11-182011-11-18 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett1-0/+2
PR 1925 * shared/irq/irq.h: Changed i386 console to libchip style console and added support for com3 and com4.
2011-08-052011-08-04 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-2/+3
* 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!
2011-08-012011-08-01 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett2-50/+54
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.
2011-07-182011-07-18 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-46/+45
* shared/irq/apic.h, shared/smp/smp-imps.c, shared/smp/smp-imps.h: Reformat to be more compliant with RTEMS style.
2011-07-152011-07-15 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-2/+27
* shared/irq/apic.h, shared/smp/smp-imps.c, shared/smp/smp-imps.h: Per email with Erich Boleyn, change license to BSD style.
2011-07-142011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett3-7/+11
* shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_init.c: Add initial support for APIC.
2011-07-142011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett1-0/+86
* shared/irq/apic.h, shared/smp/README, shared/smp/smp-imps.c, shared/smp/smp-imps.h: New files.
2011-04-112011-04-11 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-2/+3
* shared/irq/irq_asm.S: Rename rtems_smp_maximum_processors to rtems_configuration_smp_maximum_processors since it is defined in confdefs.h.
2011-04-042011-04-04 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill1-0/+7
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
2011-03-162011-03-16 Jennifer Averett <jennifer.averett@OARcorp.com>Joel Sherrill1-2/+11
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.
2011-02-142011-02-14 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill1-1/+1
* shared/irq/irq_asm.S: Fix typo.
2011-02-112011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius1-1/+1
* shared/comm/gdb_glue.c, shared/comm/i386-stub.c, shared/comm/i386_io.h, shared/comm/uart.c, shared/irq/idt.c, shared/pci/pcibios.c: Use "__asm__" instead of "asm" for improved c99-compliance.
2011-01-282011-01-28 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill4-4/+4
* shared/irq/idt.c, shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_asm.h: Fix typo where license said found in found in.
2011-01-282011-01-28 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill1-1/+1
* shared/irq/irq_asm.S: Fix typo where license said found in found in.
2011-01-062011-01-06 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill1-1/+1
* shared/irq/irq_asm.S: Fix spelling.
2010-06-292010-06-29 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-1/+1
* shared/irq/irq_asm.S: Rename rtems_per_cpu_info.
2010-06-292010-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2-57/+45
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.
2010-06-152010-06-15 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-1/+1
* shared/irq/irq_asm.S: Fix capitalization.
2010-04-302010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber2-39/+3
* shared/irq/irq-config.h: Removed file. * shared/irq/irq.h: Moved defines from 'shared/irq/irq-config.h'.
2009-11-30Whitespace removal.Ralf Corsepius1-2/+2
2009-11-102009-11-10 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-0/+32
* pc386/make/custom/pc586-sse.cfg, pc386/start/start.S, shared/irq/irq_asm.S: Added experimental SSE support.
2009-10-302009-10-29 Till Straumann <strauman@slac.stanford.edu>Till Straumann2-27/+64
* 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.
2009-10-292009-10-29 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-107/+107
* shared/irq/irq_asm.S: Beautification; ajusted margins and spaces to make the whole thing more readable.
2009-10-292009-10-29 Till Straumann <strauman@slac.stanford.edu>Till Straumann2-14/+3
* 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.
2009-10-292009-10-28 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-4/+18
* shared/irq/irq_asm.S: Make sure stack is aligned to CPU_STACK_ALIGNMENT before invoking C-code.