summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* bsps: Fix TLS support in linker command filesSebastian Huber2014-04-221-1/+3
| | | | | The TLS section symbols had wrong values in case of an empty TLS data section and a nonempty TLS BSS section.
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-151-1/+7
| | | | | | | | | | | | | | | Clustered/partitioned scheduling helps to control the worst-case latencies in the system. The goal is to reduce the amount of shared state in the system and thus prevention of lock contention. Modern multi-processor systems tend to have several layers of data and instruction caches. With clustered/partitioned scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. We have clustered scheduling in case the set of processors of a system is partitioned into non-empty pairwise-disjoint subsets. These subsets are called clusters. Clusters with a cardinality of one are partitions. Each cluster is owned by exactly one scheduler instance.
* score: SMP initialization changesSebastian Huber2014-04-141-5/+13
| | | | | | | | | | | | | | | | | Add and use _CPU_SMP_Start_processor(). Add and use _CPU_SMP_Finalize_initialization(). This makes most _CPU_SMP_Initialize() functions a bit simpler since we can calculate the minimum value of the count of processors requested by the application configuration and the count of physically or virtually available processors in the high-level code. The CPU port has now the ability to signal a processor start failure. With the support for clustered/partitioned scheduling the presence of particular processors can be configured to be optional or mandatory. There will be a fatal error only in case mandatory processors are not present. The CPU port may use a timeout to monitor the start of a processor.
* pc386/include/bsp.h: Remove rtems_bsp_delay()Joel Sherrill2014-03-211-16/+0
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-2141-41/+41
|
* score: Rename rtems_smp_process_interrupt()Sebastian Huber2014-02-191-5/+3
| | | | | | Rename rtems_smp_process_interrupt() into _SMP_Inter_processor_interrupt_handler(). Delete unused header file <rtems/bspsmp.h>.
* score: Rename rtems_smp_secondary_cpu_initialize()Sebastian Huber2014-02-191-1/+2
| | | | | | Rename rtems_smp_secondary_cpu_initialize() into _SMP_Start_multitasking_on_secondary_processor(). Move declaration to <rtems/score/smpimpl.h>.
* score: Delete bsp_smp_broadcast_interrupt()Sebastian Huber2014-02-191-6/+0
| | | | | | Since the per-CPU SMP lock must be acquired and released to send the message a single interrupt broadcast operations offers no benefits. If synchronization is required, then a SMP barrier must be used anyway.
* score: Rename bsp_smp_initialize()Sebastian Huber2014-02-191-1/+1
| | | | | Rename bsp_smp_initialize() into _CPU_SMP_Initialize() since every CPU port must supply this function.
* bsps: Thread-local storage (TLS) for linkcmdsSebastian Huber2014-02-041-0/+14
|
* i386/pc386: Add doxygen file headers.Toma Radu2013-12-3014-7/+119
|
* i386: shared: Add doxygenChirayu Desai2013-12-239-116/+252
|
* bsps: Simplify FreeBSD linker setsSebastian Huber2013-12-161-15/+3
|
* pc386/console/conscfg.c: Fix spacingJoel Sherrill2013-09-161-3/+3
|
* bsps: Add and use CLOCK_DRIVER_ISRS_PER_TICK_VALUEJoel Sherrill2013-08-261-17/+4
| | | | | | | pc386 set CLOCK_DRIVER_ISRS_PER_TICK to a string rather than a numeric value. Add CLOCK_DRIVER_ISRS_PER_TICK_VALUE and other clean up on the clock driver.
* 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.
* bsp/pc386: Provide local outb() for elink driverSebastian Huber2013-08-091-1/+6
|
* Use $(EXEEXT) [defaults to "exe"] to generate binariesNick Withers2013-08-091-1/+1
|
* 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-298-288/+166
|
* score: Merge tod implementation into one fileSebastian Huber2013-07-261-2/+2
| | | | | Delete TOD_MICROSECONDS_PER_SECOND, TOD_MICROSECONDS_TO_TICKS() and TOD_MILLISECONDS_TO_TICKS().
* 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.
* framebuffer: Add and use FRAMEBUFFER_DEVICE_0_NAMESebastian Huber2013-06-292-4/+6
|
* 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().
* i386: PR2010: Remove pc386 BSPs using soft-floatJoel Sherrill2013-05-013-54/+2
| | | | | i386 soft-float is no longer supported by gcc. Dropping all references to soft-float in the pc386 BSP.
* bsps: Support DWARF extensionSebastian Huber2013-03-181-0/+2
|
* RTEMS: Delete ChangeLog files.Gedare Bloom2013-03-083-2367/+0
| | | | | | | | | 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.
* libchip/serial: Add const qualifierSebastian Huber2013-02-112-2/+2
|
* bsps: Interrupt initialization error is fatalSebastian Huber2012-11-151-7/+1
|
* score: Add RTEMS_FATAL_SOURCE_EXITSebastian Huber2012-11-151-0/+1
| | | | | | | Include <bsp/default-initial-extension.h> in all BSPs. Call rtems_fatal() with RTEMS_FATAL_SOURCE_EXIT as source and the exit() status code as fatal code in every bsp_cleanup(). Move previous bsp_cleanup() code into bsp_fatal_extension().
* libnetworking: Use system eventsSebastian Huber2012-11-023-7/+7
| | | | | | | Add reserved system events RTEMS_EVENT_SYSTEM_NETWORK_SBWAIT and RTEMS_EVENT_SYSTEM_NETWORK_SOSLEEP. Add and use rtems_bsdnet_event_send().
* bsp/pc386: TypoSebastian Huber2012-10-291-1/+1
|
* score: Work area initialization API changeSebastian Huber2012-10-251-26/+6
| | | | | | | | | | | | The work areas (RTEMS work space and C program heap) will be initialized now in a separate step and are no longer part of rtems_initialize_data_structures(). Initialization is performed with tables of Heap_Area entries. This allows usage of scattered memory areas present on various small scale micro-controllers. The sbrk() support API changes also. The bsp_sbrk_init() must now deal with a minimum size for the first memory chunk to take the configured work space size into account.
* Include <rtems/framebuffer.h>.Ralf Corsépius2012-10-151-0/+1
|
* pc386: Add Cirrus FB Driver to Makefile and configure.acJoel Sherrill2012-09-282-1/+13
| | | | | | The user has to explicitly enable this driver, choosing it over the existing (and lame) CGA frame buffer driver using USE_CIRRUS_GD5446=1 on the configure command line.
* FB driver for Cirrus GD5446 graphic hardware.Alexandru-Sever Horin2012-09-281-0/+764
| | | | | | | | | | | | | | | | | | | | | | | | | Implementation is tested to work on QEMU simulator only. QEMU offers this hardware by default for PC platform but it can be requested by "-vga cirrus" option for other PCI aware systems in development/next QEMU releases as well. Next sources have been used for driver implementation: - RTEMS fb_vga.c - Rosimildo da Silva ( rdasilva@connecttel.com ) - Cirrus xf86 driver - used as VGA hardware setup documentation - CL-GD5446 Technical Reference Manual, 1996, Second Edition fb_vga.c has to be replaced by fb_cirrus.c in rtems/c/src/lib/libbsp/i386/pc386/Makefile.am to test the driver now. We expect to discus and include driver section mechanism after driver testing. Patch version 2: - comments style updated according to Joel Sherrill review - use static for variables and functions to compile without warnings Signed-off-by: Alexandru-Sever Horin <alex.sever.h@gmail.com> Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Revert "Add bspopts.h.in."Gedare Bloom2012-08-061-78/+0
| | | | | | | | | | | | This reverts commit daffa606cc4a45d93c1f0f4fe365fde0fda6acbb. Conflicts: c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in c/src/lib/libbsp/powerpc/mpc55xxevb/include/bspopts.h.in c/src/lib/libbsp/powerpc/qoriq/include/bspopts.h.in Manually deleted conflicting files.
* Require automake-1.12.2.Ralf Corsépius2012-07-193-3/+3
|
* Require autoconf-2.69.Ralf Corsépius2012-07-193-3/+3
|
* sparc linkcmds.base: Add new FreeBSD TCP/IP stack sectionsJoel Sherrill2012-07-141-6/+10
|
* pc386: Added sections for rtems-libbsd support.Jennifer Averett2012-05-301-0/+11
|
* Add bspopts.h.in.Ralf Corsépius2012-05-241-0/+78
|