forked from Imagelibrary/rtems
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f810577581 |
92
ChangeLog
92
ChangeLog
@@ -1,95 +1,3 @@
|
||||
2006-04-24 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* VERSION: Updated to rtems-4.6.6.
|
||||
|
||||
2006-04-24 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* aclocal/version.m4: Updated to rtems-4.6.6.
|
||||
|
||||
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>
|
||||
|
||||
* 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])
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
cd $ac_popdir
|
||||
done
|
||||
fi
|
||||
fi
|
||||
@@ -332,7 +332,7 @@ m4_divert_text([DEFAULTS],
|
||||
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.
|
||||
m4_ifdef([_RTEMS_BUILD_CONFIGDIRS_LIST],
|
||||
[
|
||||
@@ -358,7 +358,7 @@ m4_divert_text([DEFAULTS],
|
||||
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_expand_once([_RTEMS_TOOLS([host],[HOST])])
|
||||
@@ -382,7 +382,7 @@ m4_divert_text([DEFAULTS],
|
||||
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_expand_once([_RTEMS_TOOLS([target],[TARGET])])
|
||||
|
||||
@@ -4,13 +4,12 @@ dnl
|
||||
|
||||
dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
||||
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
|
||||
case $1 in
|
||||
simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
|
||||
c3xsim) $2=c4xsim ;; # TI C3x Simulator in gdb
|
||||
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme2100) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mtx603e) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
|
||||
@@ -24,9 +23,9 @@ AC_DEFUN([_RTEMS_BSP_ALIAS],
|
||||
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
|
||||
pck6) $2=pc386 ;; # i386 - PC with K6
|
||||
bare*) $2=bare ;; # EXP: bare-aliases
|
||||
sis) $2=erc32 ;; # ERC32 SIS simulator
|
||||
leon2) $2=leon2 ;; # leon with fpu
|
||||
leon3) $2=leon3 ;; # another leon variant
|
||||
erc32nfp) $2=erc32 ;; # erc32 without fpu
|
||||
leon1) $2=leon ;; # leon without fpu
|
||||
leon2) $2=leon ;; # leon with fpu
|
||||
simsh7032) $2=shsim ;; # SH7032 simulator
|
||||
simsh7045) $2=shsim ;; # SH7045 simulator
|
||||
*) $2=$1;;
|
||||
@@ -35,7 +34,7 @@ AC_DEFUN([_RTEMS_BSP_ALIAS],
|
||||
|
||||
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,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]),
|
||||
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 and the raw value passed to --enable-FEATURE otherwise.
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_BSP_ARG_ENABLE],
|
||||
AC_DEFUN(RTEMS_BSP_ARG_ENABLE,
|
||||
[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
|
||||
AC_ARG_ENABLE([$1],[$2],
|
||||
[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"`
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CANONICAL_HOST],
|
||||
AC_DEFUN(RTEMS_CANONICAL_HOST,
|
||||
[dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
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 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_MSG_CHECKING(rtems target cpu)
|
||||
|
||||
@@ -4,7 +4,7 @@ dnl
|
||||
dnl Set target tools
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_CANONICALIZE_TOOLS],
|
||||
AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])dnl
|
||||
|
||||
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
|
||||
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_TOP])dnl sets RTEMS_TOPdir
|
||||
@@ -21,8 +21,8 @@ AC_MSG_CHECKING([for bsps])
|
||||
mbx8xx) $1="[$]$1 mbx821_001 mbx860_002 mbx860_005b";;
|
||||
motorola_powerpc) $1="[$]$1 mvme2307 mcp750 mtx603e";;
|
||||
pc386) $1="[$]$1 pc386 pc386dx pc486 pc586 pc686 pck6";;
|
||||
erc32) $1="[$]$1 erc32 sis";;
|
||||
leon) $1="[$]$1 leon2 leon3";;
|
||||
erc32) $1="[$]$1 erc32 erc32nfp";;
|
||||
leon) $1="[$]$1 leon1 leon2";;
|
||||
sim68000) $1="[$]$1 sim68000 simcpu32";;
|
||||
shsim) $1="[$]$1 simsh7032 simsh7045";;
|
||||
*) $1="[$]$1 $file";;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl check if RTEMS support a cpu
|
||||
AC_DEFUN([RTEMS_CHECK_CPU],
|
||||
AC_DEFUN(RTEMS_CHECK_CPU,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_CUSTOM_BSP],[
|
||||
AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,[
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_CXX],
|
||||
AC_DEFUN(RTEMS_CHECK_CXX,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_ITRON_API],
|
||||
AC_DEFUN(RTEMS_CHECK_ITRON_API,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
|
||||
@@ -28,7 +28,7 @@ fi
|
||||
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
|
||||
if test x"${HAS_ITRON_API}" = x"yes";
|
||||
then
|
||||
|
||||
@@ -2,7 +2,7 @@ dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_MULTIPROCESSING],
|
||||
AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
|
||||
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_NETWORKING],
|
||||
AC_DEFUN(RTEMS_CHECK_NETWORKING,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_NEWLIB],
|
||||
AC_DEFUN(RTEMS_CHECK_NEWLIB,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_POSIX_API],
|
||||
AC_DEFUN(RTEMS_CHECK_POSIX_API,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
|
||||
@@ -28,7 +28,7 @@ fi
|
||||
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
|
||||
AS_IF(
|
||||
[test x"${HAS_POSIX_API}" = x"yes"],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_RDBG],
|
||||
AC_DEFUN(RTEMS_CHECK_RDBG,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])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
|
||||
## the un-prefixed version of PROG-TO-CHECK-FOR.
|
||||
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"],
|
||||
[rtems_tool_prefix=${ac_tool_prefix}])
|
||||
|
||||
@@ -11,7 +11,7 @@ dnl
|
||||
dnl
|
||||
dnl _AC_DOTS(PATH)
|
||||
dnl
|
||||
AC_DEFUN([_AC_DOTS],[
|
||||
AC_DEFUN(_AC_DOTS,[
|
||||
# A "../" for each directory in $1.
|
||||
ac_dots=`echo $1 | \
|
||||
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
|
||||
@@ -20,7 +20,7 @@ AC_DEFUN([_AC_DOTS],[
|
||||
dnl
|
||||
dnl _RTEMS_ADJUST_SRCDIR(REVAR,CONFIG_DIR[,TARGET_SUBDIR])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_ADJUST_SRCDIR],[
|
||||
AC_DEFUN(_RTEMS_ADJUST_SRCDIR,[
|
||||
_AC_DOTS(ifelse([$3], ,[$2],[$3/$2]))
|
||||
|
||||
case "$srcdir" in
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
AC_DEFUN([RTEMS_ENABLE_BARE],
|
||||
AC_DEFUN(RTEMS_ENABLE_BARE,
|
||||
[
|
||||
AC_ARG_ENABLE(bare-cpu-cflags,
|
||||
[AC_HELP_STRING([--enable-bare-cpu-cflags],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_CXX],
|
||||
AC_DEFUN(RTEMS_ENABLE_CXX,
|
||||
[
|
||||
AC_ARG_ENABLE(cxx,
|
||||
[AC_HELP_STRING([--enable-cxx],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_INLINES],
|
||||
AC_DEFUN(RTEMS_ENABLE_INLINES,
|
||||
[AC_ARG_ENABLE(rtems-inlines,
|
||||
[AC_HELP_STRING([--enable-rtems-inlines],
|
||||
[enable RTEMS inline functions (default:enabled, disable to use macros)])],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_ITRON],
|
||||
AC_DEFUN(RTEMS_ENABLE_ITRON,
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_MULTIPROCESSING],
|
||||
AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
|
||||
[
|
||||
AC_ARG_ENABLE(multiprocessing,
|
||||
[AC_HELP_STRING([--enable-multiprocessing],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_NETWORKING],
|
||||
AC_DEFUN(RTEMS_ENABLE_NETWORKING,
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_POSIX],
|
||||
AC_DEFUN(RTEMS_ENABLE_POSIX,
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_RDBG],
|
||||
AC_DEFUN(RTEMS_ENABLE_RDBG,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ dnl $Id$
|
||||
dnl Override the set of BSPs to be built.
|
||||
dnl used by the toplevel configure script
|
||||
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMSBSP],
|
||||
AC_DEFUN(RTEMS_ENABLE_RTEMSBSP,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
|
||||
AC_ARG_ENABLE(rtemsbsp,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_TESTS],
|
||||
AC_DEFUN(RTEMS_ENABLE_TESTS,
|
||||
[
|
||||
# If the tests are enabled, then find all the test suite Makefiles
|
||||
AC_MSG_CHECKING([if the test suites are enabled? ])
|
||||
|
||||
@@ -2,7 +2,7 @@ dnl $Id$
|
||||
|
||||
dnl Pass a single BSP via an environment variable
|
||||
dnl used by per BSP configure scripts
|
||||
AC_DEFUN([RTEMS_ENV_RTEMSBSP],
|
||||
AC_DEFUN(RTEMS_ENV_RTEMSBSP,
|
||||
[dnl
|
||||
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
|
||||
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
|
||||
|
||||
@@ -4,7 +4,7 @@ dnl
|
||||
dnl Check whether the gcc accepts -isystem
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_ISYSTEM],
|
||||
AC_DEFUN(RTEMS_GCC_ISYSTEM,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
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
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_PIPE],
|
||||
AC_DEFUN(RTEMS_GCC_PIPE,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
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
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_SPECS],
|
||||
AC_DEFUN(RTEMS_GCC_SPECS,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
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 - 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
|
||||
AC_CACHE_CHECK([for 16 bit mode assembler support],
|
||||
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
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_MULTILIB],
|
||||
AC_DEFUN(RTEMS_ENABLE_MULTILIB,
|
||||
[
|
||||
AC_ARG_ENABLE(multilib,
|
||||
AC_HELP_STRING([--enable-multilib],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PATH_KSH],
|
||||
AC_DEFUN(RTEMS_PATH_KSH,
|
||||
[
|
||||
dnl NOTE: prefer bash over ksh over sh
|
||||
AC_PATH_PROGS(KSH,bash ksh sh)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PATH_PERL],
|
||||
AC_DEFUN(RTEMS_PATH_PERL,
|
||||
[
|
||||
AC_PATH_PROG(PERL,perl)
|
||||
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])
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
cd $ac_popdir
|
||||
done
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -4,7 +4,7 @@ dnl
|
||||
dnl Check for target gcc
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CC],
|
||||
AC_DEFUN(RTEMS_PROG_CC,
|
||||
[
|
||||
AC_BEFORE([$0], [AC_PROG_CPP])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")
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET],
|
||||
AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
|
||||
[
|
||||
dnl check target cc
|
||||
RTEMS_PROG_CC
|
||||
|
||||
@@ -4,7 +4,7 @@ dnl
|
||||
dnl Check for target g++
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CXX_FOR_TARGET],
|
||||
AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
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
|
||||
|
||||
AC_DEFUN([RTEMS_PROJECT_ROOT],
|
||||
AC_DEFUN(RTEMS_PROJECT_ROOT,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMS_DEBUG],
|
||||
AC_DEFUN(RTEMS_ENABLE_RTEMS_DEBUG,
|
||||
[
|
||||
AC_ARG_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])
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_RTEMS_DEBUG],
|
||||
AC_DEFUN(RTEMS_CHECK_RTEMS_DEBUG,
|
||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
|
||||
AS_IF([test x"${enable_rtems_debug}" = x"yes"]
|
||||
[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_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
|
||||
[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])
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_RTEMS_TEST_NO_PAUSE],
|
||||
AC_DEFUN(RTEMS_CHECK_RTEMS_TEST_NO_PAUSE,
|
||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
|
||||
if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
|
||||
then
|
||||
|
||||
@@ -7,7 +7,7 @@ dnl RTEMS_TOP($1)
|
||||
dnl
|
||||
dnl $1 .. relative path from this configure.in to the toplevel configure.in
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_TOP],
|
||||
AC_DEFUN(RTEMS_TOP,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_VERSIONING])
|
||||
AC_CONFIG_AUX_DIR([$1])
|
||||
|
||||
@@ -2,7 +2,7 @@ dnl $Id$
|
||||
|
||||
## HACK: Work-around to structural issue with RTEMS
|
||||
## 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])
|
||||
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
|
||||
])
|
||||
@@ -86,7 +86,7 @@ dnl
|
||||
dnl
|
||||
dnl _RTEMS_PUSH_BUILDDIR(SUBDIR)
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_PUSH_BUILDDIR],
|
||||
AC_DEFUN(_RTEMS_PUSH_BUILDDIR,
|
||||
[
|
||||
# _RTEMS_PUSH_BUILDDIR
|
||||
echo configuring in $1
|
||||
@@ -103,15 +103,15 @@ AC_DEFUN([_RTEMS_PUSH_BUILDDIR],
|
||||
dnl
|
||||
dnl _RTEMS_POP_BUILDDIR
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_POP_BUILDDIR],
|
||||
AC_DEFUN(_RTEMS_POP_BUILDDIR,
|
||||
[
|
||||
cd "$ac_popdir"
|
||||
cd $ac_popdir
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_GIVEN_INSTALL
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_GIVEN_INSTALL],
|
||||
AC_DEFUN(_RTEMS_GIVEN_INSTALL,
|
||||
[
|
||||
ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
|
||||
case "$ac_given_INSTALL" in
|
||||
@@ -124,7 +124,7 @@ ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
|
||||
dnl
|
||||
dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_SUB_SRCDIR],[
|
||||
AC_DEFUN(_RTEMS_SUB_SRCDIR,[
|
||||
# _RTEMS_SUB_SRCDIR
|
||||
_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
|
||||
# Temporary work-around until building in source tree is supported
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
AC_DEFUN([RTEMS_VERSIONING],
|
||||
m4_define([_RTEMS_VERSION],[4.6.6]))
|
||||
m4_define([_RTEMS_VERSION],[4.6.0]))
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
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>
|
||||
|
||||
* 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])
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
cd $ac_popdir
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
2006-04-24 Jiri Gaisler <jiri@gaisler.com>
|
||||
Edvin Catovic <edvin@gaisler.com>
|
||||
|
||||
PR bsps/972
|
||||
* shmdr/shm_driver.h: Add sparc lock/unlock values.
|
||||
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
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>
|
||||
|
||||
* clock/ckinit.c, console/console.c, include/bsp.h, include/coverhd.h,
|
||||
|
||||
@@ -48,8 +48,6 @@ SECTIONS
|
||||
{
|
||||
_sdata = .;
|
||||
*(.data);
|
||||
*(.gnu.linkonce.d*)
|
||||
*(.gcc_except_table)
|
||||
_edata = .;
|
||||
}
|
||||
_data_start = ADDR(.data) ;
|
||||
|
||||
@@ -1,57 +1,3 @@
|
||||
2006-04-24 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* configure.ac, console/console.c:
|
||||
|
||||
2005-11-08 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR832/bsps
|
||||
* startup/ldsegs.S: move CPU segment descriptor tables from .text to
|
||||
.data; the CPU modifies the descriptor tables and this could be a
|
||||
problem: a) if text segment is ever write-protected b) rtems-gdb-stub
|
||||
checksums the text segment against the file gdb is using. A checksum
|
||||
mismatch results because of the CPU touching the accessed bit...
|
||||
|
||||
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>
|
||||
|
||||
PR 649/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>
|
||||
|
||||
PR 502/bsps
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
## $Id$
|
||||
##
|
||||
|
||||
VPATH = @srcdir@:@srcdir@/../../shared/tod:@srcdir@/../../../shared
|
||||
|
||||
PGM = $(ARCH)/clock.rel
|
||||
|
||||
C_FILES = ckinit.c todcfg.c tod.c
|
||||
C_FILES = ckinit.c rtc.c
|
||||
clock_rel_OBJECTS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||
|
||||
include $(top_srcdir)/../../../../../../automake/compile.am
|
||||
@@ -26,6 +25,6 @@ all-local: $(ARCH) $(clock_rel_OBJECTS) $(PGM)
|
||||
|
||||
.PRECIOUS: $(PGM)
|
||||
|
||||
EXTRA_DIST =
|
||||
EXTRA_DIST = ckinit.c rtc.c
|
||||
|
||||
include $(top_srcdir)/../../../../../../automake/local.am
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* 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,28 +16,6 @@ RTEMS_CANONICALIZE_TOOLS
|
||||
|
||||
RTEMS_CHECK_NETWORKING
|
||||
|
||||
RTEMS_BSPOPTS_SET([USE_COM1_AS_CONSOLE],[*],[0])
|
||||
RTEMS_BSPOPTS_HELP([USE_COM1_AS_CONSOLE],
|
||||
[Determines, whether the console will be associated with the standard
|
||||
VGA display or with the COM1 serial port. Currently only the VGA
|
||||
display and COM1 support printk.])
|
||||
|
||||
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?
|
||||
RTEMS_I386_GAS_CODE16
|
||||
AM_CONDITIONAL(RTEMS_GAS_CODE16,[test "$RTEMS_GAS_CODE16" = "yes"])
|
||||
|
||||
@@ -61,14 +61,10 @@ void __assert (const char *file, int line, const char *msg);
|
||||
* to same serial device it does not work that great
|
||||
*/
|
||||
|
||||
#if (USE_COM1_AS_CONSOLE == 1)
|
||||
int BSPConsolePort = BSP_UART_COM1;
|
||||
int BSPPrintkPort = BSP_UART_COM1;
|
||||
#else
|
||||
int BSPConsolePort = BSP_CONSOLE_PORT_CONSOLE;
|
||||
int BSPPrintkPort = BSP_CONSOLE_PORT_CONSOLE;
|
||||
#endif
|
||||
|
||||
/* int BSPConsolePort = BSP_UART_COM2; */
|
||||
int BSPBaseBaud = 115200;
|
||||
|
||||
extern BSP_polling_getchar_function_type BSP_poll_char;
|
||||
|
||||
@@ -270,11 +270,8 @@ _IBMPC_outch(char c)
|
||||
{
|
||||
static int escaped = 0;
|
||||
|
||||
if ( ! (escaped = handleEscape(escaped, c)) ) {
|
||||
if ( '\n' == c )
|
||||
videoPutChar('\r');
|
||||
if ( ! (escaped = handleEscape(escaped, c)) )
|
||||
videoPutChar(c);
|
||||
}
|
||||
} /* _IBMPC_outch */
|
||||
|
||||
|
||||
|
||||
@@ -36,8 +36,7 @@ extern ide_ctrl_fns_t pc386_ide_ctrl_fns;
|
||||
|
||||
/* IDE controllers Table */
|
||||
ide_controller_bsp_table_t IDE_Controller_Table[] = {
|
||||
#if IDE_USE_PRIMARY_INTERFACE
|
||||
{"/dev/ide0",
|
||||
{"/dev/ide",
|
||||
IDE_STD, /* standard IDE controller */
|
||||
&pc386_ide_ctrl_fns,
|
||||
NULL, /* probe for IDE standard registers */
|
||||
@@ -46,21 +45,6 @@ ide_controller_bsp_table_t IDE_Controller_Table[] = {
|
||||
FALSE,0, /* not (yet) interrupt driven */
|
||||
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 */
|
||||
|
||||
@@ -9,15 +9,11 @@ if HAS_NETWORKING
|
||||
WD80X3 = wd80x3.h
|
||||
endif
|
||||
|
||||
include_HEADERS = bsp.h crt.h coverhd.h tod.h $(WD80X3) bspopts.h
|
||||
include_HEADERS = bsp.h crt.h coverhd.h $(WD80X3) bspopts.h
|
||||
|
||||
coverhd.h: $(top_srcdir)/../../shared/include/coverhd.h
|
||||
cp $< $@
|
||||
|
||||
tod.h: $(top_srcdir)/../../shared/tod.h
|
||||
cp $< $@
|
||||
|
||||
CLEANFILES = coverhd.h tod.h
|
||||
CLEANFILES = coverhd.h
|
||||
|
||||
$(PROJECT_INCLUDE):
|
||||
$(mkinstalldirs) $@
|
||||
|
||||
@@ -82,18 +82,12 @@ void bsp_postdriver_hook(void);
|
||||
void bsp_pretasking_hook(void)
|
||||
{
|
||||
rtems_unsigned32 topAddr, val;
|
||||
int i, lowest;
|
||||
int i;
|
||||
|
||||
|
||||
if (rtemsFreeMemStart & (CPU_ALIGNMENT - 1)) /* not aligned => align it */
|
||||
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)
|
||||
{
|
||||
/*
|
||||
@@ -101,13 +95,13 @@ void bsp_pretasking_hook(void)
|
||||
* between 2M and 2048M.
|
||||
* let us first write
|
||||
*/
|
||||
for(i=2048; i>=lowest; i--)
|
||||
for(i=2048; i>=2; i--)
|
||||
{
|
||||
topAddr = i*1024*1024 - 4;
|
||||
*(volatile rtems_unsigned32 *)topAddr = topAddr;
|
||||
}
|
||||
|
||||
for(i=lowest; i<=2048; i++)
|
||||
for(i=2; i<=2048; i++)
|
||||
{
|
||||
topAddr = i*1024*1024 - 4;
|
||||
val = *(rtems_unsigned32 *)topAddr;
|
||||
|
||||
@@ -187,7 +187,6 @@ SYM (_return_to_monitor):
|
||||
| GDT itself
|
||||
+--------------------------------------------------------------------------*/
|
||||
|
||||
BEGIN_DATA
|
||||
.p2align 4
|
||||
|
||||
PUBLIC (_Global_descriptor_table)
|
||||
@@ -217,6 +216,7 @@ SYM (gdtdesc):
|
||||
/*---------------------------------------------------------------------------+
|
||||
| IDT itself
|
||||
+---------------------------------------------------------------------------*/
|
||||
BEGIN_DATA
|
||||
.p2align 4
|
||||
|
||||
PUBLIC(Interrupt_descriptor_table)
|
||||
@@ -224,17 +224,18 @@ SYM(Interrupt_descriptor_table):
|
||||
.rept 256
|
||||
.word 0,0,0,0
|
||||
.endr
|
||||
END_DATA
|
||||
|
||||
/*---------------------------------------------------------------------------+
|
||||
| Descriptor of IDT
|
||||
+--------------------------------------------------------------------------*/
|
||||
|
||||
BEGIN_CODE
|
||||
.p2align 4
|
||||
SYM(idtdesc):
|
||||
.word (256*8 - 1)
|
||||
.long SYM (Interrupt_descriptor_table)
|
||||
|
||||
END_DATA
|
||||
END_CODE
|
||||
|
||||
.section .m_hdr
|
||||
.long 0x1BADB002
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
| $Id$
|
||||
+--------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <bsp.h>
|
||||
@@ -50,7 +51,7 @@
|
||||
#define LEAST_VALID 1 /* Don't trust a value lower than this. */
|
||||
#define SLOW_DOWN_IO 0x80 /* io which does nothing */
|
||||
|
||||
#define TWO_MS (uint32_t)(2000) /* TWO_MS = 2000us (sic!) */
|
||||
#define TWO_MS (rtems_unsigned32)(2000) /* TWO_MS = 2000us (sic!) */
|
||||
|
||||
#define MSK_NULL_COUNT 0x40 /* bit counter available for reading */
|
||||
|
||||
@@ -58,36 +59,27 @@
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Global Variables
|
||||
+--------------------------------------------------------------------------*/
|
||||
volatile uint32_t Ttimer_val;
|
||||
volatile rtems_unsigned32 Ttimer_val;
|
||||
rtems_boolean Timer_driver_Find_average_overhead = TRUE;
|
||||
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
|
||||
+--------------------------------------------------------------------------*/
|
||||
extern void timerisr(void);
|
||||
/* timer (int 08h) Interrupt Service Routine (defined in 'timerisr.s') */
|
||||
extern int x86_capability;
|
||||
|
||||
/*
|
||||
* forward declarations
|
||||
*/
|
||||
|
||||
void Timer_exit();
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Pentium optimized timer handling.
|
||||
+--------------------------------------------------------------------------*/
|
||||
#if defined(pentium)
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Function: rdtsc
|
||||
| Description: Read the value of PENTIUM on-chip cycle counter.
|
||||
| Global Variables: None.
|
||||
| Arguments: None.
|
||||
| Returns: Value of PENTIUM on-chip cycle counter.
|
||||
| Returns: Value of PENTIUM on-chip cycle counter.
|
||||
+--------------------------------------------------------------------------*/
|
||||
static inline unsigned long long
|
||||
rdtsc(void)
|
||||
@@ -98,28 +90,30 @@ rdtsc(void)
|
||||
return result;
|
||||
} /* rdtsc */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Function: Timer_exit
|
||||
| Description: Timer cleanup routine at RTEMS exit. NOTE: This routine is
|
||||
| not really necessary, since there will be a reset at exit.
|
||||
| Global Variables: None.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
void
|
||||
tsc_timer_exit(void)
|
||||
Timer_exit(void)
|
||||
{
|
||||
} /* tsc_timer_exit */
|
||||
} /* Timer_exit */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Function: Timer_initialize
|
||||
| Description: Timer initialization routine.
|
||||
| Global Variables: Ttimer_val.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
void
|
||||
tsc_timer_initialize(void)
|
||||
Timer_initialize(void)
|
||||
{
|
||||
static rtems_boolean First = TRUE;
|
||||
|
||||
@@ -130,21 +124,22 @@ tsc_timer_initialize(void)
|
||||
atexit(Timer_exit); /* Try not to hose the system at exit. */
|
||||
}
|
||||
Ttimer_val = rdtsc(); /* read starting time */
|
||||
} /* tsc_timer_initialize */
|
||||
} /* Timer_initialize */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Function: Read_timer
|
||||
| Description: Read hardware timer value.
|
||||
| Global Variables: Ttimer_val, Timer_driver_Find_average_overhead.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
uint32_t
|
||||
tsc_read_timer(void)
|
||||
rtems_unsigned32
|
||||
Read_timer(void)
|
||||
{
|
||||
register uint32_t total;
|
||||
register rtems_unsigned32 total;
|
||||
|
||||
total = (uint32_t)(rdtsc() - Ttimer_val);
|
||||
total = (rtems_unsigned32)(rdtsc() - Ttimer_val);
|
||||
|
||||
if (Timer_driver_Find_average_overhead)
|
||||
return total;
|
||||
@@ -152,20 +147,23 @@ tsc_read_timer(void)
|
||||
return 0; /* below timer resolution */
|
||||
else
|
||||
return (total - AVG_OVERHEAD);
|
||||
} /* tsc_read_timer */
|
||||
} /* Read_timer */
|
||||
|
||||
#else /* pentium */
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Non-Pentium timer handling.
|
||||
+--------------------------------------------------------------------------*/
|
||||
#define US_PER_ISR 250 /* Number of micro-seconds per timer interruption */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Function: Timer_exit
|
||||
| Description: Timer cleanup routine at RTEMS exit. NOTE: This routine is
|
||||
| not really necessary, since there will be a reset at exit.
|
||||
| Global Variables: None.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
static void
|
||||
timerOff(const rtems_raw_irq_connect_data* used)
|
||||
@@ -180,7 +178,8 @@ timerOff(const rtems_raw_irq_connect_data* used)
|
||||
outport_byte(TIMER_CNTR0, 0);
|
||||
} /* Timer_exit */
|
||||
|
||||
static void
|
||||
|
||||
static void
|
||||
timerOn(const rtems_raw_irq_connect_data* used)
|
||||
{
|
||||
/* load timer for US_PER_ISR microsecond period */
|
||||
@@ -193,11 +192,10 @@ timerOn(const rtems_raw_irq_connect_data* used)
|
||||
BSP_irq_enable_at_i8259s(used->idtIndex - BSP_IRQ_VECTOR_BASE);
|
||||
}
|
||||
|
||||
static int
|
||||
static int
|
||||
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 = {
|
||||
BSP_PERIODIC_TIMER + BSP_IRQ_VECTOR_BASE,
|
||||
@@ -213,10 +211,10 @@ static rtems_raw_irq_connect_data timer_raw_irq_data = {
|
||||
| not really necessary, since there will be a reset at exit.
|
||||
| Global Variables: None.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
void
|
||||
i386_timer_exit(void)
|
||||
Timer_exit(void)
|
||||
{
|
||||
i386_delete_idt_entry (&timer_raw_irq_data);
|
||||
} /* Timer_exit */
|
||||
@@ -226,10 +224,10 @@ i386_timer_exit(void)
|
||||
| Description: Timer initialization routine.
|
||||
| Global Variables: Ttimer_val.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
void
|
||||
i386_timer_initialize(void)
|
||||
Timer_initialize(void)
|
||||
{
|
||||
static rtems_boolean First = TRUE;
|
||||
|
||||
@@ -250,18 +248,19 @@ i386_timer_initialize(void)
|
||||
Ttimer_val = 0;
|
||||
} /* Timer_initialize */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Function: Read_timer
|
||||
| Description: Read hardware timer value.
|
||||
| Global Variables: Ttimer_val, Timer_driver_Find_average_overhead.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
uint32_t
|
||||
i386_read_timer(void)
|
||||
rtems_unsigned32
|
||||
Read_timer(void)
|
||||
{
|
||||
register uint32_t total, clicks;
|
||||
register uint8_t lsb, msb;
|
||||
register rtems_unsigned32 total, clicks;
|
||||
register rtems_unsigned8 lsb, msb;
|
||||
|
||||
outport_byte(TIMER_MODE, TIMER_SEL0|TIMER_LATCH);
|
||||
inport_byte(TIMER_CNTR0, lsb);
|
||||
@@ -277,68 +276,28 @@ i386_read_timer(void)
|
||||
return (total - AVG_OVERHEAD);
|
||||
}
|
||||
|
||||
/*
|
||||
* General timer functions using either TSC-based implementation
|
||||
* or interrupt-based implementation
|
||||
*/
|
||||
#endif /* pentium */
|
||||
|
||||
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
|
||||
| Description: Empty function used in time tests.
|
||||
| Global Variables: None.
|
||||
| Arguments: None.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
rtems_status_code Empty_function(void)
|
||||
{
|
||||
return RTEMS_SUCCESSFUL;
|
||||
} /* Empty function */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Function: Set_find_average_overhead
|
||||
| Description: Set internal Timer_driver_Find_average_overhead flag value.
|
||||
| Global Variables: Timer_driver_Find_average_overhead.
|
||||
| Arguments: find_flag - new value of the flag.
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
void
|
||||
Set_find_average_overhead(rtems_boolean find_flag)
|
||||
@@ -360,10 +319,11 @@ void loadTimerValue( unsigned short loadedValue )
|
||||
outport_byte(TIMER_CNTR0, (loadedValue >> 8) & 0xff);
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
| Description: Reads the current value of the timer, and converts the
|
||||
| number of ticks to micro-seconds.
|
||||
| Returns: number of clock bits elapsed since last load.
|
||||
| Description: Reads the current value of the timer, and converts the
|
||||
| number of ticks to micro-seconds.
|
||||
| Returns: number of clock bits elapsed since last load.
|
||||
+--------------------------------------------------------------------------*/
|
||||
unsigned int readTimer0()
|
||||
{
|
||||
@@ -378,7 +338,7 @@ unsigned int readTimer0()
|
||||
count = ( msb << 8 ) | lsb ;
|
||||
if (status & RB_OUTPUT )
|
||||
count += lastLoadedValue;
|
||||
|
||||
|
||||
return (2*lastLoadedValue - count);
|
||||
}
|
||||
|
||||
@@ -412,19 +372,19 @@ Calibrate_loop_1ms(void)
|
||||
unsigned int targetClockBits, currentClockBits;
|
||||
unsigned int slowLoopGranularity, fastLoopGranularity;
|
||||
rtems_interrupt_level level;
|
||||
|
||||
|
||||
#ifdef DEBUG_CALIBRATE
|
||||
printk( "Calibrate_loop_1ms is starting, please wait ( but not too loooong. )\n" );
|
||||
#endif
|
||||
#endif
|
||||
targetClockBits = US_TO_TICK(1000);
|
||||
|
||||
|
||||
rtems_interrupt_disable(level);
|
||||
/*
|
||||
* Fill up the cache to get a correct offset
|
||||
*/
|
||||
Timer0Reset();
|
||||
readTimer0();
|
||||
/*
|
||||
/*
|
||||
* Compute the minimal offset to apply due to read counter register.
|
||||
*/
|
||||
offset = 0xffffffff;
|
||||
@@ -477,24 +437,24 @@ Calibrate_loop_1ms(void)
|
||||
while (1);
|
||||
}
|
||||
slowLoopGranularity = (res - offset - emptyCall)/ 10;
|
||||
|
||||
|
||||
if (slowLoopGranularity == 0) {
|
||||
printk("Problem #3 in Calibrate_loop_1ms in file libbsp/i386/pc386/timer/timer.c\n");
|
||||
while (1);
|
||||
}
|
||||
|
||||
targetClockBits += offset;
|
||||
#ifdef DEBUG_CALIBRATE
|
||||
#ifdef DEBUG_CALIBRATE
|
||||
printk("offset = %u, emptyCall = %u, targetClockBits = %u\n",
|
||||
offset, emptyCall, targetClockBits);
|
||||
printk("slowLoopGranularity = %u fastLoopGranularity = %u\n",
|
||||
slowLoopGranularity, fastLoopGranularity);
|
||||
#endif
|
||||
#endif
|
||||
slowLoop1ms = (targetClockBits - emptyCall) / slowLoopGranularity;
|
||||
if (slowLoop1ms != 0) {
|
||||
fastLoop1ms = targetClockBits % slowLoopGranularity;
|
||||
if (fastLoop1ms > emptyCall) fastLoop1ms -= emptyCall;
|
||||
}
|
||||
}
|
||||
else
|
||||
fastLoop1ms = targetClockBits - emptyCall / fastLoopGranularity;
|
||||
|
||||
@@ -502,7 +462,7 @@ Calibrate_loop_1ms(void)
|
||||
/*
|
||||
* calibrate slow loop
|
||||
*/
|
||||
|
||||
|
||||
while(1)
|
||||
{
|
||||
int previousSign = 0; /* 0 = unset, 1 = incrementing, 2 = decrementing */
|
||||
@@ -537,7 +497,7 @@ Calibrate_loop_1ms(void)
|
||||
/*
|
||||
* calibrate fast loop
|
||||
*/
|
||||
|
||||
|
||||
if (fastLoopGranularity != 0 ) {
|
||||
while(1) {
|
||||
int previousSign = 0; /* 0 = unset, 1 = incrementing, 2 = decrementing */
|
||||
@@ -565,11 +525,11 @@ Calibrate_loop_1ms(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef DEBUG_CALIBRATE
|
||||
#ifdef DEBUG_CALIBRATE
|
||||
printk("slowLoop1ms = %u, fastLoop1ms = %u\n", slowLoop1ms, fastLoop1ms);
|
||||
#endif
|
||||
#endif
|
||||
rtems_interrupt_enable(level);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------+
|
||||
@@ -577,7 +537,7 @@ Calibrate_loop_1ms(void)
|
||||
| Description: loop which waits at least timeToWait ms
|
||||
| Global Variables: loop1ms
|
||||
| Arguments: timeToWait
|
||||
| Returns: Nothing.
|
||||
| Returns: Nothing.
|
||||
+--------------------------------------------------------------------------*/
|
||||
void
|
||||
Wait_X_ms( unsigned int timeToWait){
|
||||
@@ -590,3 +550,9 @@ Wait_X_ms( unsigned int timeToWait){
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,3 @@
|
||||
2005-11-08 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR832/bsps
|
||||
* pci/pcibios.c: replace BSP_pciFindDevice implementation by pcibios
|
||||
call.
|
||||
|
||||
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>
|
||||
|
||||
* shared/io/Makefile.am: Remove (Unused).
|
||||
|
||||
@@ -218,80 +218,59 @@ pcib_find_by_class(int classCode, int idx, int *sig)
|
||||
#define PCI_MAX_DEVICES 16
|
||||
#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
|
||||
BSP_pciFindDevice( unsigned short vendorid, unsigned short deviceid,
|
||||
int instance, int *pbus, int *pdev, int *pfun )
|
||||
{
|
||||
int sig, rval;
|
||||
int sig;
|
||||
unsigned int d;
|
||||
unsigned short s;
|
||||
unsigned char bus,dev,fun,hd;
|
||||
|
||||
rval = pcib_find_by_devid(vendorid, deviceid, instance, &sig);
|
||||
for (bus=0; bus<BusCountPCI(); bus++)
|
||||
{
|
||||
for (dev=0; dev<PCI_MAX_DEVICES; dev++)
|
||||
{
|
||||
sig = PCIB_DEVSIG_MAKE(bus,dev,0);
|
||||
|
||||
if ( PCIB_ERR_SUCCESS == rval ) {
|
||||
*pbus = PCIB_DEVSIG_BUS(sig);
|
||||
*pdev = PCIB_DEVSIG_DEV(sig);
|
||||
*pfun = PCIB_DEVSIG_FUNC(sig);
|
||||
/* pci_read_config_byte(bus,dev,0, PCI_HEADER_TYPE, &hd); */
|
||||
pcib_conf_read8(sig, 0xe, &hd);
|
||||
|
||||
hd = (hd & PCI_MULTI_FUNCTION ? PCI_MAX_FUNCTIONS : 1);
|
||||
|
||||
for (fun=0; fun<hd; fun++) {
|
||||
/*
|
||||
* The last devfn id/slot is special; must skip it
|
||||
*/
|
||||
if( PCI_MAX_DEVICES-1 == dev && PCI_MAX_FUNCTIONS-1 == fun )
|
||||
break;
|
||||
|
||||
/*pci_read_config_dword(bus,dev,fun,PCI_VENDOR_ID,&d); */
|
||||
pcib_conf_read32(sig, 0, &d);
|
||||
if( d == -1 )
|
||||
continue;
|
||||
#ifdef PCI_DEBUG
|
||||
printk("BSP_pciFindDevice: found 0x%08x at %d/%d/%d\n",d,bus,dev,fun);
|
||||
#endif
|
||||
/* pci_read_config_word(bus,dev,fun,PCI_VENDOR_ID,&s); */
|
||||
pcib_conf_read16(sig, 0, &s);
|
||||
if (vendorid != s)
|
||||
continue;
|
||||
|
||||
/* pci_read_config_word(bus,dev,fun,PCI_DEVICE_ID,&s); */
|
||||
pcib_conf_read16(sig, 0x2, &s);
|
||||
if (deviceid == s) {
|
||||
if (instance--) continue;
|
||||
*pbus=bus;
|
||||
*pdev=dev;
|
||||
*pfun=fun;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rval;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,17 +1,3 @@
|
||||
2006-03-07 Aaron Frye <aaron@frye.com>
|
||||
|
||||
PR 719/bsps
|
||||
* m68kpretaskinghook.c: The optimizer on gcc 3.4.2 assumes that the
|
||||
address of a variable cannot be 0, so it optimizes out any such
|
||||
checks. this breaks the shared m68k bsp_pretasking_hook() which uses
|
||||
such a check to determine heap size during runtime.
|
||||
|
||||
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>
|
||||
|
||||
* bspspuriousinit.c, m68000spurious.c, m68kpretaskinghook.c, setvec.c,
|
||||
|
||||
@@ -36,21 +36,20 @@ extern rtems_configuration_table BSP_Configuration;
|
||||
|
||||
extern void *_RamBase;
|
||||
extern void *_WorkspaceBase;
|
||||
extern volatile void *_HeapSize;
|
||||
extern void *_HeapSize;
|
||||
|
||||
|
||||
unsigned long _M68k_Ramsize;
|
||||
|
||||
void bsp_pretasking_hook(void)
|
||||
{
|
||||
void *heapStart;
|
||||
volatile unsigned long heapSize = (volatile unsigned long)&_HeapSize;
|
||||
unsigned long ramSpace;
|
||||
void *heapStart;
|
||||
unsigned long heapSize = (unsigned long)&_HeapSize;
|
||||
unsigned long ramSpace;
|
||||
|
||||
heapStart = (void *)
|
||||
((unsigned long)&_WorkspaceBase + BSP_Configuration.work_space_size);
|
||||
ramSpace = (unsigned long) &_RamBase + _M68k_Ramsize -
|
||||
(unsigned long) heapStart;
|
||||
ramSpace = (unsigned long) &_RamBase + _M68k_Ramsize - (unsigned long) heapStart;
|
||||
|
||||
if (heapSize == 0)
|
||||
heapSize = ramSpace;
|
||||
|
||||
@@ -26,13 +26,13 @@ m68k_isr_entry set_vector( /* returns old vector */
|
||||
int type /* RTEMS or RAW intr */
|
||||
)
|
||||
{
|
||||
rtems_isr_entry previous_isr;
|
||||
m68k_isr_entry previous_isr;
|
||||
|
||||
if ( type )
|
||||
rtems_interrupt_catch( handler, vector, &previous_isr );
|
||||
rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr );
|
||||
else {
|
||||
_CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr );
|
||||
}
|
||||
return (m68k_isr_entry) previous_isr;
|
||||
return previous_isr;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
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>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
@@ -33,7 +33,6 @@ shared/pci/Makefile
|
||||
shared/residual/Makefile
|
||||
shared/start/Makefile
|
||||
shared/startup/Makefile
|
||||
shared/tod/Makefile
|
||||
shared/vectors/Makefile
|
||||
shared/vme/Makefile])
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -1,18 +1,3 @@
|
||||
2005-11-07 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR 834/bsps
|
||||
* vectors/vectors.S: reload stack pointer/R1 from exception frame
|
||||
instead of adding static offset.
|
||||
|
||||
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>
|
||||
|
||||
PR 545/bsps
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
* Till Straumann <strauman@slac.stanford.edu>, 2003/7:
|
||||
* - store isr nesting level in _ISR_Nest_level rather than
|
||||
* 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$
|
||||
*/
|
||||
@@ -90,8 +88,14 @@ SYM (shared_raw_irq_code_entry):
|
||||
/*
|
||||
* 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
|
||||
#else
|
||||
ori r3, r3, MSR_RI | MSR_IR | MSR_DR | MSR_FP
|
||||
#endif
|
||||
mtmsr r3
|
||||
SYNC
|
||||
/*
|
||||
@@ -294,27 +298,6 @@ nested:
|
||||
rfi
|
||||
|
||||
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)
|
||||
|
||||
easy_exit:
|
||||
|
||||
@@ -137,10 +137,6 @@ SYM (push_normalized_frame):
|
||||
mtsrr0 r3
|
||||
|
||||
lwz r3, GPR3_OFFSET(r1)
|
||||
/* DONT add back the frame size but reload the value
|
||||
* stored in the frame -- maybe the exception handler
|
||||
* changed it with good reason (e.g., gdb pushed a dummy frame)
|
||||
*/
|
||||
lwz r1, GPR1_OFFSET(r1)
|
||||
addi r1,r1, EXCEPTION_FRAME_END
|
||||
SYNC
|
||||
rfi
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
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>
|
||||
|
||||
PR 533/bsps
|
||||
|
||||
@@ -145,6 +145,7 @@ SECTIONS
|
||||
PROVIDE(_heap_end = heap.end);
|
||||
/* reserve 64KByte for stack... */
|
||||
stack.end = heap.end + 64K;
|
||||
PROVIDE(_end = stack.end);
|
||||
|
||||
.line 0 : { *(.line) }
|
||||
.debug 0 : { *(.debug) }
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
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>
|
||||
|
||||
PR 533/bsps
|
||||
|
||||
@@ -191,7 +191,7 @@ stack_top:
|
||||
lis r3,0x0100 /* size 16 MB = 0x01000000 */
|
||||
bl ramacc /* test memory accessibility */
|
||||
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 */
|
||||
mtdcr br6,r2 /* write to DCR BR6*/
|
||||
@@ -263,7 +263,7 @@ ramcfgt18:
|
||||
lis r3,0x0080 /* size 8 MB = 0x00800000 */
|
||||
bl ramacc /* test memory accessibility */
|
||||
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 */
|
||||
mtdcr br6,r2 /* write to DCR BR6*/
|
||||
@@ -333,7 +333,7 @@ ramcfgt14:
|
||||
lis r3,0x0040 /* size 4 MB = 0x00400000 */
|
||||
bl ramacc /* test memory accessibility */
|
||||
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 */
|
||||
mtdcr br6,r2 /* write to DCR BR6*/
|
||||
|
||||
@@ -1,29 +1,3 @@
|
||||
2005-11-07 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR 834/bsps
|
||||
* vectors/vectors.S: reload stack pointer/R1 from exception frame
|
||||
instead of adding static offset.
|
||||
|
||||
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>
|
||||
|
||||
* startup/Makefile.am: start.S instead of start.s.
|
||||
|
||||
@@ -542,13 +542,6 @@ serial_init()
|
||||
unsigned int dpaddr, memaddr;
|
||||
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;
|
||||
|
||||
cp = cpmp;
|
||||
@@ -654,26 +647,7 @@ serial_init()
|
||||
/* Enable transmitter/receiver.
|
||||
*/
|
||||
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;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
* Till Straumann <strauman@slac.stanford.edu>, 2003/7:
|
||||
* - store isr nesting level in _ISR_Nest_level rather than
|
||||
* 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$
|
||||
*/
|
||||
@@ -129,7 +127,11 @@ SYM (shared_raw_irq_code_entry):
|
||||
* 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
|
||||
#else
|
||||
ori r3, r3, MSR_RI | MSR_IR | MSR_DR | MSR_FP
|
||||
#endif
|
||||
mtmsr r3
|
||||
SYNC
|
||||
/*
|
||||
@@ -336,27 +338,6 @@ nested:
|
||||
rfi
|
||||
|
||||
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)
|
||||
|
||||
easy_exit:
|
||||
|
||||
@@ -148,7 +148,7 @@ void bsp_start(void)
|
||||
myCpuRevision = get_ppc_cpu_revision();
|
||||
|
||||
mmu_init();
|
||||
|
||||
|
||||
/*
|
||||
* Enable instruction and data caches. Do not force writethrough mode.
|
||||
*/
|
||||
@@ -201,22 +201,7 @@ void bsp_start(void)
|
||||
if( Cpu_table.interrupt_stack_size < 4 * 1024 )
|
||||
Cpu_table.interrupt_stack_size = 4 * 1024;
|
||||
|
||||
#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.clicks_per_usec = 1; /* for 4MHz extclk */
|
||||
Cpu_table.serial_per_sec = 10000000;
|
||||
Cpu_table.serial_external_clock = 1;
|
||||
Cpu_table.serial_xon_xoff = 0;
|
||||
|
||||
@@ -271,7 +271,6 @@ void _InitMBX8xx (void)
|
||||
m8xx.sccrk = M8xx_UNLOCK_KEY; /* unlock SCCR */
|
||||
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) */
|
||||
/* - set the clock speed and set normal power mode */
|
||||
m8xx.plprck = M8xx_UNLOCK_KEY; /* unlock PLPRCR */
|
||||
@@ -301,7 +300,6 @@ void _InitMBX8xx (void)
|
||||
m8xx.plprcr = 0x4C400000;
|
||||
#else
|
||||
#error "MBX board not defined"
|
||||
#endif
|
||||
#endif
|
||||
/* Unlock the timebase and decrementer registers. */
|
||||
m8xx.tbk = M8xx_UNLOCK_KEY;
|
||||
@@ -318,7 +316,6 @@ void _InitMBX8xx (void)
|
||||
_mtspr( M8xx_TBU_WR, r1 );
|
||||
_mtspr( M8xx_TBL_WR, r1 );
|
||||
|
||||
#if 0 /* IMD hack: do not init UPMs after EPPCbug load */
|
||||
/*
|
||||
* Memory Controller Initialization
|
||||
*/
|
||||
@@ -587,7 +584,6 @@ void _InitMBX8xx (void)
|
||||
#endif
|
||||
m8xx.memc[7]._br = M8xx_BR_BA(0xFC000000) | M8xx_BR_AT(0) | M8xx_BR_PS8 |
|
||||
M8xx_BR_MS_GPCM | M8xx_MEMC_BR_V;
|
||||
#endif /* IMD hack */
|
||||
/*
|
||||
* PCMCIA initialization
|
||||
*/
|
||||
|
||||
@@ -31,8 +31,19 @@
|
||||
* location is equal to its real address.
|
||||
*/
|
||||
MMU_TLB_table_t MMU_TLB_table[] = {
|
||||
#if ( defined(mbx860_001b) || \
|
||||
defined(mbx860_002b) || \
|
||||
#if ( defined(mbx860_001b) )
|
||||
/*
|
||||
* 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(mbx821_001b) || \
|
||||
defined(mbx821_002b) || \
|
||||
|
||||
@@ -243,46 +243,6 @@ spin:
|
||||
*/
|
||||
#define LOADED_BY_EPPCBUG
|
||||
#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
|
||||
*/
|
||||
|
||||
@@ -144,10 +144,6 @@ SYM (push_normalized_frame):
|
||||
mtsrr0 r3
|
||||
|
||||
lwz r3, GPR3_OFFSET(r1)
|
||||
/* DONT add back the frame size but reload the value
|
||||
* stored in the frame -- maybe the exception handler
|
||||
* changed it with good reason (e.g., gdb pushed a dummy frame)
|
||||
*/
|
||||
lwz r1, GPR1_OFFSET(r1)
|
||||
addi r1,r1, EXCEPTION_FRAME_END
|
||||
SYNC
|
||||
rfi
|
||||
|
||||
@@ -115,11 +115,6 @@ void initialize_exceptions()
|
||||
if (!mpc8xx_vector_is_valid (i)) {
|
||||
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].hdl = exception_config.defaultRawEntry.hdl;
|
||||
exception_table[i].hdl.vector = i;
|
||||
|
||||
@@ -1,19 +1,3 @@
|
||||
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>
|
||||
|
||||
PR 533/bsps
|
||||
|
||||
@@ -7,12 +7,12 @@ ACLOCAL_AMFLAGS = -I ../../../../../../aclocal
|
||||
# wrapup is the one that actually builds and installs the library
|
||||
# from the individual .rel files built in other directories
|
||||
SUBDIRS = include clock console pci residual openpic irq vectors start \
|
||||
startup bootloader motorola @exceptions@ tod vme wrapup
|
||||
startup bootloader motorola @exceptions@ vme wrapup
|
||||
|
||||
include $(top_srcdir)/../../bsp.am
|
||||
|
||||
EXTRA_DIST = BOOTING README.MVME2100 README.MVME2300 README.OTHERBOARDS \
|
||||
README.dec21140 bsp_specs times.mcp750 times.mvme2307
|
||||
EXTRA_DIST = BOOTING README.MVME2300 README.OTHERBOARDS README.dec21140 \
|
||||
bsp_specs times.mcp750 times.mvme2307
|
||||
|
||||
include $(top_srcdir)/../../../../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../../../../automake/local.am
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
#
|
||||
# $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 =
|
||||
|
||||
# Remove references to EABI when compiling bootloader
|
||||
BOOTLOADER_CPU_CFLAGS=$(subst -msdata=eabi,,$(subst -meabi,,$(CPU_CFLAGS)))
|
||||
AM_CPPFLAGS = -D__BOOT__
|
||||
BOOTLOADER_CPU_FLAGS=$(subst -msdata=eabi,,$(subst -meabi,,$(CPU_CFLAGS)))
|
||||
AM_CPPFLAGS = -D__BOOT__ -DDEBUG
|
||||
AM_CFLAGS = \
|
||||
$(GCC_SPECS) -specs bsp_specs -qrtems -mrelocatable \
|
||||
-msoft-float -mstrict-align -fno-builtin -Wall -mmultiple \
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
%rename startfile old_startfile
|
||||
%rename link old_link
|
||||
|
||||
|
||||
*lib:
|
||||
%{!qrtems: %(old_lib)} %{!nostdlib: %{qrtems: --start-group \
|
||||
%{!qrtems_debug: -lrtemsbsp -lrtemscpu} %{qrtems_debug: -lrtemsbsp_g -lrtemscpu_g} \
|
||||
-lc -lgcc --end-group \
|
||||
-lc -lgcc --end-group \
|
||||
%{!qnolinkcmds: -T linkcmds%s}}}
|
||||
|
||||
*startfile:
|
||||
|
||||
@@ -20,16 +20,6 @@ AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes")
|
||||
AS=$CC
|
||||
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_HELP([PPC_USE_DATA_CACHE],
|
||||
[If defined, then the PowerPC specific code in RTEMS will use
|
||||
@@ -53,7 +43,6 @@ pci/Makefile
|
||||
residual/Makefile
|
||||
start/Makefile
|
||||
startup/Makefile
|
||||
tod/Makefile
|
||||
vectors/Makefile
|
||||
vme/Makefile
|
||||
wrapup/Makefile])
|
||||
|
||||
@@ -5,12 +5,11 @@
|
||||
include_HEADERS = bspopts.h
|
||||
|
||||
include_HEADERS += ../../shared/include/nvram.h ../../shared/include/bsp.h \
|
||||
../../../shared/include/coverhd.h ../../../shared/tod.h
|
||||
../../../shared/include/coverhd.h
|
||||
|
||||
include_bspdir = $(includedir)/bsp
|
||||
include_bsp_HEADERS = ../../shared/console/consoleIo.h \
|
||||
../../shared/console/uart.h ../../shared/irq/irq.h \
|
||||
../../shared/motorola/motorola.h
|
||||
include_bsp_HEADERS = ../../shared/console/consoleIo.h ../../shared/console/uart.h \
|
||||
../../shared/irq/irq.h ../../shared/motorola/motorola.h
|
||||
|
||||
$(PROJECT_INCLUDE):
|
||||
$(mkinstalldirs) $@
|
||||
@@ -30,9 +29,6 @@ $(PROJECT_INCLUDE)/bsp.h: ../../shared/include/bsp.h
|
||||
$(PROJECT_INCLUDE)/coverhd.h: ../../../shared/include/coverhd.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
$(PROJECT_INCLUDE)/tod.h: ../../../shared/tod.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
$(PROJECT_INCLUDE)/bsp/consoleIo.h: ../../shared/console/consoleIo.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
@@ -50,7 +46,6 @@ TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
|
||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
|
||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/nvram.h
|
||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
|
||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/tod.h
|
||||
|
||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp
|
||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/motorola.h
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
##
|
||||
## $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,8 +2,7 @@
|
||||
## $Id$
|
||||
##
|
||||
|
||||
BSP_PIECES = clock console irq openpic pci residual startup \
|
||||
tod vectors motorola vme
|
||||
BSP_PIECES = clock console irq openpic pci residual startup vectors motorola vme
|
||||
|
||||
# bummer; have to use $foreach since % pattern subst rules only replace 1x
|
||||
OBJS = $(foreach piece, $(BSP_PIECES), ../$(piece)/$(ARCH)/*.$(OBJEXT)) \
|
||||
|
||||
@@ -1,28 +1,3 @@
|
||||
2005-11-07 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR 834/bsps
|
||||
* vectors/vectors.S: reload stack pointer/R1 from exception frame
|
||||
instead of adding static offset.
|
||||
|
||||
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>
|
||||
|
||||
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);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -12,9 +12,6 @@
|
||||
* Modifications to store nesting level in global _ISR_Nest_level
|
||||
* 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$
|
||||
*/
|
||||
|
||||
@@ -96,7 +93,11 @@ SYM (shared_raw_irq_code_entry):
|
||||
* 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*/
|
||||
#else
|
||||
ori r3, r3, MSR_RI | /*MSR_IR | MSR_DR |*/ MSR_FP
|
||||
#endif
|
||||
mtmsr r3
|
||||
SYNC
|
||||
|
||||
@@ -300,27 +301,6 @@ nested:
|
||||
rfi
|
||||
|
||||
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)
|
||||
|
||||
easy_exit:
|
||||
|
||||
@@ -48,8 +48,6 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <rtems/rtems_bsdnet.h>
|
||||
|
||||
#include <sys/param.h>
|
||||
/*#include <sys/systm.h>
|
||||
#include <sys/kernel.h> */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user