summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/shared (follow)
Commit message (Collapse)AuthorAgeFilesLines
* bsps/i386: SMP and per-CPU thread dispatch disableSebastian Huber2013-08-091-3/+10
| | | | Interrupt support for SMP and the per-CPU thread dispatch disable level.
* bsps/i386: Revert most SMP related changesSebastian Huber2013-08-091-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.
* PR766: Delete __RTEMS_VIOLATE_KERNEL_VISIBILITY__Sebastian Huber2013-08-081-3/+0
|
* smp: Provide cache optimized Per_CPU_ControlSebastian Huber2013-07-311-2/+3
| | | | Delete _Per_CPU_Information_p.
* bsps/i386: Include missing header and fix warningsSebastian Huber2013-07-301-13/+11
|
* smp: Add and use _Per_CPU_Get()Sebastian Huber2013-07-301-1/+1
| | | | | | Add and use _Per_CPU_Get_by_index() and _Per_CPU_Get_index(). Add _Per_CPU_Send_interrupt(). This avoids direct access of _Per_CPU_Information.
* Updated legacy code in i386 pc386Vipul Nayyar2013-07-292-75/+48
|
* smp: Add and use _CPU_SMP_Send_interrupt()Sebastian Huber2013-07-171-4/+2
| | | | Delete bsp_smp_interrupt_cpu().
* smp: Add and use _CPU_SMP_Get_current_processor()Sebastian Huber2013-07-172-2/+4
| | | | | | | | | | 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.
* smp: Simplify SMP initialization sequenceSebastian Huber2013-05-291-49/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete bsp_smp_wait_for(). Other parts of the system work without timeout, e.g. the spinlocks. Using a timeout here does not make the system more robust. Delete bsp_smp_cpu_state and replace it with Per_CPU_State. The Per_CPU_State follows the Score naming conventions. Add _Per_CPU_Change_state() and _Per_CPU_Wait_for_state() functions to change and observe states. Use Per_CPU_State in Per_CPU_Control instead of the anonymous integer. Add _CPU_Processor_event_broadcast() and _CPU_Processor_event_receive() functions provided by the CPU port. Use these functions in _Per_CPU_Change_state() and _Per_CPU_Wait_for_state(). Add prototype for _SMP_Send_message(). Delete RTEMS_BSP_SMP_FIRST_TASK message. The first context switch is now performed in rtems_smp_secondary_cpu_initialize(). Issuing the first context switch in the context of the inter-processor interrupt is not possible on systems with a modern interrupt controller. Such an interrupt controler usually requires a handshake protocol with interrupt acknowledge and end of interrupt signals. A direct context switch in an interrupt handler circumvents the interrupt processing epilogue and may leave the system in an inconsistent state. Release lock in rtems_smp_process_interrupt() even if no message was delivered. This prevents deadlock of the system. Simplify and format _SMP_Send_message(), _SMP_Request_other_cores_to_perform_first_context_switch(), _SMP_Request_other_cores_to_dispatch() and _SMP_Request_other_cores_to_shutdown().
* smp: Delete bsp_smp_secondary_cpu_initialize()Sebastian Huber2013-05-291-2/+6
| | | | | | | Do not call bsp_smp_secondary_cpu_initialize() in rtems_smp_secondary_cpu_initialize(). This allows more flexibilty in the BSP low-level code. Specify context requirements for a call to rtems_smp_secondary_cpu_initialize().
* smp: Simplify main CPU initializationSebastian Huber2013-05-291-3/+1
| | | | | | Call _SMP_Handler_initialize() later and move bsp_smp_initialize() into _SMP_Handler_initialize(). Change bsp_smp_initialize() prototype to match integer types of calling context.
* smp: Add maximum_processors field to configSebastian Huber2013-05-161-4/+4
| | | | | | | Delete rtems_configuration_get_smp_maximum_processors(). Delete rtems_configuration_smp_maximum_processors variable. Add maximum_processors field to rtems_configuration_table if RTEMS_SMP is defined. Add rtems_configuration_get_maximum_processors().
* bsps: Interrupt initialization error is fatalSebastian Huber2012-11-151-7/+1
|
* pci.h cleanup - Consolidate common defines to cpukit pci.hJoel Sherrill2012-05-161-2/+0
| | | | | | | | | | | | | + libbsp/sparc/shared/include/pci.h was largely a copy of an older version of the cpukit pci.h. Removed much of the contents and included <rtems/pci.h>. + sparc/*/pci*.c - Move to <rtems/pci.h> required updating to use uint32_t for dword accesses. + Rename PCI_MULTI_FUNCTION to PCI_HEADER_TYPE_MULTI_FUNCTION + Define PCI_HEADER_TYPE_MULTI_FUNCTION in cpukit pci.h and remove PCI_MULTI_FUNCTION definitions in C files. + Move PCI_INVALID_VENDORDEVICEID definitions from various C files to cpukit pci.h
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-1117-38/+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.
* bsps: Add shared default IRQ handlerSebastian Huber2012-03-241-5/+0
|
* Fix spelling error and improve comment.Joel Sherrill2012-01-311-1/+1
|
* 2011-12-09 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2011-12-091-1/+1
| | | | * shared/pci/pcibios.c: Make pcib_find_by_devid static.
* 2011-11-18 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett2011-11-181-0/+2
| | | | | | PR 1925 * shared/irq/irq.h: Changed i386 console to libchip style console and added support for com3 and com4.
* 2011-10-22 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2011-10-221-4/+2
| | | | * shared/comm/uart.c (uartError): Remove unused var "uartStatus".
* 2011-10-13 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2011-10-131-5/+3
| | | | * shared/comm/uart.c: Remove unused var "tmp".
* 2011-08-04 Till Straumann <strauman@slac.stanford.edu>Till Straumann2011-08-051-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-01 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett2011-08-015-141/+351
| | | | | | | 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-18 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2011-07-183-562/+545
| | | | | * shared/irq/apic.h, shared/smp/smp-imps.c, shared/smp/smp-imps.h: Reformat to be more compliant with RTEMS style.
* 2011-07-15 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2011-07-153-6/+81
| | | | | * 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-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett2011-07-143-7/+11
| | | | | * shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_init.c: Add initial support for APIC.
* 2011-07-14 Jennifer Averett <Jennifer.Averett@OARcorp.com>Jennifer Averett2011-07-144-0/+976
| | | | | * shared/irq/apic.h, shared/smp/README, shared/smp/smp-imps.c, shared/smp/smp-imps.h: New files.
* 2011-05-25 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2011-05-252-4/+8
| | | | | * shared/comm/tty_drv.c, shared/comm/tty_drv.h: Remove CVS-Headers. Add CVS-Ids.
* 2011-04-11 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2011-04-111-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-04 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill2011-04-041-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-16 Jennifer Averett <jennifer.averett@OARcorp.com>Joel Sherrill2011-03-161-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-14 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill2011-02-141-1/+1
| | | | * shared/irq/irq_asm.S: Fix typo.
* 2011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2011-02-116-360/+360
| | | | | | | * 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-28 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill2011-01-284-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-28 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill2011-01-281-1/+1
| | | | * shared/irq/irq_asm.S: Fix typo where license said found in found in.
* 2011-01-06 Joel Sherrill <joel.sherrilL@OARcorp.com>Joel Sherrill2011-01-061-1/+1
| | | | * shared/irq/irq_asm.S: Fix spelling.
* 2010-06-29 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-06-291-1/+1
| | | | * shared/irq/irq_asm.S: Rename rtems_per_cpu_info.
* 2010-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-06-292-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-21 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-06-211-2/+0
| | | | * shared/comm/GDB.HOWTO: Remove more ITRON references.
* 2010-06-15 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-06-151-1/+1
| | | | * shared/irq/irq_asm.S: Fix capitalization.
* 2010-04-30 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber2010-04-302-39/+3
| | | | | * shared/irq/irq-config.h: Removed file. * shared/irq/irq.h: Moved defines from 'shared/irq/irq-config.h'.
* Reflect termios API changes.Ralf Corsepius2010-04-122-8/+8
|
* 2009-12-11 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2009-12-111-1/+1
| | | | | PR 1483/cpukit * shared/pci/pcibios.c: Rename pci_config into rtems_pci_config_t.
* 2009-12-10 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius2009-12-102-7/+5
| | | | * shared/comm/uart.c, shared/comm/uart.h: Adjust prototypes.
* Whitespace removal.Ralf Corsepius2009-11-302-8/+8
|
* 2009-11-10 Till Straumann <strauman@slac.stanford.edu>Till Straumann2009-11-101-0/+32
| | | | | * pc386/make/custom/pc586-sse.cfg, pc386/start/start.S, shared/irq/irq_asm.S: Added experimental SSE support.
* 2009-10-29 Till Straumann <strauman@slac.stanford.edu>Till Straumann2009-10-302-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-29 Till Straumann <strauman@slac.stanford.edu>Till Straumann2009-10-291-107/+107
| | | | | * shared/irq/irq_asm.S: Beautification; ajusted margins and spaces to make the whole thing more readable.
* 2009-10-29 Till Straumann <strauman@slac.stanford.edu>Till Straumann2009-10-292-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.