Compare commits

...

157 Commits

Author SHA1 Message Date
cvs2git
31f25514fb This commit was manufactured by cvs2svn to create tag 'rtems-4-8-0'.
Sprout from rtems-4-8-branch 2008-02-14 17:31:53 UTC Joel Sherrill <joel.sherrill@OARcorp.com> '2008-02-14	Joel Sherrill <joel.sherrill@OARcorp.com>'
Cherrypick from rtems-4-8-branch 2009-07-13 14:20:37 UTC cvs2git <rtems-devel@rtems.org> 'This commit was manufactured by cvs2svn to create branch 'rtems-4-8-branch'.':
    contrib/crossrpms/patches/gdb-6.5-bfinrtems-20071114.diff
    cpukit/libnetworking/ifaddrs.h
    cpukit/libnetworking/libc/getifaddrs.c
    cpukit/libnetworking/libc/if_indextoname.c
    cpukit/libnetworking/libc/if_nameindex.c
2009-07-13 14:20:38 +00:00
Joel Sherrill
dc709596a5 2008-02-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* preinstall.am: Spacing.
2008-02-14 17:31:53 +00:00
Joel Sherrill
876c5d9eb4 2008-02-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* preinstall.am: Include cplb.h
2008-02-14 17:31:17 +00:00
Joel Sherrill
7947987c78 Upgrade to 4.8.0 2008-02-14 17:29:18 +00:00
Joel Sherrill
52e97570a8 2008-02-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/linkcmds.brs5l: Change .bss to .bss*.
2008-02-14 15:36:34 +00:00
Joel Sherrill
d89da6eca7 2008-02-06 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1277/networking
	* libnetworking/netinet/in_cksum_i386.h: Use q instead of r in
	constraint for assembly language. This restricts the register choice
	to the a-d registers.
2008-02-06 16:58:46 +00:00
Joel Sherrill
163a1047c2 2008-02-05 Joel Sherrill <joel.sherrill@OARcorp.com>
* posix/Makefile.am: Remove these. They were proposed but never
	standardized.
	* posix/src/pthreadgetcputime.c, posix/src/pthreadsetcputime.c: Removed.
2008-02-05 22:35:08 +00:00
Ralf Corsepius
bb4a8ad296 Bump version to 0.10. 2008-01-19 05:34:47 +00:00
Ralf Corsepius
f95a584bbe Remove ftp:// URLs (OAR's ftp: is too unreliable.) 2008-01-19 05:34:38 +00:00
Ralf Corsepius
f2bcb618b8 Sync with HEAD.
Add mirrors.
2008-01-14 07:43:26 +00:00
Chris Johns
d24a72f220 2008-01-11 Chris Johns <chisj@rtems.org>
* expat-version: New.

        * build-exes.sh: Fix the size calculation.

        * build-rpms.sh: Add expax support. Clean the BUILD, RPM and SRPM
        directories. Delete the RPM database if cleaning.

        * msys-path.nsi: Add comments.

        * rtems-tools.nsi: Fix the uninstall targets check.

        * target-section-text, targets: Add bfin target.

        * upload.sh: Upload only the specific version of files.

        * version: Build 17.
2008-01-11 22:38:36 +00:00
Ralf Corsepius
713d79e3aa 2007-12-23 Ralf Corsépius <ralf.corsepius@rtems.org>
* libcsupport/src/sync.c: Make sync() POSIX-compliant.
	* libcsupport/src/__gettod.c: Make gettimeofday() POSIX-compliant.
2007-12-23 07:14:23 +00:00
Ralf Corsepius
c752e84935 Make gettimeofday() POSIX-compliant. 2007-12-23 07:14:12 +00:00
Ralf Corsepius
e9a9bdd1e5 Make sync() POSIX-compliant. 2007-12-23 07:13:55 +00:00
Ralf Corsepius
2bf27202ea Regenerate. 2007-12-22 00:29:06 +00:00
Joel Sherrill
5881d06cb9 2007-12-21 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1268/cpukit
	* libcsupport/include/rtems/assoc.h,
	rtems/src/semtranslatereturncode.c: There is no
	rtems_assoc_ptr_by_value method.
2007-12-21 15:23:01 +00:00
Ralf Corsepius
7d25764ef3 newlib-1.15.0-rtems4.8-20071221.diff 2007-12-21 11:31:44 +00:00
Ralf Corsepius
faa0950d4d Apply %{?_smp_mflags}. 2007-12-21 11:31:06 +00:00
Ralf Corsepius
f5cc928819 Reflect API changes from newlib-1.16.0 2007-12-21 11:30:36 +00:00
Ralf Corsepius
d475f9d7d0 Regenerate. 2007-12-17 07:52:25 +00:00
Ralf Corsepius
e945d6b9c9 Backport from HEAD. 2007-12-17 07:51:52 +00:00
Ralf Corsepius
50f25ace20 Sync. 2007-12-17 03:57:46 +00:00
Ralf Corsepius
7875d408be 2007-12-16 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Revert Joel's 2007-06-13 NDEBUG patch.
2007-12-16 18:14:09 +00:00
Ralf Corsepius
ed36c3513d Bump GDB_RPMREL. 2007-12-16 12:45:35 +00:00
Ralf Corsepius
5dd2ecbbc9 gdb-6.6-rtems4.8-20071216.diff. 2007-12-16 12:45:16 +00:00
Ralf Corsepius
ce195afa2f New. 2007-12-16 12:38:14 +00:00
Ralf Corsepius
bd025cde6b Remove. 2007-12-16 12:37:49 +00:00
Ralf Corsepius
1ecaae4972 Back port from HEAD. 2007-12-16 12:35:49 +00:00
Ralf Corsepius
16b5fa3163 Remove cpukit. 2007-12-16 12:29:29 +00:00
Ralf Corsepius
ae8600f335 Add %{?_smp_mflags}. 2007-12-16 12:18:51 +00:00
Joel Sherrill
49bf16a322 2007-12-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/src/pheapallocatealigned.c, score/src/pheapgetblocksize.c:
	Reverse file contents.
2007-12-11 23:44:29 +00:00
Ralf Corsepius
87f08a6b37 Remove from rtems-4-8-branch. 2007-12-10 04:03:24 +00:00
Ralf Corsepius
c3bb858209 2007-12-10 Ralf Corsépius <ralf.corsepius@rtems.org>
* cpu_supplement/tic4x.t: Remove.
2007-12-10 04:00:24 +00:00
Ralf Corsepius
06b8ba0ac5 Remove. 2007-12-10 03:59:49 +00:00
Ralf Corsepius
3402633033 2007-12-10 Ralf Corsépius <ralf.corsepius@rtems.org>
* cpu_supplement/Makefile.am, cpu_supplement/cpu_supplement.texi:
	Remove refs to tic4x/c4x.
2007-12-10 03:59:18 +00:00
Ralf Corsepius
372cdd515f 2007-12-10 Ralf Corsepius <ralf.corsepius@rtems.org>
* address.h, address.inl, chain.c, chain.h, system.h:
	Eliminate unsigned8, unsigned16, unsigned32.
	Use size_t, ptrdiff_t, intptr_t for 64bit compliance.
	* chain.c: Reflect removal of isr.h.
	* isr.h: Remove.
	* Makefile.am: Remove isr.h.
2007-12-10 03:44:06 +00:00
Joel Sherrill
aa56c20114 2007-12-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* httpd/Makefile.am, httpd/preinstall.am,
	rtems/src/semtranslatereturncode.c: rtems_webserver.h must be
	installed. It is the initialization interface for both GoAhead and
	Simple HTTPD.
2007-12-06 15:18:42 +00:00
Joel Sherrill
2e3199e9ca 2007-12-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* shared/include/grcan_spwrtc.h: Removed.
2007-12-06 14:21:05 +00:00
Joel Sherrill
1b0c3e6cff 2007-12-05 Daniel Hellstrom <daniel@gaisler.com>
* Makefile.am: i2c should be on branch as well as CVS head.
	* shared/i2c/i2cmst.c, shared/include/i2cmst.h: New files.
2007-12-05 15:49:40 +00:00
Joel Sherrill
7e15770cda 2007-12-05 Daniel Hellstrom <daniel@gaisler.com>
* Makefile.am, preinstall.am: i2c should be on branch as well as CVS
	head.
2007-12-05 15:49:38 +00:00
Joel Sherrill
e5ce943eb9 2007-12-05 Daniel Hellstrom <daniel@gaisler.com>
* shared/include/ambapp.h: Sync head and 4.8 branch.
2007-12-05 15:41:28 +00:00
Ralf Corsepius
8ffd6be0ea 2007-12-05 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Remove score/cpu/avr/Makefile,
	score/cpu/nios2/Makefile, score/cpu/avr/Makefile.
	* score/cpu/Makefile.am: Remove avr, nios2, c4x.
2007-12-05 09:37:57 +00:00
Ralf Corsepius
dea5bb944e Remove score/cpu/avr/Makefile, score/cpu/nios2/Makefile, score/cpu/avr/Makefile. 2007-12-05 09:37:49 +00:00
Ralf Corsepius
76fb8a6c19 Remove avr, nios2, c4x. 2007-12-05 09:37:28 +00:00
Ralf Corsepius
abc81aa749 2007-12-05 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Remove nios2.
2007-12-05 05:14:05 +00:00
Ralf Corsepius
54e05e1169 Remove nios2. 2007-12-05 05:13:18 +00:00
Ralf Corsepius
bec1af03d4 Remove from rtems-4-8-branch. 2007-12-05 05:12:33 +00:00
Ralf Corsepius
ad8f26a766 Remove nios, tic4x family BSPs. 2007-12-04 16:27:14 +00:00
Ralf Corsepius
ccdfdb203d Remove tic4x, avr. 2007-12-04 16:24:06 +00:00
Ralf Corsepius
3753b0076f Remove tic4x, avr from rtems-4-8-branch. 2007-12-04 16:23:21 +00:00
Ralf Corsepius
29cce4be45 Remove from rtems-4-8-branch. 2007-12-04 16:22:31 +00:00
Ralf Corsepius
8abda6510f Revert previous change. 2007-12-04 16:15:55 +00:00
Ralf Corsepius
01a9d2c308 2007-10-15 Ralf Corsépius <ralf.corsepius@rtems.org>
* libnetworking/netdb.h, libnetworking/libc/gethostnamadr.c,
	libnetworking/libc/getnetnamadr.c: Adjust to POSIX.
	Minor updates from FreeBSD.
2007-12-04 16:15:22 +00:00
Ralf Corsepius
be39e03665 2007-12-04 Ralf Corsépius <ralf.corsepius@rtems.org>
* score/cpu/nios2, score/cpu/c4x, score/cpu/avr: Remove from
	  rtems-4-8-branch.
2007-12-04 16:14:51 +00:00
Ralf Corsepius
1992eff989 Remove from rtems-4-8-branch. 2007-12-04 16:13:25 +00:00
Joel Sherrill
e1cc416af0 2007-11-30 Joel Sherrill <joel.sherrill@OARcorp.com>
* irq/GT64260Int.c, network/if_100MHz/Makefile.am,
	network/if_1GHz/Makefile.am: Removed.
2007-11-30 23:00:05 +00:00
Joel Sherrill
38f3ce540a 2007-11-30 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/bspstart.c: BSP_DIRTY_MEMORY should be tested for zero not
	just defined.
2007-11-30 18:17:44 +00:00
Joel Sherrill
b25b7da807 2007-11-30 Daniel Hellstrom <daniel@gaisler.com>
* shared/include/grspw.h, shared/spw/grspw.c: GRSPW SpaceWire Driver.
	Fixes typecast to volatile integer instead of to integer. Added
	scanning for GRSPW2 Core, The GRSPW2 core is run in legacy mode.
2007-11-30 16:53:44 +00:00
Joel Sherrill
125d4c61b7 2007-11-30 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: LEON2/3 OCCAN CAN driver. Fixes typecast to
	volatile integer where needed. Fixes bug where closing the driver and
	opening it again could make the driver not starting transmission due
	to the software fifo was not cleared.
2007-11-30 16:52:23 +00:00
Joel Sherrill
0cec037ece 2007-11-30 Daniel Hellstrom <daniel@gaisler.com>
* rasta/rasta.c: LEON2 PCI RASTA driver. Changes RASTA PCI interrupt to
	5 from 4. This is to avoid conflict with the LAN9C111 network MAC
	driver using interrupt 4.
2007-11-30 16:51:10 +00:00
Joel Sherrill
d805da0ef1 2007-11-30 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/grcan.c, shared/can/grcan_rasta.c,
	shared/include/ambapp.h: GRCAN CAN driver. Fixes Interrupt
	enabling/disabling in the driver, interrupt may not be restored
	correctly. Implements the baud rate calculation routine. Removed
	unnecessary printk. Fixed scanning to support GRCAN and GRHCAN
	hardware. Added GRCAN device number to ambapp.h.
2007-11-30 16:48:06 +00:00
Ralf Corsepius
cf148c70b0 Regnerate. 2007-11-30 06:02:22 +00:00
Ralf Corsepius
b32338aba0 GCC_RPMREL = 27. 2007-11-30 06:00:40 +00:00
Ralf Corsepius
afb21a9997 Upgrade to gcc-4.2.2 2007-11-29 17:24:15 +00:00
Ralf Corsepius
eb5b37d6c0 Copy from CVS-HEAD/rtems-4.9 2007-11-29 17:20:26 +00:00
Glenn Humphrey
fc121ce659 2007-11-29 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* develenv/direct.t, develenv/sample.t: Corrected various errors in the
	documentation.
2007-11-29 16:13:32 +00:00
Ralf Corsepius
b5273f01dd gcc-core-4.2.1-rtems4.8-20071129. 2007-11-29 13:38:44 +00:00
Ralf Corsepius
385451bd5c Backport from CVS-HEAD/rtems-4.9 2007-11-29 13:37:27 +00:00
Joel Sherrill
f52af242aa 2007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com>
* custom/mvme5500.cfg: Fix typo.
2007-11-28 21:15:35 +00:00
Glenn Humphrey
ef47c44f50 2007-11-28 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* user/barrier.t, user/clock.t, user/concepts.t, user/conf.t,
	user/datatypes.t, user/dpmem.t, user/fatal.t, user/init.t, user/mp.t,
	user/msg.t, user/part.t, user/region.t, user/rtmon.t, user/sem.t,
	user/task.t, user/timer.t: Corrected various errors in the
	documentation.
2007-11-28 16:24:39 +00:00
Glenn Humphrey
bd58b13034 2007-11-27 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* rtems.adb, rtems.ads: Fixed errors in the barrier binding.
2007-11-27 21:23:13 +00:00
Joel Sherrill
32daf5dbef 2007-11-27 Kate Feng <feng1@bnl.gov>
* custom/mvme5500.cfg: Add compiler arguments sine without them, the
	BSP has issues.
2007-11-27 20:47:15 +00:00
Glenn Humphrey
a74aefea2c 2007-11-27 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* sp33/init.c, sp33/sp33.scn: Added several test cases to improve test
	coverage.
2007-11-27 20:42:42 +00:00
Glenn Humphrey
7301b37101 2007-11-27 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* psxbarrier01/psxbarrier01.scn, psxbarrier01/test.c,
	psxrwlock01/psxrwlock01.scn, psxrwlock01/test.c: Added several test
	cases to improve test coverage.
2007-11-27 20:13:09 +00:00
Joel Sherrill
d9779bda42 2007-11-27 Joel Sherrill <joel.sherrill@OARcorp.com>
* develenv/develenv.texi, develenv/direct.t, develenv/intro.texi,
	develenv/sample.t, develenv/utils.t: Update directory tree.
2007-11-27 19:30:59 +00:00
Glenn Humphrey
5d55a0b242 2007-11-27 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* posix/src/prwlocktimedrdlock.c, posix/src/prwlocktimedwrlock.c,
	rtems/include/rtems/rtems/barrier.h,
	score/src/corerwlockobtainread.c, score/src/corerwlockobtainwrite.c,
	score/src/corerwlockrelease.c: Fixed several implementation errors.
2007-11-27 18:45:03 +00:00
Joel Sherrill
6bca11e8d6 2007-11-27 Joel Sherrill <joel.sherrill@oarcorp.com>
* user/conf.t: Add CONFIGURE_APPLICATION_EXTRA_DRIVERS.
2007-11-27 15:36:18 +00:00
Joel Sherrill
4b650b58a6 2007-11-27 Joel Sherrill <joel.sherrill@oarcorp.com>
* sapi/include/confdefs.h: Add CONFIGURE_APPLICATION_EXTRA_DRIVERS.
2007-11-27 15:36:12 +00:00
Joel Sherrill
325a4df0a3 2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* bootcard.c: Add comment.
2007-11-26 22:09:45 +00:00
Joel Sherrill
7fd0bc4df5 2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* shmsupp/getcfg.c: Fix spacing.
2007-11-26 21:53:16 +00:00
Joel Sherrill
0519e2c13f 2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* clock/ckinit.c, include/bsp.h: Fix spacing.
2007-11-26 21:53:14 +00:00
Joel Sherrill
c4254e957f 2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/src/printk.c, score/src/objectget.c: Fix spacing.
2007-11-26 21:13:35 +00:00
Joel Sherrill
8802a9b3d1 2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/src/malloc.c: Do not assert on free of bad pointer.
2007-11-26 21:13:02 +00:00
Joel Sherrill
3a9e70c16b 2007-11-26 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest.in: Filter out Memory exception error messages.
2007-11-26 19:46:24 +00:00
Joel Sherrill
e2f429f144 2007-11-26 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/include/rtems/score/thread.h: Fix spelling error.
2007-11-26 19:35:48 +00:00
Joel Sherrill
8545a7eafc 2007-11-26 Joel Sherrill <joel.sherrill@OARcorp.com>
* shared/console/uart.c: Fix typo.
2007-11-26 19:34:21 +00:00
Joel Sherrill
5cc0c0d3a1 2007-11-26 Eric Norum <norume@aps.anl.gov>
* network/network.c: Fix LED configuration to match uCDIMM.
2007-11-26 17:48:39 +00:00
Ralf Corsepius
08988b7d3d Remove. 2007-11-15 04:38:18 +00:00
Ralf Corsepius
27de0e70fd Update. 2007-11-14 14:37:33 +00:00
Ralf Corsepius
72c04e843d Remove. 2007-11-14 14:35:06 +00:00
Ralf Corsepius
6dba71ebcb backup. 2007-11-13 15:09:07 +00:00
Ralf Corsepius
02058598d4 Backport from HEAD. 2007-11-13 09:29:15 +00:00
Ralf Corsepius
be4e5f6967 GCC_RPMREL = 14. 2007-11-13 09:26:55 +00:00
Ralf Corsepius
fc98297639 New. 2007-11-13 09:26:17 +00:00
Ralf Corsepius
425cb26a52 More makeinfo hacks. 2007-11-11 16:58:15 +00:00
Ralf Corsepius
484d126a28 New. 2007-11-11 13:19:55 +00:00
Ralf Corsepius
e55f7f714e Remove gcc-3.4.6. 2007-11-11 13:19:12 +00:00
Ralf Corsepius
3254133b45 Remove gcc-4.2.0. 2007-11-11 13:17:20 +00:00
Ralf Corsepius
02e1bdbfa7 Remove gcc-4.0.3. 2007-11-11 13:16:07 +00:00
Ralf Corsepius
a3459e847b Remove gcc-4.1.2. 2007-11-11 13:14:31 +00:00
Ralf Corsepius
501a675ab2 Remove gcc-4.1.1. 2007-11-11 13:13:51 +00:00
Ralf Corsepius
7894589578 gcc-core-4.2.1-rtems4.8-20071111.diff. 2007-11-11 13:11:41 +00:00
Ralf Corsepius
4ee3225ebb GCC_RPMREL = 25. 2007-11-11 13:11:05 +00:00
Ralf Corsepius
cfa08cf05a Regenerate. 2007-11-10 07:05:17 +00:00
Ralf Corsepius
2b6a100aee gdb-6.6-rtems4.8-20071110.diff 2007-11-10 07:04:57 +00:00
Ralf Corsepius
70a276acc3 New. 2007-11-10 07:03:42 +00:00
Ralf Corsepius
42561520ea GDB_RPMREL = 10 2007-11-10 07:02:16 +00:00
Ralf Corsepius
116826e77d Remove (Unused). 2007-11-10 05:47:54 +00:00
Ralf Corsepius
66a55224a9 Remove gdb-6.5 2007-11-10 05:46:40 +00:00
Ralf Corsepius
001c1508c8 Update gdb-6.6 patch. 2007-11-10 05:43:14 +00:00
Joel Sherrill
57a483cf41 2007-11-06 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1266/cpukit
	* posix/src/keycreate.c, posix/src/keyrundestructors.c: Use API instead
	of class for key indexing.
2007-11-06 21:38:58 +00:00
Joel Sherrill
2a65626503 2007-11-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* sp13/system.h: We need 32K of message buffer memory not 32 bytes.
2007-11-06 20:23:01 +00:00
Glenn Humphrey
2211225438 2007-11-06 Glenn Humphrey <glenn.humphrey@OARcorp.com>
Miscellaneous changes made after a review against the POSIX spec.
	* posix/src/pbarrierinit.c, posix/src/prwlockinit.c: If the caller
	passes a NULL in the attributes parameter, default attributes are used.
	* posix/src/prwlockdestroy.c: If there is at least one thread
	waiting, do not allow deletion.
	* posix/src/prwlockwrlock.c: Corrected parameter passed to the core
	operation used to obtain a RWLock for writing.
	* posix/src/pspinlocktranslatereturncode.c,
	score/include/rtems/score/corespinlock.h,
	score/src/corespinlockrelease.c: If the current thread is not the
	holder of the lock, do not allow an unlock and return EPERM.
	* score/src/corerwlockobtainwrite.c: Corrected to use the operation
	for queueing with a timeout handler.
2007-11-06 19:54:22 +00:00
Ralf Corsepius
0e95f1e57d Regenerate. 2007-11-04 09:36:15 +00:00
Ralf Corsepius
7d1ca2ac60 BINUTILS_RPMREL = 2. 2007-11-04 09:34:49 +00:00
Ralf Corsepius
6dc5431424 binutils-2.18-rtems4.8-20071104.diff. 2007-11-04 09:34:31 +00:00
Ralf Corsepius
7eb30458c4 New. 2007-11-04 09:31:43 +00:00
Joel Sherrill
334573e372 2007-11-02 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/cpu/sparc/cpu.c, score/cpu/sparc/rtems/score/cpu.h,
	score/include/rtems/score/context.h, score/src/threadhandler.c: Fix
	stack so gdb backtrace does not print corrupted frame message after
	_Thread_Handler. Daniel Hellstrom <daniel@gaisler.com> provided the
	SPARC implementation and I made it more general.
2007-11-02 13:35:12 +00:00
Ralf Corsepius
0e7cee45c0 Upgrade to gdb-4.7.1 2007-11-01 07:47:41 +00:00
Ralf Corsepius
547657c34f Remove ref to rtems4.9 2007-11-01 07:46:19 +00:00
Ralf Corsepius
6d837a6273 New (from TRUNK). 2007-11-01 07:36:50 +00:00
Ralf Corsepius
aa26724ca5 Sync with trunk 2007-11-01 07:35:16 +00:00
Ralf Corsepius
21b3f3b114 Remove GDB. 2007-11-01 07:29:05 +00:00
Glenn Humphrey
8294a5d9f6 2007-10-26 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* rtems.adb, rtems.ads: Merge binding updates from CVS head. Bindings
	should now be reasonably in sync with C Classic API.
2007-10-26 21:37:07 +00:00
Glenn Humphrey
1b03eed0e5 2007-10-26 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* user/rtmon.t: Fix report output.

2007-10-25	Glenn Humphrey <glenn.humphrey@OARcorp.com>

	* user/barrier.t, user/clock.t, user/concepts.t, user/cpuuse.t,
	user/init.t, user/intr.t, user/io.t, user/mp.t, user/rtmon.t,
	user/sem.t, user/stackchk.t, user/task.t, user/timer.t: Updated the
	Ada documentation to reflect the current binding.
2007-10-26 21:34:57 +00:00
Glenn Humphrey
c4215bad1f 2007-10-26 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* cpuuse/task2.c, rtmonuse/rtmonuse.scn, rtmonuse/task1.c: Add new
	cases for untested routines.
2007-10-26 21:32:09 +00:00
Glenn Humphrey
0f4f543279 2007-10-26 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* libmisc/cpuuse/cpuusagereport.c, rtems/src/ratemonreportstatistics.c:
	Cleaned up reports and fixed a bug related the printf format which
	resulted in lack of leading zeroes and misleading magnitude.
	* score/src/timespecdivide.c: Fixed bugs related to zero divide case.
2007-10-26 21:31:04 +00:00
Joel Sherrill
3ab4ba719a 2007-10-19 Joel Sherrill <joel.sherrill@OARcorp.com>
* telnetd/icmds.c: Add header to file.
2007-10-19 21:34:34 +00:00
Joel Sherrill
f3b1d6851d Fix typo. 2007-10-19 21:34:28 +00:00
Joel Sherrill
0afb968bad 2007-10-19 Joel Sherrill <joel.sherrill@OARcorp.com>
* libcsupport/src/assoc.c: Removed.  Accidentally included routine
	also in another file.  Mistake after splitting.
	* libcsrc/Makefile.am: Reflect file removal.
2007-10-19 14:38:25 +00:00
Joel Sherrill
9fe54b2469 2007-10-19 Joel Sherrill <joel.sherrill@OARcorp.com>
* libcsupport/src/assoc.c: Removed.  Accidentally included routine
	also in another file.  Mistake after splitting.
2007-10-19 14:37:12 +00:00
Joel Sherrill
814986ce3e 2007-10-14 Eric Norum <norume@aps.anl.gov>
* clock/clock.c: Add nanoseconds since tick support.
2007-10-16 17:14:38 +00:00
Ralf Corsepius
df3055aa6f 2007-10-15 Ralf Corsépius <ralf.corsepius@rtems.org>
* libnetworking/netdb.h, libnetworking/libc/gethostnamadr.c,
	libnetworking/libc/getnetnamadr.c: Adjust to POSIX.
	Minor updates from FreeBSD.
2007-10-15 08:00:49 +00:00
Ralf Corsepius
d9a8aa054a Adjust to POSIX. Minor updates from FreeBSD. 2007-10-15 08:00:38 +00:00
Ralf Corsepius
8e1da2b644 Add if_nameindex (from FreeBSD). 2007-10-15 06:53:08 +00:00
Ralf Corsepius
a38723dd1e New. 2007-10-12 02:39:00 +00:00
Ralf Corsepius
2e4aab8738 Remove. 2007-10-12 02:36:58 +00:00
Joel Sherrill
6c64bcc365 2007-10-11 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fixes bug in OC-CAN baud rate calculator. The
	BTR1 8-bit value was swapped.
2007-10-11 12:54:30 +00:00
Joel Sherrill
ad8c2e6cbf 2007-10-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/include/rtems/score/copyrt.h: Update year.
2007-10-11 12:50:27 +00:00
Joel Sherrill
26ca309c2e 2007-10-11 Daniel Hellstrom <daniel@gaisler.com>
* libi2c/libi2c.c, libi2c/libi2c.h: Add message about needing IMFS.
	Fixed check of status when registering driver. Add use of strerror().
2007-10-11 12:46:58 +00:00
Joel Sherrill
22f39fc0dc 2007-10-05 Ray Xu <xr@trasin.net>
* lpc22xx/clock/clockdrv.c, lpc22xx/irq/irq.c, lpc22xx/irq/irq.h: Now
	runs in Skyeye.
2007-10-05 18:58:02 +00:00
Ralf Corsepius
5f3b50c779 Regenerate. 2007-10-04 16:07:27 +00:00
Ralf Corsepius
98c8d080c1 2007-10-04 Keith Robertson <kjrobert@alumni.uwaterloo.ca>,
Ralf Corsépius <ralf.corsepius@rtems.org>

	* libnetworking/ifaddrs.h, libnetworking/libc/getifaddrs.c,
	libnetworking/libc/if_indextoname.c,
	libnetworking/libc/if_nameindex.c: New (from FreeBSD)
	* Makefile.am: Add files above.
	* libnetworking/net/if.h: Add if_nameindex (from FreeBSD).
2007-10-04 16:06:49 +00:00
Joel Sherrill
470775b284 2007-10-02 Jukka Pietarinen <jukka.pietarinen@mrf.fi>
* startup/linkcmds: Move definition of _end so memory is not corrupted.
2007-10-02 13:54:19 +00:00
Ralf Corsepius
433c7cad67 Remove. 2007-10-01 03:56:46 +00:00
Joel Sherrill
11d617593f 2007-09-28 Joel Sherrill <joel.sherrill@oarcorp.com>
* libmisc/stackchk/check.c: Eliminate output with little information.
	Always print a blown message using the same routine. Now works with
	GNAT RTS -fstack-checking if you have patch for the RTEMS specific
	support in your GCC version.
2007-09-28 15:03:48 +00:00
Ralf Corsepius
e463596fc9 Update. 2007-09-28 07:47:33 +00:00
Joel Sherrill
27f0a73aa2 2007-09-25 Joel Sherrill <joel.sherrill@OARcorp.com>
* nfsclient/Makefile.am: Fix errors.
2007-09-25 21:33:11 +00:00
Joel Sherrill
77a152c74b 2007-09-25 Joel Sherrill <joel.sherrill@OARcorp.com>
* nfsclient/Makefile.am, nfsclient/preinstall.am: Install libnfs.a.
2007-09-25 16:56:09 +00:00
Joel Sherrill
6f5abc6638 2007-09-24 Chris Johns <chrisj@rtems.org>
* include/bsp.h: Do not use C++ comments.
2007-09-24 21:40:49 +00:00
Joel Sherrill
c2ac7e9df5 2007-09-21 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fix warning on Diab compiler.
2007-09-21 15:47:53 +00:00
Joel Sherrill
b9f17f8a41 2007-09-21 Joel Sherrill <joel.sherrill@OARcorp.com>
* network_5200/network.c: Add multicast support.
2007-09-21 15:45:11 +00:00
Joel Sherrill
6fe3bb36d6 2007-09-20 Joel Sherrill <joel.sherrill@OARcorp.com>
* preinstall.am: Add cplb.h.
	* startup/bspstart.c: Add cast of constant.
2007-09-20 21:44:38 +00:00
Joel Sherrill
ae6b44f55c 2007-09-20 Kate Feng <feng1@bnl.gov>
* network/if_100MHz/GT64260eth.c: Add else.
2007-09-20 16:35:23 +00:00
Joel Sherrill
81a54e64f7 2007-09-19 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fix Reenable command and fix typo.
2007-09-19 15:14:52 +00:00
Joel Sherrill
a925b871a0 2007-09-19 Kate Feng <feng1@bnl.gov>
* README: Update.
2007-09-19 14:47:26 +00:00
cvs2git
a24f7003ab This commit was manufactured by cvs2svn to create branch 'rtems-4-8-branch'.
Sprout from master 2007-09-19 06:34:25 UTC Ralf Corsepius <ralf.corsepius@rtems.org> 'Regenerate.'
Cherrypick from shttpd 2007-06-11 13:24:29 UTC Ralf Corsepius <ralf.corsepius@rtems.org> 'Import from shttpd-1.37.':
    cpukit/shttpd/auth.c
    cpukit/shttpd/cgi.c
    cpukit/shttpd/compat_unix.c
    cpukit/shttpd/compat_unix.h
    cpukit/shttpd/compat_win32.c
    cpukit/shttpd/compat_win32.h
    cpukit/shttpd/compat_wince.c
    cpukit/shttpd/compat_wince.h
    cpukit/shttpd/config.c
    cpukit/shttpd/io.h
    cpukit/shttpd/io_cgi.c
    cpukit/shttpd/io_dir.c
    cpukit/shttpd/io_emb.c
    cpukit/shttpd/io_file.c
    cpukit/shttpd/io_socket.c
    cpukit/shttpd/io_ssl.c
    cpukit/shttpd/llist.h
    cpukit/shttpd/md5.c
    cpukit/shttpd/md5.h
    cpukit/shttpd/mime_type.c
    cpukit/shttpd/shttpd.1
    cpukit/shttpd/shttpd.c
    cpukit/shttpd/shttpd.h
    cpukit/shttpd/ssl.h
    cpukit/shttpd/standalone.c
    cpukit/shttpd/std_includes.h
Cherrypick from SLAC 2007-07-25 05:22:23 UTC Ralf Corsepius <ralf.corsepius@rtems.org> 'Import from rtems-nfs-1.5.tgz.':
    c/src/nfsclient/LICENSE
    c/src/nfsclient/README
    c/src/nfsclient/proto/mount_prot.h
    c/src/nfsclient/proto/mount_prot.x
    c/src/nfsclient/proto/mount_prot_xdr.c
    c/src/nfsclient/proto/nfs_prot.h
    c/src/nfsclient/proto/nfs_prot.x
    c/src/nfsclient/proto/nfs_prot_xdr.c
    c/src/nfsclient/rfc1094.txt
    c/src/nfsclient/rtems-filesystem-patch
    c/src/nfsclient/src/cexphelp.c
    c/src/nfsclient/src/librtemsNfs.h
    c/src/nfsclient/src/nfs.c
    c/src/nfsclient/src/nfs.modini.c
    c/src/nfsclient/src/nfsTest.c
    c/src/nfsclient/src/rpcio.h
    c/src/nfsclient/src/rpcio.modini.c
    c/src/nfsclient/src/sock_mbuf.c
    c/src/nfsclient/src/xdr_mbuf.c
Cherrypick from zlib 2005-10-28 07:22:42 UTC Ralf Corsepius <ralf.corsepius@rtems.org> 'Import of zlib-1.2.2.2.tar.gz':
    cpukit/zlib/FAQ
    cpukit/zlib/INDEX
    cpukit/zlib/README
    cpukit/zlib/algorithm.txt
    cpukit/zlib/crc32.h
    cpukit/zlib/infback.c
    cpukit/zlib/inffast.c
    cpukit/zlib/inffast.h
    cpukit/zlib/inffixed.h
    cpukit/zlib/inflate.c
    cpukit/zlib/inflate.h
    cpukit/zlib/trees.h
    cpukit/zlib/zlib.3
    cpukit/zlib/zlib.h
Cherrypick from rtemsdoc-4-5-branch 1997-05-27 12:40:10 UTC Joel Sherrill <joel.sherrill@OARcorp.com> 'base RTEMS documentation':
    doc/common/treedef.tex
Delete:
    contrib/crossrpms/cygwin/.cvsignore
    contrib/crossrpms/cygwin/Makefile.am
    contrib/crossrpms/cygwin/binutils.am
    contrib/crossrpms/cygwin/gcc-prep.add
    contrib/crossrpms/cygwin/gcc.am
    contrib/crossrpms/cygwin/i686/.cvsignore
    contrib/crossrpms/cygwin/i686/Makefile.am
    contrib/crossrpms/cygwin/i686/binutils-sources.add
    contrib/crossrpms/cygwin/i686/gcc-sources.add
    contrib/crossrpms/cygwin/i686/libncurses-devel.add
    contrib/crossrpms/cygwin/i686/libs.add
    contrib/crossrpms/cygwin/i686/target-libncurses-devel.add
    contrib/crossrpms/cygwin/i686/target-libs.add
    contrib/crossrpms/cygwin/i686/target-w32api.add
    contrib/crossrpms/cygwin/i686/target-zlib.add
    contrib/crossrpms/cygwin/i686/w32api.add
    contrib/crossrpms/cygwin/i686/zlib.add
    contrib/crossrpms/freebsd5.2/.cvsignore
    contrib/crossrpms/freebsd5.2/Makefile.am
    contrib/crossrpms/freebsd5.2/binutils.am
    contrib/crossrpms/freebsd5.2/gcc-prep.add
    contrib/crossrpms/freebsd5.2/gcc.am
    contrib/crossrpms/freebsd5.2/i586/.cvsignore
    contrib/crossrpms/freebsd5.2/i586/Makefile.am
    contrib/crossrpms/freebsd5.2/i586/binutils-sources.add
    contrib/crossrpms/freebsd5.2/i586/gcc-prep.add
    contrib/crossrpms/freebsd5.2/i586/gcc-sources.add
    contrib/crossrpms/freebsd5.2/i586/libs.add
    contrib/crossrpms/freebsd5.2/i586/target-libs.add
    contrib/crossrpms/freebsd6.0/.cvsignore
    contrib/crossrpms/freebsd6.0/Makefile.am
    contrib/crossrpms/freebsd6.0/binutils.am
    contrib/crossrpms/freebsd6.0/gcc-prep.add
    contrib/crossrpms/freebsd6.0/gcc.am
    contrib/crossrpms/freebsd6.0/i586/.cvsignore
    contrib/crossrpms/freebsd6.0/i586/Makefile.am
    contrib/crossrpms/freebsd6.0/i586/binutils-sources.add
    contrib/crossrpms/freebsd6.0/i586/gcc-sources.add
    contrib/crossrpms/freebsd6.0/i586/libs.add
    contrib/crossrpms/freebsd6.0/i586/target-libs.add
    contrib/crossrpms/freebsd6.1/.cvsignore
    contrib/crossrpms/freebsd6.1/Makefile.am
    contrib/crossrpms/freebsd6.1/binutils.am
    contrib/crossrpms/freebsd6.1/gcc-prep.add
    contrib/crossrpms/freebsd6.1/gcc.am
    contrib/crossrpms/freebsd6.1/i586/.cvsignore
    contrib/crossrpms/freebsd6.1/i586/Makefile.am
    contrib/crossrpms/freebsd6.1/i586/binutils-sources.add
    contrib/crossrpms/freebsd6.1/i586/gcc-sources.add
    contrib/crossrpms/freebsd6.1/i586/libs.add
    contrib/crossrpms/freebsd6.1/i586/target-libs.add
    contrib/crossrpms/freebsd6.2/.cvsignore
    contrib/crossrpms/freebsd6.2/Makefile.am
    contrib/crossrpms/freebsd6.2/binutils.am
    contrib/crossrpms/freebsd6.2/gcc-prep.add
    contrib/crossrpms/freebsd6.2/gcc.am
    contrib/crossrpms/freebsd6.2/i586/.cvsignore
    contrib/crossrpms/freebsd6.2/i586/Makefile.am
    contrib/crossrpms/freebsd6.2/i586/binutils-sources.add
    contrib/crossrpms/freebsd6.2/i586/gcc-sources.add
    contrib/crossrpms/freebsd6.2/i586/libs.add
    contrib/crossrpms/freebsd6.2/i586/target-libs.add
    contrib/crossrpms/mingw32/.cvsignore
    contrib/crossrpms/mingw32/Makefile.am
    contrib/crossrpms/mingw32/binutils.am
    contrib/crossrpms/mingw32/gcc-prep.add
    contrib/crossrpms/mingw32/gcc.am
    contrib/crossrpms/mingw32/i686/.cvsignore
    contrib/crossrpms/mingw32/i686/Makefile.am
    contrib/crossrpms/mingw32/i686/binutils-sources.add
    contrib/crossrpms/mingw32/i686/gcc-sources.add
    contrib/crossrpms/mingw32/i686/libs.add
    contrib/crossrpms/mingw32/i686/target-libs.add
    contrib/crossrpms/mingw32/i686/target-w32api.add
    contrib/crossrpms/mingw32/i686/w32api.add
    contrib/crossrpms/solaris2.7/.cvsignore
    contrib/crossrpms/solaris2.7/Makefile.am
    contrib/crossrpms/solaris2.7/binutils.am
    contrib/crossrpms/solaris2.7/gcc-prep.add
    contrib/crossrpms/solaris2.7/gcc.am
    contrib/crossrpms/solaris2.7/sparc/.cvsignore
    contrib/crossrpms/solaris2.7/sparc/Makefile.am
    contrib/crossrpms/solaris2.7/sparc/binutils-sources.add
    contrib/crossrpms/solaris2.7/sparc/gcc-sources.add
    contrib/crossrpms/solaris2.7/sparc/libs.add
    contrib/crossrpms/solaris2.7/sparc/target-libs.add
    cpukit/zlib/doc/rfc1950.txt
    cpukit/zlib/doc/rfc1951.txt
    cpukit/zlib/doc/rfc1952.txt
    cpukit/zlib/doc/txtvsbin.txt
    cpukit/zlib/examples/zran.c
    cpukit/zlib/old/as400/bndsrc
    cpukit/zlib/old/as400/compile.clp
    cpukit/zlib/old/as400/readme.txt
    cpukit/zlib/old/visualc6/README.txt
    cpukit/zlib/old/visualc6/example.dsp
    cpukit/zlib/old/visualc6/minigzip.dsp
    cpukit/zlib/old/visualc6/zlib.dsw
    cpukit/zlib/zlib.pc.in
    cpukit/zlib/zlib2ansi
2007-09-19 06:34:26 +00:00
579 changed files with 5723 additions and 34245 deletions

View File

@@ -4,4 +4,4 @@
# $Id$
#
RTEMS Version 4.7.99.2
RTEMS Version 4.8.0

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_VERSIONING],
m4_define([_RTEMS_VERSION],[4.7.99.2]))
m4_define([_RTEMS_VERSION],[4.8.0]))
m4_define([RTEMS_API],[4.8])

View File

@@ -1,3 +1,11 @@
2007-09-25 Joel Sherrill <joel.sherrill@OARcorp.com>
* nfsclient/Makefile.am: Fix errors.
2007-09-25 Joel Sherrill <joel.sherrill@OARcorp.com>
* nfsclient/Makefile.am, nfsclient/preinstall.am: Install libnfs.a.
2007-09-17 Joel Sherrill <joel.sherrill@OARcorp.com>
* libchip/network/smc91111.h: Eliminate DEBUG_puts.

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_VERSIONING],
m4_define([_RTEMS_VERSION],[4.7.99.2]))
m4_define([_RTEMS_VERSION],[4.8.0]))
m4_define([RTEMS_API],[4.8])

View File

@@ -1,3 +1,12 @@
2007-11-27 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* rtems.adb, rtems.ads: Fixed errors in the barrier binding.
2007-10-26 Glenn Humphrey <glenn.humphrey@OARcorp.com>
* rtems.adb, rtems.ads: Merge binding updates from CVS head. Bindings
should now be reasonably in sync with C Classic API.
2007-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
* rtems.adb: Fix warnings.

View File

@@ -17,7 +17,7 @@
-- the file LICENSE in this distribution or at
-- http://www.rtems.com/license/LICENSE.
--
-- rtems.adb,v 1.13.2.2 2003/09/04 18:46:47 joel Exp
-- $Id$
--
with Ada;
@@ -215,6 +215,21 @@ package body RTEMS is
-- RTEMS API
--
--
-- Initialization Manager -- Shutdown Only
--
procedure Shutdown_Executive (
Status : in RTEMS.Unsigned32
) is
procedure Shutdown_Executive_Base (
Status : RTEMS.Unsigned32
);
pragma Import (C, Shutdown_Executive_Base, "rtems_shutdown_executive");
begin
Shutdown_Executive_Base (Status);
end Shutdown_Executive;
--
-- Task Manager
--
@@ -348,6 +363,20 @@ package body RTEMS is
end Task_Resume;
procedure Task_Is_Suspended (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Task_Is_Suspended_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Task_Is_Suspended_Base, "rtems_task_is_suspended");
begin
Result := Task_Is_Suspended_Base ( ID );
end Task_Is_Suspended;
procedure Task_Set_Priority (
ID : in RTEMS.ID;
New_Priority : in RTEMS.Task_Priority;
@@ -434,6 +463,72 @@ package body RTEMS is
end Task_Set_Note;
procedure Task_Variable_Add (
ID : in RTEMS.ID;
Task_Variable : in RTEMS.Address;
Dtor : in RTEMS.Task_Variable_Dtor;
Result : out RTEMS.Status_Codes
) is
function Task_Variable_Add_Base (
ID : RTEMS.ID;
Task_Variable : RTEMS.Address;
Dtor : RTEMS.Task_Variable_Dtor
) return RTEMS.Status_Codes;
pragma Import (C, Task_Variable_Add_Base, "rtems_task_variable_add");
begin
Result := Task_Variable_Add_Base ( ID, Task_Variable, Dtor );
end Task_Variable_Add;
procedure Task_Variable_Get (
ID : in RTEMS.ID;
Task_Variable : out RTEMS.Address;
Task_Variable_Value : out RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function Task_Variable_Get_Base (
ID : RTEMS.ID;
Task_Variable : access RTEMS.Address;
Task_Variable_Value : access RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, Task_Variable_Get_Base, "rtems_task_variable_get");
Task_Variable_Base : aliased RTEMS.Address;
Task_Variable_Value_Base : aliased RTEMS.Address;
begin
Result := Task_Variable_Get_Base (
ID,
Task_Variable_Base'Unchecked_Access,
Task_Variable_Value_Base'Unchecked_Access
);
Task_Variable := Task_Variable_Base;
Task_Variable_Value := Task_Variable_Value_Base;
end Task_Variable_Get;
procedure Task_Variable_Delete (
ID : in RTEMS.ID;
Task_Variable : out RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function Task_Variable_Delete_Base (
ID : RTEMS.ID;
Task_Variable : access RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (
C, Task_Variable_Delete_Base, "rtems_task_variable_delete"
);
Task_Variable_Base : aliased RTEMS.Address;
begin
Result := Task_Variable_Delete_Base (
ID, Task_Variable_Base'Unchecked_Access
);
Task_Variable := Task_Variable_Base;
end Task_Variable_Delete;
procedure Task_Wake_When (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
@@ -466,30 +561,6 @@ package body RTEMS is
-- Interrupt Manager
--
procedure Interrupt_Catch (
New_ISR_Handler : in RTEMS.Address;
Vector : in RTEMS.Vector_Number;
Old_ISR_Handler : out RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function Interrupt_Catch_Base (
New_ISR_Handler : RTEMS.Address;
Vector : RTEMS.Vector_Number;
Old_ISR_Handler : access RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, Interrupt_Catch_Base, "rtems_interrupt_catch");
Old_ISR_Handler_Base : aliased RTEMS.Address;
begin
Result := Interrupt_Catch_Base (
New_ISR_Handler,
Vector,
OLD_ISR_HANDLER_Base'Unchecked_Access
);
Old_ISR_Handler := OLD_ISR_HANDLER_Base;
end Interrupt_Catch;
-- Interrupt_Disable is interfaced in the specification
-- Interrupt_Enable is interfaced in the specification
-- Interrupt_Flash is interfaced in the specification
@@ -499,35 +570,53 @@ package body RTEMS is
-- Clock Manager
--
procedure Clock_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
) is
function Clock_Set_Base (
Time_Buffer : RTEMS.Time_Of_Day
) return RTEMS.Status_Codes;
pragma Import (C, Clock_Set_Base, "rtems_clock_set");
begin
Result := Clock_Set_Base ( Time_Buffer );
end Clock_Set;
procedure Clock_Get (
Option : in RTEMS.Clock_Get_Options;
Time_Buffer : in RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function Clock_Get_base (
function Clock_Get_Base (
Option : RTEMS.Clock_Get_Options;
Time_Buffer : RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, Clock_Get_base, "rtems_clock_get");
pragma Import (C, Clock_Get_Base, "rtems_clock_get");
begin
Result := Clock_Get_base ( Option, Time_Buffer );
Result := Clock_Get_Base ( Option, Time_Buffer );
end Clock_Get;
procedure Clock_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
procedure Clock_Get_Uptime (
Uptime : out RTEMS.Timespec;
Result : out RTEMS.Status_Codes
) is
function Clock_Set_base (
Time_Buffer : RTEMS.Time_Of_Day
function Clock_Get_Uptime_Base (
Uptime : access RTEMS.Timespec
) return RTEMS.Status_Codes;
pragma Import (C, Clock_Set_base, "rtems_clock_set");
pragma Import (C, Clock_Get_Uptime_Base, "rtems_clock_get_uptime");
Uptime_Base : aliased RTEMS.Timespec;
begin
Result := Clock_Set_base ( Time_Buffer );
Result := Clock_Get_Uptime_Base (
Uptime_Base'Unchecked_Access
);
Uptime := Uptime_Base;
end Clock_Set;
end Clock_Get_Uptime;
procedure Clock_Tick (
Result : out RTEMS.Status_Codes
@@ -890,6 +979,20 @@ package body RTEMS is
end Semaphore_Release;
procedure Semaphore_Flush (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Semaphore_Flush_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Semaphore_Flush_Base, "rtems_semaphore_flush");
begin
Result := Semaphore_Flush_Base ( ID );
end Semaphore_Flush;
--
-- Message Queue Manager
--
@@ -1058,6 +1161,30 @@ package body RTEMS is
end Message_Queue_Receive;
procedure Message_Queue_Get_Number_Pending (
ID : in RTEMS.ID;
Count : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
) is
function Message_Queue_Get_Number_Pending_Base (
ID : RTEMS.ID;
Count : access RTEMS.Unsigned32
) return RTEMS.Status_Codes;
pragma Import (
C,
Message_Queue_Get_Number_Pending_Base,
"rtems_message_queue_get_number_pending"
);
COUNT_Base : aliased RTEMS.Unsigned32;
begin
Result := Message_Queue_Get_Number_Pending_Base (
ID, COUNT_Base'Unchecked_Access
);
Count := COUNT_Base;
end Message_Queue_Get_Number_Pending;
procedure Message_Queue_Flush (
ID : in RTEMS.ID;
Count : out RTEMS.Unsigned32;
@@ -1426,6 +1553,34 @@ package body RTEMS is
end Region_Return_Segment;
procedure Region_Resize_Segment (
ID : in RTEMS.ID;
Segment : in RTEMS.Address;
Size : in RTEMS.Unsigned32;
Old_Size : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
) is
function Region_Resize_Segment_Base (
ID : RTEMS.ID;
Segment : RTEMS.Address;
Size : RTEMS.Unsigned32;
Old_Size : access RTEMS.Unsigned32
) return RTEMS.Status_Codes;
pragma Import (C, Region_Resize_Segment_Base,
"rtems_region_resize_segment");
Old_Size_Base : aliased RTEMS.Unsigned32;
begin
Result := Region_Resize_Segment_Base (
ID,
Segment,
Size,
Old_Size_Base'Unchecked_Access
);
Old_Size := Old_Size_Base;
end Region_Resize_Segment;
--
-- Dual Ported Memory Manager
--
@@ -1542,139 +1697,6 @@ package body RTEMS is
end Port_Internal_To_External;
--
-- Input/Output Manager
--
procedure IO_Register_Name (
Name : in String;
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Result : out RTEMS.Status_Codes
) is
function IO_Register_Name_Base (
Name : Interfaces.C.Char_Array;
Major : RTEMS.Device_Major_Number;
Minor : RTEMS.Device_Minor_Number
) return RTEMS.Status_Codes;
pragma Import (C, IO_Register_Name_Base, "rtems_io_register_name");
begin
Result :=
IO_Register_Name_Base ( Interfaces.C.To_C (Name), Major, Minor );
end IO_Register_Name;
procedure IO_Lookup_Name (
Name : in String;
Device_Info : in RTEMS.Driver_Name_t_Pointer;
Result : out RTEMS.Status_Codes
) is
function IO_Lookup_Name_Base (
Name : Interfaces.C.Char_Array;
Device_Info : access RTEMS.Driver_Name_t
) return RTEMS.Status_Codes;
pragma Import (C, IO_Lookup_Name_Base, "rtems_io_lookup_name");
Device_Info_Base : aliased RTEMS.Driver_Name_t;
begin
Result := IO_Lookup_Name_Base (
Interfaces.C.To_C (Name),
Device_Info_Base'Unchecked_Access
);
Device_Info.All := Device_Info_Base;
end IO_Lookup_Name;
procedure IO_Open (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function IO_Open_Base (
Major : RTEMS.Device_Major_Number;
Minor : RTEMS.Device_Minor_Number;
Argument : RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, IO_Open_Base, "rtems_io_open");
begin
Result := IO_Open_Base (Major, Minor, Argument);
end IO_Open;
procedure IO_Close (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function IO_Close_Base (
Major : RTEMS.Device_Major_Number;
Minor : RTEMS.Device_Minor_Number;
Argument : RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, IO_Close_Base, "rtems_io_close");
begin
Result := IO_Close_Base (Major, Minor, Argument);
end IO_Close;
procedure IO_Read (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function IO_Read_Base (
Major : RTEMS.Device_Major_Number;
Minor : RTEMS.Device_Minor_Number;
Argument : RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, IO_Read_Base, "rtems_io_read");
begin
Result := IO_Read_Base (Major, Minor, Argument);
end IO_Read;
procedure IO_Write (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function IO_Write_Base (
Major : RTEMS.Device_Major_Number;
Minor : RTEMS.Device_Minor_Number;
Argument : RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, IO_Write_Base, "rtems_io_write");
begin
Result := IO_Write_Base (Major, Minor, Argument);
end IO_Write;
procedure IO_Control (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
) is
function IO_Control_Base (
Major : RTEMS.Device_Major_Number;
Minor : RTEMS.Device_Minor_Number;
Argument : RTEMS.Address
) return RTEMS.Status_Codes;
pragma Import (C, IO_Control_Base, "rtems_io_control");
begin
Result := IO_Control_Base (Major, Minor, Argument);
end IO_Control;
--
-- Fatal Error Manager
@@ -1683,7 +1705,7 @@ package body RTEMS is
procedure Fatal_Error_Occurred (
The_Error : in RTEMS.Unsigned32
) is
procedure Fatal_Error_Occurred_base (
procedure Fatal_Error_Occurred_Base (
The_Error : RTEMS.Unsigned32
);
pragma Import (C, Fatal_Error_Occurred_Base, "rtems_fatal_error_occurred");
@@ -1703,15 +1725,15 @@ package body RTEMS is
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Rate_Monotonic_Create_base (
function Rate_Monotonic_Create_Base (
Name : RTEMS.Name;
ID : access RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Rate_Monotonic_Create_base, "rtems_rate_monotonic_create");
pragma Import (C, Rate_Monotonic_Create_Base, "rtems_rate_monotonic_create");
ID_Base : aliased RTEMS.ID;
begin
Result := Rate_Monotonic_Create_base ( Name, ID_Base'Unchecked_Access );
Result := Rate_Monotonic_Create_Base ( Name, ID_Base'Unchecked_Access );
ID := ID_Base;
end Rate_Monotonic_Create;
@@ -1746,7 +1768,7 @@ package body RTEMS is
"rtems_rate_monotonic_delete");
begin
Result := Rate_Monotonic_Delete_base ( ID );
Result := Rate_Monotonic_Delete_Base ( ID );
end Rate_Monotonic_Delete;
@@ -1778,11 +1800,10 @@ package body RTEMS is
"rtems_rate_monotonic_period");
begin
Result := Rate_Monotonic_Period_base ( ID, Length );
Result := Rate_Monotonic_Period_Base ( ID, Length );
end Rate_Monotonic_Period;
procedure Rate_Monotonic_Get_Status (
ID : in RTEMS.ID;
Status : out RTEMS.Rate_Monotonic_Period_Status;
@@ -1808,6 +1829,119 @@ package body RTEMS is
end Rate_Monotonic_Get_Status;
procedure Rate_Monotonic_Reset_Statistics (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Rate_Monotonic_Reset_Statistics_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Rate_Monotonic_Reset_Statistics_Base,
"rtems_rate_monotonic_reset_statistics");
begin
Result := Rate_Monotonic_Reset_Statistics_Base ( ID );
end Rate_Monotonic_Reset_Statistics;
--
-- Barrier Manager
--
procedure Barrier_Create (
Name : in RTEMS.Name;
Attribute_Set : in RTEMS.Attribute;
Maximum_Waiters : in RTEMS.Unsigned32;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Barrier_Create_Base (
Name : RTEMS.Name;
Attribute_Set : RTEMS.Attribute;
Maximum_Waiters : RTEMS.Unsigned32;
ID : access RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Create_Base, "rtems_barrier_create");
ID_Base : aliased RTEMS.ID;
begin
Result := Barrier_Create_Base (
Name,
Attribute_Set,
Maximum_Waiters,
ID_Base'Unchecked_Access
);
ID := ID_Base;
end Barrier_Create;
procedure Barrier_Ident (
Name : in RTEMS.Name;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Barrier_Ident_Base (
Name : RTEMS.Name;
ID : access RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Ident_Base, "rtems_barrier_ident");
ID_Base : aliased RTEMS.ID;
begin
Result := Barrier_Ident_Base ( Name, ID_Base'Unchecked_Access );
ID := ID_Base;
end Barrier_Ident;
procedure Barrier_Delete (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
) is
function Barrier_Delete_Base (
ID : RTEMS.ID
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Delete_Base, "rtems_barrier_delete");
begin
Result := Barrier_Delete_Base ( ID );
end Barrier_Delete;
procedure Barrier_Wait (
ID : in RTEMS.ID;
Timeout : in RTEMS.Interval;
Result : out RTEMS.Status_Codes
) is
function Barrier_Wait_Base (
ID : RTEMS.ID;
Timeout : RTEMS.Interval
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Wait_Base, "rtems_barrier_wait");
begin
Result := Barrier_Wait_Base ( ID, Timeout );
end Barrier_Wait;
procedure Barrier_Release (
ID : in RTEMS.ID;
Released : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
) is
function Barrier_Release_Base (
ID : RTEMS.ID
Released : access RTEMS.Unsigned32
) return RTEMS.Status_Codes;
pragma Import (C, Barrier_Release_Base, "rtems_barrier_release");
Released_Base : aliased RTEMS.Unsigned32;
begin
Result := Barrier_Release_Base ( ID, Released_Base'Unchecked_Access );
Released := Released_Base;
end Barrier_Release;
--
-- Debug Manager

View File

@@ -18,7 +18,7 @@
-- the file LICENSE in this distribution or at
-- http://www.rtems.com/license/LICENSE.
--
-- rtems.ads,v 1.19.2.2 2003/11/25 14:07:32 joel Exp
-- $Id$
--
with System;
@@ -77,6 +77,7 @@ pragma Elaborate_Body (RTEMS);
True : constant RTEMS.Boolean := 1;
False : constant RTEMS.Boolean := 0;
--
-- More Types
--
@@ -94,27 +95,24 @@ pragma Elaborate_Body (RTEMS);
subtype Debug_Set is RTEMS.Unsigned32;
subtype Device_Major_Number is RTEMS.Unsigned32;
subtype Device_Minor_Number is RTEMS.Unsigned32;
subtype Vector_Number is RTEMS.Unsigned32;
subtype ISR_Level is RTEMS.Unsigned32;
subtype Node is RTEMS.Unsigned32;
--
-- Task Related Types
-- XXXX fix this
--
subtype Task_Argument is RTEMS.Unsigned32;
type Task_Argument_PTR is access all Task_Argument;
-- XXXX fix this
subtype TCB is RTEMS.Unsigned32;
type TCB_Pointer is access all RTEMS.TCB;
subtype Task_States is RTEMS.Unsigned32;
type Task_Entry is access procedure (
Argument : RTEMS.Unsigned32
);
subtype TCB is RTEMS.Unsigned32;
type TCB_Pointer is access all RTEMS.TCB;
--
-- Clock and Time of Day Types
--
@@ -140,45 +138,17 @@ pragma Elaborate_Body (RTEMS);
Clock_Get_TOD,
Clock_Get_Seconds_Since_Epoch,
Clock_Get_Ticks_Since_Boot,
Clock_Get_Ticks_Per_Seconds,
Clock_Get_Ticks_Per_Second,
Clock_Get_Time_Value
);
--
-- Device Driver Entry Prototype
--
type Time_T is new Interfaces.C.Long;
type Device_Driver_Entry is access function (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Major_Number;
Argument : in RTEMS.Unsigned32;
ID : in RTEMS.Unsigned32
) return RTEMS.Unsigned32;
type Driver_Address_Table_Entry is
record
Initialization : RTEMS.Device_Driver_Entry;
Open : RTEMS.Device_Driver_Entry;
Close : RTEMS.Device_Driver_Entry;
Read : RTEMS.Device_Driver_Entry;
Write : RTEMS.Device_Driver_Entry;
Control : RTEMS.Device_Driver_Entry;
end record;
type Driver_Address_Table is array ( RTEMS.Unsigned32
range 1 .. RTEMS.Unsigned32'Last ) of RTEMS.Driver_Address_Table_Entry;
type Driver_Address_Table_Pointer is access all Driver_Address_Table;
type Driver_Name_t is
record
Device_Name : RTEMS.Address;
Device_Name_Length : RTEMS.Unsigned32;
Major : RTEMS.Device_Major_Number;
Minor : RTEMS.Device_Minor_Number;
end record;
type Driver_Name_t_Pointer is access all Driver_Name_t;
type Timespec is record
TV_Sec : Time_T;
TV_Nsec : Interfaces.C.Long;
end record;
pragma Convention (C, Timespec);
--
-- Ident Options
@@ -249,7 +219,6 @@ pragma Elaborate_Body (RTEMS);
Minimum_Stack_Size : RTEMS.Unsigned32;
pragma Import (C, Minimum_Stack_Size, "rtems_minimum_stack_size");
--
-- Notepad index constants
--
@@ -282,15 +251,14 @@ pragma Elaborate_Body (RTEMS);
Current_Priority : constant RTEMS.Task_Priority := 0;
No_Priority : constant RTEMS.Task_Priority := 0;
--
-- Extension Callouts and Table
--
type Thread_Create_Extension is access procedure (
type Thread_Create_Extension is access function (
Current_Task : in RTEMS.TCB_Pointer;
New_Task : in RTEMS.TCB_Pointer
);
) return RTEMS.Boolean;
type Thread_Start_Extension is access procedure (
Current_Task : in RTEMS.TCB_Pointer;
@@ -386,6 +354,7 @@ pragma Elaborate_Body (RTEMS);
type Rate_Monotonic_Period_Status is
record
Owner : RTEMS.ID;
State : RTEMS.Rate_Monotonic_Period_States;
Ticks_Since_Last_Period : RTEMS.Unsigned32;
Ticks_Executed_Since_Last_Period : RTEMS.Unsigned32;
@@ -538,15 +507,6 @@ pragma Elaborate_Body (RTEMS);
Signal_30 : constant RTEMS.Signal_Set := 16#40000000#;
Signal_31 : constant RTEMS.Signal_Set := 16#80000000#;
--
-- For now, do not provide access to the CPU Table from Ada.
-- When this type is provided, a CPU dependent file must
-- define it.
--
subtype CPU_Table is RTEMS.Address;
type CPU_Table_Pointer is access all CPU_Table;
--
-- Utility Functions
--
@@ -612,10 +572,19 @@ pragma Elaborate_Body (RTEMS);
Left : in RTEMS.Address;
Right : in RTEMS.Address
) return Standard.Boolean;
--
-- RTEMS API
--
--
-- Initialization Manager -- Shutdown Only
--
procedure Shutdown_Executive (
Status : in RTEMS.Unsigned32
);
--
-- Task Manager
--
@@ -665,6 +634,11 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Task_Is_Suspended (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Task_Set_Priority (
ID : in RTEMS.ID;
New_Priority : in RTEMS.Task_Priority;
@@ -697,25 +671,25 @@ pragma Elaborate_Body (RTEMS);
Argument : in RTEMS.Address
);
-- procedure Task_Variable_Add (
-- ID : in RTEMS.ID;
-- Task_Variable : in RTEMS.Address;
-- Dtor : in RTEMS.Task_Variable_Dtor;
-- Result : out RTEMS.Status_Codes
-- );
procedure Task_Variable_Add (
ID : in RTEMS.ID;
Task_Variable : in RTEMS.Address;
Dtor : in RTEMS.Task_Variable_Dtor;
Result : out RTEMS.Status_Codes
);
-- procedure Task_Variable_Get (
-- ID : in RTEMS.ID;
-- Task_Variable : out RTEMS.Address;
-- Task_Variable_Value : out RTEMS.Address;
-- Result : out RTEMS.Status_Codes
-- );
procedure Task_Variable_Get (
ID : in RTEMS.ID;
Task_Variable : out RTEMS.Address;
Task_Variable_Value : out RTEMS.Address;
Result : out RTEMS.Status_Codes
);
-- procedure Task_Variable_Delete (
-- ID : in RTEMS.ID;
-- Task_Variable : out RTEMS.Address;
-- Result : out RTEMS.Status_Codes
-- );
procedure Task_Variable_Delete (
ID : in RTEMS.ID;
Task_Variable : out RTEMS.Address;
Result : out RTEMS.Status_Codes
);
procedure Task_Wake_When (
Time_Buffer : in RTEMS.Time_Of_Day;
@@ -731,13 +705,6 @@ pragma Elaborate_Body (RTEMS);
-- Interrupt Manager
--
procedure Interrupt_Catch (
New_ISR_Handler : in RTEMS.Address;
Vector : in RTEMS.Vector_Number;
Old_ISR_Handler : out RTEMS.Address;
Result : out RTEMS.Status_Codes
);
function Interrupt_Disable return RTEMS.ISR_Level;
pragma Interface (C, Interrupt_Disable);
pragma Interface_Name (Interrupt_Disable, "rtems_interrupt_disable");
@@ -763,15 +730,20 @@ pragma Elaborate_Body (RTEMS);
-- Clock Manager
--
procedure Clock_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
);
procedure Clock_Get (
Option : in RTEMS.Clock_Get_Options;
Time_Buffer : in RTEMS.Address;
Result : out RTEMS.Status_Codes
);
procedure Clock_Set (
Time_Buffer : in RTEMS.Time_Of_Day;
Result : out RTEMS.Status_Codes
procedure Clock_Get_Uptime (
Uptime : out RTEMS.Timespec;
Result : out RTEMS.Status_Codes
);
procedure Clock_Tick (
@@ -800,7 +772,6 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
--
-- Timer Manager
--
@@ -908,6 +879,10 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Semaphore_Flush (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
--
-- Message Queue Manager
@@ -965,12 +940,17 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Message_Queue_Flush (
procedure Message_Queue_Get_Number_Pending (
ID : in RTEMS.ID;
Count : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
);
procedure Message_Queue_Flush (
ID : in RTEMS.ID;
Count : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
);
--
-- Event Manager
@@ -1006,7 +986,6 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
--
-- Partition Manager
--
@@ -1045,7 +1024,6 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
--
-- Region Manager
--
@@ -1100,6 +1078,13 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Region_Resize_Segment (
ID : in RTEMS.ID;
Segment : in RTEMS.Address;
Size : in RTEMS.Unsigned32;
Old_Size : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
);
--
-- Dual Ported Memory Manager
@@ -1139,59 +1124,6 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
--
-- Input/Output Manager
--
procedure IO_Register_Name (
Name : in String;
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Result : out RTEMS.Status_Codes
);
procedure IO_Lookup_Name (
Name : in String;
Device_Info : In RTEMS.Driver_Name_t_Pointer;
Result : out RTEMS.Status_Codes
);
procedure IO_Open (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
);
procedure IO_Close (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
);
procedure IO_Read (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
);
procedure IO_Write (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
);
procedure IO_Control (
Major : in RTEMS.Device_Major_Number;
Minor : in RTEMS.Device_Minor_Number;
Argument : in RTEMS.Address;
Result : out RTEMS.Status_Codes
);
--
-- Fatal Error Manager
--
@@ -1200,7 +1132,6 @@ pragma Elaborate_Body (RTEMS);
The_Error : in RTEMS.Unsigned32
);
--
-- Rate Monotonic Manager
--
@@ -1239,6 +1170,83 @@ pragma Elaborate_Body (RTEMS);
Result : out RTEMS.Status_Codes
);
procedure Rate_Monotonic_Reset_Statistics (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Rate_Monotonic_Reset_All_Statistics;
pragma Import (
C,
Rate_Monotonic_Reset_All_Statistics,
"rtems_rate_monotonic_reset_all_statistics"
);
procedure Rate_Monotonic_Report_Statistics;
pragma Import (
C,
Rate_Monotonic_Report_Statistics,
"rtems_rate_monotonic_report_statistics"
);
--
-- Barrier Manager
--
procedure Barrier_Create (
Name : in RTEMS.Name;
Attribute_Set : in RTEMS.Attribute;
Maximum_Waiters : in RTEMS.Unsigned32;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Ident (
Name : in RTEMS.Name;
ID : out RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Delete (
ID : in RTEMS.ID;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Wait (
ID : in RTEMS.ID;
Timeout : in RTEMS.Interval;
Result : out RTEMS.Status_Codes
);
procedure Barrier_Release (
ID : in RTEMS.ID;
Released : out RTEMS.Unsigned32;
Result : out RTEMS.Status_Codes
);
--
-- Stack Bounds Checker
--
function Stack_Checker_Is_Blown return RTEMS.Boolean;
pragma Interface (C, Stack_Checker_Is_Blown);
pragma Interface_Name
(Interrupt_Is_In_Progress, "rtems_stack_checker_is_blown");
procedure Stack_Checker_Report_Usage;
pragma Import (
C, Stack_Checker_Report_Usage, "rtems_stack_checker_report_usage"
);
--
-- CPU Usage Statistics
--
procedure CPU_Usage_Report;
pragma Import (C, CPU_Usage_Report, "rtems_cpu_usage_report");
procedure CPU_Usage_Reset;
pragma Import (C, CPU_Usage_Reset, "rtems_cpu_usage_reset");
--
-- Debug Manager

View File

@@ -1,3 +1,16 @@
2008-02-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* preinstall.am: Include cplb.h
2007-09-24 Chris Johns <chrisj@rtems.org>
* include/bsp.h: Do not use C++ comments.
2007-09-20 Joel Sherrill <joel.sherrill@OARcorp.com>
* preinstall.am: Add cplb.h.
* startup/bspstart.c: Add cast of constant.
2007-09-10 Alain Schaefer <alani@easc.ch>
* preinstall.am, startup/bspstart.c, startup/linkcmds: Complete earlier

View File

@@ -72,8 +72,9 @@ extern "C" {
#define FlashA_PortB_Dir 0x20270007L
#define FlashA_PortB_Data 0x20270005L
// Blackfin environment memory map
//
/*
* Blackfin environment memory map
*/
#define L1_DATA_SRAM_A 0xff800000L
#define FIFOLENGTH 0x100

View File

@@ -260,8 +260,8 @@ void initCPLB() {
unsigned int *addr;
unsigned int *data;
addr = 0xffe00100;
data = 0xffe00200;
addr = (unsigned int *)0xffe00100;
data = (unsigned int *)0xffe00200;
while ( dcplbs_table[i][0] != 0xffffffff ) {
*addr = dcplbs_table[i][0];

View File

@@ -1,14 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
Makefile
Makefile.in
missing
mkinstalldirs

View File

@@ -1,128 +0,0 @@
2007-04-17 Joel Sherrill <joel@OARcorp.com>
* c4xsim/tools/runtest.in: Do not run pppd.exe from batch mode script.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2005-10-16 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Merge-in shared/Makefile.am.
* ChangeLog: Merge-in shared/ChangeLog.
* configure.ac: Remove shared/Makefile.am.
2004-09-24 Ralf Corsepius <ralf.corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-03-31 Ralf Corsepius <ralf.corsepius@rtems.org>
* shared/bspspuriousinit.c: Convert to using c99 fixed size types.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY]).
* acinclude.m4: Regenerate.
2004-01-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use @RTEMS_BSP_FAMILY@ instead of
$(RTEMS_BSP_FAMILY).
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-12-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* shared/Makefile.am: Remove C_FILES (Unused).
2003-10-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: Reflect changes to bootstrap.
* configure.ac: Remove RTEMS_CHECK_CUSTON_BSP.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* shared/bspspuriousinit.c, shared/c3xspurious.c,
shared/c4xspurious.c: URL for license changed.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am, shared/Makefile.am: Reflect having moved automake/.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email
address.
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
* configure.ac: AC_PREREQ(2.57).
2002-12-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_CHECK_BSP_CACHE.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat. Add autom4te*cache. Remove autom4te.cache.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am, shared/Makefile.am: Remove AUTOMAKE_OPTIONS.
* configure.ac: AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
2002-01-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* shared/bspspuriousinit.c, shared/c3xspurious.c,
shared/c4xspurious.c: Include rtems/bspIo.h instead of bspIo.h.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.ac: New file, generated from configure.in by autoupdate.
* configure.in: Remove.
2001-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: New file.
* configure.in: Use RTEMS_BSP_SUBDIR.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I
$(RTEMS_TOPdir)/aclocal.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros. Switch to
GNU canonicalization.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Formatting.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog, shared/ChangeLog: New file.

View File

@@ -1,16 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../aclocal
## Descend into the @RTEMS_BSP_FAMILY@ directory
SUBDIRS = @RTEMS_BSP_FAMILY@
EXTRA_DIST =
EXTRA_DIST += shared/bspspuriousinit.c
EXTRA_DIST += shared/c3xspurious.c
EXTRA_DIST += shared/c4xspurious.c
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am

View File

@@ -1,10 +0,0 @@
# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY)
AC_DEFUN([RTEMS_CHECK_BSPDIR],
[
case "$1" in
c4xsim )
AC_CONFIG_SUBDIRS([c4xsim]);;
*)
AC_MSG_ERROR([Invalid BSP]);;
esac
])

View File

@@ -1,14 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
Makefile
Makefile.in
missing
mkinstalldirs

View File

@@ -1,408 +0,0 @@
2007-05-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* clock/clock.c: include <tic4x/c4xio.h>.
2007-04-12 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Remove qrtems_debug.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-11-15 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Merge c_rtems_main() into boot_card(). This eliminated a
file and simplified initialization.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove superfluous -DASM.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2006-05-31 Joel Sherrill <joel@OARcorp.com>
* clock/clock.c: Switch to using shared clock driver shell.
2006-01-11 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Add preinstall.am.
2005-05-26 Ralf Corsepius <ralf.corsepius@rtems.org>
* include/bsp.h: New header guard.
2005-02-02 Ralf Corsepius <ralf.corsepius@rtems.org>
* include/tm27.h, timer/timer.c: #include <rtems/tic4x/c4xio.h>
instead of <rtems/tic4x/c4xio.h>.
2005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Eliminate CFLAGS_OPTIMIZE_V.
2005-01-02 Ralf Corsepius <ralf.corsepius@rtems.org>
* Makefile.am: Remove build-variant support.
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-04-23 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 610/bsps
* Makefile.am: Add include/tm27.h, Cosmetics.
* include/tm27.h: Final cosmetics.
2004-04-22 Ralf Corsepius <ralf_corsepius@rtems.org>
* include/bsp.h: Split out tmtest27 support.
* include/tm27.h: New.
2004-04-21 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 613/bsps
* include/bsp.h: Remove MAX_LONG_TEST_DURATION.
2004-04-21 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 614/bsps
* include/bsp.h: Remove MAX_SHORT_TEST_DURATION (Unused).
2004-04-02 Ralf Corsepius <ralf_corsepius@rtems.org>
* clock/clock.c, include/bsp.h, timer/timer.c: Include
<rtems/c4x/c4xio.h> instead of <c4xio.h>.
2004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>
* include/bsp.h: Include <rtems/clockdrv.h> instead of <clockdrv.h>.
* include/bsp.h: Include <rtems/console.h> instead of <console.h>.
* include/bsp.h: Include <rtems/iosupp.h> instead of <iosupp.h>.
2004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>
* clock/clock.c, include/bsp.h, startup/bspstart.c, timer/timer.c:
Convert to using c99 fixed size types.
2004-02-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
Preinstall dist_project_lib*.
2004-02-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
2004-02-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect changes to bsp.am.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use CPPASCOMPILE instead of CCASCOMPILE.
2004-02-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Pickup files from ../../c4x/shared instead of
../shared. Reformat.
2004-01-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Merge-in clock/Makefile.am, console/Makefile.am,
start/Makefile.am, startup/Makefile.am, timer/Makefile.am,
wrapup/Makefile.am.
Use automake compilation rules.
* clock/Makefile.am, console/Makefile.am, start/Makefile.am,
startup/Makefile.am, timer/Makefile.am, wrapup/Makefile.am:
Remove.
* configure.ac: Reflect changes above.
2004-01-28 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Add nostdinc to AUTOMAKE_OPTIONS.
Add RTEMS_PROG_CCAS.
2004-01-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add PREINSTALL_DIRS.
2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
Add PRE/TMPINSTALL_FILES to CLEANFILES.
* start/Makefile.am: Ditto.
* startup/Makefile.am: Ditto.
2004-01-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Eliminate $(LIB).
Use noinst_DATA to trigger building libbsp.a.
2003-12-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: s,${PROJECT_RELEASE}/lib,$(PROJECT_LIB),g.
* startup/Makefile.am: s,${PROJECT_RELEASE}/lib,$(PROJECT_LIB),g.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
* startup/Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-12-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Misc cleanups and fixes.
* startup/Makefile.am: Misc cleanups and fixes.
* wrapup/Makefile.am: Misc cleanups and fixes.
2003-12-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Add preinstallation dirstamp support.
* clock/Makefile.am: Cosmetics.
* console/Makefile.am: Cosmetics.
* startup/Makefile.am: Cosmetics.
* timer/Makefile.am: Cosmetics.
* wrapup/Makefile.am: Cosmetics.
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Remove all-local: $(ARCH).
* console/Makefile.am: Remove all-local: $(ARCH).
* start/Makefile.am: Remove all-local: $(ARCH).
* startup/Makefile.am: Remove all-local: $(ARCH).
* timer/Makefile.am: Remove all-local: $(ARCH).
* wrapup/Makefile.am: Remove all-local: $(ARCH).
2003-09-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Merge-in include/Makefile.am.
Reflect changes to bsp.am.
* include/Makefile.am: Remove.
* configure.ac: Reflect changes above.
2003-09-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Remove *lib:.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* clock/clock.c, console/console.c, console/consolereserveresources.c,
console/debugio.c, include/bsp.h, startup/bspstart.c,
startup/spurious.c, timer/timer.c: URL for license changed.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved automake/.
* clock/Makefile.am: Reflect having moved automake/.
* console/Makefile.am: Reflect having moved automake/.
* include/Makefile.am: Reflect having moved automake/.
* start/Makefile.am: Reflect having moved automake/.
* startup/Makefile.am: Reflect having moved automake/.
* timer/Makefile.am: Reflect having moved automake/.
* wrapup/Makefile.am: Reflect having moved automake/.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 452/bsps
* startup/Makefile.am: Remove USE_INIT_FINI.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
2003-08-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 445/bsps
* bsp_specs: Remove -D__embedded__ -Asystem(embedded) from cpp.
Remove cpp, old_cpp (now unused).
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AC_PREREQ(2.57).
2003-01-20 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Add FreeBSD SYSCTL() sections for networking.
2002-12-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* console/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* start/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* startup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* timer/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-12-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* console/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* start/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* startup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
* timer/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Use install-data-local to install startfile.
2002-12-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
2002-11-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_OUTPUT_BUILD_SUBDIRS. Cosmetical
changes.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-09-14 Joel Sherrill <joel@OARcorp.com>
* clock/clock.c: Per PR257, remove reference to c3x_set_ie.
c4x variant should use c4x_set_iie().
2002-08-21 Joel Sherrill <joel@OARcorp.com>
* bsp_specs: Added support for -nostdlibs.
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am: Use .$(OBJEXT) instead of .o.
* console/Makefile.am: Use .$(OBJEXT) instead of .o.
* start/Makefile.am: Use .$(OBJEXT) instead of .o.
* startup/Makefile.am: Use .$(OBJEXT) instead of .o.
* timer/Makefile.am: Use .$(OBJEXT) instead of .o.
* wrapup/Makefile.am: Use .$(OBJEXT) instead of .o.
2002-07-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* start/Makefile.am: Eliminate PGM.
Add bsplib_DATA = $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o.
2002-07-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* startup/Makefile.am: Add bsplib_DATA = linkcmds.
2002-07-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Eliminate TMPINSTALL_FILES.
Remove $(OBJS) from all-local.
2002-06-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* wrapup/Makefile.am: Remove preinstallation of libbsp.a,
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* clock/Makefile.am: Remove AUTOMAKE_OPTIONS.
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* console/Makefile.am: Remove AUTOMAKE_OPTIONS.
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
* start/Makefile.am: Remove AUTOMAKE_OPTIONS.
* startup/Makefile.am: Remove AUTOMAKE_OPTIONS.
* timer/Makefile.am: Remove AUTOMAKE_OPTIONS.
* wrapup/Makefile.am: Remove AUTOMAKE_OPTIONS.
2002-01-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* startup/bspstart.c: Include rtems/bspIo.h instead of bspIo.h.
* startup/spurious.c: Include rtems/bspIo.h instead of bspIo.h.
2001-12-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* bsp_specs: Replace -lrtemsall with -lrtemsbsp -lrtemscpu,
replace -lrtemsall_g with -lrtemsbsp_g -lrtemscpu_g.
2001-11-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Introduce RTEMS_BSP_CONFIGURE.
2001-10-12 Joel Sherrill <joel@OARcorp.com>
* console/console.c: Fixed typo.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2001-09-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* include/Makefile.am: Use 'CLEANFILES ='.
* include/Makefile.am: Use 'PREINSTALL_FILES ='.
2001-05-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Add bspopts.h, fix PACKAGE.
* include/.cvsignore: Add bspopts.h*, stamp-h*.
* include/Makefile.am: Use *_HEADERS instead of *H_FILES.
* include/bsp.h: Include bspopts.h.
2001-05-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in: Use RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]).
2000-12-06 Joel Sherrill <joel@OARcorp.com>
* console/consolereserveresources.c: Removed code NOT file (YET).
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-11-01 Joel Sherrill <joel@OARcorp.com>
* startup/bspstart.c: assoc.h, error.h, libio_.h, libio.h,
and libcsupport.h moved from libc to lib/include/rtems and
now must be referenced as <rtems/XXX.h>. Header file order
was cleaned up while doing this.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.in, Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-09-22 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Use default object format to avoid name
changes in object format due to tool version changes.
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* clock/Makefile.am, console/Makefile.am, start/Makefile.am,
startup/Makefile.am, timer/Makefile.am, wrapup/Makefile.am:
Include compile.am
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,67 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
# wrapup is the one that actually builds and installs the library
# from the individual .rel files built in other directories
SUBDIRS = . tools
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../bsp.am
dist_project_lib_DATA = bsp_specs
include_HEADERS = include/bsp.h
include_HEADERS += include/tm27.h
nodist_include_HEADERS = include/bspopts.h
DISTCLEANFILES = include/bspopts.h
noinst_PROGRAMS =
include_HEADERS += include/simio.h
nodist_include_HEADERS += ../../shared/include/coverhd.h
EXTRA_DIST = start/start.S
start.$(OBJEXT): start/start.S
$(CPPASCOMPILE) -o $@ -c $<
project_lib_DATA = start.$(OBJEXT)
dist_project_lib_DATA += startup/linkcmds
noinst_PROGRAMS += startup.rel
startup_rel_SOURCES = ../../shared/bspclean.c ../../shared/bsplibc.c \
../../shared/bsppost.c startup/bspstart.c \
../../shared/bootcard.c ../../shared/sbrk.c ../../shared/setvec.c \
../../c4x/shared/c3xspurious.c ../../c4x/shared/c4xspurious.c \
../../c4x/shared/bspspuriousinit.c startup/spurious.c \
../../shared/gnatinstallhandler.c
startup_rel_CPPFLAGS = $(AM_CPPFLAGS)
startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += console.rel
console_rel_SOURCES = console/consolereserveresources.c console/debugio.c \
console/simio.c ../../shared/console.c
console_rel_CPPFLAGS = $(AM_CPPFLAGS)
console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += clock.rel
clock_rel_SOURCES = clock/clock.c
clock_rel_CPPFLAGS = $(AM_CPPFLAGS)
clock_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += timer.rel
timer_rel_SOURCES = timer/timer.c
timer_rel_CPPFLAGS = $(AM_CPPFLAGS)
timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_LIBRARIES = libbsp.a
libbsp_a_SOURCES =
libbsp_a_LIBADD = startup.rel console.rel clock.rel timer.rel
EXTRA_DIST += times
include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,46 +0,0 @@
#
# $Id$
#
BSP NAME: c4xsim
BOARD: Simulator in GDB
BUS: N/A
CPU FAMILY: C3X/C4X
CPU: C32 and others
COPROCESSORS: N/A
MODE: 32 bit mode
DEBUG MONITOR: gdb simulator
PERIPHERALS
===========
TIMERS: Internal Timer
RESOLUTION: ???
SERIAL PORTS: simulated via
REAL-TIME CLOCK: ???
DMA: none
VIDEO: none
SCSI: none
NETWORKING: none
DRIVER INFORMATION
==================
CLOCK DRIVER: ???
IOSUPP DRIVER: N/A
SHMSUPP: N/A
TIMER DRIVER: ???
TTY DRIVER: ???
STDIO
=====
PORT: Console port 0
ELECTRICAL: na
BAUD: na
BITS PER CHARACTER: na
PARITY: na
STOP BITS: na
Notes
=====
NONE

View File

@@ -1,11 +0,0 @@
%rename endfile old_endfile
%rename startfile old_startfile
%rename link old_link
*startfile:
%{!qrtems: %(old_startfile)} \
%{!nostdlib: %{qrtems: start.o%s}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e start}

View File

@@ -1,63 +0,0 @@
/* ckinit.c
*
* This file provides a template for the clock device driver initialization.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <stdlib.h>
#include <rtems.h>
#include <rtems/libio.h>
#include <bsp.h>
#include <rtems/tic4x/c4xio.h>
#define CLOCK_VECTOR 9
#define Clock_driver_support_at_tick()
#define Clock_driver_support_install_isr( _new, _old ) \
do { _old = 0; } while(0)
void Clock_driver_support_initialize_hardware()
{
extern int _ClockFrequency;
uint32_t Clock_counter_register_value;
float tmp;
int tmpi;
tmpi = ((int) &_ClockFrequency) * 1000000; /* ClockFrequency is in Mhz */
tmp = (float) tmpi / 2.0;
tmp = ((float) BSP_Configuration.microseconds_per_tick / 1000000.0) * (tmp);
Clock_counter_register_value = (unsigned int) tmp;
#if 0
Clock_counter_register_value =
(uint32_t) ((float) BSP_Configuration.microseconds_per_tick /
((float)_ClockFrequency / 2.0)));
#endif
c4x_timer_stop( C4X_TIMER_0 );
c4x_timer_set_counter( C4X_TIMER_0, 0 );
c4x_timer_set_period( C4X_TIMER_0, Clock_counter_register_value );
c4x_timer_start( C4X_TIMER_0 );
#if defined(_C4x)
c4x_set_iee( c4x_get_iie() | 0x1 ); /* should be ETINT0 */
#else
c3x_set_ie( c3x_get_ie() | 0x100 );
#endif
Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 );
}
#define Clock_driver_support_shutdown_hardware()
#include "../../../shared/clockdrv_shell.c"

View File

@@ -1,22 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-c4x-c4xsim],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([bsp_specs])
RTEMS_TOP(../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.10])
RTEMS_BSP_CONFIGURE
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
RTEMS_CANONICALIZE_TOOLS
RTEMS_PROG_CCAS
RTEMS_CONFIG_BUILD_SUBDIRS(tools)
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,153 +0,0 @@
/*
* This file contains the hardware specific portions of the TTY driver
* for the serial ports on the erc32.
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <stdlib.h>
#include <assert.h>
#include <simio.h>
/*
* console_outbyte_polled
*
* This routine transmits a character using polling.
*/
void console_outbyte_polled(
int port,
char ch
);
/*
* console_inbyte_nonblocking
*
* This routine polls for a character.
*/
int console_inbyte_nonblocking(
int port
);
/*
* Console Termios Support Entry Points
*
*/
int console_write_support (
int minor,
const char *bufarg,
int len
)
{
int nwrite = 0;
const char *buf = bufarg;
while (nwrite < len) {
if ( *buf )
console_outbyte_polled( minor, *buf & 0x7f );
buf++;
nwrite++;
}
return nwrite;
}
/*
* Console Device Driver Entry Points
*
*/
rtems_device_driver console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg
)
{
rtems_status_code status;
rtems_termios_initialize();
/*
* Register Device Names
*/
status = rtems_io_register_name( "/dev/console", major, 0 );
if (status != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(status);
return RTEMS_SUCCESSFUL;
}
rtems_device_driver console_open(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
rtems_status_code sc;
static const rtems_termios_callbacks pollCallbacks = {
NULL, /* firstOpen */
NULL, /* lastClose */
console_inbyte_nonblocking, /* pollRead */
console_write_support, /* write */
NULL, /* setAttributes */
NULL, /* stopRemoteTx */
NULL, /* startRemoteTx */
0 /* outputUsesInterrupts */
};
assert( minor <= 1 );
if ( minor > 2 )
return RTEMS_INVALID_NUMBER;
sc = rtems_termios_open (major, minor, arg, &pollCallbacks );
return RTEMS_SUCCESSFUL;
}
rtems_device_driver console_close(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_close (arg);
}
rtems_device_driver console_read(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_read (arg);
}
rtems_device_driver console_write(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_write (arg);
}
rtems_device_driver console_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return rtems_termios_ioctl (arg);
}

View File

@@ -1,19 +0,0 @@
/*
* This file contains the TTY driver for the serial ports on the erc32.
*
* This driver uses the termios pseudo driver.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <stdlib.h>
#include <assert.h>

View File

@@ -1,56 +0,0 @@
/*
* This file contains the TTY driver for the serial ports on the erc32.
*
* This driver uses the termios pseudo driver.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/libio.h>
#include <stdlib.h>
#include <assert.h>
#include <simio.h>
/*
* console_outbyte_polled
*
* This routine transmits a character using polling.
*/
void console_outbyte_polled(
int port,
char ch
)
{
char out[2];
out[0] = ch;
out[1] = 0;
sim_write(1, out, 1);
}
C4X_BSP_output_char( int c )
{
console_outbyte_polled( 0, (char) c );
}
/*
* console_inbyte_nonblocking
*
* This routine polls for a character.
*/
int console_inbyte_nonblocking( int port )
{
char c;
sim_read(1, &c, 1);
return c;
}

View File

@@ -1,308 +0,0 @@
/*
* C4x simulator IO interface routines based on code provided
* by Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
*
* $Id$
*/
#include <stdio.h>
#define SIM_OPEN (0xf0)
#define SIM_CLOSE (0xf1)
#define SIM_READ (0xf2)
#define SIM_WRITE (0xf3)
#define SIM_LSEEK (0xf4)
#define SIM_UNLINK (0xf5)
#define SIM_GETENV (0xf6)
#define SIM_RENAME (0xf7)
#define SIM_GETTIME (0xf8)
#define SIM_GETCLOCK (0xf9)
typedef union _io {
struct _open {
int fd : 16;
int flags : 16;
} open;
struct _openr {
int result : 16;
} openr;
struct _close {
int fd : 16;
} close;
struct _closer {
int result : 16;
} closer;
struct _read {
int fd : 16;
int count : 16;
} read;
struct _readr {
int result : 16;
} readr;
struct _write {
int fd : 16;
int count : 16;
} write;
struct _writer {
int result : 16;
} writer;
struct _lseek {
int fd : 16;
int offsetlow : 16;
int offsethigh : 16;
int orgin : 16;
} lseek;
struct _lseekr {
int result;
} lseekr;
struct _unlinkr {
int result : 16;
} unlinkr;
struct _renamer {
int result : 16;
} renamer;
struct _getenvr {
int result : 16;
} getenvr;
struct _gettimer {
int result;
} gettimer;
struct _getclockr {
int result;
} getclockr;
struct _common {
int word1;
int word2;
} common;
} io;
static void to_sim(int command, io *param, char *data, int length);
static void call_sim(void);
static void from_sim(io *param, char *data);
void sim_exit(void)
{
__asm__(" .global C$$EXIT");
__asm__("C$$EXIT: nop");
__asm__("nop");
}
int sim_open(const char *path, unsigned flags, int fno)
{
io param;
param.open.fd = fno;
param.open.flags = flags;
to_sim(SIM_OPEN,&param,(char *)path,strlen(path)+1);
call_sim();
from_sim(&param, NULL);
return param.openr.result;
}
int sim_close(int fno)
{
io param;
param.close.fd = fno;
to_sim(SIM_CLOSE,&param,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.closer.result;
}
int sim_read(int fno, char *buf, unsigned count)
{
io param;
param.read.fd = fno;
param.read.count = count;
to_sim(SIM_READ,&param,NULL,0);
call_sim();
from_sim(&param, buf);
return param.readr.result;
}
int sim_write(int fno, const char *buf, unsigned count)
{
io param;
param.write.fd = fno;
param.write.count = count;
to_sim(SIM_WRITE,&param,(char *)buf,count);
call_sim();
from_sim(&param, NULL);
return param.writer.result;
}
fpos_t sim_lseek(int fno, fpos_t offset, int origin)
{
io param;
param.lseek.fd = fno;
param.lseek.offsetlow = offset & 0xffff;
param.lseek.offsethigh = offset >> 16;
to_sim(SIM_LSEEK,&param,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.lseekr.result;
}
int sim_unlink(const char *path)
{
io param;
to_sim(SIM_UNLINK,NULL,(char *)path,strlen(path)+1);
call_sim();
from_sim(&param, NULL);
return param.unlinkr.result;
}
int sim_rename(const char *old, const char *new)
{
int l;
static char combined[200];
io param;
strcpy(combined,old);
l = strlen(old)+1;
strcpy(combined+l,new);
l += strlen(new) + 1;
to_sim(SIM_RENAME,NULL,combined,l);
call_sim();
from_sim(&param, NULL);
return param.renamer.result;
}
char *sim_getenv(const char *str)
{
io param;
static char result[200];
to_sim(SIM_GETENV,NULL,(char *)str,strlen(str)+1);
call_sim();
from_sim(&param, result);
return param.getenvr.result ? result : NULL;
}
int sim_gettime(void)
{
io param;
to_sim(SIM_GETTIME,NULL,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.gettimer.result;
}
int sim_getclock(void)
{
io param;
to_sim(SIM_GETCLOCK,NULL,NULL,0);
call_sim();
from_sim(&param, NULL);
return param.getclockr.result;
}
int _CIOBUF_[BUFSIZ+32];
static void to_sim(int command, io *param, char *data, int length)
{
int i;
int n;
int v;
int *ip = &_CIOBUF_[0];
*ip++ = length;
*ip++ = command;
if (param) {
*ip++ = param->common.word1;
*ip++ = param->common.word2;
}
else {
*ip++ = 0;
*ip++ = 0;
}
n = length & ~3;
for (i = 0 ; i < n ; i += 4) {
v = *data++ & 0xff;
v |= (*data++ & 0xff) << 8;
v |= (*data++ & 0xff) << 16;
v |= (*data++ & 0xff) << 24;
*ip++ = v;
}
v = 0;
for ( ; i < length ; i++) {
v |= (*data++ & 0xff) << ((i & 3) << 3);
}
*ip = v;
}
static void call_sim(void)
{
__asm__(" .global C$$IO$$");
__asm__("C$$IO$$: nop");
}
static void from_sim(io *param, char *data)
{
int i;
int l;
int n;
int v;
int *ip = &_CIOBUF_[0];
l = *ip++;
param->common.word1 = *ip++;
param->common.word2 = *ip++;
if (data != NULL) {
n = l & ~3;
for (i = 0 ; i < n ; i += 4) {
v = *ip++;
*data++ = v & 0xff;
*data++ = (v >> 8) & 0xff;
*data++ = (v >> 16) & 0xff;
*data++ = (v >> 24) & 0xff;
}
v = *ip;
for (; i < l ; i++) {
*data++ = v >> ((i & 3) << 3);
}
}
}
#if 0
#include <fcntl.h>
sim_io_test()
{
sim_write(1, "howdy\n", 6);
}
#endif
/*
* Debug junk
*/
#if 0
void printk_wrapper(void)
{
__asm__(" .global _printf");
__asm__("_printf: bu _printk");
}
#endif
#if 1
#ifdef _HAVE_STDC
#include <stdarg.h>
#else
#include <varargs.h>
#endif
int __svfscanf(
register FILE *fp,
char const *fmt0,
va_list ap
)
{
return 0;
}
#endif

View File

@@ -1,4 +0,0 @@
bspopts.h
bspopts.h.in
stamp-h
stamp-h.in

View File

@@ -1,79 +0,0 @@
/* bsp.h
*
* This include file contains all C4X Simulator IO definitions.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _BSP_H
#define _BSP_H
#ifdef __cplusplus
extern "C" {
#endif
#include <bspopts.h>
#ifdef ASM
#else
#include <rtems.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
#include <rtems/console.h>
#include <rtems/iosupp.h>
/* Constants */
/*
* Device Driver Table Entries
*/
/*
* NOTE: Use the standard Console driver entry
*/
/*
* NOTE: Use the standard Clock driver entry
*/
/*
* Information placed in the linkcmds file.
*/
/* functions */
void bsp_start( void );
void bsp_cleanup( void );
rtems_isr_entry set_vector( /* returns old vector */
rtems_isr_entry handler, /* isr routine */
rtems_vector_number vector, /* vector number */
int type /* RTEMS or RAW intr */
);
void BSP_fatal_return( void );
void bsp_spurious_initialize( void );
extern rtems_configuration_table BSP_Configuration; /* owned by BSP */
extern rtems_cpu_table Cpu_table; /* owned by BSP */
extern uint32_t bsp_isr_level;
#endif /* ASM */
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,25 +0,0 @@
/*
* C4x simulator IO interface routines based on code provided
* by Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
*
* $Id$
*/
#ifndef __C4X_SIMIO_IFACE_h
#define __C4X_SIMIO_IFACE_h
#include <stdio.h>
void sim_exit(void);
int sim_open(const char *path, int flags, int fno);
int sim_close(int fno);
int sim_read(int fno, char *buf, unsigned count);
int sim_write(int fno, const char *buf, unsigned count);
fpos_t sim_lseek(int fno, fpos_t offset, int origin);
int sim_unlink(const char *path);
int sim_rename(const char *old, const char *new);
char *sim_getenv(const char *str);
int sim_gettime(void);
int sim_getclock(void);
#endif

View File

@@ -1,44 +0,0 @@
/*
* tm27.h
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
/*
* Stuff for Time Test 27
*/
#include <rtems/tic4x/c4xio.h>
#define MUST_WAIT_FOR_INTERRUPT 0
/* XXX */
#define Install_tm27_vector( _handler ) \
set_vector( (_handler), 0x20, 1 )
#define Cause_tm27_intr() \
do { \
__asm__ volatile ( "trapu 0" ); \
} while (0)
#define Clear_tm27_intr() \
do { \
; \
} while (0)
#define Lower_tm27_intr() \
do { \
c4x_global_interrupts_enable(); \
} while (0)
#endif

View File

@@ -1,62 +0,0 @@
## Automatically generated by ampolish3 - Do not edit
if AMPOLISH3
$(srcdir)/preinstall.am: Makefile.am
$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
endif
PREINSTALL_DIRS =
DISTCLEANFILES += $(PREINSTALL_DIRS)
all-local: $(TMPINSTALL_FILES)
TMPINSTALL_FILES =
CLEANFILES = $(TMPINSTALL_FILES)
all-am: $(PREINSTALL_FILES)
PREINSTALL_FILES =
CLEANFILES += $(PREINSTALL_FILES)
$(PROJECT_LIB)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_LIB)
@: > $(PROJECT_LIB)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
$(PROJECT_INCLUDE)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)
@: > $(PROJECT_INCLUDE)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
$(PROJECT_INCLUDE)/simio.h: include/simio.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/simio.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/simio.h
$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds

View File

@@ -1,71 +0,0 @@
/*
* This start.S is a combination of the files boot.s and crt0.s
* provided by Herman ...XXX
*/
; .file "crt0.s"
.ref _c_int00
.global start
.global _start
.if .tms320C40
.sect ".const"
mem_control:
.word 000100000h
mem_data:
.word 03ef78050h
.text
start:
_start:
ldi 0800h,st
ldp @mem_control
ldi @mem_control,ar0
ldp @mem_data
ldi @mem_data,r0
sti r0,*+ar0(0)
sti r0,*+ar0(4)
br _c_int00
.else
.sect ".const"
mem_control:
.word 000808000h
mem_data:
.word 000001f00h
.text
start:
_start:
ldi 0800h,st
ldp @mem_control
ldi @mem_control,ar0
ldp @mem_data
ldi @mem_data,r0
sti r0,*+ar0(0)
sti r0,*+ar0(4)
br _c_int00
.endif
; .file "boot.s"
.global __stack
.global _c_int00
.ref .bss
.ref _boot_card
.ref _exit
__stack: .usect ".stack",0
.text
stack_addr: .word __stack
_c_int00:
ldp stack_addr
ldi @stack_addr,sp
ldi sp,ar3
ldp .bss ; For the small model, set up the DP to .bss
ldi 0,ar2 ; make sure argc=0 with regparm
push ar2 ; and memparm
call _boot_card
call _sim_exit

View File

@@ -1,108 +0,0 @@
/*
* This set of routines starts the application. It includes application,
* board, and monitor specific initialization and configuration.
* The generic CPU dependent initialization has been performed
* before any of these are invoked.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <string.h>
#include <bsp.h>
#include <rtems/libio.h>
#include <rtems/libcsupport.h>
/*
* The original table from the application and our copy of it with
* some changes.
*/
extern rtems_configuration_table Configuration;
rtems_configuration_table BSP_Configuration;
rtems_cpu_table Cpu_table;
/*
* Use the shared implementations of the following routines
*/
void bsp_postdriver_hook(void);
void bsp_libc_init( void *, uint32_t, int );
extern void bsp_spurious_initialize();
/*
* bsp_pretasking_hook
*
* BSP pretasking hook. Called just before drivers are initialized.
* Used to setup libc and install any BSP extensions.
*/
void bsp_pretasking_hook(void)
{
extern void *_HeapStart;
extern uint32_t _HeapSize;
bsp_libc_init(&_HeapStart, (unsigned int) &_HeapSize, 0);
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif
bsp_spurious_initialize();
}
/*
* bsp_start
*
* This routine does the bulk of the system initialization.
*/
#include <rtems/bspIo.h>
BSP_output_char_function_type BSP_output_char;
BSP_polling_getchar_function_type BSP_poll_char;
extern void C4X_BSP_output_char(char c);
void bsp_start( void )
{
extern void *_WorkspaceBase;
extern uint32_t _WorkspaceMax;
/*
* Set up our hooks
* Make sure libc_init is done before drivers initialized so that
* they can use atexit()
*/
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
Cpu_table.postdriver_hook = bsp_postdriver_hook;
/*
* SIS does zero out memory BUT only when IT begins execution. Thus
* if we want to have a clean slate in the workspace each time we
* begin execution of OUR application, then we must zero the workspace.
*/
Cpu_table.do_zero_of_workspace = FALSE;
/*
* This should be enough interrupt stack.
*/
Cpu_table.interrupt_stack_size = 0;
BSP_Configuration.work_space_start = (void *)&_WorkspaceBase;
/* XXX check to see if satisfying small memory model */
if ( BSP_Configuration.work_space_size > (int) &_WorkspaceMax )
rtems_fatal_error_occurred( 0x43218765 );
BSP_output_char = C4X_BSP_output_char;
BSP_poll_char = (BSP_polling_getchar_function_type) NULL;
}

View File

@@ -1,87 +0,0 @@
/* OUTPUT_FORMAT("coff-c4x") */
__SYSMEM_SIZE = DEFINED(__SYSMEM_SIZE) ? __SYSMEM_SIZE : 0x4000;
__STACK_SIZE = DEFINED(__STACK_SIZE) ? __STACK_SIZE : 0x1000;
__HeapSize = DEFINED(__HeapSize) ? __HeapSize : 0x10000;
__WorkspaceMax = DEFINED(__WorkspaceMax) ? __WorkspaceMax : 256K;
__ClockFrequency = DEFINED(_ClockFrequency) ? _ClockFrequency : 50;
ENTRY(_start)
SECTIONS
{
.vectors : {
. += 4 * 64;
}
.text 0x200 : {
*(.text)
/*
* Special FreeBSD sysctl sections.
*/
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
___CTOR_LIST__ = .;
LONG(___CTOR_END__ - ___CTOR_LIST__ - 2)
*(.ctors)
LONG(0);
___CTOR_END__ = .;
___DTOR_LIST__ = .;
LONG(___DTOR_END__ - ___DTOR_LIST__ - 2)
*(.dtors)
LONG(0)
___DTOR_END__ = .;
}
.init : { *(.init) }
.fini : { *(.fini) }
.const :
{
*(.const)
}
.cinit :
{
*(.cinit)
}
.data :
{
*(.data)
}
.comms : {
*(.comms)
}
.bss : {
.bss = .;
*(.bss)
*(COMMON)
}
.stack :
{
*(.stack)
. = . + __STACK_SIZE;
}
.heap :
{
__HeapStart = .;
. += __HeapSize;
__WorkspaceBase = .;
. += __WorkspaceMax;
}
/*
.sysmem :
{
*(.sysmem)
}
*/
.stab 0 :
{
[ .stab ]
}
.stabstr 0 :
{
[ .stabstr ]
}
/* The TI tools sets cinit to -1 if the ram model is used. */
}

View File

@@ -1,33 +0,0 @@
/*
* CXX Simulator Spurious Trap Handler Assistant
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
#include <simio.h>
/*
* bsp_spurious_handler_assistant
*
* We can't recover so just return to gdb.
*/
void bsp_spurious_handler_assistant(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
)
{
sim_exit();
}

View File

@@ -1,115 +0,0 @@
/* timer.c
*
* This file manages the benchmark timer used by the RTEMS Timing Test
* Suite. Each measured time period is demarcated by calls to
* Timer_initialize() and Read_timer(). Read_timer() usually returns
* the number of microseconds since Timer_initialize() exitted.
*
* NOTE: It is important that the timer start/stop overhead be
* determined when porting or modifying this code.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#include <rtems/tic4x/c4xio.h>
uint32_t Timer_interrupts;
rtems_boolean Timer_driver_Find_average_overhead;
static uint32_t start;
void Timer_initialize( void )
{
/*
* Timer has never overflowed. This may not be necessary on some
* implemenations of timer but ....
*/
c4x_timer_stop(C4X_TIMER_0);
c4x_timer_set_period(C4X_TIMER_0, 0xffffffff); /* so no interupts */
c4x_timer_start(C4X_TIMER_0);
start = c4x_timer_get_counter(C4X_TIMER_0);
Timer_interrupts = 0;
/*
* Somehow start the timer
*/
}
/*
* The following controls the behavior of Read_timer().
*
* AVG_OVEREHAD is the overhead for starting and stopping the timer. It
* is usually deducted from the number returned.
*
* LEAST_VALID is the lowest number this routine should trust. Numbers
* below this are "noise" and zero is returned.
*/
#define AVG_OVERHEAD 0 /* It typically takes X.X microseconds */
/* (Y countdowns) to start/stop the timer. */
/* This value is in microseconds. */
#define LEAST_VALID 1 /* Don't trust a clicks value lower than this */
int Read_timer( void )
{
uint32_t clicks;
uint32_t total;
int tmp;
/*
* Read the timer and see how many clicks it has been since we started.
*/
clicks = c4x_timer_get_counter(C4X_TIMER_0);
clicks -= start;
/*
* Total is calculated by taking into account the number of timer overflow
* interrupts since the timer was initialized and clicks since the last
* interrupts.
*/
total = clicks * 1;
if ( Timer_driver_Find_average_overhead == 1 ) {
return total; /* in count units where each count is */
/* 1 / (clock frequency/2) */
} else {
if ( total < LEAST_VALID )
return 0; /* below timer resolution */
/*
* Somehow convert total into microseconds
*/
tmp = (int) ((float) total * ((1.0 / 25.0)));
return (tmp - AVG_OVERHEAD);
}
}
/*
* Empty function call used in loops to measure basic cost of looping
* in Timing Test Suite.
*/
rtems_status_code Empty_function( void )
{
return RTEMS_SUCCESSFUL;
}
void Set_find_average_overhead(
rtems_boolean find_flag
)
{
Timer_driver_Find_average_overhead = find_flag;
}

View File

@@ -1,5 +0,0 @@
aclocal.m4
autom4te*.cache
configure
Makefile
Makefile.in

View File

@@ -1,97 +0,0 @@
2007-09-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest.in: Add capture to list of interative tests to skip in batch
mode.
2007-01-26 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Use MKDIR_P instead of mkdir_p.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
Add PRE/TMPINSTALL_FILES to CLEANFILES.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reworked.
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved automake/.
2003-08-14 Joel Sherrill <joel@OARcorp.com>
* runtest.in: Add fileio to list of interactive tests.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AC_PREREQ(2.57).
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* Makefile.am: Remove AUTOMAKE_OPTIONS.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,26 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../../aclocal
transform =
bsptools_bindir = ${exec_prefix}/@RTEMS_BSP@/tests
bsptools_bin_SCRIPTS = runtest
all-local: $(TMPINSTALL_FILES)
TMPINSTALL_FILES =
$(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp):
@$(MKDIR_P) $(PROJECT_ROOT)/@RTEMS_BSP@/tests
@: > $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
$(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest: runtest $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
$(INSTALL_SCRIPT) $< $(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest
TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest
CLEANFILES = $(TMPINSTALL_FILES)
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -1,24 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-c4x-c4xsim-tools],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([runtest.in])
RTEMS_TOP(../../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.10])
AM_MAINTAINER_MODE
RTEMS_PATH_KSH
RTEMS_ENV_RTEMSBSP
RTEMS_PROJECT_ROOT
RTEMS_TOOLPATHS
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile
runtest])
AC_OUTPUT

View File

@@ -1,331 +0,0 @@
#!@KSH@ -p
#
# $Id$
#
# Run rtems tests on the c4x simulator built into gdb
# This program generates a simulator script to run each test
# Typically the test is then run, although it can be generated
# and left as a file using -s
#
# progname=`basename $0`
progname=${0##*/} # fast basename hack for ksh, bash
USAGE=\
"usage: $progname [ -opts ] test [ test ... ]
-o options -- specify options to be passed to simulator
-v -- verbose
-s -- generate script file (as 'test'.ss) and exit
-l logdir -- specify log directory (default is 'logdir')
Specify test as 'test' or 'test.exe'.
All multiprocessing tests *must* be specified simply as 'mp01', etc.
"
# export everything
set -a
# log an error to stderr
prerr()
{
echo "$*" >&2
}
fatal() {
[ "$1" ] && prerr $*
prerr "$USAGE"
exit 1
}
warn() {
[ "$1" ] && prerr $*
}
# print args, 1 per line
ml_echo()
{
for l
do
echo "$l"
done
}
# run at normal and signalled exit
test_exit()
{
exit_code=$1
rm -f ${statfile}* ${scriptfile}* ${logfile}.tmp*
[ "$sim_pid" ] && kill -9 $sim_pid
exit $exit_code
}
#
# process the options
#
# defaults for getopt vars
#
# max_run_time is defaulted to 5 minutes
#
verbose=""
extra_options=""
script_and_exit=""
stdio_setup="yes"
run_to_completion="yes"
logdir=log
update_on_tick="no"
max_run_time=$((6 * 60)) # is 5 on other simulators.
using_print_buffer="yes"
while getopts vhr12o:c:sl:t OPT
do
case "$OPT" in
v)
verbose="yes";;
s)
script_and_exit="yes"
run_to_completion="no"
stdio_setup="no";;
l)
logdir="$OPTARG";;
o)
extra_options="$OPTARG";;
*)
fatal;;
esac
done
let $((shiftcount = $OPTIND - 1))
shift $shiftcount
args=$*
#
# Run the tests
#
tests="$args"
if [ ! "$tests" ]
then
set -- `echo *.exe`
tests="$*"
fi
[ -d $logdir ] ||
mkdir $logdir || fatal "could not create log directory ($logdir)"
cpus=1
# where the tmp files go
statfile=/tmp/stats$$
scriptfile=/tmp/script$$
trap "test_exit" 1 2 3 13 14 15
for tfile in $tests
do
tname=`basename $tfile .exe`
TEST_TYPE="single"
case $tname in
capture* | monitor* | termios* | fileio* | pppd*)
if [ $run_to_completion = "yes" ]
then
warn "Skipping $tname; it is interactive"
continue
fi
;;
*-node2*)
fatal "MP tests not supported"
warn "Skipping $tname; 'runtest' runs both nodes when for *-node1"
continue;;
*-node1*)
fatal "MP tests not supported"
warn "Running both nodes associated with $tname"
tname=`echo $tname | sed 's/-node.*//'`
TEST_TYPE="mp"
;;
stackchk*|spfatal*|malloctest*|termio*)
warn "Skipping $tname; it locks up or takes a VERY long time to run"
continue
;;
esac
# Change the title bar to indicate which test we are running
# The simulator screen doesn't provide any indication
logfile=$logdir/$tname
infofile=$logfile.info
rm -f ${statfile}* ${scriptfile}* ${logfile}.tmp*
date=`date`
echo "Starting $tname at $date"
# Generate a script file to get the work done.
# The script file must do the following:
#
# load the program (programs if MP test)
# arrange for capture of output
# run the program
# produce statistics
{
case $TEST_TYPE in
"mp")
fatal "MP tests not supported"
;;
# All other tests (single-processor)
*)
echo "target sim -3"
echo "sim m r 0"
echo "sim m w 0"
echo "load"
echo ""
echo "printf \"START_OF_TEST\\n\""
echo "run"
echo "printf \"END_OF_TEST\\n\""
echo "quit"
;;
esac
} > ${scriptfile}
if [ "$script_and_exit" = "yes" ]
then
mv ${scriptfile} $tname.ss
warn "script left in $tname.ss"
test_exit 0
fi
# Spin off the simulator in the background
c4x-rtems-gdb $extra_options -n \
--command ${scriptfile} ${tfile} >${logfile}.tmp 2>&1 &
sim_pid=$!
# Make sure it won't run forever...
{
time_run=0
while [ $time_run -lt $max_run_time ]
do
# sleep 10s at a time waiting for job to finish or timer to expire
# if job has exited, then we exit, too.
sleep 10
if kill -0 $sim_pid 2>/dev/null
then
time_run=$((time_run + 10))
else
exit 0
fi
done
kill -2 $sim_pid 2>/dev/null
{ sleep 5; kill -9 $sim_pid 2>/dev/null; } &
} &
wait $sim_pid
status=$?
if [ $status -ne 0 ]
then
ran_too_long="yes"
else
ran_too_long="no"
fi
sim_pid=""
# fix up the printf output from the test
case $TEST_TYPE in
mp)
fatal "MP not supported"
;;
*)
output_it=0
clean_exit=0
sed -e '1,9d' \
-e 's/
//' -e '/^$/d' < ${logfile}.tmp |
while read line
do
if [ $output_it -eq 1 ] ; then
case $line in
END_OF_TEST*)
output_it=0
;;
*simio.c:86*)
output_it=0
clean_exit=1
;;
*)
echo "$line"
;;
esac
else
if [ "$line" = "START_OF_TEST" ] ; then
output_it=1
fi
fi
done > ${logfile}_1
if [ ${clean_exit} -eq 0 ] ; then
mv ${logfile}_1 ${logfile}_1.XXX
sed -e '/^Program received signal SIGTRAP/d' \
<${logfile}_1.XXX >${logfile}_1
rm -f ${logfile}_1.XXX
fi
;;
esac
# Create the info files
for cpu in $cpus
do
{
echo "$date"
echo "Test run on: `uname -n` ( `uname -a` )"
output_it=1
sed -e 's/
//' < ${logfile}.tmp |
while read line
do
if [ $output_it -eq 0 ] ; then
if [ "$line" = "END_OF_TEST" ] ; then
output_it=1
fi
else
if [ "$line" = "START_OF_TEST" ] ; then
output_it=0
else
echo "$line"
fi
fi
done
if [ "$ran_too_long" = "yes" ]
then
echo "Test did NOT finish normally; killed after $max_run_time seconds"
fi
echo
date;
} > ${infofile}_$cpu
done
rm -f ${logfile}.tmp*
if [ "$cpus" = "1" ]
then
mv ${infofile}_1 ${infofile}
mv ${logfile}_1 ${logfile}
fi
done
test_exit 0
# Local Variables: ***
# mode:ksh ***

View File

@@ -1,21 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-c4x],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([c4xsim])
RTEMS_TOP(../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.10])
AM_MAINTAINER_MODE
RTEMS_ENV_RTEMSBSP
RTEMS_PROJECT_ROOT
RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,44 +0,0 @@
/*
* CXX Spurious Trap Handler Install Routine
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
/*
* bsp_spurious_initialize
*
* Install the spurious handler for most vectors.
*/
rtems_isr bsp_spurious_handler(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
);
void bsp_spurious_initialize()
{
uint32_t vector;
for ( vector=0 ; vector<64 ; vector++ ) {
/*
* Skip any vectors that might be generally used for traps.
*/
set_vector( bsp_spurious_handler, vector, 1 );
}
}

View File

@@ -1,85 +0,0 @@
/*
* C3X Spurious Trap Handler
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
/*
* bsp_spurious_handler
*
* Print a message on the debug console and then die
*/
void bsp_spurious_handler_assistant(
rtems_vector_number,
CPU_Interrupt_frame *
);
#if defined(_C3x)
rtems_isr bsp_spurious_handler(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
)
{
char *s;
printk( "Unexpected interrupt (0x%x)\n", vector );
printk( "It looks like we got the interrupt at 0x%x\n", isf->interrupted );
/*
* Can we print a name?
*/
s = 0;
if ( vector <= 0x1f ) {
switch ( vector ) {
#if defined(_C30) || defined(_C31)
case 0: s = "RESET"; break;
#endif
case 1: s = "INT0"; break;
case 2: s = "INT1"; break;
case 3: s = "INT2"; break;
case 4: s = "INT3"; break;
case 5: s = "XINT0"; break;
case 6: s = "RINT0"; break;
#if defined(_C30) || defined(_C31)
case 7: s = "XINT1"; break;
case 8: s = "RINT1"; break;
#endif
case 9: s = "TINT0"; break;
case 0x0a: s = "TINT1"; break;
case 0x0b: s = "DINT0"; break;
#if defined(_C32)
case 0x0c: s = "DINT1"; break;
#endif
default: s = "Reserved"; break;
}
printk( "Looks like it was an %s\n", s );
} else {
printk( "Looks like it was a TRAP%d\n", vector - 0x20 );
#if defined(_C30) || defined(_C31)
if ( vector > 0x3B )
printk( "But TRAP27 - TRAP31 are reserved\n" );
#endif
}
/*
* Now call the BSP specific routine
*/
bsp_spurious_handler_assistant( vector, isf );
}
#endif

View File

@@ -1,79 +0,0 @@
/*
* C4X Spurious Trap Handler
*
* This is just enough of a trap handler to let us know what
* the likely source of the trap was.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <rtems/bspIo.h>
/*
* bsp_spurious_handler
*
* Print a message on the debug console and then die
*/
void bsp_spurious_handler_assistant(
rtems_vector_number,
CPU_Interrupt_frame *
);
#if defined(_C4x)
rtems_isr bsp_spurious_handler(
rtems_vector_number vector,
CPU_Interrupt_frame *isf
)
{
char *s;
printk( "Unexpected interrupt (0x%x)\n", vector );
printk( "It looks like we got the interrupt at 0x%x\n", isf->interrupted );
/*
* Can we print a name?
*/
printk( "Looks like it was a " );
if ( vector >= 0x0d && vector <= 0x24 ) {
switch ( vector & 0x3 ) {
case 1: s = "ICFULL"; break;
case 2: s = "ICRDY"; break;
case 3: s = "OCRDY"; break;
case 0: s = "OCEMPTY"; break;
}
printk( "%s%d\n", s, (vector - 0x0d) / 4 );
} else if ( vector >= 0x25 && vector <= 0x2a ) {
printk( "DMA INT%d\n", (vector - 0x25) );
} else /* if ( vector <= 0x0c || vector >= 0x2b ) */ {
switch ( vector ) {
case 0: s = "RESET"; break;
case 1: s = "NMI"; break;
case 2: s = "TINT0"; break;
case 3: s = "IIOF0"; break;
case 4: s = "IIOF1"; break;
case 5: s = "IIOF2"; break;
case 6: s = "IIOF3"; break;
case 0x2b: s = "TINT1"; break;
case 0x3f: s = "Reserved"; break;
default: s = "Unused"; break;
}
printk( "%s\n", s );
}
/*
* Now call the BSP specific routine
*/
bsp_spurious_handler_assistant( vector, isf );
}
#endif

View File

@@ -1,3 +1,11 @@
2007-11-26 Eric Norum <norume@aps.anl.gov>
* network/network.c: Fix LED configuration to match uCDIMM.
2007-10-14 Eric Norum <norume@aps.anl.gov>
* clock/clock.c: Add nanoseconds since tick support.
2007-05-03 Joel Sherrill <joel@OARcorp.com>
* startup/linkcmds: Handle .data.* sections

View File

@@ -30,8 +30,19 @@ extern int __SRAMBASE[];
#define IDLE_COUNTER __SRAMBASE[0]
#define FILTERED_IDLE __SRAMBASE[1]
#define MAX_IDLE_COUNT __SRAMBASE[2]
#define PCNTR_AT_TICK (*(uint16 *)&__SRAMBASE[3])
#define FILTER_SHIFT 6
uint32_t bsp_clock_nanoseconds_since_last_tick(void)
{
int i = MCF5282_PIT3_PCNTR;
if (MCF5282_PIT3_PCSR & MCF5282_PIT_PCSR_PIF)
i = MCF5282_PIT3_PCNTR + MCF5282_PIT3_PMR;
return (i - PCNTR_AT_TICK) * 1000;
}
#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
/*
* Periodic interval timer interrupt handler
*/
@@ -42,14 +53,15 @@ extern int __SRAMBASE[];
if (idle > MAX_IDLE_COUNT) \
MAX_IDLE_COUNT = idle; \
FILTERED_IDLE = idle + FILTERED_IDLE - (FILTERED_IDLE>>FILTER_SHIFT);\
PCNTR_AT_TICK = MCF5282_PIT3_PCNTR; \
MCF5282_PIT3_PCSR |= MCF5282_PIT_PCSR_PIF; \
} while (0)
/*
* Attach clock interrupt handler
*/
#define Clock_driver_support_install_isr( _new, _old ) \
do { \
#define Clock_driver_support_install_isr( _new, _old ) \
do { \
_old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \
} while(0)
@@ -84,17 +96,18 @@ extern int __SRAMBASE[];
MCF5282_INTC_ICR_IP(PIT3_IRQ_PRIORITY); \
rtems_interrupt_disable( level ); \
MCF5282_INTC0_IMRH &= ~MCF5282_INTC_IMRH_INT58; \
MCF5282_PIT3_PCSR &= ~MCF5282_PIT_PCSR_EN; \
MCF5282_PIT3_PCSR &= ~MCF5282_PIT_PCSR_EN; \
rtems_interrupt_enable( level ); \
MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) | \
MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) | \
MCF5282_PIT_PCSR_OVW | \
MCF5282_PIT_PCSR_PIE | \
MCF5282_PIT_PCSR_RLD; \
MCF5282_PIT3_PMR = BSP_Configuration.microseconds_per_tick - 1; \
MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) | \
MCF5282_PIT3_PMR = BSP_Configuration.microseconds_per_tick - 1; \
MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) | \
MCF5282_PIT_PCSR_PIE | \
MCF5282_PIT_PCSR_RLD | \
MCF5282_PIT_PCSR_EN; \
PCNTR_AT_TICK = MCF5282_PIT3_PCNTR; \
} while (0)
/*

View File

@@ -304,13 +304,13 @@ mcf5282_fec_initialize_hardware(struct mcf5282_enet_struct *sc)
/*
* Set PHYS
* LED1 link status, LED2 receive status, LEDs stretched
* LED1 receive status, LED2 link status, LEDs stretched
* Advertise 100 Mb/s, full-duplex, IEEE-802.3
* Turn off auto-negotiate
* Enable speed-change, duplex-change and link-status-change interrupts
* Set 100/full and perhaps auto-negotiate
*/
setMII(1, 20, 0x42F2);
setMII(1, 20, 0x24F2);
setMII(1, 4, 0x0181);
setMII(1, 0, 0x2100);
rtems_task_wake_after(2);

View File

@@ -1,14 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
Makefile
Makefile.in
missing
mkinstalldirs

View File

@@ -1,125 +0,0 @@
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2006-09-11 Chris Johns <chrisj@rtems.org>
* nios2_iss/start/crtnn.s: Remove extra CRLF.
2006-08-10 Joel Sherrill <joel@OARcorp.com>
* .cvsignore: New file.
2006-08-09 Kolja Waschk <waschk@telos.de>
* ChangeLog, Makefile.am, README, acinclude.m4, configure.ac,
nios2_iss/ChangeLog, nios2_iss/Makefile.am, nios2_iss/bsp_specs,
nios2_iss/configure.ac, nios2_iss/nios2_iss.ptf,
nios2_iss/nios2_iss.sh, nios2_iss/times, nios2_iss/console/console.c,
nios2_iss/include/bsp.h, nios2_iss/include/bspopts.h.in,
nios2_iss/include/coverhd.h, nios2_iss/include/tm27.h,
nios2_iss/shmsupp/addrconv.c, nios2_iss/shmsupp/getcfg.c,
nios2_iss/shmsupp/lock.c, nios2_iss/shmsupp/mpisr.c,
nios2_iss/start/crtnn.s, nios2_iss/start/start.S,
nios2_iss/startup/bspclean.c, nios2_iss/startup/bspstart.c,
nios2_iss/startup/linkcmds, nios2_iss/startup/main.c,
nios2_iss/startup/setvec.c, nios2_iss/timer/timer.c: New files.
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
* configure.ac: Require automake > 1.9.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: Regenerate.
2004-02-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY]).
2004-01-13 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use @RTEMS_BSP_FAMILY@ instead of
$(RTEMS_BSP_FAMILY).
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
2003-10-20 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: Reflect changes to bootstrap.
* configure.ac: Remove RTEMS_CHECK_CUSTON_BSP.
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved aclocal/.
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Reflect having moved automake/.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove AC_CONFIG_AUX_DIR.
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: AC_PREREQ(2.57).
2002-12-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove RTEMS_CHECK_BSP_CACHE.
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Reformat.
Add autom4te*cache.
Remove autom4te.cache.
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
* Makefile.am: Remove AUTOMAKE_OPTIONS.
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
* configure.in: Remove.
* configure.ac: New file, generated from configure.in by autoupdate.
2001-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* acinclude.m4: New file.
* configure.in: Use RTEMS_BSP_SUBDIR.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
Switch to GNU canonicalization.
2000-08-10 Joel Sherrill <joel@OARcorp.com>
* ChangeLog: New file.

View File

@@ -1,11 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../aclocal
# Descend into the @RTEMS_BSP_FAMILY@ directory
SUBDIRS = @RTEMS_BSP_FAMILY@
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am

View File

@@ -1,79 +0,0 @@
#
# $Id$
#
# Goal is to have BSPs build almost completely automatically from a template
# and information that comes from SOPC Builder as a .PTF file. Most of the
# code will go to a shared/ BSP directory.
#
# Ideally, updates to the PTF shouldn't cause any pain for the maintainer
# of a specific BSP (possibly with enhancements not covered by the
# automatic BSP creation).
#
# Some first steps toward utilizing SOPC Builder PTF output can be found
# in top level /tools/cpu/nios2. Also see the README there.
#
# Implemented (in shared/ subdirectory)
# Clock driver
# Timer driver
# Console via JTAG UART
#
# Todo;
# Support more peripherals. My priorities:
# - (improve) Altera Avalon JTAG UART
# - Altera Avalon UART
# - OpenCores.org I2C Master
# - Altera SPI Core / EPCS Configuration Device
# - OpenCores.org 10/100 Ethernet MAC (use existing driver)
# - (more) Altera Avalon Timer
#
# Put all drivers aside in a shared/ subdirectory.
# Update the "times" file for NIOS2 with and without icache.
#
# Missing (although it looks like it's there)
# Data cache handling (for now, don't use the "fast" NIOS2)
# SHM support (just taken over the code from no_cpu/no_bsp)
#
# Kolja Waschk, 6/2006
#
BSP NAME: nios2_eb2_1
BOARD: Altera Instruction Set Simulator Default plus second timer
BUS: Avalon
CPU FAMILY: nios2
CPU: small
COPROCESSORS: none
MODE: 32 bit mode
DEBUG MONITOR: none
PERIPHERALS
===========
TIMERS: Altera Avalon Timer
RESOLUTION: .0001 microseconds
SERIAL PORTS: Altera Avalon JTAG UART
REAL-TIME CLOCK: none
DMA: none
VIDEO: none
SCSI: none
NETWORKING: none
DRIVER INFORMATION
==================
CLOCK DRIVER: Altera Avalon Timer
IOSUPP DRIVER: none
SHMSUPP: polled
TIMER DRIVER: Altera Avalon Timer
TTY DRIVER: none
STDIO
=====
PORT: Console port 0
ELECTRICAL: JTAG
BAUD: 115200
BITS PER CHARACTER: 8
PARITY: None
STOP BITS: 1
NOTES
=====

View File

@@ -1,10 +0,0 @@
# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY)
AC_DEFUN([RTEMS_CHECK_BSPDIR],
[
case "$1" in
nios2_iss )
AC_CONFIG_SUBDIRS([nios2_iss]);;
*)
AC_MSG_ERROR([Invalid BSP]);;
esac
])

View File

@@ -1,21 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-nios2],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([nios2_iss])
RTEMS_TOP(../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define foreign 1.10])
AM_MAINTAINER_MODE
RTEMS_ENV_RTEMSBSP
RTEMS_PROJECT_ROOT
RTEMS_CHECK_BSPDIR([$RTEMS_BSP_FAMILY])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,14 +0,0 @@
aclocal.m4
autom4te*.cache
config.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
Makefile
Makefile.in
missing
mkinstalldirs

View File

@@ -1,55 +0,0 @@
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps
* startup/bspclean.c: Code outside of cpukit should use the public API
for rtems_interrupt_disable/rtems_interrupt_enable. By bypassing the
public API and directly accessing _CPU_ISR_Disable and
_CPU_ISR_Enable, they were bypassing the compiler memory barrier
directive which could lead to problems. This patch also changes the
type of the variable passed into these routines and addresses minor
style issues.
2007-04-12 Ralf Corsépius <ralf.corsepius@rtems.org>
* bsp_specs: Remove qrtems_debug.
Remove *cpp:.
2007-03-12 Joel Sherrill <joel@OARcorp.com>
* include/coverhd.h: Correct license URL and/or fix mistake in
copyright notice. Both of these mistakes appear to be from code
submitted after these changes were made previously.
2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Use preinstall.am.
2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: New BUG-REPORT address.
2006-11-15 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Merge c_rtems_main() into boot_card(). This eliminated a
file and simplified initialization.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove superfluous -DASM.
2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Require autoconf-2.60. Require automake-1.10.
2006-08-10 Joel Sherrill <joel@OARcorp.com>
* .cvsignore: New file.
2006-08-09 Kolja Waschk <waschk@telos.de>
* clock/clock.c: New file.
2005-12-12 Kolja Waschk
* derived from no_cpu BSP

View File

@@ -1,71 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../aclocal
include $(top_srcdir)/../../../../automake/compile.am
include $(top_srcdir)/../../bsp.am
dist_project_lib_DATA = bsp_specs
include_HEADERS = include/bsp.h
include_HEADERS += include/tm27.h
nodist_include_HEADERS = include/bspopts.h
DISTCLEANFILES = include/bspopts.h
noinst_PROGRAMS =
include_HEADERS += include/coverhd.h
EXTRA_DIST = start/start.S start/crtnn.s times
crtnn.$(OBJEXT): start/crtnn.s
$(CPPASCOMPILE) -o $@ -c $<
start.$(OBJEXT): start/start.S
$(CPPASCOMPILE) -o $@ -c $<
project_lib_DATA = start.$(OBJEXT) crtnn.$(OBJEXT)
dist_project_lib_DATA += startup/linkcmds
noinst_PROGRAMS += clock.rel
clock_rel_SOURCES = clock/clock.c
clock_rel_CPPFLAGS = $(AM_CPPFLAGS)
clock_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += console.rel
console_rel_SOURCES = console/console.c
console_rel_CPPFLAGS = $(AM_CPPFLAGS)
console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
if HAS_MP
noinst_PROGRAMS += shmsupp.rel
shmsupp_rel_SOURCES = shmsupp/addrconv.c shmsupp/getcfg.c shmsupp/lock.c \
shmsupp/mpisr.c
shmsupp_rel_CPPFLAGS = $(AM_CPPFLAGS)
shmsupp_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
endif
noinst_PROGRAMS += startup.rel
startup_rel_SOURCES = startup/bspclean.c ../../shared/bsplibc.c \
../../shared/bsppost.c startup/bspstart.c \
../../shared/bootcard.c ../../shared/sbrk.c startup/setvec.c \
../../shared/gnatinstallhandler.c
startup_rel_CPPFLAGS = $(AM_CPPFLAGS)
startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_PROGRAMS += timer.rel
timer_rel_SOURCES = timer/timer.c
timer_rel_CPPFLAGS = $(AM_CPPFLAGS)
timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
noinst_LIBRARIES = libbsp.a
libbsp_a_SOURCES =
libbsp_a_LIBADD = startup.rel clock.rel console.rel timer.rel
if HAS_MP
libbsp_a_LIBADD += shmsupp.rel
endif
include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am

View File

@@ -1,19 +0,0 @@
%rename lib old_lib
%rename endfile old_endfile
%rename startfile old_startfile
%rename link old_link
*lib:
%{!qrtems: %(old_lib)} \
%{!nostdlib: %{qrtems: --start-group -lrtemsbsp -lrtemscpu -lc -lgcc --end-group \
%{!qnolinkcmds: -T linkcmds%s}}}
*startfile:
%{!qrtems: %(old_startfile)} \
%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e start}
*endfile:
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtnn.o%s}

View File

@@ -1,54 +0,0 @@
/*
* Use SYS_CLK as system clock
*
* Copyright (c) 2005-2006 Kolja Waschk, rtemsdev/ixo.de
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#define CLOCK_REGS ((altera_avalon_timer_regs*)NIOS2_IO_BASE(CLOCK_BASE))
/*
* Periodic interval timer interrupt handler
*/
#define Clock_driver_support_at_tick() \
do { CLOCK_REGS->status = 0; } while(0)
/*
* Attach clock interrupt handler
*/
#define Clock_driver_support_install_isr(_new, _old) \
do { _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); } while(0)
/*
* Turn off the clock
*/
#define Clock_driver_support_shutdown_hardware() \
do { CLOCK_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK; } while(0)
/*
* Set up the clock hardware
*/
void Clock_driver_support_initialize_hardware(void)
{
uint32_t period;
CLOCK_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK;
period = (CLOCK_FREQ/1000000L)*BSP_Configuration.microseconds_per_tick - 1;
CLOCK_REGS->period_hi = period >> 16;
CLOCK_REGS->period_lo = period & 0xFFFF;
CLOCK_REGS->control = ALTERA_AVALON_TIMER_CONTROL_ITO_MSK |
ALTERA_AVALON_TIMER_CONTROL_CONT_MSK |
ALTERA_AVALON_TIMER_CONTROL_START_MSK;
NIOS2_IENABLE(1 << CLOCK_VECTOR);
}
#include "../../../shared/clockdrv_shell.c"

View File

@@ -1,20 +0,0 @@
## Process this file with autoconf to produce a configure script.
##
## $Id$
AC_PREREQ(2.60)
AC_INIT([rtems-c-src-lib-libbsp-nios2-nios2_iss],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
AC_CONFIG_SRCDIR([bsp_specs])
RTEMS_TOP(../../../../../..)
RTEMS_CANONICAL_TARGET_CPU
AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.10])
RTEMS_BSP_CONFIGURE
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
RTEMS_CANONICALIZE_TOOLS
RTEMS_PROG_CCAS
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

View File

@@ -1,264 +0,0 @@
/*
* This file implements simple console IO via JTAG UART.
*
* Based on no_cpu/console.c
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* Altera-specific code is
* COPYRIGHT (c) 2005-2006 Kolja Waschk, rtemsdev/ixo.de
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#define NO_BSP_INIT
#include <bsp.h>
#include <rtems/libio.h>
/* #define JTAG_UART_REGS ((altera_avalon_jtag_uart_regs*)NIOS2_IO_BASE(JTAG_UART_BASE)) */
#if 0
extern rtems_cpu_table Cpu_table; /* owned by BSP */
#define XOFFchar 0x13
#define XONchar 0x11
#endif
/* console_initialize
*
* This routine initializes the console IO driver.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
*/
rtems_device_driver console_initialize(
rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg
)
{
rtems_status_code status;
status = rtems_io_register_name(
"/dev/console",
major,
(rtems_device_minor_number) 0
);
if (status != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(status);
return RTEMS_SUCCESSFUL;
}
/* is_character_ready
*
* If a character is available, this routine reads it and stores
* it in
* reads the character and stores
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
*/
rtems_boolean is_character_ready(
char *ch
)
{
altera_avalon_jtag_uart_regs *ajur = NIOS2_IO_BASE(JTAG_UART_BASE);
unsigned int data = ajur->data;
if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK)
{
*ch = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK)
>> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST;
return TRUE;
};
return FALSE;
}
/* inbyte
*
* This routine reads a character from the SOURCE.
*
* Input parameters: NONE
*
* Output parameters: NONE
*
* Return values:
* character read from SOURCE
*/
char inbyte( void )
{
/*
* Wait until a character is available.
*/
char ch;
while(!is_character_ready(&ch));
return ch;
}
/* outbyte
*
* This routine transmits a character out the SOURCE. It may support
* XON/XOFF flow control.
*
* Input parameters:
* ch - character to be transmitted
*
* Output parameters: NONE
*/
void outbyte(
char ch
)
{
altera_avalon_jtag_uart_regs *ajur = NIOS2_IO_BASE(JTAG_UART_BASE);
/*
* Carriage Return/New line translation.
*/
if ( ch == '\n' )
outbyte( '\r' );
/*
* Wait for the transmitter to be ready.
* Check for flow control requests and process.
* Then output the character.
*/
while ((ajur->control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) == 0);
#if 0
if (Cpu_table.serial_xon_xoff)
{
while (is_character_ready(&status))
{
if (status == XOFFchar)
do
{
while (!is_character_ready(&status));
}
while (status != XONchar);
}
}
#endif
ajur->data = ch;
}
/*
* Open entry point
*/
rtems_device_driver console_open(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}
/*
* Close entry point
*/
rtems_device_driver console_close(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}
/*
* read bytes from the serial port. We only have stdin.
*/
rtems_device_driver console_read(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
rtems_libio_rw_args_t *rw_args;
char *buffer;
int maximum;
int count = 0;
rw_args = (rtems_libio_rw_args_t *) arg;
buffer = rw_args->buffer;
maximum = rw_args->count;
for (count = 0; count < maximum; count++) {
buffer[ count ] = inbyte();
if (buffer[ count ] == '\n' || buffer[ count ] == '\r') {
buffer[ count++ ] = '\n';
break;
}
}
rw_args->bytes_moved = count;
return (count >= 0) ? RTEMS_SUCCESSFUL : RTEMS_UNSATISFIED;
}
/*
* write bytes to the serial port. Stdout and stderr are the same.
*/
rtems_device_driver console_write(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
int count;
int maximum;
rtems_libio_rw_args_t *rw_args;
char *buffer;
rw_args = (rtems_libio_rw_args_t *) arg;
buffer = rw_args->buffer;
maximum = rw_args->count;
for (count = 0; count < maximum; count++) {
if ( buffer[ count ] == '\n') {
outbyte('\r');
}
outbyte( buffer[ count ] );
}
rw_args->bytes_moved = maximum;
return 0;
}
/*
* IO Control entry point
*/
rtems_device_driver console_control(
rtems_device_major_number major,
rtems_device_minor_number minor,
void * arg
)
{
return RTEMS_SUCCESSFUL;
}

View File

@@ -1,4 +0,0 @@
stamp-h
stamp-h.in
bspopts.h
bspopts.h.in

View File

@@ -1,173 +0,0 @@
/* bsp.h
*
* This include file contains all board IO definitions.
*
* XXX : put yours in here
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _BSP_H
#define _BSP_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <bspopts.h>
#include <rtems.h>
#include <rtems/console.h>
#include <rtems/clockdrv.h>
/*
* confdefs.h overrides for this BSP:
* - number of termios serial ports (defaults to 1)
* - Interrupt stack space is not minimum if defined.
*/
/* #define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2 */
#define CONFIGURE_INTERRUPT_STACK_MEMORY (4 * 1024)
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
*/
#define rtems_bsp_delay( microseconds ) \
{ \
}
/* ============================================ */
/* SOPC-specific Constants */
#define SYSTEM_BUS_WIDTH 32
#define RAM_BASE 0
#define RAM_BYTES 0x00800000
#define JTAG_UART_BASE 0x08000000
#define JTAG_UART_IRQ 2
#define CLOCK_BASE 0x08001000
#define CLOCK_FREQ 50000000
#define CLOCK_VECTOR 1
#define TIMER_BASE 0x08002000
#define TIMER_FREQ 50000000
#define TIMER_VECTOR 3
/* ============================================ */
#define NIOS2_BYPASS_CACHE ((uint32_t)0x80000000ul)
#define NIOS2_IO_BASE(x) ( (void*) ((uint32_t)x | NIOS2_BYPASS_CACHE ) )
#define NIOS2_IENABLE(x) do{ __builtin_wrctl(3,__builtin_rdctl(3)|x);}while(0)
#define NIOS2_IRQ_ENABLE(x) do {__builtin_wrctl(3,__builtin_rdctl(3)|x);} while(0)
/* ============================================ */
/* TODO: Put this in an external header file */
#ifndef SYSTEM_BUS_WIDTH
#error SYSTEM_BUS_WIDTH is undefined
#endif
#if SYSTEM_BUS_WIDTH != 32
#error Only SYSTEM_BUS_WIDTH 32 is supported
#endif
typedef struct
{
volatile uint32_t status;
volatile uint32_t control;
volatile uint32_t period_lo;
volatile uint32_t period_hi;
volatile uint32_t snap_lo;
volatile uint32_t snap_hi;
}
altera_avalon_timer_regs;
#define ALTERA_AVALON_TIMER_STATUS_TO_MSK (0x1)
#define ALTERA_AVALON_TIMER_STATUS_TO_OFST (0)
#define ALTERA_AVALON_TIMER_STATUS_RUN_MSK (0x2)
#define ALTERA_AVALON_TIMER_STATUS_RUN_OFST (1)
#define ALTERA_AVALON_TIMER_CONTROL_ITO_MSK (0x1)
#define ALTERA_AVALON_TIMER_CONTROL_ITO_OFST (0)
#define ALTERA_AVALON_TIMER_CONTROL_CONT_MSK (0x2)
#define ALTERA_AVALON_TIMER_CONTROL_CONT_OFST (1)
#define ALTERA_AVALON_TIMER_CONTROL_START_MSK (0x4)
#define ALTERA_AVALON_TIMER_CONTROL_START_OFST (2)
#define ALTERA_AVALON_TIMER_CONTROL_STOP_MSK (0x8)
#define ALTERA_AVALON_TIMER_CONTROL_STOP_OFST (3)
typedef struct
{
volatile uint32_t data;
volatile uint32_t control;
}
altera_avalon_jtag_uart_regs;
#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FFu)
#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0)
#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000u)
#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15)
#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000u)
#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9)
#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000u)
#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16)
/* ============================================ */
/* miscellaneous stuff assumed to exist */
extern rtems_configuration_table BSP_Configuration;
/*
* Device Driver Table Entries
*/
/*
* NOTE: Use the standard Console driver entry
*/
/*
* NOTE: Use the standard Clock driver entry
*/
/* functions */
void bsp_cleanup( void );
nios2_isr_entry set_vector( /* returns old vector */
rtems_isr_entry handler, /* isr routine */
rtems_vector_number vector, /* vector number */
int type /* RTEMS or RAW intr */
);
#ifdef __cplusplus
}
#endif
#endif
/* end of include file */

View File

@@ -1,105 +0,0 @@
/* coverhd.h
*
* This include file has defines to represent the overhead associated
* with calling a particular directive from C. These are used in the
* Timing Test Suite to ignore the overhead required to pass arguments
* to directives. On some CPUs and/or target boards, this overhead
* is significant and makes it difficult to distinguish internal
* RTEMS execution time from that used to call the directive.
* This file should be updated after running the C overhead timing
* test. Once this update has been performed, the RTEMS Time Test
* Suite should be rebuilt to account for these overhead times in the
* timing results.
*
* NOTE: If these are all zero, then the times reported include
* all calling overhead including passing of arguments.
*
* COPYRIGHT (c) 1989-1998.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef __COVERHD_h
#define __COVERHD_h
#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 0
#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 0
#define CALLING_OVERHEAD_TASK_CREATE 0
#define CALLING_OVERHEAD_TASK_IDENT 0
#define CALLING_OVERHEAD_TASK_START 0
#define CALLING_OVERHEAD_TASK_RESTART 0
#define CALLING_OVERHEAD_TASK_DELETE 0
#define CALLING_OVERHEAD_TASK_SUSPEND 0
#define CALLING_OVERHEAD_TASK_RESUME 0
#define CALLING_OVERHEAD_TASK_SET_PRIORITY 0
#define CALLING_OVERHEAD_TASK_MODE 0
#define CALLING_OVERHEAD_TASK_GET_NOTE 0
#define CALLING_OVERHEAD_TASK_SET_NOTE 0
#define CALLING_OVERHEAD_TASK_WAKE_WHEN 0
#define CALLING_OVERHEAD_TASK_WAKE_AFTER 0
#define CALLING_OVERHEAD_INTERRUPT_CATCH 0
#define CALLING_OVERHEAD_CLOCK_GET 0
#define CALLING_OVERHEAD_CLOCK_SET 0
#define CALLING_OVERHEAD_CLOCK_TICK 0
#define CALLING_OVERHEAD_TIMER_CREATE 0
#define CALLING_OVERHEAD_TIMER_IDENT 0
#define CALLING_OVERHEAD_TIMER_DELETE 0
#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 1
#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 1
#define CALLING_OVERHEAD_TIMER_RESET 0
#define CALLING_OVERHEAD_TIMER_CANCEL 0
#define CALLING_OVERHEAD_SEMAPHORE_CREATE 0
#define CALLING_OVERHEAD_SEMAPHORE_IDENT 0
#define CALLING_OVERHEAD_SEMAPHORE_DELETE 0
#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 0
#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 0
#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 0
#define CALLING_OVERHEAD_EVENT_SEND 0
#define CALLING_OVERHEAD_EVENT_RECEIVE 0
#define CALLING_OVERHEAD_SIGNAL_CATCH 0
#define CALLING_OVERHEAD_SIGNAL_SEND 0
#define CALLING_OVERHEAD_PARTITION_CREATE 0
#define CALLING_OVERHEAD_PARTITION_IDENT 0
#define CALLING_OVERHEAD_PARTITION_DELETE 0
#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 0
#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 0
#define CALLING_OVERHEAD_REGION_CREATE 0
#define CALLING_OVERHEAD_REGION_IDENT 0
#define CALLING_OVERHEAD_REGION_DELETE 0
#define CALLING_OVERHEAD_REGION_GET_SEGMENT 0
#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 0
#define CALLING_OVERHEAD_PORT_CREATE 0
#define CALLING_OVERHEAD_PORT_IDENT 0
#define CALLING_OVERHEAD_PORT_DELETE 0
#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 0
#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 0
#define CALLING_OVERHEAD_IO_INITIALIZE 0
#define CALLING_OVERHEAD_IO_OPEN 0
#define CALLING_OVERHEAD_IO_CLOSE 0
#define CALLING_OVERHEAD_IO_READ 0
#define CALLING_OVERHEAD_IO_WRITE 0
#define CALLING_OVERHEAD_IO_CONTROL 0
#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 0
#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 0
#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 0
#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 0
#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 0
#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 0
#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 0
#endif

View File

@@ -1,32 +0,0 @@
/*
* tm27.h
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef _RTEMS_TMTEST27
#error "This is an RTEMS internal file you must not include directly."
#endif
#ifndef __tm27_h
#define __tm27_h
/*
* Stuff for Time Test 27
*/
#define MUST_WAIT_FOR_INTERRUPT 0
#define Install_tm27_vector( handler ) set_vector( (handler), 0, 1 )
#define Cause_tm27_intr() /* empty */
#define Clear_tm27_intr() /* empty */
#define Lower_tm27_intr() /* empty */
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
#!/bin/sh
IOD=jtag_uart_0
PTF=nios2_iss.ptf
EXE="$1"
# e.g. hello.nxe
nios2-iss -c --stdin=${IOD} --stdout=${IOD} --stderr=${IOD} -f "${EXE}" -p "${PTF}"

View File

@@ -1,62 +0,0 @@
## Automatically generated by ampolish3 - Do not edit
if AMPOLISH3
$(srcdir)/preinstall.am: Makefile.am
$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
endif
PREINSTALL_DIRS =
DISTCLEANFILES += $(PREINSTALL_DIRS)
all-local: $(TMPINSTALL_FILES)
TMPINSTALL_FILES =
CLEANFILES = $(TMPINSTALL_FILES)
all-am: $(PREINSTALL_FILES)
PREINSTALL_FILES =
CLEANFILES += $(PREINSTALL_FILES)
$(PROJECT_LIB)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_LIB)
@: > $(PROJECT_LIB)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
$(PROJECT_INCLUDE)/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)
@: > $(PROJECT_INCLUDE)/$(dirstamp)
PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
$(PROJECT_LIB)/bsp_specs: bsp_specs $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/bsp_specs
PREINSTALL_FILES += $(PROJECT_LIB)/bsp_specs
$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
$(PROJECT_INCLUDE)/coverhd.h: include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
$(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT)
TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT)
$(PROJECT_LIB)/crtnn.$(OBJEXT): crtnn.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/crtnn.$(OBJEXT)
TMPINSTALL_FILES += $(PROJECT_LIB)/crtnn.$(OBJEXT)
$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds

View File

@@ -1,30 +0,0 @@
/* Shm_Convert_address
*
* No address range conversion is required.
*
* Input parameters:
* address - address to convert
*
* Output parameters:
* returns - converted address
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#include <shm_driver.h>
void *Shm_Convert_address(
void *address
)
{
return ( address );
}

View File

@@ -1,75 +0,0 @@
/* void Shm_Get_configuration( localnode, &shmcfg )
*
* This routine initializes, if necessary, and returns a pointer
* to the Shared Memory Configuration Table for the XXX target.
*
* INPUT PARAMETERS:
* localnode - local node number
* shmcfg - address of pointer to SHM Config Table
*
* OUTPUT PARAMETERS:
* *shmcfg - pointer to SHM Config Table
*
XXX: FIX THE COMMENTS BELOW WHEN THE CPU IS KNOWN
* NOTES: The XYZ does not have an interprocessor interrupt.
*
* The following table illustrates the configuration limitations:
*
* BUS MAX
* MODE ENDIAN NODES
* ========= ====== =======
* POLLED BIG 2+
* INTERRUPT **** NOT SUPPORTED ****
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#include <shm_driver.h>
/*
* configured if currently polling of interrupt driven
*/
#define INTERRUPT 0 /* XXX: */
#define POLLING 1 /* XXX: fix me -- is polling ONLY!!! */
shm_config_table BSP_shm_cfgtbl;
void Shm_Get_configuration(
uint32_t localnode,
shm_config_table **shmcfg
)
{
BSP_shm_cfgtbl.base = 0x0;
BSP_shm_cfgtbl.length = 1 * MEGABYTE;
BSP_shm_cfgtbl.format = SHM_BIG;
/*
* Override cause_intr or shm_isr if your target has
* special requirements.
*/
BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt;
#ifdef NEUTRAL_BIG
BSP_shm_cfgtbl.convert = NULL_CONVERT;
#else
BSP_shm_cfgtbl.convert = CPU_swap_u32;
#endif
BSP_shm_cfgtbl.poll_intr = POLLED_MODE;
BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT;
BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT;
BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT;
*shmcfg = &BSP_shm_cfgtbl;
}

View File

@@ -1,84 +0,0 @@
/* Shared Memory Lock Routines
*
* This shared memory locked queue support routine need to be
* able to lock the specified locked queue. Interrupts are
* disabled while the queue is locked to prevent preemption
* and deadlock when two tasks poll for the same lock.
* previous level.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#include <shm_driver.h>
/*
* Shm_Initialize_lock
*
* Initialize the lock for the specified locked queue.
*/
void Shm_Initialize_lock(
Shm_Locked_queue_Control *lq_cb
)
{
lq_cb->lock = LQ_UNLOCKED;
}
/* void _Shm_Lock( &lq_cb )
*
* This shared memory locked queue support routine locks the
* specified locked queue. It disables interrupts to prevent
* a deadlock condition.
*/
void Shm_Lock(
Shm_Locked_queue_Control *lq_cb
)
{
uint32_t isr_level;
uint32_t *lockptr = (uint32_t*) &lq_cb->lock;
uint32_t lock_value;
lock_value = 0x80000000;
rtems_interrupt_disable( isr_level );
Shm_isrstat = isr_level;
while ( lock_value ) {
asm volatile( ""
: "=r" (lockptr), "=r" (lock_value)
: "0" (lockptr), "1" (lock_value)
);
/*
* If not available, then may want to delay to reduce load on lock.
*/
if ( lock_value )
rtems_bsp_delay( 10 ); /* approximately 10 microseconds */
}
}
/*
* Shm_Unlock
*
* Unlock the lock for the specified locked queue.
*/
void Shm_Unlock(
Shm_Locked_queue_Control *lq_cb
)
{
uint32_t isr_level;
lq_cb->lock = SHM_UNLOCK_VALUE;
isr_level = Shm_isrstat;
rtems_interrupt_enable( isr_level );
}

View File

@@ -1,46 +0,0 @@
/* Shm_isr_nobsp()
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#include <shm_driver.h>
rtems_isr Shm_isr_nobsp( void )
{
/*
* If this routine has to do anything other than the mpisr.c
* found in the generic driver, then copy the contents of the generic
* mpisr.c and augment it to satisfy this particular board. Typically,
* you need to have a board specific mpisr.c when the interrupt
* must be cleared.
*
* If the generic mpisr.c satisifies your requirements, then
* remove this routine from your target's shmsupp/mpisb.c file.
* Then simply install the generic Shm_isr in the Shm_setvec
* routine below.
*/
}
/* Shm_setvec
*
* This driver routine sets the SHM interrupt vector to point to the
* driver's SHM interrupt service routine.
*
* Input parameters: NONE
*
* Output parameters: NONE
*/
void Shm_setvec( void )
{
/* XXX: FIX ME!!! */
}

View File

@@ -1,45 +0,0 @@
/* NIOS2 crtn.asm fix
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
/* Can't use the original crtn.asm from Altera because it doesn't
restore the stack pointer correctly (in 5.1b73, the stack pointer
is further decreased by 48 instead of increased). This is named
differently (crtnn instead crtn) to make sure it can be picked up
using custom gcc specs instead of gcc's crtn. - kawk */
.section .init
ldw ra, 44(sp)
ldw r23, 40(sp)
ldw r22, 36(sp)
ldw r21, 32(sp)
ldw r20, 28(sp)
ldw r19, 24(sp)
ldw r18, 20(sp)
ldw r17, 16(sp)
ldw r16, 12(sp)
ldw fp, 8(sp)
addi sp, sp, 48
ret
.section .fini
ldw ra, 44(sp)
ldw r23, 40(sp)
ldw r22, 36(sp)
ldw r21, 32(sp)
ldw r20, 28(sp)
ldw r19, 24(sp)
ldw r18, 20(sp)
ldw r17, 16(sp)
ldw r16, 12(sp)
ldw fp, 8(sp)
addi sp, sp, 48
ret

View File

@@ -1,124 +0,0 @@
/* NIOS2 startup code
*
* This is the entry point on reset and when loading the
* executive from a bootloader.
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
.section .entry
.align 3
movhi et, %hiadj(start)
addi et, et, %lo(start)
jmp et
.section .irq
.align 3
movhi et, %hiadj(_exception_vector)
addi et, et, %lo(_exception_vector)
jmp et
.section .text
.align 3
.globl start
.type start,@function
.extern _exception_vector
start:
#------------------------------------------------------
# disable interrupts
wrctl status, zero
wrctl ienable, zero
#------------------------------------------------------
# invalidate instruction cache
mov r2, r0
movhi r3, %hi(__nios2_icache_size)
ori r3, r3, %lo(__nios2_icache_size)
icache_init_loop:
initi r2
addi r2, r2, __nios2_icache_line_size
bltu r2, r3, icache_init_loop
#------------------------------------------------------
# invalidate data cache
mov r2, r0
movhi r3, %hi(__nios2_dcache_size)
ori r3, r3, %lo(__nios2_dcache_size)
dcache_init_loop:
initd 0(r2)
addi r2, r2, __nios2_dcache_line_size
bltu r2, r3, dcache_init_loop
#------------------------------------------------------
# initialize stack pointer
movhi sp, %hiadj(__alt_stack_pointer - 4)
addi sp, sp, %lo(__alt_stack_pointer - 4)
# initialize global pointer
movhi gp, %hiadj(_gp)
addi gp, gp, %lo(_gp)
# initialize exception tmp register
movhi et, %hiadj(_end)
addi et, et, %lo(_end)
#------------------------------------------------------
# TODO: copy data from flash to RAM, if not there already
# For now its save to assume it is there already when we're
# loading code though JTAG into RAM-only system
# at least copy exception code to right place
movhi r2, %hiadj(__ram_exceptions_start)
addi r2, r2, %lo(__ram_exceptions_start)
movhi r3, %hiadj(brto_ev)
addi r3, r3, %lo(brto_ev)
ldw r4, 0(r3)
stw r4, 0(r2)
ldw r4, 4(r3)
stw r4, 4(r2)
ldw r4, 8(r3)
stw r4, 8(r2)
ldw r4, 12(r3)
stw r4, 12(r2)
#------------------------------------------------------
# clear bss
movhi r2, %hiadj(__bss_start)
addi r2, r2, %lo(__bss_start)
movhi r3, %hiadj(__bss_end)
addi r3, r3, %lo(__bss_end)
beq r2, r3, 1f
0:
stw zero, (r2)
addi r2, r2, 4
bltu r2, r3, 0b
1:
#------------------------------------------------------
# jump to (shared) boot_card (never comes back)
mov r4, zero
mov r5, zero
mov r6, zero
call boot_card
# but just in case it does come back, stick here.
_stuck_in_start:
br _stuck_in_start
#------------------------------------------------------
# code to be placed at exception address
brto_ev:
movhi et, %hiadj(_exception_vector)
addi et, et, %lo(_exception_vector)
jmp et

View File

@@ -1,31 +0,0 @@
/* bsp_cleanup()
*
* This routine normally is part of start.s and usually returns
* control to a monitor.
*
* INPUT: NONE
*
* OUTPUT: NONE
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/startup/bspclean.c 1.7.
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
#include <rtems/score/cpu.h>
void bsp_cleanup( void )
{
rtems_interrupt_level level;
rtems_interrupt_disable(level);
for(;;);
}

View File

@@ -1,143 +0,0 @@
/*
* This routine starts the application. It includes application,
* board, and monitor specific initialization and configuration.
* The generic CPU dependent initialization has been performed
* before this routine is invoked.
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/startup/bspstart.c 1.23.
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <string.h>
#include <bsp.h>
#include <rtems/libio.h>
#include <rtems/libcsupport.h>
/*
* The original table from the application and our copy of it with
* some changes.
*/
extern rtems_configuration_table Configuration;
rtems_configuration_table BSP_Configuration;
rtems_cpu_table Cpu_table;
/*
* Use the shared implementations of the following routines
*/
extern void bsp_postdriver_hook(void);
extern void bsp_libc_init( void *, uint32_t, int );
extern rtems_configuration_table BSP_Configuration;
#if 0
extern char _RAMBase[];
extern char _RAMSize[];
extern char _WorkspaceBase[];
extern char _HeapSize[];
#else
extern char __alt_heap_start[];
#endif
/*
* Function: bsp_pretasking_hook
* Created: 95/03/10
*
* Description:
* BSP pretasking hook. Called just before drivers are initialized.
* Used to setup libc and install any BSP extensions.
*
* NOTES:
* Must not use libc (to do io) from here, since drivers are
* not yet initialized.
*
*/
void bsp_pretasking_hook(void)
{
unsigned long heapStart;
#if 0
unsigned long heapSize = (unsigned long)_HeapSize;
#endif
unsigned long ramSpace;
heapStart = (unsigned long)BSP_Configuration.work_space_start
+ BSP_Configuration.work_space_size;
if (heapStart & (CPU_ALIGNMENT-1))
heapStart = (heapStart + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
#if 0
ramSpace = (unsigned long)_RAMBase + (unsigned long)_RAMSize - heapStart;
#else
#if 0
ramSpace = SRAM_0_BASE
+ (SRAM_0_SRAM_MEMORY_SIZE * SRAM_0_SRAM_MEMORY_UNITS)
- heapStart;
#else
ramSpace = RAM_BASE + RAM_BYTES - heapStart;
#endif
#endif
/* TODO */
ramSpace -= 16384; /* Space for initial stack, not to be zeroed */
#if 0
if (heapSize < 10)
heapSize = ramSpace;
else if (heapSize > ramSpace)
rtems_fatal_error_occurred (('H'<<24) | ('E'<<16) | ('A'<<8) | 'P');
bsp_libc_init((void *)heapStart, heapSize, 0);
#else
bsp_libc_init((void *)heapStart, ramSpace, 0);
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif
}
/*
* bsp_start
*
* This routine does the bulk of the system initialization.
*/
void bsp_start( void )
{
/* Fixed */
BSP_Configuration.microseconds_per_tick = 1000;
/*
* Need to "allocate" the memory for the RTEMS Workspace and
* tell the RTEMS configuration where it is. This memory is
* not malloc'ed. It is just "pulled from the air".
*/
#if 0
BSP_Configuration.work_space_start = (void *)_WorkspaceBase;
#else
BSP_Configuration.work_space_start = (void *)__alt_heap_start;
#endif
/*
* initialize the CPU table for this BSP
*/
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
Cpu_table.postdriver_hook = bsp_postdriver_hook;
Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY;
}

View File

@@ -1,331 +0,0 @@
/* generated.x
*
* Machine generated for a CPU named "cpu_0" as defined in:
* D:\eb2_nios2\kawkos.ptf
*
* Generated: 2005-07-10 11:52:46.899
*
*/
/*
DO NOT MODIFY THIS FILE
Changing this file will have subtle consequences
which will almost certainly lead to a nonfunctioning
system. If you do modify this file, be aware that your
changes will be overwritten and lost when this file
is generated again.
DO NOT MODIFY THIS FILE
*/
MEMORY
{
reset : ORIGIN = 0x00000000, LENGTH = 0x00000600
exceptions : ORIGIN = 0x00000600, LENGTH = 0x00000A00
onchip_memory_0 : ORIGIN = 0x00001000, LENGTH = 0x007FF000
}
/* Define symbols for each memory base-address */
__alt_mem_onchip_memory_0 = 0x00000000 ;
__nios2_icache_size = 4096 ;
__nios2_icache_line_size = 32 ;
__nios2_dcache_size = 0 ;
__nios2_dcache_line_size = 4 ;
OUTPUT_FORMAT( "elf32-littlenios2",
"elf32-littlenios2",
"elf32-littlenios2" )
OUTPUT_ARCH( nios2 )
ENTRY( _start )
/* Do we need any of these for elf?
__DYNAMIC = 0;
*/
SECTIONS
{
.entry :
{
KEEP (*(.entry))
} > reset
.exceptions :
{
PROVIDE (__ram_exceptions_start = ABSOLUTE(.));
. = ALIGN(0x20);
*(.irq)
KEEP (*(.exceptions.entry.label));
KEEP (*(.exceptions.entry.user));
KEEP (*(.exceptions.entry));
KEEP (*(.exceptions.irqtest.user));
KEEP (*(.exceptions.irqtest));
KEEP (*(.exceptions.irqhandler.user));
KEEP (*(.exceptions.irqhandler));
KEEP (*(.exceptions.irqreturn.user));
KEEP (*(.exceptions.irqreturn));
KEEP (*(.exceptions.notirq.label));
KEEP (*(.exceptions.notirq.user));
KEEP (*(.exceptions.notirq));
KEEP (*(.exceptions.soft.user));
KEEP (*(.exceptions.soft));
KEEP (*(.exceptions.unknown.user));
KEEP (*(.exceptions.unknown));
KEEP (*(.exceptions.exit.label));
KEEP (*(.exceptions.exit.user));
KEEP (*(.exceptions.exit));
KEEP (*(.exceptions));
PROVIDE (__ram_exceptions_end = ABSOLUTE(.));
} > exceptions
PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions));
.text :
{
/*
* All code sections are merged into the text output section, along with
* the read only data sections.
*
*/
PROVIDE (stext = ABSOLUTE(.));
*(.interp)
*(.hash)
*(.dynsym)
*(.dynstr)
*(.gnu.version)
*(.gnu.version_d)
*(.gnu.version_r)
*(.rel.init)
*(.rela.init)
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rel.fini)
*(.rela.fini)
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
*(.rel.ctors)
*(.rela.ctors)
*(.rel.dtors)
*(.rela.dtors)
*(.rel.got)
*(.rela.got)
*(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
*(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
*(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
*(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
*(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
*(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
*(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
*(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
*(.rel.plt)
*(.rela.plt)
KEEP (*(.init))
*(.plt)
*(.text .stub .text.* .gnu.linkonce.t.*)
/* Special FreeBSD sysctl sections. */
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning.*)
KEEP (*(.fini))
PROVIDE (__etext = ABSOLUTE(.));
PROVIDE (_etext = ABSOLUTE(.));
PROVIDE (etext = ABSOLUTE(.));
*(.eh_frame_hdr)
/* Ensure the __preinit_array_start label is properly aligned. We
could instead move the label definition inside the section, but
the linker would then create the section even if it turns out to
be empty, which isn't pretty. */
. = ALIGN(32 / 8);
PROVIDE (__preinit_array_start = ABSOLUTE(.));
*(.preinit_array)
PROVIDE (__preinit_array_end = ABSOLUTE(.));
PROVIDE (__init_array_start = ABSOLUTE(.));
*(.init_array)
PROVIDE (__init_array_end = ABSOLUTE(.));
PROVIDE (__fini_array_start = ABSOLUTE(.));
*(.fini_array)
PROVIDE (__fini_array_end = ABSOLUTE(.));
SORT(CONSTRUCTORS)
KEEP (*(.eh_frame))
*(.gcc_except_table)
*(.dynamic)
PROVIDE (__CTOR_LIST__ = ABSOLUTE(.));
KEEP (*(.ctors))
KEEP (*(SORT(.ctors.*)))
PROVIDE (__CTOR_END__ = ABSOLUTE(.));
PROVIDE (__DTOR_LIST__ = ABSOLUTE(.));
KEEP (*(.dtors))
KEEP (*(SORT(.dtors.*)))
PROVIDE (__DTOR_END__ = ABSOLUTE(.));
KEEP (*(.jcr))
. = ALIGN(32 / 8);
} > onchip_memory_0 = 0x3a880100 /* NOP on Nios2 (big endian) */
.rodata :
{
PROVIDE (__ram_rodata_start = ABSOLUTE(.));
. = ALIGN(32 / 8);
*(.rodata .rodata.* .gnu.linkonce.r.*)
*(.rodata1)
. = ALIGN(32 / 8);
PROVIDE (__ram_rodata_end = ABSOLUTE(.));
} > onchip_memory_0
PROVIDE (__flash_rodata_start = LOADADDR(.rodata));
.rwdata :
{
PROVIDE (__ram_rwdata_start = ABSOLUTE(.));
. = ALIGN(32 / 8);
*(.got.plt) *(.got)
*(.data1)
*(.data .data.* .gnu.linkonce.d.*)
_gp = ABSOLUTE(. + 0x8000);
PROVIDE(gp = _gp);
*(.sdata .sdata.* .gnu.linkonce.s.*)
*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
. = ALIGN(32 / 8);
_edata = ABSOLUTE(.);
PROVIDE (edata = ABSOLUTE(.));
PROVIDE (__ram_rwdata_end = ABSOLUTE(.));
} > onchip_memory_0
PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata));
.bss :
{
__bss_start = ABSOLUTE(.);
PROVIDE (__sbss_start = ABSOLUTE(.));
PROVIDE (___sbss_start = ABSOLUTE(.));
*(.dynsbss)
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
*(.scommon)
PROVIDE (__sbss_end = ABSOLUTE(.));
PROVIDE (___sbss_end = ABSOLUTE(.));
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(32 / 8);
__bss_end = ABSOLUTE(.);
} > onchip_memory_0
/*
* One output section for each of the available partitions. These are not
* used by default, but can be used by users applications using the .section
* directive.
*
* The memory partition used for the heap is treated in special way, i.e. a
* symbol is added to point to the heap start.
*
* Note that when running from flash, these sections are not loaded by the
* HAL.
*
*/
.onchip_memory_0 :
{
PROVIDE (_alt_partition_onchip_memory_0_start = ABSOLUTE(.));
*(.onchip_memory_0 .onchip_memory_0.*)
. = ALIGN(32 / 8);
PROVIDE (_alt_partition_onchip_memory_0_end = ABSOLUTE(.));
_end = ABSOLUTE(.);
end = ABSOLUTE(.);
} > onchip_memory_0
PROVIDE (_alt_partition_onchip_memory_0_load_addr = LOADADDR(.onchip_memory_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_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) }
/* Altera debug extensions */
.debug_alt_sim_info 0 : { *(.debug_alt_sim_info) }
}
/* provide a pointer for the stack */
/*
* Don't override this, override the __alt_stack_* symbols instead.
*/
__alt_data_end = 0x00800000;
/*
* The next two symbols define the location of the default stack. You can
* override them to move the stack to a different memory.
*/
PROVIDE( __alt_stack_pointer = __alt_data_end );
PROVIDE( __alt_stack_limit = _end );
/*
* This symbol controls where the start of the heap is. If the stack is
* contiguous with the heap then the stack will contract as memory is
* allocated to the heap.
* Override this symbol to put the heap in a different memory.
*/
PROVIDE( __alt_heap_start = end );

View File

@@ -1,39 +0,0 @@
/* main()
*
* This is the entry point for the application. It calls
* the bsp_start routine to the actual dirty work.
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/startup/main.c 1.9,
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
int main(
int argc,
char **argv,
char **environp
)
{
extern void bsp_start( int, char**, char ** );
bsp_start( argc, argv, environp );
/*
* May be able to return to the "crt/start.s" code but also
* may not be able to. Do something here which is board dependent.
*/
rtems_fatal_error_occurred( 0 );
return 0; /* just to satisfy the native compiler */
}

View File

@@ -1,44 +0,0 @@
/* set_vector
*
* This routine installs an interrupt vector on the target Board/CPU.
* This routine is allowed to be as board dependent as necessary.
*
* INPUT:
* handler - interrupt handler entry point
* vector - vector number
* type - 0 indicates raw hardware connect
* 1 indicates RTEMS interrupt connect
*
* RETURNS:
* address of previous interrupt handler
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/startup/setvec.c 1.8,
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
nios2_isr_entry set_vector( /* returns old vector */
rtems_isr_entry handler, /* isr routine */
rtems_vector_number vector, /* vector number */
int type /* RTEMS or RAW intr */
)
{
nios2_isr_entry previous_isr;
if ( type )
rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr );
else {
/* XXX: install non-RTEMS ISR as "raw" interupt */
}
return previous_isr;
}

View File

@@ -1,151 +0,0 @@
/* timer.c
*
* This file manages the benchmark timer used by the RTEMS Timing Test
* Suite. Each measured time period is demarcated by calls to
* Timer_initialize() and Read_timer(). Read_timer() usually returns
* the number of microseconds since Timer_initialize() exitted.
*
* NOTE: It is important that the timer start/stop overhead be
* determined when porting or modifying this code.
*
* COPYRIGHT (c) 2005-2006 Kolja Waschk rtemsdev/ixo.de
* Derived from no_cpu/no_bsp/timer/timer.c 1.9,
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#define TIMER_WRAPS_AFTER_1MS 0
#include <rtems.h>
#include <rtems/score/cpu.h>
#include <bsp.h>
volatile uint32_t Timer_interrupts;
rtems_boolean Timer_driver_Find_average_overhead;
#define TIMER_REGS ((altera_avalon_timer_regs*)NIOS2_IO_BASE(TIMER_BASE))
void timerisr( void )
{
TIMER_REGS->status = 0;
Timer_interrupts++;
}
void Timer_initialize( void )
{
uint32_t old_ie;
/* Disable timer interrupt, stop timer */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK;
set_vector((nios2_isr_entry *)timerisr, TIMER_VECTOR, 1);
/* Enable interrupt processing */
NIOS2_IENABLE(1 << TIMER_VECTOR);
#if TIMER_WRAPS_AFTER_1MS
/* Writing to periodl/h resets the counter and eventually
stops it. If the timer hasn't been configured with fixed
period, set it to 1 ms now */
TIMER_REGS->period_hi = (TIMER_FREQ/1000)>>16;
TIMER_REGS->period_lo = (TIMER_FREQ/1000)&0xFFFF;
#else
/* Writing to periodl/h resets the counter and eventually
stops it. Set max period */
TIMER_REGS->period_hi = 0xFFFF;
TIMER_REGS->period_lo = 0xFFFF;
#endif
/* For timers that can be stopped, writing to periodl/h
also stopped the timer and we have to manually start it. */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_ITO_MSK |
ALTERA_AVALON_TIMER_CONTROL_CONT_MSK |
ALTERA_AVALON_TIMER_CONTROL_START_MSK;
/* This is the most safe place for resetting the overflow
counter - just _after_ we reset the timer. Depending
on the SOPC configuration, the counter may not be
stoppable and it doesn't make sense to assume that
there is any "safe" period before resetting. */
Timer_interrupts = 0;
}
/*
* The following controls the behavior of Read_timer().
*
* AVG_OVEREHAD is the overhead for starting and stopping the timer. It
* is usually deducted from the number returned.
*
* LEAST_VALID is the lowest number this routine should trust. Numbers
* below this are "noise" and zero is returned.
*/
#define AVG_OVERHEAD 2 /* It typically takes 2 microseconds */
/* to start/stop the timer. */
#define LEAST_VALID AVG_OVERHEAD /* Don't trust a value lower than this */
int Read_timer( void )
{
uint32_t timer_wraps;
uint32_t timer_snap;
uint32_t timer_ticks;
uint32_t total;
uint32_t old_ie;
/* Hold timer */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK;
/* Write to request snapshot of timer value */
TIMER_REGS->snap_lo = 0;
/* Get snapshot */
timer_snap = ((TIMER_REGS->snap_hi)<<16) | TIMER_REGS->snap_lo;
timer_wraps = Timer_interrupts;
/* Restart timer */
TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_START_MSK;
#if TIMER_WRAPS_AFTER_1MS
timer_ticks = (TIMER_FREQ / 1000) - 1 - timer_snap;
total = timer_wraps * 1000;
#else
timer_ticks = 0xFFFFFFFF - timer_snap;
total = timer_wraps * 0x80000000 / (TIMER_FREQ / 2000000L);
#endif
total += timer_ticks / (TIMER_FREQ / 1000000L);
if(total < LEAST_VALID) return 0;
if(Timer_driver_Find_average_overhead != TRUE) total-= AVG_OVERHEAD;
return total;
}
/*
* Empty function call used in loops to measure basic cost of looping
* in Timing Test Suite.
*/
rtems_status_code Empty_function( void )
{
return RTEMS_SUCCESSFUL;
}
void Set_find_average_overhead(
rtems_boolean find_flag
)
{
Timer_driver_Find_average_overhead = find_flag;
}

View File

@@ -1,194 +0,0 @@
#
# Timing Test Suite Results for the NO_BSP
#
# NOTE: This is just a template. The times are irrelevant since this BSP
# can only be compiled -- not executed.
#
# $Id$
#
Board:
CPU: include coprocessor if applicable
Clock Speed:
Memory Configuration: SRAM, DRAM, cache, etc
Wait States:
Times Reported in: cycles, microseconds, etc
Timer Source: Count Down Timer, on-CPU cycle counter, etc
Column X:
Column Y:
# DESCRIPTION A B
== ================================================================= ==== ====
1 rtems_semaphore_create 20
rtems_semaphore_delete 21
rtems_semaphore_obtain: available 15
rtems_semaphore_obtain: not available -- NO_WAIT 15
rtems_semaphore_release: no waiting tasks 16
2 rtems_semaphore_obtain: not available -- caller blocks 62
3 rtems_semaphore_release: task readied -- preempts caller 55
4 rtems_task_restart: blocked task -- preempts caller 77
rtems_task_restart: ready task -- preempts caller 70
rtems_semaphore_release: task readied -- returns to caller 25
rtems_task_create 57
rtems_task_start 31
rtems_task_restart: suspended task -- returns to caller 36
rtems_task_delete: suspended task 47
rtems_task_restart: ready task -- returns to caller 37
rtems_task_restart: blocked task -- returns to caller 46
rtems_task_delete: blocked task 50
5 rtems_task_suspend: calling task 51
rtems_task_resume: task readied -- preempts caller 49
6 rtems_task_restart: calling task 59
rtems_task_suspend: returns to caller 18
rtems_task_resume: task readied -- returns to caller 19
rtems_task_delete: ready task 50
7 rtems_task_restart: suspended task -- preempts caller 70
8 rtems_task_set_priority: obtain current priority 12
rtems_task_set_priority: returns to caller 27
rtems_task_mode: obtain current mode 5
rtems_task_mode: no reschedule 5
rtems_task_mode: reschedule -- returns to caller 8
rtems_task_mode: reschedule -- preempts caller 39
rtems_task_set_note 13
rtems_task_get_note 13
rtems_clock_set 33
rtems_clock_get 3
9 rtems_message_queue_create 110
rtems_message_queue_send: no waiting tasks 37
rtems_message_queue_urgent: no waiting tasks 37
rtems_message_queue_receive: available 31
rtems_message_queue_flush: no messages flushed 12
rtems_message_queue_flush: messages flushed 16
rtems_message_queue_delete 26
10 rtems_message_queue_receive: not available -- NO_WAIT 15
rtems_message_queue_receive: not available -- caller blocks 62
11 rtems_message_queue_send: task readied -- preempts caller 72
12 rtems_message_queue_send: task readied -- returns to caller 39
13 rtems_message_queue_urgent: task readied -- preempts caller 72
14 rtems_message_queue_urgent: task readied -- returns to caller 39
15 rtems_event_receive: obtain current events 1
rtems_event_receive: not available -- NO_WAIT 12
rtems_event_receive: not available -- caller blocks 56
rtems_event_send: no task readied 12
rtems_event_receive: available 12
rtems_event_send: task readied -- returns to caller 24
16 rtems_event_send: task readied -- preempts caller 55
17 rtems_task_set_priority: preempts caller 62
18 rtems_task_delete: calling task 83
19 rtems_signal_catch 9
rtems_signal_send: returns to caller 15
rtems_signal_send: signal to self 18
exit ASR overhead: returns to calling task 22
exit ASR overhead: returns to preempting task 49
20 rtems_partition_create 35
rtems_region_create 23
rtems_partition_get_buffer: available 15
rtems_partition_get_buffer: not available 13
rtems_partition_return_buffer 18
rtems_partition_delete 16
rtems_region_get_segment: available 22
rtems_region_get_segment: not available -- NO_WAIT 21
rtems_region_return_segment: no waiting tasks 19
rtems_region_get_segment: not available -- caller blocks 64
rtems_region_return_segment: task readied -- preempts caller 74
rtems_region_return_segment: task readied -- returns to caller 44
rtems_region_delete 16
rtems_io_initialize 2
rtems_io_open 1
rtems_io_close 1
rtems_io_read 1
rtems_io_write 1
rtems_io_control 1
21 rtems_task_ident 149
rtems_message_queue_ident 145
rtems_semaphore_ident 156
rtems_partition_ident 145
rtems_region_ident 148
rtems_port_ident 145
rtems_timer_ident 145
rtems_rate_monotonic_ident 145
22 rtems_message_queue_broadcast: task readied -- returns to caller 42
rtems_message_queue_broadcast: no waiting tasks 17
rtems_message_queue_broadcast: task readied -- preempts caller 78
23 rtems_timer_create 14
rtems_timer_fire_after: inactive 22
rtems_timer_fire_after: active 24
rtems_timer_cancel: active 15
rtems_timer_cancel: inactive 13
rtems_timer_reset: inactive 21
rtems_timer_reset: active 23
rtems_timer_fire_when: inactive 34
rtems_timer_fire_when: active 34
rtems_timer_delete: active 19
rtems_timer_delete: inactive 17
rtems_task_wake_when 69
24 rtems_task_wake_after: yield -- returns to caller 9
rtems_task_wake_after: yields -- preempts caller 45
25 rtems_clock_tick 4
26 _ISR_Disable 0
_ISR_Flash 1
_ISR_Enable 1
_Thread_Disable_dispatch 0
_Thread_Enable_dispatch 7
_Thread_Set_state 11
_Thread_Disptach (NO FP) 31
context switch: no floating point contexts 21
context switch: self 10
context switch: to another task 10
context switch: restore 1st FP task 25
fp context switch: save idle, restore idle 31
fp context switch: save idle, restore initialized 19
fp context switch: save initialized, restore initialized 20
_Thread_Resume 7
_Thread_Unblock 7
_Thread_Ready 9
_Thread_Get 4
_Semaphore_Get 2
_Thread_Get: invalid id 0
27 interrupt entry overhead: returns to interrupted task 6
interrupt exit overhead: returns to interrupted task 6
interrupt entry overhead: returns to nested interrupt 6
interrupt exit overhead: returns to nested interrupt 5
interrupt entry overhead: returns to preempting task 7
interrupt exit overhead: returns to preempting task 36
28 rtems_port_create 16
rtems_port_external_to_internal 11
rtems_port_internal_to_external 11
rtems_port_delete 16
29 rtems_rate_monotonic_create 15
rtems_rate_monotonic_period: initiate period -- returns to caller 21
rtems_rate_monotonic_period: obtain status 13
rtems_rate_monotonic_cancel 16
rtems_rate_monotonic_delete: inactive 18
rtems_rate_monotonic_delete: active 20
rtems_rate_monotonic_period: conclude periods -- caller blocks 53

View File

@@ -1,3 +1,7 @@
2007-11-26 Joel Sherrill <joel.sherrill@OARcorp.com>
* shared/console/uart.c: Fix typo.
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps

View File

@@ -1,3 +1,11 @@
2008-02-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/linkcmds.brs5l: Change .bss to .bss*.
2007-09-21 Joel Sherrill <joel.sherrill@OARcorp.com>
* network_5200/network.c: Add multicast support.
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps

View File

@@ -1555,6 +1555,13 @@ static void mpc5200_fec_restart(struct mpc5200_enet_struct *sc)
mpc5200.ecntrl |= (FEC_ECNTRL_OE | FEC_ECNTRL_EN);
}
int32_t mpc5200_fec_setMultiFilter(struct ifnet *ifp)
{
/*struct mpc5200_enet_struct *sc = ifp->if_softc; */
/* XXX anything to do? */
return 0;
}
/*
* Driver ioctl handler
@@ -1574,6 +1581,22 @@ static int mpc5200_fec_ioctl (struct ifnet *ifp, ioctl_command_t command, caddr_
break;
case SIOCADDMULTI:
case SIOCDELMULTI: {
struct ifreq* ifr = (struct ifreq*) data;
error = (command == SIOCADDMULTI)
? ether_addmulti(ifr, &sc->arpcom)
: ether_delmulti(ifr, &sc->arpcom);
if (error == ENETRESET) {
if (ifp->if_flags & IFF_RUNNING)
error = mpc5200_fec_setMultiFilter(ifp);
else
error = 0;
}
break;
}
case SIOCSIFFLAGS:
switch(ifp->if_flags & (IFF_UP | IFF_RUNNING))
@@ -1777,7 +1800,7 @@ int rtems_mpc5200_fec_driver_attach(struct rtems_bsdnet_ifconfig *config)
ifp->if_ioctl = mpc5200_fec_ioctl;
ifp->if_start = mpc5200_fec_tx_start;
ifp->if_output = ether_output;
ifp->if_flags = IFF_BROADCAST;
ifp->if_flags = IFF_BROADCAST | IFF_MULTICAST;
/*ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX;*/
if(ifp->if_snd.ifq_maxlen == 0)

View File

@@ -236,7 +236,8 @@ SECTIONS
.bss :
{
bss.start = .;
*(.bss) *(.sbss) *(COMMON)
*(.bss .bss* .gnu.linkonce.b*)
*(.sbss*) *(COMMON)
. = ALIGN(4);
bss.end = .;
} > ram

View File

@@ -1,3 +1,16 @@
2007-11-30 Joel Sherrill <joel.sherrill@OARcorp.com>
* irq/GT64260Int.c, network/if_100MHz/Makefile.am,
network/if_1GHz/Makefile.am: Removed.
2007-09-20 Kate Feng <feng1@bnl.gov>
* network/if_100MHz/GT64260eth.c: Add else.
2007-09-19 Kate Feng <feng1@bnl.gov>
* README: Update.
2007-09-14 Joel Sherrill <joel.sherrill@OARcorp.com>
* network/GT64260eth.c, network/GT64260eth.h, network/GT64260ethreg.h: Removed.

View File

@@ -10,9 +10,9 @@ reference README.irq
The BSP is built and tested on the 4.7.1 and 4.7.99.2 CVS RTEMS release.
I believe in valuable real-time programming, where technical neatness,
performance and truth are. Any suggestion, bug reports, or even bug
fixes (great!) would be highly appreciated so that I still believe
what I believe.
performance and truth are. I hope I still believe. Any suggestion,
bug reports, or even bug fixes (great!) would be highly appreciated
so that I still believe what I believe.
ACKNOWLEDGEMENTS
@@ -25,12 +25,9 @@ Other related documents are listed at :
http://www.aps.anl.gov/epics/meetings/2006-06/RTEMS_Primer_SIG/RTEMS_BSP_MVME5500.pdf
2) netBSD: For the two NICS and some headers :
Allegro Networks, Inc., Wasabi Systems, Inc.
3) RTEMS: For the SVGM5 BSP
Stanford Linear Accelerator Center, Till Straumann
This BSP also builds on top of the work of others who have contributed
to similar RTEMS powerpc shared and motorola_powerpc BSPs, most notably
Eric Valette, Till Straumann, Eric Norum and others.
3) RTEMS: This BSP also builds on top of the work of others who have
contributed to similar RTEMS powerpc shared and motorola_powerpc BSPs, most
notably Eric Valette, Till Straumann (SVGM1 BSP, too), Eric Norum and others.
LICENSE
-------

View File

@@ -1,250 +0,0 @@
/* GT64260Int.c - GT64260 Interrupt controller support functions
*
* Copyright 2003, 2004, Brookhaven National Laboratory and
* Shuchen Kate Feng <feng1@bnl.gov>
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution.
*
*/
#include <libcpu/io.h>
#include <rtems/bspIo.h> /* for printk */
#include "bsp/gtreg.h"
#include "bsp/irq.h"
extern rtems_irq_prio BSPirqPrioTable[BSP_MAIN_IRQ_NUMBER];
rtems_GTirq_masks GT_GPPirq_cache=0;
rtems_GTirq_masks GT_MAINirqLO_cache=0, GT_MAINirqHI_cache=0;
void BSP_GT64260INT_init()
{
/* Page 401, Table 598:
* Comm Unit Arbiter Control register :
* bit 10:GPP interrupts as level sensitive(1) or edge sensitive(0).
* We set the GPP interrupts to be edge sensitive.
* MOTload default is set as level sensitive(1).
*/
outl((inl(GT_CommUnitArb_Ctrl)& (~(1<<10))), GT_CommUnitArb_Ctrl);
/* Initialize the interrupt related GT64260 registers */
outl( 0, GT_CPU_INT_MASK_LO);
outl( 0, GT_CPU_INT_MASK_HI);
outl( 0, GT_PCI0_INT_MASK_LO);
outl( 0, GT_PCI0_INT_MASK_HI);
outl( 0, GT_PCI1_INT_MASK_LO);
outl( 0, GT_PCI1_INT_MASK_HI);
outl( 0, GT_CPU_INT0_MASK);
outl( 0, GT_CPU_INT1_MASK);
outl( 0, GT_CPU_INT2_MASK);
outl( 0, GT_CPU_INT3_MASK);
outl(0, GT_GPP_Interrupt_Mask);
outl( 0, GT_GPP_Value);
outl( 0, GT_GPP_Interrupt_Cause);
#if 0
printk("watchdog timer 0x%x\n",inl(0xb410));
#endif
}
static void UpdateMainIrqTbl(int irqNum)
{
int i=0, j, shifted=0;
#ifdef SHOW_MORE_INIT_SETTINGS
unsigned long val2, val1;
val2 = (MainIrqInTbl>>32) & 0xffffffff;
val1 = MainIrqInTbl&0xffffffff;
printk("irqNum %d, MainIrqInTbl 0x%x%x\n", irqNum, val2, val1);
printMainIrqTbl();
#endif
/* If entry not in table*/
if ( !((unsigned long long)(1LLU << irqNum) & MainIrqInTbl)) {
while ( mainIrqTbl[i]!=-1) {
if (BSPirqPrioTable[irqNum]>BSPirqPrioTable[mainIrqTbl[i]]) {
/* all other lower priority entries shifted right */
for (j=MainIrqTblPtr;j>i; j--)
mainIrqTbl[j]=mainIrqTbl[j-1];
mainIrqTbl[i]=irqNum;
shifted=1;
break;
}
i++;
}
if (!shifted) mainIrqTbl[MainIrqTblPtr]=irqNum;
MainIrqInTbl |= (unsigned long long)(1LLU << irqNum);
MainIrqTblPtr++;
}
}
static void CleanMainIrqTbl(int irqNum)
{
int i, j;
if (((1LLU << irqNum) & MainIrqInTbl)) { /* If entry in table*/
for (i=0; i<64; i++) {
if (mainIrqTbl[i]==irqNum) {/*remove it from the entry */
/* all other lower priority entries shifted left */
for (j=i;j<MainIrqTblPtr; j++)
mainIrqTbl[j]=mainIrqTbl[j+1];
MainIrqInTbl &= ~(1LLU << irqNum);
MainIrqTblPtr--;
break;
}
}
}
}
/***************************************************************************
*
* BSP_enable_main_irq enables the corresponding bit in the low or high
* "main cause cpu int mask register".
*
*/
void BSP_enable_main_irq(const rtems_irq_number irqNum)
{
unsigned bitNum;
rtems_interrupt_level level;
bitNum = ((int)irqNum) - BSP_MICL_IRQ_LOWEST_OFFSET;
rtems_interrupt_disable(level);
#if DynamicIrqTbl
UpdateMainIrqTbl((int) irqNum);
#endif
if (bitNum <32) {
GT_MAINirqLO_cache |= (1 << bitNum);
outl(GT_MAINirqLO_cache, GT_CPU_INT_MASK_LO);
}
else {
bitNum-=32;
GT_MAINirqHI_cache |= (1 << bitNum);
outl(GT_MAINirqHI_cache, GT_CPU_INT_MASK_HI);
}
rtems_interrupt_enable(level);
}
/***************************************************************************
*
* BSP_disable_main_irq disables the corresponding bit in the low or high
* main cause cpu int mask register.
*
*/
void BSP_disable_main_irq(const rtems_irq_number irqNum)
{
unsigned bitNum;
rtems_interrupt_level level;
bitNum = ((int)irqNum) - BSP_MICL_IRQ_LOWEST_OFFSET;
rtems_interrupt_disable(level);
#if DynamicIrqTbl
CleanMainIrqTbl((int) irqNum);
#endif
if (bitNum <32) {
GT_MAINirqLO_cache &= ~(1 << bitNum);
outl(GT_MAINirqLO_cache, GT_CPU_INT_MASK_LO);
}
else {
bitNum-=32;
GT_MAINirqHI_cache &= ~(1 << bitNum);
outl(GT_MAINirqHI_cache, GT_CPU_INT_MASK_HI);
}
rtems_interrupt_enable(level);
}
/******************************************************************************
*
* BSP_enable_gpp_irq enables the corresponding bit in the GPP interrupt
* mask register. The interrupt level is numerically equivalent to the
* corresponding interrupt vector.
*
*/
void BSP_enable_gpp_irq(const rtems_irq_number irqNum)
{
unsigned bitNum;
unsigned int mask;
int group;
int bit;
rtems_interrupt_level level;
bitNum = ((int)irqNum) - BSP_GPP_IRQ_LOWEST_OFFSET;
rtems_interrupt_disable(level);
#if DynamicIrqTbl
group = bitNum/8;
if ( !GPPinMainIrqTbl[group]) /* avoid duplicated entry */
UpdateMainIrqTbl(BSP_MAIN_GPP7_0_IRQ+group);
bit = bitNum%8;
GPPinMainIrqTbl[group] |= (1<<bit);
#endif
mask = 1 << bitNum;
GT_GPPirq_cache |= mask;
outl(GT_GPPirq_cache, GT_GPP_Interrupt_Mask);
#ifdef SHOW_MORE_INIT_SETTINGS
printk("enable irqNum %d, bitnum %d \n", irqNum, bitNum);
printk("GPP mask %d \n", inl(GT_GPP_Interrupt_Mask));
#endif
rtems_interrupt_enable(level);
}
/******************************************************************************
*
* BSP_disable_gpp_irq disables the corresponding bit in the General Purpose
* Port Interrupt. The interrupt level is numerically equivalent to the
* corresponding interrupt vector.
*
*/
void BSP_disable_gpp_irq(const rtems_irq_number irqNum)
{
unsigned bitNum;
unsigned int mask;
int group;
int bit;
rtems_interrupt_level level;
bitNum = ((int)irqNum) - BSP_GPP_IRQ_LOWEST_OFFSET;
rtems_interrupt_disable(level);
#if DynamicIrqTbl
group = bitNum/8;
bit = bitNum%8;
GPPinMainIrqTbl[group] &= ~(1<<bit);
if ( !GPPinMainIrqTbl[group])/* If it's really the last one */
CleanMainIrqTbl(BSP_MAIN_GPP7_0_IRQ+group);
#endif
#ifdef SHOW_MORE_INIT_SETTINGS
printk("disable irqNum %d, bitnum %d \n", irqNum, bitNum);
#endif
mask = ~ (1 << bitNum);
GT_GPPirq_cache &= mask;
outl(GT_GPPirq_cache, GT_GPP_Interrupt_Mask);
rtems_interrupt_enable(level);
}
/* Only print ten entries for now */
void BSP_printMainIrqTbl()
{
int i;
printk("mainIrqTbl[10]={");
for (i=0; i<10; i++)
printk("%d,", mainIrqTbl[i]);
printk("}\n");
printk("GPPinMainIrqTbl 0x%x 0x%x 0x%x 0x%x\n",
GPPinMainIrqTbl[0], GPPinMainIrqTbl[1],
GPPinMainIrqTbl[2], GPPinMainIrqTbl[3]);
}

View File

@@ -585,6 +585,7 @@ static int GTeth_ifioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
if (error == ENETRESET) {
if (ifp->if_flags & IFF_RUNNING)
GTeth_ifchange(sc);
else
error = 0;
}
break;

View File

@@ -1,46 +0,0 @@
##
## $Id$
##
VPATH = @srcdir@:
INCLUDES = -I @srcdir@/../GT64260
C_FILES = GT64260eth.c
include_bspdir = $(includedir)/bsp
include_bsp_HEADERS = GT64260eth.h GT64260ethreg.h
H_FILES = GT64260eth.h GT64260ethreg.h
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
EXTRA_DIST = GT64260eth.c
OBJS = $(C_O_FILES)
include $(top_srcdir)/../../../../../../automake/compile.am
include $(top_srcdir)/../../../../../../automake/lib.am
CFLAGS += -msoft-float
#
# (OPTIONAL) Add local stuff here using +=
#
$(PROJECT_INCLUDE)/bsp:
$(mkinstalldirs) $<
$(PROJECT_INCLUDE)/bsp/GT64260eth.h: GT64260eth.h
$(INSTALL_DATA) $< $@
$(PROJECT_INCLUDE)/bsp/GT64260ethreg.h: GT64260ethreg.h
$(INSTALL_DATA) $< $@
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
PREINSTALL_FILES = $(PROJECT_INCLUDE)/bsp $(PROJECT_INCLUDE)/bsp/GT64260eth.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/GT64260ethreg.h
all-local: $(ARCH) $(PREINSTALL_FILES) $(OBJS)
include $(top_srcdir)/../../../../../../automake/local.am

View File

@@ -1,45 +0,0 @@
##
## $Id$
##
VPATH = @srcdir@:
INCLUDES = -I @srcdir@/../GT64260
C_FILES = if_wm.c pci_map.c
include_bspdir = $(includedir)/bsp
include_bsp_HEADERS = if_wmreg.h pcireg.h
H_FILES = if_wmreg.h pcireg.h
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
EXTRA_DIST = if_wm.c pci_map.c
OBJS = $(C_O_FILES)
include $(top_srcdir)/../../../../../../automake/compile.am
include $(top_srcdir)/../../../../../../automake/lib.am
CFLAGS += -msoft-float
#
# (OPTIONAL) Add local stuff here using +=
#
$(PROJECT_INCLUDE)/bsp:
$(mkinstalldirs) $<
$(PROJECT_INCLUDE)/bsp/if_wmreg.h: if_wmreg.h
$(INSTALL_DATA) $< $@
$(PROJECT_INCLUDE)/bsp/pcireg.h: pcireg.h
$(INSTALL_DATA) $< $@
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/if_wmreg.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/pcireg.h
all-local: $(ARCH) $(PREINSTALL_FILES) $(OBJS)
include $(top_srcdir)/../../../../../../automake/local.am

View File

@@ -1,3 +1,8 @@
2007-11-30 Joel Sherrill <joel.sherrill@OARcorp.com>
* startup/bspstart.c: BSP_DIRTY_MEMORY should be tested for zero not
just defined.
2007-09-13 Joel Sherrill <joel.sherrill@OARcorp.com>
* configure.ac, startup/bspstart.c: Add BSP_DIRTY_MEMORY option.

View File

@@ -186,7 +186,7 @@ void bsp_start( void )
}
BSP_Configuration.work_space_start = work_space_start;
#if defined(BSP_DIRTY_MEMORY)
#if (BSP_DIRTY_MEMORY == 1)
{
memset(&end, 0xCF, (unsigned char *)&RAM_END - (unsigned char *)&end );
}

View File

@@ -63,7 +63,7 @@ static struct uart_data uart_data[2] = {
#define SANITY_CHECK(uart) \
assert( MAX_UARTS > (unsigned)(uart) && uart_data[(uart)].ioBase != UART_UNSUPP )
/*
* Macros to read/wirte register of uart, if configuration is
* Macros to read/write register of uart, if configuration is
* different just rewrite these macros
*/

View File

@@ -1,3 +1,7 @@
2007-10-02 Jukka Pietarinen <jukka.pietarinen@mrf.fi>
* startup/linkcmds: Move definition of _end so memory is not corrupted.
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps

View File

@@ -22,7 +22,7 @@ _HeapSize = DEFINED(_HeapSize) ? _HeapSize : 8M;
MEMORY
{
RAM : ORIGIN = 0, LENGTH = 16M
RAM : ORIGIN = 0, LENGTH = 128M
/*FLASH : ORIGIN = 0xFFE00000, LENGTH = 16M*/
}
SECTIONS
@@ -202,6 +202,7 @@ SECTIONS
*(.gnu.linkonce.s.*)
data.end = .;
data.size = data.end - data.start;
PROVIDE (_edata = .);
} >RAM
__SBSS_START__ = .;
@@ -222,7 +223,8 @@ SECTIONS
PROVIDE(_data_size = SIZEOF(.data));
PROVIDE(_text_start = ADDR(.text));
PROVIDE(_text_size = SIZEOF(.text));
PROVIDE(_end = data.end);
PROVIDE(_end = bss.end);
.gzipmalloc : {
. = ALIGN (16);
@@ -270,8 +272,6 @@ SECTIONS
intrStack = .;
PROVIDE(intrStackPtr = intrStack);
PROVIDE(_end = intrStack);
.line 0 : { *(.line) }
.debug 0 : { *(.debug) }
.debug_sfnames 0 : { *(.debug_sfnames) }

View File

@@ -1,3 +1,7 @@
2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* bootcard.c: Add comment.
2007-07-15 Till Straumann <strauman@slac.stanford.edu>
* vmeUniverse/vmeTsi148.c: Use size_t for sizes.

View File

@@ -129,6 +129,13 @@ int boot_card(int argc, char **argv, char **envp)
rtems_initialize_executive_late( bsp_isr_level );
/***************************************************************
***************************************************************
* APPLICATION RUNS HERE!!! When it shuts down, we return!!! *
***************************************************************
***************************************************************
*/
/*
* Perform any BSP specific shutdown actions.
*/

View File

@@ -1,3 +1,51 @@
2007-12-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* shared/include/grcan_spwrtc.h: Removed.
2007-12-05 Daniel Hellstrom <daniel@gaisler.com>
* Makefile.am: i2c should be on branch as well as CVS head.
* shared/i2c/i2cmst.c, shared/include/i2cmst.h: New files.
2007-12-05 Daniel Hellstrom <daniel@gaisler.com>
* shared/include/ambapp.h: Sync head and 4.8 branch.
2007-11-30 Daniel Hellstrom <daniel@gaisler.com>
* shared/include/grspw.h, shared/spw/grspw.c: GRSPW SpaceWire Driver.
Fixes typecast to volatile integer instead of to integer. Added
scanning for GRSPW2 Core, The GRSPW2 core is run in legacy mode.
2007-11-30 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: LEON2/3 OCCAN CAN driver. Fixes typecast to
volatile integer where needed. Fixes bug where closing the driver and
opening it again could make the driver not starting transmission due
to the software fifo was not cleared.
2007-11-30 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/grcan.c, shared/can/grcan_rasta.c,
shared/include/ambapp.h: GRCAN CAN driver. Fixes Interrupt
enabling/disabling in the driver, interrupt may not be restored
correctly. Implements the baud rate calculation routine. Removed
unnecessary printk. Fixed scanning to support GRCAN and GRHCAN
hardware. Added GRCAN device number to ambapp.h.
2007-10-11 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fixes bug in OC-CAN baud rate calculator. The
BTR1 8-bit value was swapped.
2007-09-21 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fix warning on Diab compiler.
2007-09-19 Daniel Hellstrom <daniel@gaisler.com>
* shared/can/occan.c: Fix Reenable command and fix typo.
2007-09-18 Joel Sherrill <joel.sherrill@OARcorp.com>
* shared/1553/b1553brm.c, shared/can/grcan.c: Remove include of sched.h

View File

@@ -59,5 +59,9 @@ EXTRA_DIST += shared/include/b1553brm.h
EXTRA_DIST += shared/include/b1553brm_pci.h
EXTRA_DIST += shared/include/b1553brm_rasta.h
# I2C-master (I2CMST)
EXTRA_DIST += shared/i2c/i2cmst.c
EXTRA_DIST += shared/include/i2cmst.h
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am

View File

@@ -1,3 +1,7 @@
2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* clock/ckinit.c, include/bsp.h: Fix spacing.
2007-05-09 Joel Sherrill <joel.sherrill@OARcorp.com>
* console/debugputs.c, include/bsp.h, startup/spurious.c: Remove debug

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