Compare commits

..

249 Commits

Author SHA1 Message Date
cvs2git
14f1218480 This commit was manufactured by cvs2svn to create tag 'rtems-4-5-0'.
Sprout from rtems-4-5-branch 2000-07-24 17:58:24 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'changed version to 4.5.0'
Delete:
    automake/host.am
    automake/lib.am
    automake/local.am
    automake/subdirs.am
    c/src/lib/libbsp/mips/p4000/liblnk/.cvsignore
    c/src/librdbg/src/powerpc/new_exception_processing/.cvsignore
    doc/.cvsignore
2000-07-24 17:58:25 +00:00
Joel Sherrill
36f910cdbe changed version to 4.5.0 2000-07-24 17:58:24 +00:00
Joel Sherrill
cadf485057 changed version to 4.5.0 2000-07-17 01:06:22 +00:00
Joel Sherrill
2d722f996d changed version to 4.5.0 2000-07-14 19:37:39 +00:00
Joel Sherrill
356a74b69d changed version to 4.5.0 2000-07-14 19:30:07 +00:00
Joel Sherrill
3df0c1e9ff changed version to 4.5.0 2000-07-14 19:24:28 +00:00
Joel Sherrill
b167323ddb changed version to 4.5.0 2000-07-14 19:14:12 +00:00
Joel Sherrill
9717739f27 changed version to 4.5.0 2000-07-14 19:10:50 +00:00
Joel Sherrill
8465866651 changed version to 4.5.0 2000-07-14 19:05:23 +00:00
Joel Sherrill
a5c67bc66d Updated RTEMS version. 2000-07-14 19:04:42 +00:00
Joel Sherrill
a4c731f6aa Updated tool versions for gnat 3.12p RPM revision 5. 2000-07-14 19:04:13 +00:00
Joel Sherrill
c1956b5952 Changed name of static table versions to avoid conflict. 2000-07-14 18:53:21 +00:00
Joel Sherrill
21555cba2d Switch logical in conditional. 2000-07-13 16:17:23 +00:00
Joel Sherrill
822d6b4799 Patch rtems-rc-20000711-2-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that removes setting unused variables WORKSPACE_MB and HEAPSPACE_MB.
2000-07-11 15:33:40 +00:00
Joel Sherrill
6d19b7edd4 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:28 +00:00
Joel Sherrill
7f51092d10 Patch from James Housley <jim@thehousleys.net> so application Makefiles
can find tools installed to $(prefix)/bin after installation.
2000-07-07 16:48:29 +00:00
Joel Sherrill
1d51c45deb Patch rtems-rc-20000705-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
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:10:40 +00:00
Joel Sherrill
e734e57635 Patch rtems-rc-20000702-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that is a hack to workaround a switch generation compiler bug for the
SH2 and cleaned up some warnings.
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-03 20:48:00 +00:00
Joel Sherrill
0f4bfda992 Interrupt stack is allocated in _ISR_Handler_initialization not
_Interrupt_Manager_initialization.
2000-07-03 18:43:44 +00:00
Joel Sherrill
6d3279acea Patches from Eric Valette to address librdbg issues on SunRPC upgrade
and cleanup.
2000-06-29 16:22:13 +00:00
Joel Sherrill
5aac7bc83e Patch from Chris Johns <cjohns@cybertec.com.au> to make sure the
ttyHead back link is set.
2000-06-29 16:05:30 +00:00
Joel Sherrill
14b4125f3c Patch from Eric Valette <valette@crf.canon.fr> to make librdbg work
with the new RPC code.
2000-06-29 15:48:05 +00:00
Joel Sherrill
5f3ad6a89d Patch from Chris Johns <cjohns@cybertec.com.au> and
Jennifer Averett <jennifer.averett@oarcorp.com> to fix
appends (O_APPEND at open time) on in-memory files.

A call such as:

    fd = open (file, O_APPEND | O_WRONLY);

did not append to the end of the file.
2000-06-26 14:50:00 +00:00
Joel Sherrill
f782320813 Patch from Chris Johns <cjohns@cybertec.com.au> and
Jennifer Averett <jennifer.averett@oarcorp.com> to make sure
"/" is created with S_IFDIR set.
2000-06-26 14:46:47 +00:00
Joel Sherrill
0a8a4c128d Patch from James Housley <jim@thehousleys.net> to address FreeBSD 4.x
build issues.
2000-06-16 13:05:17 +00:00
Joel Sherrill
d33b901755 changed version to 4.5.0-beta3a 2000-06-12 20:55:36 +00:00
Joel Sherrill
1dc9286f8b changed version to 4.5.0-beta3a 2000-06-12 20:30:01 +00:00
Joel Sherrill
b96734cdd0 Fixed so hppa1.1 compiles with only problems in simhppa BSP. 2000-06-12 20:29:45 +00:00
Joel Sherrill
380b2231e0 Works on Solaris and Linux. 2000-06-12 18:46:11 +00:00
Joel Sherrill
c243c4923e Added i960KA support in anticipation is i960 gdb simulator BSP. 2000-06-12 15:56:32 +00:00
Joel Sherrill
19c6e495d3 changed version to 4.5.0-beta3a 2000-06-12 15:26:51 +00:00
Joel Sherrill
930c1c8dc9 Merging main trunk and 4.5 branch. These changes were in the
main trunk.
2000-06-12 15:24:34 +00:00
Joel Sherrill
6a62bceb23 changed version to 4.5.0-beta3a 2000-06-12 14:22:25 +00:00
Joel Sherrill
f18d2e7432 Updated a bit. 2000-06-12 14:19:35 +00:00
Joel Sherrill
531cbf9a4a Changed st_atime, st_ctime, and st_mtime for IMFS nodes to be
stat_ to avoid conflicts with macros on Solaris.
2000-06-12 14:09:52 +00:00
Joel Sherrill
f981326efc Updated version. 2000-06-12 14:07:19 +00:00
Joel Sherrill
e88f497884 Make sure Context_Control is large enough. 2000-06-10 18:37:21 +00:00
Joel Sherrill
98165e21b7 Check that context control overlay is big enough. 2000-06-10 18:36:48 +00:00
Joel Sherrill
c5fe7cf65c Patch rtems-rc-4.5.0-27-cvs from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
to remove syntactically incorrect else code that was technically
unneeded anyway.
2000-06-09 18:45:23 +00:00
Joel Sherrill
c580598529 Configure a default interrupt stack size. 2000-06-08 01:37:04 +00:00
Joel Sherrill
8b9aa32d5b Added -DUSE_INIT_FINI so they should be able to run C++ tests. 2000-06-07 13:34:55 +00:00
Joel Sherrill
423fb5ac8c Changed patch version for newlib to include Ralf's fixes for
install shell script problems.
2000-06-07 13:31:52 +00:00
Joel Sherrill
b790e3990f Changed distribution version. 2000-06-07 13:31:22 +00:00
Joel Sherrill
b24ef52626 Do not include config.sub and config.guess in distribution. scripts
must be loaded as a subdirectory of an RTEMS release.
2000-06-07 13:31:06 +00:00
Joel Sherrill
68638f0519 Added attributes of allocatable and executable to .reset and .initial
sections so they are disassembled by objdump and loaded by gdb.
2000-06-07 13:29:46 +00:00
Joel Sherrill
1a632e8e73 -T linkcmds now part of %lib rule so %link rule can more easily honor
the CPU model library linking rules built into gcc.
2000-06-07 13:27:40 +00:00
Joel Sherrill
259397cc88 Added *spec.in since they are now automatically generated from the *.add
files.
2000-06-07 13:23:46 +00:00
Joel Sherrill
bdf9a99415 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
gccnewlib.add applies find -path=... which might cause files.gcc
  getting corrupted.

  This seems to be gnu-find specific and doesn't seem to be supported
  by Solaris find (/usr/bin/find). I didn't see this because I use
  gnu-find even under Solaris (/amd/bin/find under our Solaris
  installation).
  This causes the first call to find in gccnewlib.add to deliver
  incorrect results and may result into incorrectly setting up the
  files.* files, esp. files.gcc.
2000-06-06 13:44:18 +00:00
Joel Sherrill
19f4540ee5 Updated patch versions. 2000-06-02 20:13:51 +00:00
Joel Sherrill
fd16f5b587 Patch from Keith Outwater <vac4050@cae597.rsc.raytheon.com> to rename
webserver trace() routine to goahead_trace() to avoid name conflicts
with ncurses.
2000-06-01 21:50:37 +00:00
Joel Sherrill
e89694ee7e Distributed the preinstall of the header files to the directories
owning the header files.
2000-05-31 22:31:26 +00:00
Joel Sherrill
322c894c08 Patch to:
1. Fixes a typo in the code conditionalized by GEN68360_WITH_SRAM
  2. Mods the code to add support for an additional bank of SRAM (needed more RAM
     to run the web server!)

From <vac4050@cae597.rsc.raytheon.com> reviewed by Eric Norum <eric@cls.usask.ca>.
2000-05-31 15:27:40 +00:00
Joel Sherrill
3081446337 Patch rtems-rc-4.5.0-25.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
multilib handling issues.
2000-05-31 15:24:43 +00:00
Joel Sherrill
db07e68798 Update from John S. Gwynne <jsg@jsgpc.mrcday.com> that:
* updated README
     * improved misc script for running the RTEMS test programs
     * Updated 332 SIM configuration in start.c
     * C++ global constructor fix (USE_INIT_FINI)
     * change __end_of_ram to _RamEnd to match changes by others
2000-05-31 15:05:55 +00:00
Joel Sherrill
0adfb21347 Added -DUSE_INIT_FINI to all m68k and PowerPC BSPs. 2000-05-31 15:01:48 +00:00
Joel Sherrill
fe4edc8ccf Include clockdrv.h and console.h per Frank Szczerba <frank@wmi.com>. 2000-05-31 14:14:27 +00:00
Joel Sherrill
6a8700de5f Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de> to:
This is the diff to let gcc-target-default.cfg use LINK.c -Wl,-r
  instead of LD -r for building *.rels.

  BTW: gcc -r works but seems to be undocumented, however
       as gcc -r -v shows it seems to works. Now I am using -Wl,-r :-)
2000-05-31 13:35:08 +00:00
Joel Sherrill
75061954c1 Patch from Nick Simon <Nick.SIMON@syntegra.bt.co.uk> to make
error.h C++ safe.
2000-05-30 14:07:37 +00:00
Joel Sherrill
a3f5b6be31 Added a special CPU model of "rtems_multilib". This is the beginnings
of an experiment to determine what it will take to multilib most of
RTEMS per GNU multilib conventions.  It is thought that only
interrupt processing and IO are not multlib-able.  This means that
a BSP Kit should include IRQ processing from score/cpu, all peripheral
support (header files from score/cpu, libchip, and libcpu), and the
BSPs themselves.  The rest of RTEMS should be multlib-able.  But to do
this, all RTEMS CPU model feature flags must be derivable from gcc
cpp predefines.  By configuring the bare bsp with the rtems_multilib
CPU model, you can try any combination of CPU CFLAGS and see well how the
logic in that section of the <CPU>.h works.   Once all CPU multilib
variations can be built, then RTEMS proper can be multilib'ed and
separated from the BSPs.
2000-05-28 20:14:45 +00:00
Joel Sherrill
63cf252f31 Patch rtems-rc-4.5.0-21.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
which splits the current monolithic specs files into a sequence of
subparts.  These can be concatenated togather to make a the whole .spec
file.  This cleans up the maintenance problem of having "all languages"
and a "C/C++ only" gccnewlib spec files.  Plus it should make it easier
to produce variants like the gdb-m68k-bdm which require special hackery. :)
Ralf's comments:

  It addresses the way *.spec.in get composed inside of the source
  tree.

  Changes:
    * Each spec.in is broken into several files (*.add), one *.add file
      per sub-package.
    * Each Makefile.am composes spec.ins from the *.add files
    * Removal of redundant automake support files.
    * Default value for BuildRoot changed to /tmp/<spec-file-name>
    * %clean stage added to *specs

  Advantages (IMHO).
    * The *.add files are easier to adminstrate and more flexible in
      comparison to the former *.specs.ins.
    * gccnewlib_c_only.spec.in now is composed from the same sources as
      gccnewlib.spec.in (less errors)
    * If using the default BuildRoot --clean now deletes all files that
      were generated while building.

  Notes:
    * rtems.spec.in has not yet been adapted to the scheme used for the
      other *spec.ins
    * Except for cosmetical changes the internals of the  *.spec files
      should not have changed.

  To Apply:
    cvs rm -f scripts/binutils/binutils.spec.in
    cvs rm -f scripts/gccnewlib/gccnewlib.spec.in
    cvs rm -f scripts/gccnewlib/gccnewlib_c_only.spec.in
    cvs rm -f scripts/gdb/gdb.spec.in
    cvs rm -f scripts/config.sub
    cvs rm -f scripts/config.guess
    cvs rm -f scripts/install-sh
    cvs rm -f scripts/mkinstalldirs
    cvs rm -f scripts/missing

    patch -p1 < rtems-rc-4.5.0-21.diff

    cvs add scripts/*/*.add
    cvs add scripts/*/README
2000-05-28 18:14:55 +00:00
cvs2git
22095e222d This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-05-28 18:03:55 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'Added on 4.5 branch':
    scripts/binutils/base-binutils.add
    scripts/binutils/binutils.add
    scripts/binutils/target-binutils.add
    scripts/gccnewlib/base-chill.add
    scripts/gccnewlib/base-g77.add
    scripts/gccnewlib/base-gcc.add
    scripts/gccnewlib/base-gcj.add
    scripts/gccnewlib/gccnewlib.add
    scripts/gccnewlib/target-chill.add
    scripts/gccnewlib/target-g77.add
    scripts/gccnewlib/target-gcc.add
    scripts/gccnewlib/target-gcj.add
    scripts/gccnewlib/target-objc.add
    scripts/gdb/base-gdb.add
    scripts/gdb/gdb.add
    scripts/gdb/target-gdb.add
2000-05-28 18:03:56 +00:00
Joel Sherrill
559cf7684d Updated newlib version which bumped the gnatnewlib version. 2000-05-28 17:53:39 +00:00
Joel Sherrill
5bd07d40e3 Updated newlib, gdb, and gcc patch versions which bumped the RPM release
of gccnewlib and gdb.
2000-05-28 17:53:16 +00:00
Joel Sherrill
19de118930 New version number. 2000-05-28 17:52:48 +00:00
Joel Sherrill
d102375e79 Removed definition of PPC_ABI and PPC_ASM as there are now defaults
that reflect the GNU toolset.
2000-05-28 17:52:30 +00:00
Joel Sherrill
dd72009e4e Added casts to avoid warnings. 2000-05-28 17:49:21 +00:00
Joel Sherrill
1d89b75c96 Removed more warnings. In particular added ifdef's on IPV6 for
variables only used in IPV6.
2000-05-28 17:47:39 +00:00
Joel Sherrill
f8d3664510 Added prototype of fdopen() since it is not strict ANSI and not
having a prototype caused warnings.
2000-05-28 17:46:40 +00:00
Joel Sherrill
9c948846fa Added cast to remove warning. 2000-05-28 17:45:55 +00:00
Joel Sherrill
96efaf679b Renamed delay() to avoid conflicts since it is a common name that
was in particular used by the ttcp test.
2000-05-28 17:45:17 +00:00
Joel Sherrill
3704a9a149 Added defaults for PPC_ABI and PPC_ASM so every PowerPC does not
have to define them to their default value.  The default values
reflect the ABI and Assembly format of the current GNU tools.
2000-05-28 17:43:00 +00:00
Joel Sherrill
cfca5dba95 Removed warning by adding return NULL. 2000-05-28 17:42:03 +00:00
Joel Sherrill
9d05d68fe6 Changed sed command to avoid severe limitations in Solaris /bin/sed.
Detected by Joel after multiple reports on the rtems-users mailing
list.  Final fix from Ralf Corsepius.
2000-05-28 17:41:43 +00:00
Joel Sherrill
05ff78ab00 Added INSTALL_CHANGE and INSTALL_VARIANT information. 2000-05-26 17:49:52 +00:00
Joel Sherrill
09c16269d9 Significant updates. 2000-05-26 17:17:40 +00:00
Joel Sherrill
3050704fa5 Corrected old-style usage of TARGET_ARCH. 2000-05-26 17:16:37 +00:00
Joel Sherrill
fa9b9f512b Corrected resource requirements. 2000-05-25 19:49:34 +00:00
Joel Sherrill
a12793743a Removed warning. 2000-05-25 17:17:35 +00:00
Joel Sherrill
60a3213b13 Increased memory reserved for stack requirements. 2000-05-25 16:06:30 +00:00
Joel Sherrill
f3b1664f51 Increased resources configured. 2000-05-25 16:04:37 +00:00
Joel Sherrill
c94c2518de Update from Stephan Wilms <Stephan.Wilms@CWA.de> that adds autodetection.
What I implemented in this new driver version is, that the driver will
first probe for a DEC21140 card and use it if found. If not found it
will probe for a DEC21143 card and use that if found. This removes the
need for defining/undefining a macro (as was required with my previous
version). I tested the driver with my 21143 card using netdemo and it
apears to work just fine.

Here are some cases that I did not test, mainly because I do not have
the required testing hardware:
   - I did not enhance or test PPC support
   - I did not test DEC21140 support
   - I did not use other test software than netdemo
2000-05-25 13:42:00 +00:00
Joel Sherrill
64bddf48af Patch to remove warnings from Eric Norum <eric@cls.usask.ca>. 2000-05-25 13:19:49 +00:00
Joel Sherrill
646decbd61 Patch from Nick Simom (Nick.SIMON@syntegra.bt.co.uk) so eth_comm
can return to start code without faulting.
2000-05-24 17:11:24 +00:00
Joel Sherrill
09b6a0938e Significantly lowered the default memory requirements:
- CONFIGURE_RTEMS_INIT_TASKS_TABLE was 10 now 0
    - CONFIGURE_POSIX_INIT_THREAD_TABLE was 10 now 0
    - CONFIGURE_ITRON_INIT_TASK_TABLE was 10 now 0
    - CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS was 20 now 3
    - added CONFIGURE_NUMBER_OF_TERMIOS_PORTS and defaulted to 1
    - added CONFIGURE_TERMIOS_DISABLED defaulted to "enabled"
    - miniIMFS is now the default

Added configuration error checks that:
  + Ensure > 0 tasks/threads are configured
  + Ensure at least one inititalization task/thread is defined

bsp.h now defines these so BSP specific requirements
are accounted for.
  + CONFIGURE_NUMBER_OF_TERMIOS_PORTS
  + CONFIGURE_INTERRUPT_STACK_MEMORY

console_reserve_resources and rtems_termios_reserve_resources
are no longer required and considered obsolete.  Calls to
rtems_termios_reserve_resources have been eliminated although
the routine is still there and the body "if 0'ed".

We are very close to having NO reason to modify the
configuration tables in the BSP.  Be warned that eventually
we would like to see the need for BSP_Configuration
eliminated!
2000-05-24 17:06:54 +00:00
Joel Sherrill
9a03459c44 Significantly lowered the default memory requirements:
- CONFIGURE_RTEMS_INIT_TASKS_TABLE was 10 now 0
    - CONFIGURE_POSIX_INIT_THREAD_TABDE was 10 now 0
    - CONFIGURE_ITRON_INIT_TASK_TABLE was 10 now 0
    - CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS was 20 now 3
    - added CONFIGURE_NUMBER_OF_TERMIOS_PORTS and defaulted to 1
    - added CONFIGURE_TERMIOS_DISABLED defaulted to "enabled"
    - miniIMFS is now the default

Added configuration error checks that:
  + Ensure > 0 tasks/threads are configured
  + Ensure at least one inititalization task/thread is defined

bsp.h now defines these so BSP specific requirements
are accounted for.
  + CONFIGURE_NUMBER_OF_TERMIOS_PORTS
  + CONFIGURE_INTERRUPT_STACK_MEMORY

console_reserve_resources and rtems_termios_reserve_resources
are no longer required and considered obsolete.  Calls to
rtems_termios_reserve_resources have been eliminated although
the routine is still there and the body "if 0'ed".

We are very close to having NO reason to modify the
configuration tables in the BSP.  Be warned that eventually
we would like to see the need for BSP_Configuration
eliminated!
2000-05-24 17:06:37 +00:00
Joel Sherrill
d38427f158 Handle mp variants better. 2000-05-24 17:01:13 +00:00
Joel Sherrill
77989a586e Make sure debug variant output goes into a different log file. 2000-05-24 17:01:02 +00:00
Joel Sherrill
9cad6a0214 Now can bring up an idle initialization task. 2000-05-24 16:57:07 +00:00
Joel Sherrill
1296960168 Added screen contents. 2000-05-24 16:52:34 +00:00
cvs2git
978b21bd73 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-05-24 16:51:23 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'New file.':
    c/src/tests/libtests/malloctest/malloctest.scn
    scripts/config.guess
    scripts/config.sub
2000-05-24 16:51:24 +00:00
Joel Sherrill
d7bf62566d Increased task stack configured. 2000-05-24 16:50:26 +00:00
Joel Sherrill
95df6137e9 Added malloctest back in to set of tests to run. 2000-05-24 16:49:16 +00:00
Joel Sherrill
bef66a669f Fixed bug so debug variant of MP tests could be run. 2000-05-24 16:44:13 +00:00
Joel Sherrill
9b3cdfe85f Updated. 2000-05-24 15:56:20 +00:00
Joel Sherrill
70f1f1d971 Initial DEC 21143 support from Stephan Wilms <Stephan.Wilms@CWA.de>.
Comments follow:

 This support is (for now) only available for the __i386 target, because
 that's the only testing platform I have. It should to my best knowledge
 work in the same way for the "__PPC" target, but someone should test
 this first before it's put into the code. Thanks go to Andrew Klossner
 who provided the vital information about the Intel 21143 chip.

 (FWIW: my network card is a Kingston KNE100TX with 21143PD chip)
2000-05-24 15:55:00 +00:00
Joel Sherrill
2c8485b663 Eliminated printing from switch extension. 2000-05-24 15:37:32 +00:00
Joel Sherrill
2fbdbd4f14 Significantly lowered the default memory requirements:
- CONFIGURE_RTEMS_INIT_TASKS_TABLE was 10 now 0
    - CONFIGURE_POSIX_INIT_THREAD_TABLE was 10 now 0
    - CONFIGURE_ITRON_INIT_TASK_TABLE was 10 now 0
    - CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS was 20 now 3
    - added CONFIGURE_NUMBER_OF_TERMIOS_PORTS and defaulted to 1
    - added CONFIGURE_TERMIOS_DISABLED defaulted to "enabled"
    - miniIMFS is now the default

Added configuration error checks that:
  + Ensure > 0 tasks/threads are configured
  + Ensure at least one inititalization task/thread is defined


bsp.h now defines so BSP specific requirements are accounted for:
  + CONFIGURE_NUMBER_OF_TERMIOS_PORTS
  + CONFIGURE_INTERRUPT_STACK_MEMORY

console_reserve_resources and rtems_termios_reserve_resources
are no longer required and considered obsolete.  Calls to
rtems_termios_reserve_resources have been eliminated although
the routine is still there and the body "if 0'ed".

We are very close to having NO reason to modify the
configuration tables in the BSP.  Be warned that eventually
we would like to see the need for BSP_Configuration
eliminated!
2000-05-24 14:36:52 +00:00
Joel Sherrill
1a9006a68a Added a return to the bottom. 2000-05-24 14:23:34 +00:00
Joel Sherrill
8fe36e1c4d Removed some warnings. 2000-05-24 14:21:27 +00:00
Joel Sherrill
625f1a61a1 Remove NO_CPU reference. 2000-05-23 21:31:44 +00:00
Joel Sherrill
7c1a82facd Patch from Jennifer Averett <jennifer.averett@oarcorp.com> to make
this C++ safe.
2000-05-23 15:41:04 +00:00
Joel Sherrill
1b6969373d Added routines addr2ascii.c and ascii2addr.c even though they
are not reentrant.  Eric Norum <eric@cls.usask.ca> at
request of John Cotton <john.cotton@nrc.ca>.
2000-05-23 15:15:19 +00:00
Joel Sherrill
58271f676d Added code to determine RPM CPU type for the host OS. This is
needed to determine that on x86-linux, RPM builds "i386" RPMs
while on Sparc/Solaris, it builds "sparc" RPMs.  Since the
buildall script installs the binutils RPM to build the gccnewlib
RPM, it needs to know this.
2000-05-21 15:23:02 +00:00
Joel Sherrill
f9c0574793 This is an update of all Classic API Message Manager tests to
eliminate code which assumes that 4 * sizeof(unsigned32) == 16)
and that a 16 byte message can be assumed to be 4 unsigned32's.
These assumptions are invalid on target processors that are
not byte-addressable.
2000-05-19 19:13:09 +00:00
Joel Sherrill
9f2e6c6c7d Changed versions. 2000-05-19 19:07:04 +00:00
Joel Sherrill
e22e30858e Use minimum stack size. 2000-05-19 19:06:24 +00:00
Joel Sherrill
6174e27e89 Changed to use minimum stack size. 2000-05-19 19:04:45 +00:00
Joel Sherrill
ef0126bba2 Changed screen to have indeterminate addresses. 2000-05-19 19:04:28 +00:00
Joel Sherrill
9064ad45e1 Made note that Version, CPU, and BSP will vary. 2000-05-19 19:03:41 +00:00
Joel Sherrill
fb4541be87 Removed duplicated call to unmount filesystem. 2000-05-19 19:02:30 +00:00
Joel Sherrill
459d051bcf Corrected direction of comparison in sizeof context overlay. 2000-05-19 19:01:39 +00:00
Joel Sherrill
d88b46fe00 Removed HWAPI reference. 2000-05-17 13:59:36 +00:00
Joel Sherrill
00b772a3a1 Applied patch to wrong place in code. 2000-05-17 13:46:40 +00:00
Joel Sherrill
580c7a94f9 Adding code to test for maximum filesize and skip some tests. 2000-05-16 19:23:16 +00:00
Joel Sherrill
0632b75420 Initialize the variable. 2000-05-16 19:19:47 +00:00
Joel Sherrill
2936e9721f Use sizeof(unsigned32) not 4. 2000-05-16 19:19:18 +00:00
Joel Sherrill
a93350a415 Use CPU_ALIGNMENT not 4. 2000-05-16 19:18:03 +00:00
Joel Sherrill
f48cad9cec Constant of 4 for size is bad. 2000-05-16 19:16:39 +00:00
Joel Sherrill
250edf6f78 Modified to avoid copying too much data. 2000-05-16 19:15:25 +00:00
Joel Sherrill
8531dceb87 Updated to have better comments that can be searched and replaced. 2000-05-16 19:13:46 +00:00
Joel Sherrill
72988cd968 Changed RTEMS_MAXIMUM_NAME_LENGTH to ITRON_MAXIMUM_NAME_LENGTH. 2000-05-16 19:11:33 +00:00
Joel Sherrill
aaf44d495a Do not prototype fileno() if is is a macro. This was tripped on Solaris. 2000-05-16 19:07:19 +00:00
Joel Sherrill
055b7d5fe1 Corrected order of arguments to strncpy(). 2000-05-16 19:06:41 +00:00
Joel Sherrill
078280e025 Use CPU_HEAP_ALIGNMENT not CPU_ALIGNMENT. 2000-05-16 19:05:49 +00:00
Joel Sherrill
ba4b9ffe55 Changed <= to < to prevent overindexing array of file control blocks
(rtems_libio_iops).
2000-05-16 19:04:21 +00:00
Joel Sherrill
51e4268d73 Do not look for C++ compiler if C++ is disabled. 2000-05-16 18:58:58 +00:00
Joel Sherrill
017cb2be68 Do not dereference NULL per bug report from Victor V. Vengerov <vvv@oktet.ru>. 2000-05-16 18:58:18 +00:00
Joel Sherrill
01e0e43f7f Update from Eric Norum to fix dereference of zero and correct
test behavior.  Based on report from Victor V. Vengerov <vvv@oktet.ru>.
2000-05-16 18:44:03 +00:00
Joel Sherrill
405990a70c Added code to check for NULL pointer per bug report from
Victor V. Vengerov <vvv@oktet.ru>.
2000-05-16 18:43:00 +00:00
Joel Sherrill
b6206ccbad Modified to enable thread safe libraries. 2000-05-16 18:39:39 +00:00
Joel Sherrill
a4cb8f0d28 Patch from Eric Norum <eric@cls.usask.ca> to fix bug from
Alexey S. Fadeyev <alexey@vocord.com>.  Discussion follows:

    "Alexey S. Fadeyev" wrote:
    > So if I run this application it tell me :
    > > connect_task: Connection established
    > > accept somthing
    >
    > But if I try to connect to invalid port (3001 for example) it also tell me
    > that connection
    > established but bind_task did't accept it. So how I can find out in
    > connect_task does my connection realy
    > exist ? What type of socket is here? Blocking or non-blocking? I try used
    > select but it did't help - it
    > always tell me from connect_task that connection is valid.
    >

    Yep -- there was a problem alright.  The connect() routine wasn't
    returning an error indication when it should have.  Note that this
    problem was not limited to the loopback driver -- a refused connection
    from any server would return `success'.
2000-05-11 20:37:59 +00:00
Joel Sherrill
6c30cc6f4d changed version to 4.5.0-beta3 2000-05-10 14:48:45 +00:00
Joel Sherrill
3673fbd84f Updated. 2000-05-10 13:35:18 +00:00
Joel Sherrill
405543d683 Corrected to flag that this test is not implemented. 2000-05-10 13:34:15 +00:00
Joel Sherrill
a2a0c9eabd Updated to indicate that it has been tested and that the ulClock
parameter now supports overrides.
2000-05-08 21:50:20 +00:00
Joel Sherrill
b12d10b4e0 RTEMS specific thread support for G++. This implementation
includes RTEMS wrappers invoked by gcc.  The beauty of this
is that it puts the implementation in our hands. :)

It uses a mutex ( semaphore ), and task variables simulating
the "keys" for each task.

Thanks to Rosimildo da Silva <rdasilva@connectel.com> for
submitting this.
2000-05-08 21:21:29 +00:00
cvs2git
b76a825478 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-05-08 21:17:50 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'New file added on 4.5 branch':
    c/src/lib/libc/gxx_wrappers.c
2000-05-08 21:17:51 +00:00
Joel Sherrill
e612d75205 Modified license and copyright terms to be correct. 2000-05-08 20:56:07 +00:00
Joel Sherrill
0921e6917a New file on branch. 2000-05-08 20:38:19 +00:00
cvs2git
66d9d03690 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-05-08 20:36:59 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'New file added on 4.5 branch':
    c/src/lib/libbsp/m68k/mvme167/console/console-recording.c
2000-05-08 20:37:00 +00:00
Joel Sherrill
9d216de2ae Removed uses of RTEMS_ENABLE_HWAPI but left macro in aclocal. 2000-05-08 18:59:18 +00:00
Joel Sherrill
120adc209f Patch cd2401fix.diff from Charles-Antoine Gauthier <charles.gauthier@nrc.ca>
to address problems triggered when switching modes.  His ChangeLog:


  * c/src/lib/libbsp/m68k/mvme167/console/console-recording:
    New file. Console debug info recording functions.
  * c/src/lib/libbsp/m68k/mvme167/console/console.c:
    Try to eliminate garbled characters when the line characteristics are
    changed. Added debug info logging calls
  * c/src/tests/libtests/termios/init.c: Remove sleep calls.

His longer description :)

  This one was hard. I tried a number of approaches, and eventually came
  to the conclusion that one cannot tell when the output FIFO have drained
  completely. Consequently, the driver now includes delay loops that get
  executed when the line discipline is changed. Yuk. I had a look at the
  Linux and FreeBSD drivers; the FreeBSD driver uses delay loops while the
  Linux driver contain warnings about characters getting garbled when the
  line discipline is changed.

  The new driver only re-initializes the cd2401 if some registers need to
  change, otherwise, the chip is left alone. This is equivalent to caching
  the previous setting and only changing things if they need to be. The
  code is kind of ugly, but what can you do. The delay loops are only used
  if the chip must be re-initialized.

  Optional instrumentation that records what the driver is doing is
  provided. It should be obvious how to enable it and how to use it. It's
  not the best, but it got the job done.

  I ran the termios test. The delay loops I had introduced are no longer
  necessary, so I took them out. The patch includes that change. The test
  re-initializes the chip whenever the canonical input test (test 4) is
  run THE FIRST TIME OR AFTER THE LINE WAS RESET (test 1). The test did
  not garble any characters when the chip was re-initialized (or when it
  was not) while running at 9600 bsp. I therefore think that I have a
  solution.
2000-05-08 17:27:46 +00:00
Joel Sherrill
3a0218ed0b Update from John Cotton <john.cotton@nrc.ca> which includes
a number of short fixes pointed out by Eric Norum.
2000-05-08 17:22:38 +00:00
Joel Sherrill
57ca6d09f9 Changed XXX into comment. 2000-05-05 21:23:45 +00:00
Joel Sherrill
11a46a0dfd These tests should have been fairly clean examples. Instead they
showed their roots as tests and included numerous references to
test support routines.
2000-05-05 12:58:06 +00:00
Joel Sherrill
a1a19f6c40 Corrected typo (ifdef/define). Also spotted overnight by Ralf. :) 2000-05-05 12:57:14 +00:00
Joel Sherrill
c6883bda03 Added inet_netof.c per patch from Eric Norum <eric@cls.usask.ca> 2000-05-05 01:30:41 +00:00
Joel Sherrill
af9b39e269 Renamed the CONFIGURE_TEST_NEEDS configuration constants to
CONFIGURE_APPLICATION_NEEDS.
2000-05-04 20:49:22 +00:00
Joel Sherrill
f74de9c028 Removed references to CONFIGURE_SPTEST and CONFIGURE_TMTEST.
Renamed CONFIGURE_MPTEST to CONFIGURE_MP_APPLICATION to properly
reflect its usage.
2000-05-04 14:57:48 +00:00
Joel Sherrill
f747eca890 Added setup.cache. 2000-05-04 14:17:26 +00:00
Joel Sherrill
5a6d98e43b Made better package names. 2000-05-04 14:16:28 +00:00
Joel Sherrill
d123a04b09 Updated versions. 2000-05-04 14:16:20 +00:00
Joel Sherrill
de01ce7dea binutils subdirectory is currently ignored. binutils is built
as a subpackage of gnatnewlib.
2000-05-04 14:15:53 +00:00
Joel Sherrill
a4b7b82e8a Updated to new versions. 2000-05-04 14:15:15 +00:00
Joel Sherrill
45e8d6c1ad Better way to check which RTEMS RPMs are installed. 2000-05-04 14:15:07 +00:00
Joel Sherrill
4d42c4394f Significantly enhanced checks for CPU type and floating point format
supported.
2000-05-04 14:09:30 +00:00
Joel Sherrill
9c8d1edf6a Fixed typo. 2000-05-04 14:08:49 +00:00
Joel Sherrill
57b6590b1b Does not really support multiprocessing so do not even try to
build it.
2000-05-04 14:08:32 +00:00
Joel Sherrill
9fb78b8039 Update from Eric Norum <eric@cls.usask.ca>. 2000-05-03 14:12:51 +00:00
cvs2git
45e4cc77c6 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-05-03 13:55:42 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'Added on 4.5 branch.':
    c/src/librpc/src/rpc/rtems_portmapper.c
    c/src/librpc/src/rpc/rtems_rpc.c
2000-05-03 13:55:43 +00:00
Joel Sherrill
305f03339c Patch from Eric Norum <eric@cls.usask.ca> to make task variables maintain
a global and private version of each task variable.
2000-05-01 17:31:29 +00:00
Joel Sherrill
fee06c867b Patch rtems-4.5.0-rc-19.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that:


 This is the patch I had announced earlier today:

 It addresses:
    * make dist - support (In a configured build tree, cd .../librpc; make
       dist now packages a complete tarball)
    * man-pages - support
    * missing .cvsignores
    * missing Makefile.ams

 It does not address the portability issue I mentioned earlier.

 To apply the patch:
    cd rtems
    patch -p1 < rtems-4.5.0-rc-19.diff

    cvs add c/src/librpc/include/rpcsvc/Makefile.am
    cvs add c/src/librpc/include/rpcsvc/.cvsignore
    cvs add c/src/librpc/src/rpc/PSD.doc/Makefile.am
    cvs add c/src/librpc/src/rpc/PSD.doc/.cvsignore

    cd c/src/librpc
    ../../../bootstrap
2000-05-01 15:00:53 +00:00
cvs2git
180126d2fe This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-05-01 14:57:46 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'Added on 4.5-branch':
    c/src/librpc/include/rpcsvc/.cvsignore
    c/src/librpc/include/rpcsvc/Makefile.am
    c/src/librpc/src/rpc/.cvsignore
    c/src/librpc/src/rpc/PSD.doc/.cvsignore
    c/src/librpc/src/rpc/PSD.doc/Makefile.am
    c/src/librpc/src/xdr/.cvsignore
2000-05-01 14:57:47 +00:00
Joel Sherrill
2033706715 Fixed weird compilation problem. Why was it including FLEEB. 2000-04-29 21:58:47 +00:00
Joel Sherrill
c7b43795b6 Uncommented line so libxdr is picked up. 2000-04-29 19:47:14 +00:00
Joel Sherrill
8e743b739b Significant update of librpc to include XDR and more RPC
functionality from FreeBSD.  This update is from Eric Norum
<eric@cls.usask.ca> and he reports that both his RPC netdemo
program and an HP Ethernet/GPIB adapter that makes heavy
use of RPC/XDR for its communication protocol is working with EPICS.
2000-04-29 19:39:09 +00:00
cvs2git
be363a2dd3 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-04-29 19:13:19 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'New files added as part of librpc upgrade.':
    c/src/librpc/README_RTEMS
    c/src/librpc/include/rpc/auth_des.h
    c/src/librpc/include/rpc/auth_unix.h
    c/src/librpc/include/rpc/des.h
    c/src/librpc/include/rpc/des_crypt.h
    c/src/librpc/include/rpc/pmap_clnt.h
    c/src/librpc/include/rpc/pmap_prot.h
    c/src/librpc/include/rpc/pmap_rmt.h
    c/src/librpc/include/rpc/rpc_com.h
    c/src/librpc/include/rpcsvc/bootparam_prot.x
    c/src/librpc/include/rpcsvc/crypt.x
    c/src/librpc/include/rpcsvc/key_prot.x
    c/src/librpc/include/rpcsvc/klm_prot.x
    c/src/librpc/include/rpcsvc/mount.x
    c/src/librpc/include/rpcsvc/nfs_prot.x
    c/src/librpc/include/rpcsvc/nis.x
    c/src/librpc/include/rpcsvc/nis_cache.x
    c/src/librpc/include/rpcsvc/nis_callback.x
    c/src/librpc/include/rpcsvc/nis_db.h
    c/src/librpc/include/rpcsvc/nis_object.x
    c/src/librpc/include/rpcsvc/nis_tags.h
    c/src/librpc/include/rpcsvc/nislib.h
    c/src/librpc/include/rpcsvc/nlm_prot.x
    c/src/librpc/include/rpcsvc/pmap_prot.x
    c/src/librpc/include/rpcsvc/rex.x
    c/src/librpc/include/rpcsvc/rnusers.x
    c/src/librpc/include/rpcsvc/rquota.x
    c/src/librpc/include/rpcsvc/rstat.x
    c/src/librpc/include/rpcsvc/rwall.x
    c/src/librpc/include/rpcsvc/sm_inter.x
    c/src/librpc/include/rpcsvc/spray.x
    c/src/librpc/include/rpcsvc/yp.x
    c/src/librpc/include/rpcsvc/yp_prot.h
    c/src/librpc/include/rpcsvc/ypclnt.h
    c/src/librpc/include/rpcsvc/yppasswd.x
    c/src/librpc/include/rpcsvc/ypupdate_prot.x
    c/src/librpc/include/rpcsvc/ypxfrd.x
    c/src/librpc/src/rpc/DISCLAIMER
    c/src/librpc/src/rpc/Makefile.am
    c/src/librpc/src/rpc/PSD.doc/nfs.rfc.ms
    c/src/librpc/src/rpc/PSD.doc/rpc.prog.ms
    c/src/librpc/src/rpc/PSD.doc/rpc.rfc.ms
    c/src/librpc/src/rpc/PSD.doc/rpcgen.ms
    c/src/librpc/src/rpc/PSD.doc/xdr.nts.ms
    c/src/librpc/src/rpc/PSD.doc/xdr.rfc.ms
    c/src/librpc/src/rpc/README
    c/src/librpc/src/rpc/auth_des.c
    c/src/librpc/src/rpc/auth_none.c
    c/src/librpc/src/rpc/auth_time.c
    c/src/librpc/src/rpc/auth_unix.c
    c/src/librpc/src/rpc/authdes_prot.c
    c/src/librpc/src/rpc/authunix_prot.c
    c/src/librpc/src/rpc/bindresvport.3
    c/src/librpc/src/rpc/bindresvport.c
    c/src/librpc/src/rpc/clnt_generic.c
    c/src/librpc/src/rpc/clnt_perror.c
    c/src/librpc/src/rpc/clnt_raw.c
    c/src/librpc/src/rpc/clnt_simple.c
    c/src/librpc/src/rpc/clnt_tcp.c
    c/src/librpc/src/rpc/clnt_udp.c
    c/src/librpc/src/rpc/clnt_unix.c
    c/src/librpc/src/rpc/crypt_client.c
    c/src/librpc/src/rpc/des_crypt.3
    c/src/librpc/src/rpc/des_crypt.c
    c/src/librpc/src/rpc/des_soft.c
    c/src/librpc/src/rpc/get_myaddress.c
    c/src/librpc/src/rpc/getpublickey.c
    c/src/librpc/src/rpc/getrpcent.3
    c/src/librpc/src/rpc/getrpcent.c
    c/src/librpc/src/rpc/getrpcport.3
    c/src/librpc/src/rpc/getrpcport.c
    c/src/librpc/src/rpc/key_call.c
    c/src/librpc/src/rpc/key_prot_xdr.c
    c/src/librpc/src/rpc/netname.c
    c/src/librpc/src/rpc/netnamer.c
    c/src/librpc/src/rpc/pmap_clnt.c
    c/src/librpc/src/rpc/pmap_getmaps.c
    c/src/librpc/src/rpc/pmap_getport.c
    c/src/librpc/src/rpc/pmap_prot.c
    c/src/librpc/src/rpc/pmap_prot2.c
    c/src/librpc/src/rpc/pmap_rmt.c
    c/src/librpc/src/rpc/publickey.3
    c/src/librpc/src/rpc/publickey.5
    c/src/librpc/src/rpc/rpc.3
    c/src/librpc/src/rpc/rpc.5
    c/src/librpc/src/rpc/rpc_callmsg.c
    c/src/librpc/src/rpc/rpc_commondata.c
    c/src/librpc/src/rpc/rpc_dtablesize.c
    c/src/librpc/src/rpc/rpc_prot.c
    c/src/librpc/src/rpc/rpc_secure.3
    c/src/librpc/src/rpc/rpcdname.c
    c/src/librpc/src/rpc/rstat.1
    c/src/librpc/src/rpc/rstat_svc.8
    c/src/librpc/src/rpc/rtime.3
    c/src/librpc/src/rpc/rtime.c
    c/src/librpc/src/rpc/svc.c
    c/src/librpc/src/rpc/svc_auth.c
    c/src/librpc/src/rpc/svc_auth_des.c
    c/src/librpc/src/rpc/svc_auth_unix.c
    c/src/librpc/src/rpc/svc_raw.c
    c/src/librpc/src/rpc/svc_run.c
    c/src/librpc/src/rpc/svc_simple.c
    c/src/librpc/src/rpc/svc_tcp.c
    c/src/librpc/src/rpc/svc_udp.c
    c/src/librpc/src/rpc/svc_unix.c
    c/src/librpc/src/xdr/Makefile.am
    c/src/librpc/src/xdr/xdr.3
    c/src/librpc/src/xdr/xdr.c
    c/src/librpc/src/xdr/xdr_array.c
    c/src/librpc/src/xdr/xdr_float.c
    c/src/librpc/src/xdr/xdr_mem.c
    c/src/librpc/src/xdr/xdr_rec.c
    c/src/librpc/src/xdr/xdr_reference.c
    c/src/librpc/src/xdr/xdr_sizeof.c
    c/src/librpc/src/xdr/xdr_stdio.c
2000-04-29 19:13:20 +00:00
Joel Sherrill
b797468c04 Removed as part of merging RPC/XDR upgrade from Eric Norum. 2000-04-29 19:09:48 +00:00
Joel Sherrill
cd7024d520 removed unused variables. 2000-04-29 14:59:31 +00:00
Joel Sherrill
d554ca0bf9 Patch from John M. Mills <jmills@tga.com> to do some cleanup and use
-O4 at both debug and optimized levels.  There is still a speed setting
problem but the sample tests run.
2000-04-28 19:51:00 +00:00
Joel Sherrill
a06c5f5b22 Temporarily disable libxdr until the complete patch is in. 2000-04-28 19:45:20 +00:00
Joel Sherrill
a974d6a0c9 Patch rtems-4.5-rc-18-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
The patch below is a work-around to the "make/gmake" problem.

  This only works if gmake-only users set MAKE=gmake at configuration time
  or explicitly set it from the environment at make-time.

  IIRC, this should be sufficient for ./bit users, because it explicitly
  exports MAKE.
2000-04-28 19:44:39 +00:00
Joel Sherrill
42b7ffaeb6 Updated to new versions. 2000-04-28 18:32:16 +00:00
Joel Sherrill
92bc357886 Modifed to properly support aliased that support multiprocessing. 2000-04-28 18:31:43 +00:00
Joel Sherrill
2f82b35cee New files from Eric Norum missed in previous commit. 2000-04-28 17:44:03 +00:00
cvs2git
6ff83a45b0 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-04-28 17:42:16 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'New files added on 4.5 branch.':
    c/src/libnetworking/memory.h
    c/src/libnetworking/sys/un.h
2000-04-28 17:42:17 +00:00
Joel Sherrill
ccbbfe3be2 Patch from "Alan Harry" <alan@crossware.com> to fix a problem where
the wrong variables were being cleared.
2000-04-27 20:11:05 +00:00
Joel Sherrill
fc1459f560 Patch from Eric Norum <eric@cls.usask.ca> to initiate upgrading
librpc to a more complete version.
2000-04-27 18:24:51 +00:00
Joel Sherrill
92ba047699 Patches rtems-rc-4.5.0-16-cvs.diff and rtems-rc-4.5.0-17-cvs.diff
from Ralf Corsepius <corsepiu@faw.uni-ulm.de> that address the following:

  * NoSource: 0, 1 in rpm-specs does not work anymore under SuSE-6.4
    (rpm-3.0.4), putting each NoSource: onto a separate line however seems
    to work. Unfortunately, I don't know the actual cause for this, esp. if
    SuSE broke it or if rpm-specs specification has changed (i.e.
    Redhat broke it up).
  * Add *.spec to several .cvsignores (Prevents cvs from complaining about
    <target>*.spec within the source-tree).
2000-04-18 13:18:34 +00:00
Joel Sherrill
8812023ee9 Patches rtems-rc-4.5.0-16-cvs.diff and rtems-rc-4.5.0-17-cvs.diff
from Ralf Corsepius <corsepiu@faw.uni-ulm.de> that address the following:

  * NoSource: 0, 1 in rpm-specs does not work anymore under SuSE-6.4
    (rpm-3.0.4), putting each NoSource: onto a separate line however seems
    to work. Unfortunately, I don't know the actual cause for this, esp. if
    SuSE broke it or if rpm-specs specification has changed (i.e.
    Redhat broke it up).
  * Add *.spec to several .cvsignores (Prevents cvs from complaining about
    <target>*.spec within the source-tree).
2000-04-18 13:10:39 +00:00
Joel Sherrill
8f5da34c1c Patch rtems-rc-4.5.0-15-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that addresses configuration issues for posix/linux under SuSE-6.4:

    Unbelievable as it is, SuSE has started to use i486-suse-linux as
    canonicalization triple which breaks out linux/posix/unix.
2000-04-18 13:00:20 +00:00
Joel Sherrill
a17495450f Avoid use of C++ keyword (or) as structure element name. 2000-04-18 12:57:47 +00:00
Joel Sherrill
97ad1a52e4 After investigating a problem reported by Franck Julien <FranckJ@cxr.fr>,
I discovered that when specifying -m68000 and -msoft-float to gcc 2.95.2,
it decides that the proper multilib variant is the default one which is
compiled for the m68020 and hardware floating point.  This appears to be
because there is no 68000/soft-float library variant.  This problem
applies to all m68000 class CPUs options including -m68302.
2000-04-16 17:14:36 +00:00
Joel Sherrill
dda3dc9ae7 Patch rtems-rc-4.5.0-14-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
which resolves a serious problem with the user-level RTEMS Makefiles
reported by Eric Norum <eric@cls.usask.ca>.
2000-04-16 17:04:17 +00:00
Joel Sherrill
fe8e18a98d Patch from Eric Norum <eric@cls.usask.ca> to modify the generic
m68k start code to setup the "environ" variable properly.  With
this patch, his EPICS application that runs on the gen68360
also runs on the mvmv167.
2000-04-16 17:01:18 +00:00
Joel Sherrill
e283b9098a changed version to 4.5.0-beta2 2000-04-13 16:51:12 +00:00
cvs2git
48e40a33a0 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-04-13 16:47:57 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'Patch rtems-rc-4.5.0-13-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.':
    .cvsignore
    c/.cvsignore
    c/make/.cvsignore
    c/src/.cvsignore
    c/src/exec/.cvsignore
    c/src/exec/itron/.cvsignore
    c/src/exec/itron/include/.cvsignore
    c/src/exec/itron/include/itronsys/.cvsignore
    c/src/exec/itron/include/rtems/.cvsignore
    c/src/exec/itron/include/rtems/itron/.cvsignore
    c/src/exec/itron/inline/.cvsignore
    c/src/exec/itron/inline/rtems/.cvsignore
    c/src/exec/itron/inline/rtems/itron/.cvsignore
    c/src/exec/itron/src/.cvsignore
    c/src/exec/posix/.cvsignore
    c/src/exec/posix/include/.cvsignore
    c/src/exec/posix/include/rtems/.cvsignore
    c/src/exec/posix/include/rtems/posix/.cvsignore
    c/src/exec/posix/include/sys/.cvsignore
    c/src/exec/posix/inline/.cvsignore
    c/src/exec/posix/inline/rtems/.cvsignore
    c/src/exec/posix/inline/rtems/posix/.cvsignore
    c/src/exec/posix/macros/.cvsignore
    c/src/exec/posix/macros/rtems/.cvsignore
    c/src/exec/posix/macros/rtems/posix/.cvsignore
    c/src/exec/posix/optman/.cvsignore
    c/src/exec/posix/src/.cvsignore
    c/src/exec/rtems/.cvsignore
    c/src/exec/rtems/include/.cvsignore
    c/src/exec/rtems/include/rtems/.cvsignore
    c/src/exec/rtems/include/rtems/rtems/.cvsignore
    c/src/exec/rtems/inline/.cvsignore
    c/src/exec/rtems/inline/rtems/.cvsignore
    c/src/exec/rtems/inline/rtems/rtems/.cvsignore
    c/src/exec/rtems/macros/.cvsignore
    c/src/exec/rtems/macros/rtems/.cvsignore
    c/src/exec/rtems/macros/rtems/rtems/.cvsignore
    c/src/exec/rtems/optman/.cvsignore
    c/src/exec/rtems/src/.cvsignore
    c/src/exec/sapi/.cvsignore
    c/src/exec/sapi/include/.cvsignore
    c/src/exec/sapi/include/rtems/.cvsignore
    c/src/exec/sapi/inline/.cvsignore
    c/src/exec/sapi/inline/rtems/.cvsignore
    c/src/exec/sapi/macros/.cvsignore
    c/src/exec/sapi/macros/rtems/.cvsignore
    c/src/exec/sapi/optman/.cvsignore
    c/src/exec/sapi/src/.cvsignore
    c/src/exec/score/.cvsignore
    c/src/exec/score/cpu/.cvsignore
    c/src/exec/score/cpu/a29k/.cvsignore
    c/src/exec/score/cpu/a29k/rtems/.cvsignore
    c/src/exec/score/cpu/a29k/rtems/score/.cvsignore
    c/src/exec/score/cpu/hppa1.1/.cvsignore
    c/src/exec/score/cpu/hppa1.1/rtems/.cvsignore
    c/src/exec/score/cpu/hppa1.1/rtems/score/.cvsignore
    c/src/exec/score/cpu/i386/.cvsignore
    c/src/exec/score/cpu/i386/rtems/.cvsignore
    c/src/exec/score/cpu/i386/rtems/score/.cvsignore
    c/src/exec/score/cpu/i960/.cvsignore
    c/src/exec/score/cpu/i960/rtems/.cvsignore
    c/src/exec/score/cpu/i960/rtems/score/.cvsignore
    c/src/exec/score/cpu/m68k/.cvsignore
    c/src/exec/score/cpu/m68k/rtems/.cvsignore
    c/src/exec/score/cpu/m68k/rtems/score/.cvsignore
    c/src/exec/score/cpu/mips64orion/.cvsignore
    c/src/exec/score/cpu/mips64orion/rtems/.cvsignore
    c/src/exec/score/cpu/mips64orion/rtems/score/.cvsignore
    c/src/exec/score/cpu/no_cpu/.cvsignore
    c/src/exec/score/cpu/no_cpu/rtems/.cvsignore
    c/src/exec/score/cpu/no_cpu/rtems/score/.cvsignore
    c/src/exec/score/cpu/powerpc/.cvsignore
    c/src/exec/score/cpu/powerpc/new_exception_processing/.cvsignore
    c/src/exec/score/cpu/powerpc/old_exception_processing/.cvsignore
    c/src/exec/score/cpu/powerpc/shared/.cvsignore
    c/src/exec/score/cpu/sh/.cvsignore
    c/src/exec/score/cpu/sh/rtems/.cvsignore
    c/src/exec/score/cpu/sh/rtems/score/.cvsignore
    c/src/exec/score/cpu/sparc/.cvsignore
    c/src/exec/score/cpu/sparc/rtems/.cvsignore
    c/src/exec/score/cpu/sparc/rtems/score/.cvsignore
    c/src/exec/score/cpu/unix/.cvsignore
    c/src/exec/score/cpu/unix/rtems/.cvsignore
    c/src/exec/score/cpu/unix/rtems/score/.cvsignore
    c/src/exec/score/include/.cvsignore
    c/src/exec/score/include/rtems/.cvsignore
    c/src/exec/score/include/rtems/score/.cvsignore
    c/src/exec/score/inline/.cvsignore
    c/src/exec/score/inline/rtems/.cvsignore
    c/src/exec/score/inline/rtems/score/.cvsignore
    c/src/exec/score/macros/.cvsignore
    c/src/exec/score/macros/rtems/.cvsignore
    c/src/exec/score/macros/rtems/score/.cvsignore
    c/src/exec/score/src/.cvsignore
    c/src/exec/wrapup/.cvsignore
    c/src/exec/wrapup/itron/.cvsignore
    c/src/exec/wrapup/posix/.cvsignore
    c/src/exec/wrapup/rtems/.cvsignore
    c/src/lib/.cvsignore
    c/src/lib/include/.cvsignore
    c/src/lib/include/motorola/.cvsignore
    c/src/lib/include/sys/.cvsignore
    c/src/lib/include/zilog/.cvsignore
    c/src/lib/libbsp/.cvsignore
    c/src/lib/libbsp/a29k/.cvsignore
    c/src/lib/libbsp/a29k/portsw/.cvsignore
    c/src/lib/libbsp/a29k/portsw/console/.cvsignore
    c/src/lib/libbsp/a29k/portsw/include/.cvsignore
    c/src/lib/libbsp/a29k/portsw/shmsupp/.cvsignore
    c/src/lib/libbsp/a29k/portsw/start/.cvsignore
    c/src/lib/libbsp/a29k/portsw/startup/.cvsignore
    c/src/lib/libbsp/a29k/portsw/wrapup/.cvsignore
    c/src/lib/libbsp/bare/.cvsignore
    c/src/lib/libbsp/bare/include/.cvsignore
    c/src/lib/libbsp/hppa1.1/.cvsignore
    c/src/lib/libbsp/hppa1.1/pxfl/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/include/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/shmsupp/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/start/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/startup/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/tools/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/tty/.cvsignore
    c/src/lib/libbsp/hppa1.1/simhppa/wrapup/.cvsignore
    c/src/lib/libbsp/i386/.cvsignore
    c/src/lib/libbsp/i386/i386ex/.cvsignore
    c/src/lib/libbsp/i386/i386ex/clock/.cvsignore
    c/src/lib/libbsp/i386/i386ex/console/.cvsignore
    c/src/lib/libbsp/i386/i386ex/include/.cvsignore
    c/src/lib/libbsp/i386/i386ex/network/.cvsignore
    c/src/lib/libbsp/i386/i386ex/start/.cvsignore
    c/src/lib/libbsp/i386/i386ex/startup/.cvsignore
    c/src/lib/libbsp/i386/i386ex/timer/.cvsignore
    c/src/lib/libbsp/i386/i386ex/wrapup/.cvsignore
    c/src/lib/libbsp/i386/pc386/.cvsignore
    c/src/lib/libbsp/i386/pc386/3c509/.cvsignore
    c/src/lib/libbsp/i386/pc386/clock/.cvsignore
    c/src/lib/libbsp/i386/pc386/console/.cvsignore
    c/src/lib/libbsp/i386/pc386/include/.cvsignore
    c/src/lib/libbsp/i386/pc386/ne2000/.cvsignore
    c/src/lib/libbsp/i386/pc386/start/.cvsignore
    c/src/lib/libbsp/i386/pc386/startup/.cvsignore
    c/src/lib/libbsp/i386/pc386/timer/.cvsignore
    c/src/lib/libbsp/i386/pc386/tools/.cvsignore
    c/src/lib/libbsp/i386/pc386/wd8003/.cvsignore
    c/src/lib/libbsp/i386/pc386/wrapup/.cvsignore
    c/src/lib/libbsp/i386/shared/.cvsignore
    c/src/lib/libbsp/i386/shared/comm/.cvsignore
    c/src/lib/libbsp/i386/shared/io/.cvsignore
    c/src/lib/libbsp/i386/shared/irq/.cvsignore
    c/src/lib/libbsp/i386/shared/pci/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/clock/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/console/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/include/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/network/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/start/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/startup/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/timer/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/debug_c/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/dos_sup/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/network_ada/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/network_ada/adasockets/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/network_ada/listener/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/network_ada/tcprelay/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/tools/ts_1325_ada/.cvsignore
    c/src/lib/libbsp/i386/ts_386ex/wrapup/.cvsignore
    c/src/lib/libbsp/i960/.cvsignore
    c/src/lib/libbsp/i960/cvme961/.cvsignore
    c/src/lib/libbsp/i960/cvme961/clock/.cvsignore
    c/src/lib/libbsp/i960/cvme961/console/.cvsignore
    c/src/lib/libbsp/i960/cvme961/include/.cvsignore
    c/src/lib/libbsp/i960/cvme961/shmsupp/.cvsignore
    c/src/lib/libbsp/i960/cvme961/start/.cvsignore
    c/src/lib/libbsp/i960/cvme961/startup/.cvsignore
    c/src/lib/libbsp/i960/cvme961/timer/.cvsignore
    c/src/lib/libbsp/i960/cvme961/wrapup/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/clock/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/console/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/include/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/shmsupp/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/startup/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/timer/.cvsignore
    c/src/lib/libbsp/i960/rxgen960/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/clock/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/console/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/include/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/spurious/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/start/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/startup/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/timer/.cvsignore
    c/src/lib/libbsp/m68k/dmv152/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/efi332/.cvsignore
    c/src/lib/libbsp/m68k/efi332/clock/.cvsignore
    c/src/lib/libbsp/m68k/efi332/console/.cvsignore
    c/src/lib/libbsp/m68k/efi332/include/.cvsignore
    c/src/lib/libbsp/m68k/efi332/spurious/.cvsignore
    c/src/lib/libbsp/m68k/efi332/start/.cvsignore
    c/src/lib/libbsp/m68k/efi332/startup/.cvsignore
    c/src/lib/libbsp/m68k/efi332/timer/.cvsignore
    c/src/lib/libbsp/m68k/efi332/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/clock/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/console/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/include/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/spurious/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/start/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/startup/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/timer/.cvsignore
    c/src/lib/libbsp/m68k/efi68k/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/clock/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/console/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/include/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/start/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/startup/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/timer/.cvsignore
    c/src/lib/libbsp/m68k/gen68302/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/clock/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/console/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/include/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/start/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/startup/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/timer/.cvsignore
    c/src/lib/libbsp/m68k/gen68340/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/clock/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/console/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/include/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/network/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/start/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/startup/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/timer/.cvsignore
    c/src/lib/libbsp/m68k/gen68360/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/idp/.cvsignore
    c/src/lib/libbsp/m68k/idp/clock/.cvsignore
    c/src/lib/libbsp/m68k/idp/console/.cvsignore
    c/src/lib/libbsp/m68k/idp/include/.cvsignore
    c/src/lib/libbsp/m68k/idp/start/.cvsignore
    c/src/lib/libbsp/m68k/idp/startup/.cvsignore
    c/src/lib/libbsp/m68k/idp/timer/.cvsignore
    c/src/lib/libbsp/m68k/idp/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/clock/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/console/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/include/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/shmsupp/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/start/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/startup/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/timer/.cvsignore
    c/src/lib/libbsp/m68k/mvme136/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/clock/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/console/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/include/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/start/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/startup/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/timer/.cvsignore
    c/src/lib/libbsp/m68k/mvme147/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/clock/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/console/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/include/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/shmsupp/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/start/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/startup/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/timer/.cvsignore
    c/src/lib/libbsp/m68k/mvme147s/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/clock/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/console/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/consolex/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/include/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/start/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/startup/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/timer/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/tod/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/tools/.cvsignore
    c/src/lib/libbsp/m68k/mvme162/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/clock/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/console/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/fatal/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/include/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/network/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/start/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/startup/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/timer/.cvsignore
    c/src/lib/libbsp/m68k/mvme167/times
    c/src/lib/libbsp/m68k/mvme167/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/clock/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/console/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/include/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/start/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/startup/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/timer/.cvsignore
    c/src/lib/libbsp/m68k/ods68302/wrapup/.cvsignore
    c/src/lib/libbsp/m68k/shared/.cvsignore
    c/src/lib/libbsp/mips/p4000/liblnk/.cvsignore
    c/src/lib/libbsp/mips64orion/.cvsignore
    c/src/lib/libbsp/mips64orion/p4000/.cvsignore
    c/src/lib/libbsp/mips64orion/p4000/console/.cvsignore
    c/src/lib/libbsp/mips64orion/p4000/include/.cvsignore
    c/src/lib/libbsp/mips64orion/p4000/liblnk/.cvsignore
    c/src/lib/libbsp/mips64orion/p4000/start/.cvsignore
    c/src/lib/libbsp/mips64orion/p4000/startup/.cvsignore
    c/src/lib/libbsp/mips64orion/p4000/wrapup/.cvsignore
    c/src/lib/libbsp/no_cpu/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/clock/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/console/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/include/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/shmsupp/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/startup/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/timer/.cvsignore
    c/src/lib/libbsp/no_cpu/no_bsp/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/clock/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/console/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/include/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/scv64/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/sonic/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/start/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/startup/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/timer/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/tod/.cvsignore
    c/src/lib/libbsp/powerpc/dmv177/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/canbus/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/console/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/include/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/network/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/start/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/startup/.cvsignore
    c/src/lib/libbsp/powerpc/eth_comm/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/helas403/.cvsignore
    c/src/lib/libbsp/powerpc/helas403/dlentry/.cvsignore
    c/src/lib/libbsp/powerpc/helas403/flashentry/.cvsignore
    c/src/lib/libbsp/powerpc/helas403/include/.cvsignore
    c/src/lib/libbsp/powerpc/helas403/startup/.cvsignore
    c/src/lib/libbsp/powerpc/helas403/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/clock/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/console/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/include/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/irq/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/motorola/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/openpic/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/pci/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/residual/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/start/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/startup/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/vectors/.cvsignore
    c/src/lib/libbsp/powerpc/motorola_powerpc/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/papyrus/.cvsignore
    c/src/lib/libbsp/powerpc/papyrus/dlentry/.cvsignore
    c/src/lib/libbsp/powerpc/papyrus/flashentry/.cvsignore
    c/src/lib/libbsp/powerpc/papyrus/include/.cvsignore
    c/src/lib/libbsp/powerpc/papyrus/startup/.cvsignore
    c/src/lib/libbsp/powerpc/papyrus/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/clock/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/console/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/include/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/network/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/nvram/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/pci/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/start/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/startup/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/timer/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/tod/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/universe/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/vectors/.cvsignore
    c/src/lib/libbsp/powerpc/ppcn_60x/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/psim/.cvsignore
    c/src/lib/libbsp/powerpc/psim/clock/.cvsignore
    c/src/lib/libbsp/powerpc/psim/console/.cvsignore
    c/src/lib/libbsp/powerpc/psim/include/.cvsignore
    c/src/lib/libbsp/powerpc/psim/shmsupp/.cvsignore
    c/src/lib/libbsp/powerpc/psim/start/.cvsignore
    c/src/lib/libbsp/powerpc/psim/startup/.cvsignore
    c/src/lib/libbsp/powerpc/psim/timer/.cvsignore
    c/src/lib/libbsp/powerpc/psim/tools/.cvsignore
    c/src/lib/libbsp/powerpc/psim/vectors/.cvsignore
    c/src/lib/libbsp/powerpc/psim/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/PCI_bus/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/clock/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/console/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/include/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/start/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/startup/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/timer/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/tod/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/vectors/.cvsignore
    c/src/lib/libbsp/powerpc/score603e/wrapup/.cvsignore
    c/src/lib/libbsp/powerpc/shared/.cvsignore
    c/src/lib/libbsp/powerpc/shared/bootloader/.cvsignore
    c/src/lib/libbsp/powerpc/shared/clock/.cvsignore
    c/src/lib/libbsp/powerpc/shared/console/.cvsignore
    c/src/lib/libbsp/powerpc/shared/include/.cvsignore
    c/src/lib/libbsp/powerpc/shared/irq/.cvsignore
    c/src/lib/libbsp/powerpc/shared/motorola/.cvsignore
    c/src/lib/libbsp/powerpc/shared/openpic/.cvsignore
    c/src/lib/libbsp/powerpc/shared/pci/.cvsignore
    c/src/lib/libbsp/powerpc/shared/residual/.cvsignore
    c/src/lib/libbsp/powerpc/shared/start/.cvsignore
    c/src/lib/libbsp/powerpc/shared/startup/.cvsignore
    c/src/lib/libbsp/powerpc/shared/vectors/.cvsignore
    c/src/lib/libbsp/sh/.cvsignore
    c/src/lib/libbsp/sh/gensh1/.cvsignore
    c/src/lib/libbsp/sh/gensh1/console/.cvsignore
    c/src/lib/libbsp/sh/gensh1/include/.cvsignore
    c/src/lib/libbsp/sh/gensh1/scitab/.cvsignore
    c/src/lib/libbsp/sh/gensh1/start/.cvsignore
    c/src/lib/libbsp/sh/gensh1/startup/.cvsignore
    c/src/lib/libbsp/sh/gensh1/wrapup/.cvsignore
    c/src/lib/libbsp/sh/gensh2/.cvsignore
    c/src/lib/libbsp/sh/gensh2/console/.cvsignore
    c/src/lib/libbsp/sh/gensh2/include/.cvsignore
    c/src/lib/libbsp/sh/gensh2/scitab/.cvsignore
    c/src/lib/libbsp/sh/gensh2/start/.cvsignore
    c/src/lib/libbsp/sh/gensh2/startup/.cvsignore
    c/src/lib/libbsp/sh/gensh2/wrapup/.cvsignore
    c/src/lib/libbsp/sh/shared/.cvsignore
    c/src/lib/libbsp/shmdr/.cvsignore
    c/src/lib/libbsp/sparc/.cvsignore
    c/src/lib/libbsp/sparc/erc32/.cvsignore
    c/src/lib/libbsp/sparc/erc32/clock/.cvsignore
    c/src/lib/libbsp/sparc/erc32/console/.cvsignore
    c/src/lib/libbsp/sparc/erc32/gnatsupp/.cvsignore
    c/src/lib/libbsp/sparc/erc32/include/.cvsignore
    c/src/lib/libbsp/sparc/erc32/start/.cvsignore
    c/src/lib/libbsp/sparc/erc32/startup/.cvsignore
    c/src/lib/libbsp/sparc/erc32/timer/.cvsignore
    c/src/lib/libbsp/sparc/erc32/tools/.cvsignore
    c/src/lib/libbsp/sparc/erc32/wrapup/.cvsignore
    c/src/lib/libbsp/unix/.cvsignore
    c/src/lib/libbsp/unix/posix/.cvsignore
    c/src/lib/libbsp/unix/posix/clock/.cvsignore
    c/src/lib/libbsp/unix/posix/console/.cvsignore
    c/src/lib/libbsp/unix/posix/include/.cvsignore
    c/src/lib/libbsp/unix/posix/shmsupp/.cvsignore
    c/src/lib/libbsp/unix/posix/startup/.cvsignore
    c/src/lib/libbsp/unix/posix/timer/.cvsignore
    c/src/lib/libbsp/unix/posix/tools/.cvsignore
    c/src/lib/libbsp/unix/posix/wrapup/.cvsignore
    c/src/lib/libc/.cvsignore
    c/src/lib/libcpu/.cvsignore
    c/src/lib/libcpu/a29k/.cvsignore
    c/src/lib/libcpu/a29k/clock/.cvsignore
    c/src/lib/libcpu/a29k/timer/.cvsignore
    c/src/lib/libcpu/hppa1.1/.cvsignore
    c/src/lib/libcpu/hppa1.1/clock/.cvsignore
    c/src/lib/libcpu/hppa1.1/include/.cvsignore
    c/src/lib/libcpu/hppa1.1/milli/.cvsignore
    c/src/lib/libcpu/hppa1.1/semaphore/.cvsignore
    c/src/lib/libcpu/hppa1.1/timer/.cvsignore
    c/src/lib/libcpu/i386/.cvsignore
    c/src/lib/libcpu/m68k/.cvsignore
    c/src/lib/libcpu/m68k/m68040/.cvsignore
    c/src/lib/libcpu/m68k/m68040/fpsp/.cvsignore
    c/src/lib/libcpu/mips64orion/.cvsignore
    c/src/lib/libcpu/mips64orion/clock/.cvsignore
    c/src/lib/libcpu/mips64orion/timer/.cvsignore
    c/src/lib/libcpu/powerpc/.cvsignore
    c/src/lib/libcpu/powerpc/mpc505/.cvsignore
    c/src/lib/libcpu/powerpc/mpc505/timer/.cvsignore
    c/src/lib/libcpu/powerpc/mpc505/vectors/.cvsignore
    c/src/lib/libcpu/powerpc/mpc6xx/.cvsignore
    c/src/lib/libcpu/powerpc/mpc6xx/clock/.cvsignore
    c/src/lib/libcpu/powerpc/mpc6xx/exceptions/.cvsignore
    c/src/lib/libcpu/powerpc/mpc6xx/mmu/.cvsignore
    c/src/lib/libcpu/powerpc/mpc6xx/timer/.cvsignore
    c/src/lib/libcpu/powerpc/mpc6xx/wrapup/.cvsignore
    c/src/lib/libcpu/powerpc/mpc821/.cvsignore
    c/src/lib/libcpu/powerpc/mpc821/clock/.cvsignore
    c/src/lib/libcpu/powerpc/mpc821/console-generic/.cvsignore
    c/src/lib/libcpu/powerpc/mpc821/include/.cvsignore
    c/src/lib/libcpu/powerpc/mpc821/timer/.cvsignore
    c/src/lib/libcpu/powerpc/mpc821/vectors/.cvsignore
    c/src/lib/libcpu/powerpc/mpc860/.cvsignore
    c/src/lib/libcpu/powerpc/mpc860/clock/.cvsignore
    c/src/lib/libcpu/powerpc/mpc860/console-generic/.cvsignore
    c/src/lib/libcpu/powerpc/mpc860/include/.cvsignore
    c/src/lib/libcpu/powerpc/mpc860/timer/.cvsignore
    c/src/lib/libcpu/powerpc/mpc860/vectors/.cvsignore
    c/src/lib/libcpu/powerpc/ppc403/.cvsignore
    c/src/lib/libcpu/powerpc/ppc403/clock/.cvsignore
    c/src/lib/libcpu/powerpc/ppc403/console/.cvsignore
    c/src/lib/libcpu/powerpc/ppc403/ictrl/.cvsignore
    c/src/lib/libcpu/powerpc/ppc403/timer/.cvsignore
    c/src/lib/libcpu/powerpc/ppc403/vectors/.cvsignore
    c/src/lib/libcpu/powerpc/shared/.cvsignore
    c/src/lib/libcpu/powerpc/wrapup/.cvsignore
    c/src/lib/libcpu/sh/.cvsignore
    c/src/lib/libcpu/sh/sh7032/.cvsignore
    c/src/lib/libcpu/sh/sh7032/clock/.cvsignore
    c/src/lib/libcpu/sh/sh7032/delay/.cvsignore
    c/src/lib/libcpu/sh/sh7032/include/.cvsignore
    c/src/lib/libcpu/sh/sh7032/null/.cvsignore
    c/src/lib/libcpu/sh/sh7032/sci/.cvsignore
    c/src/lib/libcpu/sh/sh7032/timer/.cvsignore
    c/src/lib/libcpu/sh/sh7045/.cvsignore
    c/src/lib/libcpu/sh/sh7045/clock/.cvsignore
    c/src/lib/libcpu/sh/sh7045/include/.cvsignore
    c/src/lib/libcpu/sh/sh7045/null/.cvsignore
    c/src/lib/libcpu/sh/sh7045/sci/.cvsignore
    c/src/lib/libcpu/sh/sh7045/timer/.cvsignore
    c/src/lib/libcpu/sparc/.cvsignore
    c/src/lib/libcpu/sparc/reg_win/.cvsignore
    c/src/lib/libcpu/sparc/syscall/.cvsignore
    c/src/libchip/.cvsignore
    c/src/libchip/network/.cvsignore
    c/src/libchip/rtc/.cvsignore
    c/src/libchip/serial/.cvsignore
    c/src/libmisc/.cvsignore
    c/src/libmisc/cpuuse/.cvsignore
    c/src/libmisc/dummy/.cvsignore
    c/src/libmisc/dumpbuf/.cvsignore
    c/src/libmisc/monitor/.cvsignore
    c/src/libmisc/rtmonuse/.cvsignore
    c/src/libmisc/stackchk/.cvsignore
    c/src/libmisc/untar/.cvsignore
    c/src/libmisc/wrapup/.cvsignore
    c/src/libnetworking/.cvsignore
    c/src/libnetworking/arpa/.cvsignore
    c/src/libnetworking/include/.cvsignore
    c/src/libnetworking/kern/.cvsignore
    c/src/libnetworking/lib/.cvsignore
    c/src/libnetworking/libc/.cvsignore
    c/src/libnetworking/machine/.cvsignore
    c/src/libnetworking/net/.cvsignore
    c/src/libnetworking/netinet/.cvsignore
    c/src/libnetworking/nfs/.cvsignore
    c/src/libnetworking/pppd/.cvsignore
    c/src/libnetworking/rtems/.cvsignore
    c/src/libnetworking/rtems_servers/.cvsignore
    c/src/libnetworking/rtems_webserver/.cvsignore
    c/src/libnetworking/sys/.cvsignore
    c/src/libnetworking/vm/.cvsignore
    c/src/libnetworking/wrapup/.cvsignore
    c/src/librdbg/.cvsignore
    c/src/librdbg/include/.cvsignore
    c/src/librdbg/include/rdbg/.cvsignore
    c/src/librdbg/include/rdbg/i386/.cvsignore
    c/src/librdbg/include/rdbg/powerpc/.cvsignore
    c/src/librdbg/src/.cvsignore
    c/src/librdbg/src/i386/.cvsignore
    c/src/librdbg/src/i386/any/.cvsignore
    c/src/librdbg/src/powerpc/.cvsignore
    c/src/librdbg/src/powerpc/mcp750/.cvsignore
    c/src/librdbg/src/powerpc/new_exception_processing/.cvsignore
    c/src/librpc/.cvsignore
    c/src/librpc/include/.cvsignore
    c/src/librpc/include/rpc/.cvsignore
    c/src/librpc/src/.cvsignore
    c/src/librtems++/.cvsignore
    c/src/librtems++/include/.cvsignore
    c/src/librtems++/include/rtems++/.cvsignore
    c/src/librtems++/src/.cvsignore
    c/src/make/.cvsignore
    c/src/make/compilers/.cvsignore
    c/src/make/custom/.cvsignore
    c/src/tests/.cvsignore
    c/src/tests/itrontests/.cvsignore
    c/src/tests/itrontests/itronhello/.cvsignore
    c/src/tests/itrontests/itronmbf01/.cvsignore
    c/src/tests/itrontests/itronmbox01/.cvsignore
    c/src/tests/itrontests/itronsem01/.cvsignore
    c/src/tests/itrontests/itrontask01/.cvsignore
    c/src/tests/itrontests/itrontask02/.cvsignore
    c/src/tests/itrontests/itrontask03/.cvsignore
    c/src/tests/itrontests/itrontask04/.cvsignore
    c/src/tests/itrontests/itrontime01/.cvsignore
    c/src/tests/libtests/.cvsignore
    c/src/tests/libtests/cpuuse/.cvsignore
    c/src/tests/libtests/malloctest/.cvsignore
    c/src/tests/libtests/monitor/.cvsignore
    c/src/tests/libtests/putenvtest/.cvsignore
    c/src/tests/libtests/rtems++/.cvsignore
    c/src/tests/libtests/rtmonuse/.cvsignore
    c/src/tests/libtests/stackchk/.cvsignore
    c/src/tests/libtests/termios/.cvsignore
    c/src/tests/mptests/.cvsignore
    c/src/tests/mptests/mp01/.cvsignore
    c/src/tests/mptests/mp01/node1/.cvsignore
    c/src/tests/mptests/mp01/node2/.cvsignore
    c/src/tests/mptests/mp02/.cvsignore
    c/src/tests/mptests/mp02/node1/.cvsignore
    c/src/tests/mptests/mp02/node2/.cvsignore
    c/src/tests/mptests/mp03/.cvsignore
    c/src/tests/mptests/mp03/node1/.cvsignore
    c/src/tests/mptests/mp03/node2/.cvsignore
    c/src/tests/mptests/mp04/.cvsignore
    c/src/tests/mptests/mp04/node1/.cvsignore
    c/src/tests/mptests/mp04/node2/.cvsignore
    c/src/tests/mptests/mp05/.cvsignore
    c/src/tests/mptests/mp05/node1/.cvsignore
    c/src/tests/mptests/mp05/node2/.cvsignore
    c/src/tests/mptests/mp06/.cvsignore
    c/src/tests/mptests/mp06/node1/.cvsignore
    c/src/tests/mptests/mp06/node2/.cvsignore
    c/src/tests/mptests/mp07/.cvsignore
    c/src/tests/mptests/mp07/node1/.cvsignore
    c/src/tests/mptests/mp07/node2/.cvsignore
    c/src/tests/mptests/mp08/.cvsignore
    c/src/tests/mptests/mp08/node1/.cvsignore
    c/src/tests/mptests/mp08/node2/.cvsignore
    c/src/tests/mptests/mp09/.cvsignore
    c/src/tests/mptests/mp09/node1/.cvsignore
    c/src/tests/mptests/mp09/node2/.cvsignore
    c/src/tests/mptests/mp10/.cvsignore
    c/src/tests/mptests/mp10/node1/.cvsignore
    c/src/tests/mptests/mp10/node2/.cvsignore
    c/src/tests/mptests/mp11/.cvsignore
    c/src/tests/mptests/mp11/node1/.cvsignore
    c/src/tests/mptests/mp11/node2/.cvsignore
    c/src/tests/mptests/mp12/.cvsignore
    c/src/tests/mptests/mp12/node1/.cvsignore
    c/src/tests/mptests/mp12/node2/.cvsignore
    c/src/tests/mptests/mp13/.cvsignore
    c/src/tests/mptests/mp13/node1/.cvsignore
    c/src/tests/mptests/mp13/node2/.cvsignore
    c/src/tests/mptests/mp14/.cvsignore
    c/src/tests/mptests/mp14/node1/.cvsignore
    c/src/tests/mptests/mp14/node2/.cvsignore
    c/src/tests/psxtests/.cvsignore
    c/src/tests/psxtests/include/.cvsignore
    c/src/tests/psxtests/psx01/.cvsignore
    c/src/tests/psxtests/psx02/.cvsignore
    c/src/tests/psxtests/psx03/.cvsignore
    c/src/tests/psxtests/psx04/.cvsignore
    c/src/tests/psxtests/psx05/.cvsignore
    c/src/tests/psxtests/psx06/.cvsignore
    c/src/tests/psxtests/psx07/.cvsignore
    c/src/tests/psxtests/psx08/.cvsignore
    c/src/tests/psxtests/psx09/.cvsignore
    c/src/tests/psxtests/psx10/.cvsignore
    c/src/tests/psxtests/psx11/.cvsignore
    c/src/tests/psxtests/psx12/.cvsignore
    c/src/tests/psxtests/psx13/.cvsignore
    c/src/tests/psxtests/psxcancel/.cvsignore
    c/src/tests/psxtests/psxfile01/.cvsignore
    c/src/tests/psxtests/psxhdrs/.cvsignore
    c/src/tests/psxtests/psxmount/.cvsignore
    c/src/tests/psxtests/psxmsgq01/.cvsignore
    c/src/tests/psxtests/psxreaddir/.cvsignore
    c/src/tests/psxtests/psxsem01/.cvsignore
    c/src/tests/psxtests/psxstat/.cvsignore
    c/src/tests/psxtests/psxtime/.cvsignore
    c/src/tests/psxtests/psxtimer/.cvsignore
    c/src/tests/samples/.cvsignore
    c/src/tests/samples/base_mp/.cvsignore
    c/src/tests/samples/base_mp/node1/.cvsignore
    c/src/tests/samples/base_mp/node2/.cvsignore
    c/src/tests/samples/base_sp/.cvsignore
    c/src/tests/samples/cdtest/.cvsignore
    c/src/tests/samples/hello/.cvsignore
    c/src/tests/samples/minimum/.cvsignore
    c/src/tests/samples/paranoia/.cvsignore
    c/src/tests/samples/ticker/.cvsignore
    c/src/tests/samples/unlimited/.cvsignore
    c/src/tests/sptests/.cvsignore
    c/src/tests/sptests/sp01/.cvsignore
    c/src/tests/sptests/sp02/.cvsignore
    c/src/tests/sptests/sp03/.cvsignore
    c/src/tests/sptests/sp04/.cvsignore
    c/src/tests/sptests/sp05/.cvsignore
    c/src/tests/sptests/sp06/.cvsignore
    c/src/tests/sptests/sp07/.cvsignore
    c/src/tests/sptests/sp08/.cvsignore
    c/src/tests/sptests/sp09/.cvsignore
    c/src/tests/sptests/sp11/.cvsignore
    c/src/tests/sptests/sp12/.cvsignore
    c/src/tests/sptests/sp13/.cvsignore
    c/src/tests/sptests/sp14/.cvsignore
    c/src/tests/sptests/sp15/.cvsignore
    c/src/tests/sptests/sp16/.cvsignore
    c/src/tests/sptests/sp17/.cvsignore
    c/src/tests/sptests/sp19/.cvsignore
    c/src/tests/sptests/sp20/.cvsignore
    c/src/tests/sptests/sp21/.cvsignore
    c/src/tests/sptests/sp22/.cvsignore
    c/src/tests/sptests/sp23/.cvsignore
    c/src/tests/sptests/sp24/.cvsignore
    c/src/tests/sptests/sp25/.cvsignore
    c/src/tests/sptests/sp26/.cvsignore
    c/src/tests/sptests/sp27/.cvsignore
    c/src/tests/sptests/sp28/.cvsignore
    c/src/tests/sptests/sp29/.cvsignore
    c/src/tests/sptests/spfatal/.cvsignore
    c/src/tests/sptests/spsize/.cvsignore
    c/src/tests/support/.cvsignore
    c/src/tests/support/include/.cvsignore
    c/src/tests/support/stubdr/.cvsignore
    c/src/tests/support/wrapup/.cvsignore
    c/src/tests/tmitrontests/.cvsignore
    c/src/tests/tmitrontests/include/.cvsignore
    c/src/tests/tmitrontests/tmitronsem01/.cvsignore
    c/src/tests/tmtests/.cvsignore
    c/src/tests/tmtests/include/.cvsignore
    c/src/tests/tmtests/tm01/.cvsignore
    c/src/tests/tmtests/tm02/.cvsignore
    c/src/tests/tmtests/tm03/.cvsignore
    c/src/tests/tmtests/tm04/.cvsignore
    c/src/tests/tmtests/tm05/.cvsignore
    c/src/tests/tmtests/tm06/.cvsignore
    c/src/tests/tmtests/tm07/.cvsignore
    c/src/tests/tmtests/tm08/.cvsignore
    c/src/tests/tmtests/tm09/.cvsignore
    c/src/tests/tmtests/tm10/.cvsignore
    c/src/tests/tmtests/tm11/.cvsignore
    c/src/tests/tmtests/tm12/.cvsignore
    c/src/tests/tmtests/tm13/.cvsignore
    c/src/tests/tmtests/tm14/.cvsignore
    c/src/tests/tmtests/tm15/.cvsignore
    c/src/tests/tmtests/tm16/.cvsignore
    c/src/tests/tmtests/tm17/.cvsignore
    c/src/tests/tmtests/tm18/.cvsignore
    c/src/tests/tmtests/tm19/.cvsignore
    c/src/tests/tmtests/tm20/.cvsignore
    c/src/tests/tmtests/tm21/.cvsignore
    c/src/tests/tmtests/tm22/.cvsignore
    c/src/tests/tmtests/tm23/.cvsignore
    c/src/tests/tmtests/tm24/.cvsignore
    c/src/tests/tmtests/tm25/.cvsignore
    c/src/tests/tmtests/tm26/.cvsignore
    c/src/tests/tmtests/tm27/.cvsignore
    c/src/tests/tmtests/tm28/.cvsignore
    c/src/tests/tmtests/tm29/.cvsignore
    c/src/tests/tmtests/tmck/.cvsignore
    c/src/tests/tmtests/tmoverhd/.cvsignore
    c/src/tests/tools/.cvsignore
    c/src/tests/tools/generic/.cvsignore
    c/src/wrapup/.cvsignore
    doc/.cvsignore
    make/.cvsignore
    make/Templates/.cvsignore
    make/compilers/.cvsignore
    make/custom/.cvsignore
    scripts-ada/.cvsignore
    scripts-ada/binutils/.cvsignore
    scripts-ada/gdb/.cvsignore
    scripts-ada/gnatnewlib/.cvsignore
    scripts/.cvsignore
    scripts/binutils/.cvsignore
    scripts/gccnewlib/.cvsignore
    scripts/gdb/.cvsignore
    scripts/rtems/.cvsignore
    tools/.cvsignore
    tools/build/.cvsignore
    tools/cpu/.cvsignore
    tools/cpu/generic/.cvsignore
    tools/cpu/hppa1.1/.cvsignore
    tools/cpu/sh/.cvsignore
    tools/cpu/unix/.cvsignore
    tools/update/.cvsignore
2000-04-13 16:47:58 +00:00
Joel Sherrill
0e136bed14 Patch rtems-rc-4.5.0-12-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
The patch contains two mid-severity bug fixes:

  - bootstrap: fix autoheader invocation
  - make/host.cfg.in: comment out RM, required by c/src/make/host.cfg.in,
    which is generated from make/host.cfg.in
2000-04-13 13:47:28 +00:00
Joel Sherrill
e0d1ba5fa5 Modified CVS Id. 2000-04-13 13:46:19 +00:00
Joel Sherrill
a7d5b16341 Modified Id. 2000-04-13 13:45:52 +00:00
Joel Sherrill
dddbc444a0 Renamed IMFS structure elements to avoid conflicts on Solaris host/target.
Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
2000-04-13 13:40:20 +00:00
Joel Sherrill
6c48c6eec8 Modified to disable interrupts while checking signals. 2000-04-13 13:37:29 +00:00
Joel Sherrill
f3fea8685f M68k BSPs compile and link again after making Ramsize handling as
consistent as possible across all m68k BSPs.
2000-04-13 13:00:41 +00:00
Joel Sherrill
2e34e9f106 Added note indicating source of expected assertion. 2000-04-11 20:19:59 +00:00
Joel Sherrill
206ca3ae79 Honor no data cache macro setting. Problem reported by Wilfried Busalski
<fue@lancier.de>.
2000-04-07 19:39:27 +00:00
Joel Sherrill
09652b9ff2 Cleanup patch from John Cotton <John.Cotton@nrc.ca>. 2000-04-07 19:10:44 +00:00
Joel Sherrill
f50952c9d3 Patch from Charles-Antoine Gauthier <charles.gauthier@nrc.ca> after
feedback from Eric Norum <eric@skatter.usask.ca> on static and
dynamic RAM sizing issues while still having as much shared
code as possible across the m68k BSPs.
2000-04-07 19:04:12 +00:00
Joel Sherrill
cc655a57ef Patch from Eric Norum <eric@cls.usask.ca> to make the loopback interface
actually work.  This was tripped by EPICS.
2000-04-07 19:01:01 +00:00
Joel Sherrill
755c630210 Cleanup patch rtems-rc-4.5.0-11-cvs.diff from Ralf Corsepius
<corsepiu@faw.uni-ulm.de>.
2000-04-05 19:39:01 +00:00
Joel Sherrill
6e48c9b206 Cleanup patch from Ralf Corsepius. 2000-04-05 19:37:04 +00:00
Joel Sherrill
0315b79ba6 Added support for Cygwin. 2000-04-05 19:32:36 +00:00
Joel Sherrill
35ff211959 Now all m68k BSPs specify _RamBase. This is necessary for the shared
m68kbsppretaskinghook.c to work.
2000-04-05 19:09:06 +00:00
Joel Sherrill
bb734ccaa8 Patch from Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
to update the mvme167 BSP and account for the fact that RAM base
does not have to start at 0.
2000-04-05 18:24:48 +00:00
cvs2git
ce70a16674 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-04-05 13:27:52 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'New file.  Copied from i386ex BSP as missing from submission.':
    c/src/lib/libbsp/m68k/mvme167/network/Makefile.am
    c/src/lib/libbsp/m68k/mvme167/network/netexterns.h
    c/src/lib/libbsp/m68k/mvme167/network/network.c
    c/src/lib/libbsp/m68k/mvme167/network/uti596.h
    make/custom/Cygwin-posix.cfg
2000-04-05 13:27:53 +00:00
Joel Sherrill
cbbc442efc Added cygwin as simulator port. 2000-04-05 13:10:57 +00:00
Joel Sherrill
0c67e4aca6 Patch from Charles-Antoine Gauthier <charles.gauthier@nrc.ca> to go
along with the network driver.
2000-04-05 12:55:10 +00:00
Joel Sherrill
12edad69e3 Patch rtems-rc-4.5-10-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
Ralf's description of the patch follows:

  Now that make VARIANT=xxx has prooven not to be simple enough, I made up
  my mind to change again the internals of the mechanism being used to
  handle variants:

  With the patch below, I introduce the indirection step I had mentioned
  in one of my recent mails to translate settings of VARIANT.

  The trick is to use the contents of VARIANT as keyword to lookup another
  internal keyword (VARIANT_V), which then is used as keyword to lookup
  values for setting ARCH, LIB_VARIANT, LIBSUFFIX_VA and AM_CFLAGS from
  ARCH_$(VARIANT_V)_V etc. (cf automake/local.am).

  This means, at first to translate
    VARIANT=[optimize|OPTIMIZE] into VARIANT_V=OPTIMIZE
    VARIANT=[debug|DEBUG] into VARIANT_V=DEBUG
    VARIANT=[profile|PROFILE] into VARIANT_V=PROFILE
    VARIANT=<anything> into VARIANT_V=<anything>

  => perform keyword conversion to uppercase and reduction from 6 to 3+1
    internal keywords.

  $(VARIANT_V) then is used to lookup make variables from other tables
  (eg. CFLAGS_*_V).  Eg. ARCH is set up this way:

    ARCH_OPTIMIZE_V = o-optimize
    ARCH_DEBUG_V = o-debug
    ARCH_PROFILE_V = o-profile
    ARCH__V = $(ARCH_OPTIMIZE_V)
    ARCH = $(ARCH_$(VARIANT_V)_V)

  Note the ARCH__V variable. When VARIANT=<anything> is passed to make,
  VARIANT_V=<anything> will be set, resulting into ARCH =
  $(ARCH_$(<anything>)_V) = $(ARCH__V) = $(ARCH_OPTIMIZE_V), ie. falling
  back to OPTIMIZE.

  => o- or o-<anything> should never popup anymore.
2000-04-05 12:51:51 +00:00
Joel Sherrill
a899433e54 Patch rtems-rc-4.5.0-8-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
Fixes a problem related to an old bug in automake-1.4 which already had
broken other Makefile.ams in RTEMS (cf. ./c/src/lib/libbsp/bsp.am).
2000-04-04 19:04:33 +00:00
Joel Sherrill
ad3c8e860e Patch rtems-rc-4.5.0-8-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
The patch contains:

* make uninstall will only work if called from below
  <target_alias>/c/<BSP> of if all BSPs in RTEMS_BSP_LIST have been built
  previously (c/Makefile will choke otherwise). Not perfect but better
  than nothing.
2000-04-04 19:02:52 +00:00
Joel Sherrill
a7c46db906 Fixed typo. 2000-04-04 12:53:06 +00:00
Joel Sherrill
c34eb10f55 Patch rtems-rc-4.5.0-7-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
The patch contains:

  * Many small cleanups wrt. make VARIANT=[DEBUG|PROFILE] support
  * several modifications to make/custom/*.cfg
  * Merger with the mvme2307.cfg you had posted two weeks ago (Please
    check it, I did not check it against to version you posted today).
  * Added a check to the toplevel configure.in to refuse building inside
    of the source tree.
2000-04-03 20:01:31 +00:00
cvs2git
cc2ccd6e71 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Cherrypick from master 2000-04-03 19:56:54 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'New file from Ralf Corsepius <corsepiu@faw.uni-ulm.de> as part of':
    c/src/make/leaf.cfg
2000-04-03 19:56:55 +00:00
Joel Sherrill
562f5c8591 Added cygwin as mapping to unix port. 2000-04-03 19:01:31 +00:00
Joel Sherrill
7f02ee73ff Patch from Eric Norum <eric@cls.usask.ca> to prevent leaking MT_SONAME
mbuf's in the network stack.
2000-04-03 17:30:31 +00:00
Joel Sherrill
33677ef548 Enhancements from Charles-Antoine Gauthier <charles.gauthier@nrc.ca>. 2000-04-03 15:31:17 +00:00
Joel Sherrill
effc2c4e6b Patch rtems-rc-4.5.0-6-cvs.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
The patch contains:

  * build variants support
  * Reworked make-exe custom/*.cfg for all targets (Should be
    self-explanatory, may still be incomplete)
  * Several fixes to custom/*.cfgs related to setting debug flags
  * Fixes to some bsp_specs for BSPs which apparently have never been
    build with debugging before ;)
  * pc386.cfg fix attempts (cf. my mail from earlier today)
  * Updated ampolish (No need to run it, the patch contains the result
    from having applied it)

Known bugs/deficiencies related to this work:

  * "make [clean|distclean]" support is still incomplete (e.g. "make
    clean" does not delete all Depends-o-*)
  * Completely untested for linux/posix and hppa.
  * Build failures of i960 BSPs (make VARIANT=DEBUG) - I guess, they are
    not related to this patch.
  * Successfully tested for all sh, sparc, i386, ppc, m68k BSPs (make
    VARIANT=DEBUG)
  * make VARIANT=PROFILE not supported by all BSPs (I don't care :)
  * make VARIANT=DEBUG failures below tests/ for some BSPs (e.g. gensh1),
    because of the tests's binaries being too large to fit into the target
    memory layout.
2000-04-03 14:44:39 +00:00
Joel Sherrill
0d744abbcc Patch from Jay Kulpinski <jskulpin@eng01.gdds.com> that makes
sure the mvme2307 BSP uses new exception processing.  Jay included
modifications to the make-exe rule to build bootable binary images
but I (being Joel) am unsure if the way they jump around the tree is
OK for both automake/autoconf and post-install usage.
2000-04-03 14:03:11 +00:00
Joel Sherrill
52448f35e9 Patch from Jay Kulpinski <jskulpin@eng01.gdds.com> that addresses
a floating point support problem discovered with the mvme2307 BSP.
A floating point not available exception would occur when trying
to switch to a new thread with the floating point attribute.
Floating point instructions were disabled, but floating point
loads and stores were needed to save and/or restore the context.
2000-04-03 13:57:34 +00:00
Joel Sherrill
d2d4372da0 Patch from Charles-Antoine Gauthier <charles.gauthier@nrc.ca> reviewed
by Eric Norum <eric@cls.usask.ca> to disable flow control at initialization.
2000-04-03 13:24:38 +00:00
Joel Sherrill
7ea9f1dc08 Patch from Eric Norum <eric@cls.usask.ca> so simple binary semaphores
can be deleted when held.
2000-04-03 13:10:50 +00:00
Joel Sherrill
969525fe2f Added missing include of <sys/types.h> required by added prototypes. 2000-03-23 13:57:13 +00:00
Joel Sherrill
94795bbda6 Patch rtems-rc-4.5.0-5-cvs.diff from Ralf Corsepius
<corsepiu@faw.uni-ulm.de> that allows bootstrap to be run
from subdirectories.
2000-03-22 14:04:02 +00:00
Joel Sherrill
96cf181204 Removed referecnes to BSP specific files. Other corrections
will likely be needed in the efi332 BSP.
2000-03-21 21:35:47 +00:00
Joel Sherrill
776d6963ae Corrected mpc505/mpc509 support based on patch from Wilfried Busalski
<fue@lancier.de>.
2000-03-21 21:33:38 +00:00
Joel Sherrill
af7a0ed984 Patch from Eric Norum <eric@cls.usask.ca> to correct calls to
memset().  The arguments for value and size were reversed everywhere.
2000-03-21 20:15:09 +00:00
Joel Sherrill
05a346681d Patch from Gunter Magin <magin@skil.camelot.de> where the type was
not large enough to support high baud rates.

  brg_spd[] is an array which stores the baud rates, for which one of the 4
  available BRG dividers has been set. The array is used for deciding if a
  BRG devider may be reused.

  > 1.  What baud_rate and divisor is causing this to fail?

  divisor is dependent on the system clock (Cpu_table.clock_speed), and gets
  calculated in m860_get_brg_cd.

  m860_get_brg_clk fails for any baudrates > (2^16-1), as those baudrates are
  truncated to 16 bit which is the size of a short. In fact, as it has been a
  short and not an unsigned short, it will fail at any baudrate >(2^15-1). In
  any case, it failed for my application, which required 250000 Baud.
2000-03-21 18:35:00 +00:00
Joel Sherrill
abbf55b924 Ran ampolish after getting new version from Ralf Corsepius
<corsepiu@faw.uni-ulm.de>.
2000-03-21 18:05:29 +00:00
Joel Sherrill
6f921ba886 Ran ampolish after getting new version from Ralf Corsepius
<corsepiu@faw.uni-ulm.de>.
2000-03-21 17:57:21 +00:00
Joel Sherrill
67077a1b46 Patches rtems-rc-4.5.0-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that addresses the following:

    * Duplicate variables in Makefiles (many Makefile.ams below c/src/test
      are affected systematically)
    * Erroniously using local.am instead of host.am in host-Makefile.am
      (Only host Makefile.ams should be affected; Erroniously using local.am
      in host-Makefiles doesn't desturb much)
    * use '.' instead of '$pwd' in ./bootstrap (using $pwd does not work if
      $pwd is a symlink on linux).
    * Broken CVS Ids somewhere
    * Removing redundant/obsolete make variables from *.cfg files.

  Except of the last item from the list above, most parts of this patch
  are fairly harmless, sometimes even cosmetical.

  As mentioned before, this patch also contains a new ampolish script.

  This script features:
    * Pretty printing of Makefile.ams (eg. removal of trailing spaces,
      removal of duplicate empty lines, pretty printing make variables, etc.).

    * Some syntactical checks on the contents of Makefiles.am
    * Proper handling of Automake conditionals

  FYI:
    * Applying tools/update/rtems-polish.sh -am completely reformats all
      Makefile.am resulting into a very large (~500k) diff.
    * Applying tools/update/rtems-polish.sh -am twice, finally does not
      reformat the Makefile.ams anymore.
    * Many parts of the patch above result from merging back issues which
      have shown when applying this new ampolish (i.e. partially result from
      extracting the essentials of reformating being proposed by applying it
      on Makefile.ams).

    Though this ampolish is a very nice tool, IMHO, I am hestitant if you
    should apply (i.e. run tools/update/rtems-polish.sh -am) it to the
    sources before the release, because
      * the resulting diff is fairly large
      * I am not 100% sure it doesn't break anything.

    However, applying it after the release would result into compatibility
    problems in applying patches ;)

    I would suggest that you might consider trying it locally, then to
    examine the diff and then to decide whether to apply it in general or
    not.

Joel's Comments:

As Ralf points out, this patch is problematic in that applying it before
a release could break things but applying it afterwards will result in
patches being unusable for Makefiles.  My inclination is to forge ahead
and apply it.
2000-03-21 17:11:40 +00:00
Joel Sherrill
15b6e46f70 Patch from Charles-Antoine Gauthier <charles.gauthier@nrc.ca>
to fix problem where wait() was in this file -- not waitpid().
2000-03-21 15:56:54 +00:00
Joel Sherrill
d56669456a After Charles-Antoine Gauthier <charles.gauthier@nrc.ca> spotted that the
prototype for tcsendbreak() was missing, Joel noticed that others were as
well and added them.
2000-03-21 15:36:48 +00:00
Joel Sherrill
d6b047703d Patch from Gunter Magin <magin@skil.camelot.de>.
It seems to me I have found a bug in m860_smc_initialize(). This
    function lives in
    c/src/lib/libcpu/powerpc/mpc860/console-generic/console-generic.c.

    The following lines are supposed to set the simode register with the
    baud rate generator index, which has been returned from m860_get_brg_clk().

    (line 386 of console-generic.c)
        /*
         * Put SMC in NMSI mode, connect SMC to BRG
         */
        m860.simode &= ~0x7000 << ((port-1) * 8);
        m860.simode |= brg << (12 + ((port-1) * 8));

    This works well for port == 1 (SMC1), however for SMC2 (port == 2) it
    fails. First, the simode register consists of 2 16bit parts (one for
    SMC1 and SMC2 respectively), hence the shift count is wrong. Second ~0x7000
    (which is 0xffff8fff is shifted left and pulls 0 from the right, which
    kills the SMC1 entries, when written back to the simode register.

    Substitute those lines by:

        m860.simode &= ~(0x7000 << ((port-1) * 16));
        m860.simode |= brg << (12 + ((port-1) * 16));

    I have checked snapshot 20000218a which still contains the bug.

    Also affected is libcpu/powerpc/mpc821/console_generic.c, which is a
    cut&paste&substitue decendant of the mpc860 console-generic.c.
CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS:  Tag: rtems-4-5-branch
CVS: 	console-generic.c
CVS: ----------------------------------------------------------------------
2000-03-21 15:06:04 +00:00
Joel Sherrill
218103dd35 Patch from Gunter Magin <magin@skil.camelot.de>.
It seems to me I have found a bug in m860_smc_initialize(). This
    function lives in
    c/src/lib/libcpu/powerpc/mpc860/console-generic/console-generic.c.

    The following lines are supposed to set the simode register with the
    baud rate generator index, which has been returned from m860_get_brg_clk().

    (line 386 of console-generic.c)
        /*
         * Put SMC in NMSI mode, connect SMC to BRG
         */
        m860.simode &= ~0x7000 << ((port-1) * 8);
        m860.simode |= brg << (12 + ((port-1) * 8));

    This works well for port == 1 (SMC1), however for SMC2 (port == 2) it
    fails. First, the simode register consists of 2 16bit parts (one for
    SMC1 and SMC2 respectively), hence the shift count is wrong. Second ~0x7000
    (which is 0xffff8fff is shifted left and pulls 0 from the right, which
    kills the SMC1 entries, when written back to the simode register.

    Substitute those lines by:

        m860.simode &= ~(0x7000 << ((port-1) * 16));
        m860.simode |= brg << (12 + ((port-1) * 16));

    I have checked snapshot 20000218a which still contains the bug.

    Also affected is libcpu/powerpc/mpc821/console_generic.c, which is a
    cut&paste&substitue decendant of the mpc860 console-generic.c.
2000-03-21 15:05:19 +00:00
Joel Sherrill
477f3471f8 Problem reported by Chris Johns <ccj@acm.org> that webcomp.c was being
built and included in the target code.  It is a host utility.
2000-03-21 14:46:40 +00:00
Joel Sherrill
89fbb94136 changed version to 4.5.0-beta1c 2000-02-29 14:19:26 +00:00
Joel Sherrill
ac11adeb5b Fixed one type and switched to including the correct Makefile support file. 2000-02-28 15:00:28 +00:00
Joel Sherrill
0ac819756c Patches rtems-rc-4.5.0-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that fixes numerous miscellaneous issues most related to the debug and
profile build stanzas:

  Fix for the "make debug" (1) issue and an analogous issue with "make
  profile" (untested).
    * Fixes to mcp750.cfg (make debug, directories) (2)
    * Updates/minor fixes for shgen (3)
    * Updates some custom/*.cfgs to use $(LINK.c) instead of  $(CC)
    * Leftovers from rtems-rc-4.5.0-[0|1].diff which somehow did not make it
      into cvs.
    * Cleanups to the perlscripts below tools/update/
    * Some unsorted minor fixes.

 Footnotes/Remarks:
    (1) Tested for all m68k, sh, sparc, unix and selected i386, ppc BSPs.

    Known problems: I can't build the debug variant for the m68k/mvme162 and
    m68k/mvme162lx (segmentation fault - signal 11 :)

    (2) Tested by building the BSP, but I doubt the debug-variant is
    functional. The flags used for the debug variant should be checked by
    knowledgeable persons and probably at runtime #:o)

    (3) I have updated shgen to use getopt_long (it should fall back to
    getopt if not available), enhanced the options, cleaned up some minor
    tweaks and added help2man support (rough automatic man-page generation).

  Technical notes:
    * make debug and make profile now work similar in target Makefile.ams as
    they did in old autoconf-Makefile.ins using leaf.cfg. Unlike the rules
    in leaf.cfg these Makefile.am also recurse once on themselves in
    directory Makefiles before or after recursing into subdirectories, not
    only in leaf-directories.
    To implement this behavior, I renamed the former automake/local.am into
    automake/host.am and extended local.am to provide this recursion.
    I.e. host.am implements the non-self-recursive variant, while local.am
    now implements the self-recursive behavior.
    => all Makefile.ams exploiting build-variants are supposed to include
    local.am
    => all Makefile.ams not exploiting build-variants should include host.am

    => Rules of thumb:
        - Only include one of both, either local.am or host.am into a
        Makefile.am.
        -Target-Makefile.ams should include local.am
        -Host-Makefile.ams should include host.am (Probably, you now understand
        the naming)
        - There are exceptions from these rules :)

    * Now, make debug|profile|all are independent of each other. However,
    each of them however triggers preinstall.

    * "make install" still decends into the subdirectories but does not
    trigger "all|profile|debug|preinstall" in target Makefile.am anymore.
    Besides triggering "install"-rules in some selected Makefile.ams, it
    only packs $(PROJECT_ROOT) into a tarballs and unpacks it to $(prefix).
    => "make install" alone is not enough to install RTEMS, now use
    make RTEMS_BSP=<bsps> [all] [debug] [profile]
    make RTEMS_BSP=<bsp> install

    I consider this to be a step back wrt. exploiting automake mechanisms,
    and expect this to be reverted if we abandon building target variants in
    favour of the standard convention of optionally overriding flags from
    the command line (i.e. instead of "make debug", GNU standards favor
    "make CFLAGS=<options> --prefix=<location>")
2000-02-25 18:50:47 +00:00
Joel Sherrill
02c31b9c10 Patches rtems-rc-4.5.0-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that fixes numerous miscellaneous issues most related to the debug and
profile build stanzas:

  Fix for the "make debug" (1) issue and an analogous issue with "make
  profile" (untested).
    * Fixes to mcp750.cfg (make debug, directories) (2)
    * Updates/minor fixes for shgen (3)
    * Updates some custom/*.cfgs to use $(LINK.c) instead of  $(CC)
    * Leftovers from rtems-rc-4.5.0-[0|1].diff which somehow did not make it
      into cvs.
    * Cleanups to the perlscripts below tools/update/
    * Some unsorted minor fixes.

 Footnotes/Remarks:
    (1) Tested for all m68k, sh, sparc, unix and selected i386, ppc BSPs.

    Known problems: I can't build the debug variant for the m68k/mvme162 and
    m68k/mvme162lx (segmentation fault - signal 11 :)

    (2) Tested by building the BSP, but I doubt the debug-variant is
    functional. The flags used for the debug variant should be checked by
    knowledgeable persons and probably at runtime #:o)

    (3) I have updated shgen to use getopt_long (it should fall back to
    getopt if not available), enhanced the options, cleaned up some minor
    tweaks and added help2man support (rough automatic man-page generation).

  Technical notes:
    * make debug and make profile now work similar in target Makefile.ams as
    they did in old autoconf-Makefile.ins using leaf.cfg. Unlike the rules
    in leaf.cfg these Makefile.am also recurse once on themselves in
    directory Makefiles before or after recursing into subdirectories, not
    only in leaf-directories.
    To implement this behavior, I renamed the former automake/local.am into
    automake/host.am and extended local.am to provide this recursion.
    I.e. host.am implements the non-self-recursive variant, while local.am
    now implements the self-recursive behavior.
    => all Makefile.ams exploiting build-variants are supposed to include
    local.am
    => all Makefile.ams not exploiting build-variants should include host.am

    => Rules of thumb:
        - Only include one of both, either local.am or host.am into a
        Makefile.am.
        -Target-Makefile.ams should include local.am
        -Host-Makefile.ams should include host.am (Probably, you now understand
        the naming)
        - There are exceptions from these rules :)

    * Now, make debug|profile|all are independent of each other. However,
    each of them however triggers preinstall.

    * "make install" still decends into the subdirectories but does not
    trigger "all|profile|debug|preinstall" in target Makefile.am anymore.
    Besides triggering "install"-rules in some selected Makefile.ams, it
    only packs $(PROJECT_ROOT) into a tarballs and unpacks it to $(prefix).
    => "make install" alone is not enough to install RTEMS, now use
    make RTEMS_BSP=<bsps> [all] [debug] [profile]
    make RTEMS_BSP=<bsp> install

    I consider this to be a step back wrt. exploiting automake mechanisms,
    and expect this to be reverted if we abandon building target variants in
    favour of the standard convention of optionally overriding flags from
    the command line (i.e. instead of "make debug", GNU standards favor
    "make CFLAGS=<options> --prefix=<location>")
2000-02-25 17:34:26 +00:00
Joel Sherrill
99eb5852f5 Patches rtems-rc-4.5.0-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that fixes numerous miscellaneous issues most related to the debug and
profile build stanzas:

  Fix for the "make debug" (1) issue and an analogous issue with "make
  profile" (untested).
    * Fixes to mcp750.cfg (make debug, directories) (2)
    * Updates/minor fixes for shgen (3)
    * Updates some custom/*.cfgs to use $(LINK.c) instead of  $(CC)
    * Leftovers from rtems-rc-4.5.0-[0|1].diff which somehow did not make it
      into cvs.
    * Cleanups to the perlscripts below tools/update/
    * Some unsorted minor fixes.

 Footnotes/Remarks:
    (1) Tested for all m68k, sh, sparc, unix and selected i386, ppc BSPs.

    Known problems: I can't build the debug variant for the m68k/mvme162 and
    m68k/mvme162lx (segmentation fault - signal 11 :)

    (2) Tested by building the BSP, but I doubt the debug-variant is
    functional. The flags used for the debug variant should be checked by
    knowledgeable persons and probably at runtime #:o)

    (3) I have updated shgen to use getopt_long (it should fall back to
    getopt if not available), enhanced the options, cleaned up some minor
    tweaks and added help2man support (rough automatic man-page generation).

  Technical notes:
    * make debug and make profile now work similar in target Makefile.ams as
    they did in old autoconf-Makefile.ins using leaf.cfg. Unlike the rules
    in leaf.cfg these Makefile.am also recurse once on themselves in
    directory Makefiles before or after recursing into subdirectories, not
    only in leaf-directories.
    To implement this behavior, I renamed the former automake/local.am into
    automake/host.am and extended local.am to provide this recursion.
    I.e. host.am implements the non-self-recursive variant, while local.am
    now implements the self-recursive behavior.
    => all Makefile.ams exploiting build-variants are supposed to include
    local.am
    => all Makefile.ams not exploiting build-variants should include host.am

    => Rules of thumb:
        - Only include one of both, either local.am or host.am into a
        Makefile.am.
        -Target-Makefile.ams should include local.am
        -Host-Makefile.ams should include host.am (Probably, you now understand
        the naming)
        - There are exceptions from these rules :)

    * Now, make debug|profile|all are independent of each other. However,
    each of them however triggers preinstall.

    * "make install" still decends into the subdirectories but does not
    trigger "all|profile|debug|preinstall" in target Makefile.am anymore.
    Besides triggering "install"-rules in some selected Makefile.ams, it
    only packs $(PROJECT_ROOT) into a tarballs and unpacks it to $(prefix).
    => "make install" alone is not enough to install RTEMS, now use
    make RTEMS_BSP=<bsps> [all] [debug] [profile]
    make RTEMS_BSP=<bsp> install

    I consider this to be a step back wrt. exploiting automake mechanisms,
    and expect this to be reverted if we abandon building target variants in
    favour of the standard convention of optionally overriding flags from
    the command line (i.e. instead of "make debug", GNU standards favor
    "make CFLAGS=<options> --prefix=<location>")
2000-02-25 15:03:10 +00:00
Joel Sherrill
77b2b0ec5b Patches rtems-rc-4.5.0-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
that fixes numerous miscellaneous issues most related to the debug and
profile build stanzas:

  Fix for the "make debug" (1) issue and an analogous issue with "make
  profile" (untested).
    * Fixes to mcp750.cfg (make debug, directories) (2)
    * Updates/minor fixes for shgen (3)
    * Updates some custom/*.cfgs to use $(LINK.c) instead of  $(CC)
    * Leftovers from rtems-rc-4.5.0-[0|1].diff which somehow did not make it
      into cvs.
    * Cleanups to the perlscripts below tools/update/
    * Some unsorted minor fixes.

 Footnotes/Remarks:
    (1) Tested for all m68k, sh, sparc, unix and selected i386, ppc BSPs.

    Known problems: I can't build the debug variant for the m68k/mvme162 and
    m68k/mvme162lx (segmentation fault - signal 11 :)

    (2) Tested by building the BSP, but I doubt the debug-variant is
    functional. The flags used for the debug variant should be checked by
    knowledgeable persons and probably at runtime #:o)

    (3) I have updated shgen to use getopt_long (it should fall back to
    getopt if not available), enhanced the options, cleaned up some minor
    tweaks and added help2man support (rough automatic man-page generation).

  Technical notes:
    * make debug and make profile now work similar in target Makefile.ams as
    they did in old autoconf-Makefile.ins using leaf.cfg. Unlike the rules
    in leaf.cfg these Makefile.am also recurse once on themselves in
    directory Makefiles before or after recursing into subdirectories, not
    only in leaf-directories.
    To implement this behavior, I renamed the former automake/local.am into
    automake/host.am and extended local.am to provide this recursion.
    I.e. host.am implements the non-self-recursive variant, while local.am
    now implements the self-recursive behavior.
    => all Makefile.ams exploiting build-variants are supposed to include
    local.am
    => all Makefile.ams not exploiting build-variants should include host.am

    => Rules of thumb:
        - Only include one of both, either local.am or host.am into a
        Makefile.am.
        -Target-Makefile.ams should include local.am
        -Host-Makefile.ams should include host.am (Probably, you now understand
        the naming)
        - There are exceptions from these rules :)

    * Now, make debug|profile|all are independent of each other. However,
    each of them however triggers preinstall.

    * "make install" still decends into the subdirectories but does not
    trigger "all|profile|debug|preinstall" in target Makefile.am anymore.
    Besides triggering "install"-rules in some selected Makefile.ams, it
    only packs $(PROJECT_ROOT) into a tarballs and unpacks it to $(prefix).
    => "make install" alone is not enough to install RTEMS, now use
    make RTEMS_BSP=<bsps> [all] [debug] [profile]
    make RTEMS_BSP=<bsp> install

    I consider this to be a step back wrt. exploiting automake mechanisms,
    and expect this to be reverted if we abandon building target variants in
    favour of the standard convention of optionally overriding flags from
    the command line (i.e. instead of "make debug", GNU standards favor
    "make CFLAGS=<options> --prefix=<location>")
2000-02-25 14:51:28 +00:00
Joel Sherrill
06f190b9b6 Correcting them so they have a chance of working. They need to
at least include $(RTEMS_MAKEFILE_PATH)/Makefile.in before including
anything else.
2000-02-23 21:15:37 +00:00
Joel Sherrill
7209360a09 Fix based on report from Jake Janovetz <janovetz@tempest.ece.uiuc.edu>
that some files needed to be installed so you could build your own
version of the web server initialization code.
2000-02-23 16:01:11 +00:00
Joel Sherrill
f362fa7698 Fixed based on report from Peter Pointner <pr@schenk.isar.de> that
POSIX threads passed the incorrect pointer to a default name on
the stack.  POSIX threads did not need a name and neither did
ITRON tasks so this code was eliminated from both APIs.
2000-02-23 15:59:20 +00:00
Joel Sherrill
06383557e0 Patch rtems-rc-4.5.0-diff from Ralf Corsepius to address a problem
where user Makefiles where accidentally used when using the RTEMS
application Makefile scheme.
2000-02-19 15:46:40 +00:00
Joel Sherrill
2de8b1b2fa Small patch from Peter Pointner <pr@schenk.isar.de> to correct
invalid use of directive_failed macro.
2000-02-18 14:30:56 +00:00
Joel Sherrill
1509336283 Patch from Eric Norum <eric@cls.usask.ca> to address these issues:
1) Coalesce outgoing packet into a single mbuf when the packet is spread
      over more mbufs than configured transmit buffer descriptors.
   2) Add dianostic counters for successful and failed coalesce attempts.
   3) Add diagnostic counter for transmit retries.

NOTE: (1) lead to deadlock and the same design based on underlying
hardware characteristics is currently also in the Sonic and
i386ex/network driver.
2000-02-18 13:53:06 +00:00
Joel Sherrill
56616af310 Patch rtems-rc-4.5.0-1.diff from Ralf Corsepius <corsepiu@faw.uni-ulm.de>
which contains a couple of minor bug fixes:

  Fixes:
    * Typos: Use LIB_VARIANT instead of LIBVARIANT
    * Fix pc386.cfg
2000-02-16 17:47:48 +00:00
Joel Sherrill
319d298851 Changed <= to < to prevent overindexing array of file control blocks
(rtems_libio_iops).
2000-02-15 21:01:27 +00:00
cvs2git
d5e3931159 This commit was manufactured by cvs2svn to create branch 'rtems-4-5-branch'.
Sprout from master 2000-02-11 15:54:47 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'Increased block size to 128 and added comments based on feedback from'
Delete:
    c/src/ada-tests/mptests/mp01/config.h
    c/src/ada-tests/mptests/mp01/mp01.adb
    c/src/ada-tests/mptests/mp01/mptest.adb
    c/src/ada-tests/mptests/mp01/mptest.ads
    c/src/ada-tests/mptests/mp01/node1/mp01.scn
    c/src/ada-tests/mptests/mp01/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp01/node2/mp01.scn
    c/src/ada-tests/mptests/mp01/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp02/mptest.adb
    c/src/ada-tests/mptests/mp02/mptest.ads
    c/src/ada-tests/mptests/mp02/node1/mp02.scn
    c/src/ada-tests/mptests/mp02/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp02/node2/mp02.scn
    c/src/ada-tests/mptests/mp02/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp03/mptest.adb
    c/src/ada-tests/mptests/mp03/mptest.ads
    c/src/ada-tests/mptests/mp03/node1/mp03.scn
    c/src/ada-tests/mptests/mp03/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp03/node2/mp03.scn
    c/src/ada-tests/mptests/mp03/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp04/mptest.adb
    c/src/ada-tests/mptests/mp04/mptest.ads
    c/src/ada-tests/mptests/mp04/node1/mp04.scn
    c/src/ada-tests/mptests/mp04/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp04/node2/mp04.scn
    c/src/ada-tests/mptests/mp04/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp05/mptest.adb
    c/src/ada-tests/mptests/mp05/mptest.ads
    c/src/ada-tests/mptests/mp05/node1/mp05.scn
    c/src/ada-tests/mptests/mp05/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp05/node2/mp05.scn
    c/src/ada-tests/mptests/mp05/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp06/mptest.adb
    c/src/ada-tests/mptests/mp06/mptest.ads
    c/src/ada-tests/mptests/mp06/node1/mp06.scn
    c/src/ada-tests/mptests/mp06/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp06/node2/mp06.scn
    c/src/ada-tests/mptests/mp06/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp07/mptest.adb
    c/src/ada-tests/mptests/mp07/mptest.ads
    c/src/ada-tests/mptests/mp07/node1/mp07.scn
    c/src/ada-tests/mptests/mp07/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp07/node2/mp07.scn
    c/src/ada-tests/mptests/mp07/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp08/mptest.adb
    c/src/ada-tests/mptests/mp08/mptest.ads
    c/src/ada-tests/mptests/mp08/node1/mp08.scn
    c/src/ada-tests/mptests/mp08/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp08/node2/mp08.scn
    c/src/ada-tests/mptests/mp08/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp09/mptest.adb
    c/src/ada-tests/mptests/mp09/mptest.ads
    c/src/ada-tests/mptests/mp09/node1/mp09.scn
    c/src/ada-tests/mptests/mp09/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp09/node2/mp09.scn
    c/src/ada-tests/mptests/mp09/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp10/mptest.adb
    c/src/ada-tests/mptests/mp10/mptest.ads
    c/src/ada-tests/mptests/mp10/node1/mp10.scn
    c/src/ada-tests/mptests/mp10/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp10/node2/mp10.scn
    c/src/ada-tests/mptests/mp10/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp11/mptest.adb
    c/src/ada-tests/mptests/mp11/mptest.ads
    c/src/ada-tests/mptests/mp11/node1/mp11.scn
    c/src/ada-tests/mptests/mp11/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp11/node2/mp11.scn
    c/src/ada-tests/mptests/mp11/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp12/mptest.adb
    c/src/ada-tests/mptests/mp12/mptest.ads
    c/src/ada-tests/mptests/mp12/node1/mp12.scn
    c/src/ada-tests/mptests/mp12/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp12/node2/mp12.scn
    c/src/ada-tests/mptests/mp12/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp13/mptest.adb
    c/src/ada-tests/mptests/mp13/mptest.ads
    c/src/ada-tests/mptests/mp13/node1/mp13.scn
    c/src/ada-tests/mptests/mp13/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp13/node2/mp13.scn
    c/src/ada-tests/mptests/mp13/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp14/mptest.adb
    c/src/ada-tests/mptests/mp14/mptest.ads
    c/src/ada-tests/mptests/mp14/node1/mp14.scn
    c/src/ada-tests/mptests/mp14/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/mptests/mp14/node2/mp14.scn
    c/src/ada-tests/mptests/mp14/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/samples/base_mp/mptest.adb
    c/src/ada-tests/samples/base_mp/mptest.ads
    c/src/ada-tests/samples/base_mp/node1/base_mp.scn
    c/src/ada-tests/samples/base_mp/node1/mptest-per_node_configuration.adb
    c/src/ada-tests/samples/base_mp/node2/base_mp.scn
    c/src/ada-tests/samples/base_mp/node2/mptest-per_node_configuration.adb
    c/src/ada-tests/samples/base_sp/base_sp.adb
    c/src/ada-tests/samples/base_sp/base_sp.scn
    c/src/ada-tests/samples/base_sp/config.h
    c/src/ada-tests/samples/base_sp/sptest.adb
    c/src/ada-tests/samples/base_sp/sptest.ads
    c/src/ada-tests/samples/hello/config.h
    c/src/ada-tests/samples/hello/hello.adb
    c/src/ada-tests/samples/hello/hello.scn
    c/src/ada-tests/samples/hello/sptest.adb
    c/src/ada-tests/samples/hello/sptest.ads
    c/src/ada-tests/samples/ticker/config.h
    c/src/ada-tests/samples/ticker/sptest.adb
    c/src/ada-tests/samples/ticker/sptest.ads
    c/src/ada-tests/samples/ticker/ticker.adb
    c/src/ada-tests/samples/ticker/ticker.scn
    c/src/ada-tests/sptests/sp01/config.h
    c/src/ada-tests/sptests/sp01/sp01.adb
    c/src/ada-tests/sptests/sp01/sp01.scn
    c/src/ada-tests/sptests/sp01/sptest.adb
    c/src/ada-tests/sptests/sp01/sptest.ads
    c/src/ada-tests/sptests/sp02/config.h
    c/src/ada-tests/sptests/sp02/sp02.adb
    c/src/ada-tests/sptests/sp02/sp02.scn
    c/src/ada-tests/sptests/sp02/sptest.adb
    c/src/ada-tests/sptests/sp02/sptest.ads
    c/src/ada-tests/sptests/sp03/config.h
    c/src/ada-tests/sptests/sp03/sp03.adb
    c/src/ada-tests/sptests/sp03/sp03.scn
    c/src/ada-tests/sptests/sp03/sptest.adb
    c/src/ada-tests/sptests/sp03/sptest.ads
    c/src/ada-tests/sptests/sp04/README
    c/src/ada-tests/sptests/sp04/config.h
    c/src/ada-tests/sptests/sp04/sp04.adb
    c/src/ada-tests/sptests/sp04/sp04.scn
    c/src/ada-tests/sptests/sp04/sptest.adb
    c/src/ada-tests/sptests/sp04/sptest.ads
    c/src/ada-tests/sptests/sp05/config.h
    c/src/ada-tests/sptests/sp05/sp05.adb
    c/src/ada-tests/sptests/sp05/sp05.scn
    c/src/ada-tests/sptests/sp05/sptest.adb
    c/src/ada-tests/sptests/sp05/sptest.ads
    c/src/ada-tests/sptests/sp06/config.h
    c/src/ada-tests/sptests/sp06/sp06.adb
    c/src/ada-tests/sptests/sp06/sp06.scn
    c/src/ada-tests/sptests/sp06/sptest.adb
    c/src/ada-tests/sptests/sp06/sptest.ads
    c/src/ada-tests/sptests/sp07/config.h
    c/src/ada-tests/sptests/sp07/sp07.adb
    c/src/ada-tests/sptests/sp07/sp07.scn
    c/src/ada-tests/sptests/sp07/sptest.adb
    c/src/ada-tests/sptests/sp07/sptest.ads
    c/src/ada-tests/sptests/sp08/config.h
    c/src/ada-tests/sptests/sp08/sp08.adb
    c/src/ada-tests/sptests/sp08/sp08.scn
    c/src/ada-tests/sptests/sp08/sptest.adb
    c/src/ada-tests/sptests/sp08/sptest.ads
    c/src/ada-tests/sptests/sp09/config.h
    c/src/ada-tests/sptests/sp09/sp09.adb
    c/src/ada-tests/sptests/sp09/sp09.scn
    c/src/ada-tests/sptests/sp09/sptest.adb
    c/src/ada-tests/sptests/sp09/sptest.ads
    c/src/ada-tests/sptests/sp11/config.h
    c/src/ada-tests/sptests/sp11/sp11.adb
    c/src/ada-tests/sptests/sp11/sp11.scn
    c/src/ada-tests/sptests/sp11/sptest.adb
    c/src/ada-tests/sptests/sp11/sptest.ads
    c/src/ada-tests/sptests/sp12/config.h
    c/src/ada-tests/sptests/sp12/sp12.adb
    c/src/ada-tests/sptests/sp12/sp12.scn
    c/src/ada-tests/sptests/sp12/sptest.adb
    c/src/ada-tests/sptests/sp12/sptest.ads
    c/src/ada-tests/sptests/sp13/config.h
    c/src/ada-tests/sptests/sp13/sp13.adb
    c/src/ada-tests/sptests/sp13/sp13.scn
    c/src/ada-tests/sptests/sp13/sptest.adb
    c/src/ada-tests/sptests/sp13/sptest.ads
    c/src/ada-tests/sptests/sp14/config.h
    c/src/ada-tests/sptests/sp14/sp14.adb
    c/src/ada-tests/sptests/sp14/sp14.scn
    c/src/ada-tests/sptests/sp14/sptest.adb
    c/src/ada-tests/sptests/sp14/sptest.ads
    c/src/ada-tests/sptests/sp15/config.h
    c/src/ada-tests/sptests/sp15/sp15.adb
    c/src/ada-tests/sptests/sp15/sp15.scn
    c/src/ada-tests/sptests/sp15/sptest.adb
    c/src/ada-tests/sptests/sp15/sptest.ads
    c/src/ada-tests/sptests/sp16/config.h
    c/src/ada-tests/sptests/sp16/sp16.adb
    c/src/ada-tests/sptests/sp16/sp16.scn
    c/src/ada-tests/sptests/sp16/sptest.adb
    c/src/ada-tests/sptests/sp16/sptest.ads
    c/src/ada-tests/sptests/sp17/config.h
    c/src/ada-tests/sptests/sp17/sp17.adb
    c/src/ada-tests/sptests/sp17/sp17.scn
    c/src/ada-tests/sptests/sp17/sptest.adb
    c/src/ada-tests/sptests/sp17/sptest.ads
    c/src/ada-tests/sptests/sp19/README
    c/src/ada-tests/sptests/sp19/config.h
    c/src/ada-tests/sptests/sp19/sp19.adb
    c/src/ada-tests/sptests/sp19/sp19.scn
    c/src/ada-tests/sptests/sp19/sptest.ads
    c/src/ada-tests/sptests/sp20/config.h
    c/src/ada-tests/sptests/sp20/sp20.adb
    c/src/ada-tests/sptests/sp20/sp20.scn
    c/src/ada-tests/sptests/sp20/sptest.adb
    c/src/ada-tests/sptests/sp20/sptest.ads
    c/src/ada-tests/sptests/sp21/config.h
    c/src/ada-tests/sptests/sp21/sp21.adb
    c/src/ada-tests/sptests/sp21/sp21.scn
    c/src/ada-tests/sptests/sp21/sptest.adb
    c/src/ada-tests/sptests/sp21/sptest.ads
    c/src/ada-tests/sptests/sp22/config.h
    c/src/ada-tests/sptests/sp22/sp22.adb
    c/src/ada-tests/sptests/sp22/sp22.scn
    c/src/ada-tests/sptests/sp22/sptest.adb
    c/src/ada-tests/sptests/sp22/sptest.ads
    c/src/ada-tests/sptests/sp23/config.h
    c/src/ada-tests/sptests/sp23/sp23.adb
    c/src/ada-tests/sptests/sp23/sp23.scn
    c/src/ada-tests/sptests/sp23/sptest.adb
    c/src/ada-tests/sptests/sp23/sptest.ads
    c/src/ada-tests/sptests/sp24/config.h
    c/src/ada-tests/sptests/sp24/sp24.adb
    c/src/ada-tests/sptests/sp24/sp24.scn
    c/src/ada-tests/sptests/sp24/sptest.adb
    c/src/ada-tests/sptests/sp24/sptest.ads
    c/src/ada-tests/sptests/sp25/config.h
    c/src/ada-tests/sptests/sp25/sp25.adb
    c/src/ada-tests/sptests/sp25/sp25.scn
    c/src/ada-tests/sptests/sp25/sptest.adb
    c/src/ada-tests/sptests/sp25/sptest.ads
    c/src/ada-tests/sptests/spsize/spsize.adb
    c/src/ada-tests/sptests/spsize/sptest.adb
    c/src/ada-tests/sptests/spsize/sptest.ads
    c/src/ada-tests/support/address_io.adb
    c/src/ada-tests/support/address_io.ads
    c/src/ada-tests/support/float_io.ads
    c/src/ada-tests/support/fp.inc
    c/src/ada-tests/support/init.c
    c/src/ada-tests/support/integer.inc
    c/src/ada-tests/support/rtems_calling_overhead.ads
    c/src/ada-tests/support/status_io.ads
    c/src/ada-tests/support/test_support.adb
    c/src/ada-tests/support/test_support.ads
    c/src/ada-tests/support/time_test_support.adb
    c/src/ada-tests/support/time_test_support.ads
    c/src/ada-tests/support/timer_driver.adb
    c/src/ada-tests/support/timer_driver.ads
    c/src/ada-tests/support/unsigned32_io.ads
    c/src/ada-tests/tmtests/tm01/config.h
    c/src/ada-tests/tmtests/tm01/tm01.adb
    c/src/ada-tests/tmtests/tm01/tmtest.adb
    c/src/ada-tests/tmtests/tm01/tmtest.ads
    c/src/ada-tests/tmtests/tm02/config.h
    c/src/ada-tests/tmtests/tm02/tm02.adb
    c/src/ada-tests/tmtests/tm02/tmtest.adb
    c/src/ada-tests/tmtests/tm02/tmtest.ads
    c/src/ada-tests/tmtests/tm03/config.h
    c/src/ada-tests/tmtests/tm03/tm03.adb
    c/src/ada-tests/tmtests/tm03/tmtest.adb
    c/src/ada-tests/tmtests/tm03/tmtest.ads
    c/src/ada-tests/tmtests/tm04/config.h
    c/src/ada-tests/tmtests/tm04/tm04.adb
    c/src/ada-tests/tmtests/tm04/tmtest.adb
    c/src/ada-tests/tmtests/tm04/tmtest.ads
    c/src/ada-tests/tmtests/tm05/config.h
    c/src/ada-tests/tmtests/tm05/tm05.adb
    c/src/ada-tests/tmtests/tm05/tmtest.adb
    c/src/ada-tests/tmtests/tm05/tmtest.ads
    c/src/ada-tests/tmtests/tm06/config.h
    c/src/ada-tests/tmtests/tm06/tm06.adb
    c/src/ada-tests/tmtests/tm06/tmtest.adb
    c/src/ada-tests/tmtests/tm06/tmtest.ads
    c/src/ada-tests/tmtests/tm07/config.h
    c/src/ada-tests/tmtests/tm07/tm07.adb
    c/src/ada-tests/tmtests/tm07/tmtest.adb
    c/src/ada-tests/tmtests/tm07/tmtest.ads
    c/src/ada-tests/tmtests/tm08/config.h
    c/src/ada-tests/tmtests/tm08/tm08.adb
    c/src/ada-tests/tmtests/tm08/tmtest.adb
    c/src/ada-tests/tmtests/tm08/tmtest.ads
    c/src/ada-tests/tmtests/tm09/config.h
    c/src/ada-tests/tmtests/tm09/tm09.adb
    c/src/ada-tests/tmtests/tm09/tmtest.adb
    c/src/ada-tests/tmtests/tm09/tmtest.ads
    c/src/ada-tests/tmtests/tm10/config.h
    c/src/ada-tests/tmtests/tm10/tm10.adb
    c/src/ada-tests/tmtests/tm10/tmtest.adb
    c/src/ada-tests/tmtests/tm10/tmtest.ads
    c/src/ada-tests/tmtests/tm11/config.h
    c/src/ada-tests/tmtests/tm11/tm11.adb
    c/src/ada-tests/tmtests/tm11/tmtest.adb
    c/src/ada-tests/tmtests/tm11/tmtest.ads
    c/src/ada-tests/tmtests/tm12/config.h
    c/src/ada-tests/tmtests/tm12/tm12.adb
    c/src/ada-tests/tmtests/tm12/tmtest.adb
    c/src/ada-tests/tmtests/tm12/tmtest.ads
    c/src/ada-tests/tmtests/tm13/config.h
    c/src/ada-tests/tmtests/tm13/tm13.adb
    c/src/ada-tests/tmtests/tm13/tmtest.adb
    c/src/ada-tests/tmtests/tm13/tmtest.ads
    c/src/ada-tests/tmtests/tm14/config.h
    c/src/ada-tests/tmtests/tm14/tm14.adb
    c/src/ada-tests/tmtests/tm14/tmtest.adb
    c/src/ada-tests/tmtests/tm14/tmtest.ads
    c/src/ada-tests/tmtests/tm15/config.h
    c/src/ada-tests/tmtests/tm15/tm15.adb
    c/src/ada-tests/tmtests/tm15/tmtest.adb
    c/src/ada-tests/tmtests/tm15/tmtest.ads
    c/src/ada-tests/tmtests/tm16/config.h
    c/src/ada-tests/tmtests/tm16/tm16.adb
    c/src/ada-tests/tmtests/tm16/tmtest.adb
    c/src/ada-tests/tmtests/tm16/tmtest.ads
    c/src/ada-tests/tmtests/tm17/config.h
    c/src/ada-tests/tmtests/tm17/tm17.adb
    c/src/ada-tests/tmtests/tm17/tmtest.adb
    c/src/ada-tests/tmtests/tm17/tmtest.ads
    c/src/ada-tests/tmtests/tm18/config.h
    c/src/ada-tests/tmtests/tm18/tm18.adb
    c/src/ada-tests/tmtests/tm18/tmtest.adb
    c/src/ada-tests/tmtests/tm18/tmtest.ads
    c/src/ada-tests/tmtests/tm19/config.h
    c/src/ada-tests/tmtests/tm19/tm19.adb
    c/src/ada-tests/tmtests/tm19/tmtest.adb
    c/src/ada-tests/tmtests/tm19/tmtest.ads
    c/src/ada-tests/tmtests/tm20/config.h
    c/src/ada-tests/tmtests/tm20/tm20.adb
    c/src/ada-tests/tmtests/tm20/tmtest.adb
    c/src/ada-tests/tmtests/tm20/tmtest.ads
    c/src/ada-tests/tmtests/tm21/config.h
    c/src/ada-tests/tmtests/tm21/tm21.adb
    c/src/ada-tests/tmtests/tm21/tmtest.adb
    c/src/ada-tests/tmtests/tm21/tmtest.ads
    c/src/ada-tests/tmtests/tm22/config.h
    c/src/ada-tests/tmtests/tm22/tm22.adb
    c/src/ada-tests/tmtests/tm22/tmtest.adb
    c/src/ada-tests/tmtests/tm22/tmtest.ads
    c/src/ada-tests/tmtests/tm23/config.h
    c/src/ada-tests/tmtests/tm23/tm23.adb
    c/src/ada-tests/tmtests/tm23/tmtest.adb
    c/src/ada-tests/tmtests/tm23/tmtest.ads
    c/src/ada-tests/tmtests/tm24/config.h
    c/src/ada-tests/tmtests/tm24/tm24.adb
    c/src/ada-tests/tmtests/tm24/tmtest.adb
    c/src/ada-tests/tmtests/tm24/tmtest.ads
    c/src/ada-tests/tmtests/tm25/config.h
    c/src/ada-tests/tmtests/tm25/tm25.adb
    c/src/ada-tests/tmtests/tm25/tmtest.adb
    c/src/ada-tests/tmtests/tm25/tmtest.ads
    c/src/ada-tests/tmtests/tm26/README
    c/src/ada-tests/tmtests/tm26/config.h
    c/src/ada-tests/tmtests/tm26/tm26.adb
    c/src/ada-tests/tmtests/tm26/tmtest.adp
    c/src/ada-tests/tmtests/tm26/tmtest.ads
    c/src/ada-tests/tmtests/tm27/README
    c/src/ada-tests/tmtests/tm27/config.h
    c/src/ada-tests/tmtests/tm27/tm27.adb
    c/src/ada-tests/tmtests/tm27/tmtest.adb
    c/src/ada-tests/tmtests/tm27/tmtest.ads
    c/src/ada-tests/tmtests/tm28/config.h
    c/src/ada-tests/tmtests/tm28/tm28.adb
    c/src/ada-tests/tmtests/tm28/tmtest.adb
    c/src/ada-tests/tmtests/tm28/tmtest.ads
    c/src/ada-tests/tmtests/tm29/config.h
    c/src/ada-tests/tmtests/tm29/tm29.adb
    c/src/ada-tests/tmtests/tm29/tmtest.adb
    c/src/ada-tests/tmtests/tm29/tmtest.ads
    c/src/ada-tests/tmtests/tmck/config.h
    c/src/ada-tests/tmtests/tmck/tmck.adb
    c/src/ada-tests/tmtests/tmck/tmtest.adb
    c/src/ada-tests/tmtests/tmck/tmtest.ads
    c/src/ada-tests/tmtests/tmoverhd/README
    c/src/ada-tests/tmtests/tmoverhd/config.h
    c/src/ada-tests/tmtests/tmoverhd/dummy_rtems.adb
    c/src/ada-tests/tmtests/tmoverhd/dummy_rtems.ads
    c/src/ada-tests/tmtests/tmoverhd/tmoverhd.adb
    c/src/ada-tests/tmtests/tmoverhd/tmtest.adb
    c/src/ada-tests/tmtests/tmoverhd/tmtest.ads
    c/src/ada/rtems.adb
    c/src/ada/rtems.ads
    c/src/exec/include/rtems/libio_.h
    c/src/exec/libcsupport/Makefile.am
    c/src/exec/libcsupport/include/chain.h
    c/src/exec/libcsupport/include/clockdrv.h
    c/src/exec/libcsupport/include/console.h
    c/src/exec/libcsupport/include/iosupp.h
    c/src/exec/libcsupport/include/motorola/mc68230.h
    c/src/exec/libcsupport/include/motorola/mc68681.h
    c/src/exec/libcsupport/include/ringbuf.h
    c/src/exec/libcsupport/include/rtems/assoc.h
    c/src/exec/libcsupport/include/rtems/error.h
    c/src/exec/libcsupport/include/rtems/libcsupport.h
    c/src/exec/libcsupport/include/rtems/libio.h
    c/src/exec/libcsupport/include/rtems/libio_.h
    c/src/exec/libcsupport/include/spurious.h
    c/src/exec/libcsupport/include/sys/filio.h
    c/src/exec/libcsupport/include/sys/ioctl.h
    c/src/exec/libcsupport/include/sys/sockio.h
    c/src/exec/libcsupport/include/sys/termios.h
    c/src/exec/libcsupport/include/sys/utime.h
    c/src/exec/libcsupport/include/sys/utsname.h
    c/src/exec/libcsupport/include/timerdrv.h
    c/src/exec/libcsupport/include/vmeintr.h
    c/src/exec/libcsupport/include/zilog/z8036.h
    c/src/exec/libcsupport/include/zilog/z8530.h
    c/src/exec/libcsupport/include/zilog/z8536.h
    c/src/exec/libcsupport/src/CASES
    c/src/exec/libcsupport/src/Makefile.am
    c/src/exec/libcsupport/src/README
    c/src/exec/libcsupport/src/TODO
    c/src/exec/libcsupport/src/__brk.c
    c/src/exec/libcsupport/src/__getpid.c
    c/src/exec/libcsupport/src/__gettod.c
    c/src/exec/libcsupport/src/__sbrk.c
    c/src/exec/libcsupport/src/__times.c
    c/src/exec/libcsupport/src/access.c
    c/src/exec/libcsupport/src/assoc.c
    c/src/exec/libcsupport/src/assocnamebad.c
    c/src/exec/libcsupport/src/base_fs.c
    c/src/exec/libcsupport/src/cfgetispeed.c
    c/src/exec/libcsupport/src/cfgetospeed.c
    c/src/exec/libcsupport/src/cfsetispeed.c
    c/src/exec/libcsupport/src/cfsetospeed.c
    c/src/exec/libcsupport/src/chdir.c
    c/src/exec/libcsupport/src/chmod.c
    c/src/exec/libcsupport/src/chown.c
    c/src/exec/libcsupport/src/close.c
    c/src/exec/libcsupport/src/closedir.c
    c/src/exec/libcsupport/src/creat.c
    c/src/exec/libcsupport/src/ctermid.c
    c/src/exec/libcsupport/src/dup.c
    c/src/exec/libcsupport/src/dup2.c
    c/src/exec/libcsupport/src/error.c
    c/src/exec/libcsupport/src/eval.c
    c/src/exec/libcsupport/src/fchmod.c
    c/src/exec/libcsupport/src/fcntl.c
    c/src/exec/libcsupport/src/fdatasync.c
    c/src/exec/libcsupport/src/fpathconf.c
    c/src/exec/libcsupport/src/fs_null_handlers.c
    c/src/exec/libcsupport/src/fstat.c
    c/src/exec/libcsupport/src/fsync.c
    c/src/exec/libcsupport/src/ftruncate.c
    c/src/exec/libcsupport/src/getcwd.c
    c/src/exec/libcsupport/src/getdents.c
    c/src/exec/libcsupport/src/getgrent.c
    c/src/exec/libcsupport/src/getpwent.c
    c/src/exec/libcsupport/src/hosterr.c
    c/src/exec/libcsupport/src/ioctl.c
    c/src/exec/libcsupport/src/isatty.c
    c/src/exec/libcsupport/src/libio.c
    c/src/exec/libcsupport/src/libio_sockets.c
    c/src/exec/libcsupport/src/link.c
    c/src/exec/libcsupport/src/lseek.c
    c/src/exec/libcsupport/src/lstat.c
    c/src/exec/libcsupport/src/malloc.c
    c/src/exec/libcsupport/src/mkdir.c
    c/src/exec/libcsupport/src/mkfifo.c
    c/src/exec/libcsupport/src/mknod.c
    c/src/exec/libcsupport/src/mount.c
    c/src/exec/libcsupport/src/newlibc.c
    c/src/exec/libcsupport/src/no_libc.c
    c/src/exec/libcsupport/src/no_posix.c
    c/src/exec/libcsupport/src/open.c
    c/src/exec/libcsupport/src/opendir.c
    c/src/exec/libcsupport/src/pathconf.c
    c/src/exec/libcsupport/src/pipe.c
    c/src/exec/libcsupport/src/read.c
    c/src/exec/libcsupport/src/readdir.c
    c/src/exec/libcsupport/src/readlink.c
    c/src/exec/libcsupport/src/rewinddir.c
    c/src/exec/libcsupport/src/rmdir.c
    c/src/exec/libcsupport/src/scandir.c
    c/src/exec/libcsupport/src/seekdir.c
    c/src/exec/libcsupport/src/stat.c
    c/src/exec/libcsupport/src/symlink.c
    c/src/exec/libcsupport/src/tcdrain.c
    c/src/exec/libcsupport/src/tcflow.c
    c/src/exec/libcsupport/src/tcflush.c
    c/src/exec/libcsupport/src/tcgetattr.c
    c/src/exec/libcsupport/src/tcgetprgrp.c
    c/src/exec/libcsupport/src/tcsendbreak.c
    c/src/exec/libcsupport/src/tcsetattr.c
    c/src/exec/libcsupport/src/tcsetpgrp.c
    c/src/exec/libcsupport/src/telldir.c
    c/src/exec/libcsupport/src/termios.c
    c/src/exec/libcsupport/src/termiosinitialize.c
    c/src/exec/libcsupport/src/termiosreserveresources.c
    c/src/exec/libcsupport/src/truncate.c
    c/src/exec/libcsupport/src/ttyname.c
    c/src/exec/libcsupport/src/ttyname_r.c
    c/src/exec/libcsupport/src/umask.c
    c/src/exec/libcsupport/src/unixlibc.c
    c/src/exec/libcsupport/src/unlink.c
    c/src/exec/libcsupport/src/unmount.c
    c/src/exec/libcsupport/src/utime.c
    c/src/exec/libcsupport/src/utsname.c
    c/src/exec/libcsupport/src/write.c
    c/src/exec/libfs/src/imfs/deviceio.c
    c/src/exec/libfs/src/imfs/imfs.h
    c/src/exec/libfs/src/imfs/imfs_chown.c
    c/src/exec/libfs/src/imfs/imfs_creat.c
    c/src/exec/libfs/src/imfs/imfs_debug.c
    c/src/exec/libfs/src/imfs/imfs_directory.c
    c/src/exec/libfs/src/imfs/imfs_eval.c
    c/src/exec/libfs/src/imfs/imfs_fchmod.c
    c/src/exec/libfs/src/imfs/imfs_fcntl.c
    c/src/exec/libfs/src/imfs/imfs_fdatasync.c
    c/src/exec/libfs/src/imfs/imfs_free.c
    c/src/exec/libfs/src/imfs/imfs_fsunmount.c
    c/src/exec/libfs/src/imfs/imfs_getchild.c
    c/src/exec/libfs/src/imfs/imfs_gtkn.c
    c/src/exec/libfs/src/imfs/imfs_handlers_device.c
    c/src/exec/libfs/src/imfs/imfs_handlers_directory.c
    c/src/exec/libfs/src/imfs/imfs_handlers_link.c
    c/src/exec/libfs/src/imfs/imfs_handlers_memfile.c
    c/src/exec/libfs/src/imfs/imfs_init.c
    c/src/exec/libfs/src/imfs/imfs_initsupp.c
    c/src/exec/libfs/src/imfs/imfs_link.c
    c/src/exec/libfs/src/imfs/imfs_mknod.c
    c/src/exec/libfs/src/imfs/imfs_mount.c
    c/src/exec/libfs/src/imfs/imfs_ntype.c
    c/src/exec/libfs/src/imfs/imfs_readlink.c
    c/src/exec/libfs/src/imfs/imfs_rmnod.c
    c/src/exec/libfs/src/imfs/imfs_stat.c
    c/src/exec/libfs/src/imfs/imfs_symlink.c
    c/src/exec/libfs/src/imfs/imfs_unixstub.c
    c/src/exec/libfs/src/imfs/imfs_unlink.c
    c/src/exec/libfs/src/imfs/imfs_unmount.c
    c/src/exec/libfs/src/imfs/imfs_utime.c
    c/src/exec/libfs/src/imfs/ioman.c
    c/src/exec/libfs/src/imfs/memfile.c
    c/src/exec/libfs/src/imfs/miniimfs_init.c
    c/src/exec/libnetworking/Makefile.am
    c/src/exec/libnetworking/README
    c/src/exec/libnetworking/arpa/Makefile.am
    c/src/exec/libnetworking/arpa/ftp.h
    c/src/exec/libnetworking/arpa/inet.h
    c/src/exec/libnetworking/arpa/nameser.h
    c/src/exec/libnetworking/arpa/nameser_compat.h
    c/src/exec/libnetworking/arpa/telnet.h
    c/src/exec/libnetworking/bpfilter.h
    c/src/exec/libnetworking/kern/Makefile.am
    c/src/exec/libnetworking/kern/kern_subr.c
    c/src/exec/libnetworking/kern/uipc_domain.c
    c/src/exec/libnetworking/kern/uipc_mbuf.c
    c/src/exec/libnetworking/kern/uipc_socket.c
    c/src/exec/libnetworking/kern/uipc_socket2.c
    c/src/exec/libnetworking/lib/Makefile.am
    c/src/exec/libnetworking/lib/README
    c/src/exec/libnetworking/lib/getprotoby.c
    c/src/exec/libnetworking/lib/rtems_bsdnet_ntp.c
    c/src/exec/libnetworking/lib/syslog.c
    c/src/exec/libnetworking/lib/tftpDriver.c
    c/src/exec/libnetworking/libc/Makefile.am
    c/src/exec/libnetworking/libc/addr2ascii.3
    c/src/exec/libnetworking/libc/addr2ascii.c
    c/src/exec/libnetworking/libc/ascii2addr.c
    c/src/exec/libnetworking/libc/base64.c
    c/src/exec/libnetworking/libc/byteorder.3
    c/src/exec/libnetworking/libc/ether_addr.c
    c/src/exec/libnetworking/libc/ethers.3
    c/src/exec/libnetworking/libc/gethostbydns.c
    c/src/exec/libnetworking/libc/gethostbyht.c
    c/src/exec/libnetworking/libc/gethostbyname.3
    c/src/exec/libnetworking/libc/gethostbynis.c
    c/src/exec/libnetworking/libc/gethostnamadr.c
    c/src/exec/libnetworking/libc/gethostname.c
    c/src/exec/libnetworking/libc/getnetbydns.c
    c/src/exec/libnetworking/libc/getnetbyht.c
    c/src/exec/libnetworking/libc/getnetbynis.c
    c/src/exec/libnetworking/libc/getnetent.3
    c/src/exec/libnetworking/libc/getnetnamadr.c
    c/src/exec/libnetworking/libc/getproto.c
    c/src/exec/libnetworking/libc/getprotoent.3
    c/src/exec/libnetworking/libc/getprotoent.c
    c/src/exec/libnetworking/libc/getprotoname.c
    c/src/exec/libnetworking/libc/getservbyname.c
    c/src/exec/libnetworking/libc/getservbyport.c
    c/src/exec/libnetworking/libc/getservent.3
    c/src/exec/libnetworking/libc/getservent.c
    c/src/exec/libnetworking/libc/herror.c
    c/src/exec/libnetworking/libc/inet.3
    c/src/exec/libnetworking/libc/inet_addr.c
    c/src/exec/libnetworking/libc/inet_lnaof.c
    c/src/exec/libnetworking/libc/inet_makeaddr.c
    c/src/exec/libnetworking/libc/inet_net_ntop.c
    c/src/exec/libnetworking/libc/inet_net_pton.c
    c/src/exec/libnetworking/libc/inet_neta.c
    c/src/exec/libnetworking/libc/inet_netof.c
    c/src/exec/libnetworking/libc/inet_network.c
    c/src/exec/libnetworking/libc/inet_ntoa.c
    c/src/exec/libnetworking/libc/inet_ntop.c
    c/src/exec/libnetworking/libc/inet_pton.c
    c/src/exec/libnetworking/libc/iso_addr.3
    c/src/exec/libnetworking/libc/iso_addr.c
    c/src/exec/libnetworking/libc/linkaddr.3
    c/src/exec/libnetworking/libc/linkaddr.c
    c/src/exec/libnetworking/libc/map_v4v6.c
    c/src/exec/libnetworking/libc/ns.3
    c/src/exec/libnetworking/libc/ns_addr.c
    c/src/exec/libnetworking/libc/ns_name.c
    c/src/exec/libnetworking/libc/ns_netint.c
    c/src/exec/libnetworking/libc/ns_ntoa.c
    c/src/exec/libnetworking/libc/ns_parse.c
    c/src/exec/libnetworking/libc/ns_print.c
    c/src/exec/libnetworking/libc/ns_ttl.c
    c/src/exec/libnetworking/libc/nsap_addr.c
    c/src/exec/libnetworking/libc/rcmd.3
    c/src/exec/libnetworking/libc/rcmd.c
    c/src/exec/libnetworking/libc/recv.c
    c/src/exec/libnetworking/libc/res_comp.c
    c/src/exec/libnetworking/libc/res_config.h
    c/src/exec/libnetworking/libc/res_data.c
    c/src/exec/libnetworking/libc/res_debug.c
    c/src/exec/libnetworking/libc/res_init.c
    c/src/exec/libnetworking/libc/res_mkquery.c
    c/src/exec/libnetworking/libc/res_mkupdate.c
    c/src/exec/libnetworking/libc/res_query.c
    c/src/exec/libnetworking/libc/res_send.c
    c/src/exec/libnetworking/libc/res_stubs.c
    c/src/exec/libnetworking/libc/res_update.c
    c/src/exec/libnetworking/libc/resolver.3
    c/src/exec/libnetworking/libc/send.c
    c/src/exec/libnetworking/libc/strsep.c
    c/src/exec/libnetworking/loop.h
    c/src/exec/libnetworking/machine/Makefile.am
    c/src/exec/libnetworking/machine/conf.h
    c/src/exec/libnetworking/machine/cpu.h
    c/src/exec/libnetworking/machine/cpufunc.h
    c/src/exec/libnetworking/machine/endian.h
    c/src/exec/libnetworking/machine/in_cksum.h
    c/src/exec/libnetworking/machine/limits.h
    c/src/exec/libnetworking/machine/param.h
    c/src/exec/libnetworking/machine/types.h
    c/src/exec/libnetworking/machine/vmparam.h
    c/src/exec/libnetworking/net/Makefile.am
    c/src/exec/libnetworking/net/bpf.h
    c/src/exec/libnetworking/net/ethernet.h
    c/src/exec/libnetworking/net/if.c
    c/src/exec/libnetworking/net/if.h
    c/src/exec/libnetworking/net/if_arp.h
    c/src/exec/libnetworking/net/if_dl.h
    c/src/exec/libnetworking/net/if_ethersubr.c
    c/src/exec/libnetworking/net/if_llc.h
    c/src/exec/libnetworking/net/if_loop.c
    c/src/exec/libnetworking/net/if_ppp.h
    c/src/exec/libnetworking/net/if_types.h
    c/src/exec/libnetworking/net/netisr.h
    c/src/exec/libnetworking/net/ppp-comp.h
    c/src/exec/libnetworking/net/ppp_defs.h
    c/src/exec/libnetworking/net/radix.c
    c/src/exec/libnetworking/net/radix.h
    c/src/exec/libnetworking/net/raw_cb.c
    c/src/exec/libnetworking/net/raw_cb.h
    c/src/exec/libnetworking/net/raw_usrreq.c
    c/src/exec/libnetworking/net/route.c
    c/src/exec/libnetworking/net/route.h
    c/src/exec/libnetworking/net/rtsock.c
    c/src/exec/libnetworking/netdb.h
    c/src/exec/libnetworking/netinet/Makefile.am
    c/src/exec/libnetworking/netinet/icmp_var.h
    c/src/exec/libnetworking/netinet/if_ether.c
    c/src/exec/libnetworking/netinet/if_ether.h
    c/src/exec/libnetworking/netinet/igmp.c
    c/src/exec/libnetworking/netinet/igmp.h
    c/src/exec/libnetworking/netinet/igmp_var.h
    c/src/exec/libnetworking/netinet/in.c
    c/src/exec/libnetworking/netinet/in.h
    c/src/exec/libnetworking/netinet/in_cksum.c
    c/src/exec/libnetworking/netinet/in_cksum_i386.c
    c/src/exec/libnetworking/netinet/in_cksum_m68k.c
    c/src/exec/libnetworking/netinet/in_cksum_powerpc.c
    c/src/exec/libnetworking/netinet/in_pcb.c
    c/src/exec/libnetworking/netinet/in_pcb.h
    c/src/exec/libnetworking/netinet/in_proto.c
    c/src/exec/libnetworking/netinet/in_rmx.c
    c/src/exec/libnetworking/netinet/in_systm.h
    c/src/exec/libnetworking/netinet/in_var.h
    c/src/exec/libnetworking/netinet/ip.h
    c/src/exec/libnetworking/netinet/ip_divert.c
    c/src/exec/libnetworking/netinet/ip_fw.c
    c/src/exec/libnetworking/netinet/ip_fw.h
    c/src/exec/libnetworking/netinet/ip_icmp.c
    c/src/exec/libnetworking/netinet/ip_icmp.h
    c/src/exec/libnetworking/netinet/ip_input.c
    c/src/exec/libnetworking/netinet/ip_mroute.c
    c/src/exec/libnetworking/netinet/ip_mroute.h
    c/src/exec/libnetworking/netinet/ip_output.c
    c/src/exec/libnetworking/netinet/ip_var.h
    c/src/exec/libnetworking/netinet/raw_ip.c
    c/src/exec/libnetworking/netinet/tcp.h
    c/src/exec/libnetworking/netinet/tcp_debug.c
    c/src/exec/libnetworking/netinet/tcp_debug.h
    c/src/exec/libnetworking/netinet/tcp_fsm.h
    c/src/exec/libnetworking/netinet/tcp_input.c
    c/src/exec/libnetworking/netinet/tcp_output.c
    c/src/exec/libnetworking/netinet/tcp_seq.h
    c/src/exec/libnetworking/netinet/tcp_subr.c
    c/src/exec/libnetworking/netinet/tcp_timer.c
    c/src/exec/libnetworking/netinet/tcp_timer.h
    c/src/exec/libnetworking/netinet/tcp_usrreq.c
    c/src/exec/libnetworking/netinet/tcp_var.h
    c/src/exec/libnetworking/netinet/tcpip.h
    c/src/exec/libnetworking/netinet/udp.h
    c/src/exec/libnetworking/netinet/udp_usrreq.c
    c/src/exec/libnetworking/netinet/udp_var.h
    c/src/exec/libnetworking/nfs/Makefile.am
    c/src/exec/libnetworking/nfs/bootp_subr.c
    c/src/exec/libnetworking/nfs/krpc.h
    c/src/exec/libnetworking/nfs/nfs.h
    c/src/exec/libnetworking/nfs/nfsdiskless.h
    c/src/exec/libnetworking/nfs/nfsproto.h
    c/src/exec/libnetworking/nfs/rpcv2.h
    c/src/exec/libnetworking/nfs/xdr_subs.h
    c/src/exec/libnetworking/opt_ipfw.h
    c/src/exec/libnetworking/opt_mrouting.h
    c/src/exec/libnetworking/opt_tcpdebug.h
    c/src/exec/libnetworking/poll.h
    c/src/exec/libnetworking/resolv.h
    c/src/exec/libnetworking/rtems/Makefile.am
    c/src/exec/libnetworking/rtems/issetugid.c
    c/src/exec/libnetworking/rtems/rtems_bootp.c
    c/src/exec/libnetworking/rtems/rtems_bsdnet.h
    c/src/exec/libnetworking/rtems/rtems_bsdnet_internal.h
    c/src/exec/libnetworking/rtems/rtems_glue.c
    c/src/exec/libnetworking/rtems/rtems_select.c
    c/src/exec/libnetworking/rtems/rtems_showicmpstat.c
    c/src/exec/libnetworking/rtems/rtems_showifstat.c
    c/src/exec/libnetworking/rtems/rtems_showipstat.c
    c/src/exec/libnetworking/rtems/rtems_showmbuf.c
    c/src/exec/libnetworking/rtems/rtems_showroute.c
    c/src/exec/libnetworking/rtems/rtems_showtcpstat.c
    c/src/exec/libnetworking/rtems/rtems_showudpstat.c
    c/src/exec/libnetworking/rtems/rtems_syscall.c
    c/src/exec/libnetworking/rtems/sghostname.c
    c/src/exec/libnetworking/rtems/tftp.h
    c/src/exec/libnetworking/sys/Makefile.am
    c/src/exec/libnetworking/sys/buf.h
    c/src/exec/libnetworking/sys/callout.h
    c/src/exec/libnetworking/sys/conf.h
    c/src/exec/libnetworking/sys/domain.h
    c/src/exec/libnetworking/sys/kernel.h
    c/src/exec/libnetworking/sys/libkern.h
    c/src/exec/libnetworking/sys/malloc.h
    c/src/exec/libnetworking/sys/mbuf.h
    c/src/exec/libnetworking/sys/mount.h
    c/src/exec/libnetworking/sys/param.h
    c/src/exec/libnetworking/sys/proc.h
    c/src/exec/libnetworking/sys/protosw.h
    c/src/exec/libnetworking/sys/queue.h
    c/src/exec/libnetworking/sys/reboot.h
    c/src/exec/libnetworking/sys/resourcevar.h
    c/src/exec/libnetworking/sys/rtprio.h
    c/src/exec/libnetworking/sys/select.h
    c/src/exec/libnetworking/sys/signalvar.h
    c/src/exec/libnetworking/sys/socket.h
    c/src/exec/libnetworking/sys/socketvar.h
    c/src/exec/libnetworking/sys/sysctl.h
    c/src/exec/libnetworking/sys/syslimits.h
    c/src/exec/libnetworking/sys/syslog.h
    c/src/exec/libnetworking/sys/systm.h
    c/src/exec/libnetworking/sys/ttydefaults.h
    c/src/exec/libnetworking/sys/ucred.h
    c/src/exec/libnetworking/sys/uio.h
    c/src/exec/libnetworking/syslog.h
    c/src/exec/libnetworking/vm/Makefile.am
    c/src/exec/libnetworking/vm/vm.h
    c/src/exec/libnetworking/vm/vm_extern.h
    c/src/exec/libnetworking/vm/vm_kern.h
    c/src/exec/libnetworking/vm/vm_param.h
    c/src/exec/libnetworking/wrapup/Makefile.am
    c/src/exec/librpc/Makefile.am
    c/src/exec/librpc/include/Makefile.am
    c/src/exec/librpc/include/rpc/Makefile.am
    c/src/exec/librpc/include/rpc/auth.h
    c/src/exec/librpc/include/rpc/clnt.h
    c/src/exec/librpc/include/rpc/rpc.h
    c/src/exec/librpc/include/rpc/rpc_msg.h
    c/src/exec/librpc/include/rpc/svc.h
    c/src/exec/librpc/include/rpc/svc_auth.h
    c/src/exec/librpc/include/rpc/types.h
    c/src/exec/librpc/include/rpc/xdr.h
    c/src/exec/librpc/src/Makefile.am
    c/src/exec/score/cpu/a29k/rtems/score/types.h
    c/src/exec/score/cpu/hppa1.1/rtems/score/types.h
    c/src/exec/score/cpu/i386/rtems/score/types.h
    c/src/exec/score/cpu/i960/rtems/score/types.h
    c/src/exec/score/cpu/m68k/rtems/score/types.h
    c/src/exec/score/cpu/mips/Makefile.am
    c/src/exec/score/cpu/mips/asm.h
    c/src/exec/score/cpu/mips/configure.in
    c/src/exec/score/cpu/mips/cpu.c
    c/src/exec/score/cpu/mips/cpu_asm.S
    c/src/exec/score/cpu/mips/cpu_asm.h
    c/src/exec/score/cpu/mips/idtcpu.h
    c/src/exec/score/cpu/mips/idtmon.h
    c/src/exec/score/cpu/mips/iregdef.h
    c/src/exec/score/cpu/mips/rtems.c
    c/src/exec/score/cpu/mips/rtems/Makefile.am
    c/src/exec/score/cpu/mips/rtems/score/Makefile.am
    c/src/exec/score/cpu/mips/rtems/score/cpu.h
    c/src/exec/score/cpu/mips/rtems/score/mips.h
    c/src/exec/score/cpu/mips/rtems/score/mips64orion.h
    c/src/exec/score/cpu/mips/rtems/score/mipstypes.h
    c/src/exec/score/cpu/mips/rtems/score/types.h
    c/src/exec/score/cpu/mips64orion/rtems/score/types.h
    c/src/exec/score/cpu/no_cpu/rtems/score/types.h
    c/src/exec/score/cpu/powerpc/asm.h
    c/src/exec/score/cpu/powerpc/rtems/score/ppc.h
    c/src/exec/score/cpu/powerpc/rtems/score/ppctypes.h
    c/src/exec/score/cpu/powerpc/rtems/score/types.h
    c/src/exec/score/cpu/sh/rtems/score/types.h
    c/src/exec/score/cpu/sparc/rtems/score/types.h
    c/src/exec/score/cpu/unix/rtems/score/types.h
    c/src/lib/include/rtems/assoc.h
    c/src/lib/include/rtems/error.h
    c/src/lib/include/rtems/libcsupport.h
    c/src/lib/include/rtems/libio.h
    c/src/lib/include/rtems/libio_.h
    c/src/lib/include/sys/filio.h
    c/src/lib/include/sys/ioctl.h
    c/src/lib/include/sys/sockio.h
    c/src/lib/include/sys/utsname.h
    c/src/lib/libbsp/i386/shared/irq/idt.c
    c/src/lib/libbsp/m68k/ods68302/startup/cpuboot.c
    c/src/lib/libbsp/mips/Makefile.am
    c/src/lib/libbsp/mips/README
    c/src/lib/libbsp/mips/configure.in
    c/src/lib/libbsp/mips/p4000/Makefile.am
    c/src/lib/libbsp/mips/p4000/README
    c/src/lib/libbsp/mips/p4000/bsp_specs
    c/src/lib/libbsp/mips/p4000/configure.in
    c/src/lib/libbsp/mips/p4000/console/Makefile.am
    c/src/lib/libbsp/mips/p4000/console/console.c
    c/src/lib/libbsp/mips/p4000/console/led.S
    c/src/lib/libbsp/mips/p4000/include/Makefile.am
    c/src/lib/libbsp/mips/p4000/include/bsp.h
    c/src/lib/libbsp/mips/p4000/include/coverhd.h
    c/src/lib/libbsp/mips/p4000/liblnk/Makefile.am
    c/src/lib/libbsp/mips/p4000/liblnk/lnklib.S
    c/src/lib/libbsp/mips/p4000/start/Makefile.am
    c/src/lib/libbsp/mips/p4000/start/start.S
    c/src/lib/libbsp/mips/p4000/startup/Makefile.am
    c/src/lib/libbsp/mips/p4000/startup/bspclean.c
    c/src/lib/libbsp/mips/p4000/startup/bspstart.c
    c/src/lib/libbsp/mips/p4000/startup/ghlinkcmds
    c/src/lib/libbsp/mips/p4000/startup/idtmem.S
    c/src/lib/libbsp/mips/p4000/startup/idttlb.S
    c/src/lib/libbsp/mips/p4000/startup/inittlb.c
    c/src/lib/libbsp/mips/p4000/startup/linkcmds
    c/src/lib/libbsp/mips/p4000/startup/setvec.c
    c/src/lib/libbsp/mips/p4000/times
    c/src/lib/libbsp/mips/p4000/wrapup/Makefile.am
    c/src/lib/libbsp/powerpc/support/new_exception_processing/Makefile.am
    c/src/lib/libbsp/powerpc/support/new_exception_processing/c_isr.inl
    c/src/lib/libbsp/powerpc/support/new_exception_processing/cpu.c
    c/src/lib/libbsp/powerpc/support/new_exception_processing/cpu.h
    c/src/lib/libbsp/powerpc/support/new_exception_processing/cpu_asm.S
    c/src/lib/libbsp/powerpc/support/old_exception_processing/Makefile.am
    c/src/lib/libbsp/powerpc/support/old_exception_processing/README
    c/src/lib/libbsp/powerpc/support/old_exception_processing/TODO
    c/src/lib/libbsp/powerpc/support/old_exception_processing/c_isr.inl
    c/src/lib/libbsp/powerpc/support/old_exception_processing/cpu.c
    c/src/lib/libbsp/powerpc/support/old_exception_processing/cpu.h
    c/src/lib/libbsp/powerpc/support/old_exception_processing/cpu_asm.S
    c/src/lib/libbsp/powerpc/support/old_exception_processing/irq_stub.S
    c/src/lib/libbsp/powerpc/support/old_exception_processing/ppccache.c
    c/src/lib/libbsp/powerpc/support/old_exception_processing/rtems.S
    c/src/lib/libc/utsname.c
    c/src/lib/libcpu/i386/idt.c
    c/src/lib/libcpu/m68k/shared/misc/memcpy.c
    c/src/lib/libcpu/mips/Makefile.am
    c/src/lib/libcpu/mips/clock/Makefile.am
    c/src/lib/libcpu/mips/clock/ckinit.c
    c/src/lib/libcpu/mips/clock/clock.S
    c/src/lib/libcpu/mips/clock/clock.h
    c/src/lib/libcpu/mips/configure.in
    c/src/lib/libcpu/mips/timer/Makefile.am
    c/src/lib/libcpu/mips/timer/gettime.S
    c/src/lib/libcpu/mips/timer/timer.c
    c/src/lib/libcpu/powerpc/new-exceptions/cpu.c
    c/src/lib/libcpu/powerpc/new-exceptions/cpu_asm.S
    c/src/lib/libcpu/powerpc/new_exception_processing/Makefile.am
    c/src/lib/libcpu/powerpc/new_exception_processing/c_isr.inl
    c/src/lib/libcpu/powerpc/new_exception_processing/cpu.c
    c/src/lib/libcpu/powerpc/new_exception_processing/cpu.h
    c/src/lib/libcpu/powerpc/new_exception_processing/cpu_asm.S
    c/src/lib/libcpu/powerpc/old-exceptions/README
    c/src/lib/libcpu/powerpc/old-exceptions/TODO
    c/src/lib/libcpu/powerpc/old-exceptions/cpu.c
    c/src/lib/libcpu/powerpc/old-exceptions/cpu_asm.S
    c/src/lib/libcpu/powerpc/old-exceptions/irq_stub.S
    c/src/lib/libcpu/powerpc/old-exceptions/ppccache.c
    c/src/lib/libcpu/powerpc/old_exception_processing/Makefile.am
    c/src/lib/libcpu/powerpc/old_exception_processing/README
    c/src/lib/libcpu/powerpc/old_exception_processing/TODO
    c/src/lib/libcpu/powerpc/old_exception_processing/c_isr.inl
    c/src/lib/libcpu/powerpc/old_exception_processing/cpu.c
    c/src/lib/libcpu/powerpc/old_exception_processing/cpu.h
    c/src/lib/libcpu/powerpc/old_exception_processing/cpu_asm.S
    c/src/lib/libcpu/powerpc/old_exception_processing/irq_stub.S
    c/src/lib/libcpu/powerpc/old_exception_processing/rtems.S
    c/src/lib/libcpu/sh/sh7032/include/iosh7032.h
    c/src/lib/libcpu/sh/sh7032/include/ispsh7032.h
    c/src/lib/libcpu/sh/sh7032/score/cpu_asm.c
    c/src/lib/libcpu/sh/sh7032/score/ispsh7032.c
    c/src/lib/libcpu/sh/sh7045/include/io_types.h
    c/src/lib/libcpu/sh/sh7045/include/iosh7045.h
    c/src/lib/libcpu/sh/sh7045/include/ispsh7045.h
    c/src/lib/libcpu/sh/sh7045/score/cpu_asm.c
    c/src/lib/libcpu/sh/sh7045/score/ispsh7045.c
    c/src/lib/libcpu/sparc/include/erc32.h
    c/src/libchip/shmdr/README
    c/src/libchip/shmdr/addlq.c
    c/src/libchip/shmdr/cnvpkt.c
    c/src/libchip/shmdr/dump.c
    c/src/libchip/shmdr/fatal.c
    c/src/libchip/shmdr/getlq.c
    c/src/libchip/shmdr/getpkt.c
    c/src/libchip/shmdr/init.c
    c/src/libchip/shmdr/initlq.c
    c/src/libchip/shmdr/intr.c
    c/src/libchip/shmdr/mpci.h
    c/src/libchip/shmdr/mpisr.c
    c/src/libchip/shmdr/poll.c
    c/src/libchip/shmdr/receive.c
    c/src/libchip/shmdr/retpkt.c
    c/src/libchip/shmdr/send.c
    c/src/libchip/shmdr/setckvec.c
    c/src/libchip/shmdr/shm_driver.h
    c/src/libfs/src/imfs/deviceio.c
    c/src/libfs/src/imfs/imfs.h
    c/src/libfs/src/imfs/imfs_chown.c
    c/src/libfs/src/imfs/imfs_creat.c
    c/src/libfs/src/imfs/imfs_debug.c
    c/src/libfs/src/imfs/imfs_directory.c
    c/src/libfs/src/imfs/imfs_eval.c
    c/src/libfs/src/imfs/imfs_fchmod.c
    c/src/libfs/src/imfs/imfs_fcntl.c
    c/src/libfs/src/imfs/imfs_fdatasync.c
    c/src/libfs/src/imfs/imfs_free.c
    c/src/libfs/src/imfs/imfs_fsunmount.c
    c/src/libfs/src/imfs/imfs_getchild.c
    c/src/libfs/src/imfs/imfs_gtkn.c
    c/src/libfs/src/imfs/imfs_handlers_device.c
    c/src/libfs/src/imfs/imfs_handlers_directory.c
    c/src/libfs/src/imfs/imfs_handlers_link.c
    c/src/libfs/src/imfs/imfs_handlers_memfile.c
    c/src/libfs/src/imfs/imfs_init.c
    c/src/libfs/src/imfs/imfs_initsupp.c
    c/src/libfs/src/imfs/imfs_link.c
    c/src/libfs/src/imfs/imfs_mknod.c
    c/src/libfs/src/imfs/imfs_mount.c
    c/src/libfs/src/imfs/imfs_ntype.c
    c/src/libfs/src/imfs/imfs_readlink.c
    c/src/libfs/src/imfs/imfs_rmnod.c
    c/src/libfs/src/imfs/imfs_stat.c
    c/src/libfs/src/imfs/imfs_symlink.c
    c/src/libfs/src/imfs/imfs_unixstub.c
    c/src/libfs/src/imfs/imfs_unlink.c
    c/src/libfs/src/imfs/imfs_unmount.c
    c/src/libfs/src/imfs/imfs_utime.c
    c/src/libfs/src/imfs/ioman.c
    c/src/libfs/src/imfs/memfile.c
    c/src/libfs/src/imfs/miniimfs_init.c
    c/src/librdbg/src/powerpc/new_exception_processing/Makefile.am
    c/src/librdbg/src/powerpc/new_exception_processing/remdeb.h
    c/src/librdbg/src/powerpc/new_exception_processing/remdeb_f.x
    c/src/librdbg/src/powerpc/new_exception_processing/remdeb_svc.c
    c/src/librdbg/src/powerpc/new_exception_processing/remdeb_xdr.c
    c/src/make/README
    c/src/make/compilers/gcc-target-default.cfg
    c/src/make/directory.cfg
    c/src/make/host.cfg.in
    c/src/make/lib.cfg
    c/src/optman/rtems/Makefile.am
    c/src/optman/rtems/no-dpmem.c
    c/src/optman/rtems/no-event.c
    c/src/optman/rtems/no-mp.c
    c/src/optman/rtems/no-msg.c
    c/src/optman/rtems/no-part.c
    c/src/optman/rtems/no-region.c
    c/src/optman/rtems/no-rtmon.c
    c/src/optman/rtems/no-sem.c
    c/src/optman/rtems/no-signal.c
    c/src/optman/rtems/no-timer.c
    c/src/optman/sapi/Makefile.am
    c/src/optman/sapi/no-ext.c
    c/src/optman/sapi/no-io.c
    cpukit/Makefile.am
    cpukit/ada/rtems.adb
    cpukit/ada/rtems.ads
    cpukit/ftpd/Makefile.am
    cpukit/ftpd/ftpd.c
    cpukit/ftpd/ftpd.h
    cpukit/httpd/Makefile.am
    cpukit/httpd/asp.c
    cpukit/httpd/balloc.c
    cpukit/httpd/default.c
    cpukit/httpd/ej.h
    cpukit/httpd/ejlex.c
    cpukit/httpd/ejparse.c
    cpukit/httpd/form.c
    cpukit/httpd/h.c
    cpukit/httpd/handler.c
    cpukit/httpd/mime.c
    cpukit/httpd/misc.c
    cpukit/httpd/ringq.c
    cpukit/httpd/rom.c
    cpukit/httpd/rtems_webserver.h
    cpukit/httpd/security.c
    cpukit/httpd/socket.c
    cpukit/httpd/sym.c
    cpukit/httpd/uemf.c
    cpukit/httpd/uemf.h
    cpukit/httpd/url.c
    cpukit/httpd/value.c
    cpukit/httpd/wbase64.c
    cpukit/httpd/webcomp.c
    cpukit/httpd/webmain.c
    cpukit/httpd/webpage.c
    cpukit/httpd/webrom.c
    cpukit/httpd/webs.c
    cpukit/httpd/webs.h
    cpukit/httpd/websuemf.c
    cpukit/httpd/wsIntrn.h
    cpukit/include/rtems/libio_.h
    cpukit/itron/Makefile.am
    cpukit/itron/include/Makefile.am
    cpukit/itron/include/itron.h
    cpukit/itron/include/itronsys/README
    cpukit/itron/include/itronsys/eventflags.h
    cpukit/itron/include/itronsys/fmempool.h
    cpukit/itron/include/itronsys/intr.h
    cpukit/itron/include/itronsys/mbox.h
    cpukit/itron/include/itronsys/msgbuffer.h
    cpukit/itron/include/itronsys/network.h
    cpukit/itron/include/itronsys/port.h
    cpukit/itron/include/itronsys/semaphore.h
    cpukit/itron/include/itronsys/status.h
    cpukit/itron/include/itronsys/sysmgmt.h
    cpukit/itron/include/itronsys/task.h
    cpukit/itron/include/itronsys/time.h
    cpukit/itron/include/itronsys/types.h
    cpukit/itron/include/itronsys/vmempool.h
    cpukit/itron/include/rtems/itron/README
    cpukit/itron/include/rtems/itron/config.h
    cpukit/itron/include/rtems/itron/eventflags.h
    cpukit/itron/include/rtems/itron/fmempool.h
    cpukit/itron/include/rtems/itron/intr.h
    cpukit/itron/include/rtems/itron/itronapi.h
    cpukit/itron/include/rtems/itron/mbox.h
    cpukit/itron/include/rtems/itron/msgbuffer.h
    cpukit/itron/include/rtems/itron/network.h
    cpukit/itron/include/rtems/itron/object.h
    cpukit/itron/include/rtems/itron/port.h
    cpukit/itron/include/rtems/itron/semaphore.h
    cpukit/itron/include/rtems/itron/sysmgmt.h
    cpukit/itron/include/rtems/itron/task.h
    cpukit/itron/include/rtems/itron/time.h
    cpukit/itron/include/rtems/itron/vmempool.h
    cpukit/itron/inline/Makefile.am
    cpukit/itron/inline/rtems/itron/eventflags.inl
    cpukit/itron/inline/rtems/itron/fmempool.inl
    cpukit/itron/inline/rtems/itron/intr.inl
    cpukit/itron/inline/rtems/itron/mbox.inl
    cpukit/itron/inline/rtems/itron/msgbuffer.inl
    cpukit/itron/inline/rtems/itron/network.inl
    cpukit/itron/inline/rtems/itron/port.inl
    cpukit/itron/inline/rtems/itron/semaphore.inl
    cpukit/itron/inline/rtems/itron/sysmgmt.inl
    cpukit/itron/inline/rtems/itron/task.inl
    cpukit/itron/inline/rtems/itron/time.inl
    cpukit/itron/inline/rtems/itron/vmempool.inl
    cpukit/itron/src/Makefile.am
    cpukit/itron/src/TODO
    cpukit/itron/src/can_wup.c
    cpukit/itron/src/chg_pri.c
    cpukit/itron/src/cre_mbf.c
    cpukit/itron/src/cre_mbx.c
    cpukit/itron/src/cre_sem.c
    cpukit/itron/src/cre_tsk.c
    cpukit/itron/src/del_mbf.c
    cpukit/itron/src/del_mbx.c
    cpukit/itron/src/del_sem.c
    cpukit/itron/src/del_tsk.c
    cpukit/itron/src/dis_dsp.c
    cpukit/itron/src/ena_dsp.c
    cpukit/itron/src/eventflags.c
    cpukit/itron/src/exd_tsk.c
    cpukit/itron/src/ext_tsk.c
    cpukit/itron/src/fmempool.c
    cpukit/itron/src/frsm_tsk.c
    cpukit/itron/src/get_tid.c
    cpukit/itron/src/itronintr.c
    cpukit/itron/src/itronsem.c
    cpukit/itron/src/itrontime.c
    cpukit/itron/src/mbox.c
    cpukit/itron/src/mboxtranslatereturncode.c
    cpukit/itron/src/msgbuffer.c
    cpukit/itron/src/msgbuffertranslatereturncode.c
    cpukit/itron/src/network.c
    cpukit/itron/src/port.c
    cpukit/itron/src/prcv_mbf.c
    cpukit/itron/src/prcv_mbx.c
    cpukit/itron/src/preq_sem.c
    cpukit/itron/src/psnd_mbf.c
    cpukit/itron/src/rcv_mbf.c
    cpukit/itron/src/rcv_mbx.c
    cpukit/itron/src/ref_mbf.c
    cpukit/itron/src/ref_mbx.c
    cpukit/itron/src/ref_sem.c
    cpukit/itron/src/ref_tsk.c
    cpukit/itron/src/rel_wai.c
    cpukit/itron/src/rot_rdq.c
    cpukit/itron/src/rsm_tsk.c
    cpukit/itron/src/sig_sem.c
    cpukit/itron/src/slp_tsk.c
    cpukit/itron/src/snd_mbf.c
    cpukit/itron/src/snd_mbx.c
    cpukit/itron/src/sta_tsk.c
    cpukit/itron/src/sus_tsk.c
    cpukit/itron/src/sysmgmt.c
    cpukit/itron/src/task.c
    cpukit/itron/src/ter_tsk.c
    cpukit/itron/src/trcv_mbf.c
    cpukit/itron/src/trcv_mbx.c
    cpukit/itron/src/tslp_tsk.c
    cpukit/itron/src/tsnd_mbf.c
    cpukit/itron/src/twai_sem.c
    cpukit/itron/src/vmempool.c
    cpukit/itron/src/wai_sem.c
    cpukit/itron/src/wup_tsk.c
    cpukit/libcsupport/Makefile.am
    cpukit/libcsupport/include/chain.h
    cpukit/libcsupport/include/clockdrv.h
    cpukit/libcsupport/include/console.h
    cpukit/libcsupport/include/iosupp.h
    cpukit/libcsupport/include/motorola/mc68230.h
    cpukit/libcsupport/include/motorola/mc68681.h
    cpukit/libcsupport/include/ringbuf.h
    cpukit/libcsupport/include/rtems/assoc.h
    cpukit/libcsupport/include/rtems/error.h
    cpukit/libcsupport/include/rtems/libcsupport.h
    cpukit/libcsupport/include/rtems/libio.h
    cpukit/libcsupport/include/rtems/libio_.h
    cpukit/libcsupport/include/spurious.h
    cpukit/libcsupport/include/sys/filio.h
    cpukit/libcsupport/include/sys/ioctl.h
    cpukit/libcsupport/include/sys/sockio.h
    cpukit/libcsupport/include/sys/termios.h
    cpukit/libcsupport/include/sys/utime.h
    cpukit/libcsupport/include/sys/utsname.h
    cpukit/libcsupport/include/timerdrv.h
    cpukit/libcsupport/include/vmeintr.h
    cpukit/libcsupport/include/zilog/z8036.h
    cpukit/libcsupport/include/zilog/z8530.h
    cpukit/libcsupport/include/zilog/z8536.h
    cpukit/libcsupport/src/CASES
    cpukit/libcsupport/src/README
    cpukit/libcsupport/src/TODO
    cpukit/libcsupport/src/__brk.c
    cpukit/libcsupport/src/__getpid.c
    cpukit/libcsupport/src/__gettod.c
    cpukit/libcsupport/src/__sbrk.c
    cpukit/libcsupport/src/__times.c
    cpukit/libcsupport/src/access.c
    cpukit/libcsupport/src/assoc.c
    cpukit/libcsupport/src/assocnamebad.c
    cpukit/libcsupport/src/base_fs.c
    cpukit/libcsupport/src/cfgetispeed.c
    cpukit/libcsupport/src/cfgetospeed.c
    cpukit/libcsupport/src/cfsetispeed.c
    cpukit/libcsupport/src/cfsetospeed.c
    cpukit/libcsupport/src/chdir.c
    cpukit/libcsupport/src/chmod.c
    cpukit/libcsupport/src/chown.c
    cpukit/libcsupport/src/close.c
    cpukit/libcsupport/src/closedir.c
    cpukit/libcsupport/src/creat.c
    cpukit/libcsupport/src/ctermid.c
    cpukit/libcsupport/src/dup.c
    cpukit/libcsupport/src/dup2.c
    cpukit/libcsupport/src/error.c
    cpukit/libcsupport/src/eval.c
    cpukit/libcsupport/src/fchmod.c
    cpukit/libcsupport/src/fcntl.c
    cpukit/libcsupport/src/fdatasync.c
    cpukit/libcsupport/src/fpathconf.c
    cpukit/libcsupport/src/fs_null_handlers.c
    cpukit/libcsupport/src/fstat.c
    cpukit/libcsupport/src/fsync.c
    cpukit/libcsupport/src/ftruncate.c
    cpukit/libcsupport/src/getcwd.c
    cpukit/libcsupport/src/getdents.c
    cpukit/libcsupport/src/getgrent.c
    cpukit/libcsupport/src/getpwent.c
    cpukit/libcsupport/src/hosterr.c
    cpukit/libcsupport/src/ioctl.c
    cpukit/libcsupport/src/isatty.c
    cpukit/libcsupport/src/libio.c
    cpukit/libcsupport/src/libio_sockets.c
    cpukit/libcsupport/src/link.c
    cpukit/libcsupport/src/lseek.c
    cpukit/libcsupport/src/lstat.c
    cpukit/libcsupport/src/malloc.c
    cpukit/libcsupport/src/mkdir.c
    cpukit/libcsupport/src/mkfifo.c
    cpukit/libcsupport/src/mknod.c
    cpukit/libcsupport/src/mount.c
    cpukit/libcsupport/src/newlibc.c
    cpukit/libcsupport/src/no_libc.c
    cpukit/libcsupport/src/no_posix.c
    cpukit/libcsupport/src/open.c
    cpukit/libcsupport/src/opendir.c
    cpukit/libcsupport/src/pathconf.c
    cpukit/libcsupport/src/pipe.c
    cpukit/libcsupport/src/read.c
    cpukit/libcsupport/src/readdir.c
    cpukit/libcsupport/src/readlink.c
    cpukit/libcsupport/src/rewinddir.c
    cpukit/libcsupport/src/rmdir.c
    cpukit/libcsupport/src/scandir.c
    cpukit/libcsupport/src/seekdir.c
    cpukit/libcsupport/src/stat.c
    cpukit/libcsupport/src/symlink.c
    cpukit/libcsupport/src/tcdrain.c
    cpukit/libcsupport/src/tcflow.c
    cpukit/libcsupport/src/tcflush.c
    cpukit/libcsupport/src/tcgetattr.c
    cpukit/libcsupport/src/tcgetprgrp.c
    cpukit/libcsupport/src/tcsendbreak.c
    cpukit/libcsupport/src/tcsetattr.c
    cpukit/libcsupport/src/tcsetpgrp.c
    cpukit/libcsupport/src/telldir.c
    cpukit/libcsupport/src/termios.c
    cpukit/libcsupport/src/termiosinitialize.c
    cpukit/libcsupport/src/termiosreserveresources.c
    cpukit/libcsupport/src/truncate.c
    cpukit/libcsupport/src/ttyname.c
    cpukit/libcsupport/src/ttyname_r.c
    cpukit/libcsupport/src/umask.c
    cpukit/libcsupport/src/unixlibc.c
    cpukit/libcsupport/src/unlink.c
    cpukit/libcsupport/src/unmount.c
    cpukit/libcsupport/src/utime.c
    cpukit/libcsupport/src/utsname.c
    cpukit/libcsupport/src/write.c
    cpukit/libfs/src/imfs/deviceio.c
    cpukit/libfs/src/imfs/imfs.h
    cpukit/libfs/src/imfs/imfs_chown.c
    cpukit/libfs/src/imfs/imfs_creat.c
    cpukit/libfs/src/imfs/imfs_debug.c
    cpukit/libfs/src/imfs/imfs_directory.c
    cpukit/libfs/src/imfs/imfs_eval.c
    cpukit/libfs/src/imfs/imfs_fchmod.c
    cpukit/libfs/src/imfs/imfs_fcntl.c
    cpukit/libfs/src/imfs/imfs_fdatasync.c
    cpukit/libfs/src/imfs/imfs_free.c
    cpukit/libfs/src/imfs/imfs_fsunmount.c
    cpukit/libfs/src/imfs/imfs_getchild.c
    cpukit/libfs/src/imfs/imfs_gtkn.c
    cpukit/libfs/src/imfs/imfs_handlers_device.c
    cpukit/libfs/src/imfs/imfs_handlers_directory.c
    cpukit/libfs/src/imfs/imfs_handlers_link.c
    cpukit/libfs/src/imfs/imfs_handlers_memfile.c
    cpukit/libfs/src/imfs/imfs_init.c
    cpukit/libfs/src/imfs/imfs_initsupp.c
    cpukit/libfs/src/imfs/imfs_link.c
    cpukit/libfs/src/imfs/imfs_mknod.c
    cpukit/libfs/src/imfs/imfs_mount.c
    cpukit/libfs/src/imfs/imfs_ntype.c
    cpukit/libfs/src/imfs/imfs_readlink.c
    cpukit/libfs/src/imfs/imfs_rmnod.c
    cpukit/libfs/src/imfs/imfs_stat.c
    cpukit/libfs/src/imfs/imfs_symlink.c
    cpukit/libfs/src/imfs/imfs_unixstub.c
    cpukit/libfs/src/imfs/imfs_unlink.c
    cpukit/libfs/src/imfs/imfs_unmount.c
    cpukit/libfs/src/imfs/imfs_utime.c
    cpukit/libfs/src/imfs/ioman.c
    cpukit/libfs/src/imfs/memfile.c
    cpukit/libfs/src/imfs/miniimfs_init.c
    cpukit/libmisc/Makefile.am
    cpukit/libmisc/README
    cpukit/libmisc/cpuuse/Makefile.am
    cpukit/libmisc/cpuuse/README
    cpukit/libmisc/cpuuse/cpuuse.c
    cpukit/libmisc/cpuuse/cpuuse.h
    cpukit/libmisc/dummy/Makefile.am
    cpukit/libmisc/dummy/README
    cpukit/libmisc/dummy/dummy.c
    cpukit/libmisc/dumpbuf/Makefile.am
    cpukit/libmisc/dumpbuf/dumpbuf.c
    cpukit/libmisc/dumpbuf/dumpbuf.h
    cpukit/libmisc/monitor/Makefile.am
    cpukit/libmisc/monitor/README
    cpukit/libmisc/monitor/mon-command.c
    cpukit/libmisc/monitor/mon-config.c
    cpukit/libmisc/monitor/mon-dname.c
    cpukit/libmisc/monitor/mon-driver.c
    cpukit/libmisc/monitor/mon-extension.c
    cpukit/libmisc/monitor/mon-itask.c
    cpukit/libmisc/monitor/mon-manager.c
    cpukit/libmisc/monitor/mon-monitor.c
    cpukit/libmisc/monitor/mon-mpci.c
    cpukit/libmisc/monitor/mon-object.c
    cpukit/libmisc/monitor/mon-prmisc.c
    cpukit/libmisc/monitor/mon-queue.c
    cpukit/libmisc/monitor/mon-server.c
    cpukit/libmisc/monitor/mon-symbols.c
    cpukit/libmisc/monitor/mon-task.c
    cpukit/libmisc/monitor/monitor.h
    cpukit/libmisc/monitor/symbols.h
    cpukit/libmisc/rtmonuse/Makefile.am
    cpukit/libmisc/rtmonuse/rtmonuse.c
    cpukit/libmisc/rtmonuse/rtmonuse.h
    cpukit/libmisc/stackchk/Makefile.am
    cpukit/libmisc/stackchk/README
    cpukit/libmisc/stackchk/check.c
    cpukit/libmisc/stackchk/internal.h
    cpukit/libmisc/stackchk/stackchk.h
    cpukit/libmisc/untar/Makefile.am
    cpukit/libmisc/untar/README
    cpukit/libmisc/untar/untar.c
    cpukit/libmisc/untar/untar.h
    cpukit/libmisc/wrapup/Makefile.am
    cpukit/libnetworking/Makefile.am
    cpukit/libnetworking/README
    cpukit/libnetworking/arpa/Makefile.am
    cpukit/libnetworking/arpa/ftp.h
    cpukit/libnetworking/arpa/inet.h
    cpukit/libnetworking/arpa/nameser.h
    cpukit/libnetworking/arpa/nameser_compat.h
    cpukit/libnetworking/arpa/telnet.h
    cpukit/libnetworking/bpfilter.h
    cpukit/libnetworking/kern/Makefile.am
    cpukit/libnetworking/kern/kern_subr.c
    cpukit/libnetworking/kern/uipc_domain.c
    cpukit/libnetworking/kern/uipc_mbuf.c
    cpukit/libnetworking/kern/uipc_socket.c
    cpukit/libnetworking/kern/uipc_socket2.c
    cpukit/libnetworking/lib/Makefile.am
    cpukit/libnetworking/lib/README
    cpukit/libnetworking/lib/getprotoby.c
    cpukit/libnetworking/lib/rtems_bsdnet_ntp.c
    cpukit/libnetworking/lib/syslog.c
    cpukit/libnetworking/lib/tftpDriver.c
    cpukit/libnetworking/libc/Makefile.am
    cpukit/libnetworking/libc/addr2ascii.3
    cpukit/libnetworking/libc/addr2ascii.c
    cpukit/libnetworking/libc/ascii2addr.c
    cpukit/libnetworking/libc/base64.c
    cpukit/libnetworking/libc/byteorder.3
    cpukit/libnetworking/libc/ether_addr.c
    cpukit/libnetworking/libc/ethers.3
    cpukit/libnetworking/libc/gethostbydns.c
    cpukit/libnetworking/libc/gethostbyht.c
    cpukit/libnetworking/libc/gethostbyname.3
    cpukit/libnetworking/libc/gethostbynis.c
    cpukit/libnetworking/libc/gethostnamadr.c
    cpukit/libnetworking/libc/gethostname.c
    cpukit/libnetworking/libc/getnetbydns.c
    cpukit/libnetworking/libc/getnetbyht.c
    cpukit/libnetworking/libc/getnetbynis.c
    cpukit/libnetworking/libc/getnetent.3
    cpukit/libnetworking/libc/getnetnamadr.c
    cpukit/libnetworking/libc/getproto.c
    cpukit/libnetworking/libc/getprotoent.3
    cpukit/libnetworking/libc/getprotoent.c
    cpukit/libnetworking/libc/getprotoname.c
    cpukit/libnetworking/libc/getservbyname.c
    cpukit/libnetworking/libc/getservbyport.c
    cpukit/libnetworking/libc/getservent.3
    cpukit/libnetworking/libc/getservent.c
    cpukit/libnetworking/libc/herror.c
    cpukit/libnetworking/libc/inet.3
    cpukit/libnetworking/libc/inet_addr.c
    cpukit/libnetworking/libc/inet_lnaof.c
    cpukit/libnetworking/libc/inet_makeaddr.c
    cpukit/libnetworking/libc/inet_net_ntop.c
    cpukit/libnetworking/libc/inet_net_pton.c
    cpukit/libnetworking/libc/inet_neta.c
    cpukit/libnetworking/libc/inet_netof.c
    cpukit/libnetworking/libc/inet_network.c
    cpukit/libnetworking/libc/inet_ntoa.c
    cpukit/libnetworking/libc/inet_ntop.c
    cpukit/libnetworking/libc/inet_pton.c
    cpukit/libnetworking/libc/iso_addr.3
    cpukit/libnetworking/libc/iso_addr.c
    cpukit/libnetworking/libc/linkaddr.3
    cpukit/libnetworking/libc/linkaddr.c
    cpukit/libnetworking/libc/map_v4v6.c
    cpukit/libnetworking/libc/ns.3
    cpukit/libnetworking/libc/ns_addr.c
    cpukit/libnetworking/libc/ns_name.c
    cpukit/libnetworking/libc/ns_netint.c
    cpukit/libnetworking/libc/ns_ntoa.c
    cpukit/libnetworking/libc/ns_parse.c
    cpukit/libnetworking/libc/ns_print.c
    cpukit/libnetworking/libc/ns_ttl.c
    cpukit/libnetworking/libc/nsap_addr.c
    cpukit/libnetworking/libc/rcmd.3
    cpukit/libnetworking/libc/rcmd.c
    cpukit/libnetworking/libc/recv.c
    cpukit/libnetworking/libc/res_comp.c
    cpukit/libnetworking/libc/res_config.h
    cpukit/libnetworking/libc/res_data.c
    cpukit/libnetworking/libc/res_debug.c
    cpukit/libnetworking/libc/res_init.c
    cpukit/libnetworking/libc/res_mkquery.c
    cpukit/libnetworking/libc/res_mkupdate.c
    cpukit/libnetworking/libc/res_query.c
    cpukit/libnetworking/libc/res_send.c
    cpukit/libnetworking/libc/res_stubs.c
    cpukit/libnetworking/libc/res_update.c
    cpukit/libnetworking/libc/resolver.3
    cpukit/libnetworking/libc/send.c
    cpukit/libnetworking/libc/strsep.c
    cpukit/libnetworking/loop.h
    cpukit/libnetworking/machine/Makefile.am
    cpukit/libnetworking/machine/conf.h
    cpukit/libnetworking/machine/cpu.h
    cpukit/libnetworking/machine/cpufunc.h
    cpukit/libnetworking/machine/endian.h
    cpukit/libnetworking/machine/in_cksum.h
    cpukit/libnetworking/machine/limits.h
    cpukit/libnetworking/machine/param.h
    cpukit/libnetworking/machine/types.h
    cpukit/libnetworking/machine/vmparam.h
    cpukit/libnetworking/net/Makefile.am
    cpukit/libnetworking/net/bpf.h
    cpukit/libnetworking/net/ethernet.h
    cpukit/libnetworking/net/if.c
    cpukit/libnetworking/net/if.h
    cpukit/libnetworking/net/if_arp.h
    cpukit/libnetworking/net/if_dl.h
    cpukit/libnetworking/net/if_ethersubr.c
    cpukit/libnetworking/net/if_llc.h
    cpukit/libnetworking/net/if_loop.c
    cpukit/libnetworking/net/if_ppp.h
    cpukit/libnetworking/net/if_types.h
    cpukit/libnetworking/net/netisr.h
    cpukit/libnetworking/net/ppp-comp.h
    cpukit/libnetworking/net/ppp_defs.h
    cpukit/libnetworking/net/radix.c
    cpukit/libnetworking/net/radix.h
    cpukit/libnetworking/net/raw_cb.c
    cpukit/libnetworking/net/raw_cb.h
    cpukit/libnetworking/net/raw_usrreq.c
    cpukit/libnetworking/net/route.c
    cpukit/libnetworking/net/route.h
    cpukit/libnetworking/net/rtsock.c
    cpukit/libnetworking/netdb.h
    cpukit/libnetworking/netinet/Makefile.am
    cpukit/libnetworking/netinet/icmp_var.h
    cpukit/libnetworking/netinet/if_ether.c
    cpukit/libnetworking/netinet/if_ether.h
    cpukit/libnetworking/netinet/igmp.c
    cpukit/libnetworking/netinet/igmp.h
    cpukit/libnetworking/netinet/igmp_var.h
    cpukit/libnetworking/netinet/in.c
    cpukit/libnetworking/netinet/in.h
    cpukit/libnetworking/netinet/in_cksum.c
    cpukit/libnetworking/netinet/in_cksum_i386.c
    cpukit/libnetworking/netinet/in_cksum_i386.h
    cpukit/libnetworking/netinet/in_cksum_m68k.c
    cpukit/libnetworking/netinet/in_cksum_m68k.h
    cpukit/libnetworking/netinet/in_cksum_powerpc.c
    cpukit/libnetworking/netinet/in_cksum_powerpc.h
    cpukit/libnetworking/netinet/in_pcb.c
    cpukit/libnetworking/netinet/in_pcb.h
    cpukit/libnetworking/netinet/in_proto.c
    cpukit/libnetworking/netinet/in_rmx.c
    cpukit/libnetworking/netinet/in_systm.h
    cpukit/libnetworking/netinet/in_var.h
    cpukit/libnetworking/netinet/ip.h
    cpukit/libnetworking/netinet/ip_divert.c
    cpukit/libnetworking/netinet/ip_fw.c
    cpukit/libnetworking/netinet/ip_fw.h
    cpukit/libnetworking/netinet/ip_icmp.c
    cpukit/libnetworking/netinet/ip_icmp.h
    cpukit/libnetworking/netinet/ip_input.c
    cpukit/libnetworking/netinet/ip_mroute.c
    cpukit/libnetworking/netinet/ip_mroute.h
    cpukit/libnetworking/netinet/ip_output.c
    cpukit/libnetworking/netinet/ip_var.h
    cpukit/libnetworking/netinet/raw_ip.c
    cpukit/libnetworking/netinet/tcp.h
    cpukit/libnetworking/netinet/tcp_debug.c
    cpukit/libnetworking/netinet/tcp_debug.h
    cpukit/libnetworking/netinet/tcp_fsm.h
    cpukit/libnetworking/netinet/tcp_input.c
    cpukit/libnetworking/netinet/tcp_output.c
    cpukit/libnetworking/netinet/tcp_seq.h
    cpukit/libnetworking/netinet/tcp_subr.c
    cpukit/libnetworking/netinet/tcp_timer.c
    cpukit/libnetworking/netinet/tcp_timer.h
    cpukit/libnetworking/netinet/tcp_usrreq.c
    cpukit/libnetworking/netinet/tcp_var.h
    cpukit/libnetworking/netinet/tcpip.h
    cpukit/libnetworking/netinet/udp.h
    cpukit/libnetworking/netinet/udp_usrreq.c
    cpukit/libnetworking/netinet/udp_var.h
    cpukit/libnetworking/nfs/Makefile.am
    cpukit/libnetworking/nfs/bootp_subr.c
    cpukit/libnetworking/nfs/krpc.h
    cpukit/libnetworking/nfs/nfs.h
    cpukit/libnetworking/nfs/nfsdiskless.h
    cpukit/libnetworking/nfs/nfsproto.h
    cpukit/libnetworking/nfs/rpcv2.h
    cpukit/libnetworking/nfs/xdr_subs.h
    cpukit/libnetworking/opt_ipfw.h
    cpukit/libnetworking/opt_mrouting.h
    cpukit/libnetworking/opt_tcpdebug.h
    cpukit/libnetworking/poll.h
    cpukit/libnetworking/resolv.h
    cpukit/libnetworking/rtems/Makefile.am
    cpukit/libnetworking/rtems/issetugid.c
    cpukit/libnetworking/rtems/rtems_bootp.c
    cpukit/libnetworking/rtems/rtems_bsdnet.h
    cpukit/libnetworking/rtems/rtems_bsdnet_internal.h
    cpukit/libnetworking/rtems/rtems_glue.c
    cpukit/libnetworking/rtems/rtems_select.c
    cpukit/libnetworking/rtems/rtems_showicmpstat.c
    cpukit/libnetworking/rtems/rtems_showifstat.c
    cpukit/libnetworking/rtems/rtems_showipstat.c
    cpukit/libnetworking/rtems/rtems_showmbuf.c
    cpukit/libnetworking/rtems/rtems_showroute.c
    cpukit/libnetworking/rtems/rtems_showtcpstat.c
    cpukit/libnetworking/rtems/rtems_showudpstat.c
    cpukit/libnetworking/rtems/rtems_syscall.c
    cpukit/libnetworking/rtems/sghostname.c
    cpukit/libnetworking/rtems/tftp.h
    cpukit/libnetworking/sys/Makefile.am
    cpukit/libnetworking/sys/buf.h
    cpukit/libnetworking/sys/callout.h
    cpukit/libnetworking/sys/conf.h
    cpukit/libnetworking/sys/domain.h
    cpukit/libnetworking/sys/kernel.h
    cpukit/libnetworking/sys/libkern.h
    cpukit/libnetworking/sys/malloc.h
    cpukit/libnetworking/sys/mbuf.h
    cpukit/libnetworking/sys/mount.h
    cpukit/libnetworking/sys/param.h
    cpukit/libnetworking/sys/proc.h
    cpukit/libnetworking/sys/protosw.h
    cpukit/libnetworking/sys/queue.h
    cpukit/libnetworking/sys/reboot.h
    cpukit/libnetworking/sys/resourcevar.h
    cpukit/libnetworking/sys/rtprio.h
    cpukit/libnetworking/sys/select.h
    cpukit/libnetworking/sys/signalvar.h
    cpukit/libnetworking/sys/socket.h
    cpukit/libnetworking/sys/socketvar.h
    cpukit/libnetworking/sys/sysctl.h
    cpukit/libnetworking/sys/syslimits.h
    cpukit/libnetworking/sys/syslog.h
    cpukit/libnetworking/sys/systm.h
    cpukit/libnetworking/sys/ttydefaults.h
    cpukit/libnetworking/sys/ucred.h
    cpukit/libnetworking/sys/uio.h
    cpukit/libnetworking/syslog.h
    cpukit/libnetworking/vm/Makefile.am
    cpukit/libnetworking/vm/vm.h
    cpukit/libnetworking/vm/vm_extern.h
    cpukit/libnetworking/vm/vm_kern.h
    cpukit/libnetworking/vm/vm_param.h
    cpukit/libnetworking/wrapup/Makefile.am
    cpukit/librpc/Makefile.am
    cpukit/librpc/include/Makefile.am
    cpukit/librpc/include/rpc/Makefile.am
    cpukit/librpc/include/rpc/auth.h
    cpukit/librpc/include/rpc/clnt.h
    cpukit/librpc/include/rpc/rpc.h
    cpukit/librpc/include/rpc/rpc_msg.h
    cpukit/librpc/include/rpc/svc.h
    cpukit/librpc/include/rpc/svc_auth.h
    cpukit/librpc/include/rpc/types.h
    cpukit/librpc/include/rpc/xdr.h
    cpukit/librpc/src/Makefile.am
    cpukit/posix/Makefile.am
    cpukit/posix/include/Makefile.am
    cpukit/posix/include/aio.h
    cpukit/posix/include/devctl.h
    cpukit/posix/include/intr.h
    cpukit/posix/include/mqueue.h
    cpukit/posix/include/rtems/posix/cancel.h
    cpukit/posix/include/rtems/posix/cond.h
    cpukit/posix/include/rtems/posix/condmp.h
    cpukit/posix/include/rtems/posix/config.h
    cpukit/posix/include/rtems/posix/intr.h
    cpukit/posix/include/rtems/posix/key.h
    cpukit/posix/include/rtems/posix/mqueue.h
    cpukit/posix/include/rtems/posix/mqueuemp.h
    cpukit/posix/include/rtems/posix/mutex.h
    cpukit/posix/include/rtems/posix/mutexmp.h
    cpukit/posix/include/rtems/posix/posixapi.h
    cpukit/posix/include/rtems/posix/priority.h
    cpukit/posix/include/rtems/posix/psignal.h
    cpukit/posix/include/rtems/posix/pthread.h
    cpukit/posix/include/rtems/posix/pthreadmp.h
    cpukit/posix/include/rtems/posix/ptimer.h
    cpukit/posix/include/rtems/posix/semaphore.h
    cpukit/posix/include/rtems/posix/semaphoremp.h
    cpukit/posix/include/rtems/posix/threadsup.h
    cpukit/posix/include/rtems/posix/time.h
    cpukit/posix/include/rtems/posix/timer.h
    cpukit/posix/include/sched.h
    cpukit/posix/include/semaphore.h
    cpukit/posix/inline/Makefile.am
    cpukit/posix/inline/rtems/posix/cond.inl
    cpukit/posix/inline/rtems/posix/intr.inl
    cpukit/posix/inline/rtems/posix/key.inl
    cpukit/posix/inline/rtems/posix/mqueue.inl
    cpukit/posix/inline/rtems/posix/mutex.inl
    cpukit/posix/inline/rtems/posix/priority.inl
    cpukit/posix/inline/rtems/posix/pthread.inl
    cpukit/posix/inline/rtems/posix/semaphore.inl
    cpukit/posix/macros/Makefile.am
    cpukit/posix/src/Makefile.am
    cpukit/posix/src/README.mqueue
    cpukit/posix/src/adasupp.c
    cpukit/posix/src/aio.c
    cpukit/posix/src/alarm.c
    cpukit/posix/src/cancel.c
    cpukit/posix/src/cancelrun.c
    cpukit/posix/src/cleanuppop.c
    cpukit/posix/src/cleanuppush.c
    cpukit/posix/src/clockgetcpuclockid.c
    cpukit/posix/src/clockgetenableattr.c
    cpukit/posix/src/clockgetres.c
    cpukit/posix/src/clockgettime.c
    cpukit/posix/src/clocksetenableattr.c
    cpukit/posix/src/clocksettime.c
    cpukit/posix/src/cond.c
    cpukit/posix/src/condattrdestroy.c
    cpukit/posix/src/condattrgetpshared.c
    cpukit/posix/src/condattrinit.c
    cpukit/posix/src/condattrsetpshared.c
    cpukit/posix/src/condbroadcast.c
    cpukit/posix/src/conddefaultattributes.c
    cpukit/posix/src/conddestroy.c
    cpukit/posix/src/condinit.c
    cpukit/posix/src/condmp.c
    cpukit/posix/src/condsignal.c
    cpukit/posix/src/condsignalsupp.c
    cpukit/posix/src/condtimedwait.c
    cpukit/posix/src/condwait.c
    cpukit/posix/src/condwaitsupp.c
    cpukit/posix/src/devctl.c
    cpukit/posix/src/execl.c
    cpukit/posix/src/execle.c
    cpukit/posix/src/execlp.c
    cpukit/posix/src/execv.c
    cpukit/posix/src/execve.c
    cpukit/posix/src/execvp.c
    cpukit/posix/src/fork.c
    cpukit/posix/src/getegid.c
    cpukit/posix/src/geteuid.c
    cpukit/posix/src/getgid.c
    cpukit/posix/src/getgroups.c
    cpukit/posix/src/getlogin.c
    cpukit/posix/src/getpgrp.c
    cpukit/posix/src/getpid.c
    cpukit/posix/src/getppid.c
    cpukit/posix/src/getuid.c
    cpukit/posix/src/intr.c
    cpukit/posix/src/key.c
    cpukit/posix/src/keycreate.c
    cpukit/posix/src/keydelete.c
    cpukit/posix/src/keygetspecific.c
    cpukit/posix/src/keyrundestructors.c
    cpukit/posix/src/keysetspecific.c
    cpukit/posix/src/kill.c
    cpukit/posix/src/killinfo.c
    cpukit/posix/src/mqueue.c
    cpukit/posix/src/mqueueclose.c
    cpukit/posix/src/mqueuecreatesupp.c
    cpukit/posix/src/mqueuedeletesupp.c
    cpukit/posix/src/mqueuegetattr.c
    cpukit/posix/src/mqueuenametoid.c
    cpukit/posix/src/mqueuenotify.c
    cpukit/posix/src/mqueueopen.c
    cpukit/posix/src/mqueuereceive.c
    cpukit/posix/src/mqueuerecvsupp.c
    cpukit/posix/src/mqueuesend.c
    cpukit/posix/src/mqueuesendsupp.c
    cpukit/posix/src/mqueuesetattr.c
    cpukit/posix/src/mqueuetimedreceive.c
    cpukit/posix/src/mqueuetimedsend.c
    cpukit/posix/src/mqueuetranslatereturncode.c
    cpukit/posix/src/mqueueunlink.c
    cpukit/posix/src/mutex.c
    cpukit/posix/src/mutexattrdestroy.c
    cpukit/posix/src/mutexattrgetprioceiling.c
    cpukit/posix/src/mutexattrgetprotocol.c
    cpukit/posix/src/mutexattrgetpshared.c
    cpukit/posix/src/mutexattrinit.c
    cpukit/posix/src/mutexattrsetprioceiling.c
    cpukit/posix/src/mutexattrsetprotocol.c
    cpukit/posix/src/mutexattrsetpshared.c
    cpukit/posix/src/mutexdefaultattributes.c
    cpukit/posix/src/mutexdestroy.c
    cpukit/posix/src/mutexfromcorestatus.c
    cpukit/posix/src/mutexgetprioceiling.c
    cpukit/posix/src/mutexinit.c
    cpukit/posix/src/mutexlock.c
    cpukit/posix/src/mutexlocksupp.c
    cpukit/posix/src/mutexmp.c
    cpukit/posix/src/mutexsetprioceiling.c
    cpukit/posix/src/mutextimedlock.c
    cpukit/posix/src/mutextrylock.c
    cpukit/posix/src/mutexunlock.c
    cpukit/posix/src/nanosleep.c
    cpukit/posix/src/pause.c
    cpukit/posix/src/posixintervaltotimespec.c
    cpukit/posix/src/posixtimespecsubtract.c
    cpukit/posix/src/posixtimespectointerval.c
    cpukit/posix/src/psignal.c
    cpukit/posix/src/psignalchecksignal.c
    cpukit/posix/src/psignalclearprocesssignals.c
    cpukit/posix/src/psignalclearsignals.c
    cpukit/posix/src/psignalsetprocesssignals.c
    cpukit/posix/src/psignalunblockthread.c
    cpukit/posix/src/pthread.c
    cpukit/posix/src/pthreadatfork.c
    cpukit/posix/src/pthreadattrdestroy.c
    cpukit/posix/src/pthreadattrgetdetachstate.c
    cpukit/posix/src/pthreadattrgetinheritsched.c
    cpukit/posix/src/pthreadattrgetschedparam.c
    cpukit/posix/src/pthreadattrgetschedpolicy.c
    cpukit/posix/src/pthreadattrgetscope.c
    cpukit/posix/src/pthreadattrgetstackaddr.c
    cpukit/posix/src/pthreadattrgetstacksize.c
    cpukit/posix/src/pthreadattrinit.c
    cpukit/posix/src/pthreadattrsetdetachstate.c
    cpukit/posix/src/pthreadattrsetinheritsched.c
    cpukit/posix/src/pthreadattrsetschedparam.c
    cpukit/posix/src/pthreadattrsetschedpolicy.c
    cpukit/posix/src/pthreadattrsetscope.c
    cpukit/posix/src/pthreadattrsetstackaddr.c
    cpukit/posix/src/pthreadattrsetstacksize.c
    cpukit/posix/src/pthreadcreate.c
    cpukit/posix/src/pthreaddetach.c
    cpukit/posix/src/pthreadequal.c
    cpukit/posix/src/pthreadexit.c
    cpukit/posix/src/pthreadgetcpuclockid.c
    cpukit/posix/src/pthreadgetcputime.c
    cpukit/posix/src/pthreadgetschedparam.c
    cpukit/posix/src/pthreadjoin.c
    cpukit/posix/src/pthreadkill.c
    cpukit/posix/src/pthreadonce.c
    cpukit/posix/src/pthreadself.c
    cpukit/posix/src/pthreadsetcputime.c
    cpukit/posix/src/pthreadsetschedparam.c
    cpukit/posix/src/pthreadsigmask.c
    cpukit/posix/src/ptimer.c
    cpukit/posix/src/ptimer1.c
    cpukit/posix/src/sched.c
    cpukit/posix/src/semaphore.c
    cpukit/posix/src/semaphorecreatesupp.c
    cpukit/posix/src/semaphoredeletesupp.c
    cpukit/posix/src/semaphoremp.c
    cpukit/posix/src/semaphorenametoid.c
    cpukit/posix/src/semaphorewaitsupp.c
    cpukit/posix/src/semclose.c
    cpukit/posix/src/semdestroy.c
    cpukit/posix/src/semgetvalue.c
    cpukit/posix/src/seminit.c
    cpukit/posix/src/semopen.c
    cpukit/posix/src/sempost.c
    cpukit/posix/src/semtimedwait.c
    cpukit/posix/src/semtrywait.c
    cpukit/posix/src/semunlink.c
    cpukit/posix/src/semwait.c
    cpukit/posix/src/setcancelstate.c
    cpukit/posix/src/setcanceltype.c
    cpukit/posix/src/setpgid.c
    cpukit/posix/src/setsid.c
    cpukit/posix/src/sigaction.c
    cpukit/posix/src/sigaddset.c
    cpukit/posix/src/sigdelset.c
    cpukit/posix/src/sigemptyset.c
    cpukit/posix/src/sigfillset.c
    cpukit/posix/src/sigismember.c
    cpukit/posix/src/signal_2.c
    cpukit/posix/src/sigpending.c
    cpukit/posix/src/sigprocmask.c
    cpukit/posix/src/sigqueue.c
    cpukit/posix/src/sigsuspend.c
    cpukit/posix/src/sigtimedwait.c
    cpukit/posix/src/sigwait.c
    cpukit/posix/src/sigwaitinfo.c
    cpukit/posix/src/sleep.c
    cpukit/posix/src/sysconf.c
    cpukit/posix/src/testcancel.c
    cpukit/posix/src/time.c
    cpukit/posix/src/types.c
    cpukit/posix/src/wait.c
    cpukit/posix/src/waitpid.c
    cpukit/pppd/Makefile.am
    cpukit/pppd/README
    cpukit/pppd/STATUS
    cpukit/pppd/auth.c
    cpukit/pppd/cbcp.c
    cpukit/pppd/cbcp.h
    cpukit/pppd/ccp.c
    cpukit/pppd/ccp.h
    cpukit/pppd/chap.c
    cpukit/pppd/chap.h
    cpukit/pppd/chap_ms.c
    cpukit/pppd/chap_ms.h
    cpukit/pppd/chat.c
    cpukit/pppd/demand.c
    cpukit/pppd/fsm.c
    cpukit/pppd/fsm.h
    cpukit/pppd/ipcp.c
    cpukit/pppd/ipcp.h
    cpukit/pppd/ipxcp.c
    cpukit/pppd/ipxcp.h
    cpukit/pppd/lcp.c
    cpukit/pppd/lcp.h
    cpukit/pppd/magic.c
    cpukit/pppd/magic.h
    cpukit/pppd/md4.c
    cpukit/pppd/md4.h
    cpukit/pppd/md5.c
    cpukit/pppd/md5.h
    cpukit/pppd/options.c
    cpukit/pppd/patchlevel.h
    cpukit/pppd/pathnames.h
    cpukit/pppd/pppd.h
    cpukit/pppd/upap.c
    cpukit/pppd/upap.h
    cpukit/rtems/Makefile.am
    cpukit/rtems/include/Makefile.am
    cpukit/rtems/include/rtems.h
    cpukit/rtems/include/rtems/rtems/asr.h
    cpukit/rtems/include/rtems/rtems/attr.h
    cpukit/rtems/include/rtems/rtems/clock.h
    cpukit/rtems/include/rtems/rtems/config.h
    cpukit/rtems/include/rtems/rtems/dpmem.h
    cpukit/rtems/include/rtems/rtems/event.h
    cpukit/rtems/include/rtems/rtems/eventmp.h
    cpukit/rtems/include/rtems/rtems/eventset.h
    cpukit/rtems/include/rtems/rtems/intr.h
    cpukit/rtems/include/rtems/rtems/message.h
    cpukit/rtems/include/rtems/rtems/modes.h
    cpukit/rtems/include/rtems/rtems/mp.h
    cpukit/rtems/include/rtems/rtems/msgmp.h
    cpukit/rtems/include/rtems/rtems/options.h
    cpukit/rtems/include/rtems/rtems/part.h
    cpukit/rtems/include/rtems/rtems/partmp.h
    cpukit/rtems/include/rtems/rtems/ratemon.h
    cpukit/rtems/include/rtems/rtems/region.h
    cpukit/rtems/include/rtems/rtems/regionmp.h
    cpukit/rtems/include/rtems/rtems/rtemsapi.h
    cpukit/rtems/include/rtems/rtems/sem.h
    cpukit/rtems/include/rtems/rtems/semmp.h
    cpukit/rtems/include/rtems/rtems/signal.h
    cpukit/rtems/include/rtems/rtems/signalmp.h
    cpukit/rtems/include/rtems/rtems/status.h
    cpukit/rtems/include/rtems/rtems/support.h
    cpukit/rtems/include/rtems/rtems/taskmp.h
    cpukit/rtems/include/rtems/rtems/tasks.h
    cpukit/rtems/include/rtems/rtems/timer.h
    cpukit/rtems/include/rtems/rtems/types.h
    cpukit/rtems/inline/Makefile.am
    cpukit/rtems/inline/rtems/rtems/asr.inl
    cpukit/rtems/inline/rtems/rtems/attr.inl
    cpukit/rtems/inline/rtems/rtems/dpmem.inl
    cpukit/rtems/inline/rtems/rtems/event.inl
    cpukit/rtems/inline/rtems/rtems/eventset.inl
    cpukit/rtems/inline/rtems/rtems/message.inl
    cpukit/rtems/inline/rtems/rtems/modes.inl
    cpukit/rtems/inline/rtems/rtems/options.inl
    cpukit/rtems/inline/rtems/rtems/part.inl
    cpukit/rtems/inline/rtems/rtems/ratemon.inl
    cpukit/rtems/inline/rtems/rtems/region.inl
    cpukit/rtems/inline/rtems/rtems/sem.inl
    cpukit/rtems/inline/rtems/rtems/status.inl
    cpukit/rtems/inline/rtems/rtems/support.inl
    cpukit/rtems/inline/rtems/rtems/tasks.inl
    cpukit/rtems/inline/rtems/rtems/timer.inl
    cpukit/rtems/macros/Makefile.am
    cpukit/rtems/macros/rtems/rtems/asr.inl
    cpukit/rtems/macros/rtems/rtems/attr.inl
    cpukit/rtems/macros/rtems/rtems/dpmem.inl
    cpukit/rtems/macros/rtems/rtems/event.inl
    cpukit/rtems/macros/rtems/rtems/eventset.inl
    cpukit/rtems/macros/rtems/rtems/message.inl
    cpukit/rtems/macros/rtems/rtems/modes.inl
    cpukit/rtems/macros/rtems/rtems/options.inl
    cpukit/rtems/macros/rtems/rtems/part.inl
    cpukit/rtems/macros/rtems/rtems/ratemon.inl
    cpukit/rtems/macros/rtems/rtems/region.inl
    cpukit/rtems/macros/rtems/rtems/sem.inl
    cpukit/rtems/macros/rtems/rtems/status.inl
    cpukit/rtems/macros/rtems/rtems/support.inl
    cpukit/rtems/macros/rtems/rtems/tasks.inl
    cpukit/rtems/macros/rtems/rtems/timer.inl
    cpukit/rtems/src/Makefile.am
    cpukit/rtems/src/attr.c
    cpukit/rtems/src/clockget.c
    cpukit/rtems/src/clockset.c
    cpukit/rtems/src/clocktick.c
    cpukit/rtems/src/clocktodtoseconds.c
    cpukit/rtems/src/clocktodvalidate.c
    cpukit/rtems/src/dpmem.c
    cpukit/rtems/src/dpmemcreate.c
    cpukit/rtems/src/dpmemdelete.c
    cpukit/rtems/src/dpmemexternal2internal.c
    cpukit/rtems/src/dpmemident.c
    cpukit/rtems/src/dpmeminternal2external.c
    cpukit/rtems/src/event.c
    cpukit/rtems/src/eventmp.c
    cpukit/rtems/src/eventreceive.c
    cpukit/rtems/src/eventseize.c
    cpukit/rtems/src/eventsend.c
    cpukit/rtems/src/eventsurrender.c
    cpukit/rtems/src/eventtimeout.c
    cpukit/rtems/src/intr.c
    cpukit/rtems/src/intrbody.c
    cpukit/rtems/src/intrcatch.c
    cpukit/rtems/src/mp.c
    cpukit/rtems/src/msg.c
    cpukit/rtems/src/msgmp.c
    cpukit/rtems/src/msgqallocate.c
    cpukit/rtems/src/msgqbroadcast.c
    cpukit/rtems/src/msgqcreate.c
    cpukit/rtems/src/msgqdelete.c
    cpukit/rtems/src/msgqflush.c
    cpukit/rtems/src/msgqgetnumberpending.c
    cpukit/rtems/src/msgqident.c
    cpukit/rtems/src/msgqreceive.c
    cpukit/rtems/src/msgqsend.c
    cpukit/rtems/src/msgqsubmit.c
    cpukit/rtems/src/msgqtranslatereturncode.c
    cpukit/rtems/src/msgqurgent.c
    cpukit/rtems/src/part.c
    cpukit/rtems/src/partcreate.c
    cpukit/rtems/src/partdelete.c
    cpukit/rtems/src/partgetbuffer.c
    cpukit/rtems/src/partident.c
    cpukit/rtems/src/partmp.c
    cpukit/rtems/src/partreturnbuffer.c
    cpukit/rtems/src/ratemon.c
    cpukit/rtems/src/ratemoncancel.c
    cpukit/rtems/src/ratemoncreate.c
    cpukit/rtems/src/ratemondelete.c
    cpukit/rtems/src/ratemongetstatus.c
    cpukit/rtems/src/ratemonident.c
    cpukit/rtems/src/ratemonperiod.c
    cpukit/rtems/src/ratemontimeout.c
    cpukit/rtems/src/region.c
    cpukit/rtems/src/regioncreate.c
    cpukit/rtems/src/regiondelete.c
    cpukit/rtems/src/regionextend.c
    cpukit/rtems/src/regiongetsegment.c
    cpukit/rtems/src/regiongetsegmentsize.c
    cpukit/rtems/src/regionident.c
    cpukit/rtems/src/regionmp.c
    cpukit/rtems/src/regionreturnsegment.c
    cpukit/rtems/src/rtclock.c
    cpukit/rtems/src/rtemstimer.c
    cpukit/rtems/src/sem.c
    cpukit/rtems/src/semcreate.c
    cpukit/rtems/src/semdelete.c
    cpukit/rtems/src/semflush.c
    cpukit/rtems/src/semident.c
    cpukit/rtems/src/semmp.c
    cpukit/rtems/src/semobtain.c
    cpukit/rtems/src/semrelease.c
    cpukit/rtems/src/semtranslatereturncode.c
    cpukit/rtems/src/signal.c
    cpukit/rtems/src/signalcatch.c
    cpukit/rtems/src/signalmp.c
    cpukit/rtems/src/signalsend.c
    cpukit/rtems/src/taskcreate.c
    cpukit/rtems/src/taskdelete.c
    cpukit/rtems/src/taskgetnote.c
    cpukit/rtems/src/taskident.c
    cpukit/rtems/src/taskinitusers.c
    cpukit/rtems/src/taskissuspended.c
    cpukit/rtems/src/taskmode.c
    cpukit/rtems/src/taskmp.c
    cpukit/rtems/src/taskrestart.c
    cpukit/rtems/src/taskresume.c
    cpukit/rtems/src/tasks.c
    cpukit/rtems/src/tasksetnote.c
    cpukit/rtems/src/tasksetpriority.c
    cpukit/rtems/src/taskstart.c
    cpukit/rtems/src/tasksuspend.c
    cpukit/rtems/src/taskvariableadd.c
    cpukit/rtems/src/taskvariabledelete.c
    cpukit/rtems/src/taskvariableget.c
    cpukit/rtems/src/taskwakeafter.c
    cpukit/rtems/src/taskwakewhen.c
    cpukit/rtems/src/timercancel.c
    cpukit/rtems/src/timercreate.c
    cpukit/rtems/src/timerdelete.c
    cpukit/rtems/src/timerfireafter.c
    cpukit/rtems/src/timerfirewhen.c
    cpukit/rtems/src/timerident.c
    cpukit/rtems/src/timerreset.c
    cpukit/sapi/Makefile.am
    cpukit/sapi/include/Makefile.am
    cpukit/sapi/include/confdefs.h
    cpukit/sapi/include/rtems/README
    cpukit/sapi/include/rtems/config.h
    cpukit/sapi/include/rtems/extension.h
    cpukit/sapi/include/rtems/fatal.h
    cpukit/sapi/include/rtems/init.h
    cpukit/sapi/include/rtems/io.h
    cpukit/sapi/include/rtems/mptables.h
    cpukit/sapi/include/rtems/sptables.h.in
    cpukit/sapi/inline/Makefile.am
    cpukit/sapi/inline/rtems/extension.inl
    cpukit/sapi/macros/Makefile.am
    cpukit/sapi/macros/rtems/extension.inl
    cpukit/sapi/src/Makefile.am
    cpukit/sapi/src/debug.c
    cpukit/sapi/src/exinit.c
    cpukit/sapi/src/extension.c
    cpukit/sapi/src/fatal.c
    cpukit/sapi/src/io.c
    cpukit/sapi/src/itronapi.c
    cpukit/sapi/src/posixapi.c
    cpukit/sapi/src/rtemsapi.c
    cpukit/score/Makefile.am
    cpukit/score/cpu/Makefile.am
    cpukit/score/cpu/a29k/Makefile.am
    cpukit/score/cpu/a29k/amd.ah
    cpukit/score/cpu/a29k/asm.h
    cpukit/score/cpu/a29k/cpu.c
    cpukit/score/cpu/a29k/cpu_asm.S
    cpukit/score/cpu/a29k/pswmacro.ah
    cpukit/score/cpu/a29k/register.ah
    cpukit/score/cpu/a29k/rtems/score/a29k.h
    cpukit/score/cpu/a29k/rtems/score/cpu.h
    cpukit/score/cpu/a29k/rtems/score/cpu_asm.h
    cpukit/score/cpu/a29k/rtems/score/types.h
    cpukit/score/cpu/a29k/sig.S
    cpukit/score/cpu/hppa1.1/Makefile.am
    cpukit/score/cpu/hppa1.1/cpu.c
    cpukit/score/cpu/hppa1.1/cpu_asm.S
    cpukit/score/cpu/hppa1.1/rtems/score/cpu.h
    cpukit/score/cpu/hppa1.1/rtems/score/cpu_asm.h
    cpukit/score/cpu/hppa1.1/rtems/score/hppa.h
    cpukit/score/cpu/hppa1.1/rtems/score/types.h
    cpukit/score/cpu/i386/Makefile.am
    cpukit/score/cpu/i386/asm.h
    cpukit/score/cpu/i386/cpu.c
    cpukit/score/cpu/i386/cpu_asm.S
    cpukit/score/cpu/i386/rtems/asm.h
    cpukit/score/cpu/i386/rtems/score/cpu.h
    cpukit/score/cpu/i386/rtems/score/i386.h
    cpukit/score/cpu/i386/rtems/score/types.h
    cpukit/score/cpu/i960/Makefile.am
    cpukit/score/cpu/i960/asm.h
    cpukit/score/cpu/i960/cpu.c
    cpukit/score/cpu/i960/cpu_asm.S
    cpukit/score/cpu/i960/rtems/score/cpu.h
    cpukit/score/cpu/i960/rtems/score/i960.h
    cpukit/score/cpu/i960/rtems/score/types.h
    cpukit/score/cpu/m68k/Makefile.am
    cpukit/score/cpu/m68k/asm.h
    cpukit/score/cpu/m68k/cpu.c
    cpukit/score/cpu/m68k/cpu_asm.S
    cpukit/score/cpu/m68k/m68302.h
    cpukit/score/cpu/m68k/m68360.h
    cpukit/score/cpu/m68k/memcpy.c
    cpukit/score/cpu/m68k/qsm.h
    cpukit/score/cpu/m68k/rtems/asm.h
    cpukit/score/cpu/m68k/rtems/m68k/m68302.h
    cpukit/score/cpu/m68k/rtems/m68k/m68360.h
    cpukit/score/cpu/m68k/rtems/m68k/qsm.h
    cpukit/score/cpu/m68k/rtems/m68k/sim.h
    cpukit/score/cpu/m68k/rtems/score/cpu.h
    cpukit/score/cpu/m68k/rtems/score/m68k.h
    cpukit/score/cpu/m68k/rtems/score/types.h
    cpukit/score/cpu/m68k/sim.h
    cpukit/score/cpu/mips/Makefile.am
    cpukit/score/cpu/mips/asm.h
    cpukit/score/cpu/mips/cpu.c
    cpukit/score/cpu/mips/cpu_asm.S
    cpukit/score/cpu/mips/idtcpu.h
    cpukit/score/cpu/mips/iregdef.h
    cpukit/score/cpu/mips/rtems/asm.h
    cpukit/score/cpu/mips/rtems/mips/idtcpu.h
    cpukit/score/cpu/mips/rtems/mips/iregdef.h
    cpukit/score/cpu/mips/rtems/score/cpu.h
    cpukit/score/cpu/mips/rtems/score/mips.h
    cpukit/score/cpu/mips/rtems/score/types.h
    cpukit/score/cpu/mips64orion/Makefile.am
    cpukit/score/cpu/mips64orion/asm.h
    cpukit/score/cpu/mips64orion/cpu.c
    cpukit/score/cpu/mips64orion/cpu_asm.S
    cpukit/score/cpu/mips64orion/cpu_asm.h
    cpukit/score/cpu/mips64orion/idtcpu.h
    cpukit/score/cpu/mips64orion/idtmon.h
    cpukit/score/cpu/mips64orion/iregdef.h
    cpukit/score/cpu/mips64orion/rtems/score/cpu.h
    cpukit/score/cpu/mips64orion/rtems/score/mips64orion.h
    cpukit/score/cpu/mips64orion/rtems/score/types.h
    cpukit/score/cpu/no_cpu/Makefile.am
    cpukit/score/cpu/no_cpu/asm.h
    cpukit/score/cpu/no_cpu/cpu.c
    cpukit/score/cpu/no_cpu/cpu_asm.c
    cpukit/score/cpu/no_cpu/rtems/asm.h
    cpukit/score/cpu/no_cpu/rtems/score/cpu.h
    cpukit/score/cpu/no_cpu/rtems/score/cpu_asm.h
    cpukit/score/cpu/no_cpu/rtems/score/no_cpu.h
    cpukit/score/cpu/no_cpu/rtems/score/types.h
    cpukit/score/cpu/powerpc/Makefile.am
    cpukit/score/cpu/powerpc/asm.h
    cpukit/score/cpu/powerpc/rtems/asm.h
    cpukit/score/cpu/powerpc/rtems/score/ppc.h
    cpukit/score/cpu/powerpc/rtems/score/types.h
    cpukit/score/cpu/sh/Makefile.am
    cpukit/score/cpu/sh/asm.h
    cpukit/score/cpu/sh/cpu.c
    cpukit/score/cpu/sh/rtems/asm.h
    cpukit/score/cpu/sh/rtems/score/cpu.h
    cpukit/score/cpu/sh/rtems/score/sh.h
    cpukit/score/cpu/sh/rtems/score/sh_io.h
    cpukit/score/cpu/sh/rtems/score/types.h
    cpukit/score/cpu/sparc/Makefile.am
    cpukit/score/cpu/sparc/README
    cpukit/score/cpu/sparc/asm.h
    cpukit/score/cpu/sparc/cpu.c
    cpukit/score/cpu/sparc/cpu_asm.S
    cpukit/score/cpu/sparc/rtems/asm.h
    cpukit/score/cpu/sparc/rtems/score/cpu.h
    cpukit/score/cpu/sparc/rtems/score/sparc.h
    cpukit/score/cpu/sparc/rtems/score/types.h
    cpukit/score/cpu/unix/Makefile.am
    cpukit/score/cpu/unix/cpu.c
    cpukit/score/cpu/unix/rtems/score/cpu.h
    cpukit/score/cpu/unix/rtems/score/types.h
    cpukit/score/cpu/unix/rtems/score/unix.h
    cpukit/score/include/Makefile.am
    cpukit/score/include/rtems/debug.h
    cpukit/score/include/rtems/score/address.h
    cpukit/score/include/rtems/score/apiext.h
    cpukit/score/include/rtems/score/bitfield.h
    cpukit/score/include/rtems/score/chain.h
    cpukit/score/include/rtems/score/context.h
    cpukit/score/include/rtems/score/copyrt.h
    cpukit/score/include/rtems/score/coremsg.h
    cpukit/score/include/rtems/score/coremutex.h
    cpukit/score/include/rtems/score/coresem.h
    cpukit/score/include/rtems/score/heap.h
    cpukit/score/include/rtems/score/interr.h
    cpukit/score/include/rtems/score/isr.h
    cpukit/score/include/rtems/score/mpci.h
    cpukit/score/include/rtems/score/mppkt.h
    cpukit/score/include/rtems/score/object.h
    cpukit/score/include/rtems/score/objectmp.h
    cpukit/score/include/rtems/score/priority.h
    cpukit/score/include/rtems/score/stack.h
    cpukit/score/include/rtems/score/states.h
    cpukit/score/include/rtems/score/sysstate.h
    cpukit/score/include/rtems/score/thread.h
    cpukit/score/include/rtems/score/threadmp.h
    cpukit/score/include/rtems/score/threadq.h
    cpukit/score/include/rtems/score/tod.h
    cpukit/score/include/rtems/score/tqdata.h
    cpukit/score/include/rtems/score/userext.h
    cpukit/score/include/rtems/score/watchdog.h
    cpukit/score/include/rtems/score/wkspace.h
    cpukit/score/include/rtems/system.h
    cpukit/score/inline/Makefile.am
    cpukit/score/inline/rtems/score/address.inl
    cpukit/score/inline/rtems/score/chain.inl
    cpukit/score/inline/rtems/score/coremsg.inl
    cpukit/score/inline/rtems/score/coremutex.inl
    cpukit/score/inline/rtems/score/coresem.inl
    cpukit/score/inline/rtems/score/heap.inl
    cpukit/score/inline/rtems/score/isr.inl
    cpukit/score/inline/rtems/score/mppkt.inl
    cpukit/score/inline/rtems/score/object.inl
    cpukit/score/inline/rtems/score/objectmp.inl
    cpukit/score/inline/rtems/score/priority.inl
    cpukit/score/inline/rtems/score/stack.inl
    cpukit/score/inline/rtems/score/states.inl
    cpukit/score/inline/rtems/score/sysstate.inl
    cpukit/score/inline/rtems/score/thread.inl
    cpukit/score/inline/rtems/score/threadmp.inl
    cpukit/score/inline/rtems/score/tod.inl
    cpukit/score/inline/rtems/score/tqdata.inl
    cpukit/score/inline/rtems/score/userext.inl
    cpukit/score/inline/rtems/score/watchdog.inl
    cpukit/score/inline/rtems/score/wkspace.inl
    cpukit/score/macros/Makefile.am
    cpukit/score/macros/README
    cpukit/score/macros/rtems/score/README
    cpukit/score/macros/rtems/score/address.inl
    cpukit/score/macros/rtems/score/chain.inl
    cpukit/score/macros/rtems/score/coremsg.inl
    cpukit/score/macros/rtems/score/coremutex.inl
    cpukit/score/macros/rtems/score/coresem.inl
    cpukit/score/macros/rtems/score/heap.inl
    cpukit/score/macros/rtems/score/isr.inl
    cpukit/score/macros/rtems/score/mppkt.inl
    cpukit/score/macros/rtems/score/object.inl
    cpukit/score/macros/rtems/score/objectmp.inl
    cpukit/score/macros/rtems/score/priority.inl
    cpukit/score/macros/rtems/score/stack.inl
    cpukit/score/macros/rtems/score/states.inl
    cpukit/score/macros/rtems/score/sysstate.inl
    cpukit/score/macros/rtems/score/thread.inl
    cpukit/score/macros/rtems/score/threadmp.inl
    cpukit/score/macros/rtems/score/tod.inl
    cpukit/score/macros/rtems/score/tqdata.inl
    cpukit/score/macros/rtems/score/userext.inl
    cpukit/score/macros/rtems/score/watchdog.inl
    cpukit/score/macros/rtems/score/wkspace.inl
    cpukit/score/src/Makefile.am
    cpukit/score/src/Unlimited.txt
    cpukit/score/src/apiext.c
    cpukit/score/src/chain.c
    cpukit/score/src/coremsg.c
    cpukit/score/src/coremsgbroadcast.c
    cpukit/score/src/coremsgclose.c
    cpukit/score/src/coremsgflush.c
    cpukit/score/src/coremsgflushsupp.c
    cpukit/score/src/coremsgflushwait.c
    cpukit/score/src/coremsginsert.c
    cpukit/score/src/coremsgseize.c
    cpukit/score/src/coremsgsubmit.c
    cpukit/score/src/coremutex.c
    cpukit/score/src/coremutexflush.c
    cpukit/score/src/coremutexseize.c
    cpukit/score/src/coremutexsurrender.c
    cpukit/score/src/coresem.c
    cpukit/score/src/coresemflush.c
    cpukit/score/src/coresemseize.c
    cpukit/score/src/coresemsurrender.c
    cpukit/score/src/coretod.c
    cpukit/score/src/coretodset.c
    cpukit/score/src/coretodtickle.c
    cpukit/score/src/coretodtoseconds.c
    cpukit/score/src/coretodvalidate.c
    cpukit/score/src/heap.c
    cpukit/score/src/heapallocate.c
    cpukit/score/src/heapextend.c
    cpukit/score/src/heapfree.c
    cpukit/score/src/heapsizeofuserarea.c
    cpukit/score/src/heapwalk.c
    cpukit/score/src/interr.c
    cpukit/score/src/isr.c
    cpukit/score/src/mpci.c
    cpukit/score/src/object.c
    cpukit/score/src/objectallocate.c
    cpukit/score/src/objectallocatebyindex.c
    cpukit/score/src/objectclearname.c
    cpukit/score/src/objectcomparenameraw.c
    cpukit/score/src/objectcomparenamestring.c
    cpukit/score/src/objectcopynameraw.c
    cpukit/score/src/objectcopynamestring.c
    cpukit/score/src/objectextendinformation.c
    cpukit/score/src/objectfree.c
    cpukit/score/src/objectget.c
    cpukit/score/src/objectgetbyindex.c
    cpukit/score/src/objectgetnext.c
    cpukit/score/src/objectinitializeinformation.c
    cpukit/score/src/objectmp.c
    cpukit/score/src/objectnametoid.c
    cpukit/score/src/objectshrinkinformation.c
    cpukit/score/src/thread.c
    cpukit/score/src/threadchangepriority.c
    cpukit/score/src/threadclearstate.c
    cpukit/score/src/threadclose.c
    cpukit/score/src/threadcreateidle.c
    cpukit/score/src/threaddelayended.c
    cpukit/score/src/threaddispatch.c
    cpukit/score/src/threadevaluatemode.c
    cpukit/score/src/threadget.c
    cpukit/score/src/threadhandler.c
    cpukit/score/src/threadidlebody.c
    cpukit/score/src/threadinitialize.c
    cpukit/score/src/threadloadenv.c
    cpukit/score/src/threadmp.c
    cpukit/score/src/threadq.c
    cpukit/score/src/threadqdequeue.c
    cpukit/score/src/threadqdequeuefifo.c
    cpukit/score/src/threadqdequeuepriority.c
    cpukit/score/src/threadqenqueue.c
    cpukit/score/src/threadqenqueuefifo.c
    cpukit/score/src/threadqenqueuepriority.c
    cpukit/score/src/threadqextract.c
    cpukit/score/src/threadqextractfifo.c
    cpukit/score/src/threadqextractpriority.c
    cpukit/score/src/threadqextractwithproxy.c
    cpukit/score/src/threadqfirst.c
    cpukit/score/src/threadqfirstfifo.c
    cpukit/score/src/threadqfirstpriority.c
    cpukit/score/src/threadqflush.c
    cpukit/score/src/threadqtimeout.c
    cpukit/score/src/threadready.c
    cpukit/score/src/threadreset.c
    cpukit/score/src/threadresettimeslice.c
    cpukit/score/src/threadrestart.c
    cpukit/score/src/threadresume.c
    cpukit/score/src/threadrotatequeue.c
    cpukit/score/src/threadsetpriority.c
    cpukit/score/src/threadsetstate.c
    cpukit/score/src/threadsettransient.c
    cpukit/score/src/threadstackallocate.c
    cpukit/score/src/threadstackfree.c
    cpukit/score/src/threadstart.c
    cpukit/score/src/threadstartmultitasking.c
    cpukit/score/src/threadsuspend.c
    cpukit/score/src/threadtickletimeslice.c
    cpukit/score/src/threadyieldprocessor.c
    cpukit/score/src/userext.c
    cpukit/score/src/watchdog.c
    cpukit/score/src/watchdogadjust.c
    cpukit/score/src/watchdoginsert.c
    cpukit/score/src/watchdogremove.c
    cpukit/score/src/watchdogtickle.c
    cpukit/score/src/wkspace.c
    cpukit/wrapup/Makefile.am
    cpukit/zlib/doc/rfc1950.txt
    cpukit/zlib/doc/rfc1951.txt
    cpukit/zlib/doc/rfc1952.txt
    doc/BAD.html
    doc/FAQ/FAQ.texi
    doc/FAQ/Makefile
    doc/FAQ/basic.t
    doc/FAQ/bsp.t
    doc/FAQ/concepts.t
    doc/FAQ/debug.t
    doc/FAQ/embeddedinfo.t
    doc/FAQ/endoftime.t
    doc/FAQ/entry
    doc/FAQ/freesw.t
    doc/FAQ/hwdebugaids.t
    doc/FAQ/projects.t
    doc/FAQ/tools.t
    doc/HELP.html
    doc/Make.config
    doc/Makefile
    doc/README
    doc/TODO
    doc/VERSION
    doc/ada_user/Makefile
    doc/ada_user/ada_user.texi
    doc/ada_user/example.texi
    doc/archgrey.gif
    doc/bsp_howto/Makefile
    doc/bsp_howto/adaintr.t
    doc/bsp_howto/analog.t
    doc/bsp_howto/bsp_howto.texi
    doc/bsp_howto/clock.t
    doc/bsp_howto/console.t
    doc/bsp_howto/discrete.t
    doc/bsp_howto/init.t
    doc/bsp_howto/intro.t
    doc/bsp_howto/linkcmds.t
    doc/bsp_howto/makefiles.t
    doc/bsp_howto/nvmem.t
    doc/bsp_howto/rtc.t
    doc/bsp_howto/shmsupp.t
    doc/bsp_howto/support.t
    doc/bsp_howto/target.t
    doc/bsp_howto/timer.t
    doc/common/cpright.texi
    doc/common/dvi.gif
    doc/common/oaronly.jpg
    doc/common/pdf.gif
    doc/common/pdf1.gif
    doc/common/ps.gif
    doc/common/setup.texi
    doc/common/timemac.texi
    doc/common/timetbl.t
    doc/common/timing.t
    doc/common/treedef.tex
    doc/common/up-arrow.gif
    doc/common/wksheets.t
    doc/develenv/Makefile
    doc/develenv/compile.texi
    doc/develenv/develenv.texi
    doc/develenv/direct.texi
    doc/develenv/intro.texi
    doc/develenv/sample.texi
    doc/develenv/utils.texi
    doc/do_docs
    doc/filesystem/Makefile
    doc/filesystem/filesystem.texi
    doc/filesystem/fsrequirements.t
    doc/filesystem/imfs.t
    doc/filesystem/init.t
    doc/filesystem/miniimfs.t
    doc/filesystem/mounting.t
    doc/filesystem/patheval.t
    doc/filesystem/preface.texi
    doc/filesystem/syscalls.t
    doc/filesystem/tftp.t
    doc/gnu_docs/Tool_Doc_Instructions
    doc/gnu_docs/gen_docs
    doc/gnu_docs/gnu_footer.html
    doc/gnu_docs/gnu_header.html
    doc/gnu_docs/index.html
    doc/gnu_docs/mk_install_dir
    doc/gnu_docs/refcard.html
    doc/gnu_docs/rtems_tools_index.html
    doc/index.html
    doc/itron3.0/Makefile
    doc/itron3.0/config.t
    doc/itron3.0/eventflags.t
    doc/itron3.0/fixedblock.t
    doc/itron3.0/gen_all
    doc/itron3.0/gen_section
    doc/itron3.0/gen_status_shell
    doc/itron3.0/interrupt.t
    doc/itron3.0/itron.texi
    doc/itron3.0/mailbox.t
    doc/itron3.0/memorypool.t
    doc/itron3.0/msgbuffer.t
    doc/itron3.0/network.t
    doc/itron3.0/preface.texi
    doc/itron3.0/rendezvous.t
    doc/itron3.0/semaphore.t
    doc/itron3.0/status.t
    doc/itron3.0/task.t
    doc/itron3.0/tasksync.t
    doc/itron3.0/time.t
    doc/networking/Makefile
    doc/networking/PCIreg.eps
    doc/networking/PCIreg.jpg
    doc/networking/PCIreg.pdf
    doc/networking/decdriver.t
    doc/networking/driver.t
    doc/networking/networkapp.t
    doc/networking/networkflow.eps
    doc/networking/networkflow.jpg
    doc/networking/networkflow.pdf
    doc/networking/networkflow.png
    doc/networking/networking.texi
    doc/networking/networktasks.t
    doc/networking/preface.texi
    doc/networking/recvbd.eps
    doc/networking/recvbd.jpg
    doc/networking/recvbd.pdf
    doc/networking/servers.t
    doc/networking/testing.t
    doc/new_chapters/Makefile
    doc/new_chapters/STATUS
    doc/new_chapters/TODO
    doc/new_chapters/adminiface.t
    doc/new_chapters/base.t
    doc/new_chapters/confspace.t
    doc/new_chapters/cpuuse.t
    doc/new_chapters/dumpcontrol.t
    doc/new_chapters/error.t
    doc/new_chapters/eventlog.t
    doc/new_chapters/gen_section
    doc/new_chapters/monitor.t
    doc/new_chapters/new_chapters.texi
    doc/new_chapters/rtmonuse.t
    doc/new_chapters/stackchk.t
    doc/oaronly.jpg
    doc/porting/Makefile
    doc/porting/codetuning.t
    doc/porting/cpuinit.t
    doc/porting/cpumodels.t
    doc/porting/developtools.t
    doc/porting/idlethread.t
    doc/porting/interrupts.t
    doc/porting/miscellaneous.t
    doc/porting/porting.texi
    doc/porting/preface.texi
    doc/porting/prioritybitmap.t
    doc/porting/sourcecode.t
    doc/porting/taskcontext.t
    doc/posix1003.1/Makefile
    doc/posix1003.1/ch01.t
    doc/posix1003.1/ch02.t
    doc/posix1003.1/ch03.t
    doc/posix1003.1/ch04.t
    doc/posix1003.1/ch05.t
    doc/posix1003.1/ch06.t
    doc/posix1003.1/ch07.t
    doc/posix1003.1/ch08.t
    doc/posix1003.1/ch09.t
    doc/posix1003.1/ch10.t
    doc/posix1003.1/ch11.t
    doc/posix1003.1/ch12.t
    doc/posix1003.1/ch13.t
    doc/posix1003.1/ch14.t
    doc/posix1003.1/ch15.t
    doc/posix1003.1/ch16.t
    doc/posix1003.1/ch17.t
    doc/posix1003.1/ch18.t
    doc/posix1003.1/posix1003_1.texi
    doc/posix1003.1/preface.texi
    doc/posix1003.1/summarize
    doc/posix_users/Makefile
    doc/posix_users/cancel.t
    doc/posix_users/clock.t
    doc/posix_users/cond.t
    doc/posix_users/cspecific.t
    doc/posix_users/device.t
    doc/posix_users/files.t
    doc/posix_users/gen_size_report
    doc/posix_users/io.t
    doc/posix_users/key.t
    doc/posix_users/libc.t
    doc/posix_users/libm.t
    doc/posix_users/memorymgmt.t
    doc/posix_users/message.t
    doc/posix_users/mutex.t
    doc/posix_users/posix_users.texi
    doc/posix_users/preface.texi
    doc/posix_users/procenv.t
    doc/posix_users/process.t
    doc/posix_users/sched.t
    doc/posix_users/semaphores.t
    doc/posix_users/signal.t
    doc/posix_users/status.t
    doc/posix_users/systemdb.t
    doc/posix_users/thread.t
    doc/posix_users/timer.t
    doc/relnotes/Makefile
    doc/relnotes/install.texi
    doc/relnotes/intro.texi
    doc/relnotes/probrep.texi
    doc/relnotes/relnotes.texi
    doc/relnotes/status.texi
    doc/rgdb_specs/Makefile
    doc/rgdb_specs/comm.t
    doc/rgdb_specs/conclusion.t
    doc/rgdb_specs/daemon.t
    doc/rgdb_specs/garde.eps
    doc/rgdb_specs/garde.pdf
    doc/rgdb_specs/gdbinternals.t
    doc/rgdb_specs/interfacing.t
    doc/rgdb_specs/intro.t
    doc/rgdb_specs/layers.eps
    doc/rgdb_specs/layers.jpg
    doc/rgdb_specs/layers.pdf
    doc/rgdb_specs/objectives.t
    doc/rgdb_specs/process.eps
    doc/rgdb_specs/process.jpg
    doc/rgdb_specs/process.pdf
    doc/rgdb_specs/revision.t
    doc/rgdb_specs/rgdb_specs.texi
    doc/rgdb_specs/seqbreak.eps
    doc/rgdb_specs/seqbreak.jpg
    doc/rgdb_specs/seqbreak.pdf
    doc/rgdb_specs/seqdetach.eps
    doc/rgdb_specs/seqdetach.jpg
    doc/rgdb_specs/seqdetach.pdf
    doc/rgdb_specs/seqinit.eps
    doc/rgdb_specs/seqinit.jpg
    doc/rgdb_specs/seqinit.pdf
    doc/rtems_footer.html
    doc/rtems_gdb/Makefile
    doc/rtems_gdb/commands.t
    doc/rtems_gdb/example.t
    doc/rtems_gdb/intro.t
    doc/rtems_gdb/rtems_gdb.texi
    doc/rtems_gdb/started.t
    doc/rtems_gdb/swarch.t
    doc/rtems_gdb/trouble.t
    doc/rtems_header.html
    doc/rtems_support.html
    doc/src2html/Makefile
    doc/src2html/RTEMS.test
    doc/started/Makefile
    doc/started/buildc.t
    doc/started/buildrt.t
    doc/started/gdb.t
    doc/started/intro.t
    doc/started/nt.t
    doc/started/pictures/bit_ada.jpg
    doc/started/pictures/bit_ada.vsd
    doc/started/pictures/bit_c.jpg
    doc/started/pictures/bit_c.vsd
    doc/started/pictures/scfile10.jpg
    doc/started/pictures/scfile10.vsd
    doc/started/pictures/scfile11.jpg
    doc/started/pictures/scfile11.vsd
    doc/started/pictures/scfile12.jpg
    doc/started/pictures/scfile12.vsd
    doc/started/pictures/scfile13.jpg
    doc/started/pictures/scfile13.vsd
    doc/started/pictures/scsfile1.jpg
    doc/started/pictures/scsfile1.vsd
    doc/started/pictures/scsfile2.jpg
    doc/started/pictures/scsfile2.vsd
    doc/started/pictures/scsfile3.jpg
    doc/started/pictures/scsfile3.vsd
    doc/started/pictures/scsfile4.jpg
    doc/started/pictures/scsfile4.vsd
    doc/started/pictures/scsfile5.jpg
    doc/started/pictures/scsfile5.vsd
    doc/started/pictures/scsfile6.jpg
    doc/started/pictures/scsfile6.vsd
    doc/started/pictures/scsfile7.jpg
    doc/started/pictures/scsfile7.vsd
    doc/started/pictures/scsfile8.jpg
    doc/started/pictures/scsfile8.vsd
    doc/started/pictures/scsfile9.jpg
    doc/started/pictures/scsfile9.vsd
    doc/started/pictures/sfile12c.jpg
    doc/started/pictures/sfile12c.vsd
    doc/started/require.t
    doc/started/sample.t
    doc/started/started.texi
    doc/started/versions.texi
    doc/started_ada/Makefile
    doc/started_ada/buildada.t
    doc/started_ada/buildrt.t
    doc/started_ada/gdb.t
    doc/started_ada/intro.t
    doc/started_ada/require.t
    doc/started_ada/sample.t
    doc/started_ada/started_ada.texi
    doc/started_ada/versions.texi
    doc/supplements/hppa1_1/Makefile
    doc/supplements/hppa1_1/SIMHPPA_TIMES
    doc/supplements/hppa1_1/bsp.t
    doc/supplements/hppa1_1/callconv.t
    doc/supplements/hppa1_1/cpumodel.t
    doc/supplements/hppa1_1/cputable.t
    doc/supplements/hppa1_1/fatalerr.t
    doc/supplements/hppa1_1/hppa1_1.texi
    doc/supplements/hppa1_1/intr_NOTIMES.t
    doc/supplements/hppa1_1/memmodel.t
    doc/supplements/hppa1_1/preface.texi
    doc/supplements/hppa1_1/timeSIMHPPA.t
    doc/supplements/i386/FORCE386_TIMES
    doc/supplements/i386/Makefile
    doc/supplements/i386/bsp.t
    doc/supplements/i386/callconv.t
    doc/supplements/i386/cpumodel.t
    doc/supplements/i386/cputable.t
    doc/supplements/i386/fatalerr.t
    doc/supplements/i386/i386.texi
    doc/supplements/i386/intr_NOTIMES.t
    doc/supplements/i386/memmodel.t
    doc/supplements/i386/preface.texi
    doc/supplements/i386/timeFORCE386.t
    doc/supplements/i960/CVME961_TIMES
    doc/supplements/i960/Makefile
    doc/supplements/i960/bsp.t
    doc/supplements/i960/callconv.t
    doc/supplements/i960/cpumodel.t
    doc/supplements/i960/cputable.t
    doc/supplements/i960/fatalerr.t
    doc/supplements/i960/i960.texi
    doc/supplements/i960/intr_NOTIMES.t
    doc/supplements/i960/memmodel.t
    doc/supplements/i960/preface.texi
    doc/supplements/i960/timeCVME961.t
    doc/supplements/m68k/MVME136_TIMES
    doc/supplements/m68k/Makefile
    doc/supplements/m68k/bsp.t
    doc/supplements/m68k/callconv.t
    doc/supplements/m68k/cpumodel.t
    doc/supplements/m68k/cputable.t
    doc/supplements/m68k/fatalerr.t
    doc/supplements/m68k/intr_NOTIMES.t
    doc/supplements/m68k/m68k.texi
    doc/supplements/m68k/memmodel.t
    doc/supplements/m68k/preface.texi
    doc/supplements/m68k/timeMVME136.t
    doc/supplements/m68k/timedata.t
    doc/supplements/mips64orion/BSP_TIMES
    doc/supplements/mips64orion/Makefile
    doc/supplements/mips64orion/bsp.t
    doc/supplements/mips64orion/callconv.t
    doc/supplements/mips64orion/cpumodel.t
    doc/supplements/mips64orion/cputable.t
    doc/supplements/mips64orion/fatalerr.t
    doc/supplements/mips64orion/intr_NOTIMES.t
    doc/supplements/mips64orion/memmodel.t
    doc/supplements/mips64orion/mips64orion.texi
    doc/supplements/mips64orion/preface.texi
    doc/supplements/mips64orion/timeBSP.t
    doc/supplements/powerpc/DMV177_TIMES
    doc/supplements/powerpc/Makefile
    doc/supplements/powerpc/PSIM_TIMES
    doc/supplements/powerpc/bsp.t
    doc/supplements/powerpc/callconv.t
    doc/supplements/powerpc/cpumodel.t
    doc/supplements/powerpc/cputable.t
    doc/supplements/powerpc/fatalerr.t
    doc/supplements/powerpc/intr_NOTIMES.t
    doc/supplements/powerpc/memmodel.t
    doc/supplements/powerpc/powerpc.texi
    doc/supplements/powerpc/preface.texi
    doc/supplements/powerpc/timeDMV177.t
    doc/supplements/powerpc/timePSIM.t
    doc/supplements/sh/BSP_TIMES
    doc/supplements/sh/Makefile
    doc/supplements/sh/bsp.t
    doc/supplements/sh/callconv.t
    doc/supplements/sh/cpumodel.t
    doc/supplements/sh/cputable.t
    doc/supplements/sh/fatalerr.t
    doc/supplements/sh/intr_NOTIMES.t
    doc/supplements/sh/memmodel.t
    doc/supplements/sh/preface.texi
    doc/supplements/sh/sh.texi
    doc/supplements/sh/timeBSP.t
    doc/supplements/sparc/ERC32_TIMES
    doc/supplements/sparc/Makefile
    doc/supplements/sparc/bsp.t
    doc/supplements/sparc/callconv.t
    doc/supplements/sparc/cpumodel.t
    doc/supplements/sparc/cputable.t
    doc/supplements/sparc/fatalerr.t
    doc/supplements/sparc/intr_NOTIMES.t
    doc/supplements/sparc/memmodel.t
    doc/supplements/sparc/preface.texi
    doc/supplements/sparc/sparc.texi
    doc/supplements/sparc/timeERC32.t
    doc/supplements/template/BSP_TIMES
    doc/supplements/template/Makefile
    doc/supplements/template/bsp.t
    doc/supplements/template/callconv.t
    doc/supplements/template/cpumodel.t
    doc/supplements/template/cputable.t
    doc/supplements/template/fatalerr.t
    doc/supplements/template/intr_NOTIMES.t
    doc/supplements/template/memmodel.t
    doc/supplements/template/preface.texi
    doc/supplements/template/template.texi
    doc/supplements/template/timeBSP.t
    doc/texinfo/texinfo.tex
    doc/tools/bmenu/Makefile
    doc/tools/bmenu/address.h
    doc/tools/bmenu/address.inl
    doc/tools/bmenu/base.h
    doc/tools/bmenu/chain.c
    doc/tools/bmenu/chain.h
    doc/tools/bmenu/chain.inl
    doc/tools/bmenu/isr.h
    doc/tools/bmenu/main.c
    doc/tools/bmenu/system.h
    doc/tools/pdl2texi/Makefile
    doc/tools/pdl2texi/address.h
    doc/tools/pdl2texi/address.inl
    doc/tools/pdl2texi/base.h
    doc/tools/pdl2texi/chain.c
    doc/tools/pdl2texi/chain.h
    doc/tools/pdl2texi/chain.inl
    doc/tools/pdl2texi/isr.h
    doc/tools/pdl2texi/main.c
    doc/tools/pdl2texi/s.d
    doc/tools/pdl2texi/sample.d
    doc/tools/pdl2texi/system.h
    doc/tools/pdl2texi/test_cases/enum.d
    doc/tools/pdl2texi/test_cases/enumbad.d
    doc/tools/pdl2texi/test_cases/table.d
    doc/tools/src2html/Makefile
    doc/tools/src2html1.4a/Ctags/C.c
    doc/tools/src2html1.4a/Ctags/Makefile
    doc/tools/src2html1.4a/Ctags/ctags.1
    doc/tools/src2html1.4a/Ctags/ctags.c
    doc/tools/src2html1.4a/Ctags/ctags.h
    doc/tools/src2html1.4a/Ctags/fortran.c
    doc/tools/src2html1.4a/Ctags/lisp.c
    doc/tools/src2html1.4a/Ctags/print.c
    doc/tools/src2html1.4a/Ctags/strerror.c
    doc/tools/src2html1.4a/Ctags/tree.c
    doc/tools/src2html1.4a/Ctags/yacc.c
    doc/tools/src2html1.4a/Ctags/z.c
    doc/tools/src2html1.4a/FreeBSD/FreeBSD.hdr
    doc/tools/src2html1.4a/FreeBSD/FreeBSD.s2h
    doc/tools/src2html1.4a/FreeBSD/conf.hdr
    doc/tools/src2html1.4a/FreeBSD/ddb.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.i386.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.include.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.isa.hdr
    doc/tools/src2html1.4a/FreeBSD/i386.stand.hdr
    doc/tools/src2html1.4a/FreeBSD/kern.hdr
    doc/tools/src2html1.4a/FreeBSD/net.hdr
    doc/tools/src2html1.4a/FreeBSD/netinet.hdr
    doc/tools/src2html1.4a/FreeBSD/nfs.hdr
    doc/tools/src2html1.4a/FreeBSD/stand.hdr
    doc/tools/src2html1.4a/FreeBSD/sys.hdr
    doc/tools/src2html1.4a/FreeBSD/ufs.hdr
    doc/tools/src2html1.4a/FreeBSD/vm.hdr
    doc/tools/src2html1.4a/Readme
    doc/tools/src2html1.4a/ctags-emacs/README
    doc/tools/src2html1.4a/ctags-emacs/ctags
    doc/tools/src2html1.4a/ctags-emacs/etags.c-ada-patch
    doc/tools/src2html1.4a/ctags-wr
    doc/tools/src2html1.4a/src2html
    doc/tools/src2html1.4a/src2html.1
    doc/tools/src2html1.4a/src2html.cgi
    doc/tools/texi2www/Makefile
    doc/tools/texi2www/archive/texi2www-960103.tgz
    doc/tools/texi2www/dir-arrow.gif
    doc/tools/texi2www/missing-arrow.gif
    doc/tools/texi2www/next-arrow.gif
    doc/tools/texi2www/prev-arrow.gif
    doc/tools/texi2www/texi2dvi
    doc/tools/texi2www/texi2www
    doc/tools/texi2www/texi2www.texi
    doc/tools/texi2www/up-arrow.gif
    doc/tools/update
    doc/tools/word-replace
    doc/user/Makefile
    doc/user/bsp.t
    doc/user/c_user.texi
    doc/user/clock.t
    doc/user/concepts.t
    doc/user/conf.t
    doc/user/dirstat.texi
    doc/user/dpmem.t
    doc/user/event.t
    doc/user/example.texi
    doc/user/fatal.t
    doc/user/glossary.texi
    doc/user/init.t
    doc/user/intr.t
    doc/user/io.t
    doc/user/mp.t
    doc/user/msg.t
    doc/user/overview.t
    doc/user/part.t
    doc/user/preface.texi
    doc/user/region.t
    doc/user/rtemsarc.gif
    doc/user/rtemsarc.png
    doc/user/rtemspie.eps
    doc/user/rtemspie.gif
    doc/user/rtemspie.pdf
    doc/user/rtemspie.png
    doc/user/rtmon.t
    doc/user/schedule.t
    doc/user/sem.t
    doc/user/signal.t
    doc/user/states.eps
    doc/user/states.gif
    doc/user/states.pdf
    doc/user/states.png
    doc/user/task.t
    doc/user/timer.t
    doc/user/userext.t
    testsuites/Makefile.am
    testsuites/PROBLEMS
    testsuites/README
    testsuites/itrontests/Makefile.am
    testsuites/itrontests/README
    testsuites/itrontests/itronhello/Makefile.am
    testsuites/itrontests/itronhello/init.c
    testsuites/itrontests/itronhello/itronhello.doc
    testsuites/itrontests/itronhello/itronhello.scn
    testsuites/itrontests/itronhello/system.h
    testsuites/itrontests/itronmbf01/Makefile.am
    testsuites/itrontests/itronmbf01/init.c
    testsuites/itrontests/itronmbf01/itronmbf01.doc
    testsuites/itrontests/itronmbf01/itronmbf01.scn
    testsuites/itrontests/itronmbf01/system.h
    testsuites/itrontests/itronmbox01/Makefile.am
    testsuites/itrontests/itronmbox01/init.c
    testsuites/itrontests/itronmbox01/itronmbox01.doc
    testsuites/itrontests/itronmbox01/itronmbox01.scn
    testsuites/itrontests/itronmbox01/system.h
    testsuites/itrontests/itronsem01/Makefile.am
    testsuites/itrontests/itronsem01/init.c
    testsuites/itrontests/itronsem01/itronsem01.doc
    testsuites/itrontests/itronsem01/itronsem01.scn
    testsuites/itrontests/itronsem01/system.h
    testsuites/itrontests/itrontask01/Makefile.am
    testsuites/itrontests/itrontask01/init.c
    testsuites/itrontests/itrontask01/itrontask01.doc
    testsuites/itrontests/itrontask01/itrontask01.scn
    testsuites/itrontests/itrontask01/system.h
    testsuites/itrontests/itrontask01/task1.c
    testsuites/itrontests/itrontask02/Makefile.am
    testsuites/itrontests/itrontask02/dormant.c
    testsuites/itrontests/itrontask02/init.c
    testsuites/itrontests/itrontask02/itrontask02.doc
    testsuites/itrontests/itrontask02/itrontask02.scn
    testsuites/itrontests/itrontask02/system.h
    testsuites/itrontests/itrontask03/Makefile.am
    testsuites/itrontests/itrontask03/init.c
    testsuites/itrontests/itrontask03/itrontask03.doc
    testsuites/itrontests/itrontask03/itrontask03.scn
    testsuites/itrontests/itrontask03/preempt.c
    testsuites/itrontests/itrontask03/system.h
    testsuites/itrontests/itrontask03/task1.c
    testsuites/itrontests/itrontask03/task2.c
    testsuites/itrontests/itrontask03/task3.c
    testsuites/itrontests/itrontask04/Makefile.am
    testsuites/itrontests/itrontask04/init.c
    testsuites/itrontests/itrontask04/itrontask04.doc
    testsuites/itrontests/itrontask04/itrontask04.scn
    testsuites/itrontests/itrontask04/system.h
    testsuites/itrontests/itrontask04/task1.c
    testsuites/itrontests/itrontask04/task2.c
    testsuites/itrontests/itrontask04/task3.c
    testsuites/itrontests/itrontests.am
    testsuites/itrontests/itrontime01/Makefile.am
    testsuites/itrontests/itrontime01/init.c
    testsuites/itrontests/itrontime01/itrontime01.doc
    testsuites/itrontests/itrontime01/itrontime01.scn
    testsuites/itrontests/itrontime01/system.h
    testsuites/libtests/Makefile.am
    testsuites/libtests/README
    testsuites/libtests/cpuuse/Makefile.am
    testsuites/libtests/cpuuse/cpuuse.scn
    testsuites/libtests/cpuuse/init.c
    testsuites/libtests/cpuuse/system.h
    testsuites/libtests/cpuuse/task1.c
    testsuites/libtests/cpuuse/task2.c
    testsuites/libtests/cpuuse/task3.c
    testsuites/libtests/cpuuse/tswitch.c
    testsuites/libtests/libtests.am
    testsuites/libtests/malloctest/Makefile.am
    testsuites/libtests/malloctest/init.c
    testsuites/libtests/malloctest/system.h
    testsuites/libtests/malloctest/task1.c
    testsuites/libtests/monitor/Makefile.am
    testsuites/libtests/monitor/init.c
    testsuites/libtests/monitor/system.h
    testsuites/libtests/putenvtest/Makefile.am
    testsuites/libtests/putenvtest/init.c
    testsuites/libtests/rtems++/Init.cc
    testsuites/libtests/rtems++/Makefile.am
    testsuites/libtests/rtems++/System.h
    testsuites/libtests/rtems++/Task1.cc
    testsuites/libtests/rtems++/Task2.cc
    testsuites/libtests/rtems++/Task3.cc
    testsuites/libtests/rtems++/rtems++.doc
    testsuites/libtests/rtems++/rtems++.scn
    testsuites/libtests/rtmonuse/Makefile.am
    testsuites/libtests/rtmonuse/getall.c
    testsuites/libtests/rtmonuse/init.c
    testsuites/libtests/rtmonuse/rtmonuse.scn
    testsuites/libtests/rtmonuse/system.h
    testsuites/libtests/rtmonuse/task1.c
    testsuites/libtests/stackchk/Makefile.am
    testsuites/libtests/stackchk/blow.c
    testsuites/libtests/stackchk/init.c
    testsuites/libtests/stackchk/stackchk.scn
    testsuites/libtests/stackchk/system.h
    testsuites/libtests/stackchk/task1.c
    testsuites/libtests/termios/Makefile.am
    testsuites/libtests/termios/README
    testsuites/libtests/termios/init.c
    testsuites/mptests/Makefile.am
    testsuites/mptests/README
    testsuites/mptests/mp01/Makefile.am
    testsuites/mptests/mp01/init.c
    testsuites/mptests/mp01/node1/Makefile.am
    testsuites/mptests/mp01/node1/mp01.doc
    testsuites/mptests/mp01/node1/mp01.scn
    testsuites/mptests/mp01/node2/Makefile.am
    testsuites/mptests/mp01/node2/mp01.doc
    testsuites/mptests/mp01/node2/mp01.scn
    testsuites/mptests/mp01/system.h
    testsuites/mptests/mp01/task1.c
    testsuites/mptests/mp02/Makefile.am
    testsuites/mptests/mp02/init.c
    testsuites/mptests/mp02/node1/Makefile.am
    testsuites/mptests/mp02/node1/mp02.doc
    testsuites/mptests/mp02/node1/mp02.scn
    testsuites/mptests/mp02/node2/Makefile.am
    testsuites/mptests/mp02/node2/mp02.doc
    testsuites/mptests/mp02/node2/mp02.scn
    testsuites/mptests/mp02/system.h
    testsuites/mptests/mp02/task1.c
    testsuites/mptests/mp03/Makefile.am
    testsuites/mptests/mp03/delay.c
    testsuites/mptests/mp03/init.c
    testsuites/mptests/mp03/node1/Makefile.am
    testsuites/mptests/mp03/node1/mp03.doc
    testsuites/mptests/mp03/node1/mp03.scn
    testsuites/mptests/mp03/node2/Makefile.am
    testsuites/mptests/mp03/node2/mp03.doc
    testsuites/mptests/mp03/node2/mp03.scn
    testsuites/mptests/mp03/system.h
    testsuites/mptests/mp03/task1.c
    testsuites/mptests/mp04/Makefile.am
    testsuites/mptests/mp04/init.c
    testsuites/mptests/mp04/node1/Makefile.am
    testsuites/mptests/mp04/node1/mp04.doc
    testsuites/mptests/mp04/node1/mp04.scn
    testsuites/mptests/mp04/node2/Makefile.am
    testsuites/mptests/mp04/node2/mp04.doc
    testsuites/mptests/mp04/node2/mp04.scn
    testsuites/mptests/mp04/system.h
    testsuites/mptests/mp04/task1.c
    testsuites/mptests/mp05/Makefile.am
    testsuites/mptests/mp05/asr.c
    testsuites/mptests/mp05/init.c
    testsuites/mptests/mp05/node1/Makefile.am
    testsuites/mptests/mp05/node1/mp05.doc
    testsuites/mptests/mp05/node1/mp05.scn
    testsuites/mptests/mp05/node2/Makefile.am
    testsuites/mptests/mp05/node2/mp05.doc
    testsuites/mptests/mp05/node2/mp05.scn
    testsuites/mptests/mp05/system.h
    testsuites/mptests/mp05/task1.c
    testsuites/mptests/mp06/Makefile.am
    testsuites/mptests/mp06/init.c
    testsuites/mptests/mp06/node1/Makefile.am
    testsuites/mptests/mp06/node1/mp06.doc
    testsuites/mptests/mp06/node1/mp06.scn
    testsuites/mptests/mp06/node2/Makefile.am
    testsuites/mptests/mp06/node2/mp06.doc
    testsuites/mptests/mp06/node2/mp06.scn
    testsuites/mptests/mp06/system.h
    testsuites/mptests/mp06/task1.c
    testsuites/mptests/mp07/Makefile.am
    testsuites/mptests/mp07/init.c
    testsuites/mptests/mp07/node1/Makefile.am
    testsuites/mptests/mp07/node1/mp07.doc
    testsuites/mptests/mp07/node1/mp07.scn
    testsuites/mptests/mp07/node2/Makefile.am
    testsuites/mptests/mp07/node2/mp07.doc
    testsuites/mptests/mp07/node2/mp07.scn
    testsuites/mptests/mp07/system.h
    testsuites/mptests/mp07/task1.c
    testsuites/mptests/mp08/Makefile.am
    testsuites/mptests/mp08/init.c
    testsuites/mptests/mp08/node1/Makefile.am
    testsuites/mptests/mp08/node1/mp08.doc
    testsuites/mptests/mp08/node1/mp08.scn
    testsuites/mptests/mp08/node2/Makefile.am
    testsuites/mptests/mp08/node2/mp08.doc
    testsuites/mptests/mp08/node2/mp08.scn
    testsuites/mptests/mp08/system.h
    testsuites/mptests/mp08/task1.c
    testsuites/mptests/mp09/Makefile.am
    testsuites/mptests/mp09/init.c
    testsuites/mptests/mp09/node1/Makefile.am
    testsuites/mptests/mp09/node1/mp09.doc
    testsuites/mptests/mp09/node1/mp09.scn
    testsuites/mptests/mp09/node2/Makefile.am
    testsuites/mptests/mp09/node2/mp09.doc
    testsuites/mptests/mp09/node2/mp09.scn
    testsuites/mptests/mp09/recvmsg.c
    testsuites/mptests/mp09/sendmsg.c
    testsuites/mptests/mp09/system.h
    testsuites/mptests/mp09/task1.c
    testsuites/mptests/mp10/Makefile.am
    testsuites/mptests/mp10/init.c
    testsuites/mptests/mp10/node1/Makefile.am
    testsuites/mptests/mp10/node1/mp10.doc
    testsuites/mptests/mp10/node1/mp10.scn
    testsuites/mptests/mp10/node2/Makefile.am
    testsuites/mptests/mp10/node2/mp10.doc
    testsuites/mptests/mp10/node2/mp10.scn
    testsuites/mptests/mp10/system.h
    testsuites/mptests/mp10/task1.c
    testsuites/mptests/mp10/task2.c
    testsuites/mptests/mp10/task3.c
    testsuites/mptests/mp11/Makefile.am
    testsuites/mptests/mp11/init.c
    testsuites/mptests/mp11/node1/Makefile.am
    testsuites/mptests/mp11/node1/mp11.doc
    testsuites/mptests/mp11/node1/mp11.scn
    testsuites/mptests/mp11/node2/Makefile.am
    testsuites/mptests/mp11/node2/mp11.doc
    testsuites/mptests/mp11/node2/mp11.scn
    testsuites/mptests/mp11/system.h
    testsuites/mptests/mp12/Makefile.am
    testsuites/mptests/mp12/init.c
    testsuites/mptests/mp12/node1/Makefile.am
    testsuites/mptests/mp12/node1/mp12.doc
    testsuites/mptests/mp12/node1/mp12.scn
    testsuites/mptests/mp12/node2/Makefile.am
    testsuites/mptests/mp12/node2/mp12.doc
    testsuites/mptests/mp12/node2/mp12.scn
    testsuites/mptests/mp12/system.h
    testsuites/mptests/mp13/Makefile.am
    testsuites/mptests/mp13/init.c
    testsuites/mptests/mp13/node1/Makefile.am
    testsuites/mptests/mp13/node1/mp13.doc
    testsuites/mptests/mp13/node1/mp13.scn
    testsuites/mptests/mp13/node2/Makefile.am
    testsuites/mptests/mp13/node2/mp13.doc
    testsuites/mptests/mp13/node2/mp13.scn
    testsuites/mptests/mp13/system.h
    testsuites/mptests/mp13/task1.c
    testsuites/mptests/mp13/task2.c
    testsuites/mptests/mp14/Makefile.am
    testsuites/mptests/mp14/delay.c
    testsuites/mptests/mp14/evtask1.c
    testsuites/mptests/mp14/evtmtask.c
    testsuites/mptests/mp14/exit.c
    testsuites/mptests/mp14/init.c
    testsuites/mptests/mp14/msgtask1.c
    testsuites/mptests/mp14/node1/Makefile.am
    testsuites/mptests/mp14/node1/mp14.doc
    testsuites/mptests/mp14/node1/mp14.scn
    testsuites/mptests/mp14/node2/Makefile.am
    testsuites/mptests/mp14/node2/mp14.doc
    testsuites/mptests/mp14/node2/mp14.scn
    testsuites/mptests/mp14/pttask1.c
    testsuites/mptests/mp14/smtask1.c
    testsuites/mptests/mp14/system.h
    testsuites/mptests/mptests.am
    testsuites/psxtests/Makefile.am
    testsuites/psxtests/include/Makefile.am
    testsuites/psxtests/include/pmacros.h
    testsuites/psxtests/psx01/Makefile.am
    testsuites/psxtests/psx01/init.c
    testsuites/psxtests/psx01/psx01.scn
    testsuites/psxtests/psx01/system.h
    testsuites/psxtests/psx01/task.c
    testsuites/psxtests/psx02/Makefile.am
    testsuites/psxtests/psx02/init.c
    testsuites/psxtests/psx02/psx02.scn
    testsuites/psxtests/psx02/system.h
    testsuites/psxtests/psx02/task.c
    testsuites/psxtests/psx03/Makefile.am
    testsuites/psxtests/psx03/init.c
    testsuites/psxtests/psx03/psx03.scn
    testsuites/psxtests/psx03/system.h
    testsuites/psxtests/psx03/task.c
    testsuites/psxtests/psx04/Makefile.am
    testsuites/psxtests/psx04/init.c
    testsuites/psxtests/psx04/psx04.scn
    testsuites/psxtests/psx04/system.h
    testsuites/psxtests/psx04/task1.c
    testsuites/psxtests/psx04/task2.c
    testsuites/psxtests/psx04/task3.c
    testsuites/psxtests/psx05/Makefile.am
    testsuites/psxtests/psx05/init.c
    testsuites/psxtests/psx05/psx05.scn
    testsuites/psxtests/psx05/system.h
    testsuites/psxtests/psx05/task.c
    testsuites/psxtests/psx05/task2.c
    testsuites/psxtests/psx05/task3.c
    testsuites/psxtests/psx06/Makefile.am
    testsuites/psxtests/psx06/init.c
    testsuites/psxtests/psx06/psx06.scn
    testsuites/psxtests/psx06/system.h
    testsuites/psxtests/psx06/task.c
    testsuites/psxtests/psx06/task2.c
    testsuites/psxtests/psx07/Makefile.am
    testsuites/psxtests/psx07/init.c
    testsuites/psxtests/psx07/psx07.scn
    testsuites/psxtests/psx07/system.h
    testsuites/psxtests/psx07/task.c
    testsuites/psxtests/psx08/Makefile.am
    testsuites/psxtests/psx08/init.c
    testsuites/psxtests/psx08/psx08.scn
    testsuites/psxtests/psx08/system.h
    testsuites/psxtests/psx08/task1.c
    testsuites/psxtests/psx08/task2.c
    testsuites/psxtests/psx08/task3.c
    testsuites/psxtests/psx09/Makefile.am
    testsuites/psxtests/psx09/init.c
    testsuites/psxtests/psx09/psx09.scn
    testsuites/psxtests/psx09/system.h
    testsuites/psxtests/psx10/Makefile.am
    testsuites/psxtests/psx10/init.c
    testsuites/psxtests/psx10/psx10.scn
    testsuites/psxtests/psx10/system.h
    testsuites/psxtests/psx10/task.c
    testsuites/psxtests/psx10/task2.c
    testsuites/psxtests/psx10/task3.c
    testsuites/psxtests/psx11/Makefile.am
    testsuites/psxtests/psx11/init.c
    testsuites/psxtests/psx11/psx11.scn
    testsuites/psxtests/psx11/system.h
    testsuites/psxtests/psx11/task.c
    testsuites/psxtests/psx12/Makefile.am
    testsuites/psxtests/psx12/init.c
    testsuites/psxtests/psx12/psx12.scn
    testsuites/psxtests/psx12/system.h
    testsuites/psxtests/psx12/task.c
    testsuites/psxtests/psx13/Makefile.am
    testsuites/psxtests/psx13/main.c
    testsuites/psxtests/psx13/psx13.scn
    testsuites/psxtests/psx13/test.c
    testsuites/psxtests/psxcancel/Makefile.am
    testsuites/psxtests/psxcancel/init.c
    testsuites/psxtests/psxcancel/psxcancel.scn
    testsuites/psxtests/psxfile01/Makefile.am
    testsuites/psxtests/psxfile01/main.c
    testsuites/psxtests/psxfile01/psxfile01.scn
    testsuites/psxtests/psxfile01/test.c
    testsuites/psxtests/psxfile01/test_cat.c
    testsuites/psxtests/psxfile01/test_extend.c
    testsuites/psxtests/psxfile01/test_write.c
    testsuites/psxtests/psxhdrs/Makefile.am
    testsuites/psxtests/psxhdrs/clock01.c
    testsuites/psxtests/psxhdrs/clock02.c
    testsuites/psxtests/psxhdrs/clock03.c
    testsuites/psxtests/psxhdrs/clock04.c
    testsuites/psxtests/psxhdrs/clock05.c
    testsuites/psxtests/psxhdrs/clock06.c
    testsuites/psxtests/psxhdrs/cond01.c
    testsuites/psxtests/psxhdrs/cond02.c
    testsuites/psxtests/psxhdrs/cond03.c
    testsuites/psxtests/psxhdrs/cond04.c
    testsuites/psxtests/psxhdrs/cond05.c
    testsuites/psxtests/psxhdrs/cond06.c
    testsuites/psxtests/psxhdrs/cond07.c
    testsuites/psxtests/psxhdrs/cond08.c
    testsuites/psxtests/psxhdrs/cond09.c
    testsuites/psxtests/psxhdrs/cond10.c
    testsuites/psxtests/psxhdrs/key01.c
    testsuites/psxtests/psxhdrs/key02.c
    testsuites/psxtests/psxhdrs/key03.c
    testsuites/psxtests/psxhdrs/key04.c
    testsuites/psxtests/psxhdrs/mutex01.c
    testsuites/psxtests/psxhdrs/mutex02.c
    testsuites/psxtests/psxhdrs/mutex03.c
    testsuites/psxtests/psxhdrs/mutex04.c
    testsuites/psxtests/psxhdrs/mutex05.c
    testsuites/psxtests/psxhdrs/mutex06.c
    testsuites/psxtests/psxhdrs/mutex07.c
    testsuites/psxtests/psxhdrs/mutex08.c
    testsuites/psxtests/psxhdrs/mutex09.c
    testsuites/psxtests/psxhdrs/mutex10.c
    testsuites/psxtests/psxhdrs/mutex11.c
    testsuites/psxtests/psxhdrs/mutex12.c
    testsuites/psxtests/psxhdrs/mutex13.c
    testsuites/psxtests/psxhdrs/mutex14.c
    testsuites/psxtests/psxhdrs/mutex15.c
    testsuites/psxtests/psxhdrs/mutex16.c
    testsuites/psxtests/psxhdrs/proc01.c
    testsuites/psxtests/psxhdrs/proc02.c
    testsuites/psxtests/psxhdrs/proc03.c
    testsuites/psxtests/psxhdrs/proc04.c
    testsuites/psxtests/psxhdrs/proc05.c
    testsuites/psxtests/psxhdrs/proc06.c
    testsuites/psxtests/psxhdrs/proc07.c
    testsuites/psxtests/psxhdrs/proc08.c
    testsuites/psxtests/psxhdrs/proc09.c
    testsuites/psxtests/psxhdrs/proc10.c
    testsuites/psxtests/psxhdrs/proc11.c
    testsuites/psxtests/psxhdrs/proc12.c
    testsuites/psxtests/psxhdrs/proc13.c
    testsuites/psxtests/psxhdrs/proc14.c
    testsuites/psxtests/psxhdrs/pthread01.c
    testsuites/psxtests/psxhdrs/pthread02.c
    testsuites/psxtests/psxhdrs/pthread03.c
    testsuites/psxtests/psxhdrs/pthread04.c
    testsuites/psxtests/psxhdrs/pthread05.c
    testsuites/psxtests/psxhdrs/pthread06.c
    testsuites/psxtests/psxhdrs/pthread07.c
    testsuites/psxtests/psxhdrs/pthread08.c
    testsuites/psxtests/psxhdrs/pthread09.c
    testsuites/psxtests/psxhdrs/pthread10.c
    testsuites/psxtests/psxhdrs/pthread11.c
    testsuites/psxtests/psxhdrs/pthread12.c
    testsuites/psxtests/psxhdrs/pthread13.c
    testsuites/psxtests/psxhdrs/pthread14.c
    testsuites/psxtests/psxhdrs/pthread15.c
    testsuites/psxtests/psxhdrs/pthread16.c
    testsuites/psxtests/psxhdrs/pthread17.c
    testsuites/psxtests/psxhdrs/pthread18.c
    testsuites/psxtests/psxhdrs/pthread19.c
    testsuites/psxtests/psxhdrs/pthread20.c
    testsuites/psxtests/psxhdrs/pthread21.c
    testsuites/psxtests/psxhdrs/pthread22.c
    testsuites/psxtests/psxhdrs/pthread23.c
    testsuites/psxtests/psxhdrs/pthread24.c
    testsuites/psxtests/psxhdrs/pthread25.c
    testsuites/psxtests/psxhdrs/pthread26.c
    testsuites/psxtests/psxhdrs/pthread27.c
    testsuites/psxtests/psxhdrs/pthread28.c
    testsuites/psxtests/psxhdrs/pthread29.c
    testsuites/psxtests/psxhdrs/pthread30.c
    testsuites/psxtests/psxhdrs/pthread31.c
    testsuites/psxtests/psxhdrs/pthread32.c
    testsuites/psxtests/psxhdrs/pthread33.c
    testsuites/psxtests/psxhdrs/pthread34.c
    testsuites/psxtests/psxhdrs/pthread35.c
    testsuites/psxtests/psxhdrs/pthread36.c
    testsuites/psxtests/psxhdrs/sched01.c
    testsuites/psxtests/psxhdrs/sched02.c
    testsuites/psxtests/psxhdrs/sched03.c
    testsuites/psxtests/psxhdrs/sched04.c
    testsuites/psxtests/psxhdrs/sched05.c
    testsuites/psxtests/psxhdrs/sched06.c
    testsuites/psxtests/psxhdrs/sched07.c
    testsuites/psxtests/psxhdrs/sched08.c
    testsuites/psxtests/psxhdrs/signal01.c
    testsuites/psxtests/psxhdrs/signal02.c
    testsuites/psxtests/psxhdrs/signal03.c
    testsuites/psxtests/psxhdrs/signal04.c
    testsuites/psxtests/psxhdrs/signal05.c
    testsuites/psxtests/psxhdrs/signal06.c
    testsuites/psxtests/psxhdrs/signal07.c
    testsuites/psxtests/psxhdrs/signal08.c
    testsuites/psxtests/psxhdrs/signal09.c
    testsuites/psxtests/psxhdrs/signal10.c
    testsuites/psxtests/psxhdrs/signal11.c
    testsuites/psxtests/psxhdrs/signal12.c
    testsuites/psxtests/psxhdrs/signal13.c
    testsuites/psxtests/psxhdrs/signal14.c
    testsuites/psxtests/psxhdrs/signal15.c
    testsuites/psxtests/psxhdrs/signal16.c
    testsuites/psxtests/psxhdrs/signal17.c
    testsuites/psxtests/psxhdrs/signal18.c
    testsuites/psxtests/psxhdrs/signal19.c
    testsuites/psxtests/psxhdrs/signal20.c
    testsuites/psxtests/psxhdrs/signal21.c
    testsuites/psxtests/psxhdrs/signal22.c
    testsuites/psxtests/psxhdrs/time01.c
    testsuites/psxtests/psxhdrs/time02.c
    testsuites/psxtests/psxhdrs/time03.c
    testsuites/psxtests/psxhdrs/time04.c
    testsuites/psxtests/psxhdrs/time05.c
    testsuites/psxtests/psxhdrs/time06.c
    testsuites/psxtests/psxhdrs/time07.c
    testsuites/psxtests/psxhdrs/time08.c
    testsuites/psxtests/psxhdrs/time09.c
    testsuites/psxtests/psxhdrs/time10.c
    testsuites/psxtests/psxhdrs/time11.c
    testsuites/psxtests/psxhdrs/time12.c
    testsuites/psxtests/psxhdrs/time13.c
    testsuites/psxtests/psxhdrs/timer01.c
    testsuites/psxtests/psxhdrs/timer02.c
    testsuites/psxtests/psxhdrs/timer03.c
    testsuites/psxtests/psxhdrs/timer04.c
    testsuites/psxtests/psxhdrs/timer05.c
    testsuites/psxtests/psxhdrs/timer06.c
    testsuites/psxtests/psxmount/Makefile.am
    testsuites/psxtests/psxmount/main.c
    testsuites/psxtests/psxmount/psxmount.scn
    testsuites/psxtests/psxmount/test.c
    testsuites/psxtests/psxmsgq01/Makefile.am
    testsuites/psxtests/psxmsgq01/init.c
    testsuites/psxtests/psxmsgq01/psxmsgq01.scn
    testsuites/psxtests/psxmsgq01/system.h
    testsuites/psxtests/psxreaddir/Makefile.am
    testsuites/psxtests/psxreaddir/main.c
    testsuites/psxtests/psxreaddir/psxreaddir.scn
    testsuites/psxtests/psxreaddir/test.c
    testsuites/psxtests/psxsem01/Makefile.am
    testsuites/psxtests/psxsem01/init.c
    testsuites/psxtests/psxsem01/psxsem01.scn
    testsuites/psxtests/psxsem01/system.h
    testsuites/psxtests/psxstat/Makefile.am
    testsuites/psxtests/psxstat/main.c
    testsuites/psxtests/psxstat/psxstat.scn
    testsuites/psxtests/psxstat/test.c
    testsuites/psxtests/psxtests.am
    testsuites/psxtests/psxtime/Makefile.am
    testsuites/psxtests/psxtime/main.c
    testsuites/psxtests/psxtime/psxtime.scn
    testsuites/psxtests/psxtime/test.c
    testsuites/psxtests/psxtimer/Makefile.am
    testsuites/psxtests/psxtimer/psxtimer.c
    testsuites/psxtests/psxtimer/psxtimer.scn
    testsuites/psxtests/psxtimer/system.h
    testsuites/samples/Makefile.am
    testsuites/samples/README
    testsuites/samples/base_mp/Makefile.am
    testsuites/samples/base_mp/apptask.c
    testsuites/samples/base_mp/init.c
    testsuites/samples/base_mp/node1/Makefile.am
    testsuites/samples/base_mp/node1/base_mp.doc
    testsuites/samples/base_mp/node1/base_mp.scn
    testsuites/samples/base_mp/node2/Makefile.am
    testsuites/samples/base_mp/node2/base_mp.doc
    testsuites/samples/base_mp/node2/base_mp.scn
    testsuites/samples/base_mp/system.h
    testsuites/samples/base_sp/Makefile.am
    testsuites/samples/base_sp/apptask.c
    testsuites/samples/base_sp/base_sp.doc
    testsuites/samples/base_sp/base_sp.scn
    testsuites/samples/base_sp/init.c
    testsuites/samples/base_sp/system.h
    testsuites/samples/cdtest/Makefile.am
    testsuites/samples/cdtest/cdtest.scn
    testsuites/samples/cdtest/init.c
    testsuites/samples/cdtest/main.cc
    testsuites/samples/cdtest/system.h
    testsuites/samples/hello/Makefile.am
    testsuites/samples/hello/hello.doc
    testsuites/samples/hello/hello.scn
    testsuites/samples/hello/init.c
    testsuites/samples/hello/system.h
    testsuites/samples/minimum/Makefile.am
    testsuites/samples/minimum/init.c
    testsuites/samples/minimum/minimum.doc
    testsuites/samples/minimum/minimum.scn
    testsuites/samples/paranoia/Makefile.am
    testsuites/samples/paranoia/init.c
    testsuites/samples/paranoia/paranoia.c
    testsuites/samples/paranoia/paranoia.doc
    testsuites/samples/paranoia/system.h
    testsuites/samples/sample.am
    testsuites/samples/ticker/Makefile.am
    testsuites/samples/ticker/init.c
    testsuites/samples/ticker/system.h
    testsuites/samples/ticker/tasks.c
    testsuites/samples/ticker/ticker.doc
    testsuites/samples/ticker/ticker.scn
    testsuites/samples/unlimited/Makefile.am
    testsuites/samples/unlimited/init.c
    testsuites/samples/unlimited/system.h
    testsuites/samples/unlimited/test1.c
    testsuites/samples/unlimited/test2.c
    testsuites/samples/unlimited/test3.c
    testsuites/samples/unlimited/unlimited.doc
    testsuites/samples/unlimited/unlimited.scn
    testsuites/sptests/Makefile.am
    testsuites/sptests/README
    testsuites/sptests/sp01/Makefile.am
    testsuites/sptests/sp01/init.c
    testsuites/sptests/sp01/sp01.doc
    testsuites/sptests/sp01/sp01.scn
    testsuites/sptests/sp01/system.h
    testsuites/sptests/sp01/task1.c
    testsuites/sptests/sp02/Makefile.am
    testsuites/sptests/sp02/init.c
    testsuites/sptests/sp02/preempt.c
    testsuites/sptests/sp02/sp02.doc
    testsuites/sptests/sp02/sp02.scn
    testsuites/sptests/sp02/system.h
    testsuites/sptests/sp02/task1.c
    testsuites/sptests/sp02/task2.c
    testsuites/sptests/sp02/task3.c
    testsuites/sptests/sp03/Makefile.am
    testsuites/sptests/sp03/init.c
    testsuites/sptests/sp03/sp03.doc
    testsuites/sptests/sp03/sp03.scn
    testsuites/sptests/sp03/system.h
    testsuites/sptests/sp03/task1.c
    testsuites/sptests/sp03/task2.c
    testsuites/sptests/sp04/Makefile.am
    testsuites/sptests/sp04/init.c
    testsuites/sptests/sp04/sp04.doc
    testsuites/sptests/sp04/sp04.scn
    testsuites/sptests/sp04/system.h
    testsuites/sptests/sp04/task1.c
    testsuites/sptests/sp04/task2.c
    testsuites/sptests/sp04/task3.c
    testsuites/sptests/sp04/tswitch.c
    testsuites/sptests/sp05/Makefile.am
    testsuites/sptests/sp05/init.c
    testsuites/sptests/sp05/sp05.doc
    testsuites/sptests/sp05/sp05.scn
    testsuites/sptests/sp05/system.h
    testsuites/sptests/sp05/task1.c
    testsuites/sptests/sp05/task2.c
    testsuites/sptests/sp05/task3.c
    testsuites/sptests/sp06/Makefile.am
    testsuites/sptests/sp06/init.c
    testsuites/sptests/sp06/sp06.doc
    testsuites/sptests/sp06/sp06.scn
    testsuites/sptests/sp06/system.h
    testsuites/sptests/sp06/task1.c
    testsuites/sptests/sp06/task2.c
    testsuites/sptests/sp06/task3.c
    testsuites/sptests/sp07/Makefile.am
    testsuites/sptests/sp07/init.c
    testsuites/sptests/sp07/sp07.doc
    testsuites/sptests/sp07/sp07.scn
    testsuites/sptests/sp07/system.h
    testsuites/sptests/sp07/task1.c
    testsuites/sptests/sp07/task2.c
    testsuites/sptests/sp07/task3.c
    testsuites/sptests/sp07/task4.c
    testsuites/sptests/sp07/taskexit.c
    testsuites/sptests/sp07/tcreate.c
    testsuites/sptests/sp07/tdelete.c
    testsuites/sptests/sp07/trestart.c
    testsuites/sptests/sp07/tstart.c
    testsuites/sptests/sp08/Makefile.am
    testsuites/sptests/sp08/init.c
    testsuites/sptests/sp08/sp08.doc
    testsuites/sptests/sp08/sp08.scn
    testsuites/sptests/sp08/system.h
    testsuites/sptests/sp08/task1.c
    testsuites/sptests/sp09/Makefile.am
    testsuites/sptests/sp09/delay.c
    testsuites/sptests/sp09/init.c
    testsuites/sptests/sp09/isr.c
    testsuites/sptests/sp09/screen01.c
    testsuites/sptests/sp09/screen02.c
    testsuites/sptests/sp09/screen03.c
    testsuites/sptests/sp09/screen04.c
    testsuites/sptests/sp09/screen05.c
    testsuites/sptests/sp09/screen06.c
    testsuites/sptests/sp09/screen07.c
    testsuites/sptests/sp09/screen08.c
    testsuites/sptests/sp09/screen09.c
    testsuites/sptests/sp09/screen10.c
    testsuites/sptests/sp09/screen11.c
    testsuites/sptests/sp09/screen12.c
    testsuites/sptests/sp09/screen13.c
    testsuites/sptests/sp09/screen14.c
    testsuites/sptests/sp09/sp09.doc
    testsuites/sptests/sp09/sp09.scn
    testsuites/sptests/sp09/system.h
    testsuites/sptests/sp09/task1.c
    testsuites/sptests/sp09/task2.c
    testsuites/sptests/sp09/task3.c
    testsuites/sptests/sp09/task4.c
    testsuites/sptests/sp11/Makefile.am
    testsuites/sptests/sp11/init.c
    testsuites/sptests/sp11/sp11.doc
    testsuites/sptests/sp11/sp11.scn
    testsuites/sptests/sp11/system.h
    testsuites/sptests/sp11/task1.c
    testsuites/sptests/sp11/task2.c
    testsuites/sptests/sp11/timer.c
    testsuites/sptests/sp12/Makefile.am
    testsuites/sptests/sp12/init.c
    testsuites/sptests/sp12/pridrv.c
    testsuites/sptests/sp12/pritask.c
    testsuites/sptests/sp12/sp12.doc
    testsuites/sptests/sp12/sp12.scn
    testsuites/sptests/sp12/system.h
    testsuites/sptests/sp12/task1.c
    testsuites/sptests/sp12/task2.c
    testsuites/sptests/sp12/task3.c
    testsuites/sptests/sp12/task4.c
    testsuites/sptests/sp12/task5.c
    testsuites/sptests/sp13/Makefile.am
    testsuites/sptests/sp13/fillbuff.c
    testsuites/sptests/sp13/init.c
    testsuites/sptests/sp13/putbuff.c
    testsuites/sptests/sp13/sp13.doc
    testsuites/sptests/sp13/sp13.scn
    testsuites/sptests/sp13/system.h
    testsuites/sptests/sp13/task1.c
    testsuites/sptests/sp13/task2.c
    testsuites/sptests/sp13/task3.c
    testsuites/sptests/sp14/Makefile.am
    testsuites/sptests/sp14/asr.c
    testsuites/sptests/sp14/init.c
    testsuites/sptests/sp14/sp14.doc
    testsuites/sptests/sp14/sp14.scn
    testsuites/sptests/sp14/system.h
    testsuites/sptests/sp14/task1.c
    testsuites/sptests/sp14/task2.c
    testsuites/sptests/sp15/Makefile.am
    testsuites/sptests/sp15/init.c
    testsuites/sptests/sp15/sp15.doc
    testsuites/sptests/sp15/sp15.scn
    testsuites/sptests/sp15/system.h
    testsuites/sptests/sp15/task1.c
    testsuites/sptests/sp16/Makefile.am
    testsuites/sptests/sp16/init.c
    testsuites/sptests/sp16/sp16.doc
    testsuites/sptests/sp16/sp16.scn
    testsuites/sptests/sp16/system.h
    testsuites/sptests/sp16/task1.c
    testsuites/sptests/sp16/task2.c
    testsuites/sptests/sp16/task3.c
    testsuites/sptests/sp16/task4.c
    testsuites/sptests/sp16/task5.c
    testsuites/sptests/sp17/Makefile.am
    testsuites/sptests/sp17/asr.c
    testsuites/sptests/sp17/init.c
    testsuites/sptests/sp17/sp17.doc
    testsuites/sptests/sp17/sp17.scn
    testsuites/sptests/sp17/system.h
    testsuites/sptests/sp17/task1.c
    testsuites/sptests/sp17/task2.c
    testsuites/sptests/sp19/Makefile.am
    testsuites/sptests/sp19/first.c
    testsuites/sptests/sp19/fptask.c
    testsuites/sptests/sp19/fptest.h
    testsuites/sptests/sp19/init.c
    testsuites/sptests/sp19/inttest.h
    testsuites/sptests/sp19/sp19.doc
    testsuites/sptests/sp19/sp19.scn
    testsuites/sptests/sp19/system.h
    testsuites/sptests/sp19/task1.c
    testsuites/sptests/sp20/Makefile.am
    testsuites/sptests/sp20/getall.c
    testsuites/sptests/sp20/init.c
    testsuites/sptests/sp20/sp20.doc
    testsuites/sptests/sp20/sp20.scn
    testsuites/sptests/sp20/system.h
    testsuites/sptests/sp20/task1.c
    testsuites/sptests/sp21/Makefile.am
    testsuites/sptests/sp21/init.c
    testsuites/sptests/sp21/sp21.doc
    testsuites/sptests/sp21/sp21.scn
    testsuites/sptests/sp21/system.h
    testsuites/sptests/sp21/task1.c
    testsuites/sptests/sp22/Makefile.am
    testsuites/sptests/sp22/delay.c
    testsuites/sptests/sp22/init.c
    testsuites/sptests/sp22/prtime.c
    testsuites/sptests/sp22/sp22.doc
    testsuites/sptests/sp22/sp22.scn
    testsuites/sptests/sp22/system.h
    testsuites/sptests/sp22/task1.c
    testsuites/sptests/sp23/Makefile.am
    testsuites/sptests/sp23/init.c
    testsuites/sptests/sp23/sp23.doc
    testsuites/sptests/sp23/sp23.scn
    testsuites/sptests/sp23/system.h
    testsuites/sptests/sp23/task1.c
    testsuites/sptests/sp24/Makefile.am
    testsuites/sptests/sp24/init.c
    testsuites/sptests/sp24/resume.c
    testsuites/sptests/sp24/sp24.doc
    testsuites/sptests/sp24/sp24.scn
    testsuites/sptests/sp24/system.h
    testsuites/sptests/sp24/task1.c
    testsuites/sptests/sp25/Makefile.am
    testsuites/sptests/sp25/init.c
    testsuites/sptests/sp25/sp25.doc
    testsuites/sptests/sp25/sp25.scn
    testsuites/sptests/sp25/system.h
    testsuites/sptests/sp25/task1.c
    testsuites/sptests/sp26/Makefile.am
    testsuites/sptests/sp26/init.c
    testsuites/sptests/sp26/sp26.doc
    testsuites/sptests/sp26/sp26.scn
    testsuites/sptests/sp26/system.h
    testsuites/sptests/sp26/task1.c
    testsuites/sptests/sp27/Makefile.am
    testsuites/sptests/sp27/init.c
    testsuites/sptests/sp27/sp27.doc
    testsuites/sptests/sp27/sp27.scn
    testsuites/sptests/sp28/Makefile.am
    testsuites/sptests/sp28/init.c
    testsuites/sptests/sp28/sp28.doc
    testsuites/sptests/sp28/sp28.scn
    testsuites/sptests/sp29/Makefile.am
    testsuites/sptests/sp29/init.c
    testsuites/sptests/sp29/sp29.doc
    testsuites/sptests/sp29/sp29.scn
    testsuites/sptests/spfatal/Makefile.am
    testsuites/sptests/spfatal/README
    testsuites/sptests/spfatal/fatal.c
    testsuites/sptests/spfatal/init.c
    testsuites/sptests/spfatal/puterr.c
    testsuites/sptests/spfatal/spfatal.doc
    testsuites/sptests/spfatal/spfatal.scn
    testsuites/sptests/spfatal/system.h
    testsuites/sptests/spfatal/task1.c
    testsuites/sptests/spsize/Makefile.am
    testsuites/sptests/spsize/getint.c
    testsuites/sptests/spsize/init.c
    testsuites/sptests/spsize/size.c
    testsuites/sptests/spsize/size.scn
    testsuites/sptests/spsize/system.h
    testsuites/sptests/sptests.am
    testsuites/support/Makefile.am
    testsuites/support/include/tmacros.h
    testsuites/tmitrontests/Makefile.am
    testsuites/tmitrontests/README
    testsuites/tmitrontests/include/Makefile.am
    testsuites/tmitrontests/include/timesys.h
    testsuites/tmitrontests/tmitronsem01/Makefile.am
    testsuites/tmitrontests/tmitronsem01/init.c
    testsuites/tmitrontests/tmitronsem01/system.h
    testsuites/tmitrontests/tmitronsem01/tmitronsem01.doc
    testsuites/tmitrontests/tmitrontests.am
    testsuites/tmtests/Makefile.am
    testsuites/tmtests/README
    testsuites/tmtests/include/Makefile.am
    testsuites/tmtests/include/timesys.h
    testsuites/tmtests/tm01/Makefile.am
    testsuites/tmtests/tm01/system.h
    testsuites/tmtests/tm01/task1.c
    testsuites/tmtests/tm01/tm01.doc
    testsuites/tmtests/tm02/Makefile.am
    testsuites/tmtests/tm02/system.h
    testsuites/tmtests/tm02/task1.c
    testsuites/tmtests/tm02/tm02.doc
    testsuites/tmtests/tm03/Makefile.am
    testsuites/tmtests/tm03/system.h
    testsuites/tmtests/tm03/task1.c
    testsuites/tmtests/tm03/tm03.doc
    testsuites/tmtests/tm04/Makefile.am
    testsuites/tmtests/tm04/system.h
    testsuites/tmtests/tm04/task1.c
    testsuites/tmtests/tm04/tm04.doc
    testsuites/tmtests/tm05/Makefile.am
    testsuites/tmtests/tm05/system.h
    testsuites/tmtests/tm05/task1.c
    testsuites/tmtests/tm05/tm05.doc
    testsuites/tmtests/tm06/Makefile.am
    testsuites/tmtests/tm06/system.h
    testsuites/tmtests/tm06/task1.c
    testsuites/tmtests/tm06/tm06.doc
    testsuites/tmtests/tm07/Makefile.am
    testsuites/tmtests/tm07/system.h
    testsuites/tmtests/tm07/task1.c
    testsuites/tmtests/tm07/tm07.doc
    testsuites/tmtests/tm08/Makefile.am
    testsuites/tmtests/tm08/system.h
    testsuites/tmtests/tm08/task1.c
    testsuites/tmtests/tm08/tm08.doc
    testsuites/tmtests/tm09/Makefile.am
    testsuites/tmtests/tm09/system.h
    testsuites/tmtests/tm09/task1.c
    testsuites/tmtests/tm09/tm09.doc
    testsuites/tmtests/tm10/Makefile.am
    testsuites/tmtests/tm10/system.h
    testsuites/tmtests/tm10/task1.c
    testsuites/tmtests/tm10/tm10.doc
    testsuites/tmtests/tm11/Makefile.am
    testsuites/tmtests/tm11/system.h
    testsuites/tmtests/tm11/task1.c
    testsuites/tmtests/tm11/tm11.doc
    testsuites/tmtests/tm12/Makefile.am
    testsuites/tmtests/tm12/system.h
    testsuites/tmtests/tm12/task1.c
    testsuites/tmtests/tm12/tm12.doc
    testsuites/tmtests/tm13/Makefile.am
    testsuites/tmtests/tm13/system.h
    testsuites/tmtests/tm13/task1.c
    testsuites/tmtests/tm13/tm13.doc
    testsuites/tmtests/tm14/Makefile.am
    testsuites/tmtests/tm14/system.h
    testsuites/tmtests/tm14/task1.c
    testsuites/tmtests/tm14/tm14.doc
    testsuites/tmtests/tm15/Makefile.am
    testsuites/tmtests/tm15/system.h
    testsuites/tmtests/tm15/task1.c
    testsuites/tmtests/tm15/tm15.doc
    testsuites/tmtests/tm16/Makefile.am
    testsuites/tmtests/tm16/system.h
    testsuites/tmtests/tm16/task1.c
    testsuites/tmtests/tm16/tm16.doc
    testsuites/tmtests/tm17/Makefile.am
    testsuites/tmtests/tm17/system.h
    testsuites/tmtests/tm17/task1.c
    testsuites/tmtests/tm17/tm17.doc
    testsuites/tmtests/tm18/Makefile.am
    testsuites/tmtests/tm18/system.h
    testsuites/tmtests/tm18/task1.c
    testsuites/tmtests/tm18/tm18.doc
    testsuites/tmtests/tm19/Makefile.am
    testsuites/tmtests/tm19/system.h
    testsuites/tmtests/tm19/task1.c
    testsuites/tmtests/tm19/tm19.doc
    testsuites/tmtests/tm20/Makefile.am
    testsuites/tmtests/tm20/system.h
    testsuites/tmtests/tm20/task1.c
    testsuites/tmtests/tm20/tm20.doc
    testsuites/tmtests/tm21/Makefile.am
    testsuites/tmtests/tm21/system.h
    testsuites/tmtests/tm21/task1.c
    testsuites/tmtests/tm21/tm21.doc
    testsuites/tmtests/tm22/Makefile.am
    testsuites/tmtests/tm22/system.h
    testsuites/tmtests/tm22/task1.c
    testsuites/tmtests/tm22/tm22.doc
    testsuites/tmtests/tm23/Makefile.am
    testsuites/tmtests/tm23/system.h
    testsuites/tmtests/tm23/task1.c
    testsuites/tmtests/tm23/tm23.doc
    testsuites/tmtests/tm24/Makefile.am
    testsuites/tmtests/tm24/system.h
    testsuites/tmtests/tm24/task1.c
    testsuites/tmtests/tm24/tm24.doc
    testsuites/tmtests/tm25/Makefile.am
    testsuites/tmtests/tm25/system.h
    testsuites/tmtests/tm25/task1.c
    testsuites/tmtests/tm25/tm25.doc
    testsuites/tmtests/tm26/Makefile.am
    testsuites/tmtests/tm26/fptest.h
    testsuites/tmtests/tm26/system.h
    testsuites/tmtests/tm26/task1.c
    testsuites/tmtests/tm26/tm26.doc
    testsuites/tmtests/tm27/Makefile.am
    testsuites/tmtests/tm27/system.h
    testsuites/tmtests/tm27/task1.c
    testsuites/tmtests/tm27/tm27.doc
    testsuites/tmtests/tm28/Makefile.am
    testsuites/tmtests/tm28/system.h
    testsuites/tmtests/tm28/task1.c
    testsuites/tmtests/tm28/tm28.doc
    testsuites/tmtests/tm29/Makefile.am
    testsuites/tmtests/tm29/system.h
    testsuites/tmtests/tm29/task1.c
    testsuites/tmtests/tm29/tm29.doc
    testsuites/tmtests/tmck/Makefile.am
    testsuites/tmtests/tmck/system.h
    testsuites/tmtests/tmck/task1.c
    testsuites/tmtests/tmck/tmck.doc
    testsuites/tmtests/tmoverhd/Makefile.am
    testsuites/tmtests/tmoverhd/dumrtems.h
    testsuites/tmtests/tmoverhd/empty.c
    testsuites/tmtests/tmoverhd/system.h
    testsuites/tmtests/tmoverhd/testtask.c
    testsuites/tmtests/tmoverhd/tmoverhd.doc
    testsuites/tmtests/tmtests.am
    testsuites/tools/Makefile.am
    testsuites/tools/generic/Makefile.am
    testsuites/tools/generic/difftest.in
    testsuites/tools/generic/sorttimes.in
2000-02-11 15:54:48 +00:00
18622 changed files with 537843 additions and 3554020 deletions

8
.cvsignore Normal file
View File

@@ -0,0 +1,8 @@
Makefile
Makefile.in
aclocal.m4
config.cache
config.log
config.status
configure
depcomp

6
.gitignore vendored
View File

@@ -1,6 +0,0 @@
/build
doc
/*.ini
.lock*
*.pyc
.waf*

View File

@@ -1,261 +0,0 @@
# Please keep users, directories and files sorted alphabetically.
# Directories first
#
# If there is more than 1 user in a section it must be promoted to a group in
# /approvers
[General Maintainer] @approvers/general/maintainer
*
[Documentation] @approvers/docs
*/README
*.md
*.rst
*.txt
# CPUKit
########
[CPUKit libdebugger] @approvers/cpukit/libdebugger
/cpukit/libdebugger
[CPUKit libdl] @approvers/cpukit/libdl
/cpukit/libdl
[CPUKit libdrvmgr] @approvers/cpukit/libdrvmgr
/cpukit/libdrvmgr
[CPUKit libgnat] @joel
/cpukit/libgnat
[CPUKit librtemscxx] @approvers/cpukit/librtemscxx
/cpukit/librtemscxx
[CPUKit libstdthreads] @approvers/cpukit/libstdthreads
/cpukit/libstdthreads
# Architectures
###############
[Arch AArch64] @approvers/arch/aarch64
/bsps/aarch64/
/cpukit/score/cpu/aarch64/
/spec/build/bsps/aarch64/
/cpukit/libdebugger/rtems-debugger-aarch64.v
/cpukit/libdl/rtl-mdreloc-aarch64.c
/spec/build/cpukit/*aarch64.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch ARM] @approvers/arch/arm
/bsps/arm/
/bsps/include/arm/
/bsps/include/xil/arm/
/bsps/shared/freebsd/sys/arm/
/bsps/shared/xil/arm/
/cpukit/score/cpu/arm/
/spec/build/bsps/arm/
/cpukit/libdebugger/rtems-debugger-arm.c
/cpukit/libdl/*arm*
/spec/build/cpukit/*arm.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch Blackfin] @approvers/arch/bfin
/bsps/bfin/
/cpukit/score/cpu/bfin/
/spec/build/bsps/bfin/
/cpukit/libdl/rtl-mdreloc-bfin.c
/spec/build/cpukit/cpubfin.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch i386] @approvers/arch/i386
/bsps/i386/
/cpukit/score/cpu/i386/
/spec/build/bsps/i386/
/cpukit/libdebugger/rtems-debugger-i386.c
/cpukit/libdl/rtl-mdreloc-i386.c
/spec/build/cpukit/*i386*
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch LatticeMico32] @approvers/arch/lm32
/bsps/lm32/
/cpukit/score/cpu/lm32/
/spec/build/bsps/lm32/
/cpukit/libdl/rtl-mdreloc-lm32.c
/spec/build/cpukit/cpulm32.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch Motorola 68000] @approvers/arch/m68k
/bsps/m68k/
/cpukit/score/cpu/m68k/
/spec/build/bsps/m68k/
/cpukit/libdl/rtl-mdreloc-m68k.c
/spec/build/cpukit/*m68k*
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch MicroBlaze] @approvers/arch/microblaze
/bsps/include/xil/microblaze/
/bsps/microblaze/
/cpukit/score/cpu/microblaze/
/spec/build/bsps/microblaze/
/cpukit/libdebugger/rtems-debugger-microblaze.c
/cpukit/libdl/rtl-mdreloc-microblaze.c
/spec/build/cpukit/*microblaze*
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch MIPS] @approvers/arch/mips
/bsps/mips/
/cpukit/score/cpu/mips/
/spec/build/bsps/mips/
/cpukit/libdl/rtl-mdreloc-mips.c
/spec/build/cpukit/*mips.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch Moxie] @approvers/arch/moxie
/bsps/moxie/
/cpukit/score/cpu/moxie/
/spec/build/bsps/moxie/
/cpukit/libdl/rtl-mdreloc-moxie.c
/spec/build/cpukit/*moxie.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch Nios II] @approvers/arch/nios2
/bsps/nios2/
/cpukit/score/cpu/nios2/
/spec/build/bsps/nios2/
/spec/build/cpukit/*nios2.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch OpenRISC 1000] @approvers/arch/or1k
/bsps/or1k/
/cpukit/score/cpu/or1k/
/spec/build/bsps/or1k/
/spec/build/cpukit/*or1k.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch PowerPC] @approvers/arch/powerpc
/bsps/powerpc/
/cpukit/score/cpu/powerpc/
/spec/build/bsps/powerpc/
/cpukit/libdl/rtl-mdreloc-powerpc.c
/spec/build/cpukit/*powerpc.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch RISC-V] @approvers/arch/risc-v
/bsps/riscv
/cpukit/score/cpu/riscv
/spec/build/bsps/riscv
/cpukit/libdl/rtl-mdreloc-riscv.c
/spec/build/cpukit/*riscv.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch SuperH] @approvers/arch/superh
/bsps/sh/
/cpukit/score/cpu/sh/
/spec/build/bsps/sh/
/spec/build/cpukit/cpush.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch SPARC] @approvers/arch/sparc
/bsps/sparc/
/cpukit/score/cpu/sparc/
/spec/build/bsps/sparc/
/spec/build/cpukit/cpusparc.yml
/spec/build/cpukit/objdlsparc.yml
/spec/build/testsuites/validation/bsps/*-sparc-*
/testsuites/validation/bsps/*-sparc-*
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch SPARC64] @approvers/arch/sparc64
/bsps/sparc64/
/cpukit/score/cpu/sparc64/
/spec/build/bsps/sparc64/
/spec/build/cpukit/*sparc64.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch V850] @approvers/arch/v850
/bsps/v850/
/cpukit/score/cpu/v850/
/spec/build/bsps/v850/
/cpukit/libdl/rtl-mdreloc-v850.c
/spec/build/cpukit/*v850.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs
[Arch X86_64] @approvers/arch/x86_64
/bsps/x86_64/
/cpukit/score/cpu/x86_64/
/spec/build/bsps/x86_64/
/spec/build/cpukit/*x8664.yml
*/README @approvers/docs
*.md @approvers/docs
*.rst @approvers/docs
*.txt @approvers/docs

343
COPYING Normal file
View File

@@ -0,0 +1,343 @@
#
# $Id$
#
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

2538
Doxyfile

File diff suppressed because it is too large Load Diff

51
INSTALL Normal file
View File

@@ -0,0 +1,51 @@
#
# $Id$
#
Building RTEMS
==============
See the file README.configure.
UNCOMPRESSING .tgz FILES
===========================
Many of the files found in this directory and its subdirectories
are gzip'ed, tar archive files. These files have the ".tgz"
extension. They were compressed with gzip version 1.2.4.
Use a command sequence similar to the following to uncompress each
file:
gzcat FILE.tgz | tar xvof -
where FILE.tgz is the file to be installed. This procedure will
extract the files in the archive into the current directory.
All of the .tgz files associated with this release RTEMS will
place their contents in a subdirectory rtems-<release> in the current
directory.
If you are unsure of what is in an RTEMS archive file, then use
the following command sequence to get a listing of the contents:
gzcat FILE.tgz | tar tvf -
NOTES:
(1) The "-o" option to tar is included on the tar command line
so that the user extracting the tar archive will own the extracted
files.
(2) gzcat is sometimes installed as zcat. Be warned that on many
(most) UNIX machines, zcat is associated with compress (.Z files).
(3) If you do not have gzip 1.2.4, it is available from numerous sites
including this one. Other sites include ftp.gnu.org and ftp.cdrom.com.
(4) The GNU archive files included in this distribution are packaged
exactly like they are on official GNU ftp sites. When extracting
GNU archives, they will not extract under a rtems-<version>
directory. They will extract themselves under a directory which
is the name and version of the tool in question. For example,
gcc-2.5.8.tgz will extract its contents into the subdirectory
gcc-2.5.8.

23
LICENSE Normal file
View File

@@ -0,0 +1,23 @@
#
# $Id$
#
LICENSE INFORMATION
RTEMS is free software; you can redistribute it and/or modify it under
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version. RTEMS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details. You should have received
a copy of the GNU General Public License along with RTEMS; see
file COPYING. If not, write to the Free Software Foundation, 675
Mass Ave, Cambridge, MA 02139, USA.
As a special exception, including RTEMS header files in a file,
instantiating RTEMS generics or templates, or linking other files
with RTEMS objects to produce an executable application, does not
by itself cause the resulting executable application to be covered
by the GNU General Public License. This exception does not
however invalidate any other reasons why the executable file might be
covered by the GNU Public License.

1377
LICENSE.md

File diff suppressed because it is too large Load Diff

42
Makefile.am Normal file
View File

@@ -0,0 +1,42 @@
#
# top level directory for RTEMS build tree
#
## The target's toplevel Makefile now is in c/src
##
## $Id$
##
AUTOMAKE_OPTIONS = foreign 1.4
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
SUBDIRS = doc make tools @TARGET_SUBDIRS@
AUTOMAKE_FILES = automake/subdirs.am automake/local.am automake/lib.am
ACLOCAL_FILES += aclocal/ar-s.m4 aclocal/bsp-alias.m4 \
aclocal/canonical-host.m4 aclocal/canonical-target-name.m4 \
aclocal/canonicalize-tools.m4 aclocal/check-bsps.m4 \
aclocal/check-bsp-cache.m4 aclocal/check-cpu.m4 aclocal/check-cxx.m4 \
aclocal/check-itron.m4 aclocal/check-multiprocessing.m4 \
aclocal/check-networking.m4 aclocal/check-newlib.m4 \
aclocal/check-posix.m4 aclocal/check-rdbg.m4 aclocal/enable-bare.m4 \
aclocal/enable-cxx.m4 aclocal/enable-gcc28.m4 aclocal/enable-hwapi.m4 \
aclocal/enable-inlines.m4 aclocal/enable-itron.m4 \
aclocal/enable-libcdir.m4 aclocal/enable-multiprocessing.m4 \
aclocal/enable-networking.m4 aclocal/enable-posix.m4 \
aclocal/enable-rdbg.m4 aclocal/enable-rtemsbsp.m4 \
aclocal/enable-tests.m4 aclocal/gcc-pipe.m4 aclocal/gcc-specs.m4 \
aclocal/i386-gas-code16.m4 aclocal/path-ksh.m4 aclocal/path-perl.m4 \
aclocal/prog-cc.m4 aclocal/prog-cxx.m4 aclocal/project-root.m4 \
aclocal/rtems-top.m4 aclocal/sysv-ipc.m4 aclocal/target.m4 \
aclocal/tool-paths.m4 aclocal/tool-prefix.m4
noinst_SCRIPTS = bootstrap
EXTRA_DIST = $(AUTOMAKE_FILES) $(ACLOCAL_FILES) README.configure SUPPORT \
VERSION LICENSE $(noinst_SCRIPTS)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(ACLOCAL_FILES)
include $(top_srcdir)/automake/subdirs.am
include $(top_srcdir)/automake/host.am

97
README Normal file
View File

@@ -0,0 +1,97 @@
#
# $Id$
#
Building RTEMS
==============
See the file README.configure.
Directory Overview
==================
This is the top level of the RTEMS directory structure. The following
is a description of the files and directories in this directory:
INSTALL
Rudimentary installation instructions. For more detailed
information please see the Release Notes. The Postscript
version of this manual can be found in the file
c_or_ada/doc/relnotes.tgz.
LICENSE
Required legalese.
README
This file.
c
This directory contains the source code for the C
implementation of RTEMS as well as the test suites, sample
applications, Board Support Packages, Device Drivers, and
support libraries.
doc
This directory contains the PDL for the RTEMS executive.
Ada versus C
============
There are two implementations of RTEMS in this source tree --
in Ada and in C. These two implementations are functionally
and structurally equivalent. The C implementation follows
the packaging conventions and hiearchical nature of the Ada
implementation. In addition, a style has been followed which
allows one to easily find the corresponding Ada and C
implementations.
File names in C and code placement was carefully designed to insure
a close mapping to the Ada implementation. The following file name
extensions are used:
.adb - Ada body
.ads - Ada specification
.adp - Ada body requiring preprocessing
.inc - include file for .adp files
.c - C body (non-inlined routines)
.inl - C body (inlined routines)
.h - C specification
In the executive source, XYZ.c and XYZ.inl correspond directly to a
single XYZ.adb or XYZ.adp file. A .h file corresponds directly to
the .ads file. There are only a handful of .inc files in the
Ada source and these are used to insure that the desired simple
inline textual expansion is performed. This avoids scoping and
calling convention side-effects in carefully constructed tests
which usually test context switch behavior.
In addition, in Ada code and data name references are always fully
qualified as PACKAGE.NAME. In C, this convention is followed
by having the package name as part of the name itself and using a
capital letter to indicate the presence of a "." level. So we have
PACKAGE.NAME in Ada and _Package_Name in C. The leading "_" in C
is used to avoid naming conflicts between RTEMS and user variables.
By using these conventions, one can easily compare the C and Ada
implementations.
The most noticeable difference between the C and Ada83 code is
the inability to easily obtain a "typed pointer" in Ada83.
Using the "&" operator in C yields a pointer with a specific type.
The 'Address attribute is the closest feature in Ada83. This
returns a System.Address and this must be coerced via Unchecked_Conversion
into an access type of the desired type. It is easy to view
System.Address as similar to a "void *" in C, but this is not the case.
A "void *" can be assigned to any other pointer type without an
explicit conversion.
The solution adopted to this problem was to provide two routines for
each access type in the Ada implementation -- one to convert from
System.Address to the access type and another to go the opposite
direction. This results in code which accomplishes the same thing
as the corresponding C but it is easier to get lost in the clutter
of the apparent subprogram invocations than the "less bulky"
C equivalent.
A related difference is the types which are only in Ada which are used
for pointers to arrays. These types do not exist and are not needed
in the C implementation.

250
README.configure Normal file
View File

@@ -0,0 +1,250 @@
#
# $Id$
#
1. Autoconf support
===================
This version of RTEMS is configured with GNU autoconf. RTEMS can be
configured and built either standalone or together with the compiler
tools in the Cygnus one-tree structure. Using autoconf also means
that RTEMS now can be built in a separate build directory.
2. Installation
===============
2.1 Standalone build
To configure RTEMS for a specific target, run configure in the build
directory. In addition to the standard configure options, the following
RTEMS-specific option are supported:
--disable-rtems-inlines
--disable-posix
--disable-itron
--disable-networking
--enable-cxx
--enable-bare-cpu-model=<MODEL>
--enable-bare-cpu-cflags=<FLAGS>
--enable-gcc28 (also use enable-libcdir when disabled)
--enable-libcdir=<DIRECTORY> (do not use if gcc 2.8 is enabled)
--enable-multiprocessing
--enable-rtemsbsp="bsp1 bsp2 ..."
--enable-tests
--enable-rdbg (only valid for i386 and some PowerPC BSPs)
In addition, the following standard autoconf options are frequently
used when configuring RTEMS installations:
--prefix=INSTALL_DIRECTORY
--program-prefix=
By default, inline routines are used instead of macros where possible.
Macros can be selected using the --disable-inlines option. [NOTE:
Some APIs may not support macro versions of their inline routines.]
By default, the RTEMS POSIX 1003.1b interface is built for targets that support
it. It can be disabled with the --disable-posix option.
By default, the RTEMS uITRON interface is built for targets that support
it. It can be disabled with the --disable-itron option.
By default, the RTEMS networking support is built for targets which
support it. It can be specifically disabled for those targets
with the --disable-networking option.
By default, the RTEMS remote debugger server support is not built.
It can be specifically enabled for the targets that support it.
with the --enable-rdbg option. NB : the RTEMS networking support
must be enabled to support the remote debugger server.
By default, the RTEMS support of C++ is disabled. It can be enabled
with the --enable-cxx option. If the rtems++ C++ library is installed
it will also be build.
By default, the RTEMS test suites are NOT configured -- only the
sample tests are built. The --enable-tests will not configure
the RTEMS test suite. The default speeds up the build
and configure process when the tests are not desired.
By default, RTEMS is built using arguments and build rules which are
NOT compatible with gcc 2.7.2.2. If using a gcc which supports the
-specs option, then the --enable-gcc28 option may be used to enable
this feature. You should use the --enable-gcc28 option when using
either the egcs source tree, testgcc snapshots, or gcc 2.8.0 or newer.
If you --disable-gcc28, then you MUST specify the location of the
Standard C Library with the --enable-libcdir option. [NOTE: These
options are considered obsolete and may be removed in a future
RTEMS release.]
By default, multiprocessing is is not built. It can be enabled
for those BSPs supporting it by the --enable-multiprocessing option.
By default, all bsps for a target are built. The bare BSP is not built
unless directlty specified. There are two ways of changing this:
+ use the --enable-rtemsbsp otion which will set the specified
bsps as the default bsps, or
+ set the RTEMS_BSP variable during make (see below).
The --enable-rtemsbsp= option configures RTEMS for a specific target
architecture. The following targets are supported:
(none) will build the host-based version on Linux,
Solaris and HPUX.
a29k-rtems only standalone, uses non-gnu compiler
i386-rtems
i960-rtems
hppa1.1-rtems
m68k-rtems
mips64orion-rtems
no_cpu-rtems
powerpc-rtems
sparc-rtems
bare see notes
The cross-compiler is set to $(target)-gcc by default. This can be
overriden by:
+ using the --program-prefix option to configure to specify the
string which will prepended to the tool names. Be sure to include
a trailing "-". For example, to use a m68k-coff toolset, use the
--program-prefix=m68k-coff- option.
To build, run make in the build directory. To specify which bsps to build,
add the RTEMS_BSP="bsp1 bsp2 .." to the make command. Specifying multiple
BSPs to build only works from the top level build directory.
Installation is done under $(prefix)/rtems.
As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
(path_to_rtems_src)/configure --target=m68k-rtems
make RTEMS_BSP="mvme136 dmv152"
make install RTEMS_BSP="mvme136 dmv152"
The sample tests are built by 'make all', do a 'make test' to build the full
test suite.
2.2 Build with Cygnus one-tree release
To build and install RTEMS with the one-tree structure, just copy the rtems
directory to the tree. The one-tree configure.in and Makefile.in has to be
replaced with the RTEMS-aware versions. The build options are the same as
for the standalone build.
2.3 Target Dependent Notes
bare:
1. See the README in the bare bsp source directory. This should
contain all info you need.
2. The bare bsp source contains a script to show how to build it.
3. The configure flags must be used to get the bare bsp to work.
The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
only pieces of information. The module is usually a gcc module
such as m68302 or mcpu32. The flags are passed directly to gcc.
Use "" if more than one option is specified.
3. To use the installed RTEMS library
=====================================
To use the installed RTEMS bsps to build applications, the application
makefile has to include a bsp-specific makefile that will define the
RTEMS variables necessary to find include files and libraries. The
bsp-specific makefile is installed at
$(RTEMS_MAKEFILE_PATH)/Makefile.inc
For the erc32 bsp installed at /usr/local/cross, the environment
variable RTEMS_MAKEFILE_PATH would be set as follows to the
following:
/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
4. Supported target bsps
========================
The following bsps are supported:
host-based : posix (on linux, solaris and hpux)
a29k : portsw
i386 : i386ex pc386
i960 : cvme961
hppa1.1 : simhppa
m68k : dmv152 efi332 efi68k gen68302 gen68340 gen68360
gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302
no_cpu : no_bsp
mips64orion : p4600 p4650 (p4000 port with either R4600 or R4650)
powerpc : papyrus psim helas403
sh : gensh1
sparc : erc32
any : bare
5. Makefile structure
=====================
The makefiles have been re-organised. Most gnu-based bsps now use three
main makefiles:
+ custom/default.cfg,
+ custom/bsp.cfg and
+ ompilers/gcc-target-default.cfg.
Default.cfg sets the deafult values of certain common build options.
Bsp.cfg set bsp-specific build options and can also override the
default settings.
Gcc-target-default.cfg contains the common gcc definitions. Some targets
(a29k, no_cpu, and posix) still use the old structure.
6. Adding a bsp
===============
The top-level configure.in has to be modified if a new target is added
or if a new bsp is to be built by default. The additions required is
basically to add which makefiles are to be created by configure and
to add the target to the selection statement. To re-generate
configure, autoconf-2.12 is needed.
7. Tested configurations
========================
All gnu-based bsps have been built on Linux.
The native (posix) ports have been built and run only on Linux.
The following configurations have NOT been tested:
+ Anything on Nextstep, HPUX and Irix.
+ The a29k port.
8. Pre-requisites
=================
Gawk version 2 or higher.
GNU make version 3.72 or higher.
Bash.
gcc version ???
TODO
====
The install-if-change script requires bash. On solaris systems, this should
be changed to ksh, since ksh is provided with solaris (bash not).
A fairly rescent version of gawk is needed to build RTEMS. This should be
changed so that a plain vanilla awk also works. [NOTE: This dependency
should disappear when the "gcc 2.8 -specs" is finished.]
'make install' should only install necessary files, not the full
PROJECT_RELEASE directory as now.
Posix port on solaris-2.5 fails due to undefined built-in functions
(gcc-2.7.2, might be my installation).
Improve support for 'make CFLAGS=xxx'.

View File

@@ -1,46 +0,0 @@
Real-Time Executive for Multiprocessing Systems
===============================================
RTEMS is a real-time executive (kernel) which provides a high performance
environment for embedded applications with the following features:
* Standards based user interfaces.
* Multitasking capabilities.
* Homogeneous and heterogeneous multiprocessor systems.
* Event-driven, priority-based, preemptive scheduling.
* Optional rate monotonic scheduling.
* Intertask communication and synchronisation.
* Priority inheritance.
* Responsive interrupt management.
* Dynamic memory allocation.
* High level of user configurability.
* Open source with a friendly user license.
Project git repositories are located at:
* https://gitlab.rtems.org/rtems/
Online documentation is available at:
* https://docs.rtems.org/
RTEMS Doxygen for CPUKit:
* https://docs.rtems.org/doxygen/branches/master/
RTEMS POSIX 1003.1 Compliance Guide:
* https://docs.rtems.org/branches/master/posix-compliance/
RTEMS Mailing Lists for general purpose use the users list and for developers
use the devel list.
* https://lists.rtems.org/mailman/listinfo
The version number for this software is indicated in the VERSION file.

22
SUPPORT Normal file
View File

@@ -0,0 +1,22 @@
#
# $Id$
#
On-Line Applications Research Corporation (OAR) offers support,
customization, and training for RTEMS. Custom RTEMS development services
includes porting RTEMS to new processors and the development of custom board
support packages and device drivers. In addition, OAR is available
to assist in the development of your real-time embedded application.
For more information, email Mark Johannes at mark@OARcorp.com
or contact OAR at:
On-Line Applications Research Corporation
4910-L Corporate Drive
Huntsville AL 35805
Voice: (205) 722-9985
Fax: (205 722-0985
RTEMS maintenance and development is funded solely by RTEMS users.
The future of RTEMS depends on its user base.

7
VERSION Normal file
View File

@@ -0,0 +1,7 @@
#
# This file is automatically generated -- DO NOT EDIT!!!
#
# $Id$
#
RTEMS Version 4.5.0

25
aclocal/ar-s.m4 Normal file
View File

@@ -0,0 +1,25 @@
dnl
dnl $Id$
dnl
AC_DEFUN(RTEMS_AR_FOR_TARGET_S,
[
AC_CACHE_CHECK(whether $AR_FOR_TARGET -s works,
rtems_cv_AR_FOR_TARGET_S,
[
cat > conftest.$ac_ext <<EOF
int foo( int b )
{ return b; }
EOF
if AC_TRY_COMMAND($CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext) \
&& AC_TRY_COMMAND($AR_FOR_TARGET -sr conftest.a conftest.o) \
&& test -s conftest.a ; \
then
rtems_cv_AR_FOR_TARGET_S="yes"
else
rtems_cv_AR_FOR_TARGET_S="no"
fi
rm -f conftest*
])
])

22
aclocal/bsp-alias.m4 Normal file
View File

@@ -0,0 +1,22 @@
dnl
dnl $Id$
dnl
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,BSP_RETURNED)
dnl convert a bsp alias $1 into its bsp directory $2
AC_DEFUN(RTEMS_BSP_ALIAS,
[
# account for "aliased" bsps which share source code
case $1 in
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
gen68360_040) $2=gen68360 ;; # m68k - 68360 in companion mode
p4600) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4600
p4650) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4650
pc486) $2=pc386 ;; # i386 - PC with i486DX
pc586) $2=pc386 ;; # i386 - PC with Pentium
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
*) $2=$1;;
esac
])

27
aclocal/canonical-host.m4 Normal file
View File

@@ -0,0 +1,27 @@
dnl $Id$
AC_DEFUN(RTEMS_CANONICAL_HOST,
[dnl
AC_REQUIRE([AC_CANONICAL_HOST])
RTEMS_HOST=$host_os
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-*linux*) # unix "simulator" port
RTEMS_HOST=Linux
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_HOST=FreeBSD
;;
i[34567]86-pc-cygwin*) # Cygwin is just enough unix like :)
RTEMS_HOST=Cygwin
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_HOST=Solaris
;;
*)
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_HOST)
])dnl

View File

@@ -0,0 +1,40 @@
dnl
dnl $Id$
dnl
dnl canonicalize target cpu
dnl NOTE: Most rtems targets do not fullfil autoconf's
dnl target naming conventions "processor-vendor-os"
dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
dnl and we have to fix it for rtems ourselves
AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
[
AC_CANONICAL_SYSTEM
AC_MSG_CHECKING(rtems target cpu)
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-*linux*) # unix "simulator" port
RTEMS_CPU=unix
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_CPU=unix
;;
i[34567]86-pc-cygwin*) # Cygwin is just enough unix like :)
RTEMS_CPU=unix
;;
no_cpu-*rtems*)
RTEMS_CPU=no_cpu
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_CPU=unix
;;
*)
RTEMS_CPU=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_CPU)
AC_MSG_RESULT($RTEMS_CPU)
])

View File

@@ -0,0 +1,89 @@
dnl
dnl $Id$
dnl
dnl Set target tools
dnl
dnl 98/06/23 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
dnl fixing cache/environment variable handling
dnl adding checks for cygwin/egcs '\\'-bug
dnl adding checks for ranlib/ar -s problem
dnl
dnl 98/02/12 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
dnl
AC_DEFUN(RTEMS_GCC_PRINT,
[
$1=`$CC_FOR_TARGET --print-prog-name=$2`
])
AC_DEFUN(RTEMS_PATH_TOOL,
[
AC_MSG_CHECKING([target's $2])
AC_CACHE_VAL(ac_cv_path_$1,:)
AC_MSG_RESULT([$ac_cv_path_$1])
if test -n "$ac_cv_path_$1"; then
dnl retrieve the value from the cache
$1=$ac_cv_path_$1
else
dnl the cache was not set
if test -z "[$]$1" ; then
if test "$rtems_cv_prog_gcc" = "yes"; then
# We are using gcc, ask it about its tool
# NOTE: Necessary if gcc was configured to use the target's
# native tools or uses prefixes for gnutools (e.g. gas instead of as)
RTEMS_GCC_PRINT($1,$2)
fi
else
# The user set an environment variable.
# Check whether it is an absolute path, otherwise AC_PATH_PROG
# will override the environment variable, which isn't what the user
# intends
AC_MSG_CHECKING([whether environment variable $1 is an absolute path])
case "[$]$1" in
/*) # valid
AC_MSG_RESULT("yes")
;;
*) # invalid for AC_PATH_PROG
AC_MSG_RESULT("no")
AC_MSG_ERROR([***]
[Environment variable $1 should either]
[be unset (preferred) or contain an absolute path])
;;
esac
fi
AC_PATH_PROG($1,"$program_prefix"$2,$3)
fi
])
AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
[AC_REQUIRE([RTEMS_PROG_CC])dnl
dnl FIXME: What shall be done if these tools are not available?
RTEMS_PATH_TOOL(AR_FOR_TARGET,ar,no)
RTEMS_PATH_TOOL(AS_FOR_TARGET,as,no)
RTEMS_PATH_TOOL(LD_FOR_TARGET,ld,no)
RTEMS_PATH_TOOL(NM_FOR_TARGET,nm,no)
dnl special treatment of ranlib
RTEMS_PATH_TOOL(RANLIB_FOR_TARGET,ranlib,no)
if test "$RANLIB_FOR_TARGET" = "no"; then
# ranlib wasn't found; check if ar -s is available
RTEMS_AR_FOR_TARGET_S
if test $rtems_cv_AR_FOR_TARGET_S = "yes" ; then
dnl override RANLIB_FOR_TARGET's cache
ac_cv_path_RANLIB_FOR_TARGET="$AR_FOR_TARGET -s"
RANLIB_FOR_TARGET=$ac_cv_path_RANLIB_FOR_TARGET
else
AC_MSG_ERROR([***]
[Can't figure out how to build a library index]
[Neither ranlib nor ar -s seem to be available] )
fi
fi
dnl NOTE: These may not be available if not using gnutools
RTEMS_PATH_TOOL(OBJCOPY_FOR_TARGET,objcopy,no)
RTEMS_PATH_TOOL(SIZE_FOR_TARGET,size,no)
RTEMS_PATH_TOOL(STRIP_FOR_TARGET,strip,no)
])

View File

@@ -0,0 +1,17 @@
dnl $Id$
dnl RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
AC_DEFUN(RTEMS_CHECK_BSP_CACHE,
[
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl set RTEMS_BSP
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
AC_CACHE_CHECK("for RTEMS_CPU_MODEL", rtems_cv_RTEMS_CPU_MODEL,
. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache)
RTEMS_CPU_MODEL=$rtems_cv_RTEMS_CPU_MODEL
AC_SUBST(RTEMS_CPU_MODEL)
AC_CACHE_CHECK("for RTEMS_BSP_FAMILY", rtems_cv_RTEMS_BSP_FAMILY,
. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache)
RTEMS_BSP_FAMILY=$rtems_cv_RTEMS_BSP_FAMILY
AC_SUBST(RTEMS_BSP_FAMILY)
])dnl

46
aclocal/check-bsps.m4 Normal file
View File

@@ -0,0 +1,46 @@
dnl $Id$
dnl Report all available bsps for a target,
dnl check if a bsp-subdirectory is present for all bsps found
dnl
dnl RTEMS_CHECK_BSPS(bsp_list)
AC_DEFUN(RTEMS_CHECK_BSPS,
[
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
AC_MSG_CHECKING([for bsps])
files=`ls $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU`
for file in $files; do
case $file in
shared*);;
Makefile*);;
READ*);;
CVS*);;
pxfl*);;
ac*);;
config*);;
# Now account for BSPs with build variants
gen68360) rtems_bsp="$rtems_bsp gen68360 gen68360_040";;
p4000) rtems_bsp="$rtems_bsp p4600 p4650";;
mvme162) rtems_bsp="$rtems_bsp mvme162 mvme162lx";;
motorola_powerpc) rtems_bsp="$rtems_bsp mvme2307 mcp750";;
pc386) rtems_bsp="$rtems_bsp pc386 pc486 pc586 pc686";;
*) $1="[$]$1 $file";;
esac;
done
dnl ;;
dnl esac
AC_MSG_RESULT([[$]$1 .. done])
])dnl
AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,
[dnl
AC_REQUIRE([RTEMS_TOP])
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
if test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"; then
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([no])
fi
])dnl

17
aclocal/check-cpu.m4 Normal file
View File

@@ -0,0 +1,17 @@
dnl $Id$
dnl check if RTEMS support a cpu
AC_DEFUN(RTEMS_CHECK_CPU,
[dnl
AC_REQUIRE([RTEMS_TOP])
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
# Is this a supported CPU?
AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
if test -d "$srcdir/$RTEMS_TOPdir/c/src/exec/score/cpu/$RTEMS_CPU"; then
AC_MSG_RESULT(yes)
else
AC_MSG_ERROR(no)
fi
])dnl

21
aclocal/check-cxx.m4 Normal file
View File

@@ -0,0 +1,21 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_CXX,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
AC_REQUIRE([RTEMS_PROG_CXX_FOR_TARGET])dnl
AC_CACHE_CHECK([whether to build rtems++],
rtems_cv_HAS_CPLUSPLUS,
[ if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
if test -n "$CXX_FOR_TARGET"; then
rtems_cv_HAS_CPLUSPLUS="yes"
else
rtems_cv_HAS_CPLUSPLUS="no"
fi
else
rtems_cv_HAS_CPLUSPLUS="no"
fi])
HAS_CPLUSPLUS="$rtems_cv_HAS_CPLUSPLUS";
AC_SUBST(HAS_CPLUSPLUS)dnl
])

29
aclocal/check-itron.m4 Normal file
View File

@@ -0,0 +1,29 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_ITRON_API,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
AC_CACHE_CHECK([whether BSP supports libitron],
rtems_cv_HAS_ITRON_API,
[dnl
case "$RTEMS_CPU" in
unix*)
rtems_cv_HAS_ITRON_API="no"
;;
*)
if test "${RTEMS_HAS_ITRON_API}" = "yes"; then
rtems_cv_HAS_ITRON_API="yes";
else
rtems_cv_HAS_ITRON_API="disabled";
fi
;;
esac])
if test "$rtems_cv_HAS_ITRON_API" = "yes"; then
HAS_ITRON_API="yes";
else
HAS_ITRON_API="no";
fi
AC_SUBST(HAS_ITRON_API)dnl
])

View File

@@ -0,0 +1,31 @@
dnl
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
[dnl
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
AC_REQUIRE([RTEMS_TOP])dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnl
AC_CACHE_CHECK([whether BSP supports multiprocessing],
rtems_cv_HAS_MP,
[dnl
RTEMS_BSP_ALIAS(${$1},bspdir)
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${bspdir}/shmsupp"; then
if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then
rtems_cv_HAS_MP="yes" ;
else
rtems_cv_HAS_MP="disabled";
fi
else
rtems_cv_HAS_MP="no";
fi])
if test "$rtems_cv_HAS_MP" = "yes"; then
HAS_MP="yes"
else
HAS_MP="no"
fi
AC_SUBST(HAS_MP)
])

View File

@@ -0,0 +1,29 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_NETWORKING,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
AC_CACHE_CHECK([whether BSP supports networking],
rtems_cv_HAS_NETWORKING,
[dnl
case "$RTEMS_CPU" in
unix*)
rtems_cv_HAS_NETWORKING="no"
;;
*)
if test "${RTEMS_HAS_NETWORKING}" = "yes"; then
rtems_cv_HAS_NETWORKING="yes";
else
rtems_cv_HAS_NETWORKING="disabled";
fi
;;
esac])
if test "$rtems_cv_HAS_NETWORKING" = "yes"; then
HAS_NETWORKING="yes";
else
HAS_NETWORKING="no";
fi
AC_SUBST(HAS_NETWORKING)dnl
])

31
aclocal/check-newlib.m4 Normal file
View File

@@ -0,0 +1,31 @@
dnl $Id$
AC_DEFUN(RTEMS_CHECK_NEWLIB,
[dnl
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
AC_CACHE_CHECK([for newlib],
rtems_cv_use_newlib,
[
rtems_save_CC=$CC
CC=$CC_FOR_TARGET
dnl some versions of newlib provide not_required_by_rtems
AC_TRY_LINK(
[extern int not_required_by_rtems() ;],
[not_required_by_rtems()],
rtems_cv_use_newlib="yes")
dnl older versions of newlib provided rtems_provides_crt0
if test -z "$rtems_cv_use_newlib"; then
AC_TRY_LINK(
[extern int rtems_provides_crt0 ;],
[rtems_provides_crt0 = 0],
rtems_cv_use_newlib="yes",
rtems_cv_use_newlib="no")
fi
CC=$rtems_save_CC])
RTEMS_USE_NEWLIB="$rtems_cv_use_newlib"
AC_SUBST(RTEMS_USE_NEWLIB)
])

30
aclocal/check-posix.m4 Normal file
View File

@@ -0,0 +1,30 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_POSIX_API,
[dnl
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
AC_CACHE_CHECK([whether BSP supports libposix],
rtems_cv_HAS_POSIX_API,
[dnl
case "$RTEMS_CPU" in
unix*)
rtems_cv_HAS_POSIX_API="no"
;;
*)
if test "${RTEMS_HAS_POSIX_API}" = "yes"; then
rtems_cv_HAS_POSIX_API="yes";
else
rtems_cv_HAS_POSIX_API="disabled";
fi
;;
esac])
if test "$rtems_cv_HAS_POSIX_API" = "yes"; then
HAS_POSIX_API="yes";
else
HAS_POSIX_API="no";
fi
AC_SUBST(HAS_POSIX_API)dnl
])

24
aclocal/check-rdbg.m4 Normal file
View File

@@ -0,0 +1,24 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_RDBG,
[dnl
AC_REQUIRE([RTEMS_TOP])dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_CHECK_NETWORKING])dnl
AC_REQUIRE([RTEMS_ENABLE_RDBG])dnl
AC_CACHE_CHECK([whether BSP supports librdbg],
rtems_cv_HAS_RDBG,
[
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/${$1}";
then
rtems_cv_HAS_RDBG="yes" ;
elif test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/any";
then
rtems_cv_HAS_RDBG="yes" ;
else
rtems_cv_HAS_RDBG="no";
fi
])
HAS_RDBG="$rtems_cv_HAS_RDBG"
AC_SUBST(HAS_RDBG)
])

21
aclocal/enable-bare.m4 Normal file
View File

@@ -0,0 +1,21 @@
AC_DEFUN(RTEMS_ENABLE_BARE,
[
AC_ARG_ENABLE(bare-cpu-cflags,
[ --enable-bare-cpu-cflags specify a particular cpu cflag]
[ (bare bsp specific)],
[case "${enableval}" in
no) BARE_CPU_CFLAGS="" ;;
*) BARE_CPU_CFLAGS="${enableval}" ;;
esac],
[BARE_CPU_CFLAGS=""])
AC_ARG_ENABLE(bare-cpu-model,
[ --enable-bare-cpu-model specify a particular cpu model]
[ (bare bsp specific)],
[case "${enableval}" in
no) BARE_CPU_MODEL="" ;;
*) BARE_CPU_MODEL="${enableval}" ;;
esac],
[BARE_CPU_MODEL=""])
])

13
aclocal/enable-cxx.m4 Normal file
View File

@@ -0,0 +1,13 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_CXX,
[
AC_ARG_ENABLE(cxx,
[ --enable-cxx enable C++ support,]
[ and build the rtems++ library],
[case "${enableval}" in
yes) RTEMS_HAS_CPLUSPLUS=yes ;;
no) RTEMS_HAS_CPLUSPLUS=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;;
esac], [RTEMS_HAS_CPLUSPLUS=no])
])

12
aclocal/enable-gcc28.m4 Normal file
View File

@@ -0,0 +1,12 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_GCC28,
[
AC_ARG_ENABLE(gcc28,
[ --enable-gcc28 enable use of gcc 2.8.x features],
[case "${enableval}" in
yes) RTEMS_USE_GCC272=no ;;
no) RTEMS_USE_GCC272=yes ;;
*) AC_MSG_ERROR(bad value ${enableval} for gcc-28 option) ;;
esac],[RTEMS_USE_GCC272=no])
])

15
aclocal/enable-hwapi.m4 Normal file
View File

@@ -0,0 +1,15 @@
dnl $Id$
dnl
dnl FIXME: this needs to be reworked
AC_DEFUN(RTEMS_ENABLE_HWAPI,
[dnl
AC_ARG_ENABLE(hwapi, \
[ --enable-hwapi enable hardware API library],
[case "${enableval}" in
yes) RTEMS_HAS_HWAPI=yes ;;
no) RTEMS_HAS_HWAPI=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for hwapi option) ;;
esac],[RTEMS_HAS_HWAPI=no])
AC_SUBST(RTEMS_HAS_HWAPI)dnl
])dnl

13
aclocal/enable-inlines.m4 Normal file
View File

@@ -0,0 +1,13 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_INLINES,
[AC_ARG_ENABLE(rtems-inlines,
[ --enable-rtems-inlines enable RTEMS inline functions]
[ (default:enabled, disable to use macros)],
[case "${enableval}" in
yes) RTEMS_USE_MACROS=no ;;
no) RTEMS_USE_MACROS=yes ;;
*) AC_MSG_ERROR(bad value ${enableval} for disable-rtems-inlines option) ;;
esac],[RTEMS_USE_MACROS=no])
AC_SUBST(RTEMS_USE_MACROS)dnl
])

35
aclocal/enable-itron.m4 Normal file
View File

@@ -0,0 +1,35 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_ITRON,
[
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
AC_ARG_ENABLE(itron,
[ --enable-itron enable itron interface],
[case "${enableval}" in
yes) RTEMS_HAS_ITRON_API=yes ;;
no) RTEMS_HAS_ITRON_API=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-itron option) ;;
esac],[RTEMS_HAS_ITRON_API=yes])
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-pc-linux*) # unix "simulator" port
RTEMS_HAS_ITRON_API=no
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_HAS_ITRON_API=no
;;
no_cpu-*rtems*)
RTEMS_HAS_ITRON_API=no
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_HAS_ITRON_API=no
;;
*)
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_HAS_ITRON_API)
])

10
aclocal/enable-libcdir.m4 Normal file
View File

@@ -0,0 +1,10 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_LIBCDIR,
[
AC_ARG_ENABLE(libcdir,
[ --enable-libcdir=directory set the directory for the C library],
[ RTEMS_LIBC_DIR="${enableval}" ; \
test -d ${enableval} || AC_MSG_ERROR("$enableval is not a directory" ) ] )
AC_SUBST(RTEMS_LIBC_DIR)dnl
])

View File

@@ -0,0 +1,13 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
[
AC_ARG_ENABLE(multiprocessing,
[ --enable-multiprocessing enable multiprocessing interface],
[case "${enableval}" in
yes) RTEMS_HAS_MULTIPROCESSING=yes ;;
no) RTEMS_HAS_MULTIPROCESSING=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
esac],[RTEMS_HAS_MULTIPROCESSING=no])
AC_SUBST(RTEMS_HAS_MULTIPROCESSING)dnl
])

View File

@@ -0,0 +1,15 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_NETWORKING,
[
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
AC_ARG_ENABLE(networking,
[ --enable-networking enable TCP/IP stack],
[case "${enableval}" in
yes) RTEMS_HAS_NETWORKING=yes ;;
no) RTEMS_HAS_NETWORKING=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-networking option) ;;
esac],[RTEMS_HAS_NETWORKING=yes])
AC_SUBST(RTEMS_HAS_NETWORKING)dnl
])

35
aclocal/enable-posix.m4 Normal file
View File

@@ -0,0 +1,35 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_POSIX,
[
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
AC_ARG_ENABLE(posix,
[ --enable-posix enable posix interface],
[case "${enableval}" in
yes) RTEMS_HAS_POSIX_API=yes ;;
no) RTEMS_HAS_POSIX_API=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-posix option) ;;
esac],[RTEMS_HAS_POSIX_API=yes])
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-pc-linux*) # unix "simulator" port
RTEMS_HAS_POSIX_API=no
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_HAS_POSIX_API=no
;;
no_cpu-*rtems*)
RTEMS_HAS_POSIX_API=no
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_HAS_POSIX_API=no
;;
*)
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_HAS_POSIX_API)
])

15
aclocal/enable-rdbg.m4 Normal file
View File

@@ -0,0 +1,15 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_RDBG,
[
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
AC_ARG_ENABLE(rdbg,
[ --enable-rdbg enable remote debugger],
[case "${enableval}" in
yes) RTEMS_HAS_RDBG=yes ;;
no) RTEMS_HAS_RDBG=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-rdbg option) ;;
esac],[RTEMS_HAS_RDBG=no])
AC_SUBST(RTEMS_HAS_RDBG)dnl
])

View File

@@ -0,0 +1,36 @@
dnl $Id$
dnl Override the set of BSPs to be built.
dnl used by the toplevel configure script
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
AC_DEFUN(RTEMS_ENABLE_RTEMSBSP,
[
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])dnl
AC_ARG_ENABLE(rtemsbsp,
[ --enable-rtemsbsp=bsp1 bsp2 .. BSPs to include in build],
[case "${enableval}" in
yes|no) AC_MSG_ERROR([missing argument to --enable-rtemsbsp=\"bsp1 bsp2\"]);;
*) $1=$enableval;;
esac],[$1=""])
])
dnl Pass a single BSP via an environment variable
dnl used by per BSP configure scripts
AC_DEFUN(RTEMS_ENV_RTEMSBSP,
[dnl
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
AC_BEFORE([$0], [RTEMS_CHECK_CUSTOM_BSP])dnl
AC_MSG_CHECKING([for RTEMS_BSP])
AC_CACHE_VAL(rtems_cv_RTEMS_BSP,
[dnl
test -n "${RTEMS_BSP}" && rtems_cv_RTEMS_BSP="$RTEMS_BSP";
])dnl
if test -z "$rtems_cv_RTEMS_BSP"; then
AC_MSG_ERROR([Missing RTEMS_BSP])
fi
RTEMS_BSP="$rtems_cv_RTEMS_BSP"
AC_MSG_RESULT(${RTEMS_BSP})
AC_SUBST(RTEMS_BSP)
])

15
aclocal/enable-tests.m4 Normal file
View File

@@ -0,0 +1,15 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_TESTS,
[
# If the tests are enabled, then find all the test suite Makefiles
AC_MSG_CHECKING([if the test suites are enabled? ])
AC_ARG_ENABLE(tests,
[ --enable-tests enable tests (default:disabled)],
[case "${enableval}" in
yes) tests_enabled=yes ;;
no) tests_enabled=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for tests option) ;;
esac], [tests_enabled=no])
AC_MSG_RESULT([$tests_enabled])
])

21
aclocal/gcc-pipe.m4 Normal file
View File

@@ -0,0 +1,21 @@
dnl
dnl $Id$
dnl
dnl Check whether the target compiler accepts -pipe
dnl
AC_DEFUN(RTEMS_GCC_PIPE,
[AC_REQUIRE([RTEMS_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe,
[
rtems_cv_gcc_pipe=no
if test "$rtems_cv_prog_gcc" = "yes"; then
echo 'void f(){}' >conftest.c
if test -z "`${CC_FOR_TARGET} --pipe -c conftest.c 2>&1`";then
rtems_cv_gcc_pipe=yes
fi
rm -f conftest*
fi
])
])

20
aclocal/gcc-specs.m4 Normal file
View File

@@ -0,0 +1,20 @@
dnl
dnl $Id$
dnl
dnl Check whether the target compiler accepts -specs
dnl
AC_DEFUN(RTEMS_GCC_SPECS,
[AC_REQUIRE([RTEMS_PROG_CC])
AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts -specs,rtems_cv_gcc_specs,
[
rtems_cv_gcc_specs=no
if test "$rtems_cv_prog_gcc" = "yes"; then
touch confspec
echo 'void f(){}' >conftest.c
if test -z "`${CC_FOR_TARGET} -specs confspec -c conftest.c 2>&1`";then
rtems_cv_gcc_specs=yes
fi
fi
rm -f confspec conftest*
])])

View File

@@ -0,0 +1,27 @@
dnl
dnl $Id$
dnl
dnl check for i386 gas supporting 16 bit mode
dnl - binutils 2.9.1.0.7 and higher
AC_DEFUN(RTEMS_I386_GAS_CODE16,
[ if test "${target_cpu}" = "i386"; then
AC_CACHE_CHECK([for 16 bit mode assembler support],
rtems_cv_prog_gas_code16,
[cat > conftest.s << EOF
.code16
data32
addr32
lgdt 0
EOF
if AC_TRY_COMMAND($AS_FOR_TARGET -o conftest.o conftest.s); then
rtems_cv_prog_gas_code16=yes
else
rtems_cv_prog_gas_code16=no
fi])
RTEMS_GAS_CODE16="$rtems_cv_prog_gas_code16"
fi
AC_SUBST(RTEMS_GAS_CODE16)
])

14
aclocal/path-ksh.m4 Normal file
View File

@@ -0,0 +1,14 @@
dnl $Id$
AC_DEFUN(RTEMS_PATH_KSH,
[
dnl NOTE: prefer bash over ksh over sh
AC_PATH_PROGS(KSH,bash ksh sh)
if test -z "$KSH"; then
dnl NOTE: This cannot happen -- /bin/sh must always exist
AC_MSG_ERROR(
[***]
[ Cannot determine a usable shell bash/ksh/sh]
[ Please contact your system administrator] );
fi
])

12
aclocal/path-perl.m4 Normal file
View File

@@ -0,0 +1,12 @@
dnl $Id$
AC_DEFUN(RTEMS_PATH_PERL,
[
AC_PATH_PROG(PERL,perl)
if test -z "$PERL" ; then
AC_MSG_WARN(
[***]
[ perl was not found]
[ Note: Some tools will not be built.])
fi
])

92
aclocal/prog-cc.m4 Normal file
View File

@@ -0,0 +1,92 @@
dnl
dnl $Id$
dnl
dnl Check for target gcc
dnl
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
dnl Completely reworked
AC_DEFUN(RTEMS_PROG_CC,
[
AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_BEFORE([$0], [AC_PROG_CC])dnl
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
dnl Only accept gcc and cc
dnl NOTE: This might be too restrictive for native compilation
AC_PATH_PROGS(CC_FOR_TARGET, "$program_prefix"gcc "$program_prefix"cc )
test -z "$CC_FOR_TARGET" \
&& AC_MSG_ERROR([no acceptable cc found in \$PATH])
dnl backup
rtems_save_CC=$CC
rtems_save_CFLAGS=$CFLAGS
dnl temporarily set CC
CC=$CC_FOR_TARGET
AC_PROG_CC_WORKS
AC_PROG_CC_GNU
if test $ac_cv_prog_gcc = yes; then
GCC=yes
dnl Check whether -g works, even if CFLAGS is set, in case the package
dnl plays around with CFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
AC_PROG_CC_G
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
elif test $ac_cv_prog_cc_g = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-O2"
fi
else
GCC=
test "${CFLAGS+set}" = set || CFLAGS="-g"
fi
rtems_cv_prog_gcc=$ac_cv_prog_gcc
rtems_cv_prog_cc_g=$ac_cv_prog_cc_g
rtems_cv_prog_cc_works=$ac_cv_prog_cc_works
rtems_cv_prog_cc_cross=$ac_cv_prog_cc_cross
dnl restore initial values
CC=$rtems_save_CC
CFLAGS=$rtems_save_CFLAGS
unset ac_cv_prog_gcc
unset ac_cv_prog_cc_g
unset ac_cv_prog_cc_works
unset ac_cv_prog_cc_cross
])
AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
[
dnl check target cc
RTEMS_PROG_CC
dnl check if the compiler supports --specs
RTEMS_GCC_SPECS
dnl check if the target compiler may use --pipe
RTEMS_GCC_PIPE
dnl check if the compiler supports --specs if gcc28 is requested
if test "$RTEMS_USE_GCC272" != "yes" ; then
if test "$rtems_cv_gcc_specs" = "no"; then
AC_MSG_WARN([*** disabling --enable-gcc28])
RTEMS_USE_GCC272=yes
fi
fi
test "$rtems_cv_gcc_pipe" = "yes" && CC_FOR_TARGET="$CC_FOR_TARGET --pipe"
dnl FIXME: HACK for egcs/cygwin mixing '\\' and '/' in gcc -print-*
case $host_os in
*cygwin*) GCCSED="| sed 's%\\\\%/%g'" ;;
*) ;;
esac
AC_SUBST(GCCSED)
])

81
aclocal/prog-cxx.m4 Normal file
View File

@@ -0,0 +1,81 @@
dnl
dnl $Id$
dnl
dnl Check for target g++
dnl
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
dnl Completely reworked
AC_DEFUN(RTEMS_PROG_CXX,
[
AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
AC_BEFORE([$0], [AC_PROG_CXX])dnl
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
dnl Only accept g++ and c++
dnl NOTE: This might be too restrictive for native compilation
AC_PATH_PROGS(CXX_FOR_TARGET, "$program_prefix"g++ "$program_prefix"c++)
test -z "$CXX_FOR_TARGET" \
&& AC_MSG_ERROR([no acceptable c++ found in \$PATH])
dnl backup
rtems_save_CXX=$CXX
rtems_save_CXXFLAGS=$CXXFLAGS
dnl temporarily set CXX
CXX=$CXX_FOR_TARGET
AC_PROG_CXX_WORKS
AC_PROG_CXX_GNU
if test $ac_cv_prog_gxx = yes; then
GXX=yes
dnl Check whether -g works, even if CXXFLAGS is set, in case the package
dnl plays around with CXXFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
AC_PROG_CXX_G
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
elif test $ac_cv_prog_cxx_g = yes; then
CXXFLAGS="-g -O2"
else
CXXFLAGS="-O2"
fi
else
GXX=
test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
fi
rtems_cv_prog_gxx=$ac_cv_prog_gxx
rtems_cv_prog_cxx_g=$ac_cv_prog_cxx_g
rtems_cv_prog_cxx_works=$ac_cv_prog_cxx_works
rtems_cv_prog_cxx_cross=$ac_cv_prog_cxx_cross
CXX=$rtems_save_CXX
CXXFLAGS=$rtems_save_CXXFLAGS
dnl restore initial values
unset ac_cv_prog_gxx
unset ac_cv_prog_cc_g
unset ac_cv_prog_cxx_works
unset ac_cv_prog_cxx_cross
dnl somehow autoconf macros leave this file
rm -f conftest.C
])
AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
[
RTEMS_PROG_CXX
if test "$rtems_cv_prog_cc_cross" != "$rtems_cv_prog_cxx_cross"; then
AC_MSG_ERROR([***]
[Inconsistency in compiler configuration:]
[Target C compiler and Target C++ compiler]
[must both either be cross compilers or native compilers]
[Hint: If building a posix bsp: LD_LIBRARY_PATH?] )
fi
])

27
aclocal/project-root.m4 Normal file
View File

@@ -0,0 +1,27 @@
dnl
dnl $Id$
dnl
AC_DEFUN(RTEMS_PROJECT_ROOT,
[dnl
AC_REQUIRE([RTEMS_TOP])
if test "$TARGET_SUBDIR" = "." ; then
PROJECT_ROOT=$RTEMS_TOPdir/'$(top_builddir)';
else
PROJECT_ROOT=../$RTEMS_TOPdir/'$(top_builddir)'
fi
AC_SUBST(PROJECT_ROOT)
RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c/$RTEMS_BSP
AC_SUBST(RTEMS_ROOT)
PACKHEX="\$(PROJECT_ROOT)/tools/build/packhex"
AC_SUBST(PACKHEX)
PROJECT_INCLUDE="\$(PROJECT_ROOT)/$RTEMS_BSP/lib/include"
AC_SUBST(PROJECT_INCLUDE)
PROJECT_RELEASE="\$(PROJECT_ROOT)/$RTEMS_BSP"
AC_SUBST(PROJECT_RELEASE)
])

36
aclocal/rtems-top.m4 Normal file
View File

@@ -0,0 +1,36 @@
dnl $Id$
dnl
dnl RTEMS_TOP($1)
dnl
dnl $1 .. relative path from this configure.in to the toplevel configure.in
dnl
AC_DEFUN(RTEMS_TOP,
[dnl
AC_BEFORE([$0], [AC_CONFIG_AUX_DIR])dnl
AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=DIR],
TARGET_SUBDIR="$withval",
TARGET_SUBDIR=".")
RTEMS_TOPdir="$1";
AC_SUBST(RTEMS_TOPdir)
dnl Determine RTEMS Version string from the VERSION file
dnl Hopefully, Joel never changes its format ;-
AC_MSG_CHECKING([for RTEMS Version])
if test -r "${srcdir}/${RTEMS_TOPdir}/VERSION"; then
changequote(,)dnl
RTEMS_VERSION=`grep Version ${srcdir}/${RTEMS_TOPdir}/VERSION | \
sed -e 's%RTEMS[ ]*Version[ ]*\(.*\)[ ]*%\1%g'`
changequote([,])dnl
else
AC_MSG_ERROR(Unable to find ${RTEMS_TOPdir}/VERSION)
fi
if test -z "$RTEMS_VERSION"; then
AC_MSG_ERROR(Unable to determine version)
fi
AC_MSG_RESULT($RTEMS_VERSION)
])dnl

133
aclocal/sysv-ipc.m4 Normal file
View File

@@ -0,0 +1,133 @@
dnl
dnl $Id$
dnl
dnl Check for System V IPC calls used by Unix simulators
dnl
dnl 98/07/17 Dario Alcocer alcocer@netcom.com
dnl Ralf Corsepius corsepiu@faw.uni-ulm.de
dnl
dnl Note: $host_os should probably *not* ever be used here to
dnl determine if host supports System V IPC calls, since some
dnl (e.g. FreeBSD 2.x) are configured by default to include only
dnl a subset of the System V IPC calls. Therefore, to make sure
dnl all of the required calls are found, test for each call explicitly.
dnl
dnl All of the calls use IPC_PRIVATE, so tests will not unintentionally
dnl modify any existing key sets. See the man pages for semget, shmget,
dnl msgget, semctl, shmctl and msgctl for details.
AC_DEFUN(RTEMS_UNION_SEMUN,
[
AC_CACHE_CHECK([whether $RTEMS_HOST defines union semun],
rtems_cv_HAS_UNION_SEMUN,
[AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>],
[union semun arg ;],
[rtems_cv_HAS_UNION_SEMUN="yes"],
[rtems_cv_HAS_UNION_SEMUN="no"])
if test "$rtems_cv_HAS_UNION_SEMUN" = "yes"; then
AC_DEFINE(HAS_UNION_SEMUN)
fi])
])
AC_DEFUN(RTEMS_SYSV_SEM,
[AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([RTEMS_CANONICAL_HOST])
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V semaphores,
rtems_cv_sysv_sem,
[
AC_TRY_RUN(
[
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#if !HAS_UNION_SEMUN
union semun {
int val;
struct semid_ds *buf;
ushort *array;
} ;
#endif
int main () {
union semun arg ;
int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
if (id == -1)
exit(1);
arg.val = 0; /* avoid implicit type cast to union */
if (semctl(id, 0, IPC_RMID, arg) == -1)
exit(1);
exit(0);
}
],
rtems_cv_sysv_sem="yes", rtems_cv_sysv_sem="no", :)
])
])
AC_DEFUN(RTEMS_SYSV_SHM,
[AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([RTEMS_CANONICAL_HOST])
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V shared memory,
rtems_cv_sysv_shm,
[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main () {
int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400);
if (id == -1)
exit(1);
if (shmctl(id, IPC_RMID, 0) == -1)
exit(1);
exit(0);
}
],
rtems_cv_sysv_shm="yes", rtems_cv_sysv_shm="no", :)
])
])
AC_DEFUN(RTEMS_SYSV_MSG,
[AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([RTEMS_CANONICAL_HOST])
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V messages,
rtems_cv_sysv_msg,
[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int main () {
int id=msgget(IPC_PRIVATE,IPC_CREAT|0400);
if (id == -1)
exit(1);
if (msgctl(id, IPC_RMID, 0) == -1)
exit(1);
exit(0);
}
],
rtems_cv_sysv_msg="yes", rtems_cv_sysv_msg="no", :)
])
])
AC_DEFUN(RTEMS_CHECK_SYSV_UNIX,
[AC_REQUIRE([RTEMS_CANONICAL_HOST])
if test "$RTEMS_CPU" = "unix" ; then
RTEMS_UNION_SEMUN
RTEMS_SYSV_SEM
if test "$rtems_cv_sysv_sem" != "yes" ; then
AC_MSG_ERROR([System V semaphores don't work, required by simulator])
fi
RTEMS_SYSV_SHM
if test "$rtems_cv_sysv_shm" != "yes" ; then
AC_MSG_ERROR([System V shared memory doesn't work, required by simulator])
fi
RTEMS_SYSV_MSG
if test "$rtems_cv_sysv_msg" != "yes" ; then
AC_MSG_ERROR([System V messages don't work, required by simulator])
fi
fi
])

129
aclocal/target.m4 Normal file
View File

@@ -0,0 +1,129 @@
dnl $Id$
AC_DEFUN(RTEMS_CONFIG_SUBDIRS,
[
define([RTEMS_TGT_SUBDIRS],
ifdef([RTEMS_TGT_SUBDIRS], [RTEMS_TGT_SUBDIRS ],)[$1])dnl
target_subdirs="RTEMS_TGT_SUBDIRS"
AC_SUBST(target_subdirs)
])
dnl This is a subroutine of AC_OUTPUT.
dnl It is called after running config.status.
dnl AC_OUTPUT_SUBDIRS(DIRECTORY...)
AC_DEFUN(RTEMS_OUTPUT_SUBDIRS,
[
if test "$no_recursion" != yes; then
if test $target_alias != $host_alias; then
target_subdir="$target_alias"
else
target_subdir="."
fi
# Remove --cache-file and --srcdir arguments so they do not pile up.
ac_sub_configure_args=
ac_prev=
for ac_arg in $ac_configure_args; do
if test -n "$ac_prev"; then
ac_prev=
continue
fi
case "$ac_arg" in
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
;;
*) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
esac
done
test -d $target_subdir || mkdir $target_subdir
for ac_config_dir in $1; do
# Do not complain, so a configure script can configure whichever
# parts of a large source tree are present.
if test ! -d $srcdir/$ac_config_dir; then
continue
fi
echo configuring in $target_subdir/$ac_config_dir
case "$srcdir" in
## .) ;;
*)
if test -d $target_subdir/$ac_config_dir || mkdir $target_subdir/$ac_config_dir; then :;
else
AC_MSG_ERROR(can not create `pwd`/$target_subdir/$ac_config_dir)
fi
;;
esac
ac_popdir=`pwd`
cd $target_subdir/$ac_config_dir
changequote(, )dnl
# A "../" for each directory in /$ac_config_dir.
ac_dots=`echo $target_subdir/$ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
changequote([, ])dnl
case "$srcdir" in
## .) # No --srcdir option. We are building in place.
## ac_sub_srcdir=$srcdir ;;
/*) # Absolute path.
ac_sub_srcdir=$srcdir/$ac_config_dir ;;
*) # Relative path.
ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
esac
# Check for guested configure; otherwise get Cygnus style configure.
if test -f $ac_sub_srcdir/configure; then
ac_sub_configure=$ac_sub_srcdir/configure
elif test -f $ac_sub_srcdir/configure.in; then
ac_sub_configure=$ac_configure
else
AC_MSG_WARN(no configuration information is in $ac_config_dir)
ac_sub_configure=
fi
# The recursion is here.
if test -n "$ac_sub_configure"; then
# Make the cache file name correct relative to the subdirectory.
if test "$target_alias" != "$host_alias"; then
ac_sub_cache_file=$cache_file
else
case "$cache_file" in
/*) ac_sub_cache_file=$cache_file ;;
*) # Relative path.
ac_sub_cache_file="$ac_dots$cache_file" ;;
esac
fi
ifdef([AC_PROVIDE_AC_PROG_INSTALL],
[ case "$ac_given_INSTALL" in
changequote(, )dnl
[/$]*) INSTALL="$ac_given_INSTALL" ;;
changequote([, ])dnl
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
esac
])dnl
echo "[running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file] --srcdir=$ac_sub_srcdir"
# The eval makes quoting arguments work.
if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure \
$ac_sub_configure_args --srcdir=$ac_sub_srcdir \
--with-target-subdir=$target_subdir --cache-file=$ac_sub_cache_file
then :
else
AC_MSG_ERROR($ac_sub_configure failed for $ac_config_dir)
fi
fi
cd $ac_popdir
done
fi
])

23
aclocal/tool-paths.m4 Normal file
View File

@@ -0,0 +1,23 @@
AC_DEFUN(RTEMS_TOOLPATHS,
[
# tooldir='$(exec_prefix)/'$target_alias
# Temporary work-around until building in source tree is supported
AC_REQUIRE([RTEMS_PROJECT_ROOT])
tooldir='$(PROJECT_ROOT)'
AC_SUBST(tooldir)
project_includedir='$(tooldir)'/include
AC_SUBST(project_includedir)
project_libdir='$(tooldir)/lib$(MULTISUBDIR)'
AC_SUBST(project_libdir)
project_bindir='$(tooldir)/bin'
AC_SUBST(project_bindir)
rtems_bspdir='$(prefix)/${RTEMS_BSP}'
AC_SUBST(rtems_bspdir)
rtems_makedir='$(prefix)/make'
AC_SUBST(rtems_makedir)
])

22
aclocal/tool-prefix.m4 Normal file
View File

@@ -0,0 +1,22 @@
dnl
dnl $Id$
dnl
dnl Set program_prefix
dnl
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
dnl Extracted from configure
AC_DEFUN(RTEMS_TOOL_PREFIX,
[AC_REQUIRE([AC_CANONICAL_TARGET])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
changequote(,)dnl
if [ "${program_prefix}" = "NONE" ] ; then
if [ "${target}" = "${host}" ] ; then
program_prefix=
else
program_prefix=${target}-
fi
fi
changequote([,])dnl
])

122
bootstrap Executable file
View File

@@ -0,0 +1,122 @@
#!/bin/sh
#
# helps bootstrapping, when checked out from CVS
# requires GNU autoconf and GNU automake
#
# $Id$
# this is not meant to be exported outside the source tree
# NOTE: Inspired by libtool's autogen script
# to be run from the toplevel directory of RTEMS'
# source tree
progname=`basename $0`
top_srcdir=`dirname $0`
verbose="";
quiet="false"
mode="generate"
usage()
{
echo
echo "usage: ${progname} [-h|-q|-v]"
echo
echo "options:"
echo " -h .. display this message and exit";
echo " -q .. quiet, don't display directories";
echo " -v .. verbose, pass -v to automake when invoking automake"
echo " -c .. clean, remove all aclocal/autoconf/automake generated files"
echo
exit 1;
}
if test ! -f $top_srcdir/VERSION; then
echo "${progname}:"
echo " Installation problem: Can't find file VERSION"
exit 1;
fi
while test $# -gt 0; do
case $1 in
-h|--he|--hel|--help)
usage ;;
-q|--qu|--qui|--quie|--quiet)
quiet="true";
shift;;
-v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
verbose="-v";
shift;;
-c|--cl|--cle|--clea|--clean)
mode="clean";
shift;;
-*) echo "unknown option $1" ;
usage ;;
*) echo "invalid parameter $1" ;
usage ;;
esac
done
case $mode in
generate)
case $top_srcdir in
/* ) aclocal_dir=$top_srcdir/aclocal
;;
*) aclocal_dir=`pwd`/$top_srcdir/aclocal
;;
esac
confs=`find . -name 'configure.in' -print`
for i in $confs; do
dir=`dirname $i`;
( test "$quiet" = "true" || echo "$dir";
cd $dir;
aclocal -I $aclocal_dir;
autoconf;
test -n "`grep CONFIG_HEADER configure.in`" && autoheader ;
test -f Makefile.am && automake $verbose ;
test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \
&& echo timestamp > stamp-h.in
)
done
;;
clean)
test "$quiet" = "true" || echo "removing automake generated Makefile.in files"
files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ;
for i in $files; do if test -f $i; then
rm -f $i
test "$verbose" = "-v" && echo "$i"
fi; done
test "$quiet" = "true" || echo "removing configure files"
files=`find . -name 'configure' -print` ;
test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
for i in $files; do if test -f $i; then
rm -f $i
test "$verbose" = "-v" && echo "$i"
fi; done
test "$quiet" = "true" || echo "removing aclocal.m4 files"
files=`find . -name 'aclocal.m4' -print` ;
test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
for i in $files; do if test -f $i; then
rm -f $i
test "$verbose" = "-v" && echo "$i"
fi; done
find . -name '*~' -print | xargs rm -f
find . -name '*.orig' -print | xargs rm -f
find . -name '*.rej' -print | xargs rm -f
find . -name 'config.status' -print | xargs rm -f
find . -name 'config.log' -print | xargs rm -f
find . -name 'config.cache' -print | xargs rm -f
find . -name 'Makefile' -print | xargs rm -f
find . -name '.deps' -print | xargs rm -rf
find . -name '.libs' -print | xargs rm -rf
find . -name 'stamp-h.in' | xargs rm -rf
;;
esac

View File

@@ -1,70 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief Console Configuration
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/bspIo.h>
#include <bsp.h>
#include <dev/serial/arm-pl011.h>
#include <bsp/console-termios.h>
#include <bspopts.h>
arm_pl011_context a53_qemu_vpl011_context = {
.base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("PL011"),
.regs = (arm_pl011_uart *) BSP_A53_QEMU_VPL011_BASE,
.initial_baud = 115200,
.clock = 24000000
};
const console_device console_device_table[] = {
{
.device_file = "/dev/ttyS0",
.probe = console_device_probe_default,
.handler = &arm_pl011_fns,
.context = &a53_qemu_vpl011_context.base
}
};
const size_t console_device_count = RTEMS_ARRAY_SIZE(console_device_table);
static void output_char( char c )
{
arm_pl011_write_polled(&a53_qemu_vpl011_context.base, c);
}
BSP_output_char_function_type BSP_output_char = output_char;
BSP_polling_getchar_function_type BSP_poll_char = NULL;

View File

@@ -1,74 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief Core BSP definitions
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_A53_QEMU_BSP_H
#define LIBBSP_AARCH64_A53_QEMU_BSP_H
/**
* @addtogroup RTEMSBSPsAArch64
*
* @{
*/
#include <bspopts.h>
#ifndef ASM
#include <bsp/default-initial-extension.h>
#include <bsp/start.h>
#include <rtems.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define BSP_ARM_GIC_CPUIF_BASE 0x08010000
#define BSP_ARM_GIC_DIST_BASE 0x08000000
#define BSP_ARM_GIC_REDIST_BASE 0x080A0000
#define BSP_A53_QEMU_VPL011_BASE 0x9000000
#define BSP_A53_QEMU_VPL011_LENGTH 0x1000
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* ASM */
/** @} */
#endif /* LIBBSP_AARCH64_A53_QEMU_BSP_H */

View File

@@ -1,66 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief BSP IRQ definitions
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_A53_IRQ_H
#define LIBBSP_AARCH64_A53_IRQ_H
#ifndef ASM
#include <rtems/irq.h>
#include <rtems/irq-extension.h>
#include <dev/irq/arm-gic-irq.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define BSP_INTERRUPT_VECTOR_COUNT 256
/* Interrupts vectors */
#define BSP_TIMER_VIRT_PPI 27
#define BSP_TIMER_PHYS_NS_PPI 30
#define BSP_VPL011_SPI 32
/** @} */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* ASM */
#endif /* LIBBSP_AARCH64_A53_IRQ_H */

View File

@@ -1,46 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief BSP tm27 header
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
#include <dev/irq/arm-gic-tm27.h>
#endif /* __tm27_h */

View File

@@ -1,49 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief BSP Startup
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp.h>
#include <bsp/bootcard.h>
#include <bsp/irq-generic.h>
#include <bsp/linker-symbols.h>
void bsp_start( void )
{
bsp_interrupt_initialize();
rtems_cache_coherent_add_area(
bsp_section_nocacheheap_begin,
(uintptr_t) bsp_section_nocacheheap_size
);
}

View File

@@ -1,52 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief BSP Startup Hooks
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp.h>
#include <bsp/start.h>
#ifdef BSP_START_ENABLE_EL3_START_SUPPORT
BSP_START_TEXT_SECTION void bsp_start_hook_0(void)
{
/* Do nothing */
}
#endif
BSP_START_TEXT_SECTION void bsp_start_hook_1(void)
{
AArch64_start_set_vector_base();
bsp_start_copy_sections();
bsp_start_clear_bss();
}

View File

@@ -1,70 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A72
*
* @brief Console Configuration
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/bspIo.h>
#include <bsp.h>
#include <dev/serial/arm-pl011.h>
#include <bsp/console-termios.h>
#include <bspopts.h>
arm_pl011_context a72_qemu_vpl011_context = {
.base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("PL011"),
.regs = (arm_pl011_uart *) BSP_A72_QEMU_VPL011_BASE,
.initial_baud = 115200,
.clock = 24000000
};
const console_device console_device_table[] = {
{
.device_file = "/dev/ttyS0",
.probe = console_device_probe_default,
.handler = &arm_pl011_fns,
.context = &a72_qemu_vpl011_context.base
}
};
const size_t console_device_count = RTEMS_ARRAY_SIZE(console_device_table);
static void output_char( char c )
{
arm_pl011_write_polled(&a72_qemu_vpl011_context.base, c);
}
BSP_output_char_function_type BSP_output_char = output_char;
BSP_polling_getchar_function_type BSP_poll_char = NULL;

View File

@@ -1,74 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A72
*
* @brief Core BSP definitions
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_A72_QEMU_BSP_H
#define LIBBSP_AARCH64_A72_QEMU_BSP_H
/**
* @addtogroup RTEMSBSPsAArch64
*
* @{
*/
#include <bspopts.h>
#ifndef ASM
#include <bsp/default-initial-extension.h>
#include <bsp/start.h>
#include <rtems.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define BSP_ARM_GIC_CPUIF_BASE 0x08010000
#define BSP_ARM_GIC_DIST_BASE 0x08000000
#define BSP_ARM_GIC_REDIST_BASE 0x080A0000
#define BSP_A72_QEMU_VPL011_BASE 0x9000000
#define BSP_A72_QEMU_VPL011_LENGTH 0x1000
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* ASM */
/** @} */
#endif /* LIBBSP_AARCH64_A72_QEMU_BSP_H */

View File

@@ -1,66 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A72
*
* @brief BSP IRQ definitions
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_A72_IRQ_H
#define LIBBSP_AARCH64_A72_IRQ_H
#ifndef ASM
#include <rtems/irq.h>
#include <rtems/irq-extension.h>
#include <dev/irq/arm-gic-irq.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define BSP_INTERRUPT_VECTOR_COUNT 1020
/* Interrupts vectors */
#define BSP_TIMER_VIRT_PPI 27
#define BSP_TIMER_PHYS_NS_PPI 30
#define BSP_VPL011_SPI 32
/** @} */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* ASM */
#endif /* LIBBSP_AARCH64_A72_IRQ_H */

View File

@@ -1,46 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A72
*
* @brief BSP tm27 header
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
#include <dev/irq/arm-gic-tm27.h>
#endif /* __tm27_h */

View File

@@ -1,49 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief BSP Startup
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp.h>
#include <bsp/bootcard.h>
#include <bsp/irq-generic.h>
#include <bsp/linker-symbols.h>
void bsp_start( void )
{
bsp_interrupt_initialize();
rtems_cache_coherent_add_area(
bsp_section_nocacheheap_begin,
(uintptr_t) bsp_section_nocacheheap_size
);
}

View File

@@ -1,52 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64A53
*
* @brief BSP Startup Hooks
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp.h>
#include <bsp/start.h>
#ifdef BSP_START_ENABLE_EL3_START_SUPPORT
BSP_START_TEXT_SECTION void bsp_start_hook_0(void)
{
/* Do nothing */
}
#endif
BSP_START_TEXT_SECTION void bsp_start_hook_1(void)
{
AArch64_start_set_vector_base();
bsp_start_copy_sections();
bsp_start_clear_bss();
}

View File

@@ -1,271 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup aarch64_start
*
* @brief AArch64 MMU configuration.
*/
/*
* Copyright (C) 2021 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_SHARED_AARCH64_MMU_H
#define LIBBSP_AARCH64_SHARED_AARCH64_MMU_H
#include <bsp/fatal.h>
#include <bsp/linker-symbols.h>
#include <bsp/start.h>
#include <bsp/utility.h>
#include <bspopts.h>
#include <libcpu/mmu-vmsav8-64.h>
#include <rtems/score/aarch64-system-registers.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct {
uintptr_t begin;
uintptr_t end;
uint64_t flags;
} aarch64_mmu_config_entry;
#define AARCH64_MMU_DEFAULT_SECTIONS \
{ \
.begin = (uintptr_t) bsp_section_fast_text_begin, \
.end = (uintptr_t) bsp_section_fast_text_end, \
.flags = AARCH64_MMU_CODE_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_fast_data_begin, \
.end = (uintptr_t) bsp_section_fast_data_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_start_begin, \
.end = (uintptr_t) bsp_section_start_end, \
.flags = AARCH64_MMU_CODE_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_vector_begin, \
.end = (uintptr_t) bsp_section_vector_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_text_begin, \
.end = (uintptr_t) bsp_section_text_end, \
.flags = AARCH64_MMU_CODE_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_rodata_begin, \
.end = (uintptr_t) bsp_section_rodata_end, \
.flags = AARCH64_MMU_DATA_RO_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_data_begin, \
.end = (uintptr_t) bsp_section_data_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_bss_begin, \
.end = (uintptr_t) bsp_section_bss_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_rtemsstack_begin, \
.end = (uintptr_t) bsp_section_rtemsstack_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_noinit_begin, \
.end = (uintptr_t) bsp_section_noinit_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_work_begin, \
.end = (uintptr_t) bsp_section_work_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_stack_begin, \
.end = (uintptr_t) bsp_section_stack_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
.begin = (uintptr_t) bsp_section_nocache_begin, \
.end = (uintptr_t) bsp_section_nocache_end, \
.flags = AARCH64_MMU_DEVICE \
}, { \
.begin = (uintptr_t) bsp_section_nocachenoload_begin, \
.end = (uintptr_t) bsp_section_nocachenoload_end, \
.flags = AARCH64_MMU_DEVICE \
}, { \
.begin = (uintptr_t) bsp_translation_table_base, \
.end = (uintptr_t) bsp_translation_table_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
/*
* The vector table must be in writable and executable memory as it stores both
* exception code and the mutable pointer to which it jumps
*/ \
.begin = (uintptr_t) bsp_start_vector_table_begin, \
.end = (uintptr_t) bsp_start_vector_table_end, \
.flags = AARCH64_MMU_CODE_RW_CACHED \
}
/**
* @brief This is the AArch64 MMU configuration table.
*
* The default table is provided by the BSP. Applications may provide their
* own.
*/
extern const aarch64_mmu_config_entry aarch64_mmu_config_table[];
/**
* @brief This is the count of entries in the AArch64 MMU configuration table.
*
* The default table is provided by the BSP. Applications may provide their
* own.
*/
extern const size_t aarch64_mmu_config_table_size;
/**
* @brief This structure represents the state to maintain the MMU translation
* tables.
*/
typedef struct {
/**
* @brief This member references the translation table base.
*/
uint64_t *ttb;
/**
* @brief This member contains the count of used page tables.
*
* A maximum of ::AARCH64_MMU_TRANSLATION_TABLE_PAGES can be used.
*/
size_t used_page_tables;
} aarch64_mmu_control;
/**
* @brief This object is used to maintain the MMU translation tables.
*/
extern aarch64_mmu_control aarch64_mmu_instance;
/**
* @brief Sets the MMU translation table entries associated with the memory
* region.
*
* @param[in, out] control is a reference to the MMU control state.
*
* @param[in] config is the configuration entry with the memory region and
* region attributes.
*
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
*
* @retval ::RTEMS_INVALID_ADDRESS The begin address of the memory region
* cannot be mapped by the MMU.
*
* @retval ::RTEMS_INVALID_SIZE The end address of the memory region cannot be
* mapped by the MMU.
*
* @retval ::RTEMS_TOO_MANY There was no page table entry available to perform
* the mapping.
*/
rtems_status_code aarch64_mmu_set_translation_table_entries(
aarch64_mmu_control *control,
const aarch64_mmu_config_entry *config
);
/**
* @brief Sets up the MMU translation table.
*
* The memory regions of the configuration table are mapped by the MMU. If a
* mapping is infeasible, then the BSP fatal error
* ::AARCH64_FATAL_MMU_CANNOT_MAP_BLOCK will be issued.
*
* @param[in, out] control is a reference to the MMU control state.
*
* @param[in] config_table is the configuration table with memory regions and
* region attributes.
*
* @param config_count is the count of configuration table entries.
*/
void aarch64_mmu_setup_translation_table(
aarch64_mmu_control *control,
const aarch64_mmu_config_entry *config_table,
size_t config_count
);
BSP_START_TEXT_SECTION static inline void
aarch64_mmu_enable( const aarch64_mmu_control *control )
{
uint64_t sctlr;
/* CPUECTLR_EL1.SMPEN is already set on ZynqMP and is not writable */
/* Flush and invalidate cache */
rtems_cache_flush_entire_data();
_AArch64_Write_ttbr0_el1( (uintptr_t) control->ttb );
_AARCH64_Instruction_synchronization_barrier();
/* Enable MMU and cache */
sctlr = _AArch64_Read_sctlr_el1();
sctlr |= AARCH64_SCTLR_EL1_I | AARCH64_SCTLR_EL1_C | AARCH64_SCTLR_EL1_M;
_AArch64_Write_sctlr_el1( sctlr );
}
BSP_START_TEXT_SECTION static inline void
aarch64_mmu_disable( void )
{
uint64_t sctlr;
/*
* Flush data cache before disabling the MMU. While the MMU is disabled, all
* accesses are treated as uncached device memory.
*/
rtems_cache_flush_entire_data();
/* Disable MMU */
sctlr = _AArch64_Read_sctlr_el1();
sctlr &= ~(AARCH64_SCTLR_EL1_M);
_AArch64_Write_sctlr_el1( sctlr );
}
BSP_START_TEXT_SECTION static inline void aarch64_mmu_setup( void )
{
/* Set TCR */
/* 256TB/48 bits mappable (64-0x10) */
_AArch64_Write_tcr_el1(
AARCH64_TCR_EL1_T0SZ( 0x10 ) | AARCH64_TCR_EL1_IRGN0( 0x1 ) |
AARCH64_TCR_EL1_ORGN0( 0x1 ) | AARCH64_TCR_EL1_SH0( 0x3 ) |
AARCH64_TCR_EL1_TG0( 0x0 ) | AARCH64_TCR_EL1_IPS( 0x5ULL ) |
AARCH64_TCR_EL1_EPD1
);
/* Set MAIR */
_AArch64_Write_mair_el1(
AARCH64_MAIR_EL1_ATTR0( 0x0 ) | AARCH64_MAIR_EL1_ATTR1( 0x4 ) |
AARCH64_MAIR_EL1_ATTR2( 0x44 ) | AARCH64_MAIR_EL1_ATTR3( 0xFF )
);
}
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* LIBBSP_AARCH64_SHARED_AARCH64_MMU_H */

View File

@@ -1,86 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsLinkerSymbolsAArch64
*
* @brief This header file provides interfaces to AArch64-specific linker
* symbols and sections.
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_SHARED_LINKER_SYMBOLS_H
#define LIBBSP_AARCH64_SHARED_LINKER_SYMBOLS_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/**
* @defgroup RTEMSBSPsLinkerSymbolsAArch64 AArch64 Linker Symbols
*
* @ingroup RTEMSBSPsLinkerSymbols
*
* @brief This group provides support for AArch64-specific linker symbols and
* sections.
*
* @{
*/
#ifndef ASM
#define LINKER_SYMBOL(sym) extern char sym [];
#else
#define LINKER_SYMBOL(sym) .extern sym
#endif
LINKER_SYMBOL(bsp_stack_exception_size)
LINKER_SYMBOL(bsp_stack_hyp_size)
LINKER_SYMBOL(bsp_section_vector_begin)
LINKER_SYMBOL(bsp_section_vector_end)
LINKER_SYMBOL(bsp_section_vector_size)
LINKER_SYMBOL(bsp_vector_table_begin)
LINKER_SYMBOL(bsp_vector_table_end)
LINKER_SYMBOL(bsp_vector_table_size)
LINKER_SYMBOL(bsp_start_vector_table_begin)
LINKER_SYMBOL(bsp_start_vector_table_end)
LINKER_SYMBOL(bsp_start_vector_table_size)
LINKER_SYMBOL(bsp_translation_table_base)
LINKER_SYMBOL(bsp_translation_table_end)
/** @} */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* LIBBSP_AARCH64_SHARED_LINKER_SYMBOLS_H */

View File

@@ -1,184 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup aarch64_start
*
* @brief Aarch64 system low level start.
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_SHARED_START_H
#define LIBBSP_AARCH64_SHARED_START_H
#include <string.h>
#include <bsp/linker-symbols.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/**
* @defgroup aarch64_start System Start
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief Aarch64 system low level start.
*
* @{
*/
#define BSP_START_TEXT_SECTION __attribute__((section(".bsp_start_text")))
#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
/**
* @brief System start entry.
*/
void _start(void);
/**
* @brief Start entry hook 0.
*
* This hook will be called from the start entry code after all modes and
* stack pointers are initialized but before the copying of the exception
* vectors.
*/
void bsp_start_hook_0(void);
/**
* @brief Start entry hook 1.
*
* This hook will be called from the start entry code after copying of the
* exception vectors but before the call to boot_card().
*/
void bsp_start_hook_1(void);
BSP_START_TEXT_SECTION static inline void
bsp_start_memcpy_libc(void *dest, const void *src, size_t n)
{
if (dest != src) {
memcpy(dest, src, n);
}
}
/**
* @brief Copies all standard sections from the load to the runtime area.
*/
BSP_START_TEXT_SECTION static inline void bsp_start_copy_sections(void)
{
/* Copy .text section */
bsp_start_memcpy_libc(
(int *) bsp_section_text_begin,
(const int *) bsp_section_text_load_begin,
(size_t) bsp_section_text_size
);
/* Copy .rodata section */
bsp_start_memcpy_libc(
(int *) bsp_section_rodata_begin,
(const int *) bsp_section_rodata_load_begin,
(size_t) bsp_section_rodata_size
);
/* Copy .data section */
bsp_start_memcpy_libc(
(int *) bsp_section_data_begin,
(const int *) bsp_section_data_load_begin,
(size_t) bsp_section_data_size
);
/* Copy .fast_text section */
bsp_start_memcpy_libc(
(int *) bsp_section_fast_text_begin,
(const int *) bsp_section_fast_text_load_begin,
(size_t) bsp_section_fast_text_size
);
/* Copy .fast_data section */
bsp_start_memcpy_libc(
(int *) bsp_section_fast_data_begin,
(const int *) bsp_section_fast_data_load_begin,
(size_t) bsp_section_fast_data_size
);
}
/**
* @brief Copies the .data, .fast_text and .fast_data sections from the load to
* the runtime area using the C library memcpy().
*
* Works only in case the .start, .text and .rodata sections reside in one
* memory region.
*/
BSP_START_TEXT_SECTION static inline void bsp_start_copy_sections_compact(void)
{
/* Copy .data section */
bsp_start_memcpy_libc(
bsp_section_data_begin,
bsp_section_data_load_begin,
(size_t) bsp_section_data_size
);
/* Copy .fast_text section */
bsp_start_memcpy_libc(
bsp_section_fast_text_begin,
bsp_section_fast_text_load_begin,
(size_t) bsp_section_fast_text_size
);
/* Copy .fast_data section */
bsp_start_memcpy_libc(
bsp_section_fast_data_begin,
bsp_section_fast_data_load_begin,
(size_t) bsp_section_fast_data_size
);
}
BSP_START_TEXT_SECTION static inline void bsp_start_clear_bss(void)
{
memset(bsp_section_bss_begin, 0, (size_t) bsp_section_bss_size);
}
BSP_START_TEXT_SECTION static inline void
AArch64_start_set_vector_base(void)
{
__asm__ volatile (
"msr VBAR_EL1, %[vtable]\n"
: : [vtable] "r" (bsp_start_vector_table_begin)
);
}
/** @} */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* LIBBSP_AARCH64_SHARED_START_H */

View File

@@ -1,88 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup DevIRQGIC
*
* @brief This header file provides interfaces of the ARM Generic Interrupt
* Controller (GIC) support specific to the AArch64 architecture.
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _RTEMS_DEV_IRQ_ARM_GIC_AARCH64_H
#define _RTEMS_DEV_IRQ_ARM_GIC_AARCH64_H
#include <rtems/score/cpu.h>
#include <rtems/score/cpu_irq.h>
#include <bsp/irq-generic.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @addtogroup DevIRQGIC
*
* @{
*/
static inline uint32_t arm_interrupt_enable_interrupts(void)
{
uint32_t status = _CPU_ISR_Get_level();
/* Enable interrupts for nesting */
_CPU_ISR_Set_level(0);
return status;
}
static inline void arm_interrupt_restore_interrupts(uint32_t status)
{
/* Restore interrupts to previous level */
_CPU_ISR_Set_level(status);
}
static inline void arm_interrupt_facility_set_exception_handler(void)
{
AArch64_set_exception_handler(
AARCH64_EXCEPTION_SPx_IRQ,
_AArch64_Exception_interrupt_no_nest
);
AArch64_set_exception_handler(
AARCH64_EXCEPTION_SP0_IRQ,
_AArch64_Exception_interrupt_nest
);
}
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* _RTEMS_DEV_IRQ_ARM_GIC_AARCH64_H */

View File

@@ -1,176 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64RaspberryPi
*
* @brief Console Configuration
*/
/*
* Copyright (C) 2022 Mohd Noor Aman
* Copyright (C) 2023 Utkarsh Verma
* Copyright (C) 2024 Ning Yang
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/bspIo.h>
#include <bsp.h>
#include <dev/serial/arm-pl011.h>
#include <bsp/irq.h>
#include <bsp/console.h>
#include <bsp/fatal.h>
#include <bsp/rpi-gpio.h>
#include <bspopts.h>
#include <rtems/console.h>
#include <rtems/rtems/status.h>
#include <rtems/termiosdevice.h>
#include <stdint.h>
#define CONSOLE_DEVICE_CONTEXT_NAME(port_no) uart##port_no##_context
#define CONSOLE_DEVICE_CONTEXT( \
port_no, _file_name, regs_base, _size, clock_freq, irq_no, \
context_type, ... \
) \
static context_type CONSOLE_DEVICE_CONTEXT_NAME(port_no) = { \
.base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("UART" #port_no), \
.regs = (volatile arm_pl011_uart *) regs_base, \
.clock = clock_freq, \
.initial_baud = 115200, \
.irq = irq_no, \
};
#define CONSOLE_DEVICE( \
port_no, file_name, _base, _size, _clock, _irq,_context_type, dev_handler, \
write_char_func, rx_pin, tx_pin, gpio_func, ... \
) \
[CONSOLE_DEVICE_PORT2ENUM(port_no)] = { \
.file = file_name, \
.context = &CONSOLE_DEVICE_CONTEXT_NAME(port_no).base, \
.gpio = {.rx = rx_pin, .tx = tx_pin, .function = gpio_func}, \
.handler = dev_handler, \
.write_char_polled = write_char_func, \
},
typedef struct {
const unsigned int rx;
const unsigned int tx;
const raspberrypi_gpio_function function;
} raspberrypi_console_device_gpio_config;
typedef struct {
const char* file;
rtems_termios_device_context* context;
const raspberrypi_console_device_gpio_config gpio;
const rtems_termios_device_handler* handler;
void (*write_char_polled)(rtems_termios_device_context*, char);
} raspberrypi_console_device;
/* Initialize all console device contexts */
CONSOLE_DEVICES(CONSOLE_DEVICE_CONTEXT)
/* Initialize all device configurations */
static const raspberrypi_console_device devices[CONSOLE_DEVICE_COUNT] = {
CONSOLE_DEVICES(CONSOLE_DEVICE)
};
static rtems_status_code console_device_init_gpio(
const raspberrypi_console_device_gpio_config *gpio
)
{
rtems_status_code status = raspberrypi_gpio_set_function(
gpio->rx,
gpio->function
);
if (status != RTEMS_SUCCESSFUL)
return status;
status = raspberrypi_gpio_set_function(gpio->tx, gpio->function);
if (status != RTEMS_SUCCESSFUL)
return status;
status = raspberrypi_gpio_set_pull(gpio->rx, GPIO_PULL_NONE);
if (status != RTEMS_SUCCESSFUL)
return status;
status = raspberrypi_gpio_set_pull(gpio->tx, GPIO_PULL_NONE);
return status;
}
static void output_char(const char ch) {
const raspberrypi_console_device* device = &devices[BSP_CONSOLE_PORT];
device->write_char_polled(device->context, ch);
}
static int poll_char(void) {
const raspberrypi_console_device* device = &devices[BSP_CONSOLE_PORT];
return device->handler->poll_read(device->context);
}
rtems_status_code raspberrypi_uart_init(
raspberrypi_console_device_port uart_num
)
{
const raspberrypi_console_device *device = &devices[uart_num];
rtems_status_code status = console_device_init_gpio(&device->gpio);
if (status != RTEMS_SUCCESSFUL) {
return status;
}
status = rtems_termios_device_install(
device->file, device->handler, NULL, device->context
);
return status;
}
rtems_device_driver console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg
)
{
const raspberrypi_console_device* device = &devices[BSP_CONSOLE_PORT];
rtems_status_code status = raspberrypi_uart_init(BSP_CONSOLE_PORT);
if (status != RTEMS_SUCCESSFUL) {
bsp_fatal(BSP_FATAL_CONSOLE_INSTALL_0);
}
rtems_termios_initialize();
if (link(device->file, CONSOLE_DEVICE_NAME) != 0) {
bsp_fatal(BSP_FATAL_CONSOLE_INSTALL_1);
}
return RTEMS_SUCCESSFUL;
}
BSP_output_char_function_type BSP_output_char = output_char;
BSP_polling_getchar_function_type BSP_poll_char = poll_char;

View File

@@ -1,110 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64RaspberryPi
*
* @brief GPIO Driver
*/
/*
* Copyright (C) 2023 Utkarsh Verma
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/rtems/status.h>
#include <stdint.h>
#include <bsp/rpi-gpio.h>
#include <bsp/raspberrypi.h>
#define BSP_GPIO_BASE BCM2711_GPIO_BASE
#define BSP_GPIO_SIZE BCM2711_GPIO_SIZE
#define BSP_GPIO_PIN_COUNT BCM2711_GPIO_PIN_COUNT
#define GPFSEL0 BCM2835_REG(BSP_GPIO_BASE + 0x00)
#define GPSET0 BCM2835_REG(BSP_GPIO_BASE + 0x1c)
#define GPCLR0 BCM2835_REG(BSP_GPIO_BASE + 0x28)
#define GPIO_PUP_PDN_CTRL_REG0 BCM2835_REG(BSP_GPIO_BASE + 0xe4)
#define FSELn_SIZE 3
#define CLRn_SIZE 1
#define SETn_SIZE 1
#define REG_SET 1
static rtems_status_code raspberrypi_gpio_set_reg(
volatile uint32_t *base_reg,
const unsigned int pin,
const uint32_t value,
const unsigned int field_size
)
{
unsigned int field_mask, n_fields, shift, tmp;
volatile uint32_t *reg;
if (pin > BSP_GPIO_PIN_COUNT)
return RTEMS_INVALID_NUMBER;
field_mask = (1 << field_size) - 1;
if (value > field_mask)
return RTEMS_INVALID_NUMBER;
/* GPIO registers are uniformly subdivided */
n_fields = sizeof(uint32_t) * 8 / field_size;
/* Registers are sequentially mapped for each `n_field` GPIOs */
reg = base_reg + pin / n_fields;
shift = (pin % n_fields) * field_size;
tmp = *reg;
tmp &= ~(field_mask << shift); /* Clear the field */
tmp |= value << shift; /* Set value to the field */
*reg = tmp;
return RTEMS_SUCCESSFUL;
}
rtems_status_code raspberrypi_gpio_set_function(
const unsigned int pin,
const raspberrypi_gpio_function value
)
{
return raspberrypi_gpio_set_reg(&GPFSEL0, pin, value, FSELn_SIZE);
}
rtems_status_code raspberrypi_gpio_clear_pin(const unsigned int pin)
{
return raspberrypi_gpio_set_reg(&GPCLR0, pin, REG_SET, CLRn_SIZE);
}
rtems_status_code raspberrypi_gpio_set_pin(const unsigned int pin)
{
return raspberrypi_gpio_set_reg(&GPSET0, pin, REG_SET, SETn_SIZE);
}
rtems_status_code raspberrypi_gpio_set_pull(
const unsigned int pin,
const raspberrypi_gpio_pull value
)
{
return raspberrypi_gpio_set_reg(&GPIO_PUP_PDN_CTRL_REG0, pin, value, 2);
}

View File

@@ -1,73 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Raspberrypi4
*
* @brief Core BSP definitions
*/
/*
* Copyright (C) 2022 Mohd Noor Aman
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_RASPBERRYPI_4_BSP_H
#define LIBBSP_AARCH64_RASPBERRYPI_4_BSP_H
/**
* @addtogroup RTEMSBSPsAArch64
*
* @{
*/
#include <bspopts.h>
#ifndef ASM
#include <bsp/default-initial-extension.h>
#include <bsp/start.h>
#include <rtems.h>
/*Raspberry pi MMU initialization */
BSP_START_TEXT_SECTION void raspberrypi_4_setup_mmu_and_cache(void);
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define BSP_ARM_GIC_CPUIF_BASE 0xFF842000
#define BSP_ARM_GIC_DIST_BASE 0xFF841000
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* ASM */
/** @} */
#endif /* LIBBSP_AARCH64_RASPBERRYPI_4_BSP_H */

View File

@@ -1,71 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64RaspberryPi
*
* @brief Console Configuration
*/
/*
* Copyright (C) 2023 Utkarsh Verma
* Copyright (C) 2024 Ning Yang
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_CONSOLE_H
#define LIBBSP_AARCH64_RASPBERRYPI_BSP_CONSOLE_H
#include <bspopts.h>
#include <bsp/raspberrypi-uart.h>
#define CONSOLE_DEVICES RASPBERRYPI_CONSOLE_DEVICES
#define CONSOLE_DEVICE_PORT2ENUM(port_no) UART##port_no
#define CONSOLE_DEVICE_ENUM(port_no, ...) CONSOLE_DEVICE_PORT2ENUM(port_no),
typedef enum {
CONSOLE_DEVICES(CONSOLE_DEVICE_ENUM)
CONSOLE_DEVICE_COUNT,
} raspberrypi_console_device_port;
/**
* @brief Initialize gpio of UART and install UART to the dev directory.
*
* @param uart_num The optional devices are UART0, UART2, UART3, UART4, UART5.
*
* @retval RTEMS_SUCCESSFUL Successful operation.
* @retval RTEMS_INVALID_NUMBER This status code indicates that a specified
* number was invalid.
* @retval RTEMS_NO_MEMORY Not enough memory to create a device node.
* @retval RTEMS_UNSATISFIED Creation of the device file failed.
* @retval RTEMS_INCORRECT_STATE Termios is not initialized.
*/
rtems_status_code raspberrypi_uart_init(
raspberrypi_console_device_port uart_num
);
#undef CONSOLE_DEVICE_ENUM
#endif /* LIBBSP_AARCH64_RASPBERRYPI_BSP_CONSOLE_H */

View File

@@ -1,93 +0,0 @@
/**
* @file
*
* @ingroup raspberrypi_interrupt
*
* @brief Interrupt definitions.
*/
/**
* Copyright (c) 2013 Alan Cudmore
* Copyright (c) 2022 Mohd Noor Aman
* Copyright (c) 2024 Ning Yang
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
*
* http://www.rtems.org/license/LICENSE
*
*/
#ifndef LIBBSP_ARM_RASPBERRYPI_IRQ_H
#define LIBBSP_ARM_RASPBERRYPI_IRQ_H
#ifndef ASM
#include <rtems.h>
#include <dev/irq/arm-gic-irq.h>
/**
* @defgroup raspberrypi_interrupt Interrrupt Support
*
* @ingroup RTEMSBSPsARMRaspberryPi
*
* @brief Interrupt support.
*/
#define BCM2835_INTC_TOTAL_IRQ 216
#define BCM2835_IRQ_SET1_MIN 0
#define BCM2835_IRQ_SET2_MIN 32
#define BCM2711_IRQ_VC_PERIPHERAL_BASE 96
/* Interrupt Vectors: System Timer */
#define BCM2835_IRQ_ID_GPU_TIMER_M0 (BCM2711_IRQ_VC_PERIPHERAL_BASE + 0)
#define BCM2835_IRQ_ID_GPU_TIMER_M1 (BCM2711_IRQ_VC_PERIPHERAL_BASE + 1)
#define BCM2835_IRQ_ID_GPU_TIMER_M2 (BCM2711_IRQ_VC_PERIPHERAL_BASE + 2)
#define BCM2835_IRQ_ID_GPU_TIMER_M3 (BCM2711_IRQ_VC_PERIPHERAL_BASE + 3)
/* Interrupt Vectors: SPI */
#define BCM2711_IRQ_SPI (BCM2711_IRQ_VC_PERIPHERAL_BASE + 54)
/* Interrupt Vectors: Videocore */
#define BCM2711_IRQ_VC_PERIPHERAL_BASE 96
#define BCM2711_IRQ_AUX (BCM2711_IRQ_VC_PERIPHERAL_BASE + 29)
#define BCM2711_IRQ_PL011_UART (BCM2711_IRQ_VC_PERIPHERAL_BASE + 57)
#define BCM2835_IRQ_ID_USB 9
#define BCM2835_IRQ_ID_AUX 29
#define BCM2835_IRQ_ID_SPI_SLAVE 43
#define BCM2835_IRQ_ID_PWA0 45
#define BCM2835_IRQ_ID_PWA1 46
#define BCM2835_IRQ_ID_SMI 48
#define BCM2835_IRQ_ID_GPIO_0 49
#define BCM2835_IRQ_ID_GPIO_1 50
#define BCM2835_IRQ_ID_GPIO_2 51
#define BCM2835_IRQ_ID_GPIO_3 52
#define BCM2835_IRQ_ID_I2C 53
#define BCM2835_IRQ_ID_SPI 54
#define BCM2835_IRQ_ID_PCM 55
#define BCM2835_IRQ_ID_UART 57
#define BCM2835_IRQ_ID_SD 62
#define BCM2835_IRQ_ID_BASIC_BASE_ID 64
#define BCM2835_IRQ_ID_TIMER_0 64
#define BCM2835_IRQ_ID_MAILBOX_0 65
#define BCM2835_IRQ_ID_DOORBELL_0 66
#define BCM2835_IRQ_ID_DOORBELL_1 67
#define BCM2835_IRQ_ID_GPU0_HALTED 68
#define BCM2835_IRQ_ID_GPU1_HALTED 69
#define BCM2835_IRQ_ID_ILL_ACCESS_1 70
#define BCM2835_IRQ_ID_ILL_ACCESS_0 71
#define BSP_TIMER_VIRT_PPI 27
#define BSP_TIMER_PHYS_NS_PPI 30
#define BSP_VPL011_SPI 32
#define BSP_INTERRUPT_VECTOR_COUNT BCM2835_INTC_TOTAL_IRQ
#define BSP_INTERRUPT_VECTOR_INVALID (UINT32_MAX)
#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ)
#endif /* ASM */
#endif /* LIBBSP_ARM_RASPBERRYPI_IRQ_H */

View File

@@ -1,122 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup raspberrypi_4_spi
*
* @brief Raspberry Pi specific SPI definitions.
*/
/*
* Copyright (C) 2024 Ning Yang
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_RASPBERRYPI_4_SPI_H
#define LIBBSP_AARCH64_RASPBERRYPI_4_SPI_H
#include <bsp/utility.h>
#include <bsp/rpi-gpio.h>
typedef struct
{
uint32_t spics;
#define RPI_SPICS_LEN_LONG BSP_BIT32(25)
#define RPI_SPICS_DMA_LEN BSP_BIT32(24)
#define RPI_SPICS_CSPOL2 BSP_BIT32(23)
#define RPI_SPICS_CSPOL1 BSP_BIT32(22)
#define RPI_SPICS_CSPOL0 BSP_BIT32(21)
#define RPI_SPICS_RXF BSP_BIT32(20)
#define RPI_SPICS_RXR BSP_BIT32(19)
#define RPI_SPICS_TXD BSP_BIT32(18)
#define RPI_SPICS_RXD BSP_BIT32(17)
#define RPI_SPICS_DONE BSP_BIT32(16)
#define RPI_SPICS_LEN BSP_BIT32(13)
#define RPI_SPICS_REN BSP_BIT32(12)
#define RPI_SPICS_ADCS BSP_BIT32(11)
#define RPI_SPICS_INTR BSP_BIT32(10)
#define RPI_SPICS_INTD BSP_BIT32(9)
#define RPI_SPICS_DMAEN BSP_BIT32(8)
#define RPI_SPICS_TA BSP_BIT32(7)
#define RPI_SPICS_CSPOL BSP_BIT32(6)
#define RPI_SPICS_CLEAR_TX BSP_BIT32(5)
#define RPI_SPICS_CLEAR_RX BSP_BIT32(4)
#define RPI_SPICS_CPOL BSP_BIT32(3)
#define RPI_SPICS_CPHA BSP_BIT32(2)
#define RPI_SPICS_CS(val) BSP_FLD32(val, 0, 1)
#define RPI_SPICS_CS_SET(reg,val) BSP_FLD32SET(reg, val, 0, 1)
uint32_t spififo;
#define RPI_SPIFIFO_DATA(val) BSP_FLD32(val, 0, 31)
#define RPI_SPIFIFO_DATA_GET(reg) BSP_FLD32GET(reg, 0, 31)
#define RPI_SPIFIFO_DATA_SET(reg, val) BSP_FLD32SET(reg, val, 0, 31)
uint32_t spiclk;
#define RPI_SPICLK_CDIV(val) BSP_FLD32(val, 0, 15)
#define RPI_SPICLK_CDIV_GET(reg) BSP_FLD32GET(reg, 0, 15)
#define RPI_SPICLK_CDIV_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
uint32_t spidlen;
#define RPI_SPIDLEN_LEN(val) BSP_FLD32(val, 0, 15)
#define RPI_SPIDLEN_LEN_GET(reg) BSP_FLD32GET(reg, 0, 15)
#define RPI_SPIDLEN_LEN_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
uint32_t spiltoh;
#define RPI_SPILTOH_TOH(val) BSP_FLD32(val, 0, 3)
#define RPI_SPILTOH_TOH_GET(reg) BSP_FLD32GET(reg, 0, 3)
#define RPI_SPILTOH_TOH_SET(reg, val) BSP_FLD32SET(reg, val, 0, 3)
uint32_t spidc;
#define RPI_SPIDC_RPANIC(val) BSP_FLD32(val, 24, 31)
#define RPI_SPIDC_RPANIC_GET(reg) BSP_FLD32GET(reg, 24, 31)
#define RPI_SPIDC_RPANIC_SET(reg, val) BSP_FLD32SET(reg, val, 24, 31)
#define RPI_SPIDC_RDREQ(val) BSP_FLD32(val, 16, 23)
#define RPI_SPIDC_RDREQ_GET(reg) BSP_FLD32GET(reg, 16, 23)
#define RPI_SPIDC_RDREQ_SET(reg, val) BSP_FLD32SET(reg, val, 16, 23)
#define RPI_SPIDC_TPANIC(val) BSP_FLD32(val, 8, 15)
#define RPI_SPIDC_TPANIC_GET(reg) BSP_FLD32GET(reg, 8, 15)
#define RPI_SPIDC_TPANIC_SET(reg, val) BSP_FLD32SET(reg, val, 8, 15)
#define RPI_SPIDC_TDREQ(val) BSP_FLD32(val, 0, 7)
#define RPI_SPIDC_TDREQ_GET(reg) BSP_FLD32GET(reg, 0, 7)
#define RPI_SPIDC_TDREQ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 7)
} raspberrypi_spi;
typedef enum {
raspberrypi_SPI0,
raspberrypi_SPI3,
raspberrypi_SPI4,
raspberrypi_SPI5,
raspberrypi_SPI6
} raspberrypi_spi_device;
/**
* @brief Register a spi device.
*
* @param device The optional devices are raspberrypi_SPI0, raspberrypi_SPI3,
* raspberrypi_SPI4, raspberrypi_SPI5, raspberrypi_SPI6.
*
* @retval RTEMS_SUCCESSFUL Successfully registered SPI device.
* @retval RTEMS_INVALID_NUMBER This status code indicates that a specified
* number was invalid.
* @retval RTEMS_UNSATISFIED This status code indicates that the request was
* not satisfied.
*/
rtems_status_code raspberrypi_spi_init(raspberrypi_spi_device device);
#endif /* LIBBSP_AARCH64_RASPBERRYPI_4_SPI_H */

View File

@@ -1,72 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64RaspberryPi
*
* @brief Raspberry Pi 4B Console Device Definitions
*/
/*
* Copyright (C) 2023 Utkarsh Verma
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_RASPBERRYPI_UART_H
#define LIBBSP_AARCH64_RASPBERRYPI_BSP_RASPBERRYPI_UART_H
#include <bspopts.h>
#include <bsp/irq.h>
#include <bsp/raspberrypi.h>
#include <bsp/rpi-gpio.h>
#include <dev/serial/arm-pl011.h>
/*
* This macro exists to serve as a common point of definition for the
* parameters of the UARTs present in the Raspberry Pi 4. It is used in
* multiple locations with different rendering macros to prevent duplication
* of information.
*/
#define RASPBERRYPI_CONSOLE_DEVICES(CONSOLE_DEVICE_DEFINITION_RENDERER) \
CONSOLE_DEVICE_DEFINITION_RENDERER( \
0, "/dev/ttyAMA0", BCM2711_UART0_BASE,BCM2711_UART0_SIZE, \
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
&arm_pl011_fns, arm_pl011_write_polled, 15, 14, GPIO_AF0) \
CONSOLE_DEVICE_DEFINITION_RENDERER( \
2, "/dev/ttyAMA1", BCM2711_UART2_BASE, BCM2711_UART2_SIZE, \
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
&arm_pl011_fns, arm_pl011_write_polled, 1, 0, GPIO_AF4) \
CONSOLE_DEVICE_DEFINITION_RENDERER( \
3, "/dev/ttyAMA2", BCM2711_UART3_BASE, BCM2711_UART3_SIZE, \
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
&arm_pl011_fns, arm_pl011_write_polled, 5, 4, GPIO_AF4) \
CONSOLE_DEVICE_DEFINITION_RENDERER( \
4, "/dev/ttyAMA3", BCM2711_UART4_BASE, BCM2711_UART4_SIZE, \
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
&arm_pl011_fns, arm_pl011_write_polled, 9, 8, GPIO_AF4) \
CONSOLE_DEVICE_DEFINITION_RENDERER( \
5, "/dev/ttyAMA4", BCM2711_UART5_BASE, BCM2711_UART5_SIZE, \
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
&arm_pl011_fns, arm_pl011_write_polled, 13, 12, GPIO_AF4)
#endif /* LIBBSP_AARCH64_RASPBERRYPI_BSP_RASPBERRYPI_UART_H */

View File

@@ -1,527 +0,0 @@
/**
* @file
*
* @ingroup raspberrypi_4_regs
*
* @brief Register definitions.
*/
/*
* Copyright (c) 2022 Mohd Noor Aman
* Copyright (c) 2024 Ning Yang
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
*
* http://www.rtems.org/license/LICENSE
*
*/
#ifndef LIBBSP_AARCH64_RASPBERRYPI_RASPBERRYPI_4_H
#define LIBBSP_AARCH64_RASPBERRYPI_RASPBERRYPI_4_H
#include <bspopts.h>
#include <stdint.h>
#include <bsp/utility.h>
/**
* @defgroup raspberrypi_reg Register Definitions
*
* @ingroup RTEMSBSPsARMRaspberryPi
*
* @brief Register Definitions
*
* @{
*/
/**
* @name Register Macros
*
* @{
*/
#define BCM2711_REG(x) (*(volatile uint64_t *)(x))
#define BCM2711_BIT(n) (1 << (n))
#define BCM2835_REG(addr) (*(volatile uint32_t*)(addr))
/** @} */
/**
* @name Peripheral Base Register Address
*
* @{
*/
#define RPI_PERIPHERAL_BASE 0xFE000000
#define BASE_OFFSET 0xFE000000
#define RPI_PERIPHERAL_SIZE 0x01800000
/**
* @name Bus to Physical address translation
* Macro.
* @{
*/
#define BUS_TO_PHY(x) ((x) - BASE_OFFSET)
/** @} */
/**
* @name Internal ARM Timer Registers
*
* @{
*/
#define BCM2711_CLOCK_FREQ 250000000
#define BCM2711_TIMER_BASE (RPI_PERIPHERAL_BASE + 0xB400)
#define BCM2711_TIMER_LOD (BCM2711_TIMER_BASE + 0x00)
#define BCM2711_TIMER_VAL (BCM2711_TIMER_BASE + 0x04)
#define BCM2711_TIMER_CTL (BCM2711_TIMER_BASE + 0x08)
#define BCM2711_TIMER_CLI (BCM2711_TIMER_BASE + 0x0C)
#define BCM2711_TIMER_RIS (BCM2711_TIMER_BASE + 0x10)
#define BCM2711_TIMER_MIS (BCM2711_TIMER_BASE + 0x14)
#define BCM2711_TIMER_RLD (BCM2711_TIMER_BASE + 0x18)
#define BCM2711_TIMER_DIV (BCM2711_TIMER_BASE + 0x1C)
#define BCM2711_TIMER_CNT (BCM2711_TIMER_BASE + 0x20)
#define BCM2711_TIMER_PRESCALE 0xF9
/** @} */
/**
* @name Power Management and Watchdog Registers
*
* @{
*/
#define BCM2711_PM_PASSWD_MAGIC 0x5a000000
#define BCM2711_PM_BASE (RPI_PERIPHERAL_BASE + 0x100000)
#define BCM2711_PM_GNRIC (BCM2711_PM_BASE + 0x00)
#define BCM2711_PM_GNRIC_POWUP 0x00000001
#define BCM2711_PM_GNRIC_POWOK 0x00000002
#define BCM2711_PM_GNRIC_ISPOW 0x00000004
#define BCM2711_PM_GNRIC_MEMREP 0x00000008
#define BCM2711_PM_GNRIC_MRDONE 0x00000010
#define BCM2711_PM_GNRIC_ISFUNC 0x00000020
#define BCM2711_PM_GNRIC_RSTN 0x00000fc0
#define BCM2711_PM_GNRIC_ENAB 0x00001000
#define BCM2711_PM_GNRIC_CFG 0x007f0000
#define BCM2711_PM_AUDIO (BCM2711_PM_BASE + 0x04)
#define BCM2711_PM_AUDIO_APSM 0x000fffff
#define BCM2711_PM_AUDIO_CTRLEN 0x00100000
#define BCM2711_PM_AUDIO_RSTN 0x00200000
#define BCM2711_PM_STATUS (BCM2711_PM_BASE + 0x18)
#define BCM2711_PM_RSTC (BCM2711_PM_BASE + 0x1c)
#define BCM2711_PM_RSTC_DRCFG 0x00000003
#define BCM2711_PM_RSTC_WRCFG 0x00000030
#define BCM2711_PM_RSTC_WRCFG_FULL 0x00000020
#define BCM2711_PM_RSTC_WRCFG_CLR 0xffffffcf
#define BCM2711_PM_RSTC_SRCFG 0x00000300
#define BCM2711_PM_RSTC_QRCFG 0x00003000
#define BCM2711_PM_RSTC_FRCFG 0x00030000
#define BCM2711_PM_RSTC_HRCFG 0x00300000
#define BCM2711_PM_RSTC_RESET 0x00000102
#define BCM2711_PM_RSTS (BCM2711_PM_BASE + 0x20)
#define BCM2711_PM_RSTS_HADDRQ 0x00000001
#define BCM2711_PM_RSTS_HADDRF 0x00000002
#define BCM2711_PM_RSTS_HADDRH 0x00000004
#define BCM2711_PM_RSTS_HADWRQ 0x00000010
#define BCM2711_PM_RSTS_HADWRF 0x0000002
#define BCM2711_PM_RSTS_HADWRH 0x00000040
#define BCM2711_PM_RSTS_HADSRQ 0x00000100
#define BCM2711_PM_RSTS_HADSRF 0x00000200
#define BCM2711_PM_RSTS_HADSRH 0x00000400
#define BCM2711_PM_RSTS_HADPOR 0x00001000
#define BCM2711_PM_WDOG (BCM2711_PM_BASE + 0x24)
#define BCM2711_PM_WDOG_MASK 0x000fffff
/** @} */
/** @} */
/**
* @name AUX Registers
*
* @{
*/
#define BCM2711_AUX_BASE (RPI_PERIPHERAL_BASE + 0x215000)
#define AUX_ENABLES (BCM2711_AUX_BASE + 0x04)
#define AUX_MU_IO_REG (BCM2711_AUX_BASE + 0x40)
#define AUX_MU_IER_REG (BCM2711_AUX_BASE + 0x44)
#define AUX_MU_IIR_REG (BCM2711_AUX_BASE + 0x48)
#define AUX_MU_LCR_REG (BCM2711_AUX_BASE + 0x4C)
#define AUX_MU_MCR_REG (BCM2711_AUX_BASE + 0x50)
#define AUX_MU_LSR_REG (BCM2711_AUX_BASE + 0x54)
#define AUX_MU_MSR_REG (BCM2711_AUX_BASE + 0x58)
#define AUX_MU_SCRATCH (BCM2711_AUX_BASE + 0x5C)
#define AUX_MU_CNTL_REG (BCM2711_AUX_BASE + 0x60)
#define AUX_MU_STAT_REG (BCM2711_AUX_BASE + 0x64)
#define AUX_MU_BAUD_REG (BCM2711_AUX_BASE + 0x68)
/** @} */
/**
* @name PL011 UARTs
*
* @{
*/
#define BCM2711_PL011_BASE (RPI_PERIPHERAL_BASE + 0x201000)
#define BCM2711_PL011_SIZE 0xc00
#define BCM2711_PL011_DEVICE_SIZE 0x200
#define BCM2711_UART0_BASE (BCM2711_PL011_BASE + 0x000)
#define BCM2711_UART0_SIZE BCM2711_PL011_DEVICE_SIZE
#define BCM2711_UART2_BASE (BCM2711_PL011_BASE + 0x400)
#define BCM2711_UART2_SIZE BCM2711_PL011_DEVICE_SIZE
#define BCM2711_UART3_BASE (BCM2711_PL011_BASE + 0x600)
#define BCM2711_UART3_SIZE BCM2711_PL011_DEVICE_SIZE
#define BCM2711_UART4_BASE (BCM2711_PL011_BASE + 0x800)
#define BCM2711_UART4_SIZE BCM2711_PL011_DEVICE_SIZE
#define BCM2711_UART5_BASE (BCM2711_PL011_BASE + 0xa00)
#define BCM2711_UART5_SIZE BCM2711_PL011_DEVICE_SIZE
/** @} */
/**
* @name GPU Timer Registers
*
* @{
*/
/**
* NOTE: The GPU uses Compare registers 0 and 2 for
* it's own RTOS. 1 and 3 are available for use in
* RTEMS.
*/
#define BCM2711_GPU_TIMER_BASE (RPI_PERIPHERAL_BASE + 0x3000)
#define BCM2711_GPU_TIMER_CS (BCM2711_GPU_TIMER_BASE + 0x00)
#define BCM2711_GPU_TIMER_CS_M0 0x00000001
#define BCM2711_GPU_TIMER_CS_M1 0x00000002
#define BCM2711_GPU_TIMER_CS_M2 0x00000004
#define BCM2711_GPU_TIMER_CS_M3 0x00000008
#define BCM2711_GPU_TIMER_CLO (BCM2711_GPU_TIMER_BASE + 0x04)
#define BCM2711_GPU_TIMER_CHI (BCM2711_GPU_TIMER_BASE + 0x08)
#define BCM2711_GPU_TIMER_C0 (BCM2711_GPU_TIMER_BASE + 0x0C)
#define BCM2711_GPU_TIMER_C1 (BCM2711_GPU_TIMER_BASE + 0x10)
#define BCM2711_GPU_TIMER_C2 (BCM2711_GPU_TIMER_BASE + 0x14)
#define BCM2711_GPU_TIMER_C3 (BCM2711_GPU_TIMER_BASE + 0x18)
/**
* NOTE: compatible with the BCM2835 system timer
*/
#define BCM2835_GPU_TIMER_CS_M3 BCM2711_GPU_TIMER_CS_M3
#define BCM2835_GPU_TIMER_C3 BCM2711_GPU_TIMER_C3
#define BCM2835_GPU_TIMER_CLO BCM2711_GPU_TIMER_CLO
#define BCM2835_GPU_TIMER_CS BCM2711_GPU_TIMER_CS
/** @} */
/**
* @name GPIO Registers
*
* @{
*/
#define BCM2711_GPIO_BASE (RPI_PERIPHERAL_BASE + 0x200000)
#define BCM2711_GPIO_SIZE 0xf4
#define BCM2711_GPIO_PIN_COUNT 58
/** @} */
/**
* @name EMMC Registers
*
* @{
*/
/**
* NOTE: Since the SD controller follows the SDHCI standard,
* the rtems-libbsd tree already provides the remaining registers.
*/
#define BCM2711_EMMC_BASE (RPI_PERIPHERAL_BASE + 0x300000)
/** @} */
/**
* @name SPI Registers
*
* @{
*/
#define BCM2711_SPI0_BASE (RPI_PERIPHERAL_BASE + 0x204000)
#define BCM2711_SPI3_BASE (RPI_PERIPHERAL_BASE + 0x204600)
#define BCM2711_SPI4_BASE (RPI_PERIPHERAL_BASE + 0x204800)
#define BCM2711_SPI5_BASE (RPI_PERIPHERAL_BASE + 0x204A00)
#define BCM2711_SPI6_BASE (RPI_PERIPHERAL_BASE + 0x204C00)
/** @} */
/**
* @name Mailbox Registers
*
* @{
*/
#define BCM2711_MBOX_BASE (RPI_PERIPHERAL_BASE+0xB880)
#define BCM2711_MBOX_READ (BCM2711_MBOX_BASE+0x00)
#define BCM2711_MBOX_PEEK (BCM2711_MBOX_BASE+0x10)
#define BCM2711_MBOX_SENDER (BCM2711_MBOX_BASE+0x14)
#define BCM2711_MBOX_STATUS (BCM2711_MBOX_BASE+0x18)
#define BCM2711_MBOX_WRITE (BCM2711_MBOX_BASE+0x20)
#define BCM2711_MBOX_CONFIG (BCM2711_MBOX_BASE+0x1C)
#define BCM2711_MBOX_RESPONSE 0x80000000
#define BCM2711_MBOX_FULL 0x80000000
#define BCM2711_MBOX_EMPTY 0x40000000
/** @} */
/**
* @name Mailbox Channels
*
* @{
*/
/* Power Manager channel */
#define BCM2711_MBOX_CHANNEL_PM 0
/* Framebuffer channel */
#define BCM2711_MBOX_CHANNEL_FB 1
/* Virtual UART channel */
#define BCM2711_MBOX_CHANNEL_VUART 2
/* VCHIQ channel */
#define BCM2711_MBOX_CHANNEL_VCHIQ 3
/* LEDs channel */
#define BCM2711_MBOX_CHANNEL_LED 4
/* Button channel */
#define BCM2711_MBOX_CHANNEL_BUTTON 5
/* Touch screen channel */
#define BCM2711_MBOX_CHANNEL_TOUCHS 6
#define BCM2711_MBOX_CHANNEL_COUNT 7
/* Property tags (ARM <-> VC) channel */
#define BCM2711_MBOX_CHANNEL_PROP_AVC 8
/* Property tags (VC <-> ARM) channel */
#define BCM2711_MBOX_CHANNEL_PROP_VCA 9
/** @} */
/**
* @name Raspberry Pi 2 Interrupt Register Defines
*
* @{
*/
/* Timers interrupt control registers */
#define BCM2711_CORE0_TIMER_IRQ_CTRL_BASE 0xFF800040
#define BCM2711_CORE1_TIMER_IRQ_CTRL_BASE 0xFF800044
#define BCM2711_CORE2_TIMER_IRQ_CTRL_BASE 0xFF800048
#define BCM2711_CORE3_TIMER_IRQ_CTRL_BASE 0xFF80004C
#define BCM2711_CORE_TIMER_IRQ_CTRL(cpuidx) \
(BCM2711_CORE0_TIMER_IRQ_CTRL_BASE + 0x4 * (cpuidx))
/**
* @name Raspberry Pi 4 ARM_LOCAL registers
*
* @{
*/
#define BCM2711_LOCAL_REGS_BASE 0x4C0000000
#define BCM2711_LOCAL_REGS_SIZE 0x100
#define BCM2711_LOCAL_ARM_CONTROL (BCM2711_LOCAL_REGS_BASE + 0x00)
#define BCM2711_LOCAL_CORE_IRQ_CONTROL (BCM2711_LOCAL_REGS_BASE + 0x0c)
#define BCM2711_LOCAL_PMU_CONTROL_SET (BCM2711_LOCAL_REGS_BASE + 0x10)
#define BCM2711_LOCAL_PMU_CONTROL_CLR (BCM2711_LOCAL_REGS_BASE + 0x14)
#define BCM2711_LOCAL_PERI_IRQ_ROUTE0 (BCM2711_LOCAL_REGS_BASE + 0x24)
#define BCM2711_LOCAL_AXI_QUIET_TIME (BCM2711_LOCAL_REGS_BASE + 0x30)
#define BCM2711_LOCAL_LOCAL_TIMER_CONTROL (BCM2711_LOCAL_REGS_BASE + 0x34)
#define BCM2711_LOCAL_LOCAL_TIMER_IRQ (BCM2711_LOCAL_REGS_BASE + 0x38)
#define BCM2711_LOCAL_TIMER_CNTRL0 (BCM2711_LOCAL_REGS_BASE + 0x40)
#define BCM2711_LOCAL_TIMER_CNTRL1 (BCM2711_LOCAL_REGS_BASE + 0x44)
#define BCM2711_LOCAL_TIMER_CNTRL2 (BCM2711_LOCAL_REGS_BASE + 0x48)
#define BCM2711_LOCAL_TIMER_CNTRL3 (BCM2711_LOCAL_REGS_BASE + 0x4c)
#define BCM2711_LOCAL_MAILBOX_CNTRL0 (BCM2711_LOCAL_REGS_BASE + 0x50)
#define BCM2711_LOCAL_MAILBOX_CNTRL1 (BCM2711_LOCAL_REGS_BASE + 0x54)
#define BCM2711_LOCAL_MAILBOX_CNTRL2 (BCM2711_LOCAL_REGS_BASE + 0x58)
#define BCM2711_LOCAL_MAILBOX_CNTRL3 (BCM2711_LOCAL_REGS_BASE + 0x5c)
#define BCM2711_LOCAL_IRQ_SOURCE0 (BCM2711_LOCAL_REGS_BASE + 0x60)
#define BCM2711_LOCAL_IRQ_SOURCE1 (BCM2711_LOCAL_REGS_BASE + 0x64)
#define BCM2711_LOCAL_IRQ_SOURCE2 (BCM2711_LOCAL_REGS_BASE + 0x68)
#define BCM2711_LOCAL_IRQ_SOURCE3 (BCM2711_LOCAL_REGS_BASE + 0x6c)
#define BCM2711_LOCAL_FIQ_SOURCE0 (BCM2711_LOCAL_REGS_BASE + 0x70)
#define BCM2711_LOCAL_FIQ_SOURCE1 (BCM2711_LOCAL_REGS_BASE + 0x74)
#define BCM2711_LOCAL_FIQ_SOURCE2 (BCM2711_LOCAL_REGS_BASE + 0x78)
#define BCM2711_LOCAL_FIQ_SOURCE3 (BCM2711_LOCAL_REGS_BASE + 0x7c)
/**
* @name Raspberry Pi 4 Mailbox registers
*
* @{
*/
#define BCM2711_MAILBOX_00_WRITE_SET_BASE 0x4C000080
#define BCM2711_MAILBOX_01_WRITE_SET_BASE 0x4C000084
#define BCM2711_MAILBOX_02_WRITE_SET_BASE 0x4C000088
#define BCM2711_MAILBOX_03_WRITE_SET_BASE 0x4C00008C
#define BCM2711_MAILBOX_04_WRITE_SET_BASE 0x4C000090
#define BCM2711_MAILBOX_05_WRITE_SET_BASE 0x4C000094
#define BCM2711_MAILBOX_06_WRITE_SET_BASE 0x4C000098
#define BCM2711_MAILBOX_07_WRITE_SET_BASE 0x4C00009C
#define BCM2711_MAILBOX_08_WRITE_SET_BASE 0x4C0000A0
#define BCM2711_MAILBOX_09_WRITE_SET_BASE 0x4C0000A4
#define BCM2711_MAILBOX_10_WRITE_SET_BASE 0x4C0000A8
#define BCM2711_MAILBOX_11_WRITE_SET_BASE 0x4C0000AC
#define BCM2711_MAILBOX_12_WRITE_SET_BASE 0x4C0000B0
#define BCM2711_MAILBOX_13_WRITE_SET_BASE 0x4C0000B4
#define BCM2711_MAILBOX_14_WRITE_SET_BASE 0x4C0000B8
#define BCM2711_MAILBOX_15_WRITE_SET_BASE 0x4C0000BC
#define BCM2711_MAILBOX_00_READ_CLEAR_BASE 0x4C0000C0
#define BCM2711_MAILBOX_01_READ_CLEAR_BASE 0x4C0000C4
#define BCM2711_MAILBOX_02_READ_CLEAR_BASE 0x4C0000C8
#define BCM2711_MAILBOX_03_READ_CLEAR_BASE 0x4C0000CC
#define BCM2711_MAILBOX_04_READ_CLEAR_BASE 0x4C0000D0
#define BCM2711_MAILBOX_05_READ_CLEAR_BASE 0x4C0000D4
#define BCM2711_MAILBOX_06_READ_CLEAR_BASE 0x4C0000D8
#define BCM2711_MAILBOX_07_READ_CLEAR_BASE 0x4C0000DC
#define BCM2711_MAILBOX_08_READ_CLEAR_BASE 0x4C0000E0
#define BCM2711_MAILBOX_09_READ_CLEAR_BASE 0x4C0000E4
#define BCM2711_MAILBOX_10_READ_CLEAR_BASE 0x4C0000E8
#define BCM2711_MAILBOX_11_READ_CLEAR_BASE 0x4C0000EC
#define BCM2711_MAILBOX_12_READ_CLEAR_BASE 0x4C0000F0
#define BCM2711_MAILBOX_13_READ_CLEAR_BASE 0x4C0000F4
#define BCM2711_MAILBOX_14_READ_CLEAR_BASE 0x4C0000F8
#define BCM2711_MAILBOX_15_READ_CLEAR_BASE 0x4C0000FC
/**
* @name Raspberry Pi 4 ARM_C FIQ and IRQ registers
*
* @{
*/
#define BCM2711_ARMC_REGS_BASE (RPI_PERIPHERAL_BASE + 0xB200)
#define BCM2711_ARMC_REGS_SIZE 0x200
#define BCM2711_ARMC_IRQ0_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x00)
#define BCM2711_ARMC_IRQ0_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x04)
#define BCM2711_ARMC_IRQ0_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x08)
#define BCM2711_ARMC_IRQ0_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x10)
#define BCM2711_ARMC_IRQ0_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x14)
#define BCM2711_ARMC_IRQ0_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x18)
#define BCM2711_ARMC_IRQ0_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x20)
#define BCM2711_ARMC_IRQ0_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x24)
#define BCM2711_ARMC_IRQ0_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x28)
#define BCM2711_ARMC_IRQ_STATUS0 (BCM2711_ARMC_REGS_BASE + 0x30)
#define BCM2711_ARMC_IRQ_STATUS1 (BCM2711_ARMC_REGS_BASE + 0x34)
#define BCM2711_ARMC_IRQ_STATUS2 (BCM2711_ARMC_REGS_BASE + 0x38)
#define BCM2711_ARMC_IRQ1_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x40)
#define BCM2711_ARMC_IRQ1_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x44)
#define BCM2711_ARMC_IRQ1_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x48)
#define BCM2711_ARMC_IRQ1_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x50)
#define BCM2711_ARMC_IRQ1_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x54)
#define BCM2711_ARMC_IRQ1_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x58)
#define BCM2711_ARMC_IRQ1_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x60)
#define BCM2711_ARMC_IRQ1_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x64)
#define BCM2711_ARMC_IRQ1_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x68)
#define BCM2711_ARMC_IRQ2_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x80)
#define BCM2711_ARMC_IRQ2_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x84)
#define BCM2711_ARMC_IRQ2_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x88)
#define BCM2711_ARMC_IRQ2_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x90)
#define BCM2711_ARMC_IRQ2_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x94)
#define BCM2711_ARMC_IRQ2_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x98)
#define BCM2711_ARMC_IRQ2_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0xA0)
#define BCM2711_ARMC_IRQ2_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0xA4)
#define BCM2711_ARMC_IRQ2_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0xA8)
#define BCM2711_ARMC_IRQ3_PENDING0 (BCM2711_ARMC_REGS_BASE + 0xC0)
#define BCM2711_ARMC_IRQ3_PENDING1 (BCM2711_ARMC_REGS_BASE + 0xC4)
#define BCM2711_ARMC_IRQ3_PENDING2 (BCM2711_ARMC_REGS_BASE + 0xC8)
#define BCM2711_ARMC_IRQ3_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0xD0)
#define BCM2711_ARMC_IRQ3_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0xD4)
#define BCM2711_ARMC_IRQ3_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0xD8)
#define BCM2711_ARMC_IRQ3_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0xE0)
#define BCM2711_ARMC_IRQ3_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0xE4)
#define BCM2711_ARMC_IRQ3_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0xE8)
#define BCM2711_ARMC_FIQ0_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x100)
#define BCM2711_ARMC_FIQ0_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x104)
#define BCM2711_ARMC_FIQ0_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x108)
#define BCM2711_ARMC_FIQ0_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x110)
#define BCM2711_ARMC_FIQ0_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x114)
#define BCM2711_ARMC_FIQ0_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x118)
#define BCM2711_ARMC_FIQ0_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x120)
#define BCM2711_ARMC_FIQ0_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x124)
#define BCM2711_ARMC_FIQ0_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x128)
#define BCM2711_ARMC_FIQ1_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x140)
#define BCM2711_ARMC_FIQ1_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x144)
#define BCM2711_ARMC_FIQ1_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x148)
#define BCM2711_ARMC_FIQ1_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x150)
#define BCM2711_ARMC_FIQ1_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x154)
#define BCM2711_ARMC_FIQ1_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x158)
#define BCM2711_ARMC_FIQ1_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x160)
#define BCM2711_ARMC_FIQ1_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x164)
#define BCM2711_ARMC_FIQ1_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x168)
#define BCM2711_ARMC_FIQ2_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x180)
#define BCM2711_ARMC_FIQ2_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x184)
#define BCM2711_ARMC_FIQ2_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x188)
#define BCM2711_ARMC_FIQ2_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x190)
#define BCM2711_ARMC_FIQ2_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x194)
#define BCM2711_ARMC_FIQ2_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x198)
#define BCM2711_ARMC_FIQ2_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x1A0)
#define BCM2711_ARMC_FIQ2_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x1A4)
#define BCM2711_ARMC_FIQ2_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x1A8)
#define BCM2711_ARMC_FIQ3_PENDING0 (BCM2711_ARMC_REGS_BASE + 0x1C0)
#define BCM2711_ARMC_FIQ3_PENDING1 (BCM2711_ARMC_REGS_BASE + 0x1C4)
#define BCM2711_ARMC_FIQ3_PENDING2 (BCM2711_ARMC_REGS_BASE + 0x1C8)
#define BCM2711_ARMC_FIQ3_SET_EN_0 (BCM2711_ARMC_REGS_BASE + 0x1D0)
#define BCM2711_ARMC_FIQ3_SET_EN_1 (BCM2711_ARMC_REGS_BASE + 0x1D4)
#define BCM2711_ARMC_FIQ3_SET_EN_2 (BCM2711_ARMC_REGS_BASE + 0x1D8)
#define BCM2711_ARMC_FIQ3_CLR_EN_0 (BCM2711_ARMC_REGS_BASE + 0x1E0)
#define BCM2711_ARMC_FIQ3_CLR_EN_1 (BCM2711_ARMC_REGS_BASE + 0x1E4)
#define BCM2711_ARMC_FIQ3_CLR_EN_2 (BCM2711_ARMC_REGS_BASE + 0x1E8)
#define BCM2711_ARMC_SWIRQ_SET (BCM2711_ARMC_REGS_BASE + 0x1F0)
#define BCM2711_ARMC_SWIRQ_CLEAR (BCM2711_ARMC_REGS_BASE + 0x1F4)
/** @} */
#endif /* LIBBSP_ARM_RASPBERRYPI_RASPBERRYPI_H */

View File

@@ -1,118 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64RaspberryPi
*
* @brief Raspberry Pi 4B specific GPIO definitions.
*/
/*
* Copyright (C) 2023 Utkarsh Verma
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_RPI_GPIO_H
#define LIBBSP_AARCH64_RASPBERRYPI_BSP_RPI_GPIO_H
#include <bspopts.h>
#include <rtems/rtems/status.h>
/**
* @brief Raspberry Pi GPIO functions.
*/
typedef enum {
GPIO_INPUT,
GPIO_OUTPUT,
GPIO_AF5,
GPIO_AF4,
GPIO_AF0,
GPIO_AF1,
GPIO_AF2,
GPIO_AF3,
} raspberrypi_gpio_function;
typedef enum {
GPIO_PULL_NONE,
GPIO_PULL_UP,
GPIO_PULL_DOWN,
} raspberrypi_gpio_pull;
/**
* @brief Set the operation of the general-purpose I/O pins. Each of the 58
* GPIO pins has at least two alternative functions as defined.
*
* @param pin The GPIO pin.
* @param value The optional functions are GPIO_INPUT, GPIO_OUTPUT, GPIO_AF5,
* GPIO_AF4, GPIO_AF0, GPIO_AF1, GPIO_AF2, GPIO_AF3.
*
* @retval RTEMS_SUCCESSFUL GPIO function successfully configured.
* @retval RTEMS_INVALID_NUMBER This status code indicates that a specified
* number was invalid.
*/
rtems_status_code raspberrypi_gpio_set_function(
const unsigned int pin,
const raspberrypi_gpio_function value
);
/**
* @brief Set a GPIO pin.
*
* @param pin The GPIO pin.
*
* @retval RTEMS_SUCCESSFUL GPIO pin set successfully.
* @retval RTEMS_INVALID_NUMBER This status code indicates that a specified
* number was invalid.
*/
rtems_status_code raspberrypi_gpio_set_pin(const unsigned int pin);
/**
* @brief Clear a GPIO pin.
*
* @param pin The GPIO pin.
*
* @retval RTEMS_SUCCESSFUL GPIO pin clear successfully.
* @retval RTEMS_INVALID_NUMBER This status code indicates that a specified
* number was invalid.
*/
rtems_status_code raspberrypi_gpio_clear_pin(const unsigned int pin);
/**
* @brief Control the actuation of the internal pull-up/down resistors.
*
* @param pin The GPIO pin.
* @param value The optional value are GPIO_PULL_NONE, GPIO_PULL_UP,
* GPIO_PULL_DOWN.
*
* @retval RTEMS_SUCCESSFUL GPIO pull set successfully.
* @retval RTEMS_INVALID_NUMBER This status code indicates that a specified
* number was invalid.
*/
rtems_status_code raspberrypi_gpio_set_pull(
const unsigned int pin,
const raspberrypi_gpio_pull value
);
#endif /* LIBBSP_AARCH64_RASPBERRYPI_BSP_RPI_GPIO_H */

View File

@@ -1,97 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64RaspberryPi
*
* @brief API of the Watchdog driver for the raspberrypi4 bsp in RTEMS.
*/
/*
* Copyright (C) 2024 Ning Yang
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_RPI_WATCHDOG_H
#define LIBBSP_AARCH64_RASPBERRYPI_BSP_RPI_WATCHDOG_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* @note a brief example of expected usage.
*
* void raspberrypi_watchdog_example()
* {
* raspberrypi_watchdog_init();
* raspberrypi_watchdog_start(15000);
*
* raspberrypi_watchdog_reload();
* ...
* raspberrypi_watchdog_reload();
*
* raspberrypi_watchdog_stop();
* }
*
*/
/**
* @brief Initialize BSP watchdog routines.
*/
void raspberrypi_watchdog_init(void);
/**
* @brief Turn on the watchdog / begin the counter at the desired value.
*
* @param timeout Watchdog timeout value in ms.
* The watchdog device has 20 bits of timeout, so it only
* supports a maximum of 15999 ms for its timeout.
* This value should be between 0 and 15999.
*/
void raspberrypi_watchdog_start(uint32_t timeout_ms);
/**
* @brief Turn off the watchdog.
*/
void raspberrypi_watchdog_stop(void);
/**
* @brief Reload watchdog.
*/
void raspberrypi_watchdog_reload(void);
/**
* @brief Get the remaining time of the watchdog.
* The return value is still valid when the watchdog has been stopped.
*
* @retval Watchdog remaining time in ms.
*/
uint32_t raspberrypi_watchdog_get_remaining_time(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,46 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Raspberrypi4
*
* @brief BSP tm27 header
*/
/*
* Copyright (C) 2022 Mohd Noor Aman
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
#include <dev/irq/arm-gic-tm27.h>
#endif /* __tm27_h */

View File

@@ -1,582 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Raspberrypi4
*
* @brief SPI Driver
*/
/*
* Copyright (C) 2024 Ning Yang
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp/irq.h>
#include <bsp/raspberrypi.h>
#include <bsp/raspberrypi-spi.h>
#include <bsp/rpi-gpio.h>
#include <dev/spi/spi.h>
#include <bspopts.h>
typedef struct {
spi_bus base;
volatile raspberrypi_spi *regs;
const spi_ioc_transfer *msg;
uint32_t msg_todo;
uint8_t *rx_buf;
const uint8_t *tx_buf;
uint32_t todo;
uint8_t num_cs;
uint32_t in_transfer;
rtems_id task_id;
rtems_vector_number irq;
}raspberrypi_spi_bus;
static int raspberrypi_spi_check_msg(
raspberrypi_spi_bus *bus,
const spi_ioc_transfer *msg,
uint32_t n
)
{
while (n > 0) {
if (msg->bits_per_word != 8) {
return -EINVAL;
}
if ((msg->mode &
~(SPI_CPHA | SPI_CPOL | SPI_NO_CS)) != 0) {
return -EINVAL;
}
if (msg->cs >= bus->num_cs) {
return -EINVAL;
}
++msg;
--n;
}
return 0;
}
/* Calculates a clock divider to be used with the GPU core clock rate
* to set a SPI clock rate the closest (<=) to a desired frequency. */
static rtems_status_code rpi_spi_calculate_clock_divider(
uint32_t clock_hz,
uint16_t *clock_divider
)
{
uint16_t divider;
uint32_t clock_rate;
/* Calculates an initial clock divider. */
divider = GPU_CORE_CLOCK_RATE / clock_hz;
/* Because the divider must be a power of two (as per the BCM2835 datasheet),
* calculate the next greater power of two. */
--divider;
divider |= (divider >> 1);
divider |= (divider >> 2);
divider |= (divider >> 4);
divider |= (divider >> 8);
++divider;
clock_rate = GPU_CORE_CLOCK_RATE / divider;
/* If the resulting clock rate is greater than the desired frequency,
* try the next greater power of two divider. */
while (clock_rate > clock_hz) {
divider = (divider << 1);
clock_rate = GPU_CORE_CLOCK_RATE / divider;
}
*clock_divider = divider;
return RTEMS_SUCCESSFUL;
}
static int raspberrypi_spi_config(
raspberrypi_spi_bus *bus,
volatile raspberrypi_spi *regs,
uint32_t speed_hz,
uint32_t mode,
uint8_t cs
)
{
spi_bus *base = &bus->base;
uint32_t spics = regs->spics;
rtems_status_code sc;
uint16_t clock_divider;
/* Calculate the most appropriate clock divider. */
sc = rpi_spi_calculate_clock_divider(speed_hz, &clock_divider);
if (sc != RTEMS_SUCCESSFUL) {
return sc;
}
/* Set the bus clock divider. */
regs->spiclk = RPI_SPICLK_CDIV_SET(regs->spiclk, clock_divider);
if ((mode & SPI_CPHA) != 0) {
spics |= RPI_SPICS_CPHA;
} else {
spics &= ~RPI_SPICS_CPHA;
}
if ((mode & SPI_CPOL) != 0) {
spics |= RPI_SPICS_CPOL;
} else {
spics &= ~RPI_SPICS_CPOL;
}
if ((mode & SPI_CS_HIGH) != 0) {
spics |= RPI_SPICS_CSPOL;
} else {
spics &= ~RPI_SPICS_CSPOL;
}
spics = RPI_SPICS_CS_SET(spics, cs);
regs->spics = spics;
base->speed_hz = speed_hz;
base->mode = mode;
base->cs = cs;
return 0;
}
#ifdef BSP_SPI_USE_INTERRUPTS
static void raspberrypi_spi_done(raspberrypi_spi_bus *bus)
{
volatile raspberrypi_spi *regs;
regs = bus->regs;
regs->spics = regs->spics & ~RPI_SPICS_TA;
rtems_event_transient_send(bus->task_id);
}
static bool raspberrpi_spi_TX_FULL(volatile raspberrypi_spi *regs)
{
return !(regs->spics & RPI_SPICS_TXD);
}
static void raspberrypi_spi_push(
raspberrypi_spi_bus *bus,
volatile raspberrypi_spi *regs
)
{
uint8_t val;
while (bus->todo > 0 && !raspberrpi_spi_TX_FULL(regs)) {
val = 0;
if (bus->tx_buf != NULL) {
val = *bus->tx_buf;
++bus->tx_buf;
}
--bus->todo;
regs->spififo = val;
++bus->in_transfer;
}
}
static void raspberrypi_spi_next_msg(raspberrypi_spi_bus *bus)
{
const spi_ioc_transfer *msg;
spi_bus *base;
volatile raspberrypi_spi *regs;
regs=bus->regs;
if (bus->msg_todo > 0) {
base = &bus->base;
msg = bus->msg;
if (
msg->speed_hz != base->speed_hz
|| msg->mode != base->mode
|| msg->cs != base->cs
) {
raspberrypi_spi_config(
bus,
regs,
msg->speed_hz,
msg->mode,
msg->cs
);
}
bus->todo = msg->len;
bus->rx_buf = msg->rx_buf;
bus->tx_buf = msg->tx_buf;
raspberrypi_spi_push(bus, regs);
} else {
raspberrypi_spi_done(bus);
}
}
static void raspberrypi_spi_start(raspberrypi_spi_bus *bus)
{
volatile raspberrypi_spi *regs;
regs = bus->regs;
regs->spics = regs->spics | RPI_SPICS_INTR | RPI_SPICS_INTD;
/*
* Set TA = 1. This will immediately trigger a first interrupt with
* DONE = 1.
*/
regs->spics = regs->spics | RPI_SPICS_TA;
}
static bool raspberrypi_spi_irq(volatile raspberrypi_spi *regs)
{
/* Check whether the interrupt is generated by this SPI device */
if(regs->spics & RPI_SPICS_INTD && regs->spics & RPI_SPICS_DONE) {
return 1;
}
if(regs->spics & RPI_SPICS_INTR && regs->spics & RPI_SPICS_RXR) {
return 1;
}
return 0;
}
static void raspberrypi_spi_interrupt(void *arg)
{
raspberrypi_spi_bus *bus;
volatile raspberrypi_spi *regs;
uint32_t val;
bus = arg;
regs = bus->regs;
if (raspberrypi_spi_irq(regs)) {
if (bus->todo > 0) {
raspberrypi_spi_push(bus, regs);
} else {
--bus->msg_todo;
++bus->msg;
raspberrypi_spi_next_msg(bus);
}
while (regs->spics & RPI_SPICS_RXD && bus->in_transfer > 0) {
/* RX FIFO contains at least 1 byte. */
val = regs->spififo;
if (bus->rx_buf != NULL) {
*bus->rx_buf = (uint8_t)val;
++bus->rx_buf;
}
--bus->in_transfer;
}
}
}
#else
static void raspberrypi_spi_polling_tx_rx(raspberrypi_spi_bus *bus)
{
volatile raspberrypi_spi *regs = bus->regs;
const unsigned char *sbuffer = bus->tx_buf;
unsigned char *rbuffer;
unsigned int size;
unsigned int read_count, write_count;
unsigned int data;
while (bus->msg_todo) {
rbuffer = bus->rx_buf;
size = bus->todo;
regs->spics = regs->spics | RPI_SPICS_CLEAR_RX | RPI_SPICS_CLEAR_TX
| RPI_SPICS_TA;
read_count = 0;
write_count = 0;
while (read_count < size || write_count < size) {
if (write_count < size && regs->spics & RPI_SPICS_TXD) {
if (sbuffer) {
regs->spififo = *sbuffer++;
} else {
regs->spififo = 0;
}
write_count++;
}
if (read_count < size && regs->spics & RPI_SPICS_RXD) {
data = regs->spififo;
if (rbuffer) {
*rbuffer++ = data;
}
read_count++;
}
}
while (!(regs->spics & RPI_SPICS_DONE)) {
/*wait*/
}
regs->spics = (regs->spics & ~RPI_SPICS_TA);
bus->msg_todo--;
bus->msg++;
bus->rx_buf = bus->msg->rx_buf;
bus->tx_buf = bus->msg->tx_buf;
bus->todo = bus->msg->len;
}
}
static void raspberrypi_spi_transfer_msg(
raspberrypi_spi_bus *bus
)
{
volatile raspberrypi_spi *regs = bus->regs;
uint32_t msg_todo = bus->msg_todo;
const spi_ioc_transfer *msg = bus->msg;
if (msg_todo > 0) {
if (
msg->speed_hz != bus->base.speed_hz
|| msg->mode != bus->base.mode
|| msg->cs != bus->base.cs
) {
raspberrypi_spi_config(
bus,
regs,
msg->speed_hz,
msg->mode,
msg->cs
);
}
bus->todo = msg->len;
bus->rx_buf = msg->rx_buf;
bus->tx_buf = msg->tx_buf;
raspberrypi_spi_polling_tx_rx(bus);
}
}
#endif
static int raspberrypi_spi_transfer(
spi_bus *base,
const spi_ioc_transfer *msgs,
uint32_t msg_count
)
{
int rv = 0;
raspberrypi_spi_bus *bus;
bus = (raspberrypi_spi_bus *) base;
rv = raspberrypi_spi_check_msg(bus, msgs, msg_count);
if (rv == 0) {
bus->msg_todo = msg_count;
bus->msg = msgs;
#ifdef BSP_SPI_USE_INTERRUPTS
bus->task_id = rtems_task_self();
raspberrypi_spi_start(bus);
rtems_event_transient_receive(RTEMS_WAIT, RTEMS_NO_TIMEOUT);
#else
raspberrypi_spi_transfer_msg(bus);
#endif
}
return rv;
}
static void raspberrypi_spi_destroy(spi_bus *base)
{
raspberrypi_spi_bus *bus;
bus = (raspberrypi_spi_bus *) base;
#ifdef BSP_SPI_USE_INTERRUPTS
rtems_interrupt_handler_remove(
bus->irq,
raspberrypi_spi_interrupt,
bus
);
#endif
spi_bus_destroy_and_free(&bus->base);
}
static int raspberrypi_spi_setup(spi_bus *base)
{
raspberrypi_spi_bus *bus;
uint32_t mode = base->mode;
bus = (raspberrypi_spi_bus *) base;
if (mode & SPI_LOOP) {
return -EINVAL;
}
return raspberrypi_spi_config(
bus,
bus->regs,
bus->base.speed_hz,
bus->base.mode,
bus->base.cs
);
}
static rtems_status_code raspberrypi_spi_init_gpio(
raspberrypi_spi_device device
)
{
switch (device) {
case raspberrypi_SPI0:
raspberrypi_gpio_set_function(7, GPIO_AF0); /* CS1 */
raspberrypi_gpio_set_pull(7, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(8, GPIO_AF0); /* CS0 */
raspberrypi_gpio_set_pull(8, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(9, GPIO_AF0); /* MISO */
raspberrypi_gpio_set_function(10, GPIO_AF0); /* MOSI */
raspberrypi_gpio_set_function(11, GPIO_AF0); /* SCLK */
break;
case raspberrypi_SPI3:
raspberrypi_gpio_set_function(24, GPIO_AF5);
raspberrypi_gpio_set_pull(24, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(0, GPIO_AF3);
raspberrypi_gpio_set_pull(0, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(1, GPIO_AF3);
raspberrypi_gpio_set_function(2, GPIO_AF3);
raspberrypi_gpio_set_function(3, GPIO_AF3);
break;
case raspberrypi_SPI4:
raspberrypi_gpio_set_function(25, GPIO_AF5);
raspberrypi_gpio_set_pull(25, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(4, GPIO_AF3);
raspberrypi_gpio_set_pull(4, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(5, GPIO_AF3);
raspberrypi_gpio_set_function(6, GPIO_AF3);
raspberrypi_gpio_set_function(7, GPIO_AF3);
break;
case raspberrypi_SPI5:
raspberrypi_gpio_set_function(26, GPIO_AF5);
raspberrypi_gpio_set_pull(26, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(12, GPIO_AF3);
raspberrypi_gpio_set_pull(12, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(13, GPIO_AF3);
raspberrypi_gpio_set_function(14, GPIO_AF3);
raspberrypi_gpio_set_function(15, GPIO_AF3);
break;
case raspberrypi_SPI6:
raspberrypi_gpio_set_function(27, GPIO_AF5);
raspberrypi_gpio_set_pull(27, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(18, GPIO_AF3);
raspberrypi_gpio_set_pull(18, GPIO_PULL_NONE);
raspberrypi_gpio_set_function(19, GPIO_AF3);
raspberrypi_gpio_set_function(20, GPIO_AF3);
raspberrypi_gpio_set_function(21, GPIO_AF3);
break;
default:
return RTEMS_INVALID_NUMBER;
break;
}
return RTEMS_SUCCESSFUL;
}
rtems_status_code raspberrypi_spi_init(raspberrypi_spi_device device)
{
raspberrypi_spi_bus *bus;
int eno;
volatile raspberrypi_spi *regs;
const char *bus_path;
bus = (raspberrypi_spi_bus *) spi_bus_alloc_and_init(sizeof(*bus));
if (bus == NULL) {
return RTEMS_UNSATISFIED;
}
switch (device) {
case raspberrypi_SPI0:
regs = (volatile raspberrypi_spi *) BCM2711_SPI0_BASE;
bus_path = "/dev/spidev0";
break;
case raspberrypi_SPI3:
regs = (volatile raspberrypi_spi *) BCM2711_SPI3_BASE;
bus_path = "/dev/spidev3";
break;
case raspberrypi_SPI4:
regs = (volatile raspberrypi_spi *) BCM2711_SPI4_BASE;
bus_path = "/dev/spidev4";
break;
case raspberrypi_SPI5:
regs = (volatile raspberrypi_spi *) BCM2711_SPI5_BASE;
bus_path = "/dev/spidev5";
break;
case raspberrypi_SPI6:
regs = (volatile raspberrypi_spi *) BCM2711_SPI6_BASE;
bus_path = "/dev/spidev6";
break;
default:
spi_bus_destroy_and_free(&bus->base);
return RTEMS_INVALID_NUMBER;
break;
}
bus->regs = regs;
bus->num_cs = 2;
bus->base.transfer = raspberrypi_spi_transfer;
bus->base.destroy = raspberrypi_spi_destroy;
bus->base.setup = raspberrypi_spi_setup;
bus->base.bits_per_word = 8;
bus->base.max_speed_hz = 250000000;
bus->base.cs = 0;
#ifdef BSP_SPI_USE_INTERRUPTS
bus->irq = BCM2711_IRQ_SPI;
eno = rtems_interrupt_handler_install(
bus->irq,
"SPI",
RTEMS_INTERRUPT_SHARED,
raspberrypi_spi_interrupt,
bus
);
if (eno != RTEMS_SUCCESSFUL) {
return EAGAIN;
}
#endif
eno = spi_bus_register(&bus->base, bus_path);
if (eno != 0) {
spi_bus_destroy_and_free(&bus->base);
return RTEMS_UNSATISFIED;
}
eno = raspberrypi_spi_init_gpio(device);
if (eno != 0) {
spi_bus_destroy_and_free(&bus->base);
return RTEMS_INVALID_NUMBER;
}
return RTEMS_SUCCESSFUL;
}

View File

@@ -1,49 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Raspberrypi4
*
* @brief BSP Startup
*/
/*
* Copyright (C) 2022 Mohd Noor Aman
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp.h>
#include <bsp/bootcard.h>
#include <bsp/irq-generic.h>
#include <bsp/linker-symbols.h>
void bsp_start( void )
{
bsp_interrupt_initialize();
rtems_cache_coherent_add_area(
bsp_section_nocacheheap_begin,
(uintptr_t) bsp_section_nocacheheap_size
);
}

View File

@@ -1,55 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Raspberrypi4
*
* @brief BSP Startup Hooks
*/
/*
* Copyright (C) 2022 Mohd Noor Aman
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp.h>
#include <bsp/irq-generic.h>
#include <bsp/start.h>
#include <rtems/score/cpu.h>
#ifdef BSP_START_ENABLE_EL3_START_SUPPORT
BSP_START_TEXT_SECTION void bsp_start_hook_0(void)
{
/* Do nothing */
}
#endif
BSP_START_TEXT_SECTION void bsp_start_hook_1(void)
{
AArch64_start_set_vector_base();
bsp_start_copy_sections();
raspberrypi_4_setup_mmu_and_cache();
bsp_start_clear_bss();
}

View File

@@ -1,87 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Raspberrypi4
*
* @brief This source file contains the default MMU tables and setup.
*/
/*
* Copyright (C) 2022 Mohd Noor Aman
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp.h>
#include <bsp/start.h>
#include <bsp/aarch64-mmu.h>
#include <bsp/raspberrypi.h>
#include <libcpu/mmu-vmsav8-64.h>
BSP_START_DATA_SECTION static const aarch64_mmu_config_entry
raspberrypi_4_mmu_config_table[] = {
AARCH64_MMU_DEFAULT_SECTIONS,
{ /* RPI peripheral address */
.begin = (unsigned)RPI_PERIPHERAL_BASE,
.end = (unsigned)RPI_PERIPHERAL_BASE + (unsigned)RPI_PERIPHERAL_SIZE,
.flags = AARCH64_MMU_DEVICE
},
{ /* RPI ARM local registers */
.begin = (unsigned)BCM2711_LOCAL_REGS_BASE,
.end = (unsigned)BCM2711_LOCAL_REGS_BASE + (unsigned)BCM2711_LOCAL_REGS_SIZE,
.flags = AARCH64_MMU_DEVICE
},
{ /* RPI GIC Interface address */
.begin = 0xFF800000U,
.end = 0xFFA00000U,
.flags = AARCH64_MMU_DEVICE
}
};
/*
* Make weak and let the user override.
*/
BSP_START_TEXT_SECTION void
raspberrypi_4_setup_mmu_and_cache( void ) __attribute__ ((weak));
BSP_START_TEXT_SECTION void
raspberrypi_4_setup_mmu_and_cache( void )
{
aarch64_mmu_control *control = &aarch64_mmu_instance;
aarch64_mmu_setup();
aarch64_mmu_setup_translation_table(
control,
&raspberrypi_4_mmu_config_table[ 0 ],
RTEMS_ARRAY_SIZE( raspberrypi_4_mmu_config_table )
);
aarch64_mmu_enable( control );
}

View File

@@ -1,73 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64RaspberryPi
*
* @brief Watchdog Driver
*/
/*
* Copyright (C) 2024 Ning Yang
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp/raspberrypi.h>
#include <bsp/watchdog.h>
#define PM_WDOG BCM2835_REG(BCM2711_PM_WDOG)
#define PM_RSTC BCM2835_REG(BCM2711_PM_RSTC)
uint32_t raspberrypi_watchdog_timeout;
void raspberrypi_watchdog_init()
{
raspberrypi_watchdog_timeout = 0;
}
void raspberrypi_watchdog_start(uint32_t timeout_ms)
{
raspberrypi_watchdog_timeout = timeout_ms;
PM_WDOG = BCM2711_PM_PASSWD_MAGIC |
((timeout_ms * 65536 / 1000) & BCM2711_PM_WDOG_MASK);
PM_RSTC &= BCM2711_PM_RSTC_WRCFG_CLR;
PM_RSTC = (BCM2711_PM_PASSWD_MAGIC | BCM2711_PM_RSTC_WRCFG_FULL);
}
void raspberrypi_watchdog_stop()
{
PM_RSTC = BCM2711_PM_PASSWD_MAGIC | BCM2711_PM_RSTC_RESET;
}
void raspberrypi_watchdog_reload()
{
raspberrypi_watchdog_start(raspberrypi_watchdog_timeout);
}
uint32_t raspberrypi_watchdog_get_remaining_time()
{
return (PM_WDOG & BCM2711_PM_WDOG_MASK)*1000/65536;
}

View File

@@ -1,415 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief AArch64 cache defines and implementation.
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems.h>
#include <bsp.h>
#include <rtems/score/aarch64-system-registers.h>
#define CPU_DATA_CACHE_ALIGNMENT 64
#define CPU_INSTRUCTION_CACHE_ALIGNMENT 64
#define CPU_CACHE_SUPPORT_PROVIDES_RANGE_FUNCTIONS
#define CPU_CACHE_SUPPORT_PROVIDES_CACHE_SIZE_FUNCTIONS
#define AARCH64_CACHE_L1_CPU_DATA_ALIGNMENT ( (size_t) 64 )
#define AARCH64_CACHE_PREPARE_MVA(mva) (const void *) \
RTEMS_ALIGN_DOWN ( (size_t) mva, AARCH64_CACHE_L1_CPU_DATA_ALIGNMENT )
static inline
void AArch64_data_cache_clean_and_invalidate_line(const void *d_addr)
{
d_addr = AARCH64_CACHE_PREPARE_MVA(d_addr);
__asm__ volatile (
"dc civac, %[d_addr]"
:
: [d_addr] "r" (d_addr)
: "memory"
);
}
static inline void
_CPU_cache_flush_data_range(
const void *d_addr,
size_t n_bytes
)
{
_AARCH64_Data_synchronization_barrier();
if ( n_bytes != 0 ) {
size_t adx = (size_t) AARCH64_CACHE_PREPARE_MVA ( d_addr );
const size_t ADDR_LAST = (size_t) d_addr + n_bytes - 1;
for (; adx <= ADDR_LAST; adx += AARCH64_CACHE_L1_CPU_DATA_ALIGNMENT ) {
/* Store and invalidate the Data cache line */
AArch64_data_cache_clean_and_invalidate_line( (void*)adx );
}
/* Wait for L1 store to complete */
_AARCH64_Data_synchronization_barrier();
}
_AARCH64_Data_synchronization_barrier();
}
static inline void AArch64_data_cache_invalidate_line(const void *d_addr)
{
d_addr = AARCH64_CACHE_PREPARE_MVA(d_addr);
__asm__ volatile (
"dc ivac, %[d_addr]"
:
: [d_addr] "r" (d_addr)
: "memory"
);
}
static inline void
_CPU_cache_invalidate_data_range(
const void *d_addr,
size_t n_bytes
)
{
if ( n_bytes != 0 ) {
size_t adx = (size_t) AARCH64_CACHE_PREPARE_MVA ( d_addr );
const size_t end = (size_t)d_addr + n_bytes -1;
/* Back starting address up to start of a line and invalidate until end */
for (;
adx <= end;
adx += AARCH64_CACHE_L1_CPU_DATA_ALIGNMENT ) {
/* Invalidate the Instruction cache line */
AArch64_data_cache_invalidate_line( (void*)adx );
}
/* Wait for L1 invalidate to complete */
_AARCH64_Data_synchronization_barrier();
}
}
static inline void _CPU_cache_freeze_data(void)
{
/* TODO */
}
static inline void _CPU_cache_unfreeze_data(void)
{
/* TODO */
}
static inline void AArch64_instruction_cache_invalidate_line(const void *i_addr)
{
/* __builtin___clear_cache is explicitly only for instruction cacche */
__builtin___clear_cache((void *)i_addr, ((char *)i_addr) + sizeof(void*) - 1);
}
static inline void
_CPU_cache_invalidate_instruction_range( const void *i_addr, size_t n_bytes)
{
if ( n_bytes != 0 ) {
__builtin___clear_cache((void *)i_addr, ((char *)i_addr) + n_bytes - 1);
}
_AARCH64_Instruction_synchronization_barrier();
}
static inline void _CPU_cache_freeze_instruction(void)
{
/* TODO */
}
static inline void _CPU_cache_unfreeze_instruction(void)
{
/* TODO */
}
static inline uint64_t AArch64_get_ccsidr_for_level(
uint64_t level, bool instruction
)
{
uint64_t csselr = AARCH64_CSSELR_EL1_LEVEL(level - 1);
csselr |= instruction ? AARCH64_CSSELR_EL1_IND : 0;
_AArch64_Write_csselr_el1(csselr);
_AARCH64_Instruction_synchronization_barrier();
return _AArch64_Read_ccsidr_el1();
}
static inline uint64_t
AArch64_ccsidr_get_line_power(uint64_t ccsidr)
{
return AARCH64_CCSIDR_EL1_LINESIZE_GET(ccsidr) + 4;
}
static inline uint64_t
AArch64_ccsidr_get_associativity(uint64_t ccsidr)
{
return AARCH64_CCSIDR_EL1_ASSOCIATIVITY_GET_0(ccsidr) + 1;
}
static inline uint64_t
AArch64_ccsidr_get_num_sets(uint64_t ccsidr)
{
return AARCH64_CCSIDR_EL1_NUMSETS_GET_0(ccsidr) + 1;
}
static inline void
AArch64_data_cache_clean_and_invalidate_level(uint64_t level)
{
uint64_t ccsidr;
uint64_t line_power;
uint64_t associativity;
uint64_t way;
uint64_t way_shift;
ccsidr = AArch64_get_ccsidr_for_level(level, false);
line_power = AArch64_ccsidr_get_line_power(ccsidr);
associativity = AArch64_ccsidr_get_associativity(ccsidr);
way_shift = __builtin_clz(associativity - 1);
for (way = 0; way < associativity; ++way) {
uint64_t num_sets = AArch64_ccsidr_get_num_sets(ccsidr);
uint64_t set;
for (set = 0; set < num_sets; ++set) {
uint64_t set_and_way = (way << way_shift)
| (set << line_power)
| ((level - 1) << 1);
__asm__ volatile (
"dc cisw, %[set_and_way]"
:
: [set_and_way] "r" (set_and_way)
: "memory"
);
}
}
}
static inline
uint64_t AArch64_clidr_get_cache_type(uint64_t clidr, uint64_t level)
{
return (clidr >> (3 * level)) & 0x7;
}
static inline uint64_t AArch64_clidr_get_level_of_coherency(uint64_t clidr)
{
return AARCH64_CLIDR_EL1_LOC_GET(clidr);
}
static inline void AArch64_data_cache_clean_and_invalidate_all_levels(void)
{
uint64_t clidr = _AArch64_Read_clidr_el1();
uint64_t loc = AArch64_clidr_get_level_of_coherency(clidr);
uint64_t level = 0;
for (level = 1; level <= loc; ++level) {
/* Assume that all levels have a data cache */
AArch64_data_cache_clean_and_invalidate_level(level);
}
}
static inline void _CPU_cache_flush_entire_data(void)
{
rtems_interrupt_level isr_level;
rtems_interrupt_local_disable(isr_level);
_AARCH64_Data_synchronization_barrier();
AArch64_data_cache_clean_and_invalidate_all_levels();
_AARCH64_Data_synchronization_barrier();
rtems_interrupt_local_enable(isr_level);
}
static inline void AArch64_cache_invalidate_level(uint64_t level)
{
uint64_t ccsidr;
uint64_t line_power;
uint64_t associativity;
uint64_t way;
uint64_t way_shift;
ccsidr = AArch64_get_ccsidr_for_level(level, false);
line_power = AArch64_ccsidr_get_line_power(ccsidr);
associativity = AArch64_ccsidr_get_associativity(ccsidr);
way_shift = __builtin_clz(associativity - 1);
for (way = 0; way < associativity; ++way) {
uint64_t num_sets = AArch64_ccsidr_get_num_sets(ccsidr);
uint64_t set;
for (set = 0; set < num_sets; ++set) {
uint64_t set_and_way = (way << way_shift)
| (set << line_power)
| ((level - 1) << 1);
__asm__ volatile (
"dc isw, %[set_and_way]"
:
: [set_and_way] "r" (set_and_way)
: "memory"
);
}
}
}
static inline void AArch64_data_cache_invalidate_all_levels(void)
{
uint64_t clidr = _AArch64_Read_clidr_el1();
uint64_t loc = AArch64_clidr_get_level_of_coherency(clidr);
uint64_t level = 0;
for (level = 1; level <= loc; ++level) {
/* Assume that all levels have a data cache */
AArch64_cache_invalidate_level(level);
}
}
static inline void _CPU_cache_invalidate_entire_data(void)
{
rtems_interrupt_level isr_level;
rtems_interrupt_local_disable(isr_level);
_AARCH64_Data_synchronization_barrier();
AArch64_data_cache_invalidate_all_levels();
_AARCH64_Data_synchronization_barrier();
rtems_interrupt_local_enable(isr_level);
}
static inline void _CPU_cache_enable_data(void)
{
rtems_interrupt_level isr_level;
uint64_t sctlr;
rtems_interrupt_local_disable(isr_level);
sctlr = _AArch64_Read_sctlr_el1();
sctlr |= AARCH64_SCTLR_EL1_C;
_AArch64_Write_sctlr_el1(sctlr);
rtems_interrupt_local_enable(isr_level);
}
static RTEMS_NO_RETURN inline void _CPU_cache_disable_data(void)
{
_Internal_error( INTERNAL_ERROR_CANNOT_DISABLE_DATA_CACHE );
}
static inline void _CPU_cache_invalidate_entire_instruction(void)
{
/*
* There is no way to manage branch prediction in AArch64. See D4.4.12 in
* the ARM Architecture Reference Manual, ARMv8, for ARMv8-A architecture
* profile (ARM DDI 0487D.a).
*/
__asm__ volatile (
#ifdef RTEMS_SMP
/*
* Invalidate all instruction caches up to
* Point of Unification, Inner Shareable.
*/
"ic ialluis\n"
#else
/* Invalidate all instruction caches up to Point of Unification */
"ic iallu\n"
#endif
"isb"
:
:
: "memory"
);
}
static inline void _CPU_cache_enable_instruction(void)
{
rtems_interrupt_level isr_level;
uint64_t sctlr;
rtems_interrupt_local_disable(isr_level);
sctlr = _AArch64_Read_sctlr_el1();
sctlr |= AARCH64_SCTLR_EL1_I;
_AArch64_Write_sctlr_el1(sctlr);
rtems_interrupt_local_enable(isr_level);
}
static inline void _CPU_cache_disable_instruction(void)
{
rtems_interrupt_level isr_level;
uint64_t sctlr;
rtems_interrupt_local_disable(isr_level);
sctlr = _AArch64_Read_sctlr_el1();
sctlr &= ~AARCH64_SCTLR_EL1_I;
_AArch64_Write_sctlr_el1(sctlr);
rtems_interrupt_local_enable(isr_level);
}
static inline size_t AArch64_get_cache_size(
uint64_t level,
bool instruction
)
{
rtems_interrupt_level isr_level;
uint64_t clidr;
uint64_t loc;
uint64_t ccsidr;
clidr = _AArch64_Read_clidr_el1();
loc = AArch64_clidr_get_level_of_coherency(clidr);
if (level > loc) {
return 0;
}
rtems_interrupt_local_disable(isr_level);
ccsidr = AArch64_get_ccsidr_for_level(level, instruction);
rtems_interrupt_local_enable(isr_level);
return (1U << (AArch64_ccsidr_get_line_power(ccsidr)+4))
* AArch64_ccsidr_get_associativity(ccsidr)
* AArch64_ccsidr_get_num_sets(ccsidr);
}
static inline size_t _CPU_cache_get_data_cache_size(uint64_t level)
{
return AArch64_get_cache_size(level, false);
}
static inline size_t _CPU_cache_get_instruction_cache_size(uint64_t level)
{
return AArch64_get_cache_size(level, true);
}
#include "../../shared/cache/cacheimpl.h"

View File

@@ -1,116 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief AArch64-specific ARM GPT system register accessors.
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <dev/clock/arm-generic-timer.h>
#include <bsp/irq.h>
uint64_t arm_gt_clock_get_compare_value(void)
{
uint64_t val;
__asm__ volatile (
#ifdef AARCH64_GENERIC_TIMER_USE_VIRTUAL
"mrs %[val], cntv_cval_el0"
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
"mrs %[val], cntps_cval_el1"
#else
"mrs %[val], cntp_cval_el0"
#endif
: [val] "=&r" (val)
);
return val;
}
void arm_gt_clock_set_compare_value(uint64_t cval)
{
__asm__ volatile (
#ifdef AARCH64_GENERIC_TIMER_USE_VIRTUAL
"msr cntv_cval_el0, %[cval]"
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
"msr cntps_cval_el1, %[cval]"
#else
"msr cntp_cval_el0, %[cval]"
#endif
:
: [cval] "r" (cval)
);
}
uint64_t arm_gt_clock_get_count(void)
{
uint64_t val;
__asm__ volatile (
#ifdef AARCH64_GENERIC_TIMER_USE_VIRTUAL
"mrs %[val], cntvct_el0"
#else
"mrs %[val], cntpct_el0"
#endif
: [val] "=&r" (val)
);
return val;
}
void arm_gt_clock_set_control(uint32_t ctl)
{
__asm__ volatile (
#ifdef AARCH64_GENERIC_TIMER_USE_VIRTUAL
"msr cntv_ctl_el0, %[ctl]"
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
"msr cntps_ctl_el1, %[ctl]"
#else
"msr cntp_ctl_el0, %[ctl]"
#endif
:
: [ctl] "r" (ctl)
);
}
void arm_generic_timer_get_config( uint32_t *frequency, uint32_t *irq )
{
uint64_t val;
__asm__ volatile (
"mrs %[val], cntfrq_el0"
: [val] "=&r" (val)
);
*frequency = val;
#ifdef ARM_GENERIC_TIMER_USE_VIRTUAL
*irq = BSP_TIMER_VIRT_PPI;
#elif defined(AARCH64_GENERIC_TIMER_USE_PHYSICAL_SECURE)
*irq = BSP_TIMER_PHYS_S_PPI;
#else
*irq = BSP_TIMER_PHYS_NS_PPI;
#endif
}

View File

@@ -1,23 +0,0 @@
/**
* @file
*
* @ingroup RTEMSImplDoxygen
*
* @brief This header file defines BSP-specific groups.
*/
/**
* @defgroup RTEMSBSPsAArch64 AArch64
*
* @ingroup RTEMSBSPs
*
* @brief This group contains AArch64 Board Support Packages.
*/
/**
* @defgroup RTEMSBSPsAArch64Shared Shared
*
* @ingroup RTEMSBSPsAArch64
*
* @brief This group contains support shared by AArch64 Board Support Packages.
*/

View File

@@ -1,319 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup aarch64_start
*
* @brief AArch64 MMU configuration.
*/
/*
* Copyright (C) 2021 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp/aarch64-mmu.h>
#include <bsp/fatal.h>
#include <bsp/linker-symbols.h>
#include <bsp/start.h>
#include <rtems/score/aarch64-system-registers.h>
#include <rtems/score/assert.h>
aarch64_mmu_control aarch64_mmu_instance = {
.ttb = (uint64_t *) bsp_translation_table_base,
/* One page table is used for the initial setup at the base */
.used_page_tables = 1
};
/* AArch64 uses levels 0, 1, 2, and 3 */
#define MMU_MAX_SUBTABLE_PAGE_BITS ( 3 * MMU_BITS_PER_LEVEL + MMU_PAGE_BITS )
/* setup straight mapped block entries */
BSP_START_TEXT_SECTION static inline void aarch64_mmu_page_table_set_blocks(
uint64_t *page_table,
uint64_t base,
uint32_t bits_offset,
uint64_t default_attr
)
{
uint64_t page_flag = 0;
if ( bits_offset == MMU_PAGE_BITS ) {
page_flag = MMU_DESC_TYPE_PAGE;
}
for ( uint64_t i = 0; i < ( 1 << MMU_BITS_PER_LEVEL ); i++ ) {
page_table[i] = base | ( i << bits_offset );
page_table[i] |= default_attr | page_flag;
}
}
BSP_START_TEXT_SECTION static inline uint64_t *
aarch64_mmu_page_table_alloc( aarch64_mmu_control *control )
{
size_t used_page_tables = control->used_page_tables;
if ( used_page_tables >= AARCH64_MMU_TRANSLATION_TABLE_PAGES ) {
return NULL;
}
control->used_page_tables = used_page_tables + 1;
return (uint64_t *)
( (uintptr_t) control->ttb + ( used_page_tables << MMU_PAGE_BITS ) );
}
BSP_START_TEXT_SECTION static inline uintptr_t aarch64_mmu_get_index(
uintptr_t root_address,
uintptr_t vaddr,
uint32_t shift
)
{
uintptr_t mask = ( 1 << ( MMU_BITS_PER_LEVEL + 1 ) ) - 1;
return ( ( vaddr - root_address ) >> shift ) & mask;
}
BSP_START_TEXT_SECTION static uint64_t *
aarch64_mmu_get_sub_table(
aarch64_mmu_control *control,
uint64_t *page_table_entry,
uintptr_t physical_root_address,
uint32_t shift
)
{
/* check if the index already has a page table */
if ( ( *page_table_entry & MMU_DESC_TYPE_TABLE ) == MMU_DESC_TYPE_TABLE ) {
/* extract page table address */
uint64_t table_pointer = *page_table_entry & MMU_DESC_PAGE_TABLE_MASK;
/* This cast should be safe since the address was inserted in this mode */
return (uint64_t *) (uintptr_t) table_pointer;
}
/* allocate new page table and set block */
uint64_t *sub_table = aarch64_mmu_page_table_alloc( control );
if ( sub_table == NULL ) {
return NULL;
}
aarch64_mmu_page_table_set_blocks(
sub_table,
physical_root_address,
shift - MMU_BITS_PER_LEVEL,
*page_table_entry & ~MMU_DESC_PAGE_TABLE_MASK
);
*page_table_entry = (uintptr_t) sub_table;
*page_table_entry |= MMU_DESC_TYPE_TABLE | MMU_DESC_VALID;
return sub_table;
}
BSP_START_TEXT_SECTION static inline rtems_status_code aarch64_mmu_map_block(
aarch64_mmu_control *control,
uint64_t *page_table,
uint64_t root_address,
uint64_t addr,
uint64_t size,
int8_t level,
uint64_t flags
)
{
uint32_t shift = ( 2 - level ) * MMU_BITS_PER_LEVEL + MMU_PAGE_BITS;
uint64_t granularity = 1LLU << shift;
do {
uintptr_t index = aarch64_mmu_get_index( root_address, addr, shift );
uint64_t block_bottom = RTEMS_ALIGN_DOWN( addr, granularity );
uint64_t chunk_size = granularity;
/* check for perfect block match */
if ( block_bottom == addr ) {
if ( size >= chunk_size ) {
/* level -1 can't contain block descriptors, fall through to subtable */
if ( level != -1 ) {
uint64_t page_flag = 0;
if ( level == 2 ) {
page_flag = MMU_DESC_TYPE_PAGE;
}
/* when page_flag is set the last level must be a page descriptor */
if ( page_flag || ( page_table[index] & MMU_DESC_TYPE_TABLE ) != MMU_DESC_TYPE_TABLE ) {
/* no sub-table, apply block properties */
page_table[index] = addr | flags | page_flag;
size -= chunk_size;
addr += chunk_size;
continue;
}
}
} else {
/*
* Block starts on a boundary, but is short.
*
* The size is >= MMU_PAGE_SIZE since
* aarch64_mmu_set_translation_table_entries() aligns the memory region
* to page boundaries. The minimum chunk_size is MMU_PAGE_SIZE.
*/
_Assert( level < 2 );
chunk_size = size;
}
} else {
uintptr_t block_top = RTEMS_ALIGN_UP( addr, granularity );
chunk_size = block_top - addr;
if ( chunk_size > size ) {
chunk_size = size;
}
}
/* Deal with any subtable modification */
uint64_t new_root_address = root_address + index * granularity;
rtems_status_code sc;
uint64_t *sub_table = aarch64_mmu_get_sub_table(
control,
&page_table[index],
new_root_address,
shift
);
if ( sub_table == NULL ) {
return RTEMS_TOO_MANY;
}
sc = aarch64_mmu_map_block(
control,
sub_table,
new_root_address,
addr,
chunk_size,
level + 1,
flags
);
if ( sc != RTEMS_SUCCESSFUL ) {
return sc;
}
size -= chunk_size;
addr += chunk_size;
} while ( size > 0 );
return RTEMS_SUCCESSFUL;
}
/* Get the maximum number of bits supported by this hardware */
BSP_START_TEXT_SECTION static inline uint64_t
aarch64_mmu_get_cpu_pa_bits( void )
{
#ifdef AARCH64_MMU_PHYSICAL_ADDRESS_RANGE_BITS
return AARCH64_MMU_PHYSICAL_ADDRESS_RANGE_BITS;
#else
uint64_t id_reg = _AArch64_Read_id_aa64mmfr0_el1();
switch ( AARCH64_ID_AA64MMFR0_EL1_PARANGE_GET( id_reg ) ) {
case 0:
return 32;
case 1:
return 36;
case 2:
return 40;
case 3:
return 42;
case 4:
return 44;
case 5:
return 48;
case 6:
return 52;
default:
return 48;
}
return 48;
#endif
}
BSP_START_TEXT_SECTION rtems_status_code
aarch64_mmu_set_translation_table_entries(
aarch64_mmu_control *control,
const aarch64_mmu_config_entry *config
)
{
uint64_t max_mappable = 1LLU << aarch64_mmu_get_cpu_pa_bits();
/* Align to page boundaries */
uintptr_t begin = RTEMS_ALIGN_DOWN( config->begin, MMU_PAGE_SIZE );
uintptr_t end = RTEMS_ALIGN_UP( config->end, MMU_PAGE_SIZE );
uintptr_t size = end - begin;
if ( config->begin == config->end ) {
return RTEMS_SUCCESSFUL;
}
if ( begin >= max_mappable ) {
return RTEMS_INVALID_ADDRESS;
}
if ( size > max_mappable - begin ) {
return RTEMS_INVALID_SIZE;
}
return aarch64_mmu_map_block(
control,
control->ttb,
0x0,
begin,
size,
-1,
config->flags
);
}
BSP_START_TEXT_SECTION void aarch64_mmu_setup_translation_table(
aarch64_mmu_control *control,
const aarch64_mmu_config_entry *config_table,
size_t config_count
)
{
size_t i;
aarch64_mmu_page_table_set_blocks(
control->ttb,
(uintptr_t) NULL,
MMU_MAX_SUBTABLE_PAGE_BITS,
0
);
/* Configure entries required for each memory section */
for ( i = 0; i < config_count; ++i ) {
rtems_status_code sc;
sc = aarch64_mmu_set_translation_table_entries( control, &config_table[i] );
if ( sc != RTEMS_SUCCESSFUL ) {
bsp_fatal( AARCH64_FATAL_MMU_CANNOT_MAP_BLOCK );
}
}
}

View File

@@ -1,49 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief AArch64 MMU dummy implementation.
*/
/*
* Copyright (C) 2021 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <libcpu/mmu-vmsav8-64.h>
/*
* This must have a non-header implementation because it is used by libdebugger.
*/
rtems_status_code aarch64_mmu_map(
uintptr_t addr,
uint64_t size,
uint64_t flags
)
{
return RTEMS_SUCCESSFUL;
}

View File

@@ -1,78 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief AArch64 MMU implementation.
*/
/*
* Copyright (C) 2021 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <bsp/aarch64-mmu.h>
#include <rtems/score/cpu.h>
/*
* This must have a non-header implementation because it is used by libdebugger.
*/
rtems_status_code aarch64_mmu_map(
uintptr_t addr,
uint64_t size,
uint64_t flags
)
{
aarch64_mmu_config_entry config = {
.begin = addr,
.end = addr + size,
.flags = flags
};
rtems_status_code sc;
ISR_Level level;
aarch64_mmu_control *control = &aarch64_mmu_instance;
/*
* Disable interrupts so they don't run while the MMU tables are being
* modified.
*/
_ISR_Local_disable( level );
sc = aarch64_mmu_set_translation_table_entries(
control,
&config
);
_AARCH64_Data_synchronization_barrier();
__asm__ volatile(
"tlbi vmalle1\n"
);
_AARCH64_Data_synchronization_barrier();
_AARCH64_Instruction_synchronization_barrier();
_ISR_Local_enable( level );
return sc;
}

View File

@@ -1,87 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief SMP startup and interop code.
*/
/*
* Copyright (C) 2021 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/score/smpimpl.h>
#include <bsp/irq.h>
static void bsp_inter_processor_interrupt( void *arg )
{
_SMP_Inter_processor_interrupt_handler( _Per_CPU_Get() );
}
uint32_t _CPU_SMP_Initialize( void )
{
return arm_gic_irq_processor_count();
}
static rtems_interrupt_entry aarch64_ipi_entry;
void _CPU_SMP_Finalize_initialization( uint32_t cpu_count )
{
rtems_status_code sc;
rtems_interrupt_entry_initialize(
&aarch64_ipi_entry,
bsp_inter_processor_interrupt,
NULL,
"IPI"
);
sc = rtems_interrupt_entry_install(
ARM_GIC_IRQ_SGI_0,
RTEMS_INTERRUPT_UNIQUE,
&aarch64_ipi_entry
);
_Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL );
}
void _CPU_SMP_Prepare_start_multitasking( void )
{
/* Do nothing */
}
void _CPU_SMP_Send_interrupt( uint32_t target_processor_index )
{
arm_gic_trigger_sgi(
ARM_GIC_IRQ_SGI_0,
1U << target_processor_index
);
}
uint32_t _CPU_SMP_Get_current_processor( void )
{
return _Per_CPU_Get_index( _CPU_Get_current_per_CPU_control() );
}

View File

@@ -1,443 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup bsp_linker
*
* @brief Linker command base file.
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
ENTRY (_start)
STARTUP (start.o)
/*
* Global symbols that may be defined externally
*/
bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 16;
bsp_stack_exception_size = DEFINED (bsp_stack_exception_size) ? bsp_stack_exception_size : 0;
bsp_stack_exception_size = ALIGN (bsp_stack_exception_size, bsp_stack_align);
bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64;
bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_xbarrier_align : 1;
bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
bsp_stack_hyp_size = DEFINED (bsp_stack_hyp_size) ? bsp_stack_hyp_size : 0;
bsp_stack_hyp_size = ALIGN (bsp_stack_hyp_size, bsp_stack_align);
MEMORY {
UNEXPECTED_SECTIONS : ORIGIN = 0xffffffffffffffff, LENGTH = 0
}
SECTIONS {
.start : ALIGN_WITH_INPUT {
bsp_section_start_begin = .;
KEEP (*(.bsp_start_text))
KEEP (*(.bsp_start_data))
bsp_section_start_end = .;
} > REGION_START AT > REGION_START
bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
.xbarrier : ALIGN_WITH_INPUT {
. = ALIGN (bsp_section_xbarrier_align);
} > REGION_VECTOR AT > REGION_VECTOR
.text : ALIGN_WITH_INPUT {
bsp_section_text_begin = .;
*(.text.unlikely .text.*_unlikely)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
} > REGION_TEXT AT > REGION_TEXT_LOAD
.init : ALIGN_WITH_INPUT {
KEEP (*(.init))
} > REGION_TEXT AT > REGION_TEXT_LOAD
.fini : ALIGN_WITH_INPUT {
KEEP (*(.fini))
bsp_section_text_end = .;
} > REGION_TEXT AT > REGION_TEXT_LOAD
bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
bsp_section_text_load_begin = LOADADDR (.text);
bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
.robarrier : ALIGN_WITH_INPUT {
. = ALIGN (bsp_section_robarrier_align);
} > REGION_RODATA AT > REGION_RODATA
.rodata : ALIGN_WITH_INPUT {
bsp_section_rodata_begin = .;
*(.rodata .rodata.* .gnu.linkonce.r.*)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.rodata1 : ALIGN_WITH_INPUT {
*(.rodata1)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.ARM.extab : ALIGN_WITH_INPUT {
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.ARM.exidx : ALIGN_WITH_INPUT {
__exidx_start = .;
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
__exidx_end = .;
} > REGION_RODATA AT > REGION_RODATA_LOAD
.eh_frame : ALIGN_WITH_INPUT {
KEEP (*(.eh_frame))
} > REGION_RODATA AT > REGION_RODATA_LOAD
.gcc_except_table : ALIGN_WITH_INPUT {
*(.gcc_except_table .gcc_except_table.*)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.tdata : ALIGN_WITH_INPUT {
_TLS_Data_begin = .;
*(.tdata .tdata.* .gnu.linkonce.td.*)
_TLS_Data_end = .;
} > REGION_RODATA AT > REGION_RODATA_LOAD
.tbss : ALIGN_WITH_INPUT {
_TLS_BSS_begin = .;
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
_TLS_BSS_end = .;
} > REGION_RODATA AT > REGION_RODATA_LOAD
_TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
_TLS_Data_begin = _TLS_Data_size != 0 ? _TLS_Data_begin : _TLS_BSS_begin;
_TLS_Data_end = _TLS_Data_size != 0 ? _TLS_Data_end : _TLS_BSS_begin;
_TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
_TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
_TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
.preinit_array : ALIGN_WITH_INPUT {
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
} > REGION_RODATA AT > REGION_RODATA_LOAD
.init_array : ALIGN_WITH_INPUT {
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
PROVIDE_HIDDEN (__init_array_end = .);
} > REGION_RODATA AT > REGION_RODATA_LOAD
.fini_array : ALIGN_WITH_INPUT {
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
PROVIDE_HIDDEN (__fini_array_end = .);
} > REGION_RODATA AT > REGION_RODATA_LOAD
.data.rel.ro : ALIGN_WITH_INPUT {
*(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
*(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.jcr : ALIGN_WITH_INPUT {
KEEP (*(.jcr))
} > REGION_RODATA AT > REGION_RODATA_LOAD
.interp : ALIGN_WITH_INPUT {
*(.interp)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.note.gnu.build-id : ALIGN_WITH_INPUT {
*(.note.gnu.build-id)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.hash : ALIGN_WITH_INPUT {
*(.hash)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.gnu.hash : ALIGN_WITH_INPUT {
*(.gnu.hash)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.dynsym : ALIGN_WITH_INPUT {
*(.dynsym)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.dynstr : ALIGN_WITH_INPUT {
*(.dynstr)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.gnu.version : ALIGN_WITH_INPUT {
*(.gnu.version)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.gnu.version_d : ALIGN_WITH_INPUT {
*(.gnu.version_d)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.gnu.version_r : ALIGN_WITH_INPUT {
*(.gnu.version_r)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.rel.dyn : ALIGN_WITH_INPUT {
*(.rel.init)
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
*(.rel.fini)
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
*(.rel.ctors)
*(.rel.dtors)
*(.rel.got)
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
PROVIDE_HIDDEN (__rel_iplt_start = .);
*(.rel.iplt)
PROVIDE_HIDDEN (__rel_iplt_end = .);
PROVIDE_HIDDEN (__rela_iplt_start = .);
PROVIDE_HIDDEN (__rela_iplt_end = .);
} > REGION_RODATA AT > REGION_RODATA_LOAD
.rela.dyn : ALIGN_WITH_INPUT {
*(.rela.init)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rela.fini)
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
*(.rela.ctors)
*(.rela.dtors)
*(.rela.got)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
*(.rela.rtemsroset*)
*(.rela.rtemsrwset*)
PROVIDE_HIDDEN (__rel_iplt_start = .);
PROVIDE_HIDDEN (__rel_iplt_end = .);
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
} > REGION_RODATA AT > REGION_RODATA_LOAD
.rel.plt : ALIGN_WITH_INPUT {
*(.rel.plt)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.rela.plt : ALIGN_WITH_INPUT {
*(.rela.plt)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.plt : ALIGN_WITH_INPUT {
*(.plt)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.iplt : ALIGN_WITH_INPUT {
*(.iplt)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.dynamic : ALIGN_WITH_INPUT {
*(.dynamic)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.tm_clone_table : ALIGN_WITH_INPUT {
*(.tm_clone_table)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.got : ALIGN_WITH_INPUT {
*(.got.plt) *(.igot.plt) *(.got) *(.igot)
} > REGION_RODATA AT > REGION_RODATA_LOAD
.rtemsroset : ALIGN_WITH_INPUT {
/* Special FreeBSD linker set sections */
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = .;
*(set_domain_*);
*(set_pseudo_*);
KEEP (*(SORT(.rtemsroset.*)))
bsp_section_rodata_end = .;
} > REGION_RODATA AT > REGION_RODATA_LOAD
bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
bsp_section_rodata_load_begin = LOADADDR (.rodata);
bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
.rwbarrier : ALIGN_WITH_INPUT {
. = ALIGN (bsp_section_rwbarrier_align);
} > REGION_DATA AT > REGION_DATA
.vector : ALIGN_WITH_INPUT {
bsp_section_vector_begin = .;
. = . + DEFINED (bsp_vector_table_in_start_section) ? 0 : bsp_vector_table_size;
bsp_section_vector_end = .;
} > REGION_VECTOR AT > REGION_VECTOR
bsp_section_vector_size = bsp_section_vector_end - bsp_section_vector_begin;
bsp_vector_table_begin = DEFINED (bsp_vector_table_in_start_section) ? bsp_section_start_begin : bsp_section_vector_begin;
bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;
.fast_text : ALIGN_WITH_INPUT {
bsp_section_fast_text_begin = .;
*(.bsp_fast_text)
bsp_section_fast_text_end = .;
} > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
.fast_data : ALIGN_WITH_INPUT {
bsp_section_fast_data_begin = .;
*(.bsp_fast_data)
bsp_section_fast_data_end = .;
} > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
.data : ALIGN_WITH_INPUT {
bsp_section_data_begin = .;
*(.data .data.* .gnu.linkonce.d.*)
SORT(CONSTRUCTORS)
} > REGION_DATA AT > REGION_DATA_LOAD
.data1 : ALIGN_WITH_INPUT {
*(.data1)
} > REGION_DATA AT > REGION_DATA_LOAD
.rtemsrwset : ALIGN_WITH_INPUT {
KEEP (*(SORT(.rtemsrwset.*)))
bsp_section_data_end = .;
} > REGION_DATA AT > REGION_DATA_LOAD
bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
bsp_section_data_load_begin = LOADADDR (.data);
bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
.bss : ALIGN_WITH_INPUT {
bsp_section_bss_begin = .;
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
bsp_section_bss_end = .;
} > REGION_BSS AT > REGION_BSS
bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
.rtemsstack (NOLOAD) : ALIGN_WITH_INPUT {
bsp_section_rtemsstack_begin = .;
*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.rtemsstack*)))
bsp_section_rtemsstack_end = .;
} > REGION_WORK AT > REGION_WORK
bsp_section_rtemsstack_size = bsp_section_rtemsstack_end - bsp_section_rtemsstack_begin;
.noinit (NOLOAD) : ALIGN_WITH_INPUT {
bsp_section_noinit_begin = .;
*(SORT_BY_NAME (SORT_BY_ALIGNMENT (.noinit*)))
bsp_section_noinit_end = .;
} > REGION_WORK AT > REGION_WORK
bsp_section_noinit_size = bsp_section_noinit_end - bsp_section_noinit_begin;
.work : ALIGN_WITH_INPUT {
/*
* The work section will occupy the remaining REGION_WORK region and
* contains the RTEMS work space and heap.
*/
bsp_section_work_begin = .;
. += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
bsp_section_work_end = .;
} > REGION_WORK AT > REGION_WORK
bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
.stack : ALIGN_WITH_INPUT {
/*
* The stack section will occupy the remaining REGION_STACK region and may
* contain the task stacks. Depending on the region distribution this
* section may be of zero size.
*/
bsp_section_stack_begin = .;
. += ORIGIN (REGION_STACK) + LENGTH (REGION_STACK) - ABSOLUTE (.);
bsp_section_stack_end = .;
} > REGION_STACK AT > REGION_STACK
bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;
.nocache : ALIGN_WITH_INPUT {
bsp_section_nocache_begin = .;
*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_nocache*)))
bsp_section_nocache_end = .;
} > REGION_NOCACHE AT > REGION_NOCACHE_LOAD
bsp_section_nocache_size = bsp_section_nocache_end - bsp_section_nocache_begin;
bsp_section_nocache_load_begin = LOADADDR (.nocache);
bsp_section_nocache_load_end = bsp_section_nocache_load_begin + bsp_section_nocache_size;
.nocachenoload (NOLOAD) : ALIGN_WITH_INPUT {
bsp_section_nocachenoload_begin = .;
*(SORT_BY_ALIGNMENT (SORT_BY_NAME (.bsp_noload_nocache*)))
bsp_section_nocacheheap_begin = .;
. += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.);
bsp_section_nocacheheap_end = .;
bsp_section_nocachenoload_end = .;
} > REGION_NOCACHE AT > REGION_NOCACHE
bsp_section_nocacheheap_size = bsp_section_nocacheheap_end - bsp_section_nocacheheap_begin;
bsp_section_nocachenoload_size = bsp_section_nocachenoload_end - bsp_section_nocachenoload_begin;
/* FIXME */
RamBase = ORIGIN (REGION_WORK);
RamSize = LENGTH (REGION_WORK);
RamEnd = RamBase + RamSize;
WorkAreaBase = bsp_section_work_begin;
HeapSize = 0;
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1. */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions. */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2. */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2. */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions. */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* DWARF 3. */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
/* DWARF 5. */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
.debug_rnglists 0 : { *(.debug_rnglists) }
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.debug_sup 0 : { *(.debug_sup) }
.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
/* Addition to let linker know about custom section for GDB pretty-printing support. */
.debug_gdb_scripts 0 : { *(.debug_gdb_scripts) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
/*
* This is a RTEMS specific section to catch all unexpected input
* sections. In case you get an error like
* "section `.unexpected_sections' will not fit in region
* `UNEXPECTED_SECTIONS'"
* you have to figure out the offending input section and add it to the
* appropriate output section definition above.
*/
.unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
}

View File

@@ -1,47 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief This source file contains the
* _AArch64_Get_current_processor_for_system_start() default implementation
* using the MPIDR_EL1.
*/
/*
* Copyright (C) 2024 embedded brains GmbH & Co. KG
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/asm.h>
FUNCTION_ENTRY(_AArch64_Get_current_processor_for_system_start)
/* Return the affinity level 0 reported by the MPIDR_EL1 */
mrs x0, mpidr_el1
and x0, x0, #0xff
ret
FUNCTION_END(_AArch64_Get_current_processor_for_system_start)

View File

@@ -1,346 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64Shared
*
* @brief Boot and system start code.
*/
/*
* Copyright (C) 2020 On-Line Applications Research Corporation (OAR)
* Written by Kinsey Moore <kinsey.moore@oarcorp.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/asm.h>
#include <rtems/score/percpu.h>
#include <bspopts.h>
/* Global symbols */
.globl _start
.section ".bsp_start_text", "ax"
/* Start entry */
_start:
/*
* We do not save the context since we do not return to the boot
* loader but preserve x1 and x2 to allow access to bootloader parameters
*/
#ifndef BSP_START_NEEDS_REGISTER_INITIALIZATION
mov x5, x1 /* machine type number or ~0 for DT boot */
mov x6, x2 /* physical address of ATAGs or DTB */
#else /* BSP_START_NEEDS_REGISTER_INITIALIZATION */
/*
* This block is dead code. No aarch64 targets require this. It might be
* needed for hardware simulations or in future processor variants with
* lock-step cores.
*/
mov x0, XZR
mov x1, XZR
mov x2, XZR
mov x3, XZR
mov x4, XZR
mov x5, XZR
mov x6, XZR
mov x7, XZR
mov x8, XZR
mov x9, XZR
mov x10, XZR
mov x11, XZR
mov x12, XZR
mov x13, XZR
mov x14, XZR
mov x15, XZR
mov x16, XZR
mov x17, XZR
mov x18, XZR
mov x19, XZR
mov x20, XZR
mov x21, XZR
mov x22, XZR
mov x23, XZR
mov x24, XZR
mov x25, XZR
mov x26, XZR
mov x27, XZR
mov x28, XZR
mov x29, XZR
mov x30, XZR
#ifdef AARCH64_MULTILIB_VFP
mov CPTR_EL3, XZR
mov CPTR_EL2, XZR
mov d0, XZR
mov d1, XZR
mov d2, XZR
mov d3, XZR
mov d4, XZR
mov d5, XZR
mov d6, XZR
mov d7, XZR
mov d8, XZR
mov d9, XZR
mov d10, XZR
mov d11, XZR
mov d12, XZR
mov d13, XZR
mov d14, XZR
mov d15, XZR
mov d16, XZR
mov d17, XZR
mov d18, XZR
mov d19, XZR
mov d20, XZR
mov d21, XZR
mov d22, XZR
mov d23, XZR
mov d24, XZR
mov d25, XZR
mov d26, XZR
mov d27, XZR
mov d28, XZR
mov d29, XZR
mov d30, XZR
mov d31, XZR
#endif /* AARCH64_MULTILIB_VFP */
#endif /* BSP_START_NEEDS_REGISTER_INITIALIZATION */
/* Initialize SCTLR_EL1 */
mov x0, XZR
#if defined(RTEMS_DEBUG)
/* Enable Stack alignment checking */
orr x0, x0, #(1<<3)
#endif
msr SCTLR_EL1, x0
#if defined(BSP_START_ENABLE_EL2_START_SUPPORT) || \
defined(BSP_START_ENABLE_EL3_START_SUPPORT)
mrs x0, CurrentEL
cmp x0, #(1<<2)
b.eq .L_el1_start
#endif
#if defined(BSP_START_ENABLE_EL3_START_SUPPORT)
cmp x0, #(2<<2)
b.eq .L_el2_start
.L_el3_start:
/*
* Before leaving the Secure World, we need to initialize the GIC. We
* do that here in an early stack context in EL3. This will NOT work
* on secondary core boot! We assume only the primary boot core will
* start in EL3 if any. Usually on real hardware, we should be running
* on top of trusted firmware and will not boot in EL3. Qemu fakes it
* for us and will start the primary core in EL3 and secondary cores
* will be brought up in EL1NS as expected.
*/
#ifdef AARCH64_MULTILIB_ARCH_V8_ILP32
ldr w1, =_ISR_Stack_size
ldr w2, =_ISR_Stack_area_begin
#else
ldr x1, =_ISR_Stack_size
ldr x2, =_ISR_Stack_area_begin
#endif
add x3, x1, x2
/* using SP0 for the early init stack context at EL3 */
msr spsel, #0
mov sp, x3
/*
* Invoke the start hook 0.
* We don't set up exception handling, so this hook better behave.
*/
bl bsp_start_hook_0
/* Drop from EL3 to EL2 */
/* Initialize HCR_EL2 and SCTLR_EL2 */
msr HCR_EL2, XZR
msr SCTLR_EL2, XZR
/* Set EL2 Execution state via SCR_EL3 */
mrs x0, SCR_EL3
/* Set EL2 to AArch64 */
orr x0, x0, #(1<<10)
/* Set EL1 to NS */
orr x0, x0, #1
msr SCR_EL3, x0
/* set EL2h mode for eret */
mov x0, #0b01001
msr SPSR_EL3, x0
/* Set EL2 entry point */
adr x0, .L_el2_start
msr ELR_EL3, x0
eret
#endif
#if defined(BSP_START_ENABLE_EL2_START_SUPPORT) || \
defined(BSP_START_ENABLE_EL3_START_SUPPORT)
.L_el2_start:
/* Drop from EL2 to EL1 */
/* Configure HCR_EL2 */
mrs x0, HCR_EL2
/* Set EL1 Execution state to AArch64 */
orr x0, x0, #(1<<31)
/* Disable ID traps */
bic x0, x0, #(1<<15)
bic x0, x0, #(1<<16)
bic x0, x0, #(1<<17)
bic x0, x0, #(1<<18)
msr HCR_EL2, x0
/* Set to EL1h mode for eret */
mov x0, #0b00101
msr SPSR_EL2, x0
/* Set EL1 entry point */
adr x0, .L_el1_start
msr ELR_EL2, x0
eret
.L_el1_start:
#endif
#ifdef RTEMS_SMP
bl _AArch64_Get_current_processor_for_system_start
/*
* Check that this is a configured processor. If not, then there is
* not much that can be done since we do not have a stack available for
* this processor. Just loop forever in this case.
*/
#ifdef AARCH64_MULTILIB_ARCH_V8_ILP32
ldr w1, =_SMP_Processor_configured_maximum
#else
ldr x1, =_SMP_Processor_configured_maximum
#endif
ldr w1, [x1]
cmp x1, x0
bgt .Lconfigured_processor
.Linvalid_processor_wait_for_ever:
wfe
b .Linvalid_processor_wait_for_ever
.Lconfigured_processor:
/*
* Get current per-CPU control and store it in PL1 only Thread ID
* Register (TPIDR_EL1).
*/
#ifdef AARCH64_MULTILIB_ARCH_V8_ILP32
ldr w1, =_Per_CPU_Information
#else
ldr x1, =_Per_CPU_Information
#endif
add x1, x1, x0, lsl #PER_CPU_CONTROL_SIZE_LOG2
msr TPIDR_EL1, x1
#endif
/* Calculate interrupt stack area end for current processor */
#ifdef AARCH64_MULTILIB_ARCH_V8_ILP32
ldr w1, =_ISR_Stack_size
#else
ldr x1, =_ISR_Stack_size
#endif
#ifdef RTEMS_SMP
add x3, x0, #1
mul x1, x1, x3
#endif
#ifdef AARCH64_MULTILIB_ARCH_V8_ILP32
ldr w2, =_ISR_Stack_area_begin
#else
ldr x2, =_ISR_Stack_area_begin
#endif
add x3, x1, x2
/* Disable interrupts and debug */
msr DAIFSet, #0xa
#ifdef BSP_START_NEEDS_REGISTER_INITIALIZATION
mov x8, XZR
mov x9, XZR
mov x10, XZR
mov x11, XZR
mov x12, XZR
mov x13, XZR
mov x14, XZR
mov x15, XZR
#endif
/*
* SPx: the stack pointer corresponding to the current exception level
* Normal operation for RTEMS on AArch64 uses SPx and runs on EL1
* Exception operation (synchronous errors, IRQ, FIQ, System Errors) uses SP0
*/
#ifdef AARCH64_MULTILIB_ARCH_V8_ILP32
ldr w1, =bsp_stack_exception_size
#else
ldr x1, =bsp_stack_exception_size
#endif
/* Switch to SP0 and set exception stack */
msr spsel, #0
mov sp, x3
/* Switch back to SPx for normal operation */
msr spsel, #1
sub x3, x3, x1
/* Set SP1 stack used for normal operation */
mov sp, x3
/* Stay in EL1 mode */
#ifdef AARCH64_MULTILIB_VFP
#ifdef AARCH64_MULTILIB_HAS_CPACR
/* Read CPACR */
mrs x0, CPACR_EL1
/* Enable EL1 access permissions for CP10 */
orr x0, x0, #(1 << 20)
/* Write CPACR */
msr CPACR_EL1, x0
isb
#endif
/* FPU does not need to be enabled on AArch64 */
/* Ensure FPU traps are disabled by default */
mrs x0, FPCR
bic x0, x0, #((1 << 8) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 12))
bic x0, x0, #(1 << 15)
msr FPCR, x0
#endif /* AARCH64_MULTILIB_VFP */
/* Branch to start hook 1 */
bl bsp_start_hook_1
/* Branch to boot card */
mov x0, #0
bl boot_card

View File

@@ -1,145 +0,0 @@
/* SPDX-License-Identifier: BSD-2-Clause */
/**
* @file
*
* @ingroup RTEMSBSPsAArch64XilinxVersal
*
* @brief This source file contains this BSP's console configuration.
*/
/*
* Copyright (C) 2021 Gedare Bloom <gedare@rtems.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <rtems/console.h>
#include <rtems/bspIo.h>
#include <rtems/sysinit.h>
#include <bsp/irq.h>
#include <dev/serial/arm-pl011.h>
#include <dev/serial/versal-uart.h>
#include <bspopts.h>
static versal_pl011_context versal_uart_instances[2] = {
{
.pl011_ctx = {
.base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("Versal UART 0"),
.regs = (arm_pl011_uart *) 0xff000000,
.irq = VERSAL_IRQ_UART_0,
.clock = VERSAL_CLOCK_UART,
.initial_baud = VERSAL_UART_DEFAULT_BAUD
}
}, {
.pl011_ctx = {
.base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("Versal UART 1"),
.regs = (arm_pl011_uart *) 0xff010000,
.irq = VERSAL_IRQ_UART_1,
.clock = VERSAL_CLOCK_UART,
.initial_baud = VERSAL_UART_DEFAULT_BAUD
}
}
};
rtems_status_code console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg
)
{
size_t i;
rtems_termios_initialize();
for (i = 0; i < RTEMS_ARRAY_SIZE(versal_uart_instances); ++i) {
char uart[] = "/dev/ttySX";
uart[sizeof(uart) - 2] = (char) ('0' + i);
rtems_termios_device_install(
&uart[0],
&versal_uart_handler,
NULL,
&versal_uart_instances[i].pl011_ctx.base
);
if (i == BSP_CONSOLE_MINOR) {
link(&uart[0], CONSOLE_DEVICE_NAME);
}
}
return RTEMS_SUCCESSFUL;
}
void versal_debug_console_flush(void)
{
versal_uart_reset_tx_flush(
&versal_uart_instances[BSP_CONSOLE_MINOR].pl011_ctx.base
);
}
static void versal_debug_console_out(char c)
{
rtems_termios_device_context *base =
&versal_uart_instances[BSP_CONSOLE_MINOR].pl011_ctx.base;
arm_pl011_write_polled(base, c);
}
static void versal_debug_console_init(void)
{
rtems_termios_device_context *base =
&versal_uart_instances[BSP_CONSOLE_MINOR].pl011_ctx.base;
(void) versal_uart_initialize(base);
BSP_output_char = versal_debug_console_out;
}
static void versal_debug_console_early_init(char c)
{
rtems_termios_device_context *base =
&versal_uart_instances[BSP_CONSOLE_MINOR].pl011_ctx.base;
(void) versal_uart_initialize(base);
BSP_output_char = versal_debug_console_out;
versal_debug_console_out(c);
}
static int versal_debug_console_in(void)
{
rtems_termios_device_context *base =
&versal_uart_instances[BSP_CONSOLE_MINOR].pl011_ctx.base;
return arm_pl011_read_polled(base);
}
BSP_output_char_function_type BSP_output_char = versal_debug_console_early_init;
BSP_polling_getchar_function_type BSP_poll_char = versal_debug_console_in;
RTEMS_SYSINIT_ITEM(
versal_debug_console_init,
RTEMS_SYSINIT_BSP_START,
RTEMS_SYSINIT_ORDER_LAST_BUT_5
);

View File

@@ -1,378 +0,0 @@
/*
* SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (C) 2022 Chris Johns <chris@contemporary.software>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <dev/serial/versal-uart.h>
#include <dev/serial/arm-pl011.h>
#include <bsp/irq.h>
#include <bspopts.h>
static uint32_t versal_uart_intr_all(void)
{
return PL011_UARTI_OEI |
PL011_UARTI_BEI |
PL011_UARTI_PEI |
PL011_UARTI_FEI |
PL011_UARTI_RTI |
PL011_UARTI_TXI |
PL011_UARTI_RXI |
PL011_UARTI_DSRMI |
PL011_UARTI_DCDMI |
PL011_UARTI_CTSMI |
PL011_UARTI_RIMI;
}
#ifdef BSP_CONSOLE_USE_INTERRUPTS
static void versal_uart_intr_clear(volatile arm_pl011_uart *regs, uint32_t ints)
{
regs->base.uarticr = ints;
}
static void versal_uart_intr_clearall(volatile arm_pl011_uart *regs)
{
versal_uart_intr_clear(regs, versal_uart_intr_all());
}
static void versal_uart_intr_enable(volatile arm_pl011_uart *regs, uint32_t ints)
{
regs->base.uartimsc |= ints;
}
#endif
static void versal_uart_intr_disable(volatile arm_pl011_uart *regs, uint32_t ints)
{
regs->base.uartimsc &= ~ints;
}
static void versal_uart_intr_disableall(volatile arm_pl011_uart *regs)
{
versal_uart_intr_disable(regs, versal_uart_intr_all());
}
#ifdef BSP_CONSOLE_USE_INTERRUPTS
static bool versal_uart_flags_clear(volatile arm_pl011_uart *regs, uint32_t flags)
{
return (regs->base.uartfr & flags) == 0;
}
static void versal_uart_interrupt(void *arg)
{
rtems_termios_tty *tty = arg;
versal_pl011_context *ctx = rtems_termios_get_device_context(tty);
volatile arm_pl011_uart *regs = (volatile arm_pl011_uart *) ctx->pl011_ctx.regs;
uint32_t uartmis = regs->base.uartmis;
versal_uart_intr_clear(regs, uartmis);
if ((uartmis & (PL011_UARTI_RTI | PL011_UARTI_RXI)) != 0) {
char buf[32];
int c = 0;
while (c < sizeof(buf) &&
versal_uart_flags_clear(regs, PL011_UARTFR_RXFE)) {
buf[c++] = (char) PL011_UARTDR_DATA_GET(regs->base.uartdr);
}
rtems_termios_enqueue_raw_characters(tty, buf, c);
}
if (ctx->transmitting) {
int sent = ctx->pl011_ctx.tx_queued_chars;
ctx->transmitting = false;
ctx->pl011_ctx.tx_queued_chars = 0;
versal_uart_intr_disable(regs, PL011_UARTI_TXI);
rtems_termios_dequeue_characters(tty, sent);
}
}
#endif
void versal_uart_reset_tx_flush(rtems_termios_device_context *base)
{
volatile arm_pl011_uart *regs = (volatile arm_pl011_uart *) arm_pl011_get_regs(base);
int c = 4;
while (c-- > 0) {
arm_pl011_write_polled(base, '\r');
}
while ((regs->base.uartfr & PL011_UARTFR_TXFE) == 0) {
/* Wait for empty */
}
while ((regs->base.uartfr & PL011_UARTFR_BUSY) != 0) {
/* Wait for empty */
}
}
int versal_uart_initialize(rtems_termios_device_context *base)
{
volatile pl011_base *regs = (volatile pl011_base *)arm_pl011_get_regs(base);
arm_pl011_context *ctx = (arm_pl011_context *) base;
uint32_t maxerr = 3;
uint32_t ibauddiv = 0;
uint32_t fbauddiv = 0;
int rv;
versal_uart_reset_tx_flush(base);
rv = arm_pl011_compute_baudrate_params(
&ibauddiv,
&fbauddiv,
VERSAL_UART_DEFAULT_BAUD,
ctx->clock,
maxerr
);
if (rv != 0) {
return rv;
}
/* Line control: 8-bit word length, no parity, no FIFO, 1 stop bit */
regs->uartlcr_h = PL011_UARTLCR_H_WLEN( PL011_UARTLCR_H_WLEN_8 )
| PL011_UARTLCR_H_FEN;
/* Control: receive, transmit, uart enable, no CTS, no RTS, no loopback */
regs->uartcr = PL011_UARTCR_RXE
| PL011_UARTCR_TXE
| PL011_UARTCR_UARTEN;
regs->uartibrd = ibauddiv;
regs->uartfbrd = fbauddiv;
return 0;
}
static bool versal_uart_first_open(
rtems_termios_tty *tty,
rtems_termios_device_context *base,
struct termios *term,
rtems_libio_open_close_args_t *args
)
{
#ifdef BSP_CONSOLE_USE_INTERRUPTS
versal_pl011_context *ctx = (versal_pl011_context *) base;
volatile arm_pl011_uart *regs = (volatile arm_pl011_uart *) ctx->pl011_ctx.regs;
rtems_status_code sc;
ctx->transmitting = false;
ctx->pl011_ctx.tx_queued_chars = 0;
ctx->pl011_ctx.needs_sw_triggered_tx_irq = true;
#endif
rtems_termios_set_initial_baud(tty, VERSAL_UART_DEFAULT_BAUD);
versal_uart_initialize(base);
#ifdef BSP_CONSOLE_USE_INTERRUPTS
regs->base.uartifls = PL011_UARTIFLS_RXIFLSEL(2) | PL011_UARTIFLS_TXIFLSEL(2);
regs->base.uartlcr_h |= PL011_UARTLCR_H_FEN;
versal_uart_intr_disableall(regs);
sc = rtems_interrupt_handler_install(
ctx->pl011_ctx.irq,
"UART",
RTEMS_INTERRUPT_SHARED,
versal_uart_interrupt,
tty
);
if (sc != RTEMS_SUCCESSFUL) {
return false;
}
versal_uart_intr_clearall(regs);
versal_uart_intr_enable(regs, PL011_UARTI_RTI | PL011_UARTI_RXI);
#endif
return true;
}
#ifdef BSP_CONSOLE_USE_INTERRUPTS
static void versal_uart_last_close(
rtems_termios_tty *tty,
rtems_termios_device_context *base,
rtems_libio_open_close_args_t *args
)
{
versal_pl011_context *ctx = (versal_pl011_context *) base;
rtems_interrupt_handler_remove(ctx->pl011_ctx.irq, versal_uart_interrupt, tty);
}
#endif
static void versal_uart_write_support(
rtems_termios_device_context *base,
const char *buf,
size_t len
)
{
#ifdef BSP_CONSOLE_USE_INTERRUPTS
versal_pl011_context *ctx = (versal_pl011_context *) base;
volatile arm_pl011_uart *regs = (volatile arm_pl011_uart *) ctx->pl011_ctx.regs;
if (len > 0) {
size_t len_remaining = len;
const char *p = &buf[0];
versal_uart_intr_enable(regs, PL011_UARTI_TXI);
/*
* The PL011 IP in the Versal needs preloading the TX FIFO with
* exactly 17 characters for the first TX interrupt to be
* generated.
*/
if (ctx->pl011_ctx.needs_sw_triggered_tx_irq) {
ctx->pl011_ctx.needs_sw_triggered_tx_irq = false;
for (int i = 0; i < 17; ++i) {
regs->base.uartdr = PL011_UARTDR_DATA('\r');
}
}
while (versal_uart_flags_clear(regs, PL011_UARTFR_TXFF) &&
len_remaining > 0) {
regs->base.uartdr = PL011_UARTDR_DATA(*p++);
--len_remaining;
}
ctx->pl011_ctx.tx_queued_chars = len - len_remaining;
ctx->transmitting = true;
}
#else
ssize_t i;
for (i = 0; i < len; ++i) {
arm_pl011_write_polled(base, buf[i]);
}
#endif
}
static bool versal_uart_set_attributes(
rtems_termios_device_context *context,
const struct termios *term
)
{
versal_pl011_context *ctx = (versal_pl011_context *) context;
volatile arm_pl011_uart *regs = (volatile arm_pl011_uart *) ctx->pl011_ctx.regs;
int32_t baud;
uint32_t ibauddiv = 0;
uint32_t fbauddiv = 0;
uint32_t mode = 0;
int rc;
/*
* Determine the baud rate
*/
baud = rtems_termios_baud_to_number(term->c_ospeed);
if (baud > 0) {
uint32_t maxerr = 3;
rc = arm_pl011_compute_baudrate_params(
&ibauddiv,
&fbauddiv,
baud,
ctx->pl011_ctx.clock,
maxerr
);
if (rc != 0) {
return rc;
}
}
/*
* Configure the mode register
*/
mode = regs->base.uartlcr_h & PL011_UARTLCR_H_FEN;
/*
* Parity
*/
if ((term->c_cflag & PARENB) != 0) {
mode |= PL011_UARTLCR_H_PEN;
if ((term->c_cflag & PARODD) == 0) {
mode |= PL011_UARTLCR_H_EPS;
}
}
/*
* Character Size
*/
switch (term->c_cflag & CSIZE)
{
case CS5:
mode = PL011_UARTLCR_H_WLEN_SET(mode, PL011_UARTLCR_H_WLEN_5);
break;
case CS6:
mode = PL011_UARTLCR_H_WLEN_SET(mode, PL011_UARTLCR_H_WLEN_6);
break;
case CS7:
mode = PL011_UARTLCR_H_WLEN_SET(mode, PL011_UARTLCR_H_WLEN_7);
break;
case CS8:
default:
mode = PL011_UARTLCR_H_WLEN_SET(mode, PL011_UARTLCR_H_WLEN_8);
break;
}
/*
* Stop Bits
*/
if (term->c_cflag & CSTOPB) {
/* 2 stop bits */
mode |= PL011_UARTLCR_H_STP2;
}
versal_uart_intr_disableall(regs);
/*
* Wait for any data in the TXFIFO to be sent then wait while the
* transmiter is active.
*/
while ((regs->base.uartfr & PL011_UARTFR_TXFE) == 0 ||
(regs->base.uartfr & PL011_UARTFR_BUSY) != 0) {
/* Wait */
}
regs->base.uartcr = PL011_UARTCR_UARTEN;
/* Ignore baud rate of B0. There are no modem control lines to de-assert */
if (baud > 0) {
regs->base.uartibrd = ibauddiv;
regs->base.uartfbrd = fbauddiv;
}
regs->base.uartlcr_h = mode;
/* Control: receive, transmit, uart enable, no CTS, no RTS, no loopback */
regs->base.uartcr = PL011_UARTCR_RXE
| PL011_UARTCR_TXE
| PL011_UARTCR_UARTEN;
#ifdef BSP_CONSOLE_USE_INTERRUPTS
versal_uart_intr_clearall(regs);
versal_uart_intr_enable(regs, PL011_UARTI_RTI | PL011_UARTI_RXI);
#endif
return true;
}
const rtems_termios_device_handler versal_uart_handler = {
.first_open = versal_uart_first_open,
.set_attributes = versal_uart_set_attributes,
.write = versal_uart_write_support,
#ifdef BSP_CONSOLE_USE_INTERRUPTS
.last_close = versal_uart_last_close,
.mode = TERMIOS_IRQ_DRIVEN
#else
.poll_read = arm_pl011_read_polled,
.mode = TERMIOS_POLLED
#endif
};

Some files were not shown because too many files have changed in this diff Show More