Commit Graph

1115 Commits

Author SHA1 Message Date
Joel Sherrill
09f2ce38aa mips/idtcpu.h: Fix nested comment warning 2012-09-05 12:23:59 -05:00
Joel Sherrill
1364eb9935 v850 - byte swap instructions not available on all multilibs 2012-06-12 17:58:01 -05:00
Joel Sherrill
2d7ae960bb v850 port: Initial addition with BSP for simulator in GDB
Port
  + v850 does not have appear to have any optimized bit scan instructions
  + v850 does have single instructions for wap u16 and u32
  + Code path optimization preferences set
  + Add BSP variants for each GCC CPU model flag and a README
    - v850e1 variant does not work (fails during BSP initialization)
BSP for GDB v850 Simulator
  + linkcmds matches defaults in GDB simulator with RTEMS mods
  + crt1.c added from v850 newlib port for __main()
  + BSP exits cleanly
  + printk and console I/O work
  + uses clock tick from IDLE task
  + Tests not requiring real clock ISR work
Documentation
  + CPU Supplment chapter for v850 added
2012-06-11 13:37:29 -05:00
Joel Sherrill
9da42fb87a powerpc/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove _CPU_ISR_Initialize 2012-06-11 13:00:57 -05:00
Joel Sherrill
3e5ff08227 mips/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove _CPU_ISR_Initialize 2012-06-11 12:40:11 -05:00
Joel Sherrill
562cadfaa5 i386/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove _CPU_ISR_Initialize 2012-06-11 12:40:10 -05:00
Joel Sherrill
dea1050312 arm/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove _CPU_ISR_Initialize 2012-06-11 12:40:10 -05:00
Sebastian Huber
1869bb7101 powerpc: Simplify context switch
PowerPC cores with the SPE (Signal Processing Extension) have 64-bit
general-purpose registers.  The SPE context switch code has been merged
with the standard context switch code.  The context switch may use cache
operations to increase the performance.  It will be ensured that the
context is 32-byte aligned (PPC_DEFAULT_CACHE_LINE_SIZE).  This
increases the overall memory size of the context area in the thread
control block slightly.  The general-purpose registers GPR2 and GPR13
are no longer part of the context.  The BSP must initialize these
registers during startup (usually initialized by the __eabi() function).

The new BSP option BSP_USE_DATA_CACHE_BLOCK_TOUCH can be used to enable
the dcbt instruction in the context switch.

The new BSP option BSP_USE_SYNC_IN_CONTEXT_SWITCH can be used to enable
sync and isync instructions in the context switch.  This should be not
necessary in most cases.
2012-06-04 09:54:31 +02:00
Joel Sherrill
65c6425de9 Remove CVS Id Strings (manual edits after script)
These modifications were required by hand after running the script.
In some cases, the file names did not match patterns. In others,
the format of the file did not match any common patterns.
2012-05-11 08:44:14 -05:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
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.
2012-05-11 08:44:13 -05:00
Joel Sherrill
826fa6b169 Score ISR - Minimize Capabilities When Not Simple Vectored
In particular CPU_INTERRUPT_NUMBER_OF_VECTORS and
CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER are only used on
Simple Vectored Architectures, so do not depend on
them being defined. This disables as much as possible
that is specific to the Simple Vectored Model and
not expected to be used on architectures which use
the Programmable Interrupt Controller model for
interrupt handler vectoring.
2012-05-09 16:55:10 -05:00
Joel Sherrill
33a105fb69 Revert: Remove CVS Ids
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
2012-05-07 11:08:48 -05:00
Ralf Corsépius
ee32f67a6f Remove CVS-Ids. 2012-05-04 09:36:25 +02:00
Gedare Bloom
e99dbaa7cd no_cpu: replace no_cpu_isr with rtems_isr 2012-04-16 19:39:22 -04:00
Gedare Bloom
416f1efbd2 lm32: replace lm32_isr with rtems_isr 2012-04-16 13:11:20 -04:00
Gedare Bloom
1fec9e0357 m68k: replace m68k_isr with rtems_isr 2012-04-16 13:11:20 -04:00
Sebastian Huber
8eb559d316 nios2: New functions
Add
  o _Nios2_MPU_Get_region_descriptor(), and
  o _Nios2_MPU_Set_region_registers().
2012-04-11 11:24:41 +02:00
Sebastian Huber
2d0ca00003 nios2: API change 2012-04-11 11:24:41 +02:00
Sebastian Huber
f0d66b1ba9 arm: New function
Add and use function _ARMV7M_Set_exception_priority_and_handler().  Use
ARMV7M_EXCEPTION_PRIORITY_LOWEST define.
2012-04-07 18:31:06 +02:00
Jennifer Averett
0c0181dee2 PR 1993 - Convert MIPS to PIC IRQ model 2012-04-04 08:43:08 -05:00
Ric Claus
16a86162a2 Add Virtex4 and Virtex5 BSPs
This commit covers at least PR2020, 2022, and 2023. This
patch adds all of the code for both BSPs, modifications
to libcpu/powerpc for the ppc440, and some updates to the
BSPs from follow up review and testing.

These BSPs should be good baselines for future development.
The configurations used by Ric are custom and have a non-standard
NIC. They also do not have a UART.  Thus the current console
driver just prints to a RAM buffer.

The NIC and UART support are left for future work. When the UART
support is added, moving the existing "to RAM" console driver to
a shared location is likely desirable because boards with no debug
UART port are commonly deployed. This would let printk() go to RAM.
2012-03-30 10:03:43 -05:00
Sebastian Huber
40b8f63a10 NIOS2: Add MPU support functions 2012-03-30 15:03:26 +02:00
Sebastian Huber
64d2c8adf9 NIOS2: Fix outermost interrupt check
This fix is critical.  The previous implementation leads to system
corruption.
2012-03-30 15:03:15 +02:00
Sebastian Huber
f442e6b45c ARM: PR2042: Provide stub for ARMv6-M 2012-03-27 17:41:05 +02:00
Sebastian Huber
f9ec60046b ARM: New define ARMV7M_EXCEPTION_PRIORITY_LOWEST 2012-03-24 20:31:10 +01:00
Gedare Bloom
67baf6071d PR2041: sparc64: vector number not included in CPU_Interrupt_frame
Add the trap vector to the interrupt frame. Also rename the assembly
macro that accesses the field to be consistent with similar macros.
2012-03-14 13:06:13 -04:00
Sebastian Huber
701f0782e6 Support Thumb 2. 2012-02-11 21:09:44 +01:00
Sebastian Huber
6091f1a6aa ARMv7-M NVIC and MPU API changes. 2012-02-11 21:09:40 +01:00
Sebastian Huber
d6f947ebc3 ARMv7-M Systick API change 2012-02-11 21:09:36 +01:00
Joel Sherrill
61250b4ce9 Remove all .cvsignore files. 2012-02-01 10:59:44 -06:00
Ralf Corsepius
67cc389e1f 2011-12-09 Ralf Corsépius <ralf.corsepius@rtems.org>
* cpu.c: Make _defaultExcHandler static.
2011-12-09 14:07:58 +00:00
Jennifer Averett
0f98487dae 2011-12-09 Jennifer Averett
* cpu.c: Correct typo.
2011-12-09 14:04:37 +00:00
Sebastian Huber
7e0ef0f7b3 2011-12-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtems/powerpc/registers.h: More register defines.
2011-12-06 14:06:39 +00:00
Joel Sherrill
7e8ed4defc 2011-11-28 Werner Almesberger <werner@almesberger.net>
PR 1956/cpukit
	* rtems/score/cpu.h: Correct multiple alignment constants. Improve
	comments.
2011-11-28 17:36:35 +00:00
Sebastian Huber
6962842f55 Typo. 2011-11-20 14:59:41 +00:00
Sebastian Huber
bb92954067 2011-11-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1965/cpukit
	* rtems/score/arm.h: Select ARMv4 multilib implementation for
	__ARM_ARCH_7A__.
2011-11-19 14:34:10 +00:00
Joel Sherrill
529aa9d4a6 Move entries to correct file. 2011-11-09 18:51:59 +00:00
Joel Sherrill
634b14e551 2011-11-09 Werner Almesberger <werner@almesberger.net>
PR 1954/cpukit
	* score/cpu/lm32/rtems/score/lm32.h: Protect against macro expansion.
2011-11-09 18:51:13 +00:00
Joel Sherrill
552a80fcbc 2011-11-09 Werner Almesberger <werner@almesberger.net>
PR 1955/cpukit
	* rtems/score/cpu.h: Convert CPU_swap_u16 into a static inline.
2011-11-09 15:15:25 +00:00
Sebastian Huber
6343ea4ef9 2011-11-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtems/score/cpu.h: Removed unused register_pc from Context_Control.
2011-11-07 07:58:17 +00:00
Sebastian Huber
e2691dcb5d 2011-11-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1949/cpukit
	PR 1950/cpukit
	* rtems/score/arm.h: Select ARMv4 multilib implementation for
	__ARM_ARCH_6J__.
2011-11-07 07:48:11 +00:00
Sebastian Huber
d4a9594039 2011-10-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
* nios2-mpu-configuration.c, nios2-mpu-descriptor.c,
	nios2-mpu-disable-protected.c, nios2-mpu-reset.c: New files.
	* Makefile.am: Reflect changes above.
	* rtems/score/nios2-utility.h, nios2-context-initialize.c: Added
	support for the memory protection unit (MPU).
2011-10-21 08:44:23 +00:00
Joel Sherrill
8f582bc637 2011-10-07 Daniel Hellstrom <daniel@gaisler.com>
PR 1932/cpukit
	* cpu_asm.S: At some point the interrupt trap handler causes a
	window-overflow and the window overflow trap handler crashes when
	writing to 0. I found that this is because the WIM was bad, to the
	window overflow handler uses a uninitialized stack pointer in a
	window never used.
	 * g3=CWP, not WIM
	 * CWP is incremented by done_flushing no need doing that here also
	 * I see no reason to create an additional stack frame (save)
	 * Must turn off traps when updating WIM (maybe already done by caller?)
2011-10-07 14:31:44 +00:00
Joel Sherrill
4eeed0051b 2011-10-06 Gedare Bloom <giddyup44@yahoo.com>
PR 1918/cpukit
	* cpu.c: Initialize context with cleared g4 register.
2011-10-06 16:42:52 +00:00
Sebastian Huber
2d5458434b 2011-09-30 Sebastian Huber <sebastian.huber@embedded-brains.de>
* nios2-context-switch.S: Use small-data area access for
	_Per_CPU_Information fields.
2011-09-30 08:02:56 +00:00
Sebastian Huber
9c121991d7 2011-09-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1914/cpukit
	* rtems/score/cpu.h: Select timestamp implementation.
2011-09-27 09:18:25 +00:00
Sebastian Huber
abd2530921 Typo. 2011-09-27 09:14:46 +00:00
Sebastian Huber
d063076340 2011-09-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1914/cpukit
	* rtems/score/cpu.h: Select timestamp implementation.
2011-09-27 09:14:03 +00:00
Sebastian Huber
c5ed14844e 2011-09-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtems/score/armv7m.h, armv7m-context-initialize.c,
	armv7m-context-restore.c, armv7m-context-switch.c,
	armv7m-exception-handler-get.c, armv7m-exception-handler-set.c,
	armv7m-exception-priority-get.c, armv7m-exception-priority-set.c,
	armv7m-initialize.c, armv7m-isr-dispatch.c, armv7m-isr-enter-leave.c,
	armv7m-isr-level-get.c, armv7m-isr-level-set.c,
	armv7m-isr-vector-install.c, armv7m-multitasking-start-stop.c: New
	files.
	* Makefile.am, preinstall.am: Reflect changes above.
	* rtems/score/arm.h: Define ARM_MULTILIB_ARCH_V4 and
	ARM_MULTILIB_ARCH_V7M.
	* rtems/score/cpu.h, cpu_asm.S, cpu.c, arm_exc_abort.S,
	arm_exc_handler_high.c, arm_exc_handler_low.S, arm_exc_interrupt.S:
	Define CPU_HAS_HARDWARE_INTERRUPT_STACK to FALSE.  Use
	ARM_MULTILIB_ARCH_V4 and ARM_MULTILIB_ARCH_V7M.
2011-09-24 12:56:51 +00:00
Sebastian Huber
f40139bb9b 2011-09-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1914/cpukit
	* rtems/score/cpu.h: Document CPU_TIMESTAMP_USE_STRUCT_TIMESPEC,
	CPU_TIMESTAMP_USE_INT64, and CPU_TIMESTAMP_USE_INT64_INLINE.
2011-09-22 07:16:06 +00:00