Commit Graph

12533 Commits

Author SHA1 Message Date
Sebastian Huber
46d7fa5cd3 bsp/leon3: Add and use fatal codes 2014-02-19 09:59:40 +01:00
Sebastian Huber
33cb8bf64d score: Add RTEMS_FATAL_SOURCE_BSP
Merge RTEMS_FATAL_SOURCE_BSP_GENERIC and RTEMS_FATAL_SOURCE_BSP_SPECIFIC
into new fatal source RTEMS_FATAL_SOURCE_BSP.  This makes it easier to
figure out the code position given a fatal source and code.
2014-02-19 09:59:39 +01:00
Sebastian Huber
801b5d8032 powerpc: Change interrupt disable implemetation
Instead of SPRG0 (= special purpose register 272) use the new global
symbol _PPC_INTERRUPT_DISABLE_MASK to store the interrupt disable mask.
The benefit is that it is now possible to disable interrupts without
further run-time initialization in boot_card().

At least on Freescale e500 cores this leads also to a faster execution
since the mfmsr and mfspr instruction require four cycles to complete.
The instructions to load the mask value can execute while the mfmsr is
in progress.
2014-02-19 09:59:38 +01:00
Sebastian Huber
88ef740ea8 bsp/leon3: Declare amba_initialize() 2014-02-14 10:28:31 +01:00
Sebastian Huber
e644155afa bsp/leon3: Do not define RTEMS_DEBUG
Move vital code out of debug section.  Harmonize variable names with
other implementations.
2014-02-14 10:28:30 +01:00
Sebastian Huber
ad563618ca sparc: Add LEON3_ASR17_PROCESSOR_INDEX_SHIFT
Add _LEON3_Get_current_processor().
2014-02-14 10:28:30 +01:00
Sebastian Huber
24bf11eca1 score: Add CPU counter support
Add a CPU counter interface to allow access to a free-running counter.
It is useful to measure short time intervals.  This can be used for
example to enable profiling of critical low-level functions.

Add two busy wait functions rtems_counter_delay_ticks() and
rtems_counter_delay_nanoseconds() implemented via the CPU counter.
2014-02-14 10:28:29 +01:00
Sebastian Huber
382ea27b6a bsps/arm: Fix Cortex-A9 MPCore nanoseconds handler 2014-02-13 10:05:14 +01:00
Sebastian Huber
bab16de267 score: Change debug helper functions
Rename rtems_internal_error_description() to
rtems_internal_error_text().  Rename rtems_fatal_source_description() to
rtems_fatal_source_text().  Rename rtems_status_code_description() to
rtems_status_text().  Remove previous implementation of
rtems_status_text().
2014-02-12 09:18:00 +01:00
Sebastian Huber
97cf623d4a sparc: Save/restore only non-volatile context
The _CPU_Context_switch() is a normal function call.  The following
registers are volatile (the caller must assume that the register
contents are destroyed by the callee) according to "SYSTEM V APPLICATION
BINARY INTERFACE - SPARC Processor Supplement", Third Edition: g1, o0,
o1, o2, o3, o4, o5.  Drop these registers from the context.

Ensure that offset defines match the structure offsets.
2014-02-12 09:18:00 +01:00
Sebastian Huber
62c5c4a564 bsps/sparc: Fix ambapp_find_by_idx()
The expression "*pi++" post-increments the pointer (not the value).
2014-02-11 12:54:24 +01:00
Sebastian Huber
0df8d7f20d bsps/arm: Use Global Timer for Cortex-A9 MPCore
Use the Global Timer for the Cortex-A9 MPCore clock driver instead of
the Private Timer.  This enables a consistent nanoseconds since last
context switch value across all processors.
2014-02-10 16:58:03 +01:00
Sebastian Huber
069e10c392 bsps/arm: Include missing header file 2014-02-10 16:58:03 +01:00
Sebastian Huber
847fc79da1 Revert "bsp/leon3: New BSP variant leon3_qemu"
This reverts commit 7579e25512.

Improve QEMU to support AMBA plug and play instead.
2014-02-07 09:32:31 +01:00
Sebastian Huber
7579e25512 bsp/leon3: New BSP variant leon3_qemu 2014-02-06 08:47:03 +01:00
Sebastian Huber
224b88805e bsp/leon3: Declare bsp_debug_uart_init() in header
Do not return a status.
2014-02-06 08:47:03 +01:00
Sebastian Huber
558cc8ddb7 score: _CPU_Context_switch_to_first_task_smp()
Delete _CPU_Context_switch_to_first_task_smp() and use
_CPU_Context_restore() instead.
2014-02-05 15:46:30 +01:00
Sebastian Huber
1c1c2a04c3 bsps: Delete unused bsp_smp_delay() 2014-02-05 15:46:30 +01:00
Sebastian Huber
36a52ab367 bsp/leon3: Avoid magic delays for IPI broadcast 2014-02-05 15:46:30 +01:00
Sebastian Huber
3d770018d9 bsp/leon3: Fix SMP initialization
Avoid usage of the same stack area by multiple secondary processors at
the same time.

Avoid magic delay loops.
2014-02-05 15:46:29 +01:00
Sebastian Huber
3ef2d175fa bsp/leon3: Install IPI handler early
Install inter-processor interrupt (IPI) handler before secondary CPUs
are started.  This ensures that secondary CPUs fetch the newly installed
handler.

Remove superfluous return statement.
2014-02-05 15:46:29 +01:00
Sebastian Huber
d212acb7db bsp/leon3: Use printk() only if debug is enabled 2014-02-05 15:46:29 +01:00
Sebastian Huber
2082809919 bsps/sparc: Fix comment 2014-02-05 11:43:32 +01:00
Sebastian Huber
5ff6a9ca62 bsps/sparc: Remove confusing nop 2014-02-04 16:57:59 +01:00
Sebastian Huber
f715433ae9 bsps/sparc: Order load/store by increasing offsets
This may increase the cache hit performance.
2014-02-04 16:57:58 +01:00
Sebastian Huber
a54179d2ba bsps/sparc: Fix comments 2014-02-04 16:57:58 +01:00
Sebastian Huber
1d5d6de35e bsp/leon3: Console driver changes
Move declaration of global variables and functions to <leon.h> header
file.  Make several global variables and functions static.
2014-02-04 14:54:27 +01:00
Sebastian Huber
6fe6d017a4 bsp/leon3: Avoid copy and paste in console driver 2014-02-04 14:54:27 +01:00
Sebastian Huber
1e744efde9 bsp/leon3: Fix interrupt-driven console driver 2014-02-04 14:54:26 +01:00
Sebastian Huber
022851aba5 Add thread-local storage (TLS) support
Tested and implemented on ARM, m68k, PowerPC and SPARC.  Other
architectures need more work.
2014-02-04 10:06:35 +01:00
Sebastian Huber
960fd8546f bsps: Thread-local storage (TLS) for linkcmds 2014-02-04 10:06:34 +01:00
Sebastian Huber
fe535885e6 bsp/v850: Use proper ABI in linkcmds 2014-02-04 10:06:34 +01:00
Chris Johns
e5d706cba0 bsp/xilinx_zynq: Support configuraton of memory map. Remove SMP variants.
Generate a linker command file from configure letting the user override the
defaults to suite their custom needs. Refer to configure.ac for the details.

Remove the SMP variants and let --enable-smp control if a BSP is built for
SMP.

Make USE_FAST_IDLE 1 only for the realview qemu BSP.
2014-02-02 14:01:18 +11:00
Joel Sherrill
6dce1621b6 bootcard.c: Comment clean up 2014-01-31 08:13:05 -06:00
Sebastian Huber
fd49e3f162 bsps/sparc: Fix linkcmds part of new network stack 2014-01-30 16:46:38 +01:00
Sebastian Huber
bba0e09a0e bsps: Fix barrier section definitions 2014-01-30 16:42:55 +01:00
Sebastian Huber
6c3517f25d bsp/stm32f4: Use BSP_SMALL_MEMORY for a variant 2014-01-30 16:42:55 +01:00
Sebastian Huber
c26a945335 bsp/lpc24xx: Fix compile error 2014-01-30 16:42:55 +01:00
Nick Withers
f334847bce powerpc/flash: give string variables const attribute 2014-01-23 11:30:15 -05:00
Nick Withers
a7775cbd09 Add warnings to MOTLoad-equipped BSPs' READMEs that a "waitProbe", "netShut" sequence must be executed in MOTLoad before booting RTEMS to remove its network interface interrupt handlers, lest memory corruption occur 2014-01-23 11:28:21 -05:00
Sebastian Huber
e16a7ba121 libchip/serial: Documentation 2014-01-23 15:59:25 +01:00
Cynthia Rempel
d7f05338e3 libbsp sh: Add Doxygen file header to coverhd.h 2014-01-14 17:34:00 -06:00
Cynthia Rempel
279d83d33a libbsp powerpc: Add Doxygen file header to coverhd.h 2014-01-14 17:33:48 -06:00
Cynthia Rempel
d5d1faee24 libbsp mips: Add Doxygen file header to coverhd.h 2014-01-14 17:33:33 -06:00
Cynthia Rempel
f68660071a libbsp m68k: Add Doxygen file header to coverhd.h 2014-01-14 17:33:04 -06:00
Aleksandr Platonov
fc6a0ae1a6 rtems_cache_invalidate_multiple_instruction_lines
According with comment in
rtems_cache_invalidate_multiple_instruction_lines(), final_address
indicates the last address which needs to be invalidated.  But if in
while loop we got final_address == i_addr condition then loop breaks and
final_address will not be invalidated.
2014-01-14 14:40:07 +01:00
Sebastian Huber
3a7f5887f3 bsps/arm: Use _ARMV4_Exception_interrupt
This allows read-only vector tables in ROM.  It avoids also an unsolved
problem with MMU/cache synchronization on SMP.
2014-01-14 09:46:13 +01:00
Sebastian Huber
eba0626fa2 bsps/arm: Use Normal memory for code and data 2014-01-13 13:24:02 +01:00
Sebastian Huber
4ec210fe3e bsps/arm: Use ALIGN_WITH_INPUT
The ALIGN_WITH_INPUT helps to make this linker script more reliable.
See also:

https://sourceware.org/ml/binutils/2013-06/msg00246.html

https://sourceware.org/binutils/docs-2.24/ld/Forced-Output-Alignment.html#Forced-Output-Alignment

This reverts commit 4a9e52eefc.

This reverts commit 1ab4f76900.
2014-01-13 13:19:02 +01:00
Sebastian Huber
8fdf4e57f8 bsp/lpc24xx: Add PL111 support 2014-01-10 21:44:24 +01:00