summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* libchip/network/if_fxp.c: do not use rtems_interrupt_disable.Pavel Pisa2016-10-171-7/+4
| | | | | | | | | | The single write to memory or ioport output are mostly atomic operations already. The proper memory synchronization barrier should be used around them to guarantee ordering (sync or eieio on PowerPC for example) but because I have not found settable portable primitive only compiler barrier is used. It should be enough on x86 because the externally visible order should be/is guaranteed to be preserved on x86 architecture.
* bsps/i386: use Pentimum instructions for pc586 and pc686 builds.Pavel Pisa2016-10-172-2/+2
| | | | | | | | | | | | | | | | | | When GCC option -march is not specifies i386-rtems toolchain defaults to i386 architecture instruction set. It does not provide atomic instructions which results in really inefficient atomic_fetch_or even on UP build. SMP build is broken with i386 set because libatomic and GCC generate infinite loop for __atomic_fetch_add_4 used in rtems_interrupt_lock_acquire __atomic_fetch_add_4: push %ebp mov %esp,%ebp movl $0x5,0x10(%ebp) pop %ebp jmp __atomic_fetch_add_4
* bsps/i386: replace global interrupt disable by SMP build supporting locking.Pavel Pisa2016-10-179-72/+148
|
* bsp/atsamv: Fix typoSebastian Huber2016-10-131-1/+1
|
* score: Rename RTEMS_OBFUSCATE_POINTER()Sebastian Huber2016-10-132-6/+8
| | | | | | | The inline asm construct works for everything which fits into a register. Close #2790.
* libmisc/xz: Add xz decompression.Chris Johns2016-10-1320-5/+3292
| | | | Add support to untar XZ compressed files.
* score: More robust linker setsSebastian Huber2016-10-123-50/+80
| | | | | Update #2408. Update #2790.
* score: Add RTEMS_OBFUSCATE_POINTER()Sebastian Huber2016-10-121-1/+11
| | | | Update #2790.
* score: Simplify check for migrationsSebastian Huber2016-10-121-20/+4
|
* smpschedaffinity05: Fix configurationSebastian Huber2016-10-121-0/+2
|
* bsps/i386: Separate variable for i8259 IRQs disable due to in progress state.Pavel Pisa2016-10-111-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.
* pci.h add PCI_COMMAND_INTX_DISABLE definition.Pavel Pisa2016-10-111-0/+1
|
* score: Enhance _SMP_barrier_Wait()Sebastian Huber2016-10-112-2/+11
| | | | | Indicate which processor released the barrier. Similar to pthread_barrier_wait().
* bsp/qoriq: Add GPIO register mapSebastian Huber2016-10-111-1/+14
|
* bsps/sparc: Support GR740 GPIOSebastian Huber2016-10-111-0/+22
|
* tmfine01: Add self-contained mutex test caseSebastian Huber2016-10-101-1/+46
| | | | | This demonstrates the effect of false cache line sharing in case of Classic mutexes.
* bsp/atsam: Provide default buffer countsSebastian Huber2016-10-051-2/+11
|
* bsp/atsam: Fix PHY detectionSebastian Huber2016-10-051-16/+11
|
* score/arm: Correct logic to select 64 byte cache line maximum size for Cortex-A.Pavel Pisa2016-10-041-2/+2
| | | | | | | | The use of actual cache line max bytes and minimum required alignment in architecture but not-BSP dependent code could be problematic because there exists even ARM instruction set implementations with 128 byte line length and real maximum can be quite problematic to say. But actually supported ARM BSPs should be OK with these values.
* libdl/rtl-obj.c: synchronize cache should not depend on CPU_CACHE_LINE_BYTES.Pavel Pisa2016-10-041-3/+6
| | | | | | | Use of rtems_cache_get_maximal_line_size() is more descriptive choice. The min/max data/instruction cache line size is not critical there, value is used for optimization only to use single operation for directly following sections.
* monitor: Support priority inheritance queuesSebastian Huber2016-09-301-0/+2
|
* score: Unify CORE mutex seize/surrenderSebastian Huber2016-09-278-92/+18
| | | | | | Use the Thread_Control::resource_count for the no protocol mutexes. Merge the no protocol and priority inherit CORE mutex seize/surrender operations.
* score: Simplify ISR lock nameSebastian Huber2016-09-271-4/+1
|
* score: Simplify CORE mutex seizeSebastian Huber2016-09-272-70/+3
| | | | | | Rename _CORE_mutex_Seize_no_protocol_slow() in _CORE_mutex_Seize_slow(). Remove previous _CORE_mutex_Seize_slow() since the protocol handling is now done in the thread queue operations.
* score: Fix warningSebastian Huber2016-09-271-0/+2
|
* sptests/spsem03: Fix compile errorSebastian Huber2016-09-231-1/+1
|
* bsp/mvme147*: Fix linker issueSebastian Huber2016-09-232-6/+2
| | | | | The GNU linker does not allow a nonconstant expression for a region length.
* bsps/m68k: Add libatomic support to some bsp_specsSebastian Huber2016-09-233-3/+3
| | | | Update #2695.
* bsps/m68k: Fix linker command fileSebastian Huber2016-09-231-1/+1
| | | | Prevent garbage collection of interrupt vector table.
* score: Fix C/C++ compatibility issueSebastian Huber2016-09-2318-67/+17
| | | | | | | Only use CPU_Per_CPU_control if it contains at least one filed. In GNU C empty structures have a size of zero. In C++ structures have a non-zero size. In case CPU_PER_CPU_CONTROL_SIZE is defined to zero, then this structure is not used anymore.
* arm/tms570: document BSP setup with included hardware initialization.Pavel Pisa2016-09-221-22/+100
|
* arm/tms570: update bootstrap generated preinstall.amPavel Pisa2016-09-221-0/+13
|
* arm/tms570: include TMS570_USE_HWINIT_STARTUP option to select bare metal ↵Pavel Pisa2016-09-222-0/+26
| | | | startup and selftest.
* arm/tms570: include hardware initialization and selftest based on Ti ↵Pavel Pisa2016-09-2216-0/+3519
| | | | | | | | | | | | | | | | | | | | HalCoGen generated files. The configuration is specific for TMS570LS3137 based HDK. Pins configuration can be easily changed in rtems/c/src/lib/libbsp/arm/tms570/hwinit/init_pinmux.c file. The list tms570_selftest_par_list in the file rtems/c/src/lib/libbsp/arm/tms570/hwinit/bspstarthooks-hwinit.c specifies peripherals which health status is examined by parity self-test at BSP start-up. It can be easily modified for other TMS570 family members variants same as the selection of other tests in bspstarthooks-hwinit.c.
* arm/tms570: define base addresses of all TMS570LS3137 SPI interfaces.Pavel Pisa2016-09-221-1/+5
| | | | | | | | Generated header file ti_herc/reg_spi.h contains complete registers and fields set for Ti MibSPI peripheral. Care has to be taken that only TMS570_SPI1, TMS570_SPI3 and TMS570_SPI5 are of this complete multibuffer type. TMS570_SPI2 and TMS570_SPI4 have substantial part of registers removed but else they are compatible.
* bsps/arm: Export bsp_start_hook_0_done symbol from ARM start.S.Pavel Pisa2016-09-221-0/+1
| | | | | | | | The symbol can be used by bsp_start_hook_0 when complete RAM memory is initialization and overwritten during BSP self-test. The test overwrites even memory used to store return address / link register and regular resturn from bsp_start_hook_0 is not possible then.
* classic networking: adapt FXP driver to work with actual PCI and IRQ code.Pavel Pisa2016-09-212-106/+98
| | | | | | | | | | | Tested to work with QEMU provided Intel i82557b network controller emulation. qemu-system-x86_64 -enable-kvm -kernel $APP_BINARY \ -vga cirrus \ -append "--console=/dev/com1" \ -serial stdio \ -net nic,vlan=1,macaddr=be:be:be:10:00:01,model=i82557b \ -net tap,ifname=tap1,vlan=1,script=no,downscript=no
* score: Scheduler node awareness for thread queuesSebastian Huber2016-09-218-343/+1211
| | | | | | | | Maintain the priority of a thread for each scheduler instance via the thread queue enqueue, extract, priority actions and surrender operations. This replaces the primitive priority boosting. Update #2556.
* rtems: Add rtems_task_get_priority()Sebastian Huber2016-09-216-0/+172
| | | | | Update #2556. Update #2784.
* smptests/smpmutex01: Use test case functionsSebastian Huber2016-09-211-2/+24
|
* score: Manage scheduler nodes via thread queuesSebastian Huber2016-09-215-0/+33
| | | | Update #2556.
* score: Add scheduler node table for each threadSebastian Huber2016-09-217-58/+156
| | | | Update #2556.
* score: Rework thread priority managementSebastian Huber2016-09-2168-1512/+2854
| | | | | | | | | | | | | | | | | | | | | | | | | Add priority nodes which contribute to the overall thread priority. The actual priority of a thread is now an aggregation of priority nodes. The thread priority aggregation for the home scheduler instance of a thread consists of at least one priority node, which is normally the real priority of the thread. The locking protocols (e.g. priority ceiling and priority inheritance), rate-monotonic period objects and the POSIX sporadic server add, change and remove priority nodes. A thread changes its priority now immediately, e.g. priority changes are not deferred until the thread releases its last resource. Replace the _Thread_Change_priority() function with * _Thread_Priority_perform_actions(), * _Thread_Priority_add(), * _Thread_Priority_remove(), * _Thread_Priority_change(), and * _Thread_Priority_update(). Update #2412. Update #2556.
* classic networking: do not reference BSP_irq_enabled_at_i8259s which is no ↵Pavel Pisa2016-09-205-40/+5
| | | | | | | more available on i386. This change is required to build RTEMS with classic "--enable-networking" and link applications/tests which reference RTEMS_BSP_NETWORK_DRIVER_ATTACH.
* termios: Add IO control handlerSebastian Huber2016-09-192-2/+20
| | | | Update #2785.
* termios: Use IMFS nodes for new Termios devicesSebastian Huber2016-09-1911-435/+350
| | | | | | | | This makes the new Termios devices independent of device major/minor numbers. It enables BSP independent Termios device drivers which may reside in the cpukit domain. These drivers require an IMFS and do not work with the device file system. However, the device file system should go away in the future.
* libtests/devfs: Use printk()Sebastian Huber2016-09-193-5/+5
| | | | | This avoids problems with console drivers that use generic nodes of the IMFS.
* fstests: Use printk() for IMFS configuration testsSebastian Huber2016-09-192-4/+4
| | | | | This avoids problems with console drivers that require a more complete IMFS.
* tests: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEMSebastian Huber2016-09-197-7/+0
| | | | Avoid unnecessary use of CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM.
* imfs: Untangle dependenciesSebastian Huber2016-09-193-89/+116
| | | | | This helps to use IMFS_make_generic_node() without pulling in the complete IMFS implementation.