mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-30 20:55:41 +00:00
Compare commits
200 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d1119e7ed | ||
|
|
a5222eeff9 | ||
|
|
5d6e54d08b | ||
|
|
6fa59698c7 | ||
|
|
cdd0fc8a89 | ||
|
|
ae557d1abb | ||
|
|
37f094158b | ||
|
|
aba5ed401e | ||
|
|
7a92e3ddc3 | ||
|
|
eefbe35533 | ||
|
|
59d55753a8 | ||
|
|
3ffa814199 | ||
|
|
774515b753 | ||
|
|
1348869fbb | ||
|
|
d2a30c77f5 | ||
|
|
73c2d237de | ||
|
|
d490fff3c1 | ||
|
|
e75e10dcac | ||
|
|
fb573a71f1 | ||
|
|
24b6d2f9a8 | ||
|
|
a3b4632866 | ||
|
|
dc4bd19dfa | ||
|
|
3741506c42 | ||
|
|
8747cac1e3 | ||
|
|
5a5af8c1a1 | ||
|
|
21a6137140 | ||
|
|
52adbd42e5 | ||
|
|
d7bf841a96 | ||
|
|
58cfecc76a | ||
|
|
0bb4dd0337 | ||
|
|
feedcdc65f | ||
|
|
3c838f1ac8 | ||
|
|
45a32542db | ||
|
|
f54bc05285 | ||
|
|
fd06f6c0d4 | ||
|
|
cc2efb6012 | ||
|
|
82973a283f | ||
|
|
4a4c78d97f | ||
|
|
3d7d233c03 | ||
|
|
ecfdafc62e | ||
|
|
f45e8840c8 | ||
|
|
5978038f77 | ||
|
|
5c12a265fa | ||
|
|
3424a93ace | ||
|
|
28e7d30f34 | ||
|
|
cec508dafb | ||
|
|
73ca21f95e | ||
|
|
b0c516bfa1 | ||
|
|
7918027fad | ||
|
|
da56a02f6c | ||
|
|
c230bc312d | ||
|
|
c3f26834d6 | ||
|
|
41ef136059 | ||
|
|
9d31e3498c | ||
|
|
d2565cefae | ||
|
|
0bdfa8d3ff | ||
|
|
53923e8377 | ||
|
|
64c3f790a2 | ||
|
|
ba10dea56a | ||
|
|
6e8a68e6c4 | ||
|
|
745760302e | ||
|
|
732b2b3976 | ||
|
|
0be243352f | ||
|
|
70541799ee | ||
|
|
9f781394bd | ||
|
|
44eb0beb20 | ||
|
|
0a7bcfd60a | ||
|
|
e8ece0b494 | ||
|
|
410c6f8593 | ||
|
|
0bedb7eced | ||
|
|
21b54fc117 | ||
|
|
9146692992 | ||
|
|
bf423bdb2b | ||
|
|
624f551480 | ||
|
|
848d015196 | ||
|
|
f778d4c531 | ||
|
|
561f53b71e | ||
|
|
24fced7e13 | ||
|
|
52d276b6bc | ||
|
|
0293ad1159 | ||
|
|
30062b7576 | ||
|
|
022ee190c8 | ||
|
|
70fefe6879 | ||
|
|
d700909e7e | ||
|
|
b90855ceb3 | ||
|
|
0b929fe94b | ||
|
|
5dba517449 | ||
|
|
f74483f280 | ||
|
|
9d8590da5d | ||
|
|
bd91ff4e71 | ||
|
|
ae460ecea9 | ||
|
|
ef842b4665 | ||
|
|
6316b74ef1 | ||
|
|
5f56c3c73c | ||
|
|
d0c64050ec | ||
|
|
c03dd07226 | ||
|
|
9150b49feb | ||
|
|
881da84b2f | ||
|
|
eb961b2a63 | ||
|
|
ee50e9a30a | ||
|
|
a561860261 | ||
|
|
1a626ab72f | ||
|
|
a240bf2122 | ||
|
|
e95cc1ca1a | ||
|
|
1f1252a197 | ||
|
|
5550a389ad | ||
|
|
1157fe214e | ||
|
|
8d55b1f03c | ||
|
|
27320205e8 | ||
|
|
22ba3c63dd | ||
|
|
801595223e | ||
|
|
08d8625f92 | ||
|
|
201f1c038d | ||
|
|
6944b20eed | ||
|
|
a78aada98b | ||
|
|
1d7f365cfc | ||
|
|
0bd6d2b1aa | ||
|
|
359d170476 | ||
|
|
728abc471a | ||
|
|
172f7dc444 | ||
|
|
5378a296f4 | ||
|
|
361d58eef6 | ||
|
|
ab924e93e7 | ||
|
|
0f5bc89c21 | ||
|
|
206d973621 | ||
|
|
fafdf95453 | ||
|
|
38d354d335 | ||
|
|
df5f3ca7f5 | ||
|
|
d49e8f8238 | ||
|
|
a3fab15ad8 | ||
|
|
993b7d1e85 | ||
|
|
dd7db0f74e | ||
|
|
5ef84356b8 | ||
|
|
d3f0606f9a | ||
|
|
8ad2873774 | ||
|
|
b92e6124dd | ||
|
|
506ac56d9f | ||
|
|
069bf7544e | ||
|
|
f485c56bfc | ||
|
|
8230fa8199 | ||
|
|
fa2acf9d00 | ||
|
|
64bd5e3532 | ||
|
|
cdbe374774 | ||
|
|
3950f549d3 | ||
|
|
ba8c439f08 | ||
|
|
98b30aa72e | ||
|
|
1bdb08c7fb | ||
|
|
9bbeed5df6 | ||
|
|
0f20ef5418 | ||
|
|
0ca88a1dd4 | ||
|
|
8c829996c3 | ||
|
|
046f0094b5 | ||
|
|
508023527b | ||
|
|
e3da6673b5 | ||
|
|
38198f3057 | ||
|
|
7feb6f9f65 | ||
|
|
e18303d997 | ||
|
|
72dfb969aa | ||
|
|
469c41a421 | ||
|
|
6fbf5c39f1 | ||
|
|
304d1a52df | ||
|
|
01c96bfb75 | ||
|
|
cfc43898e6 | ||
|
|
0732eb4997 | ||
|
|
e2ce15fc77 | ||
|
|
f7219b211f | ||
|
|
922db6549e | ||
|
|
640f1cb6b2 | ||
|
|
e2f50f9d6d | ||
|
|
ca6c741739 | ||
|
|
df54012a8a | ||
|
|
17bbaddcac | ||
|
|
424f2e40e9 | ||
|
|
fbe21ef363 | ||
|
|
24a8fb3736 | ||
|
|
107459f117 | ||
|
|
4a74b03d7c | ||
|
|
91a52b3105 | ||
|
|
59db174d07 | ||
|
|
869f6029d8 | ||
|
|
9cec348537 | ||
|
|
81cc5b271b | ||
|
|
04b4b389b8 | ||
|
|
6a15087d24 | ||
|
|
c3e88cadf1 | ||
|
|
8a41da4108 | ||
|
|
d1266a5990 | ||
|
|
30529eb7a5 | ||
|
|
1a17efbd2d | ||
|
|
9a93d54070 | ||
|
|
70e27c2d80 | ||
|
|
ec8472e0b7 | ||
|
|
4e0498e1f6 | ||
|
|
a4454ed9c5 | ||
|
|
04aa02d1d3 | ||
|
|
fe05191353 | ||
|
|
ede694c5d6 | ||
|
|
1620d0208a | ||
|
|
38c7e48100 | ||
|
|
d1bcf10669 |
84
ChangeLog
84
ChangeLog
@@ -1,3 +1,87 @@
|
|||||||
|
2005-10-06 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* VERSION: Updated to rtems-4.6.5.
|
||||||
|
|
||||||
|
2005-10-06 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* aclocal/version.m4: Updated to rtems-4.6.5.
|
||||||
|
|
||||||
|
2005-10-05 Jiri Gaisler <jiri@gaisler.com>
|
||||||
|
Edvin Catovic <edvin@gaisler.com>
|
||||||
|
Konrad Eisele <konrad@gaisler.com>
|
||||||
|
|
||||||
|
PR 827/bsps
|
||||||
|
* aclocal/bsp-alias.m4, aclocal/check-bsps.m4: Portion of large update
|
||||||
|
of SPARC BSPs. Includes addition of sis, leon2 and leon3 BSPs,
|
||||||
|
deletion of leon BSP, addition of SMC91111 NIC driver and much more.
|
||||||
|
|
||||||
|
2005-09-01 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* VERSION: Updated to rtems-4.6.4.
|
||||||
|
|
||||||
|
2005-09-01 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* aclocal/version.m4: Updated to rtems-4.6.4.
|
||||||
|
|
||||||
|
2005-03-17 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* VERSION: Updated to rtems-4.6.3.
|
||||||
|
|
||||||
|
2004-11-10 Richard Campbell <richard.campbell@oarcorp.com>
|
||||||
|
|
||||||
|
* aclocal/bsp-alias.m4: Add MVME2100 BSP.
|
||||||
|
|
||||||
|
2004-10-18 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* VERSION: Updated to rtems-4.6.2.
|
||||||
|
|
||||||
|
2004-10-18 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* aclocal/version.m4: Updated to rtems-4.6.2.
|
||||||
|
|
||||||
|
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
|
PR 673/make_build
|
||||||
|
* config-ml.in: Quote 'cd "${ml_origdir}"'.
|
||||||
|
Quote 'cd "${ML_POPDIR}"'.
|
||||||
|
|
||||||
|
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
|
PR 673/make_build
|
||||||
|
* aclocal/ppc.m4 (RTEMS_PPC_EXCEPTIONS): Quote ac_popdir uses.
|
||||||
|
* aclocal/target.m4 (_RTEMS_POP_BUILDDIR): Ditto.
|
||||||
|
* acinclude.m4 (_RTEMS_CONFIG_SUBDIR): Quote ac_popdir uses.
|
||||||
|
|
||||||
|
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
|
* acinclude.m4: Fix m4-underquoting.
|
||||||
|
|
||||||
|
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
|
* aclocal/bsp-alias.m4, aclocal/bsp-arg-enable.m4,
|
||||||
|
aclocal/canonical-host.m4, aclocal/canonical-target-name.m4,
|
||||||
|
aclocal/canonicalize-tools.m4, aclocal/check-bsps.m4,
|
||||||
|
aclocal/check-cpu.m4, aclocal/check-custom-bsp.m4, aclocal/check-cxx.m4,
|
||||||
|
aclocal/check-itron.m4, aclocal/check-multiprocessing.m4,
|
||||||
|
aclocal/check-networking.m4, aclocal/check-newlib.m4,
|
||||||
|
aclocal/check-posix.m4, aclocal/check-rdbg.m4, aclocal/check-tool.m4,
|
||||||
|
aclocal/config-subdirs.m4, aclocal/enable-bare.m4,
|
||||||
|
aclocal/enable-cxx.m4, aclocal/enable-inlines.m4,
|
||||||
|
aclocal/enable-itron.m4, aclocal/enable-multiprocessing.m4,
|
||||||
|
aclocal/enable-networking.m4, aclocal/enable-posix.m4,
|
||||||
|
aclocal/enable-rdbg.m4, aclocal/enable-rtemsbsp.m4,
|
||||||
|
aclocal/enable-tests.m4, aclocal/env-rtemsbsp.m4,
|
||||||
|
aclocal/gcc-isystem.m4, aclocal/gcc-pipe.m4, aclocal/gcc-specs.m4,
|
||||||
|
aclocal/i386-gas-code16.m4, aclocal/multilib.m4, aclocal/path-ksh.m4,
|
||||||
|
aclocal/path-perl.m4, aclocal/prog-cc.m4, aclocal/prog-cxx.m4,
|
||||||
|
aclocal/project-root.m4, aclocal/rtems-debug.m4,
|
||||||
|
aclocal/rtems-test-no-pause.m4, aclocal/rtems-top.m4,
|
||||||
|
aclocal/target.m4, aclocal/tool-paths.m4: Fix m4-underquoting.
|
||||||
|
|
||||||
|
2004-04-08 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* aclocal/version.m4: Updated to rtems-4.6.1.
|
||||||
|
|
||||||
2004-02-03 Joel Sherrill <joel@OARcorp.com>
|
2004-02-03 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
* VERSION: Updated to rtems-4.6.0.
|
* VERSION: Updated to rtems-4.6.0.
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ if test "$no_recursion" != yes; then
|
|||||||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir])
|
AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $ac_popdir
|
cd "$ac_popdir"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -332,7 +332,7 @@ m4_divert_text([DEFAULTS],
|
|||||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(_RTEMS_BUILD_CONFIG_PREPARE,[
|
AC_DEFUN([_RTEMS_BUILD_CONFIG_PREPARE],[
|
||||||
## # Record the configure arguments in Makefile.
|
## # Record the configure arguments in Makefile.
|
||||||
m4_ifdef([_RTEMS_BUILD_CONFIGDIRS_LIST],
|
m4_ifdef([_RTEMS_BUILD_CONFIGDIRS_LIST],
|
||||||
[
|
[
|
||||||
@@ -358,7 +358,7 @@ m4_divert_text([DEFAULTS],
|
|||||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(_RTEMS_HOST_CONFIG_PREPARE,[
|
AC_DEFUN([_RTEMS_HOST_CONFIG_PREPARE],[
|
||||||
m4_ifdef([_RTEMS_HOST_CONFIGDIRS_LIST],
|
m4_ifdef([_RTEMS_HOST_CONFIGDIRS_LIST],
|
||||||
[
|
[
|
||||||
m4_expand_once([_RTEMS_TOOLS([host],[HOST])])
|
m4_expand_once([_RTEMS_TOOLS([host],[HOST])])
|
||||||
@@ -382,7 +382,7 @@ m4_divert_text([DEFAULTS],
|
|||||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(_RTEMS_TARGET_CONFIG_PREPARE,[
|
AC_DEFUN([_RTEMS_TARGET_CONFIG_PREPARE],[
|
||||||
m4_ifdef([_RTEMS_TARGET_CONFIGDIRS_LIST],
|
m4_ifdef([_RTEMS_TARGET_CONFIGDIRS_LIST],
|
||||||
[
|
[
|
||||||
m4_expand_once([_RTEMS_TOOLS([target],[TARGET])])
|
m4_expand_once([_RTEMS_TOOLS([target],[TARGET])])
|
||||||
|
|||||||
@@ -4,12 +4,13 @@ dnl
|
|||||||
|
|
||||||
dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
||||||
dnl Internal subroutine to RTEMS_BSP_ALIAS
|
dnl Internal subroutine to RTEMS_BSP_ALIAS
|
||||||
AC_DEFUN(_RTEMS_BSP_ALIAS,
|
AC_DEFUN([_RTEMS_BSP_ALIAS],
|
||||||
[# account for "aliased" bsps which share source code
|
[# account for "aliased" bsps which share source code
|
||||||
case $1 in
|
case $1 in
|
||||||
simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
|
simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
|
||||||
c3xsim) $2=c4xsim ;; # TI C3x Simulator in gdb
|
c3xsim) $2=c4xsim ;; # TI C3x Simulator in gdb
|
||||||
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
|
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||||
|
mvme2100) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||||
mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
|
mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||||
mtx603e) $2=motorola_powerpc ;; # Motorola PPC board variant
|
mtx603e) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||||
mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
|
mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
|
||||||
@@ -23,9 +24,9 @@ AC_DEFUN(_RTEMS_BSP_ALIAS,
|
|||||||
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
|
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
|
||||||
pck6) $2=pc386 ;; # i386 - PC with K6
|
pck6) $2=pc386 ;; # i386 - PC with K6
|
||||||
bare*) $2=bare ;; # EXP: bare-aliases
|
bare*) $2=bare ;; # EXP: bare-aliases
|
||||||
erc32nfp) $2=erc32 ;; # erc32 without fpu
|
sis) $2=erc32 ;; # ERC32 SIS simulator
|
||||||
leon1) $2=leon ;; # leon without fpu
|
leon2) $2=leon2 ;; # leon with fpu
|
||||||
leon2) $2=leon ;; # leon with fpu
|
leon3) $2=leon3 ;; # another leon variant
|
||||||
simsh7032) $2=shsim ;; # SH7032 simulator
|
simsh7032) $2=shsim ;; # SH7032 simulator
|
||||||
simsh7045) $2=shsim ;; # SH7045 simulator
|
simsh7045) $2=shsim ;; # SH7045 simulator
|
||||||
*) $2=$1;;
|
*) $2=$1;;
|
||||||
@@ -34,7 +35,7 @@ AC_DEFUN(_RTEMS_BSP_ALIAS,
|
|||||||
|
|
||||||
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
||||||
dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILY
|
dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILY
|
||||||
AC_DEFUN(RTEMS_BSP_ALIAS,
|
AC_DEFUN([RTEMS_BSP_ALIAS],
|
||||||
[_RTEMS_BSP_ALIAS(m4_if([$1],,[$RTEMS_BSP],[$1]),
|
[_RTEMS_BSP_ALIAS(m4_if([$1],,[$RTEMS_BSP],[$1]),
|
||||||
m4_if([$2],,[RTEMS_BSP_FAMILY],[$2]))]
|
m4_if([$2],,[RTEMS_BSP_FAMILY],[$2]))]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ dnl Configure scripts will receive <bsp-value> if <RTEMS_BSP> matches the
|
|||||||
dnl actual value of the shell variable RTEMS_BSP (cf. RTEMS_ENV_RTEMSBSP),
|
dnl actual value of the shell variable RTEMS_BSP (cf. RTEMS_ENV_RTEMSBSP),
|
||||||
dnl and the raw value passed to --enable-FEATURE otherwise.
|
dnl and the raw value passed to --enable-FEATURE otherwise.
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(RTEMS_BSP_ARG_ENABLE,
|
AC_DEFUN([RTEMS_BSP_ARG_ENABLE],
|
||||||
[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
|
[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
|
||||||
AC_ARG_ENABLE([$1],[$2],
|
AC_ARG_ENABLE([$1],[$2],
|
||||||
[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"`
|
[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CANONICAL_HOST,
|
AC_DEFUN([RTEMS_CANONICAL_HOST],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
RTEMS_HOST=$host_os
|
RTEMS_HOST=$host_os
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ dnl target naming conventions "processor-vendor-os"
|
|||||||
dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
|
dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
|
||||||
dnl and we have to fix it for rtems ourselves
|
dnl and we have to fix it for rtems ourselves
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
|
AC_DEFUN([RTEMS_CANONICAL_TARGET_CPU],
|
||||||
[
|
[
|
||||||
AC_CANONICAL_TARGET
|
AC_CANONICAL_TARGET
|
||||||
AC_MSG_CHECKING(rtems target cpu)
|
AC_MSG_CHECKING(rtems target cpu)
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ dnl
|
|||||||
dnl Set target tools
|
dnl Set target tools
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
|
AC_DEFUN([RTEMS_CANONICALIZE_TOOLS],
|
||||||
[AC_REQUIRE([RTEMS_PROG_CC])dnl
|
[AC_REQUIRE([RTEMS_PROG_CC])dnl
|
||||||
|
|
||||||
dnl FIXME: What shall be done if these tools are not available?
|
dnl FIXME: What shall be done if these tools are not available?
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ dnl Report all available bsps for a target,
|
|||||||
dnl check if a bsp-subdirectory is present for all bsps found
|
dnl check if a bsp-subdirectory is present for all bsps found
|
||||||
dnl
|
dnl
|
||||||
dnl RTEMS_CHECK_BSPS(bsp_list)
|
dnl RTEMS_CHECK_BSPS(bsp_list)
|
||||||
AC_DEFUN(RTEMS_CHECK_BSPS,
|
AC_DEFUN([RTEMS_CHECK_BSPS],
|
||||||
[
|
[
|
||||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
|
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
|
||||||
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
|
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
|
||||||
@@ -21,8 +21,8 @@ AC_MSG_CHECKING([for bsps])
|
|||||||
mbx8xx) $1="[$]$1 mbx821_001 mbx860_002 mbx860_005b";;
|
mbx8xx) $1="[$]$1 mbx821_001 mbx860_002 mbx860_005b";;
|
||||||
motorola_powerpc) $1="[$]$1 mvme2307 mcp750 mtx603e";;
|
motorola_powerpc) $1="[$]$1 mvme2307 mcp750 mtx603e";;
|
||||||
pc386) $1="[$]$1 pc386 pc386dx pc486 pc586 pc686 pck6";;
|
pc386) $1="[$]$1 pc386 pc386dx pc486 pc586 pc686 pck6";;
|
||||||
erc32) $1="[$]$1 erc32 erc32nfp";;
|
erc32) $1="[$]$1 erc32 sis";;
|
||||||
leon) $1="[$]$1 leon1 leon2";;
|
leon) $1="[$]$1 leon2 leon3";;
|
||||||
sim68000) $1="[$]$1 sim68000 simcpu32";;
|
sim68000) $1="[$]$1 sim68000 simcpu32";;
|
||||||
shsim) $1="[$]$1 simsh7032 simsh7045";;
|
shsim) $1="[$]$1 simsh7032 simsh7045";;
|
||||||
*) $1="[$]$1 $file";;
|
*) $1="[$]$1 $file";;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
dnl check if RTEMS support a cpu
|
dnl check if RTEMS support a cpu
|
||||||
AC_DEFUN(RTEMS_CHECK_CPU,
|
AC_DEFUN([RTEMS_CHECK_CPU],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_TOP])
|
AC_REQUIRE([RTEMS_TOP])
|
||||||
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
|
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,[
|
AC_DEFUN([RTEMS_CHECK_CUSTOM_BSP],[
|
||||||
AC_REQUIRE([RTEMS_TOP])
|
AC_REQUIRE([RTEMS_TOP])
|
||||||
|
|
||||||
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
|
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(RTEMS_CHECK_CXX,
|
AC_DEFUN([RTEMS_CHECK_CXX],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(RTEMS_CHECK_ITRON_API,
|
AC_DEFUN([RTEMS_CHECK_ITRON_API],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||||
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
|
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
|
||||||
@@ -28,7 +28,7 @@ fi
|
|||||||
AC_SUBST(HAS_ITRON_API)dnl
|
AC_SUBST(HAS_ITRON_API)dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_DEFINE_ITRON_API,
|
AC_DEFUN([RTEMS_DEFINE_ITRON_API],
|
||||||
[AC_REQUIRE([RTEMS_CHECK_ITRON_API])dnl
|
[AC_REQUIRE([RTEMS_CHECK_ITRON_API])dnl
|
||||||
if test x"${HAS_ITRON_API}" = x"yes";
|
if test x"${HAS_ITRON_API}" = x"yes";
|
||||||
then
|
then
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ dnl
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
|
AC_DEFUN([RTEMS_CHECK_MULTIPROCESSING],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
|
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
|
||||||
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
|
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(RTEMS_CHECK_NETWORKING,
|
AC_DEFUN([RTEMS_CHECK_NETWORKING],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||||
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
|
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CHECK_NEWLIB,
|
AC_DEFUN([RTEMS_CHECK_NEWLIB],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||||
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
|
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(RTEMS_CHECK_POSIX_API,
|
AC_DEFUN([RTEMS_CHECK_POSIX_API],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||||
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
|
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
|
||||||
@@ -28,7 +28,7 @@ fi
|
|||||||
AC_SUBST(HAS_POSIX_API)dnl
|
AC_SUBST(HAS_POSIX_API)dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_DEFINE_POSIX_API,
|
AC_DEFUN([RTEMS_DEFINE_POSIX_API],
|
||||||
[AC_REQUIRE([RTEMS_CHECK_POSIX_API])dnl
|
[AC_REQUIRE([RTEMS_CHECK_POSIX_API])dnl
|
||||||
AS_IF(
|
AS_IF(
|
||||||
[test x"${HAS_POSIX_API}" = x"yes"],
|
[test x"${HAS_POSIX_API}" = x"yes"],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(RTEMS_CHECK_RDBG,
|
AC_DEFUN([RTEMS_CHECK_RDBG],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_TOP])dnl
|
AC_REQUIRE([RTEMS_TOP])dnl
|
||||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ dnl $Id$
|
|||||||
## Check for a cross tool, similar to AC_CHECK_TOOL, but do not fall back to
|
## Check for a cross tool, similar to AC_CHECK_TOOL, but do not fall back to
|
||||||
## the un-prefixed version of PROG-TO-CHECK-FOR.
|
## the un-prefixed version of PROG-TO-CHECK-FOR.
|
||||||
dnl RTEMS_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])
|
dnl RTEMS_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])
|
||||||
AC_DEFUN(RTEMS_CHECK_TOOL,
|
AC_DEFUN([RTEMS_CHECK_TOOL],
|
||||||
[
|
[
|
||||||
AS_IF([test "x$build_alias" != "x$host_alias"],
|
AS_IF([test "x$build_alias" != "x$host_alias"],
|
||||||
[rtems_tool_prefix=${ac_tool_prefix}])
|
[rtems_tool_prefix=${ac_tool_prefix}])
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ dnl
|
|||||||
dnl
|
dnl
|
||||||
dnl _AC_DOTS(PATH)
|
dnl _AC_DOTS(PATH)
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(_AC_DOTS,[
|
AC_DEFUN([_AC_DOTS],[
|
||||||
# A "../" for each directory in $1.
|
# A "../" for each directory in $1.
|
||||||
ac_dots=`echo $1 | \
|
ac_dots=`echo $1 | \
|
||||||
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
|
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
|
||||||
@@ -20,7 +20,7 @@ AC_DEFUN(_AC_DOTS,[
|
|||||||
dnl
|
dnl
|
||||||
dnl _RTEMS_ADJUST_SRCDIR(REVAR,CONFIG_DIR[,TARGET_SUBDIR])
|
dnl _RTEMS_ADJUST_SRCDIR(REVAR,CONFIG_DIR[,TARGET_SUBDIR])
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(_RTEMS_ADJUST_SRCDIR,[
|
AC_DEFUN([_RTEMS_ADJUST_SRCDIR],[
|
||||||
_AC_DOTS(ifelse([$3], ,[$2],[$3/$2]))
|
_AC_DOTS(ifelse([$3], ,[$2],[$3/$2]))
|
||||||
|
|
||||||
case "$srcdir" in
|
case "$srcdir" in
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_DEFUN(RTEMS_ENABLE_BARE,
|
AC_DEFUN([RTEMS_ENABLE_BARE],
|
||||||
[
|
[
|
||||||
AC_ARG_ENABLE(bare-cpu-cflags,
|
AC_ARG_ENABLE(bare-cpu-cflags,
|
||||||
[AC_HELP_STRING([--enable-bare-cpu-cflags],
|
[AC_HELP_STRING([--enable-bare-cpu-cflags],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_CXX,
|
AC_DEFUN([RTEMS_ENABLE_CXX],
|
||||||
[
|
[
|
||||||
AC_ARG_ENABLE(cxx,
|
AC_ARG_ENABLE(cxx,
|
||||||
[AC_HELP_STRING([--enable-cxx],
|
[AC_HELP_STRING([--enable-cxx],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_INLINES,
|
AC_DEFUN([RTEMS_ENABLE_INLINES],
|
||||||
[AC_ARG_ENABLE(rtems-inlines,
|
[AC_ARG_ENABLE(rtems-inlines,
|
||||||
[AC_HELP_STRING([--enable-rtems-inlines],
|
[AC_HELP_STRING([--enable-rtems-inlines],
|
||||||
[enable RTEMS inline functions (default:enabled, disable to use macros)])],
|
[enable RTEMS inline functions (default:enabled, disable to use macros)])],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_ITRON,
|
AC_DEFUN([RTEMS_ENABLE_ITRON],
|
||||||
[
|
[
|
||||||
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
|
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
|
AC_DEFUN([RTEMS_ENABLE_MULTIPROCESSING],
|
||||||
[
|
[
|
||||||
AC_ARG_ENABLE(multiprocessing,
|
AC_ARG_ENABLE(multiprocessing,
|
||||||
[AC_HELP_STRING([--enable-multiprocessing],
|
[AC_HELP_STRING([--enable-multiprocessing],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_NETWORKING,
|
AC_DEFUN([RTEMS_ENABLE_NETWORKING],
|
||||||
[
|
[
|
||||||
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
|
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_POSIX,
|
AC_DEFUN([RTEMS_ENABLE_POSIX],
|
||||||
[
|
[
|
||||||
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_RDBG,
|
AC_DEFUN([RTEMS_ENABLE_RDBG],
|
||||||
[
|
[
|
||||||
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
|
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ dnl $Id$
|
|||||||
dnl Override the set of BSPs to be built.
|
dnl Override the set of BSPs to be built.
|
||||||
dnl used by the toplevel configure script
|
dnl used by the toplevel configure script
|
||||||
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
|
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
|
||||||
AC_DEFUN(RTEMS_ENABLE_RTEMSBSP,
|
AC_DEFUN([RTEMS_ENABLE_RTEMSBSP],
|
||||||
[
|
[
|
||||||
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
|
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
|
||||||
AC_ARG_ENABLE(rtemsbsp,
|
AC_ARG_ENABLE(rtemsbsp,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_TESTS,
|
AC_DEFUN([RTEMS_ENABLE_TESTS],
|
||||||
[
|
[
|
||||||
# If the tests are enabled, then find all the test suite Makefiles
|
# If the tests are enabled, then find all the test suite Makefiles
|
||||||
AC_MSG_CHECKING([if the test suites are enabled? ])
|
AC_MSG_CHECKING([if the test suites are enabled? ])
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ dnl $Id$
|
|||||||
|
|
||||||
dnl Pass a single BSP via an environment variable
|
dnl Pass a single BSP via an environment variable
|
||||||
dnl used by per BSP configure scripts
|
dnl used by per BSP configure scripts
|
||||||
AC_DEFUN(RTEMS_ENV_RTEMSBSP,
|
AC_DEFUN([RTEMS_ENV_RTEMSBSP],
|
||||||
[dnl
|
[dnl
|
||||||
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
|
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
|
||||||
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
|
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ dnl
|
|||||||
dnl Check whether the gcc accepts -isystem
|
dnl Check whether the gcc accepts -isystem
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_GCC_ISYSTEM,
|
AC_DEFUN([RTEMS_GCC_ISYSTEM],
|
||||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||||
AC_CACHE_CHECK(whether $CC accepts -isystem,rtems_cv_gcc_isystem,
|
AC_CACHE_CHECK(whether $CC accepts -isystem,rtems_cv_gcc_isystem,
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ dnl
|
|||||||
dnl Check whether the target compiler accepts -pipe
|
dnl Check whether the target compiler accepts -pipe
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_GCC_PIPE,
|
AC_DEFUN([RTEMS_GCC_PIPE],
|
||||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
AC_CACHE_CHECK(whether $CC accepts --pipe,rtems_cv_gcc_pipe,
|
AC_CACHE_CHECK(whether $CC accepts --pipe,rtems_cv_gcc_pipe,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ dnl
|
|||||||
dnl Check whether the target compiler accepts -specs
|
dnl Check whether the target compiler accepts -specs
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_GCC_SPECS,
|
AC_DEFUN([RTEMS_GCC_SPECS],
|
||||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||||
AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
|
AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ dnl
|
|||||||
dnl check for i386 gas supporting 16 bit mode
|
dnl check for i386 gas supporting 16 bit mode
|
||||||
dnl - binutils 2.9.1.0.7 and higher
|
dnl - binutils 2.9.1.0.7 and higher
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_I386_GAS_CODE16,
|
AC_DEFUN([RTEMS_I386_GAS_CODE16],
|
||||||
[ if test "${host_cpu}" = "i386"; then
|
[ if test "${host_cpu}" = "i386"; then
|
||||||
AC_CACHE_CHECK([for 16 bit mode assembler support],
|
AC_CACHE_CHECK([for 16 bit mode assembler support],
|
||||||
rtems_cv_prog_gas_code16,
|
rtems_cv_prog_gas_code16,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ dnl This provides configure definitions used for multilib support
|
|||||||
|
|
||||||
dnl parts of these macros are derived from newlib-1.8.2's multilib support
|
dnl parts of these macros are derived from newlib-1.8.2's multilib support
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_MULTILIB,
|
AC_DEFUN([RTEMS_ENABLE_MULTILIB],
|
||||||
[
|
[
|
||||||
AC_ARG_ENABLE(multilib,
|
AC_ARG_ENABLE(multilib,
|
||||||
AC_HELP_STRING([--enable-multilib],
|
AC_HELP_STRING([--enable-multilib],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_PATH_KSH,
|
AC_DEFUN([RTEMS_PATH_KSH],
|
||||||
[
|
[
|
||||||
dnl NOTE: prefer bash over ksh over sh
|
dnl NOTE: prefer bash over ksh over sh
|
||||||
AC_PATH_PROGS(KSH,bash ksh sh)
|
AC_PATH_PROGS(KSH,bash ksh sh)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_PATH_PERL,
|
AC_DEFUN([RTEMS_PATH_PERL],
|
||||||
[
|
[
|
||||||
AC_PATH_PROG(PERL,perl)
|
AC_PATH_PROG(PERL,perl)
|
||||||
if test -z "$PERL" ; then
|
if test -z "$PERL" ; then
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ if test "$no_recursion" != yes; then
|
|||||||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
|
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $ac_popdir
|
cd "$ac_popdir"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ dnl
|
|||||||
dnl Check for target gcc
|
dnl Check for target gcc
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_PROG_CC,
|
AC_DEFUN([RTEMS_PROG_CC],
|
||||||
[
|
[
|
||||||
AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
||||||
AC_BEFORE([$0], [AC_PROG_CC])dnl
|
AC_BEFORE([$0], [AC_PROG_CC])dnl
|
||||||
@@ -22,7 +22,7 @@ AC_PROG_CPP
|
|||||||
AM_CONDITIONAL(RTEMS_USE_GCC,test x"$GCC" = x"yes")
|
AM_CONDITIONAL(RTEMS_USE_GCC,test x"$GCC" = x"yes")
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
|
AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET],
|
||||||
[
|
[
|
||||||
dnl check target cc
|
dnl check target cc
|
||||||
RTEMS_PROG_CC
|
RTEMS_PROG_CC
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ dnl
|
|||||||
dnl Check for target g++
|
dnl Check for target g++
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
|
AC_DEFUN([RTEMS_PROG_CXX_FOR_TARGET],
|
||||||
[
|
[
|
||||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||||
AC_REQUIRE([RTEMS_ENABLE_CXX])
|
AC_REQUIRE([RTEMS_ENABLE_CXX])
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ dnl RTEMS_ROOT .. path to the top of a bsp's build directory
|
|||||||
dnl [Applied by custom/*.cfg, depredicated otherwise]
|
dnl [Applied by custom/*.cfg, depredicated otherwise]
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_PROJECT_ROOT,
|
AC_DEFUN([RTEMS_PROJECT_ROOT],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_TOP])
|
AC_REQUIRE([RTEMS_TOP])
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## $Id$
|
## $Id$
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_ENABLE_RTEMS_DEBUG,
|
AC_DEFUN([RTEMS_ENABLE_RTEMS_DEBUG],
|
||||||
[
|
[
|
||||||
AC_ARG_ENABLE(rtems-debug,
|
AC_ARG_ENABLE(rtems-debug,
|
||||||
AC_HELP_STRING([--enable-rtems-debug],[enable RTEMS_DEBUG]),
|
AC_HELP_STRING([--enable-rtems-debug],[enable RTEMS_DEBUG]),
|
||||||
@@ -11,7 +11,7 @@ AC_HELP_STRING([--enable-rtems-debug],[enable RTEMS_DEBUG]),
|
|||||||
esac],[enable_rtems_debug=no])
|
esac],[enable_rtems_debug=no])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CHECK_RTEMS_DEBUG,
|
AC_DEFUN([RTEMS_CHECK_RTEMS_DEBUG],
|
||||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
|
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
|
||||||
AS_IF([test x"${enable_rtems_debug}" = x"yes"]
|
AS_IF([test x"${enable_rtems_debug}" = x"yes"]
|
||||||
[AC_DEFINE_UNQUOTED(RTEMS_DEBUG,1,[if RTEMS_DEBUG is enabled])])
|
[AC_DEFINE_UNQUOTED(RTEMS_DEBUG,1,[if RTEMS_DEBUG is enabled])])
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_DEFUN(RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE,
|
AC_DEFUN([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE],
|
||||||
[AC_ARG_ENABLE(test-no-pause,
|
[AC_ARG_ENABLE(test-no-pause,
|
||||||
AC_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
|
AC_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
|
||||||
[case "${enableval}" in
|
[case "${enableval}" in
|
||||||
@@ -8,7 +8,7 @@ AC_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
|
|||||||
esac],[RTEMS_TEST_NO_PAUSE=yes])
|
esac],[RTEMS_TEST_NO_PAUSE=yes])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN(RTEMS_CHECK_RTEMS_TEST_NO_PAUSE,
|
AC_DEFUN([RTEMS_CHECK_RTEMS_TEST_NO_PAUSE],
|
||||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
|
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
|
||||||
if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
|
if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
|
||||||
then
|
then
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ dnl RTEMS_TOP($1)
|
|||||||
dnl
|
dnl
|
||||||
dnl $1 .. relative path from this configure.in to the toplevel configure.in
|
dnl $1 .. relative path from this configure.in to the toplevel configure.in
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(RTEMS_TOP,
|
AC_DEFUN([RTEMS_TOP],
|
||||||
[dnl
|
[dnl
|
||||||
AC_REQUIRE([RTEMS_VERSIONING])
|
AC_REQUIRE([RTEMS_VERSIONING])
|
||||||
AC_CONFIG_AUX_DIR([$1])
|
AC_CONFIG_AUX_DIR([$1])
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ dnl $Id$
|
|||||||
|
|
||||||
## HACK: Work-around to structural issue with RTEMS
|
## HACK: Work-around to structural issue with RTEMS
|
||||||
## The macros below violate most autoconf and canonicalization standards
|
## The macros below violate most autoconf and canonicalization standards
|
||||||
AC_DEFUN(RTEMS_CONFIG_BUILD_SUBDIRS,
|
AC_DEFUN([RTEMS_CONFIG_BUILD_SUBDIRS],
|
||||||
[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS])
|
[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS])
|
||||||
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
|
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
|
||||||
])
|
])
|
||||||
@@ -86,7 +86,7 @@ dnl
|
|||||||
dnl
|
dnl
|
||||||
dnl _RTEMS_PUSH_BUILDDIR(SUBDIR)
|
dnl _RTEMS_PUSH_BUILDDIR(SUBDIR)
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(_RTEMS_PUSH_BUILDDIR,
|
AC_DEFUN([_RTEMS_PUSH_BUILDDIR],
|
||||||
[
|
[
|
||||||
# _RTEMS_PUSH_BUILDDIR
|
# _RTEMS_PUSH_BUILDDIR
|
||||||
echo configuring in $1
|
echo configuring in $1
|
||||||
@@ -103,15 +103,15 @@ AC_DEFUN(_RTEMS_PUSH_BUILDDIR,
|
|||||||
dnl
|
dnl
|
||||||
dnl _RTEMS_POP_BUILDDIR
|
dnl _RTEMS_POP_BUILDDIR
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(_RTEMS_POP_BUILDDIR,
|
AC_DEFUN([_RTEMS_POP_BUILDDIR],
|
||||||
[
|
[
|
||||||
cd $ac_popdir
|
cd "$ac_popdir"
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl _RTEMS_GIVEN_INSTALL
|
dnl _RTEMS_GIVEN_INSTALL
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(_RTEMS_GIVEN_INSTALL,
|
AC_DEFUN([_RTEMS_GIVEN_INSTALL],
|
||||||
[
|
[
|
||||||
ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
|
ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
|
||||||
case "$ac_given_INSTALL" in
|
case "$ac_given_INSTALL" in
|
||||||
@@ -124,7 +124,7 @@ ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
|
|||||||
dnl
|
dnl
|
||||||
dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR])
|
dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR])
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN(_RTEMS_SUB_SRCDIR,[
|
AC_DEFUN([_RTEMS_SUB_SRCDIR],[
|
||||||
# _RTEMS_SUB_SRCDIR
|
# _RTEMS_SUB_SRCDIR
|
||||||
_RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2)
|
_RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2)
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_DEFUN(RTEMS_TOOLPATHS,
|
AC_DEFUN([RTEMS_TOOLPATHS],
|
||||||
[
|
[
|
||||||
# tooldir='$(exec_prefix)/'$target_alias
|
# tooldir='$(exec_prefix)/'$target_alias
|
||||||
# Temporary work-around until building in source tree is supported
|
# Temporary work-around until building in source tree is supported
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
AC_DEFUN([RTEMS_VERSIONING],
|
AC_DEFUN([RTEMS_VERSIONING],
|
||||||
m4_define([_RTEMS_VERSION],[4.6.0]))
|
m4_define([_RTEMS_VERSION],[4.6.5]))
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
2004-08-17 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
|
* acinclude.m4 (_RTEMS_CONFIG_SUBDIR): Quote ac_popdir uses.
|
||||||
|
|
||||||
2003-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
* support/Makefile.am: Pass @RTEMS_BSP@ to AM_CPPFLAGS.
|
* support/Makefile.am: Pass @RTEMS_BSP@ to AM_CPPFLAGS.
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ if test "$no_recursion" != yes; then
|
|||||||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
|
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd $ac_popdir
|
cd "$ac_popdir"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2004-09-27 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
PR 679/bsps
|
||||||
|
* startup/linkcmds: Add gnu.linkonce.d and .gcc_except_table.
|
||||||
|
|
||||||
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
* clock/ckinit.c, console/console.c, include/bsp.h, include/coverhd.h,
|
* clock/ckinit.c, console/console.c, include/bsp.h, include/coverhd.h,
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
_sdata = .;
|
_sdata = .;
|
||||||
*(.data);
|
*(.data);
|
||||||
|
*(.gnu.linkonce.d*)
|
||||||
|
*(.gcc_except_table)
|
||||||
_edata = .;
|
_edata = .;
|
||||||
}
|
}
|
||||||
_data_start = ADDR(.data) ;
|
_data_start = ADDR(.data) ;
|
||||||
|
|||||||
@@ -1,3 +1,44 @@
|
|||||||
|
2005-08-23 Karel Gardas <kgardas@objectsecurity.com>>
|
||||||
|
|
||||||
|
* timer/timer.c: Enhance to use either interupt-based timer
|
||||||
|
functions on older CPUs or to use TSC-based timer functions on
|
||||||
|
more recent (Pentium and above) CPUs. The decision is made in
|
||||||
|
Timer_initialize function when it is called for the first time
|
||||||
|
based on a result obtained from cpuid instruction during the BSP
|
||||||
|
initialization phase. During the first call, there are also late
|
||||||
|
bindings to the implementation functions initialized to
|
||||||
|
appropriate values.
|
||||||
|
|
||||||
|
2005-09-29 Thomas Doerfler <Thomas.Doerfler@imd-systems.de>
|
||||||
|
|
||||||
|
PR649/filesystem
|
||||||
|
* ide/idecfg.c: added configuration items for primary/secondary
|
||||||
|
IDE interface
|
||||||
|
* configure.ac: added configuration items for primary/secondary
|
||||||
|
IDE interface
|
||||||
|
|
||||||
|
2005-09-01 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* clock/Makefile.am, include/Makefile.am: Install tod.h
|
||||||
|
|
||||||
|
2005-01-20 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
PR 743/bsps
|
||||||
|
* clock/Makefile.am: Did not install tod.h.
|
||||||
|
|
||||||
|
2004-10-13 Eric Norum <norume@aps.anl.gov>
|
||||||
|
|
||||||
|
PR 688/bsps
|
||||||
|
* Makefile.am clock/todcfg.c: Add support for MC146818A TOD chip.
|
||||||
|
|
||||||
|
2004-05-21 Till Strauman <strauman@slac.stanford.edu>
|
||||||
|
|
||||||
|
* PR 624/bsps
|
||||||
|
startup/bspstart.c: When probing the memory, make sure not to
|
||||||
|
corrupt the application. Only probe addresses beyond rtemsFreeMemStart.
|
||||||
|
* Let IBMPC_outch() convert LF -> CRLF to avoid printk scrambling
|
||||||
|
the screen.
|
||||||
|
|
||||||
2003-10-02 Till Strauman <strauman@slac.stanford.edu>
|
2003-10-02 Till Strauman <strauman@slac.stanford.edu>
|
||||||
|
|
||||||
PR 502/bsps
|
PR 502/bsps
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
## $Id$
|
## $Id$
|
||||||
##
|
##
|
||||||
|
|
||||||
|
VPATH = @srcdir@:@srcdir@/../../shared/tod:@srcdir@/../../../shared
|
||||||
|
|
||||||
PGM = $(ARCH)/clock.rel
|
PGM = $(ARCH)/clock.rel
|
||||||
|
|
||||||
C_FILES = ckinit.c rtc.c
|
C_FILES = ckinit.c todcfg.c tod.c
|
||||||
clock_rel_OBJECTS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
clock_rel_OBJECTS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../../../automake/compile.am
|
include $(top_srcdir)/../../../../../../automake/compile.am
|
||||||
@@ -25,6 +26,6 @@ all-local: $(ARCH) $(clock_rel_OBJECTS) $(PGM)
|
|||||||
|
|
||||||
.PRECIOUS: $(PGM)
|
.PRECIOUS: $(PGM)
|
||||||
|
|
||||||
EXTRA_DIST = ckinit.c rtc.c
|
EXTRA_DIST =
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../../../automake/local.am
|
include $(top_srcdir)/../../../../../../automake/local.am
|
||||||
|
|||||||
36
c/src/lib/libbsp/i386/pc386/clock/todcfg.c
Normal file
36
c/src/lib/libbsp/i386/pc386/clock/todcfg.c
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* This file contains the RTC driver table for Motorola shared BSPs.
|
||||||
|
*
|
||||||
|
* 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 <libchip/rtc.h>
|
||||||
|
#include <libchip/mc146818a.h>
|
||||||
|
|
||||||
|
/* The following table configures the RTC drivers used in this BSP */
|
||||||
|
rtc_tbl RTC_Table[] = {
|
||||||
|
{
|
||||||
|
"/dev/rtc", /* sDeviceName */
|
||||||
|
RTC_MC146818A, /* deviceType */
|
||||||
|
&mc146818a_fns, /* pDeviceFns */
|
||||||
|
mc146818a_probe, /* deviceProbe */
|
||||||
|
NULL, /* pDeviceParams */
|
||||||
|
0x70, /* ulCtrlPort1 */
|
||||||
|
0x00, /* ulDataPort */
|
||||||
|
mc146818a_get_register, /* getRegister */
|
||||||
|
mc146818a_set_register /* setRegister */
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Some information used by the RTC driver */
|
||||||
|
|
||||||
|
#define NUM_RTCS (sizeof(RTC_Table)/sizeof(rtc_tbl))
|
||||||
|
|
||||||
|
unsigned long RTC_Count = NUM_RTCS;
|
||||||
|
|
||||||
|
rtems_device_minor_number RTC_Minor;
|
||||||
@@ -16,6 +16,22 @@ RTEMS_CANONICALIZE_TOOLS
|
|||||||
|
|
||||||
RTEMS_CHECK_NETWORKING
|
RTEMS_CHECK_NETWORKING
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([IDE_USE_PRIMARY_INTERFACE],[*],[1])
|
||||||
|
RTEMS_BSPOPTS_HELP([IDE_USE_PRIMARY_INTERFACE],
|
||||||
|
[Determines, whether RTEMS will try to use the primary IDE interface.
|
||||||
|
Disable it, if:
|
||||||
|
- you have no primary IDE interface
|
||||||
|
- or you have no disk attached to this interface
|
||||||
|
- or you do not want to access disks attached to this interface])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([IDE_USE_SECONDARY_INTERFACE],[*],[0])
|
||||||
|
RTEMS_BSPOPTS_HELP([IDE_USE_SECONDARY_INTERFACE],
|
||||||
|
[Determines, whether RTEMS will try to use the primary IDE interface.
|
||||||
|
Enable it, if:
|
||||||
|
- you have a secondary IDE interface
|
||||||
|
- and you have at least one disk attached to this interface
|
||||||
|
- and you do want to access disks attached to this interface])
|
||||||
|
|
||||||
## if this is an i386, does gas have good code16 support?
|
## if this is an i386, does gas have good code16 support?
|
||||||
RTEMS_I386_GAS_CODE16
|
RTEMS_I386_GAS_CODE16
|
||||||
AM_CONDITIONAL(RTEMS_GAS_CODE16,[test "$RTEMS_GAS_CODE16" = "yes"])
|
AM_CONDITIONAL(RTEMS_GAS_CODE16,[test "$RTEMS_GAS_CODE16" = "yes"])
|
||||||
|
|||||||
@@ -270,8 +270,11 @@ _IBMPC_outch(char c)
|
|||||||
{
|
{
|
||||||
static int escaped = 0;
|
static int escaped = 0;
|
||||||
|
|
||||||
if ( ! (escaped = handleEscape(escaped, c)) )
|
if ( ! (escaped = handleEscape(escaped, c)) ) {
|
||||||
|
if ( '\n' == c )
|
||||||
|
videoPutChar('\r');
|
||||||
videoPutChar(c);
|
videoPutChar(c);
|
||||||
|
}
|
||||||
} /* _IBMPC_outch */
|
} /* _IBMPC_outch */
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ extern ide_ctrl_fns_t pc386_ide_ctrl_fns;
|
|||||||
|
|
||||||
/* IDE controllers Table */
|
/* IDE controllers Table */
|
||||||
ide_controller_bsp_table_t IDE_Controller_Table[] = {
|
ide_controller_bsp_table_t IDE_Controller_Table[] = {
|
||||||
{"/dev/ide",
|
#if IDE_USE_PRIMARY_INTERFACE
|
||||||
|
{"/dev/ide0",
|
||||||
IDE_STD, /* standard IDE controller */
|
IDE_STD, /* standard IDE controller */
|
||||||
&pc386_ide_ctrl_fns,
|
&pc386_ide_ctrl_fns,
|
||||||
NULL, /* probe for IDE standard registers */
|
NULL, /* probe for IDE standard registers */
|
||||||
@@ -45,6 +46,21 @@ ide_controller_bsp_table_t IDE_Controller_Table[] = {
|
|||||||
FALSE,0, /* not (yet) interrupt driven */
|
FALSE,0, /* not (yet) interrupt driven */
|
||||||
NULL
|
NULL
|
||||||
}
|
}
|
||||||
|
#if IDE_USE_SECONDARY_INTERFACE
|
||||||
|
, /* colon only neede when bith interfaces present */
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if IDE_USE_SECONDARY_INTERFACE
|
||||||
|
{"/dev/ide1",
|
||||||
|
IDE_STD, /* standard IDE controller */
|
||||||
|
&pc386_ide_ctrl_fns,
|
||||||
|
NULL, /* probe for IDE standard registers */
|
||||||
|
FALSE, /* not (yet) initialized */
|
||||||
|
0x170, /* base I/O address for second IDE controller */
|
||||||
|
FALSE,0, /* not (yet) interrupt driven */
|
||||||
|
NULL
|
||||||
|
}
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Number of rows in IDE_Controller_Table */
|
/* Number of rows in IDE_Controller_Table */
|
||||||
|
|||||||
@@ -9,11 +9,15 @@ if HAS_NETWORKING
|
|||||||
WD80X3 = wd80x3.h
|
WD80X3 = wd80x3.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include_HEADERS = bsp.h crt.h coverhd.h $(WD80X3) bspopts.h
|
include_HEADERS = bsp.h crt.h coverhd.h tod.h $(WD80X3) bspopts.h
|
||||||
|
|
||||||
coverhd.h: $(top_srcdir)/../../shared/include/coverhd.h
|
coverhd.h: $(top_srcdir)/../../shared/include/coverhd.h
|
||||||
cp $< $@
|
cp $< $@
|
||||||
CLEANFILES = coverhd.h
|
|
||||||
|
tod.h: $(top_srcdir)/../../shared/tod.h
|
||||||
|
cp $< $@
|
||||||
|
|
||||||
|
CLEANFILES = coverhd.h tod.h
|
||||||
|
|
||||||
$(PROJECT_INCLUDE):
|
$(PROJECT_INCLUDE):
|
||||||
$(mkinstalldirs) $@
|
$(mkinstalldirs) $@
|
||||||
|
|||||||
@@ -82,12 +82,18 @@ void bsp_postdriver_hook(void);
|
|||||||
void bsp_pretasking_hook(void)
|
void bsp_pretasking_hook(void)
|
||||||
{
|
{
|
||||||
rtems_unsigned32 topAddr, val;
|
rtems_unsigned32 topAddr, val;
|
||||||
int i;
|
int i, lowest;
|
||||||
|
|
||||||
|
|
||||||
if (rtemsFreeMemStart & (CPU_ALIGNMENT - 1)) /* not aligned => align it */
|
if (rtemsFreeMemStart & (CPU_ALIGNMENT - 1)) /* not aligned => align it */
|
||||||
rtemsFreeMemStart = (rtemsFreeMemStart+CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
|
rtemsFreeMemStart = (rtemsFreeMemStart+CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
|
||||||
|
|
||||||
|
/* find the lowest 1M boundary to probe */
|
||||||
|
lowest = ((rtemsFreeMemStart + (1<<20)) >> 20) + 1;
|
||||||
|
if ( lowest < 2 )
|
||||||
|
lowest = 2;
|
||||||
|
|
||||||
|
|
||||||
if(_heap_size == 0)
|
if(_heap_size == 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -95,13 +101,13 @@ void bsp_pretasking_hook(void)
|
|||||||
* between 2M and 2048M.
|
* between 2M and 2048M.
|
||||||
* let us first write
|
* let us first write
|
||||||
*/
|
*/
|
||||||
for(i=2048; i>=2; i--)
|
for(i=2048; i>=lowest; i--)
|
||||||
{
|
{
|
||||||
topAddr = i*1024*1024 - 4;
|
topAddr = i*1024*1024 - 4;
|
||||||
*(volatile rtems_unsigned32 *)topAddr = topAddr;
|
*(volatile rtems_unsigned32 *)topAddr = topAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=2; i<=2048; i++)
|
for(i=lowest; i<=2048; i++)
|
||||||
{
|
{
|
||||||
topAddr = i*1024*1024 - 4;
|
topAddr = i*1024*1024 - 4;
|
||||||
val = *(rtems_unsigned32 *)topAddr;
|
val = *(rtems_unsigned32 *)topAddr;
|
||||||
|
|||||||
@@ -38,7 +38,6 @@
|
|||||||
| $Id$
|
| $Id$
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
@@ -51,7 +50,7 @@
|
|||||||
#define LEAST_VALID 1 /* Don't trust a value lower than this. */
|
#define LEAST_VALID 1 /* Don't trust a value lower than this. */
|
||||||
#define SLOW_DOWN_IO 0x80 /* io which does nothing */
|
#define SLOW_DOWN_IO 0x80 /* io which does nothing */
|
||||||
|
|
||||||
#define TWO_MS (rtems_unsigned32)(2000) /* TWO_MS = 2000us (sic!) */
|
#define TWO_MS (uint32_t)(2000) /* TWO_MS = 2000us (sic!) */
|
||||||
|
|
||||||
#define MSK_NULL_COUNT 0x40 /* bit counter available for reading */
|
#define MSK_NULL_COUNT 0x40 /* bit counter available for reading */
|
||||||
|
|
||||||
@@ -59,27 +58,36 @@
|
|||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Global Variables
|
| Global Variables
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
volatile rtems_unsigned32 Ttimer_val;
|
volatile uint32_t Ttimer_val;
|
||||||
rtems_boolean Timer_driver_Find_average_overhead = TRUE;
|
rtems_boolean Timer_driver_Find_average_overhead = TRUE;
|
||||||
volatile unsigned int fastLoop1ms, slowLoop1ms;
|
volatile unsigned int fastLoop1ms, slowLoop1ms;
|
||||||
|
void (*Timer_initialize_function)(void) = 0;
|
||||||
|
uint32_t (*Read_timer_function)(void) = 0;
|
||||||
|
void (*Timer_exit_function)(void) = 0;
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| External Prototypes
|
| External Prototypes
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
extern void timerisr(void);
|
extern void timerisr(void);
|
||||||
/* timer (int 08h) Interrupt Service Routine (defined in 'timerisr.s') */
|
/* timer (int 08h) Interrupt Service Routine (defined in 'timerisr.s') */
|
||||||
|
extern int x86_capability;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* forward declarations
|
||||||
|
*/
|
||||||
|
|
||||||
|
void Timer_exit();
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Pentium optimized timer handling.
|
| Pentium optimized timer handling.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
#if defined(pentium)
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: rdtsc
|
| Function: rdtsc
|
||||||
| Description: Read the value of PENTIUM on-chip cycle counter.
|
| Description: Read the value of PENTIUM on-chip cycle counter.
|
||||||
| Global Variables: None.
|
| Global Variables: None.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Value of PENTIUM on-chip cycle counter.
|
| Returns: Value of PENTIUM on-chip cycle counter.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
static inline unsigned long long
|
static inline unsigned long long
|
||||||
rdtsc(void)
|
rdtsc(void)
|
||||||
@@ -90,30 +98,28 @@ rdtsc(void)
|
|||||||
return result;
|
return result;
|
||||||
} /* rdtsc */
|
} /* rdtsc */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: Timer_exit
|
| Function: Timer_exit
|
||||||
| Description: Timer cleanup routine at RTEMS exit. NOTE: This routine is
|
| Description: Timer cleanup routine at RTEMS exit. NOTE: This routine is
|
||||||
| not really necessary, since there will be a reset at exit.
|
| not really necessary, since there will be a reset at exit.
|
||||||
| Global Variables: None.
|
| Global Variables: None.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
Timer_exit(void)
|
tsc_timer_exit(void)
|
||||||
{
|
{
|
||||||
} /* Timer_exit */
|
} /* tsc_timer_exit */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: Timer_initialize
|
| Function: Timer_initialize
|
||||||
| Description: Timer initialization routine.
|
| Description: Timer initialization routine.
|
||||||
| Global Variables: Ttimer_val.
|
| Global Variables: Ttimer_val.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
Timer_initialize(void)
|
tsc_timer_initialize(void)
|
||||||
{
|
{
|
||||||
static rtems_boolean First = TRUE;
|
static rtems_boolean First = TRUE;
|
||||||
|
|
||||||
@@ -124,22 +130,21 @@ Timer_initialize(void)
|
|||||||
atexit(Timer_exit); /* Try not to hose the system at exit. */
|
atexit(Timer_exit); /* Try not to hose the system at exit. */
|
||||||
}
|
}
|
||||||
Ttimer_val = rdtsc(); /* read starting time */
|
Ttimer_val = rdtsc(); /* read starting time */
|
||||||
} /* Timer_initialize */
|
} /* tsc_timer_initialize */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: Read_timer
|
| Function: Read_timer
|
||||||
| Description: Read hardware timer value.
|
| Description: Read hardware timer value.
|
||||||
| Global Variables: Ttimer_val, Timer_driver_Find_average_overhead.
|
| Global Variables: Ttimer_val, Timer_driver_Find_average_overhead.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
rtems_unsigned32
|
uint32_t
|
||||||
Read_timer(void)
|
tsc_read_timer(void)
|
||||||
{
|
{
|
||||||
register rtems_unsigned32 total;
|
register uint32_t total;
|
||||||
|
|
||||||
total = (rtems_unsigned32)(rdtsc() - Ttimer_val);
|
total = (uint32_t)(rdtsc() - Ttimer_val);
|
||||||
|
|
||||||
if (Timer_driver_Find_average_overhead)
|
if (Timer_driver_Find_average_overhead)
|
||||||
return total;
|
return total;
|
||||||
@@ -147,23 +152,20 @@ Read_timer(void)
|
|||||||
return 0; /* below timer resolution */
|
return 0; /* below timer resolution */
|
||||||
else
|
else
|
||||||
return (total - AVG_OVERHEAD);
|
return (total - AVG_OVERHEAD);
|
||||||
} /* Read_timer */
|
} /* tsc_read_timer */
|
||||||
|
|
||||||
#else /* pentium */
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Non-Pentium timer handling.
|
| Non-Pentium timer handling.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
#define US_PER_ISR 250 /* Number of micro-seconds per timer interruption */
|
#define US_PER_ISR 250 /* Number of micro-seconds per timer interruption */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: Timer_exit
|
| Function: Timer_exit
|
||||||
| Description: Timer cleanup routine at RTEMS exit. NOTE: This routine is
|
| Description: Timer cleanup routine at RTEMS exit. NOTE: This routine is
|
||||||
| not really necessary, since there will be a reset at exit.
|
| not really necessary, since there will be a reset at exit.
|
||||||
| Global Variables: None.
|
| Global Variables: None.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
timerOff(const rtems_raw_irq_connect_data* used)
|
timerOff(const rtems_raw_irq_connect_data* used)
|
||||||
@@ -178,8 +180,7 @@ timerOff(const rtems_raw_irq_connect_data* used)
|
|||||||
outport_byte(TIMER_CNTR0, 0);
|
outport_byte(TIMER_CNTR0, 0);
|
||||||
} /* Timer_exit */
|
} /* Timer_exit */
|
||||||
|
|
||||||
|
static void
|
||||||
static void
|
|
||||||
timerOn(const rtems_raw_irq_connect_data* used)
|
timerOn(const rtems_raw_irq_connect_data* used)
|
||||||
{
|
{
|
||||||
/* load timer for US_PER_ISR microsecond period */
|
/* load timer for US_PER_ISR microsecond period */
|
||||||
@@ -192,10 +193,11 @@ timerOn(const rtems_raw_irq_connect_data* used)
|
|||||||
BSP_irq_enable_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE);
|
BSP_irq_enable_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
timerIsOn(const rtems_raw_irq_connect_data *used)
|
timerIsOn(const rtems_raw_irq_connect_data *used)
|
||||||
{
|
{
|
||||||
return BSP_irq_enabled_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE);}
|
return BSP_irq_enabled_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE);
|
||||||
|
}
|
||||||
|
|
||||||
static rtems_raw_irq_connect_data timer_raw_irq_data = {
|
static rtems_raw_irq_connect_data timer_raw_irq_data = {
|
||||||
BSP_PERIODIC_TIMER + BSP_IRQ_VECTOR_BASE,
|
BSP_PERIODIC_TIMER + BSP_IRQ_VECTOR_BASE,
|
||||||
@@ -211,10 +213,10 @@ static rtems_raw_irq_connect_data timer_raw_irq_data = {
|
|||||||
| not really necessary, since there will be a reset at exit.
|
| not really necessary, since there will be a reset at exit.
|
||||||
| Global Variables: None.
|
| Global Variables: None.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
Timer_exit(void)
|
i386_timer_exit(void)
|
||||||
{
|
{
|
||||||
i386_delete_idt_entry (&timer_raw_irq_data);
|
i386_delete_idt_entry (&timer_raw_irq_data);
|
||||||
} /* Timer_exit */
|
} /* Timer_exit */
|
||||||
@@ -224,10 +226,10 @@ Timer_exit(void)
|
|||||||
| Description: Timer initialization routine.
|
| Description: Timer initialization routine.
|
||||||
| Global Variables: Ttimer_val.
|
| Global Variables: Ttimer_val.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
Timer_initialize(void)
|
i386_timer_initialize(void)
|
||||||
{
|
{
|
||||||
static rtems_boolean First = TRUE;
|
static rtems_boolean First = TRUE;
|
||||||
|
|
||||||
@@ -248,19 +250,18 @@ Timer_initialize(void)
|
|||||||
Ttimer_val = 0;
|
Ttimer_val = 0;
|
||||||
} /* Timer_initialize */
|
} /* Timer_initialize */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: Read_timer
|
| Function: Read_timer
|
||||||
| Description: Read hardware timer value.
|
| Description: Read hardware timer value.
|
||||||
| Global Variables: Ttimer_val, Timer_driver_Find_average_overhead.
|
| Global Variables: Ttimer_val, Timer_driver_Find_average_overhead.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
rtems_unsigned32
|
uint32_t
|
||||||
Read_timer(void)
|
i386_read_timer(void)
|
||||||
{
|
{
|
||||||
register rtems_unsigned32 total, clicks;
|
register uint32_t total, clicks;
|
||||||
register rtems_unsigned8 lsb, msb;
|
register uint8_t lsb, msb;
|
||||||
|
|
||||||
outport_byte(TIMER_MODE, TIMER_SEL0|TIMER_LATCH);
|
outport_byte(TIMER_MODE, TIMER_SEL0|TIMER_LATCH);
|
||||||
inport_byte(TIMER_CNTR0, lsb);
|
inport_byte(TIMER_CNTR0, lsb);
|
||||||
@@ -276,28 +277,68 @@ Read_timer(void)
|
|||||||
return (total - AVG_OVERHEAD);
|
return (total - AVG_OVERHEAD);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* pentium */
|
/*
|
||||||
|
* General timer functions using either TSC-based implementation
|
||||||
|
* or interrupt-based implementation
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
Timer_initialize(void)
|
||||||
|
{
|
||||||
|
static rtems_boolean First = TRUE;
|
||||||
|
|
||||||
|
if (First) {
|
||||||
|
if (x86_capability & (1 << 4) ) {
|
||||||
|
#if defined(DEBUG)
|
||||||
|
printk("TSC: timer initialization\n");
|
||||||
|
#endif
|
||||||
|
Timer_initialize_function = &tsc_timer_initialize;
|
||||||
|
Read_timer_function = &tsc_read_timer;
|
||||||
|
Timer_exit_function = &tsc_timer_exit;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#if defined(DEBUG)
|
||||||
|
printk("ISR: timer initialization\n");
|
||||||
|
#endif
|
||||||
|
Timer_initialize_function = &i386_timer_initialize;
|
||||||
|
Read_timer_function = &i386_read_timer;
|
||||||
|
Timer_exit_function = &i386_timer_exit;
|
||||||
|
}
|
||||||
|
First = FALSE;
|
||||||
|
}
|
||||||
|
(*Timer_initialize_function)();
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t
|
||||||
|
Read_timer()
|
||||||
|
{
|
||||||
|
return (*Read_timer_function)();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Timer_exit()
|
||||||
|
{
|
||||||
|
return (*Timer_exit_function)();
|
||||||
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: Empty_function
|
| Function: Empty_function
|
||||||
| Description: Empty function used in time tests.
|
| Description: Empty function used in time tests.
|
||||||
| Global Variables: None.
|
| Global Variables: None.
|
||||||
| Arguments: None.
|
| Arguments: None.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
rtems_status_code Empty_function(void)
|
rtems_status_code Empty_function(void)
|
||||||
{
|
{
|
||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
} /* Empty function */
|
} /* Empty function */
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Function: Set_find_average_overhead
|
| Function: Set_find_average_overhead
|
||||||
| Description: Set internal Timer_driver_Find_average_overhead flag value.
|
| Description: Set internal Timer_driver_Find_average_overhead flag value.
|
||||||
| Global Variables: Timer_driver_Find_average_overhead.
|
| Global Variables: Timer_driver_Find_average_overhead.
|
||||||
| Arguments: find_flag - new value of the flag.
|
| Arguments: find_flag - new value of the flag.
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
Set_find_average_overhead(rtems_boolean find_flag)
|
Set_find_average_overhead(rtems_boolean find_flag)
|
||||||
@@ -319,11 +360,10 @@ void loadTimerValue( unsigned short loadedValue )
|
|||||||
outport_byte(TIMER_CNTR0, (loadedValue >> 8) & 0xff);
|
outport_byte(TIMER_CNTR0, (loadedValue >> 8) & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
| Description: Reads the current value of the timer, and converts the
|
| Description: Reads the current value of the timer, and converts the
|
||||||
| number of ticks to micro-seconds.
|
| number of ticks to micro-seconds.
|
||||||
| Returns: number of clock bits elapsed since last load.
|
| Returns: number of clock bits elapsed since last load.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
unsigned int readTimer0()
|
unsigned int readTimer0()
|
||||||
{
|
{
|
||||||
@@ -338,7 +378,7 @@ unsigned int readTimer0()
|
|||||||
count = ( msb << 8 ) | lsb ;
|
count = ( msb << 8 ) | lsb ;
|
||||||
if (status & RB_OUTPUT )
|
if (status & RB_OUTPUT )
|
||||||
count += lastLoadedValue;
|
count += lastLoadedValue;
|
||||||
|
|
||||||
return (2*lastLoadedValue - count);
|
return (2*lastLoadedValue - count);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -372,19 +412,19 @@ Calibrate_loop_1ms(void)
|
|||||||
unsigned int targetClockBits, currentClockBits;
|
unsigned int targetClockBits, currentClockBits;
|
||||||
unsigned int slowLoopGranularity, fastLoopGranularity;
|
unsigned int slowLoopGranularity, fastLoopGranularity;
|
||||||
rtems_interrupt_level level;
|
rtems_interrupt_level level;
|
||||||
|
|
||||||
#ifdef DEBUG_CALIBRATE
|
#ifdef DEBUG_CALIBRATE
|
||||||
printk( "Calibrate_loop_1ms is starting, please wait ( but not too loooong. )\n" );
|
printk( "Calibrate_loop_1ms is starting, please wait ( but not too loooong. )\n" );
|
||||||
#endif
|
#endif
|
||||||
targetClockBits = US_TO_TICK(1000);
|
targetClockBits = US_TO_TICK(1000);
|
||||||
|
|
||||||
rtems_interrupt_disable(level);
|
rtems_interrupt_disable(level);
|
||||||
/*
|
/*
|
||||||
* Fill up the cache to get a correct offset
|
* Fill up the cache to get a correct offset
|
||||||
*/
|
*/
|
||||||
Timer0Reset();
|
Timer0Reset();
|
||||||
readTimer0();
|
readTimer0();
|
||||||
/*
|
/*
|
||||||
* Compute the minimal offset to apply due to read counter register.
|
* Compute the minimal offset to apply due to read counter register.
|
||||||
*/
|
*/
|
||||||
offset = 0xffffffff;
|
offset = 0xffffffff;
|
||||||
@@ -437,24 +477,24 @@ Calibrate_loop_1ms(void)
|
|||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
slowLoopGranularity = (res - offset - emptyCall)/ 10;
|
slowLoopGranularity = (res - offset - emptyCall)/ 10;
|
||||||
|
|
||||||
if (slowLoopGranularity == 0) {
|
if (slowLoopGranularity == 0) {
|
||||||
printk("Problem #3 in Calibrate_loop_1ms in file libbsp/i386/pc386/timer/timer.c\n");
|
printk("Problem #3 in Calibrate_loop_1ms in file libbsp/i386/pc386/timer/timer.c\n");
|
||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
targetClockBits += offset;
|
targetClockBits += offset;
|
||||||
#ifdef DEBUG_CALIBRATE
|
#ifdef DEBUG_CALIBRATE
|
||||||
printk("offset = %u, emptyCall = %u, targetClockBits = %u\n",
|
printk("offset = %u, emptyCall = %u, targetClockBits = %u\n",
|
||||||
offset, emptyCall, targetClockBits);
|
offset, emptyCall, targetClockBits);
|
||||||
printk("slowLoopGranularity = %u fastLoopGranularity = %u\n",
|
printk("slowLoopGranularity = %u fastLoopGranularity = %u\n",
|
||||||
slowLoopGranularity, fastLoopGranularity);
|
slowLoopGranularity, fastLoopGranularity);
|
||||||
#endif
|
#endif
|
||||||
slowLoop1ms = (targetClockBits - emptyCall) / slowLoopGranularity;
|
slowLoop1ms = (targetClockBits - emptyCall) / slowLoopGranularity;
|
||||||
if (slowLoop1ms != 0) {
|
if (slowLoop1ms != 0) {
|
||||||
fastLoop1ms = targetClockBits % slowLoopGranularity;
|
fastLoop1ms = targetClockBits % slowLoopGranularity;
|
||||||
if (fastLoop1ms > emptyCall) fastLoop1ms -= emptyCall;
|
if (fastLoop1ms > emptyCall) fastLoop1ms -= emptyCall;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fastLoop1ms = targetClockBits - emptyCall / fastLoopGranularity;
|
fastLoop1ms = targetClockBits - emptyCall / fastLoopGranularity;
|
||||||
|
|
||||||
@@ -462,7 +502,7 @@ Calibrate_loop_1ms(void)
|
|||||||
/*
|
/*
|
||||||
* calibrate slow loop
|
* calibrate slow loop
|
||||||
*/
|
*/
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
int previousSign = 0; /* 0 = unset, 1 = incrementing, 2 = decrementing */
|
int previousSign = 0; /* 0 = unset, 1 = incrementing, 2 = decrementing */
|
||||||
@@ -497,7 +537,7 @@ Calibrate_loop_1ms(void)
|
|||||||
/*
|
/*
|
||||||
* calibrate fast loop
|
* calibrate fast loop
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (fastLoopGranularity != 0 ) {
|
if (fastLoopGranularity != 0 ) {
|
||||||
while(1) {
|
while(1) {
|
||||||
int previousSign = 0; /* 0 = unset, 1 = incrementing, 2 = decrementing */
|
int previousSign = 0; /* 0 = unset, 1 = incrementing, 2 = decrementing */
|
||||||
@@ -525,11 +565,11 @@ Calibrate_loop_1ms(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef DEBUG_CALIBRATE
|
#ifdef DEBUG_CALIBRATE
|
||||||
printk("slowLoop1ms = %u, fastLoop1ms = %u\n", slowLoop1ms, fastLoop1ms);
|
printk("slowLoop1ms = %u, fastLoop1ms = %u\n", slowLoop1ms, fastLoop1ms);
|
||||||
#endif
|
#endif
|
||||||
rtems_interrupt_enable(level);
|
rtems_interrupt_enable(level);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------+
|
/*-------------------------------------------------------------------------+
|
||||||
@@ -537,7 +577,7 @@ Calibrate_loop_1ms(void)
|
|||||||
| Description: loop which waits at least timeToWait ms
|
| Description: loop which waits at least timeToWait ms
|
||||||
| Global Variables: loop1ms
|
| Global Variables: loop1ms
|
||||||
| Arguments: timeToWait
|
| Arguments: timeToWait
|
||||||
| Returns: Nothing.
|
| Returns: Nothing.
|
||||||
+--------------------------------------------------------------------------*/
|
+--------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
Wait_X_ms( unsigned int timeToWait){
|
Wait_X_ms( unsigned int timeToWait){
|
||||||
@@ -550,9 +590,3 @@ Wait_X_ms( unsigned int timeToWait){
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2004-09-27 Greg Menke <gregory.menke@gsfc.nasa.gov>
|
||||||
|
|
||||||
|
PR 608/bsps
|
||||||
|
* pci/pcibios.c: BusCountPCI().
|
||||||
|
|
||||||
2003-12-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
* shared/io/Makefile.am: Remove (Unused).
|
* shared/io/Makefile.am: Remove (Unused).
|
||||||
|
|||||||
@@ -218,6 +218,64 @@ pcib_find_by_class(int classCode, int idx, int *sig)
|
|||||||
#define PCI_MAX_DEVICES 16
|
#define PCI_MAX_DEVICES 16
|
||||||
#define PCI_MAX_FUNCTIONS 8
|
#define PCI_MAX_FUNCTIONS 8
|
||||||
|
|
||||||
|
#define PCI_VENDOR_ID 0x00 /* 16 bits */
|
||||||
|
#define PCI_DEVICE_ID 0x02 /* 16 bits */
|
||||||
|
#define PCI_CLASS_REVISION 0x08
|
||||||
|
#define PCI_HEADER_TYPE 0x0e
|
||||||
|
#define PCI_SUBORDINATE_BUS 0x1a
|
||||||
|
|
||||||
|
#define PCI_CLASS_BRIDGE_PCI 0x0604
|
||||||
|
|
||||||
|
static unsigned8 ucBusCount = 0xff;
|
||||||
|
|
||||||
|
int
|
||||||
|
BusCountPCI()
|
||||||
|
{
|
||||||
|
if( ucBusCount == 0xff )
|
||||||
|
{
|
||||||
|
unsigned char bus,dev,hd;
|
||||||
|
unsigned int d;
|
||||||
|
int sig;
|
||||||
|
|
||||||
|
ucBusCount = 0;
|
||||||
|
|
||||||
|
for(bus=0; bus< 0xff; bus++)
|
||||||
|
{
|
||||||
|
for(dev=0; dev<PCI_MAX_DEVICES; dev++)
|
||||||
|
{
|
||||||
|
sig = PCIB_DEVSIG_MAKE(bus,dev,0);
|
||||||
|
pcib_conf_read32(sig, PCI_VENDOR_ID, &d);
|
||||||
|
|
||||||
|
if( d != -1 )
|
||||||
|
{
|
||||||
|
pcib_conf_read32(sig, PCI_CLASS_REVISION, &d);
|
||||||
|
|
||||||
|
if( (d >> 16) == PCI_CLASS_BRIDGE_PCI )
|
||||||
|
{
|
||||||
|
pcib_conf_read8(sig, PCI_SUBORDINATE_BUS, &hd);
|
||||||
|
|
||||||
|
if( hd > ucBusCount )
|
||||||
|
ucBusCount = hd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ucBusCount == 0 )
|
||||||
|
{
|
||||||
|
printk("BusCountPCI() found 0 busses, assuming 1\n");
|
||||||
|
ucBusCount = 1;
|
||||||
|
}
|
||||||
|
else if( ucBusCount == 0xff )
|
||||||
|
{
|
||||||
|
printk("BusCountPCI() found 0xff busses, assuming 1\n");
|
||||||
|
ucBusCount = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ucBusCount;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
BSP_pciFindDevice( unsigned short vendorid, unsigned short deviceid,
|
BSP_pciFindDevice( unsigned short vendorid, unsigned short deviceid,
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2004-03-05 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
PR 505/bsps
|
||||||
|
* setvec.c: Rework to remove punned pointer warning generated by gcc
|
||||||
|
3.3 and newer.
|
||||||
|
|
||||||
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
* bspspuriousinit.c, m68000spurious.c, m68kpretaskinghook.c, setvec.c,
|
* bspspuriousinit.c, m68000spurious.c, m68kpretaskinghook.c, setvec.c,
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ m68k_isr_entry set_vector( /* returns old vector */
|
|||||||
int type /* RTEMS or RAW intr */
|
int type /* RTEMS or RAW intr */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
m68k_isr_entry previous_isr;
|
rtems_isr_entry previous_isr;
|
||||||
|
|
||||||
if ( type )
|
if ( type )
|
||||||
rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr );
|
rtems_interrupt_catch( handler, vector, &previous_isr );
|
||||||
else {
|
else {
|
||||||
_CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr );
|
_CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr );
|
||||||
}
|
}
|
||||||
return previous_isr;
|
return (m68k_isr_entry) previous_isr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2004-11-10 Richard Campbell <richard.campbell@oarcorp.com>
|
||||||
|
|
||||||
|
* configure.ac: Add TOD support in shared as part of adding MVME2100
|
||||||
|
BSP.
|
||||||
|
|
||||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ shared/pci/Makefile
|
|||||||
shared/residual/Makefile
|
shared/residual/Makefile
|
||||||
shared/start/Makefile
|
shared/start/Makefile
|
||||||
shared/startup/Makefile
|
shared/startup/Makefile
|
||||||
|
shared/tod/Makefile
|
||||||
shared/vectors/Makefile
|
shared/vectors/Makefile
|
||||||
shared/vme/Makefile])
|
shared/vme/Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
|
2005-10-06 Till Straumann <strauman@slac.stanford.edu>
|
||||||
|
|
||||||
|
PR 833/bsps
|
||||||
|
* irq/irq_asm.S: Currently, all (new exception) BSPs explicitely enable
|
||||||
|
the FPU across the user ISR but DONT save/restore the FPU context.
|
||||||
|
Any use of the FPU fron the user handler (e.g., due to GCC
|
||||||
|
optimizations) result in corruption. The fix results in an exception
|
||||||
|
in such cases (user ISR must explicitely save/enable/restore FPU).
|
||||||
|
|
||||||
2003-12-19 Joel Sherrill <joel@OARcorp.com>
|
2003-12-19 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
PR 545/bsps
|
PR 545/bsps
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
* Till Straumann <strauman@slac.stanford.edu>, 2003/7:
|
* Till Straumann <strauman@slac.stanford.edu>, 2003/7:
|
||||||
* - store isr nesting level in _ISR_Nest_level rather than
|
* - store isr nesting level in _ISR_Nest_level rather than
|
||||||
* SPRG0 - RTEMS relies on that variable.
|
* SPRG0 - RTEMS relies on that variable.
|
||||||
|
* Till Straumann <strauman@slac.stanford.edu>, 2005/4:
|
||||||
|
* - DONT enable FP across user USR since fpregs are never saved!!
|
||||||
*
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
@@ -88,14 +90,8 @@ SYM (shared_raw_irq_code_entry):
|
|||||||
/*
|
/*
|
||||||
* Enable data and instruction address translation, exception recovery
|
* Enable data and instruction address translation, exception recovery
|
||||||
*
|
*
|
||||||
* also, on CPUs with FP, enable FP so that FP context can be
|
|
||||||
* saved and restored (using FP instructions)
|
|
||||||
*/
|
*/
|
||||||
#if (PPC_HAS_FPU == 0)
|
|
||||||
ori r3, r3, MSR_RI | MSR_IR | MSR_DR
|
ori r3, r3, MSR_RI | MSR_IR | MSR_DR
|
||||||
#else
|
|
||||||
ori r3, r3, MSR_RI | MSR_IR | MSR_DR | MSR_FP
|
|
||||||
#endif
|
|
||||||
mtmsr r3
|
mtmsr r3
|
||||||
SYNC
|
SYNC
|
||||||
/*
|
/*
|
||||||
@@ -298,6 +294,27 @@ nested:
|
|||||||
rfi
|
rfi
|
||||||
|
|
||||||
switch:
|
switch:
|
||||||
|
#if ( PPC_HAS_FPU != 0 )
|
||||||
|
#if ! defined( CPU_USE_DEFERRED_FP_SWITCH )
|
||||||
|
#error missing include file???
|
||||||
|
#endif
|
||||||
|
mfmsr r4
|
||||||
|
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )
|
||||||
|
/* if the executing thread has FP enabled propagate
|
||||||
|
* this now so _Thread_Dispatch can save/restore the FPREGS
|
||||||
|
* NOTE: it is *crucial* to disable the FPU across the
|
||||||
|
* user ISR [independent of using the 'deferred'
|
||||||
|
* strategy or not]. We don't save FP regs across
|
||||||
|
* the user ISR and hence we prefer an exception to
|
||||||
|
* be raised rather than experiencing corruption.
|
||||||
|
*/
|
||||||
|
lwz r3, SRR1_FRAME_OFFSET(r1)
|
||||||
|
rlwimi r4, r3, 0, 18, 18 /* MSR_FP */
|
||||||
|
#else
|
||||||
|
ori r4, r4, MSR_FP
|
||||||
|
#endif
|
||||||
|
mtmsr r4
|
||||||
|
#endif
|
||||||
bl SYM (_Thread_Dispatch)
|
bl SYM (_Thread_Dispatch)
|
||||||
|
|
||||||
easy_exit:
|
easy_exit:
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2004-10-15 Gene Smith <gene.smith@seimens.com>
|
||||||
|
|
||||||
|
PR 691/bsps
|
||||||
|
* startup/linkcmds: Correct bug in linker script.
|
||||||
|
|
||||||
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
PR 533/bsps
|
PR 533/bsps
|
||||||
|
|||||||
@@ -145,7 +145,6 @@ SECTIONS
|
|||||||
PROVIDE(_heap_end = heap.end);
|
PROVIDE(_heap_end = heap.end);
|
||||||
/* reserve 64KByte for stack... */
|
/* reserve 64KByte for stack... */
|
||||||
stack.end = heap.end + 64K;
|
stack.end = heap.end + 64K;
|
||||||
PROVIDE(_end = stack.end);
|
|
||||||
|
|
||||||
.line 0 : { *(.line) }
|
.line 0 : { *(.line) }
|
||||||
.debug 0 : { *(.debug) }
|
.debug 0 : { *(.debug) }
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2004-10-02 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
|
PR 697/bsps
|
||||||
|
* flashentry/flashentry.S: Fix broken comments
|
||||||
|
(Patch by Thomas.Doerfler@imd-systems.de)
|
||||||
|
|
||||||
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
PR 533/bsps
|
PR 533/bsps
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ stack_top:
|
|||||||
lis r3,0x0100 /* size 16 MB = 0x01000000 */
|
lis r3,0x0100 /* size 16 MB = 0x01000000 */
|
||||||
bl ramacc /* test memory accessibility */
|
bl ramacc /* test memory accessibility */
|
||||||
cmpi 0,0,r4,0 /* memory ok? else test smaller size */
|
cmpi 0,0,r4,0 /* memory ok? else test smaller size */
|
||||||
beq ramcfgok /* ok, we found configuration... +/
|
beq ramcfgok /* ok, we found configuration... */
|
||||||
|
|
||||||
lis r2,0x0000 /* disable BR6, config not ok */
|
lis r2,0x0000 /* disable BR6, config not ok */
|
||||||
mtdcr br6,r2 /* write to DCR BR6*/
|
mtdcr br6,r2 /* write to DCR BR6*/
|
||||||
@@ -263,7 +263,7 @@ ramcfgt18:
|
|||||||
lis r3,0x0080 /* size 8 MB = 0x00800000 */
|
lis r3,0x0080 /* size 8 MB = 0x00800000 */
|
||||||
bl ramacc /* test memory accessibility */
|
bl ramacc /* test memory accessibility */
|
||||||
cmpi 0,0,r4,0 /* memory ok? else test smaller size */
|
cmpi 0,0,r4,0 /* memory ok? else test smaller size */
|
||||||
beq ramcfgok /* ok, we found configuration... +/
|
beq ramcfgok /* ok, we found configuration... */
|
||||||
|
|
||||||
lis r2,0x0000 /* disable BR6, config not ok */
|
lis r2,0x0000 /* disable BR6, config not ok */
|
||||||
mtdcr br6,r2 /* write to DCR BR6*/
|
mtdcr br6,r2 /* write to DCR BR6*/
|
||||||
@@ -333,7 +333,7 @@ ramcfgt14:
|
|||||||
lis r3,0x0040 /* size 4 MB = 0x00400000 */
|
lis r3,0x0040 /* size 4 MB = 0x00400000 */
|
||||||
bl ramacc /* test memory accessibility */
|
bl ramacc /* test memory accessibility */
|
||||||
cmpi 0,0,r4,0 /* memory ok? else test smaller size */
|
cmpi 0,0,r4,0 /* memory ok? else test smaller size */
|
||||||
beq ramcfgok /* ok, we found configuration... +/
|
beq ramcfgok /* ok, we found configuration... */
|
||||||
|
|
||||||
lis r2,0x0000 /* disable BR6, config not ok */
|
lis r2,0x0000 /* disable BR6, config not ok */
|
||||||
mtdcr br6,r2 /* write to DCR BR6*/
|
mtdcr br6,r2 /* write to DCR BR6*/
|
||||||
|
|||||||
@@ -1,3 +1,23 @@
|
|||||||
|
2005-10-06 Till Straumann <strauman@slac.stanford.edu>
|
||||||
|
|
||||||
|
PR 833/bsps
|
||||||
|
* irq/irq_asm.S: Currently, all (new exception) BSPs explicitely enable
|
||||||
|
the FPU across the user ISR but DONT save/restore the FPU context.
|
||||||
|
Any use of the FPU fron the user handler (e.g., due to GCC
|
||||||
|
optimizations) result in corruption. The fix results in an exception
|
||||||
|
in such cases (user ISR must explicitely save/enable/restore FPU).
|
||||||
|
|
||||||
|
2005-09-12 Thomas Doerfler <Thomas.Doerfler@imd-systems.de>
|
||||||
|
|
||||||
|
PR 527/bsps
|
||||||
|
PR 822/bsps
|
||||||
|
* console/console.c, startup/bspstart.c, startup/imbx8xx.c,
|
||||||
|
startup/mmutlbtab.c, startup/start.S, vectors/vectors_init.c:
|
||||||
|
Currently the MBX8xx BSP does not boot, because some logical errors
|
||||||
|
are in the startup code. Additionally, the mpc8xx shared clock driver
|
||||||
|
does not support the clocking scheme of some of the board variants,
|
||||||
|
which are clocked from a 32768Hz (!) external crystal.
|
||||||
|
|
||||||
2003-12-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
* startup/Makefile.am: start.S instead of start.s.
|
* startup/Makefile.am: start.S instead of start.s.
|
||||||
|
|||||||
@@ -542,6 +542,13 @@ serial_init()
|
|||||||
unsigned int dpaddr, memaddr;
|
unsigned int dpaddr, memaddr;
|
||||||
bd_t *bd;
|
bd_t *bd;
|
||||||
|
|
||||||
|
#if NVRAM_CONFIGURE == 1
|
||||||
|
if ( ((nvram->console_mode & 0x06) != 0x04 ) ||
|
||||||
|
((nvram->console_mode & 0x30) != 0x20 )) {
|
||||||
|
/*
|
||||||
|
* FIXME: refine this condition...
|
||||||
|
*/
|
||||||
|
#endif
|
||||||
bd = eppcbugInfo;
|
bd = eppcbugInfo;
|
||||||
|
|
||||||
cp = cpmp;
|
cp = cpmp;
|
||||||
@@ -647,7 +654,26 @@ serial_init()
|
|||||||
/* Enable transmitter/receiver.
|
/* Enable transmitter/receiver.
|
||||||
*/
|
*/
|
||||||
sp->smc_smcmr |= SMCMR_REN | SMCMR_TEN;
|
sp->smc_smcmr |= SMCMR_REN | SMCMR_TEN;
|
||||||
|
#if NVRAM_CONFIGURE == 1
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const char bootmsg_text[]= "using EPPC bug for console I/O\n";
|
||||||
|
_EPPCBug_pollWrite((nvram->console_printk_port & 0x70) >> 4,
|
||||||
|
bootmsg_text,
|
||||||
|
sizeof(bootmsg_text)-1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if NVRAM_CONFIGURE == 1
|
||||||
|
if ((nvram->console_mode & 0x30) == 0x20 ) {
|
||||||
|
BSP_output_char = _BSP_output_char;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
BSP_output_char = serial_putchar;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
BSP_output_char = serial_putchar;
|
BSP_output_char = serial_putchar;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
* Till Straumann <strauman@slac.stanford.edu>, 2003/7:
|
* Till Straumann <strauman@slac.stanford.edu>, 2003/7:
|
||||||
* - store isr nesting level in _ISR_Nest_level rather than
|
* - store isr nesting level in _ISR_Nest_level rather than
|
||||||
* SPRG0 - RTEMS relies on that variable.
|
* SPRG0 - RTEMS relies on that variable.
|
||||||
|
* Till Straumann <strauman@slac.stanford.edu>, 2005/4:
|
||||||
|
* - DONT enable FP across user ISR since fpregs are never saved!!
|
||||||
*
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
@@ -127,11 +129,7 @@ SYM (shared_raw_irq_code_entry):
|
|||||||
* also, on CPUs with FP, enable FP so that FP context can be
|
* also, on CPUs with FP, enable FP so that FP context can be
|
||||||
* saved and restored (using FP instructions)
|
* saved and restored (using FP instructions)
|
||||||
*/
|
*/
|
||||||
#if (PPC_HAS_FPU == 0)
|
|
||||||
ori r3, r3, MSR_RI | MSR_IR | MSR_DR
|
ori r3, r3, MSR_RI | MSR_IR | MSR_DR
|
||||||
#else
|
|
||||||
ori r3, r3, MSR_RI | MSR_IR | MSR_DR | MSR_FP
|
|
||||||
#endif
|
|
||||||
mtmsr r3
|
mtmsr r3
|
||||||
SYNC
|
SYNC
|
||||||
/*
|
/*
|
||||||
@@ -338,6 +336,27 @@ nested:
|
|||||||
rfi
|
rfi
|
||||||
|
|
||||||
switch:
|
switch:
|
||||||
|
#if ( PPC_HAS_FPU != 0 )
|
||||||
|
#if ! defined( CPU_USE_DEFERRED_FP_SWITCH )
|
||||||
|
#error missing include file???
|
||||||
|
#endif
|
||||||
|
mfmsr r4
|
||||||
|
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )
|
||||||
|
/* if the executing thread has FP enabled propagate
|
||||||
|
* this now so _Thread_Dispatch can save/restore the FPREGS
|
||||||
|
* NOTE: it is *crucial* to disable the FPU across the
|
||||||
|
* user ISR [independent of using the 'deferred'
|
||||||
|
* strategy or not]. We don't save FP regs across
|
||||||
|
* the user ISR and hence we prefer an exception to
|
||||||
|
* be raised rather than experiencing corruption.
|
||||||
|
*/
|
||||||
|
lwz r3, SRR1_FRAME_OFFSET(r1)
|
||||||
|
rlwimi r4, r3, 0, 18, 18 /* MSR_FP */
|
||||||
|
#else
|
||||||
|
ori r4, r4, MSR_FP
|
||||||
|
#endif
|
||||||
|
mtmsr r4
|
||||||
|
#endif
|
||||||
bl SYM (_Thread_Dispatch)
|
bl SYM (_Thread_Dispatch)
|
||||||
|
|
||||||
easy_exit:
|
easy_exit:
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ void bsp_start(void)
|
|||||||
myCpuRevision = get_ppc_cpu_revision();
|
myCpuRevision = get_ppc_cpu_revision();
|
||||||
|
|
||||||
mmu_init();
|
mmu_init();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enable instruction and data caches. Do not force writethrough mode.
|
* Enable instruction and data caches. Do not force writethrough mode.
|
||||||
*/
|
*/
|
||||||
@@ -201,7 +201,22 @@ void bsp_start(void)
|
|||||||
if( Cpu_table.interrupt_stack_size < 4 * 1024 )
|
if( Cpu_table.interrupt_stack_size < 4 * 1024 )
|
||||||
Cpu_table.interrupt_stack_size = 4 * 1024;
|
Cpu_table.interrupt_stack_size = 4 * 1024;
|
||||||
|
|
||||||
Cpu_table.clicks_per_usec = 1; /* for 4MHz extclk */
|
#if ( defined(mbx821_001b) ||\
|
||||||
|
defined(mbx821_002b) ||\
|
||||||
|
defined(mbx821_003b) ||\
|
||||||
|
defined(mbx821_004b) ||\
|
||||||
|
defined(mbx821_005b) ||\
|
||||||
|
defined(mbx821_006b) ||\
|
||||||
|
defined(mbx860_001b) ||\
|
||||||
|
defined(mbx860_002b) ||\
|
||||||
|
defined(mbx860_003b) ||\
|
||||||
|
defined(mbx860_004b) ||\
|
||||||
|
defined(mbx860_005b) ||\
|
||||||
|
defined(mbx860_006b))
|
||||||
|
Cpu_table.clicks_per_usec = 0; /* for 32768 Hz oscclk */
|
||||||
|
#else
|
||||||
|
Cpu_table.clicks_per_usec = 1; /* for 4MHz oscclk */
|
||||||
|
#endif
|
||||||
Cpu_table.serial_per_sec = 10000000;
|
Cpu_table.serial_per_sec = 10000000;
|
||||||
Cpu_table.serial_external_clock = 1;
|
Cpu_table.serial_external_clock = 1;
|
||||||
Cpu_table.serial_xon_xoff = 0;
|
Cpu_table.serial_xon_xoff = 0;
|
||||||
|
|||||||
@@ -271,6 +271,7 @@ void _InitMBX8xx (void)
|
|||||||
m8xx.sccrk = M8xx_UNLOCK_KEY; /* unlock SCCR */
|
m8xx.sccrk = M8xx_UNLOCK_KEY; /* unlock SCCR */
|
||||||
m8xx.sccr = 0x02800000; /* for MBX860/MBX821 */
|
m8xx.sccr = 0x02800000; /* for MBX860/MBX821 */
|
||||||
|
|
||||||
|
#if 0 /* IMD hack: do not init PLL after EPPCbug load */
|
||||||
/* Initialize the PLL, Low-Power, and Reset Control Register (PLPRCR) */
|
/* Initialize the PLL, Low-Power, and Reset Control Register (PLPRCR) */
|
||||||
/* - set the clock speed and set normal power mode */
|
/* - set the clock speed and set normal power mode */
|
||||||
m8xx.plprck = M8xx_UNLOCK_KEY; /* unlock PLPRCR */
|
m8xx.plprck = M8xx_UNLOCK_KEY; /* unlock PLPRCR */
|
||||||
@@ -300,6 +301,7 @@ void _InitMBX8xx (void)
|
|||||||
m8xx.plprcr = 0x4C400000;
|
m8xx.plprcr = 0x4C400000;
|
||||||
#else
|
#else
|
||||||
#error "MBX board not defined"
|
#error "MBX board not defined"
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
/* Unlock the timebase and decrementer registers. */
|
/* Unlock the timebase and decrementer registers. */
|
||||||
m8xx.tbk = M8xx_UNLOCK_KEY;
|
m8xx.tbk = M8xx_UNLOCK_KEY;
|
||||||
@@ -316,6 +318,7 @@ void _InitMBX8xx (void)
|
|||||||
_mtspr( M8xx_TBU_WR, r1 );
|
_mtspr( M8xx_TBU_WR, r1 );
|
||||||
_mtspr( M8xx_TBL_WR, r1 );
|
_mtspr( M8xx_TBL_WR, r1 );
|
||||||
|
|
||||||
|
#if 0 /* IMD hack: do not init UPMs after EPPCbug load */
|
||||||
/*
|
/*
|
||||||
* Memory Controller Initialization
|
* Memory Controller Initialization
|
||||||
*/
|
*/
|
||||||
@@ -584,6 +587,7 @@ void _InitMBX8xx (void)
|
|||||||
#endif
|
#endif
|
||||||
m8xx.memc[7]._br = M8xx_BR_BA(0xFC000000) | M8xx_BR_AT(0) | M8xx_BR_PS8 |
|
m8xx.memc[7]._br = M8xx_BR_BA(0xFC000000) | M8xx_BR_AT(0) | M8xx_BR_PS8 |
|
||||||
M8xx_BR_MS_GPCM | M8xx_MEMC_BR_V;
|
M8xx_BR_MS_GPCM | M8xx_MEMC_BR_V;
|
||||||
|
#endif /* IMD hack */
|
||||||
/*
|
/*
|
||||||
* PCMCIA initialization
|
* PCMCIA initialization
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -31,19 +31,8 @@
|
|||||||
* location is equal to its real address.
|
* location is equal to its real address.
|
||||||
*/
|
*/
|
||||||
MMU_TLB_table_t MMU_TLB_table[] = {
|
MMU_TLB_table_t MMU_TLB_table[] = {
|
||||||
#if ( defined(mbx860_001b) )
|
#if ( defined(mbx860_001b) || \
|
||||||
/*
|
defined(mbx860_002b) || \
|
||||||
* DRAM: CS1, Start address 0x00000000, 2M,
|
|
||||||
* ASID=0x0, APG=0x0, not guarded memory, copyback data cache policy,
|
|
||||||
* R/W,X for all, no ASID comparison, not cache-inhibited.
|
|
||||||
* Last 512K block is cache-inhibited, but not guarded for use by EPPCBug.
|
|
||||||
* EPN TWC RPN
|
|
||||||
*/
|
|
||||||
{ 0x00000200, 0x05, 0x000009FD }, /* DRAM - PS=512K */
|
|
||||||
{ 0x00080200, 0x05, 0x000809FD }, /* DRAM - PS=512K */
|
|
||||||
{ 0x00100200, 0x05, 0x001009FD }, /* DRAM - PS=512K */
|
|
||||||
{ 0x00180200, 0x05, 0x001809FF }, /* DRAM - PS=512K, cache-inhibited */
|
|
||||||
#elif ( defined(mbx860_002b) || \
|
|
||||||
defined(mbx860_003b) || \
|
defined(mbx860_003b) || \
|
||||||
defined(mbx821_001b) || \
|
defined(mbx821_001b) || \
|
||||||
defined(mbx821_002b) || \
|
defined(mbx821_002b) || \
|
||||||
|
|||||||
@@ -243,6 +243,46 @@ spin:
|
|||||||
*/
|
*/
|
||||||
#define LOADED_BY_EPPCBUG
|
#define LOADED_BY_EPPCBUG
|
||||||
#define EARLY_CONSOLE
|
#define EARLY_CONSOLE
|
||||||
|
/*
|
||||||
|
* test function: blink orange led once
|
||||||
|
*/
|
||||||
|
#define LEDBLINK_DELAY (5*1000*1000)
|
||||||
|
#define LEDPORT 0xFA100001
|
||||||
|
#define LEDMASK 0xf0
|
||||||
|
#define LEDON 0x00
|
||||||
|
#define LEDOFF 0x08
|
||||||
|
|
||||||
|
PUBLIC_VAR(ledblink)
|
||||||
|
SYM(ledblink):
|
||||||
|
lis r3,LEDBLINK_DELAY>>16
|
||||||
|
ledblink1:
|
||||||
|
subi r3,r3,1
|
||||||
|
cmpi 0,1,r3,0
|
||||||
|
bne ledblink1
|
||||||
|
/*
|
||||||
|
* turn orange led off
|
||||||
|
*/
|
||||||
|
lis r3,LEDPORT@ha
|
||||||
|
lbz r0,LEDPORT@l(r3)
|
||||||
|
andi. r0,r0,LEDMASK
|
||||||
|
ori r0,r0,LEDOFF
|
||||||
|
stb r0,LEDPORT@l(r3)
|
||||||
|
|
||||||
|
lis r3,LEDBLINK_DELAY>>16
|
||||||
|
ledblink2:
|
||||||
|
subi r3,r3,1
|
||||||
|
cmpi 0,1,r3,0
|
||||||
|
bne ledblink2
|
||||||
|
/*
|
||||||
|
* turn orange led on
|
||||||
|
*/
|
||||||
|
lis r3,LEDPORT@ha
|
||||||
|
lbz r0,LEDPORT@l(r3)
|
||||||
|
andi. r0,r0,LEDMASK
|
||||||
|
ori r0,r0,LEDON
|
||||||
|
stb r0,LEDPORT@l(r3)
|
||||||
|
|
||||||
|
blr
|
||||||
/*
|
/*
|
||||||
* Initialization code
|
* Initialization code
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -115,6 +115,11 @@ void initialize_exceptions()
|
|||||||
if (!mpc8xx_vector_is_valid (i)) {
|
if (!mpc8xx_vector_is_valid (i)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
#if 0 /* FIXME: refine this condition, leave Syscall for EPPCBug console */
|
||||||
|
if (i == ASM_SYS_VECTOR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
exception_table[i].exceptIndex = i;
|
exception_table[i].exceptIndex = i;
|
||||||
exception_table[i].hdl = exception_config.defaultRawEntry.hdl;
|
exception_table[i].hdl = exception_config.defaultRawEntry.hdl;
|
||||||
exception_table[i].hdl.vector = i;
|
exception_table[i].hdl.vector = i;
|
||||||
|
|||||||
@@ -1,3 +1,19 @@
|
|||||||
|
2005-05-20 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||||
|
|
||||||
|
PR 717/bsps
|
||||||
|
* bootloader/Makefile.am: Typo results in wrong flags being used.
|
||||||
|
|
||||||
|
2004-11-16 Richard Campbell <richard.campbell@OARcorp.com>
|
||||||
|
|
||||||
|
* README.MVME2100: Update to include DBAT0.
|
||||||
|
* bsp_specs: Fix spacing.
|
||||||
|
|
||||||
|
2004-11-10 Richard Campbell <richard.campbell@oarcorp.com>
|
||||||
|
|
||||||
|
* Makefile.am, configure.ac, bootloader/Makefile.am,
|
||||||
|
include/Makefile.am, wrapup/Makefile.am: Add MVME2100 BSP.
|
||||||
|
* README.MVME2100, tod/.cvsignore, tod/Makefile.am: New files.
|
||||||
|
|
||||||
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
PR 533/bsps
|
PR 533/bsps
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ ACLOCAL_AMFLAGS = -I ../../../../../../aclocal
|
|||||||
# wrapup is the one that actually builds and installs the library
|
# wrapup is the one that actually builds and installs the library
|
||||||
# from the individual .rel files built in other directories
|
# from the individual .rel files built in other directories
|
||||||
SUBDIRS = include clock console pci residual openpic irq vectors start \
|
SUBDIRS = include clock console pci residual openpic irq vectors start \
|
||||||
startup bootloader motorola @exceptions@ vme wrapup
|
startup bootloader motorola @exceptions@ tod vme wrapup
|
||||||
|
|
||||||
include $(top_srcdir)/../../bsp.am
|
include $(top_srcdir)/../../bsp.am
|
||||||
|
|
||||||
EXTRA_DIST = BOOTING README.MVME2300 README.OTHERBOARDS README.dec21140 \
|
EXTRA_DIST = BOOTING README.MVME2100 README.MVME2300 README.OTHERBOARDS \
|
||||||
bsp_specs times.mcp750 times.mvme2307
|
README.dec21140 bsp_specs times.mcp750 times.mvme2307
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../../../automake/subdirs.am
|
include $(top_srcdir)/../../../../../../automake/subdirs.am
|
||||||
include $(top_srcdir)/../../../../../../automake/local.am
|
include $(top_srcdir)/../../../../../../automake/local.am
|
||||||
|
|||||||
132
c/src/lib/libbsp/powerpc/motorola_powerpc/README.MVME2100
Normal file
132
c/src/lib/libbsp/powerpc/motorola_powerpc/README.MVME2100
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
|
||||||
|
The MVME2100 is a Motorola VMEbus board which is similar to the other
|
||||||
|
Motorola PowerPC boards supported by this BSP. But it does not support
|
||||||
|
the Motorola CPU Configuration Register. This makes it impossible to
|
||||||
|
dynamically probe and determine that you are executing on this board
|
||||||
|
variant. So this BSP variant must be explicitly built to only support
|
||||||
|
the MVME2100. The complete list of differences found so far is:
|
||||||
|
|
||||||
|
* No CPU Configuration Register
|
||||||
|
* one COM port
|
||||||
|
* COM port is on PCI IRQ not ISA IRQ
|
||||||
|
* limited on RAM (32 or 64 MB)
|
||||||
|
* uses the EPIC interrupt controller on the MPC8240
|
||||||
|
* does not have an ISA bus but has an ISA I/O address space
|
||||||
|
* cannot set DBAT2 in bspstart like other variants because
|
||||||
|
there are PCI/ISA Interrupt Acknowledge registers at this space
|
||||||
|
This BSP may have left some PCI memory uncovered
|
||||||
|
* PPCBug starts programs with vectors still in ROM
|
||||||
|
|
||||||
|
Supported Features:
|
||||||
|
- Interrupt driven console using termios
|
||||||
|
- Network device driver
|
||||||
|
- Real-Time Clock driver
|
||||||
|
- Clock Tick Device Driver
|
||||||
|
|
||||||
|
Things to address:
|
||||||
|
- Does not return to monitor
|
||||||
|
- Level 1 cache is disabled for now
|
||||||
|
- Check on trying to read CPU Configuration Register for CHRP/Prep for PCI
|
||||||
|
and report a failure if in the wrong mode. May be able to set the model
|
||||||
|
but it may be hard to test if we break PPCBug.
|
||||||
|
- Use NVRAM for network configuration information
|
||||||
|
|
||||||
|
BSP Features Not Implemented:
|
||||||
|
- VMEbus mapped in but untested
|
||||||
|
- OpenPIC features not required for BSP are not supported
|
||||||
|
|
||||||
|
Memory Map
|
||||||
|
==========
|
||||||
|
BAT Mapping
|
||||||
|
|
||||||
|
ffff ffff |------------------------------------| ----- ffff ffff
|
||||||
|
| ROM/FLASH Bank 0 | |
|
||||||
|
fff0 0000 |------------------------------------| |
|
||||||
|
| System I/O | |
|
||||||
|
ffe0 0000 |------------------------------------| |
|
||||||
|
| Replicated ROM/FLASH Bank 0 | |
|
||||||
|
| Replicated System I/O | |
|
||||||
|
ff80 0000 |------------------------------------| |
|
||||||
|
| ROM/FLASH Bank 1 | DBAT3
|
||||||
|
ff00 0000 |------------------------------------| - Supervisor R/W
|
||||||
|
| PCI Interrupt Acknowledge | - Cache Inhibited
|
||||||
|
fef0 0000 |------------------------------------| - Guarded
|
||||||
|
| PCI Configuration Data Register | |
|
||||||
|
fee0 0000 |------------------------------------| |
|
||||||
|
| PCI Configuration Address Register | |
|
||||||
|
fec0 0000 |------------------------------------| |
|
||||||
|
| PCI I/O Space | |
|
||||||
|
fe80 0000 |------------------------------------| |
|
||||||
|
| PCI/ISA I/O Space | |
|
||||||
|
fe00 0000 |------------------------------------| |
|
||||||
|
| PCI/ISA Memory Space | |
|
||||||
|
fd00 0000 |------------------------------------| |
|
||||||
|
| | |
|
||||||
|
| xxxxxxxxxxxxxx| ----- f000 0000
|
||||||
|
| x not mapped | |
|
||||||
|
| xxxxxxxxxxxxxx| ----- a000 0000
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| | DBAT0
|
||||||
|
| | - Supervisor R/W
|
||||||
|
| | - Cache Inhibited
|
||||||
|
| | - Guarded
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| | ----- 9000 0000
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| PCI Memory Space | DBAT2
|
||||||
|
| | - Supervisor R/W
|
||||||
|
| | - Cache Inhibited
|
||||||
|
| | - Guarded
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
8000 0000 |------------------------------------| ----- 8000 0000
|
||||||
|
| x |
|
||||||
|
| x not mapped |
|
||||||
|
| Reserved xxxxxxxxxxxxxx| ----- 1000 0000
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
0200 0000 |------------------------------------| |
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| DRAM (32MB) | DBAT1/IBAT1
|
||||||
|
| | - Supervisor R/W
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
0000 0000 |------------------------------------| ----- 0000 0000
|
||||||
|
|
||||||
|
|
||||||
|
TTCP Performance on First Day Run
|
||||||
|
=================================
|
||||||
|
Fedora Core 1 on (according to /proc/cpuinfo) a 300 Mhz P3 using Netgear
|
||||||
|
10/100 CardBus NIC on a dedicated 10BaseT LAN.
|
||||||
|
|
||||||
|
ON MVME2100: ttcp -t -s 192.168.2.107
|
||||||
|
REPORTED ON MVME2100:
|
||||||
|
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> 192.168.2.107
|
||||||
|
ttcp-t: socket
|
||||||
|
ttcp-t: connect
|
||||||
|
ttcp-t: 16777216 bytes in 20.80 real seconds = 787.69 KB/sec +++
|
||||||
|
ttcp-t: 2048 I/O calls, msec/call = 10.40, calls/sec = 98.46
|
||||||
|
ttcp-t: 0.0user 20.8sys 0:20real 100% 0i+0d 0maxrss 0+0pf 0+0csw
|
||||||
|
|
||||||
|
ON MVME2100: ttcp -t -s 192.168.2.107
|
||||||
|
REPORTED ON MVME2100:
|
||||||
|
ttcp -r -s
|
||||||
|
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
|
||||||
|
ttcp-r: socket
|
||||||
|
ttcp-r: accept from 192.168.2.107
|
||||||
|
ttcp-r: 16777216 bytes in 15.41 real seconds = 1063.21 KB/sec +++
|
||||||
|
ttcp-r: 11588 I/O calls, msec/call = 1.36, calls/sec = 751.98
|
||||||
|
ttcp-r: 0.0user 15.4sys 0:15real 100% 0i+0d 0maxrss 0+0pf 0+0csw
|
||||||
|
|
||||||
@@ -24,8 +24,8 @@ LD = @LD@
|
|||||||
DEFAULT_INCLUDES =
|
DEFAULT_INCLUDES =
|
||||||
|
|
||||||
# Remove references to EABI when compiling bootloader
|
# Remove references to EABI when compiling bootloader
|
||||||
BOOTLOADER_CPU_FLAGS=$(subst -msdata=eabi,,$(subst -meabi,,$(CPU_CFLAGS)))
|
BOOTLOADER_CPU_CFLAGS=$(subst -msdata=eabi,,$(subst -meabi,,$(CPU_CFLAGS)))
|
||||||
AM_CPPFLAGS = -D__BOOT__ -DDEBUG
|
AM_CPPFLAGS = -D__BOOT__
|
||||||
AM_CFLAGS = \
|
AM_CFLAGS = \
|
||||||
$(GCC_SPECS) -specs bsp_specs -qrtems -mrelocatable \
|
$(GCC_SPECS) -specs bsp_specs -qrtems -mrelocatable \
|
||||||
-msoft-float -mstrict-align -fno-builtin -Wall -mmultiple \
|
-msoft-float -mstrict-align -fno-builtin -Wall -mmultiple \
|
||||||
|
|||||||
@@ -3,11 +3,10 @@
|
|||||||
%rename startfile old_startfile
|
%rename startfile old_startfile
|
||||||
%rename link old_link
|
%rename link old_link
|
||||||
|
|
||||||
|
|
||||||
*lib:
|
*lib:
|
||||||
%{!qrtems: %(old_lib)} %{!nostdlib: %{qrtems: --start-group \
|
%{!qrtems: %(old_lib)} %{!nostdlib: %{qrtems: --start-group \
|
||||||
%{!qrtems_debug: -lrtemsbsp -lrtemscpu} %{qrtems_debug: -lrtemsbsp_g -lrtemscpu_g} \
|
%{!qrtems_debug: -lrtemsbsp -lrtemscpu} %{qrtems_debug: -lrtemsbsp_g -lrtemscpu_g} \
|
||||||
-lc -lgcc --end-group \
|
-lc -lgcc --end-group \
|
||||||
%{!qnolinkcmds: -T linkcmds%s}}}
|
%{!qnolinkcmds: -T linkcmds%s}}}
|
||||||
|
|
||||||
*startfile:
|
*startfile:
|
||||||
|
|||||||
@@ -20,6 +20,16 @@ AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
|
|||||||
AS=$CC
|
AS=$CC
|
||||||
AM_PROG_AS
|
AM_PROG_AS
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([mvme2100],[mvme2100],[1])
|
||||||
|
RTEMS_BSPOPTS_SET([mvme2100],[*],[])
|
||||||
|
RTEMS_BSPOPTS_HELP([mvme2100],
|
||||||
|
[Defined for MVME2100 -- undefined for others])
|
||||||
|
|
||||||
|
RTEMS_BSPOPTS_SET([mpc8240],[mvme2100],[1])
|
||||||
|
RTEMS_BSPOPTS_SET([mpc8240],[*],[])
|
||||||
|
RTEMS_BSPOPTS_HELP([mpc8240],
|
||||||
|
[Defined for boards with MPC8240 -- undefined for others])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([PPC_USE_DATA_CACHE],[*],[1])
|
RTEMS_BSPOPTS_SET([PPC_USE_DATA_CACHE],[*],[1])
|
||||||
RTEMS_BSPOPTS_HELP([PPC_USE_DATA_CACHE],
|
RTEMS_BSPOPTS_HELP([PPC_USE_DATA_CACHE],
|
||||||
[If defined, then the PowerPC specific code in RTEMS will use
|
[If defined, then the PowerPC specific code in RTEMS will use
|
||||||
@@ -43,6 +53,7 @@ pci/Makefile
|
|||||||
residual/Makefile
|
residual/Makefile
|
||||||
start/Makefile
|
start/Makefile
|
||||||
startup/Makefile
|
startup/Makefile
|
||||||
|
tod/Makefile
|
||||||
vectors/Makefile
|
vectors/Makefile
|
||||||
vme/Makefile
|
vme/Makefile
|
||||||
wrapup/Makefile])
|
wrapup/Makefile])
|
||||||
|
|||||||
@@ -5,11 +5,12 @@
|
|||||||
include_HEADERS = bspopts.h
|
include_HEADERS = bspopts.h
|
||||||
|
|
||||||
include_HEADERS += ../../shared/include/nvram.h ../../shared/include/bsp.h \
|
include_HEADERS += ../../shared/include/nvram.h ../../shared/include/bsp.h \
|
||||||
../../../shared/include/coverhd.h
|
../../../shared/include/coverhd.h ../../../shared/tod.h
|
||||||
|
|
||||||
include_bspdir = $(includedir)/bsp
|
include_bspdir = $(includedir)/bsp
|
||||||
include_bsp_HEADERS = ../../shared/console/consoleIo.h ../../shared/console/uart.h \
|
include_bsp_HEADERS = ../../shared/console/consoleIo.h \
|
||||||
../../shared/irq/irq.h ../../shared/motorola/motorola.h
|
../../shared/console/uart.h ../../shared/irq/irq.h \
|
||||||
|
../../shared/motorola/motorola.h
|
||||||
|
|
||||||
$(PROJECT_INCLUDE):
|
$(PROJECT_INCLUDE):
|
||||||
$(mkinstalldirs) $@
|
$(mkinstalldirs) $@
|
||||||
@@ -29,6 +30,9 @@ $(PROJECT_INCLUDE)/bsp.h: ../../shared/include/bsp.h
|
|||||||
$(PROJECT_INCLUDE)/coverhd.h: ../../../shared/include/coverhd.h
|
$(PROJECT_INCLUDE)/coverhd.h: ../../../shared/include/coverhd.h
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
|
$(PROJECT_INCLUDE)/tod.h: ../../../shared/tod.h
|
||||||
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/bsp/consoleIo.h: ../../shared/console/consoleIo.h
|
$(PROJECT_INCLUDE)/bsp/consoleIo.h: ../../shared/console/consoleIo.h
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
@@ -46,6 +50,7 @@ TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
|
|||||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
|
||||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/nvram.h
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/nvram.h
|
||||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
|
||||||
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/tod.h
|
||||||
|
|
||||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp
|
||||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/motorola.h
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/motorola.h
|
||||||
|
|||||||
22
c/src/lib/libbsp/powerpc/motorola_powerpc/tod/Makefile.am
Normal file
22
c/src/lib/libbsp/powerpc/motorola_powerpc/tod/Makefile.am
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
##
|
||||||
|
## $Id$
|
||||||
|
##
|
||||||
|
|
||||||
|
|
||||||
|
VPATH = @srcdir@:@srcdir@/../../shared/tod:@srcdir@/../../../shared
|
||||||
|
|
||||||
|
C_FILES = todcfg.c tod.c
|
||||||
|
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||||
|
|
||||||
|
OBJS = $(C_O_FILES)
|
||||||
|
|
||||||
|
include $(top_srcdir)/../../../../../../automake/compile.am
|
||||||
|
include $(top_srcdir)/../../../../../../automake/lib.am
|
||||||
|
|
||||||
|
#
|
||||||
|
# (OPTIONAL) Add local stuff here using +=
|
||||||
|
#
|
||||||
|
|
||||||
|
all-local: $(ARCH) $(OBJS)
|
||||||
|
|
||||||
|
include $(top_srcdir)/../../../../../../automake/local.am
|
||||||
@@ -2,7 +2,8 @@
|
|||||||
## $Id$
|
## $Id$
|
||||||
##
|
##
|
||||||
|
|
||||||
BSP_PIECES = clock console irq openpic pci residual startup vectors motorola vme
|
BSP_PIECES = clock console irq openpic pci residual startup \
|
||||||
|
tod vectors motorola vme
|
||||||
|
|
||||||
# bummer; have to use $foreach since % pattern subst rules only replace 1x
|
# bummer; have to use $foreach since % pattern subst rules only replace 1x
|
||||||
OBJS = $(foreach piece, $(BSP_PIECES), ../$(piece)/$(ARCH)/*.$(OBJEXT)) \
|
OBJS = $(foreach piece, $(BSP_PIECES), ../$(piece)/$(ARCH)/*.$(OBJEXT)) \
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
2005-10-06 Till Straumann <strauman@slac.stanford.edu>
|
||||||
|
|
||||||
|
PR 833/bsps
|
||||||
|
* irq/irq_asm.S: Currently, all (new exception) BSPs explicitely enable
|
||||||
|
the FPU across the user ISR but DONT save/restore the FPU context.
|
||||||
|
Any use of the FPU fron the user handler (e.g., due to GCC
|
||||||
|
optimizations) result in corruption. The fix results in an exception
|
||||||
|
in such cases (user ISR must explicitely save/enable/restore FPU).
|
||||||
|
|
||||||
|
2004-09-27 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
PR 680/bsps
|
||||||
|
* network/if_hdlcsubr.c: Add missing #include <rtems/rtems_bsdnet.h>.
|
||||||
|
|
||||||
|
2004-04-07 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
PR 602/bsps
|
||||||
|
* irq/irq.h: Fix typo.
|
||||||
|
|
||||||
2003-12-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
PR 545/bsps
|
PR 545/bsps
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ int BSP_rtems_irq_mngt_get(rtems_irq_global_settings**);
|
|||||||
extern void BSP_rtems_irq_mng_init(unsigned cpuId);
|
extern void BSP_rtems_irq_mng_init(unsigned cpuId);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -12,6 +12,9 @@
|
|||||||
* Modifications to store nesting level in global _ISR_Nest_level
|
* Modifications to store nesting level in global _ISR_Nest_level
|
||||||
* variable instead of SPRG0. Andy Dachs <a.dachs@sstl.co.uk>
|
* variable instead of SPRG0. Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
*
|
*
|
||||||
|
* Till Straumann <strauman@slac.stanford.edu>, 2005/4:
|
||||||
|
* - DONT enable FP across user ISR since fpregs are never saved!!
|
||||||
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -93,11 +96,7 @@ SYM (shared_raw_irq_code_entry):
|
|||||||
* also, on CPUs with FP, enable FP so that FP context can be
|
* also, on CPUs with FP, enable FP so that FP context can be
|
||||||
* saved and restored (using FP instructions)
|
* saved and restored (using FP instructions)
|
||||||
*/
|
*/
|
||||||
#if (PPC_HAS_FPU == 0)
|
|
||||||
ori r3, r3, MSR_RI /*| MSR_IR | MSR_DR*/
|
ori r3, r3, MSR_RI /*| MSR_IR | MSR_DR*/
|
||||||
#else
|
|
||||||
ori r3, r3, MSR_RI | /*MSR_IR | MSR_DR |*/ MSR_FP
|
|
||||||
#endif
|
|
||||||
mtmsr r3
|
mtmsr r3
|
||||||
SYNC
|
SYNC
|
||||||
|
|
||||||
@@ -301,6 +300,27 @@ nested:
|
|||||||
rfi
|
rfi
|
||||||
|
|
||||||
switch:
|
switch:
|
||||||
|
#if ( PPC_HAS_FPU != 0 )
|
||||||
|
#if ! defined( CPU_USE_DEFERRED_FP_SWITCH )
|
||||||
|
#error missing include file???
|
||||||
|
#endif
|
||||||
|
mfmsr r4
|
||||||
|
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )
|
||||||
|
/* if the executing thread has FP enabled propagate
|
||||||
|
* this now so _Thread_Dispatch can save/restore the FPREGS
|
||||||
|
* NOTE: it is *crucial* to disable the FPU across the
|
||||||
|
* user ISR [independent of using the 'deferred'
|
||||||
|
* strategy or not]. We don't save FP regs across
|
||||||
|
* the user ISR and hence we prefer an exception to
|
||||||
|
* be raised rather than experiencing corruption.
|
||||||
|
*/
|
||||||
|
lwz r3, SRR1_FRAME_OFFSET(r1)
|
||||||
|
rlwimi r4, r3, 0, 18, 18 /* MSR_FP */
|
||||||
|
#else
|
||||||
|
ori r4, r4, MSR_FP
|
||||||
|
#endif
|
||||||
|
mtmsr r4
|
||||||
|
#endif
|
||||||
bl SYM (_Thread_Dispatch)
|
bl SYM (_Thread_Dispatch)
|
||||||
|
|
||||||
easy_exit:
|
easy_exit:
|
||||||
|
|||||||
@@ -48,6 +48,8 @@
|
|||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <rtems/rtems_bsdnet.h>
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
/*#include <sys/systm.h>
|
/*#include <sys/systm.h>
|
||||||
#include <sys/kernel.h> */
|
#include <sys/kernel.h> */
|
||||||
|
|||||||
@@ -1,3 +1,29 @@
|
|||||||
|
2005-04-11 Jennifer Averett <jennifer@OARcorp.com>
|
||||||
|
|
||||||
|
PR 777/bsps
|
||||||
|
* include/bsp.h: Add a Processor_Synchronize command in bsp.h
|
||||||
|
|
||||||
|
2005-03-17 Joel Sherrill <joel@OARcorp.com>
|
||||||
|
|
||||||
|
* irq/.cvsignore: New file.
|
||||||
|
|
||||||
|
2004-11-22 Jennifer Averett <jennifer@OARcorp.com>
|
||||||
|
|
||||||
|
* Makefile.am, wrapup/Makefile.am: Pick up SHM driver when MP enabled.
|
||||||
|
|
||||||
|
2004-11-22 Jennifer Averett <jennifer@OARcorp.com>
|
||||||
|
|
||||||
|
PR 617/bsps
|
||||||
|
PR 581/bsps
|
||||||
|
* Makefile.am, bsp_specs, configure.ac, clock/Makefile.am,
|
||||||
|
include/bsp.h, start/Makefile.am, start/start.S, startup/Makefile.am,
|
||||||
|
startup/bspstart.c, startup/linkcmds, vectors/Makefile.am,
|
||||||
|
vectors/vectors.S, wrapup/Makefile.am: Convert PSIM to new exception
|
||||||
|
model.
|
||||||
|
* irq/Makefile.am, irq/irq.c, irq/irq.h, irq/irq_asm.S,
|
||||||
|
irq/irq_init.c: New files.
|
||||||
|
* clock/clock.c: Removed.
|
||||||
|
|
||||||
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
PR 533/bsps
|
PR 533/bsps
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ ACLOCAL_AMFLAGS = -I ../../../../../../aclocal
|
|||||||
|
|
||||||
# wrapup is the one that actually builds and installs the library
|
# wrapup is the one that actually builds and installs the library
|
||||||
# from the individual .rel files built in other directories
|
# from the individual .rel files built in other directories
|
||||||
SUBDIRS = include start clock console startup shmsupp timer vectors \
|
SUBDIRS = include start irq clock console startup shmsupp timer vectors \
|
||||||
@exceptions@ wrapup \
|
@exceptions@ wrapup \
|
||||||
tools
|
tools
|
||||||
|
|
||||||
|
|||||||
@@ -10,13 +10,13 @@
|
|||||||
%{!qnolinkcmds: -T linkcmds%s}}}
|
%{!qnolinkcmds: -T linkcmds%s}}}
|
||||||
|
|
||||||
*startfile:
|
*startfile:
|
||||||
%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: ecrti%O%s \
|
%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: ecrti%O%s rtems_crti%O%s crtbegin.o%s \
|
||||||
%{!qrtems_debug: start.o%s} \
|
%{!qrtems_debug: start.o%s} \
|
||||||
%{qrtems_debug: start_g.o%s}}}
|
%{qrtems_debug: start_g.o%s}}}
|
||||||
|
|
||||||
*endfile:
|
|
||||||
%{!qrtems: %(old_endfile)} %{qrtems: ecrtn%O%s}
|
|
||||||
|
|
||||||
*link:
|
*link:
|
||||||
%{!qrtems: %(old_link)} %{qrtems: -Qy -dp -Bstatic -e _start -u __vectors}
|
%{!qrtems: %(old_link)} %{qrtems: -Qy -dp -Bstatic -e _start -u __vectors}
|
||||||
|
|
||||||
|
*endfile:
|
||||||
|
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s ecrtn.o%s}
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
##
|
##
|
||||||
|
|
||||||
|
|
||||||
PGM = $(ARCH)/clock.rel
|
VPATH = @srcdir@:@srcdir@/../../shared/clock
|
||||||
|
|
||||||
C_FILES = clock.c
|
C_FILES = p_clock.c
|
||||||
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||||
|
|
||||||
OBJS = $(C_O_FILES)
|
OBJS = $(C_O_FILES)
|
||||||
@@ -17,15 +17,8 @@ include $(top_srcdir)/../../../../../../automake/lib.am
|
|||||||
# (OPTIONAL) Add local stuff here using +=
|
# (OPTIONAL) Add local stuff here using +=
|
||||||
#
|
#
|
||||||
|
|
||||||
$(PGM): $(OBJS)
|
|
||||||
$(make-rel)
|
|
||||||
|
|
||||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||||
|
|
||||||
all-local: $(ARCH) $(OBJS) $(PGM)
|
all-local: $(ARCH) $(OBJS)
|
||||||
|
|
||||||
.PRECIOUS: $(PGM)
|
|
||||||
|
|
||||||
EXTRA_DIST = clock.c
|
|
||||||
|
|
||||||
include $(top_srcdir)/../../../../../../automake/local.am
|
include $(top_srcdir)/../../../../../../automake/local.am
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Instantiate the clock driver shell for psim based
|
|
||||||
* on the decrementer register.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If defined, speed up the clock ticks while the idle task is running so
|
|
||||||
* time spent in the idle task is minimized. This significantly reduces
|
|
||||||
* the wall time required to execute the RTEMS test suites.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* #define CLOCK_DRIVER_USE_FAST_IDLE */
|
|
||||||
|
|
||||||
#define CLOCK_VECTOR PPC_IRQ_DECREMENTER
|
|
||||||
|
|
||||||
/* On psim, each click of the decrementer register corresponds
|
|
||||||
* to 1 instruction. By setting this to 100, we are indicating
|
|
||||||
* that we are assuming it can execute 100 instructions per
|
|
||||||
* microsecond. This corresponds to sustaining 1 instruction
|
|
||||||
* per cycle at 100 Mhz. Whether this is a good guess or not
|
|
||||||
* is anyone's guess.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern int PSIM_INSTRUCTIONS_PER_MICROSECOND;
|
|
||||||
|
|
||||||
unsigned int PPC_DECREMENTER_CLICKS;
|
|
||||||
|
|
||||||
#define Clock_driver_support_install_isr( _new, _old ) \
|
|
||||||
do { \
|
|
||||||
_old = (rtems_isr_entry) set_vector( _new, CLOCK_VECTOR, 1 ); \
|
|
||||||
PPC_DECREMENTER_CLICKS = (unsigned int)&PSIM_INSTRUCTIONS_PER_MICROSECOND; \
|
|
||||||
PPC_DECREMENTER_CLICKS *= rtems_configuration_get_microseconds_per_tick(); \
|
|
||||||
/* PPC_DECREMENTER_CLICKS = 5000; */ \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
#define Clock_driver_support_initialize_hardware() \
|
|
||||||
do { \
|
|
||||||
unsigned int _clicks = PPC_DECREMENTER_CLICKS; \
|
|
||||||
PPC_Set_decrementer( _clicks ); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define Clock_driver_support_at_tick() \
|
|
||||||
Clock_driver_support_initialize_hardware()
|
|
||||||
|
|
||||||
#define Clock_driver_support_shutdown_hardware()
|
|
||||||
|
|
||||||
#include "../../../shared/clockdrv_shell.c"
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user