Commit Graph

1389 Commits

Author SHA1 Message Date
Joel Sherrill
08330bf0be Port of RTEMS to the ARM processor family by Eric Valette
<valette@crf.canon.fr> and Emmanuel Raguet <raguet@crf.canon.fr>
of Canon CRF - Communication Dept.  This port includes a
basic BSP that is sufficient to link hello world.
2000-07-27 01:04:11 +00:00
Joel Sherrill
17508d02bb Port of RTEMS to the Texas Instruments C3x/C4x DSP families including
a BSP (c4xsim) supporting the simulator included with gdb.  This port
was done by Joel Sherrill and Jennifer Averett of OAR Corporation.
Also included with this port is a space/time optimization to eliminate
FP context switch management on CPUs without hardware or software FP.

An issue with this port was that sizeof(unsigned32) = sizeof(unsigned8)
on this CPU.  This required addressing alignment checks and assumptions
as well as fixing code that assumed sizeof(unsigned32) == 4.
2000-07-26 19:26:28 +00:00
Joel Sherrill
6b4a11bf4e Patch rtems-rc-20000713-1-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that removes an unnecessary inclusion of @RTEMS_BSP@.cfg.
2000-07-25 13:38:03 +00:00
Joel Sherrill
ca8dfbcc6b Forgot to remove these when code moved. 2000-07-25 11:48:33 +00:00
Joel Sherrill
e001d84afb Use bitwise and not cast to unsigned16 to remove upper bits. 2000-07-24 22:28:15 +00:00
Joel Sherrill
09f52f00de Make _ISR_Dispatch global. 2000-07-17 13:05:28 +00:00
Joel Sherrill
fb31e1a2e7 Update from Philip Quaife <rtemsdev@qs.co.nz> that was hand-merged.
This update addresses the following:

  + the ISR enable/disable/flash macros now work with old gcc versions.
  + the UI CCR bits are now masked since other example code did so
  + _ISR_Dispatch disables interrupts during call setup

Together these removed the instabilities he was seeing.
2000-07-17 13:01:44 +00:00
Joel Sherrill
4dcd9436d4 Changed name of static table versions to avoid conflict. 2000-07-14 18:52:54 +00:00
Joel Sherrill
b8a30d07a5 Patch rtems-rc-20000713-1-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that is yet another multilib-related structual cleanup patch:

  Changes:
  * Make RTEMS_TEST_NO_PAUSE a tests/ subpackage specific option.
    - Remove RTEMS_TEST_NO_PAUSE from custom/*.cfg, targopts.h and
      cpuopts.h.
    - Add autoconf macros RTEMS_*_RTEMS_TEST_NO_PAUSE
      (aclocal/rtems-test-no-pause.m4).
    - Add RTEMS_*_RTEMS_TEST_NO_PAUSE support to sptests/configure.ins
      and tmtests/configure.in. These are the only subdirectories which
      currently apply RTEMS_TEST_NO_PAUSE.
    - Add autoconf-DEFS support to all test subpackages' configure.ins
      below tests/. I.e. AC_DEFINES now get explicitly propagated as
      preprocessor defines into Makefiles, cf. AM_CPPFLAGS in
      tests/*/*.am, instead of using a global config-files.
    - Remove NDEBUG from custom/*.cfg.

  * AC_DEFINE POSIX_API, ITRON_API and MULTIPROCESSING in
    exec/configure.in, only.
    - All other sources now should relay on the values from cpuopts.h
      and should not define them themselves.
    - Several related changes to many configure.ins

  * Bug-fixes to RTEMS_*_RTEMS_DEBUG macros (Actually workarounds to
    quoting bugs in autoconf).

  Notes:
    * This patch is rather immature and only tested for a small subset
      of BSPs (requires the tests to be enabled and therefore takes an
      tremendous amount of disc space and time.)
    * The patches to *cfg were generated by a script. Expect file
      formating changes :)
2000-07-13 15:05:38 +00:00
Joel Sherrill
396079844d Patch rtems-rc-20000712-1-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that is yet another multilib-related structual cleanup patch:

  Changes:
    * Make RTEMS_DEBUG a global per-cpu configuration option
    * Remove RTEMS_DEBUG from targopts.h
    * Add a global --enable-rtems-debug option disabled by default.
    * Add RTEMS_DEBUG to cpuopts.h
    * Remove all references to RTEMS_DEBUG from custom/*.cfg

  Notes:
    * RTEMS_DEBUG is set in c/src/exec/configure.in only
      (RTEMS_CHECK_RTEMS_DEBUG) and should be defined in cpuopts.h only.
      BSPs should not redefine it, but use the value being provided by
      cpuopts.h.
      => With multilibs, users have to choose: Either enable RTEMS_DEBUG
         for all BSPs and CPU_MODELs of a cpu or not.
    * Only few BSPs had RTEMS_DEBUG enabled, therefore I set the default
      to disabled.
    * This patch influences the per-BSP building scheme. Existing BSPs
      which set RTEMS_DEBUG in their make-target-options rule might have
      problems at runtime.
2000-07-12 19:23:14 +00:00
Joel Sherrill
0e7da150a9 Removed no cpu references. 2000-07-11 21:38:41 +00:00
Joel Sherrill
4159370f5d Reworked score/cpu/sparc so it can be safely compiled multilib. All
routines and structures that require CPU model specific information
are now in libcpu.  This primarily required moving erc32 specific
information from score/cpu files to libcpu/sparc and the erc32 BSP.
2000-07-11 21:16:53 +00:00
Joel Sherrill
f38d829af4 Added Hitachi H8/300 to the list of CPUs that should be OK with
using cpuopts.h and not targopts.h.
2000-07-11 20:45:13 +00:00
Joel Sherrill
bc85fd5a6d Reworked score/cpu/i960 so it can be safely compiled multilib. All
routines and structures that require CPU model specific information
are now in libcpu.  This required significant rework of the
score/cpu header files and the creation of multiple header files
and subdirectories in libcpu/i960.
2000-07-11 19:31:04 +00:00
Joel Sherrill
270e3cce96 Patch rtems-rc-20000711-1-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that decouples exec/ for the sh, m68k and i960 from targopts.h.

NOTE: The change to system.h is a hack to enable cpuopts.h
for some targets, but keep using targopts.h for others - I know it
does *not* work for sparc, mips, i386 and ppc.  This will have
to be addressed as work continues on multilibing.
2000-07-11 14:56:04 +00:00
Joel Sherrill
e0ba3e80ef Patch rtems-rc-20000709-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that addresses aspects of the targopts.h multilib related
issues.

  Changes:
    * Move targopts.h to libbsp/include, because the current targopts.h
      actually is a per-BSP-header and therefore can not stay below exec/.

    * Introduce an autoheader generated header file
      (exec/score/include/rtems/score/cpuopts.h), which shall take per-cpu
      configuration options only.

    * Move all autoconf-detectable/configure specified per-cpu
      option-defines from targopts.h to cpuopts.h.

    * Add Makefiles to the libbsp/shared directory hierarchy.

  Notes:
    * The new per-bsp targopts.h in libbsp includes the per-cpu
      cpuopts.h. This way, the new targopts.h is kept backward compatible
      to the old targopts.h and existing BSPs which (carelessly) include
      targopts.h (i386, ppc) should be kept working when using the
      multilib-disabled configuration scheme.

    * cpuopts.h is not yet complete, because the per-BSP make-targopts
      rules from custom/<BSP>.cfg files can not be applied to files below
      exec/ when building multilibs.

    * All files below exec/ should not include targopts.h anymore, but
      should include cpuopts.h instead.  However, eliminating inclusion of
      targopts.h currently triggers further structural / header file inclusion
      related issues, because several ports apply BSP or CPU_MODEL specific
      defines from targopts.h below exec/
2000-07-10 19:23:38 +00:00
Joel Sherrill
256cbecf68 Patch rtems-rc-20000708-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that is another small step toward multilibs:

  Changes:
    * Eliminate RTEMS_CHECK_CUSTOM_BSP from all configure.ins below exec/
    * Add RTEMS_CHECK_CUSTOM_BSP to the multilib-disabled branch in
      RTEMS_ENV_RTEMSCPU to preserve the old per-BSP building scheme
      functional.

  Notes:
    * --enable-multilibs is still non-functional
    * This patch should not have any influence on the old building
      scheme (--disable-multilib should silently fall back to the old
      building scheme).
    * running ./bootstrap is required after applying the patch
2000-07-10 19:12:07 +00:00
Joel Sherrill
80e53918dc Moved old_exception_processing and new_exception_processing directories
from score/cpu to libcpu because the determination of which to use is
based on RTEMS_CPU_MODEL.  Thus it can not be determined based solely on
multilib information.
2000-07-07 19:36:14 +00:00
Joel Sherrill
df97683373 Fixed problem reported by Victor V. Vengerov <Victor.Vengerov@oktet.ru>
where alarm() did not correctly account for the watchdog start_time
and stop_time fields being based on ticks not seconds.  This resulted
in alarm() returning a bogus number of seconds remaining.
2000-07-07 19:31:30 +00:00
Joel Sherrill
5f4d774ea7 Moved __RTEMS_APPLICATION__ conditional to include the use of the
static inline routine _CORE_mutex_Seize_interrupt_trylock since
static routines are not included when in an application.
2000-07-07 19:29:05 +00:00
Joel Sherrill
ce1ba298ed Switched to faster implementation. 2000-07-06 21:59:25 +00:00
Joel Sherrill
168ba07c84 Patch from Eric Valette <valette@crf.canon.fr> and Yacine El Kolli
<elkolli@crf.canon.fr> to add support for the mbx860_005b.
2000-07-06 20:36:48 +00:00
Joel Sherrill
04e6f7bffb Patch rtems-rc-20000705-3.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that is a somewhat experimental, multilib-related patch:

  Changes:
    * Use RTEMS_ENV_RTEMSCPU instead of RTEMS_ENV_RTEMSBSP in
      configure.ins below exec/.
      At the moment, RTEMS_ENV_RTEMSCPU is more or less an optical change
      to emphasize that these subdirectories shall not depend on RTEMS_BSP
      than a real behavioral change.
    * Add AC_DEFINE_* to several aclocal/*.m4 macros to prepare
      autoheader/autoconf generated targopts.h and similiar configuration
      headers.
    * c/src/configure.in: remove exec from cfg_subdirs if multilibs are
      enabled (c/src is build per bsp, exec shall be build per cpu in c/
      or from the toplevel in future, when multilibs are enabled.)

  Notes:
    * This patch should not have any impact on the current building scheme.
    * --enable-multilib still does not work.
    * running bootstrap from the toplevel directory is required.
CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS: 	c/src/tests/libtests/termios/init.c
CVS: ----------------------------------------------------------------------
2000-07-06 20:13:35 +00:00
Joel Sherrill
34a2679266 Added missing #endif's. 2000-07-06 20:01:43 +00:00
Joel Sherrill
e6faa6ac76 Corrected call to _CORE_mutex_Seize_interrupt_blocking. 2000-07-06 20:01:23 +00:00
Joel Sherrill
8ce962c095 Modfied to execute faster and have fewer instructions. 2000-07-06 20:00:44 +00:00
Joel Sherrill
9d27732222 Switched to using isr disable version of _Objects_Get. When the
semaphore/mutex can be obtained immediately, this cuts execution time
by 50%.
2000-07-06 19:40:58 +00:00
Joel Sherrill
d058ce2ef3 Added _Semaphore_Get_interrupt_disable. 2000-07-06 19:39:20 +00:00
Joel Sherrill
ab654be428 Cleaned up to avoid disruptive use of inline conditionals. 2000-07-06 19:35:44 +00:00
Joel Sherrill
1b7e8c5165 Switched to using _POSIX_Mutex_Get_interrupt_disable to improve performance. 2000-07-06 19:34:49 +00:00
Joel Sherrill
3ef54dcc4c Added support for converting a mutex id to a pointer and returning
with interrupts disabled.
2000-07-06 19:33:52 +00:00
Joel Sherrill
21e2b2b9be Reimplemented _Core_MUTEX_Seize to return with interrupts disabled
if the mutex is successfully obtained.
2000-07-06 19:32:00 +00:00
Joel Sherrill
8d5b438b9e Added _CORE_semaphore_Seize_isr_disable. 2000-07-06 19:27:03 +00:00
Joel Sherrill
c6f111bac0 Added _Objects_Get_isr_disable prototype and added numerous comments. 2000-07-06 19:14:34 +00:00
Joel Sherrill
1d9403a308 Removed unnecessary parentheses. 2000-07-06 19:13:31 +00:00
Joel Sherrill
8a3278fc6a Added objjectgetbyisr.c 2000-07-06 19:11:15 +00:00
Joel Sherrill
12aeaec6dc The code that attempts to obtain a mutex has now been inlined. The
code remaining here now only blocks.
2000-07-06 19:10:30 +00:00
Joel Sherrill
3b4413c08f Directly index local table to avoid error check. 2000-07-06 19:09:27 +00:00
Joel Sherrill
d895fe8798 New file. Convert ID to pointer and return with interrupts -- not
dispatching -- disabled.
2000-07-06 19:06:59 +00:00
Joel Sherrill
42ed30047b Format of return line changed. 2000-07-06 19:01:58 +00:00
Joel Sherrill
8bc62aeb5d Interrupt stack is allocated in _ISR_Handler_initialization not
_Interrupt_Manager_initialization.
2000-07-03 18:44:12 +00:00
Joel Sherrill
0147d5ee73 Added blocked_count field to allow for optimizations. 2000-07-03 15:49:58 +00:00
Joel Sherrill
feb93ede27 Changed extra_system_initialization_stack to extra_mpci_receive_server_stack
to be consistent with other ports.
2000-07-03 15:49:35 +00:00
Joel Sherrill
3af082818e Fixed stat_ino should be st_ino. 2000-07-02 12:29:47 +00:00
Joel Sherrill
068b64735c Patch from Chris Johns <cjohns@cybertec.com.au> so the directory
read function in the IMFS properly returns the inode number.
2000-06-30 12:36:32 +00:00
Joel Sherrill
e5d6705e46 Patch from Chris Johns <cjohns@cybertec.com.au> to add support for
stat()'ing a symbolic link.  This is needed to support the port
of the BSD commands like ls to RTEMS.
2000-06-30 12:33:13 +00:00
Joel Sherrill
195ae7bada Patch from Chris Johns <cjohns@cybertec.com.au> to add fchdir()
functionality to libc and update TODO.
2000-06-30 12:31:28 +00:00
Joel Sherrill
5532553209 This is the initial addition of the port of RTEMS to the
Hitachi H8 family.  This port was done by Philip Quaife
<philip@qs.co.nz> of Q Solutions and sponsored by
Comnet Technologies Ltd.  The port was done based on RTEMS 3.5.1
to a Hitach H8300H.  The port was updated to RTEMS 4.5 style
Makefiles/configure by Joel Sherrill <joel@OARcorp.com>.
While doing this Joel added support for the h8300-rtems to
binutils, gcc, newlib, and gdb.

NOTE:  Philip submitted a BSP for a Hitachi evaluation board
which is being merged as a separate entity.
2000-06-29 23:00:48 +00:00
Joel Sherrill
bbc38ba58a Added H8 as IEEE whether this is true or not. 2000-06-29 22:35:17 +00:00
Joel Sherrill
63db53342f Disabled #ident since the h8300-rtems binutils do not like the
generated assembly from it.
2000-06-29 22:34:55 +00:00