Commit Graph
26058 Commits
Author SHA1 Message Date
Sebastian Huber 350f88dc6e sapi: Add SMP lock profiling app. level data 2014-03-14 08:46:49 +01:00
Sebastian Huber 29c9eb601e sapi: Add per-CPU profiling application level data 2014-03-14 08:46:49 +01:00
Sebastian Huber 4dad4b8411 sapi: Add profiling application level support 2014-03-14 08:46:49 +01:00
Sebastian Huber eafb040d91 score: Add --enable-profiling configure option 2014-03-14 08:46:48 +01:00
Sebastian Huber ebb6a8d059 libchip: Include <bsp.h> BSP options definition 2014-03-14 08:43:47 +01:00
Sebastian Huber 9a8bf95b3b libchip: Check interrupt extension availability 2014-03-13 16:47:38 +01:00
Sebastian Huber 062f95328b libchip: Avoid <bsp/utility.h> 2014-03-13 16:47:38 +01:00
Ralf Kirchner ad010285da bsp/altera-cyclone-v: Made hwlib compile clean
Made Alteras hwlib compile clean within the RTEMS build system
2014-03-13 16:22:04 +01:00
Ralf Kirchner 0b03ca39a4 bsp/altera-cyclone-v: Add Alteras hwlib
Add files from Alteras hwlib
2014-03-13 16:22:04 +01:00
Ralf Kirchner f73cfe99d0 bsp/altera-cyclone-v: New BSP
Implemented so far:
- nocache heap for uncached RAM
- basic timer
- level 1 cache handling for arm cache controller
  in arm-cache-l1.h
- level 2 L2C-310 cache controller
- MMU
- DWMAC 1000 ethernet controller
- basic errata handling
- smp startup for second core
2014-03-13 16:22:00 +01:00
Ralf Kirchner 4953b72490 libchip: Add dwmac 10/100/1000 network driver 2014-03-13 16:21:55 +01:00
Ralf Kirchner bbc5527010 libbsp/xilinx-zynq: Share handling for ARM cache controller L2C-310 2014-03-13 16:10:54 +01:00
Ralf Kirchner 9fcd1b3556 bsp/arm: Add handling for level 2 L2C-310 cache controller
arm-l2c-310/cache_.h contains the handling for the L2C-310
level 2 cache controller from arm. It references the arm
level 1 cache handling in the new file arm-cache-l1.h.
2014-03-13 16:10:54 +01:00
Ralf Kirchner 0b74e10fff bsp/arm: Add SCU errata handling for L2C-310 cache 2014-03-13 16:10:54 +01:00
Ralf Kirchner b0553f473b bsp/xilinx-zynq: Add arm-errata.h and arm-release-id.h 2014-03-13 16:10:54 +01:00
Ralf Kirchner f2bb3ccbe9 bsp/realview-pbx-a9: Add arm-errata.h and arm-release-id.h 2014-03-13 16:10:54 +01:00
Ralf Kirchner f2a8b60a4d bsp/raspberrypi: Add arm-errata.h and arm-release-id.h 2014-03-13 16:10:53 +01:00
Ralf Kirchner deccde31f3 bsp/lpc32xx: Add arm-errata.h and arm-release-id.h 2014-03-13 16:10:53 +01:00
Ralf Kirchner b87bf0bfc2 bsp/arm: Add arm-errata.h and arm-release-id.h 2014-03-13 16:10:53 +01:00
Ralf Kirchner f241977b60 bsp/arm: Add linker symbol bsp_processor_count 2014-03-13 16:10:53 +01:00
Ralf Kirchner 0656a00a82 bsp/arm: Add CP15 methods 2014-03-13 16:10:53 +01:00
Ralf Kirchner a502d67763 bsp/arm: Separate setup for translation table 2014-03-13 16:10:52 +01:00
Ralf Kirchner f5c106456c bsp/arm: Invalidate SCU 2014-03-13 16:10:52 +01:00
Ralf Kirchner 34568acf68 bsp/arm: SMP support for a9mpcore_clock_cleanup() 2014-03-13 16:10:52 +01:00
Ralf Kirchner 17864a4ae9 bsp/arm: Avoid warning 2014-03-13 16:10:52 +01:00
Ralf Kirchner 27545fcac8 network: Add help text for ifconfig 2014-03-13 16:10:52 +01:00
Sebastian Huber 4d3e933466 sapi: Typos 2014-03-13 16:03:55 +01:00
Sebastian Huber dedc1393f3 bsps/powerpc: Fix GET_INTERRUPT_MASK macro
Use _PPC_INTERRUPT_DISABLE_MASK introduced with
801b5d8032.
2014-03-12 16:40:49 +01:00
Sebastian Huber 0dd025ccb9 psxtests/psxkey07: Do not allocate task IDs 2014-03-12 07:54:57 +01:00
Sebastian Huber 92d261c288 psxtests/psxkey07: Limit workspace size
This avoids large test execution times on targets with a big RAM.
2014-03-12 07:54:57 +01:00
Sebastian Huber fca27b7272 psxtests/psxkey07: Account for RTEMS_TOO_MANY 2014-03-12 07:54:57 +01:00
Sebastian Huber 0a64eba9b9 psxtests/psxkey08: Limit workspace size
This avoids large test execution times on targets with a big RAM.
2014-03-12 07:54:57 +01:00
Sebastian Huber 610815417d psxtests/psxkey08: Do not allocate task IDs
We have a unified work area.  So depending on the memory layout the

    task_id_p = malloc( sizeof( rtems_id ) );
    rtems_test_assert( task_id_p );

or the

    sc = rtems_task_create(
      rtems_build_name('T','A',created_task_count, ' '),
      1,
      RTEMS_MINIMUM_STACK_SIZE,
      RTEMS_DEFAULT_MODES,
      RTEMS_DEFAULT_ATTRIBUTES,
      task_id_p
    );
    rtems_test_assert(
      (sc == RTEMS_UNSATISFIED) ||
      (sc == RTEMS_TOO_MANY) ||
      (sc == RTEMS_SUCCESSFUL)
    );

may fail.  If we are unlucky then we hit the first case and the test
fails.
2014-03-12 07:54:56 +01:00
Joel Sherrill 2aeeaa00f9 doc: Improve description of rtems_status_text for ToC 2014-03-11 19:04:06 -05:00
Joel Sherrill 89e72a80c9 smp.t: Add Background and Operation Sections 2014-03-11 19:03:53 -05:00
Joel Sherrill d46ab11bcd Classic API Users Guide: Add SMP and affinity services.
This patch adds the initial version of the SMP chapter to the Users Guide.
2014-03-11 16:27:57 -05:00
Joel Sherrill 4013d25bc2 POSIX Users Guide: Add thread affinity services. 2014-03-11 16:27:57 -05:00
Joel Sherrill 30d1176618 stackchk.t task.t: Change can not to cannot for consistency 2014-03-11 16:27:57 -05:00
Joel Sherrill 48198f1b35 cpright.texi: Update to 2014. 2014-03-11 16:27:56 -05:00
Joel Sherrill 653ed5e151 gen_section: Update for use with new SMP chapters. 2014-03-11 13:21:47 -05:00
Sebastian Huber b4b86b825a posix: Fix NULL pointer access in pthread_create() 2014-03-11 14:21:42 +01:00
Sebastian Huber 28779c70ff score: Add function to destroy SMP locks 2014-03-11 10:58:09 +01:00
Sebastian Huber d50acdbb6c score: Add local context to SMP lock API
Add a local context structure to the SMP lock API for acquire and
release pairs.  This context can be used to store the ISR level and
profiling information.  It may be later used to enable more
sophisticated lock algorithms, e.g. MCS locks.

There is only one lock that cannot be used with a local context.  This
is the per-CPU lock since here we would have to transfer the local
context through a context switch which is very complicated.
2014-03-11 10:58:09 +01:00
Sebastian Huber ae88aa7927 sapi: Use one SMP lock for all chains
This partially reverts commit 1215fd4d94.

In order to support profiling of SMP locks and provide a future
compatible SMP locks API it is necessary to add an SMP lock destroy
function.  Since the commit above adds an SMP lock to each chain control
we would have to add a rtems_chain_destroy() function as well.  This
complicates the chain usage dramatically.  Thus revert the patch above.
A global SMP lock for all chains is used to implement the protected
chain operations.

Advantages:

* The SAPI chain API is now identical on SMP and non-SMP
  configurations.

* The size of the chain control is reduced and is then equal to the
  Score chains.

* The protected chain operations work correctly on SMP.

Disadvantage:

* Applications using many different chains and the protected operations
  may notice lock contention.

The chain control size drop is a huge benefit (SAPI chain controls are
66% larger than the Score chain controls).  The only disadvantage is not
really a problem since these applications can use specific interrupt
locks and unprotected chain operations to avoid this issue.
2014-03-11 10:58:09 +01:00
Sebastian Huber b1196e3268 printk: Add support for long long 2014-03-11 10:58:05 +01:00
Sebastian Huber 96c4112d45 posix: Regenerate 2014-03-11 08:06:06 +01:00
Sebastian Huber 0c25ba681f posix: Fix NULL pointer access in pthread_create() 2014-03-10 13:29:23 +01:00
Sebastian Huber 909f61b14a smptests/smppsxaffinity02: Fix end of test message 2014-03-10 13:28:53 +01:00
Sebastian Huber e7d3967eb1 arm: Fix stack alignment in interrupt handler
According to AAPCS, section 5.2.1.2, "Stack constraints at a public
interface" the stack must be 8 byte aligned.  This was not the case
during interrupt processing.
2014-03-10 08:03:46 +01:00
Sebastian Huber 6b115b3008 bsp/leon3: Use interrupt timestamping counter
Use the interrupt controller timestamping counter for the CPU counter if
available since it runs with a high frequency.
2014-03-10 08:03:46 +01:00