mirror of
https://github.com/autc04/Retro68.git
synced 2025-03-30 04:43:22 +00:00
add libgloss and newlib 1.20.0 to gcc directory
This commit is contained in:
parent
5d96d8025a
commit
1c3ad08d54
6120
gcc/libgloss/ChangeLog
Normal file
6120
gcc/libgloss/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
192
gcc/libgloss/Makefile.in
Normal file
192
gcc/libgloss/Makefile.in
Normal file
@ -0,0 +1,192 @@
|
||||
# Top level makefile for libgloss
|
||||
#
|
||||
# Copyright (c) 1995, 1996 Cygnus Support
|
||||
#
|
||||
# The authors hereby grant permission to use, copy, modify, distribute,
|
||||
# and license this software and its documentation for any purpose, provided
|
||||
# that existing copyright notices are retained in all copies and that this
|
||||
# notice is included verbatim in any distributions. No written agreement,
|
||||
# license, or royalty fee is required for any of the authorized uses.
|
||||
# Modifications to this software may be copyrighted by their authors
|
||||
# and need not follow the licensing terms described here, provided that
|
||||
# the new terms are clearly indicated on the first page of each file where
|
||||
# they apply.
|
||||
#
|
||||
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../..
|
||||
objroot = $(objdir)/../..
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
TOP = .
|
||||
SRCTOP = .
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
AR_FLAGS = qv
|
||||
BISON = bison
|
||||
MAKEINFO = makeinfo
|
||||
|
||||
SUBDIRS = @subdirs@
|
||||
|
||||
.NOEXPORT:
|
||||
MAKEOVERRIDES=
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
# These are roughly topologically sorted in order to make porting more
|
||||
# streamlined.
|
||||
FLAGS_TO_PASS = \
|
||||
"CC=$(CC)" \
|
||||
"CFLAGS=$(CFLAGS)" \
|
||||
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||
"CCASFLAGS=$(CCASFLAGS)" \
|
||||
"AR=$(AR)" \
|
||||
"RANLIB=$(RANLIB)" \
|
||||
"AR_FLAGS=$(AR_FLAGS)" \
|
||||
"MAKEINFO=$(MAKEINFO)" \
|
||||
"AS=$(AS)" \
|
||||
"LD=$(LD)" \
|
||||
"CROSS_CFLAGS=$(CROSS_CFLAGS)" \
|
||||
"TARGET_CFLAGS=$(TARGET_CFLAGS)" \
|
||||
"exec_prefix=$(exec_prefix)" \
|
||||
"prefix=$(prefix)" \
|
||||
"tooldir=$(tooldir)" \
|
||||
"infodir=$(infodir)" \
|
||||
"libdir=$(libdir)" \
|
||||
"top_toollibdir=$(toollibdir)" \
|
||||
"INSTALL=$(INSTALL)" \
|
||||
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||
"DESTDIR=$(DESTDIR)"
|
||||
|
||||
all: stmp-bsp force
|
||||
+@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all
|
||||
|
||||
stmp-bsp: force
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS)) || exit $$?; \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
|
||||
install: force
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) install) || exit $$?; \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
|
||||
|
||||
test: force
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for dir in .. ${SUBDIRS}; do \
|
||||
if [ x$$dir != x.. ]; then \
|
||||
if [ -d $$dir ]; then \
|
||||
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) test); \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=test
|
||||
|
||||
clean-here:
|
||||
-rm -f *~ core *.o a.out xgdb *.x
|
||||
|
||||
clean mostlyclean: clean-here
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS="$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do; \
|
||||
$(MULTICLEAN) multi-clean DO=$@
|
||||
|
||||
distclean maintainer-clean realclean: clean-here
|
||||
-rm -f Makefile config.cache config.log config.status
|
||||
-rm -f *-init.exp site.*
|
||||
-rm -fr *.log summary detail *.sum
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS="$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do; \
|
||||
$(MULTICLEAN) multi-clean DO=$@
|
||||
|
||||
.PHONY: info install-info clean-info html pdf
|
||||
subdir_do:
|
||||
@rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
for i in .. $(DODIRS); do \
|
||||
if [ x$$i != x.. ]; then \
|
||||
if [ -f ./$$i/Makefile ]; then \
|
||||
if (cd ./$$i; $(MAKE) $(FLAGS_TO_PASS) $(DO)); then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
else true; fi; \
|
||||
else true; fi; \
|
||||
done
|
||||
|
||||
info dvi html pdf docs:
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS=doc $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
install-info:
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=$@ DODIRS=doc $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
clean-info:
|
||||
|
||||
force:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
9
gcc/libgloss/README
Normal file
9
gcc/libgloss/README
Normal file
@ -0,0 +1,9 @@
|
||||
bfin - Analog Devices Blackfin processor.
|
||||
sparc - Fujitsu Sparclite board. Works on the ex930, ex931, ex933
|
||||
hp74x - Hewlett Packard HP742 board. Also some support for the hp743.
|
||||
m68hc11 - Motorola 68HC11 or 68HC12 support.
|
||||
m68k - Motorola MVME135 and IDP board. For CPU32 systems.
|
||||
mep - Toshiba Media Processor.
|
||||
pa - WinBond and Oki boards with a PA.
|
||||
mips - R3000 support. Array Tech LSI33k based RAID disk controller.
|
||||
lm32 - Lattice Mico32 simulator.
|
62
gcc/libgloss/acinclude.m4
Normal file
62
gcc/libgloss/acinclude.m4
Normal file
@ -0,0 +1,62 @@
|
||||
# FIXME: We temporarily define our own version of AC_PROG_CC. This is
|
||||
# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
|
||||
# are probably using a cross compiler, which will not be able to fully
|
||||
# link an executable. This should really be fixed in autoconf
|
||||
# itself.
|
||||
|
||||
AC_DEFUN([LIB_AC_PROG_CC_GNU],
|
||||
[AC_CACHE_CHECK(whether we are using GNU C, ac_cv_prog_gcc,
|
||||
[dnl The semicolon is to pacify NeXT's syntax-checking cpp.
|
||||
cat > conftest.c <<EOF
|
||||
#ifdef __GNUC__
|
||||
yes;
|
||||
#endif
|
||||
EOF
|
||||
if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
|
||||
ac_cv_prog_gcc=yes
|
||||
else
|
||||
ac_cv_prog_gcc=no
|
||||
fi])])
|
||||
|
||||
AC_DEFUN([LIB_AM_PROG_AS],
|
||||
[# By default we simply use the C compiler to build assembly code.
|
||||
AC_REQUIRE([LIB_AC_PROG_CC])
|
||||
test "${CCAS+set}" = set || CCAS=$CC
|
||||
test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
|
||||
AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)])
|
||||
AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)])
|
||||
])
|
||||
|
||||
AC_DEFUN([LIB_AC_PROG_CC],
|
||||
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
||||
AC_CHECK_PROG(CC, gcc, gcc)
|
||||
_AM_DEPENDENCIES(CC)
|
||||
if test -z "$CC"; then
|
||||
AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
|
||||
test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
fi
|
||||
|
||||
LIB_AC_PROG_CC_GNU
|
||||
|
||||
if test $ac_cv_prog_gcc = yes; then
|
||||
GCC=yes
|
||||
dnl Check whether -g works, even if CFLAGS is set, in case the package
|
||||
dnl plays around with CFLAGS (such as to build both debugging and
|
||||
dnl normal versions of a library), tasteless as that idea is.
|
||||
ac_test_CFLAGS="${CFLAGS+set}"
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS=
|
||||
_AC_PROG_CC_G
|
||||
if test "$ac_test_CFLAGS" = set; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
elif test $ac_cv_prog_cc_g = yes; then
|
||||
CFLAGS="-g -O2"
|
||||
else
|
||||
CFLAGS="-O2"
|
||||
fi
|
||||
else
|
||||
GCC=
|
||||
test "${CFLAGS+set}" = set || CFLAGS="-g"
|
||||
fi
|
||||
])
|
||||
|
851
gcc/libgloss/aclocal.m4
vendored
Normal file
851
gcc/libgloss/aclocal.m4
vendored
Normal file
@ -0,0 +1,851 @@
|
||||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.9.5])])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 12
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.58])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" &&
|
||||
test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AM_PROG_INSTALL_SH
|
||||
AM_PROG_INSTALL_STRIP
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
|
||||
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||
# loop where config.status creates the headers, so we can generate
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$1 | $1:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
install_sh=${install_sh-"$am_aux_dir/install-sh"}
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
|
||||
#
|
||||
# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
|
||||
# created by `make install' are always world readable, even if the
|
||||
# installer happens to have an overly restrictive umask (e.g. 077).
|
||||
# This was a mistake. There are at least two reasons why we must not
|
||||
# use `-m 0755':
|
||||
# - it causes special bits like SGID to be ignored,
|
||||
# - it may be too restrictive (some setups expect 775 directories).
|
||||
#
|
||||
# Do not use -m 0755 and let people choose whatever they expect by
|
||||
# setting umask.
|
||||
#
|
||||
# We cannot accept any implementation of `mkdir' that recognizes `-p'.
|
||||
# Some implementations (such as Solaris 8's) are not thread-safe: if a
|
||||
# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
|
||||
# concurrently, both version can detect that a/ is missing, but only
|
||||
# one can create it and the other will error out. Consequently we
|
||||
# restrict ourselves to GNU make (using the --version option ensures
|
||||
# this.)
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||
# We used to keeping the `.' as first argument, in order to
|
||||
# allow $(mkdir_p) to be used without argument. As in
|
||||
# $(mkdir_p) $(somedir)
|
||||
# where $(somedir) is conditionally defined. However this is wrong
|
||||
# for two reasons:
|
||||
# 1. if the package is installed by a user who cannot write `.'
|
||||
# make install will fail,
|
||||
# 2. the above comment should most certainly read
|
||||
# $(mkdir_p) $(DESTDIR)$(somedir)
|
||||
# so it does not work when $(somedir) is undefined and
|
||||
# $(DESTDIR) is not.
|
||||
# To support the latter case, we have to write
|
||||
# test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
|
||||
# so the `.' trick is pointless.
|
||||
mkdir_p='mkdir -p --'
|
||||
else
|
||||
# On NextStep and OpenStep, the `mkdir' command does not
|
||||
# recognize any option. It will interpret all options as
|
||||
# directories to create, and then abort because `.' already
|
||||
# exists.
|
||||
for d in ./-p ./--version;
|
||||
do
|
||||
test -d $d && rmdir $d
|
||||
done
|
||||
# $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
|
||||
if test -f "$ac_aux_dir/mkinstalldirs"; then
|
||||
mkdir_p='$(mkinstalldirs)'
|
||||
else
|
||||
mkdir_p='$(install_sh) -d'
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([mkdir_p])])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# ------------------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ----------------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 4
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
# $tardir.
|
||||
# tardir=directory && $(am__tar) > result.tar
|
||||
#
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([acinclude.m4])
|
187
gcc/libgloss/arm/Makefile.in
Normal file
187
gcc/libgloss/arm/Makefile.in
Normal file
@ -0,0 +1,187 @@
|
||||
#
|
||||
#
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@ @srcdir@/..
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../..
|
||||
objroot = $(objdir)/../..
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
objtype = @objtype@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTISRCTOP =
|
||||
MULTIBUILDTOP =
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
MULTIDO = true
|
||||
MULTICLEAN = true
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
|
||||
then echo ${objroot}/../binutils/objdump ; \
|
||||
else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
|
||||
OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
|
||||
then echo ${objroot}/../binutils/objcopy ; \
|
||||
else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
|
||||
|
||||
@BUILD_CRT0_TRUE@CRT0 = crt0.o
|
||||
@BUILD_CRT0_TRUE@CRT0_INSTALL = install-crt0
|
||||
@BUILD_CRT0_FALSE@CRT0 =
|
||||
@BUILD_CRT0_FALSE@CRT0_INSTALL =
|
||||
|
||||
LINUX_CRT0 = linux-crt0.o
|
||||
LINUX_BSP = libgloss-linux.a
|
||||
LINUX_OBJS = linux-syscalls0.o linux-syscalls1.o
|
||||
LINUX_SCRIPTS = linux.specs
|
||||
LINUX_INSTALL = install-linux
|
||||
|
||||
REDBOOT_CRT0 = redboot-crt0.o
|
||||
REDBOOT_OBJS = redboot-syscalls.o
|
||||
REDBOOT_SCRIPTS = redboot.ld redboot.specs
|
||||
REDBOOT_INSTALL = install-redboot
|
||||
|
||||
RDPMON_CRT0 = rdpmon-crt0.o
|
||||
RDPMON_BSP = librdpmon.a
|
||||
RDPMON_OBJS = syscalls.o libcfunc.o trap.o _exit.o _kill.o
|
||||
RDPMON_SCRIPTS = rdpmon.specs
|
||||
RDPMON_INSTALL = install-rdpmon
|
||||
|
||||
RDIMON_CRT0 = rdimon-crt0.o
|
||||
RDIMON_BSP = librdimon.a
|
||||
RDIMON_OBJS = $(patsubst %,rdimon-%,$(RDPMON_OBJS))
|
||||
RDIMON_SCRIPTS = rdimon.specs
|
||||
RDIMON_INSTALL = install-rdimon
|
||||
|
||||
CFLAGS = -g
|
||||
|
||||
# Here is all of the eval board stuff
|
||||
PID_SCRIPTS = pid.specs
|
||||
PID_INSTALL = install-pid
|
||||
|
||||
IQ80310_SCRIPTS = iq80310.specs
|
||||
IQ80310_INSTALL = install-iq80310
|
||||
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
#
|
||||
# build a test program for each target board. Just trying to get
|
||||
# it to link is a good test, so we ignore all the errors for now.
|
||||
#
|
||||
all: ${CRT0} ${LINUX_CRT0} ${LINUX_BSP} ${REDBOOT_CRT0} ${REDBOOT_OBJS} ${RDPMON_CRT0} ${RDPMON_BSP} ${RDIMON_CRT0} ${RDIMON_BSP}
|
||||
|
||||
#
|
||||
# here's where we build the test programs for each target
|
||||
#
|
||||
.PHONY: test
|
||||
test:
|
||||
|
||||
#
|
||||
crt0.o: crt0.S
|
||||
redboot-crt0.o: redboot-crt0.S
|
||||
redboot-syscalls.o: redboot-syscalls.c $(srcdir)/../syscall.h
|
||||
|
||||
rdpmon-crt0.o: crt0.S
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDP_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-crt0.o: crt0.S
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-trap.o: trap.S
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-_exit.o: _exit.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-_kill.o: _kill.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-syscalls.o: syscalls.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
rdimon-libcfunc.o: libcfunc.c
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
|
||||
|
||||
$(LINUX_BSP): $(LINUX_OBJS)
|
||||
${AR} ${ARFLAGS} $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
$(RDPMON_BSP): $(RDPMON_OBJS)
|
||||
${AR} ${ARFLAGS} $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
$(RDIMON_BSP): $(RDIMON_OBJS)
|
||||
${AR} ${ARFLAGS} $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
clean mostlyclean:
|
||||
rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) $(IQ80310_BSP)
|
||||
|
||||
distclean maintainer-clean realclean: clean
|
||||
rm -f Makefile config.status *~
|
||||
|
||||
.PHONY: install info install-info clean-info
|
||||
install: ${CRT0_INSTALL} ${LINUX_INSTALL} ${REDBOOT_INSTALL} ${RDPMON_INSTALL} ${RDIMON_INSTALL} ${IQ80310_INSTALL} ${PID_INSTALL}
|
||||
|
||||
install-crt0:
|
||||
${INSTALL_DATA} ${CRT0} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x
|
||||
|
||||
install-linux:
|
||||
set -e; for x in ${LINUX_CRT0} ${LINUX_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
set -e; for x in ${LINUX_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
|
||||
install-redboot:
|
||||
set -e; for x in ${REDBOOT_CRT0} ${REDBOOT_OBJS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
set -e; for x in ${REDBOOT_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
|
||||
install-rdpmon:
|
||||
set -e; for x in ${RDPMON_CRT0} ${RDPMON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
set -e; for x in ${RDPMON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
|
||||
install-rdimon:
|
||||
set -e; for x in ${RDIMON_CRT0} ${RDIMON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
set -e; for x in ${RDIMON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
|
||||
|
||||
install-pid:
|
||||
set -e; for x in ${PID_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
|
||||
install-iq80310:
|
||||
set -e; for x in ${IQ80310_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
|
||||
|
||||
|
||||
doc:
|
||||
info:
|
||||
install-info:
|
||||
clean-info:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
15
gcc/libgloss/arm/_exit.c
Normal file
15
gcc/libgloss/arm/_exit.c
Normal file
@ -0,0 +1,15 @@
|
||||
#include <_ansi.h>
|
||||
|
||||
int _kill _PARAMS ((int, int));
|
||||
void _exit _PARAMS ((int));
|
||||
|
||||
void
|
||||
_exit (int status)
|
||||
{
|
||||
/* There is only one SWI for both _exit and _kill. For _exit, call
|
||||
the SWI with the second argument set to -1, an invalid value for
|
||||
signum, so that the SWI handler can distinguish the two calls.
|
||||
Note: The RDI implementation of _kill throws away both its
|
||||
arguments. */
|
||||
_kill (status, -1);
|
||||
}
|
25
gcc/libgloss/arm/_kill.c
Normal file
25
gcc/libgloss/arm/_kill.c
Normal file
@ -0,0 +1,25 @@
|
||||
#include <_ansi.h>
|
||||
#include <signal.h>
|
||||
#include "swi.h"
|
||||
|
||||
int _kill _PARAMS ((int, int));
|
||||
|
||||
int
|
||||
_kill (int pid, int sig)
|
||||
{
|
||||
(void) pid; (void) sig;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
/* Note: The pid argument is thrown away. */
|
||||
switch (sig)
|
||||
{
|
||||
case SIGABRT:
|
||||
return do_AngelSWI (AngelSWI_Reason_ReportException,
|
||||
(void *) ADP_Stopped_RunTimeError);
|
||||
default:
|
||||
return do_AngelSWI (AngelSWI_Reason_ReportException,
|
||||
(void *) ADP_Stopped_ApplicationExit);
|
||||
}
|
||||
#else
|
||||
asm ("swi %a0" :: "i" (SWI_Exit));
|
||||
#endif
|
||||
}
|
344
gcc/libgloss/arm/aclocal.m4
vendored
Normal file
344
gcc/libgloss/arm/aclocal.m4
vendored
Normal file
@ -0,0 +1,344 @@
|
||||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
m4_include([../acinclude.m4])
|
62
gcc/libgloss/arm/arm.h
Normal file
62
gcc/libgloss/arm/arm.h
Normal file
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (c) 2011 ARM Ltd
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the company may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _LIBGLOSS_ARM_H
|
||||
#define _LIBGLOSS_ARM_H
|
||||
|
||||
/* __thumb2__ stands for thumb on armva7(A/R/M/EM) architectures,
|
||||
__ARM_ARCH_6M__ stands for armv6-M(thumb only) architecture,
|
||||
__ARM_ARCH_7M__ stands for armv7-M(thumb only) architecture.
|
||||
__ARM_ARCH_7EM__ stands for armv7e-M(thumb only) architecture.
|
||||
There are some macro combinations used many times in libgloss/arm,
|
||||
like (__thumb2__ || (__thumb__ && __ARM_ARCH_6M__)), so factor
|
||||
it out and use THUMB_V7_V6M instead, which stands for thumb on
|
||||
v6-m/v7 arch as the combination does. */
|
||||
#if defined(__thumb2__) || (defined(__thumb__) && defined(__ARM_ARCH_6M__))
|
||||
# define THUMB_V7_V6M
|
||||
#endif
|
||||
|
||||
/* The (__ARM_ARCH_7EM__ || __ARM_ARCH_7M__ || __ARM_ARCH_6M__) combination
|
||||
stands for cortex-M profile architectures, which don't support ARM state.
|
||||
Factor it out and use THUMB_V7M_V6M instead. */
|
||||
#if defined(__ARM_ARCH_7M__) \
|
||||
|| defined(__ARM_ARCH_7EM__) \
|
||||
|| defined(__ARM_ARCH_6M__)
|
||||
# define THUMB_V7M_V6M
|
||||
#endif
|
||||
|
||||
/* Defined if this target supports the BLX Rm instruction. */
|
||||
#if !defined(__ARM_ARCH_2__) \
|
||||
&& !defined(__ARM_ARCH_3__) \
|
||||
&& !defined(__ARM_ARCH_3M__) \
|
||||
&& !defined(__ARM_ARCH_4__) \
|
||||
&& !defined(__ARM_ARCH_4T__)
|
||||
# define HAVE_CALL_INDIRECT
|
||||
#endif
|
||||
|
||||
#endif /* _LIBGLOSS_ARM_H */
|
8
gcc/libgloss/arm/coff-iq80310.specs
Normal file
8
gcc/libgloss/arm/coff-iq80310.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0xA0020000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
%{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
8
gcc/libgloss/arm/coff-pid.specs
Normal file
8
gcc/libgloss/arm/coff-pid.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x10000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
redboot-crt0%O%s redboot-syscalls%O%s
|
||||
|
8
gcc/libgloss/arm/coff-rdimon.specs
Normal file
8
gcc/libgloss/arm/coff-rdimon.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
%(old_link) -lrdimon
|
||||
|
||||
*startfile:
|
||||
rdimon-crt0%O%s
|
||||
|
8
gcc/libgloss/arm/coff-rdpmon.specs
Normal file
8
gcc/libgloss/arm/coff-rdpmon.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
%(old_link) -lrdpmon
|
||||
|
||||
*startfile:
|
||||
rdpmon-crt0%O%s
|
||||
|
54
gcc/libgloss/arm/coff-redboot.ld
Normal file
54
gcc/libgloss/arm/coff-redboot.ld
Normal file
@ -0,0 +1,54 @@
|
||||
OUTPUT_FORMAT("coff-arm-little", "coff-arm-big", "coff-arm-little")
|
||||
SEARCH_DIR(/toolbin/xscale-coff/lib);
|
||||
ENTRY(_start)
|
||||
SECTIONS
|
||||
{
|
||||
/* We start at 0x8000 because gdb assumes it (see FRAME_CHAIN).
|
||||
This is an artifact of the ARM Demon monitor using the bottom 32k
|
||||
as workspace (shared with the FP instruction emulator if
|
||||
present): */
|
||||
.text 0x8000 : {
|
||||
*(.init)
|
||||
*(.text*)
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
*(.rdata)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||
*(.fini)
|
||||
etext = .;
|
||||
_etext = .;
|
||||
}
|
||||
.data 0x40000 + (. & 0xfffc0fff) : {
|
||||
__data_start__ = . ;
|
||||
*(.data*)
|
||||
*(.gcc_exc*)
|
||||
___EH_FRAME_BEGIN__ = . ;
|
||||
*(.eh_fram*)
|
||||
___EH_FRAME_END__ = . ;
|
||||
LONG(0);
|
||||
__data_end__ = . ;
|
||||
edata = .;
|
||||
_edata = .;
|
||||
}
|
||||
.bss SIZEOF(.data) + ADDR(.data) :
|
||||
{
|
||||
__bss_start__ = . ;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_end__ = . ;
|
||||
}
|
||||
end = .;
|
||||
_end = .;
|
||||
__end__ = .;
|
||||
.stab 0 (NOLOAD) :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
.stabstr 0 (NOLOAD) :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
}
|
8
gcc/libgloss/arm/coff-redboot.specs
Normal file
8
gcc/libgloss/arm/coff-redboot.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x20000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
redboot-crt0%O%s redboot-syscalls%O%s
|
||||
|
3770
gcc/libgloss/arm/configure
vendored
Normal file
3770
gcc/libgloss/arm/configure
vendored
Normal file
File diff suppressed because it is too large
Load Diff
82
gcc/libgloss/arm/configure.in
Normal file
82
gcc/libgloss/arm/configure.in
Normal file
@ -0,0 +1,82 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(redboot-crt0.S)
|
||||
|
||||
dnl Support --disable-newlib-supplied-syscalls
|
||||
AC_ARG_ENABLE(newlib-supplied-syscalls,
|
||||
[ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls],
|
||||
[case "${enableval}" in
|
||||
yes) newlib_may_supply_syscalls=yes ;;
|
||||
no) newlib_may_supply_syscalls=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for newlib-supplied-syscalls option) ;;
|
||||
esac], [newlib_may_supply_syscalls=yes])dnl
|
||||
|
||||
if test "x$newlib_may_supply_syscalls" = "xyes"; then
|
||||
BUILD_CRT0_TRUE='#'
|
||||
BUILD_CRT0_FALSE=
|
||||
else
|
||||
BUILD_CRT0_TRUE=
|
||||
BUILD_CRT0_FALSE='#'
|
||||
fi
|
||||
|
||||
AC_SUBST(BUILD_CRT0_TRUE)
|
||||
AC_SUBST(BUILD_CRT0_FALSE)
|
||||
|
||||
if test "$srcdir" = "." ; then
|
||||
if test "${with_target_subdir}" != "." ; then
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../../.."
|
||||
else
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../.."
|
||||
fi
|
||||
else
|
||||
libgloss_topdir="${srcdir}/../.."
|
||||
fi
|
||||
AC_CONFIG_AUX_DIR($libgloss_topdir)
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
LIB_AC_PROG_CC
|
||||
AS=${AS-as}
|
||||
AC_SUBST(AS)
|
||||
AR=${AR-ar}
|
||||
AC_SUBST(AR)
|
||||
LD=${LD-ld}
|
||||
AC_SUBST(LD)
|
||||
AC_PROG_RANLIB
|
||||
LIB_AM_PROG_AS
|
||||
|
||||
case "${target}" in
|
||||
*-*-elf | *-*-eabi)
|
||||
objtype=elf-
|
||||
;;
|
||||
*-*-coff)
|
||||
objtype=coff-
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(objtype)
|
||||
|
||||
host_makefile_frag=${srcdir}/../config/default.mh
|
||||
|
||||
dnl We have to assign the same value to other variables because autoconf
|
||||
dnl doesn't provide a mechanism to substitute a replacement keyword with
|
||||
dnl arbitrary data or pathnames.
|
||||
dnl
|
||||
host_makefile_frag_path=$host_makefile_frag
|
||||
AC_SUBST(host_makefile_frag_path)
|
||||
AC_SUBST_FILE(host_makefile_frag)
|
||||
|
||||
AC_CONFIG_FILES(Makefile,
|
||||
. ${libgloss_topdir}/config-ml.in,
|
||||
srcdir=${srcdir}
|
||||
target=${target}
|
||||
with_multisubdir=${with_multisubdir}
|
||||
ac_configure_args="${ac_configure_args} --enable-multilib"
|
||||
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
libgloss_topdir=${libgloss_topdir}
|
||||
)
|
||||
AC_OUTPUT
|
||||
|
492
gcc/libgloss/arm/crt0.S
Normal file
492
gcc/libgloss/arm/crt0.S
Normal file
@ -0,0 +1,492 @@
|
||||
#include "newlib.h"
|
||||
#include "arm.h"
|
||||
#include "swi.h"
|
||||
|
||||
/* ANSI concatenation macros. */
|
||||
#define CONCAT(a, b) CONCAT2(a, b)
|
||||
#define CONCAT2(a, b) a ## b
|
||||
|
||||
#ifdef __USER_LABEL_PREFIX__
|
||||
#define FUNCTION( name ) CONCAT (__USER_LABEL_PREFIX__, name)
|
||||
#else
|
||||
#error __USER_LABEL_PREFIX is not defined
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_INITFINI_ARRAY
|
||||
#define _init __libc_init_array
|
||||
#define _fini __libc_fini_array
|
||||
#endif
|
||||
|
||||
#if defined(__ARM_EABI__) && defined(__thumb__) && !defined(__thumb2__)
|
||||
/* For Thumb1 we need to force the architecture to be sure that we get the
|
||||
correct attributes on the object file; otherwise the assembler will get
|
||||
confused and mark the object as being v6T2. */
|
||||
#if defined(__ARM_ARCH_4T__)
|
||||
.arch armv4t
|
||||
#elif defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
|
||||
/* Nothing in this object requires higher than v5. */
|
||||
.arch armv5t
|
||||
#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
|
||||
|| defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) \
|
||||
|| defined(__ARM_ARCH_6ZK__)
|
||||
/* Nothing in this object requires higher than v6. */
|
||||
.arch armv6
|
||||
#elif defined(__ARM_ARCH_6M__)
|
||||
#ifdef ARM_RDP_MONITOR
|
||||
/* Object file uses SVC, so mark as v6s-m. */
|
||||
.arch armv6s-m
|
||||
#else
|
||||
.arch armv6-m
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* .text is used instead of .section .text so it works with arm-aout too. */
|
||||
.text
|
||||
.syntax unified
|
||||
#ifdef THUMB_V7_V6M
|
||||
.thumb
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
.thumb_func
|
||||
\name:
|
||||
.endm
|
||||
#else
|
||||
.code 32
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
\name:
|
||||
.endm
|
||||
#endif
|
||||
|
||||
.macro indirect_call reg
|
||||
#ifdef HAVE_CALL_INDIRECT
|
||||
blx \reg
|
||||
#else
|
||||
mov lr, pc
|
||||
mov pc, \reg
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.align 0
|
||||
|
||||
FUNC_START _mainCRTStartup
|
||||
FUNC_START _start
|
||||
FUNC_START start
|
||||
#if defined(__ELF__) && !defined(__USING_SJLJ_EXCEPTIONS__)
|
||||
/* Annotation for EABI unwinding tables. */
|
||||
.fnstart
|
||||
#endif
|
||||
|
||||
/* Start by setting up a stack */
|
||||
#ifdef ARM_RDP_MONITOR
|
||||
/* Issue Demon SWI to read stack info */
|
||||
swi SWI_GetEnv /* Returns command line in r0 */
|
||||
mov sp,r1 /* and the highest memory address in r1 */
|
||||
|
||||
/* stack limit is at end of data */
|
||||
/* allow slop for stack overflow handling and small frames */
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
ldr r0, .LC2
|
||||
adds r0, #128
|
||||
adds r0, #128
|
||||
mov sl, r0
|
||||
#else
|
||||
ldr sl, .LC2
|
||||
add sl, sl, #256
|
||||
#endif
|
||||
#else
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
/* Issue Angel SWI to read stack info */
|
||||
movs r0, #AngelSWI_Reason_HeapInfo
|
||||
adr r1, .LC0 /* point at ptr to 4 words to receive data */
|
||||
#ifdef THUMB_V7M_V6M
|
||||
bkpt AngelSWI
|
||||
#elif defined(__thumb2__)
|
||||
/* We are in thumb mode for startup on armv7 architectures. */
|
||||
AngelSWIAsm AngelSWI
|
||||
#else
|
||||
/* We are always in ARM mode for startup on pre armv7 archs. */
|
||||
AngelSWIAsm AngelSWI_ARM
|
||||
#endif
|
||||
ldr r0, .LC0 /* point at values read */
|
||||
|
||||
ldr r1, [r0, #0]
|
||||
cmp r1, #0
|
||||
bne .LC32
|
||||
/* If the heap base value [r0, #0] is 0 then the heap base is actually
|
||||
at the end of program data (i.e. __end__). See:
|
||||
http://infocenter.arm.com/help/topic/com.arm.doc.dui0471-/Bacbefaa.html
|
||||
for more information. */
|
||||
ldr r1, .LC31
|
||||
str r1, [r0, #0]
|
||||
.LC32:
|
||||
ldr r1, [r0, #8]
|
||||
ldr r2, [r0, #12]
|
||||
/* We skip setting sp/sl if 0 returned from semihosting.
|
||||
- According to semihosting docs, if 0 returned from semihosting,
|
||||
the system was unable to calculate the real value, so it's ok
|
||||
to skip setting sp/sl to 0 here.
|
||||
- Considering M-profile processors, We might want to initialize
|
||||
sp by the first entry of vector table and return 0 to SYS_HEAPINFO
|
||||
semihosting call, which will be skipped here. */
|
||||
cmp r1, #0
|
||||
beq .LC26
|
||||
mov sp, r1
|
||||
.LC26:
|
||||
cmp r2, #0
|
||||
beq .LC27
|
||||
/* allow slop for stack overflow handling and small frames */
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
adds r2, #128
|
||||
adds r2, #128
|
||||
mov sl, r2
|
||||
#else
|
||||
add sl, r2, #256
|
||||
#endif
|
||||
.LC27:
|
||||
#else
|
||||
/* Set up the stack pointer to a fixed value */
|
||||
/* Changes by toralf:
|
||||
- Allow linker script to provide stack via __stack symbol - see
|
||||
defintion of .Lstack
|
||||
- Provide "hooks" that may be used by the application to add
|
||||
custom init code - see .Lhwinit and .Lswinit
|
||||
- Go through all execution modes and set up stack for each of them.
|
||||
Loosely based on init.s from ARM/Motorola example code.
|
||||
Note: Mode switch via CPSR is not allowed once in non-privileged
|
||||
mode, so we take care not to enter "User" to set up its sp,
|
||||
and also skip most operations if already in that mode. */
|
||||
|
||||
ldr r3, .Lstack
|
||||
cmp r3, #0
|
||||
#ifdef __thumb2__
|
||||
it eq
|
||||
#endif
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
bne .LC28
|
||||
ldr r3, .LC0
|
||||
.LC28:
|
||||
#else
|
||||
ldreq r3, .LC0
|
||||
#endif
|
||||
/* Note: This 'mov' is essential when starting in User, and ensures we
|
||||
always get *some* sp value for the initial mode, even if we
|
||||
have somehow missed it below (in which case it gets the same
|
||||
value as FIQ - not ideal, but better than nothing.) */
|
||||
mov sp, r3
|
||||
#ifdef THUMB_V7_V6M
|
||||
/* XXX Fill in stack assignments for interrupt modes. */
|
||||
#else
|
||||
mrs r2, CPSR
|
||||
tst r2, #0x0F /* Test mode bits - in User of all are 0 */
|
||||
beq .LC23 /* "eq" means r2 AND #0x0F is 0 */
|
||||
msr CPSR_c, #0xD1 /* FIRQ mode, interrupts disabled */
|
||||
mov sp, r3
|
||||
sub sl, sp, #0x1000 /* This mode also has its own sl (see below) */
|
||||
|
||||
mov r3, sl
|
||||
msr CPSR_c, #0xD7 /* Abort mode, interrupts disabled */
|
||||
mov sp, r3
|
||||
sub r3, r3, #0x1000
|
||||
|
||||
msr CPSR_c, #0xDB /* Undefined mode, interrupts disabled */
|
||||
mov sp, r3
|
||||
sub r3, r3, #0x1000
|
||||
|
||||
msr CPSR_c, #0xD2 /* IRQ mode, interrupts disabled */
|
||||
mov sp, r3
|
||||
sub r3, r3, #0x2000
|
||||
|
||||
msr CPSR_c, #0xD3 /* Supervisory mode, interrupts disabled */
|
||||
|
||||
mov sp, r3
|
||||
sub r3, r3, #0x8000 /* Min size 32k */
|
||||
bic r3, r3, #0x00FF /* Align with current 64k block */
|
||||
bic r3, r3, #0xFF00
|
||||
|
||||
str r3, [r3, #-4] /* Move value into user mode sp without */
|
||||
ldmdb r3, {sp}^ /* changing modes, via '^' form of ldm */
|
||||
orr r2, r2, #0xC0 /* Back to original mode, presumably SVC, */
|
||||
msr CPSR_c, r2 /* with FIQ/IRQ disable bits forced to 1 */
|
||||
#endif
|
||||
.LC23:
|
||||
/* Setup a default stack-limit in-case the code has been
|
||||
compiled with "-mapcs-stack-check". Hard-wiring this value
|
||||
is not ideal, since there is currently no support for
|
||||
checking that the heap and stack have not collided, or that
|
||||
this default 64k is enough for the program being executed.
|
||||
However, it ensures that this simple crt0 world will not
|
||||
immediately cause an overflow event: */
|
||||
#ifdef __ARM_ARCH_6M__
|
||||
movs r2, #64
|
||||
lsls r2, r2, #10
|
||||
subs r2, r3, r2
|
||||
mov sl, r2
|
||||
#else
|
||||
sub sl, r3, #64 << 10 /* Still assumes 256bytes below sl */
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
/* Zero the memory in the .bss section. */
|
||||
movs a2, #0 /* Second arg: fill value */
|
||||
mov fp, a2 /* Null frame pointer */
|
||||
mov r7, a2 /* Null frame pointer for Thumb */
|
||||
|
||||
ldr a1, .LC1 /* First arg: start of memory block */
|
||||
ldr a3, .LC2
|
||||
subs a3, a3, a1 /* Third arg: length of block */
|
||||
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
/* Enter Thumb mode.... */
|
||||
add a4, pc, #1 /* Get the address of the Thumb block */
|
||||
bx a4 /* Go there and start Thumb decoding */
|
||||
|
||||
.code 16
|
||||
.global __change_mode
|
||||
.thumb_func
|
||||
__change_mode:
|
||||
#endif
|
||||
|
||||
bl FUNCTION (memset)
|
||||
#if !defined (ARM_RDP_MONITOR) && !defined (ARM_RDI_MONITOR)
|
||||
/* Changes by toralf: Taken from libgloss/m68k/crt0.S
|
||||
* initialize target specific stuff. Only execute these
|
||||
* functions it they exist.
|
||||
*/
|
||||
ldr r3, .Lhwinit
|
||||
cmp r3, #0
|
||||
beq .LC24
|
||||
indirect_call r3
|
||||
.LC24:
|
||||
ldr r3, .Lswinit
|
||||
cmp r3, #0
|
||||
beq .LC25
|
||||
indirect_call r3
|
||||
|
||||
.LC25:
|
||||
movs r0, #0 /* no arguments */
|
||||
movs r1, #0 /* no argv either */
|
||||
#else
|
||||
/* Need to set up standard file handles */
|
||||
bl FUNCTION (initialise_monitor_handles)
|
||||
|
||||
#ifdef ARM_RDP_MONITOR
|
||||
swi SWI_GetEnv /* sets r0 to point to the command line */
|
||||
movs r1, r0
|
||||
#else
|
||||
movs r0, #AngelSWI_Reason_GetCmdLine
|
||||
adr r1, .LC30 /* Space for command line */
|
||||
AngelSWIAsm AngelSWI
|
||||
ldr r1, .LC30
|
||||
#endif
|
||||
/* Parse string at r1 */
|
||||
movs r0, #0 /* count of arguments so far */
|
||||
/* Push a NULL argument onto the end of the list. */
|
||||
#ifdef __thumb__
|
||||
push {r0}
|
||||
#else
|
||||
stmfd sp!, {r0}
|
||||
#endif
|
||||
.LC10:
|
||||
/* Skip leading blanks */
|
||||
#ifdef __thumb__
|
||||
ldrb r3, [r1]
|
||||
adds r1, #1
|
||||
#else
|
||||
ldrb r3, [r1], #1
|
||||
#endif
|
||||
cmp r3, #0
|
||||
beq .LC12
|
||||
cmp r3, #' '
|
||||
beq .LC10
|
||||
|
||||
/* See whether we are scanning a string */
|
||||
cmp r3, #'"'
|
||||
#ifdef __thumb__
|
||||
beq .LC20
|
||||
cmp r3, #'\''
|
||||
bne .LC21
|
||||
.LC20:
|
||||
movs r2, r3
|
||||
b .LC22
|
||||
|
||||
.LC21:
|
||||
movs r2, #' ' /* terminator type */
|
||||
subs r1, r1, #1 /* adjust back to point at start char */
|
||||
.LC22:
|
||||
#else
|
||||
cmpne r3, #'\''
|
||||
moveq r2, r3
|
||||
movne r2, #' ' /* terminator type */
|
||||
subne r1, r1, #1 /* adjust back to point at start char */
|
||||
#endif
|
||||
|
||||
/* Stack a pointer to the current argument */
|
||||
#ifdef __thumb__
|
||||
push {r1}
|
||||
#else
|
||||
stmfd sp!, {r1}
|
||||
#endif
|
||||
adds r0, r0, #1
|
||||
.LC11:
|
||||
#ifdef __thumb__
|
||||
ldrb r3, [r1]
|
||||
adds r1, #1
|
||||
#else
|
||||
ldrb r3, [r1], #1
|
||||
#endif
|
||||
cmp r3, #0
|
||||
beq .LC12
|
||||
cmp r2, r3 /* reached terminator? */
|
||||
bne .LC11
|
||||
movs r2, #0
|
||||
subs r3, r1, #1
|
||||
strb r2, [r3] /* terminate the arg string */
|
||||
b .LC10
|
||||
|
||||
.LC12:
|
||||
mov r1, sp /* point at stacked arg pointers */
|
||||
/* We've now got the stacked args in order reverse the */
|
||||
#ifdef __thumb__
|
||||
movs r2, r0
|
||||
lsls r2, #2
|
||||
add r2, sp
|
||||
mov r3, sp
|
||||
.LC15: cmp r2, r3
|
||||
bls .LC14
|
||||
subs r2, #4
|
||||
ldr r4, [r2]
|
||||
ldr r5, [r3]
|
||||
str r5, [r2]
|
||||
str r4, [r3]
|
||||
adds r3, #4
|
||||
b .LC15
|
||||
.LC14:
|
||||
/* Ensure doubleword stack alignment. */
|
||||
mov r4, sp
|
||||
movs r5, #7
|
||||
bics r4, r5
|
||||
mov sp, r4
|
||||
#else
|
||||
add r2, sp, r0, LSL #2 /* End of args */
|
||||
mov r3, sp /* Start of args */
|
||||
.LC13: cmp r2, r3
|
||||
ldrhi r4,[r2, #-4] /* Reverse ends of list */
|
||||
ldrhi r5, [r3]
|
||||
strhi r5, [r2, #-4]!
|
||||
strhi r4, [r3], #4
|
||||
bhi .LC13
|
||||
/* Ensure doubleword stack alignment. */
|
||||
bic sp, sp, #7
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __USES_INITFINI__
|
||||
/* Some arm/elf targets use the .init and .fini sections
|
||||
to create constructors and destructors, and for these
|
||||
targets we need to call the _init function and arrange
|
||||
for _fini to be called at program exit. */
|
||||
movs r4, r0
|
||||
movs r5, r1
|
||||
ldr r0, .Lfini
|
||||
bl FUNCTION (atexit)
|
||||
bl FUNCTION (_init)
|
||||
movs r0, r4
|
||||
movs r1, r5
|
||||
#endif
|
||||
bl FUNCTION (main)
|
||||
|
||||
bl FUNCTION (exit) /* Should not return. */
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
/* Come out of Thumb mode. This code should be redundant. */
|
||||
|
||||
mov a4, pc
|
||||
bx a4
|
||||
|
||||
.code 32
|
||||
.global change_back
|
||||
change_back:
|
||||
/* Halt the execution. This code should never be executed. */
|
||||
/* With no debug monitor, this probably aborts (eventually).
|
||||
With a Demon debug monitor, this halts cleanly.
|
||||
With an Angel debug monitor, this will report 'Unknown SWI'. */
|
||||
swi SWI_Exit
|
||||
#endif
|
||||
|
||||
/* For Thumb, constants must be after the code since only
|
||||
positive offsets are supported for PC relative addresses. */
|
||||
|
||||
.align 0
|
||||
.LC0:
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
.word HeapBase
|
||||
#else
|
||||
#ifndef ARM_RDP_MONITOR
|
||||
/* Changes by toralf: Provide alternative "stack" variable whose value
|
||||
may be defined externally; .Lstack will be used instead of .LC0 if
|
||||
it points to a non-0 value. Also set up references to "hooks" that
|
||||
may be used by the application to provide additional init code. */
|
||||
|
||||
#ifdef __pe__
|
||||
.word 0x800000
|
||||
#else
|
||||
.word 0x80000 /* Top of RAM on the PIE board. */
|
||||
#endif
|
||||
.Lstack:
|
||||
.word __stack
|
||||
.Lhwinit:
|
||||
.word FUNCTION (hardware_init_hook)
|
||||
.Lswinit:
|
||||
.word FUNCTION (software_init_hook)
|
||||
|
||||
/* Set up defaults for the above variables in the form of weak symbols
|
||||
- so that application will link correctly, and get value 0 in
|
||||
runtime (meaning "ignore setting") for the variables, when the user
|
||||
does not provide the symbols. (The linker uses a weak symbol if,
|
||||
and only if, a normal version of the same symbol isn't provided
|
||||
e.g. by a linker script or another object file.) */
|
||||
|
||||
.weak __stack
|
||||
.weak FUNCTION (hardware_init_hook)
|
||||
.weak FUNCTION (software_init_hook)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#if defined(__ELF__) && !defined(__USING_SJLJ_EXCEPTIONS__)
|
||||
/* Protect against unhandled exceptions. */
|
||||
.cantunwind
|
||||
.fnend
|
||||
#endif
|
||||
.LC1:
|
||||
.word __bss_start__
|
||||
.LC2:
|
||||
.word __bss_end__
|
||||
#ifdef __USES_INITFINI__
|
||||
.Lfini:
|
||||
.word FUNCTION(_fini)
|
||||
#endif
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
.LC30:
|
||||
.word CommandLine
|
||||
.word 255
|
||||
.LC31:
|
||||
.word __end__
|
||||
|
||||
/* Workspace for Angel calls. */
|
||||
.data
|
||||
/* Data returned by monitor SWI. */
|
||||
.global __stack_base__
|
||||
HeapBase: .word 0
|
||||
HeapLimit: .word 0
|
||||
__stack_base__: .word 0
|
||||
StackLimit: .word 0
|
||||
CommandLine: .space 256,0 /* Maximum length of 255 chars handled. */
|
||||
#endif
|
||||
|
||||
#ifdef __pe__
|
||||
.section .idata$3
|
||||
.long 0,0,0,0,0,0,0,0
|
||||
#endif
|
8
gcc/libgloss/arm/elf-iq80310.specs
Normal file
8
gcc/libgloss/arm/elf-iq80310.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0xA0020000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
11
gcc/libgloss/arm/elf-linux.specs
Normal file
11
gcc/libgloss/arm/elf-linux.specs
Normal file
@ -0,0 +1,11 @@
|
||||
%rename lib libc
|
||||
|
||||
*libgloss:
|
||||
-lgloss-linux
|
||||
|
||||
*lib:
|
||||
%(libc) %(libgloss)
|
||||
|
||||
*startfile:
|
||||
linux-crt0%O%s crti%O%s crtbegin%O%s
|
||||
|
8
gcc/libgloss/arm/elf-pid.specs
Normal file
8
gcc/libgloss/arm/elf-pid.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x10000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
8
gcc/libgloss/arm/elf-rdimon.specs
Normal file
8
gcc/libgloss/arm/elf-rdimon.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
%(old_link) -lrdimon
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:rdimon-crt0%O%s} %{pg:rdimon-crt0%O%s}
|
||||
|
8
gcc/libgloss/arm/elf-rdpmon.specs
Normal file
8
gcc/libgloss/arm/elf-rdpmon.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
%(old_link) -lrdpmon
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:rdpmon-crt0%O%s} %{pg:rdpmon-crt0%O%s}
|
||||
|
220
gcc/libgloss/arm/elf-redboot.ld
Normal file
220
gcc/libgloss/arm/elf-redboot.ld
Normal file
@ -0,0 +1,220 @@
|
||||
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
|
||||
"elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(_start)
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
. = 0x00020000;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.init : { *(.rel.init) }
|
||||
.rela.init : { *(.rela.init) }
|
||||
.rel.text :
|
||||
{
|
||||
*(.rel.text)
|
||||
*(.rel.text.*)
|
||||
*(.rel.gnu.linkonce.t*)
|
||||
}
|
||||
.rela.text :
|
||||
{
|
||||
*(.rela.text)
|
||||
*(.rela.text.*)
|
||||
*(.rela.gnu.linkonce.t*)
|
||||
}
|
||||
.rel.fini : { *(.rel.fini) }
|
||||
.rela.fini : { *(.rela.fini) }
|
||||
.rel.rodata :
|
||||
{
|
||||
*(.rel.rodata)
|
||||
*(.rel.rodata.*)
|
||||
*(.rel.gnu.linkonce.r*)
|
||||
}
|
||||
.rela.rodata :
|
||||
{
|
||||
*(.rela.rodata)
|
||||
*(.rela.rodata.*)
|
||||
*(.rela.gnu.linkonce.r*)
|
||||
}
|
||||
.rel.data :
|
||||
{
|
||||
*(.rel.data)
|
||||
*(.rel.data.*)
|
||||
*(.rel.gnu.linkonce.d*)
|
||||
}
|
||||
.rela.data :
|
||||
{
|
||||
*(.rela.data)
|
||||
*(.rela.data.*)
|
||||
*(.rela.gnu.linkonce.d*)
|
||||
}
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.sdata :
|
||||
{
|
||||
*(.rel.sdata)
|
||||
*(.rel.sdata.*)
|
||||
*(.rel.gnu.linkonce.s*)
|
||||
}
|
||||
.rela.sdata :
|
||||
{
|
||||
*(.rela.sdata)
|
||||
*(.rela.sdata.*)
|
||||
*(.rela.gnu.linkonce.s*)
|
||||
}
|
||||
.rel.sbss : { *(.rel.sbss) }
|
||||
.rela.sbss : { *(.rela.sbss) }
|
||||
.rel.bss : { *(.rel.bss) }
|
||||
.rela.bss : { *(.rela.bss) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.plt : { *(.plt) }
|
||||
.text :
|
||||
{
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
*(.stub)
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
*(.gnu.linkonce.t*)
|
||||
*(.glue_7t) *(.glue_7)
|
||||
} =0
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} =0
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} =0
|
||||
.rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) }
|
||||
.rodata1 : { *(.rodata1) }
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) }
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(256) + (. & (256 - 1));
|
||||
.data :
|
||||
{
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
*(.gnu.linkonce.d*)
|
||||
SORT(CONSTRUCTORS)
|
||||
}
|
||||
.data1 : { *(.data1) }
|
||||
.eh_frame : { KEEP (*(.eh_frame)) }
|
||||
.gcc_except_table : { *(.gcc_except_table) }
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
from the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
}
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
}
|
||||
.jcr : { KEEP (*(.jcr)) }
|
||||
.got : { *(.got.plt) *(.got) }
|
||||
.dynamic : { *(.dynamic) }
|
||||
/* We want the small data sections together, so single-instruction offsets
|
||||
can access them all, and initialized data all before uninitialized, so
|
||||
we can shorten the on-disk segment size. */
|
||||
.sdata :
|
||||
{
|
||||
*(.sdata)
|
||||
*(.sdata.*)
|
||||
*(.gnu.linkonce.s.*)
|
||||
}
|
||||
_edata = .;
|
||||
PROVIDE (edata = .);
|
||||
__bss_start = .;
|
||||
__bss_start__ = .;
|
||||
.sbss :
|
||||
{
|
||||
*(.dynsbss)
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
*(.scommon)
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(COMMON)
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections. */
|
||||
. = ALIGN(32 / 8);
|
||||
}
|
||||
. = ALIGN(32 / 8);
|
||||
_end = .;
|
||||
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
|
||||
PROVIDE (end = .);
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
.debug_ranges 0 : { *(.debug_ranges) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
.stack 0x80000 : { _stack = .; *(.stack) }
|
||||
/* These must appear regardless of . */
|
||||
}
|
8
gcc/libgloss/arm/elf-redboot.specs
Normal file
8
gcc/libgloss/arm/elf-redboot.specs
Normal file
@ -0,0 +1,8 @@
|
||||
%rename link old_link
|
||||
|
||||
*link:
|
||||
-T redboot.ld%s -Ttext 0x20000 %(old_link)
|
||||
|
||||
*startfile:
|
||||
crti%O%s crtbegin%O%s %{!pg:redboot-crt0%O%s} %{pg:redboot-crt0%O%s} redboot-syscalls%O%s
|
||||
|
62
gcc/libgloss/arm/libcfunc.c
Normal file
62
gcc/libgloss/arm/libcfunc.c
Normal file
@ -0,0 +1,62 @@
|
||||
/* Support files for GNU libc. Files in the C namespace go here.
|
||||
Files in the system namespace (ie those that start with an underscore)
|
||||
go in syscalls.c.
|
||||
|
||||
Note: These functions are in a seperate file so that OS providers can
|
||||
overrride the system call stubs (defined in syscalls.c) without having
|
||||
to provide libc funcitons as well. */
|
||||
|
||||
#include "swi.h"
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
unsigned __attribute__((weak))
|
||||
alarm (unsigned seconds)
|
||||
{
|
||||
(void)seconds;
|
||||
return 0;
|
||||
}
|
||||
|
||||
clock_t _clock(void);
|
||||
clock_t __attribute__((weak))
|
||||
clock(void)
|
||||
{
|
||||
return _clock();
|
||||
}
|
||||
|
||||
int _isatty(int fildes);
|
||||
int __attribute__((weak))
|
||||
isatty(int fildes)
|
||||
{
|
||||
return _isatty(fildes);
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
pause(void)
|
||||
{
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
|
||||
unsigned __attribute__((weak))
|
||||
sleep(unsigned seconds)
|
||||
{
|
||||
clock_t t0 = _clock();
|
||||
clock_t dt = seconds * CLOCKS_PER_SEC;
|
||||
|
||||
while (_clock() - t0 < dt);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
usleep(useconds_t useconds)
|
||||
{
|
||||
clock_t t0 = _clock();
|
||||
clock_t dt = useconds / (1000000/CLOCKS_PER_SEC);
|
||||
|
||||
while (_clock() - t0 < dt);
|
||||
return 0;
|
||||
}
|
40
gcc/libgloss/arm/linux-crt0.c
Normal file
40
gcc/libgloss/arm/linux-crt0.c
Normal file
@ -0,0 +1,40 @@
|
||||
/** Linux startup code for the ARM processor.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>.
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include "arm.h"
|
||||
|
||||
static int _main(int argc, char *argv[]) __attribute__((noreturn));
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
asm("\n"
|
||||
".code 32\n"
|
||||
".global _start\n"
|
||||
".type _start, %function\n"
|
||||
"_start:\n"
|
||||
"\tadr r0, _start_thumb+1\n"
|
||||
"\tbx r0\n"
|
||||
".size _start, .-_start\n");
|
||||
|
||||
__attribute__((naked, used))
|
||||
static void _start_thumb(void)
|
||||
#else
|
||||
__attribute__((naked))
|
||||
void _start(void)
|
||||
#endif
|
||||
{
|
||||
register int *sp asm("sp");
|
||||
_main(*sp, (char **)(sp + 1));
|
||||
}
|
||||
|
||||
static int _main(int argc, char *argv[])
|
||||
{
|
||||
environ = argv + argc + 1;
|
||||
exit(main(argc, argv, environ));
|
||||
}
|
318
gcc/libgloss/arm/linux-syscall.h
Normal file
318
gcc/libgloss/arm/linux-syscall.h
Normal file
@ -0,0 +1,318 @@
|
||||
/** Linux system call numbers for the ARM processor.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#ifndef _LIBGLOSS_ARM_LINUX_UNISTD_H
|
||||
#define _LIBGLOSS_ARM_LINUX_UNISTD_H
|
||||
|
||||
#if __thumb__
|
||||
# define SYS_BASE 0
|
||||
#else
|
||||
# define SYS_BASE 0x900000
|
||||
#endif
|
||||
|
||||
#define SYS_restart_syscall (SYS_BASE+ 0)
|
||||
#define SYS_exit (SYS_BASE+ 1)
|
||||
#define SYS_fork (SYS_BASE+ 2)
|
||||
#define SYS_read (SYS_BASE+ 3)
|
||||
#define SYS_write (SYS_BASE+ 4)
|
||||
#define SYS_open (SYS_BASE+ 5)
|
||||
#define SYS_close (SYS_BASE+ 6)
|
||||
/* SYS_waitpid was 7 */
|
||||
#define SYS_creat (SYS_BASE+ 8)
|
||||
#define SYS_link (SYS_BASE+ 9)
|
||||
#define SYS_unlink (SYS_BASE+ 10)
|
||||
#define SYS_execve (SYS_BASE+ 11)
|
||||
#define SYS_chdir (SYS_BASE+ 12)
|
||||
#define SYS_time (SYS_BASE+ 13)
|
||||
#define SYS_mknod (SYS_BASE+ 14)
|
||||
#define SYS_chmod (SYS_BASE+ 15)
|
||||
#define SYS_lchown (SYS_BASE+ 16)
|
||||
/* SYS_break was 17 */
|
||||
/* SYS_stat was 18 */
|
||||
#define SYS_lseek (SYS_BASE+ 19)
|
||||
#define SYS_getpid (SYS_BASE+ 20)
|
||||
#define SYS_mount (SYS_BASE+ 21)
|
||||
#define SYS_umount (SYS_BASE+ 22)
|
||||
#define SYS_setuid (SYS_BASE+ 23)
|
||||
#define SYS_getuid (SYS_BASE+ 24)
|
||||
#define SYS_stime (SYS_BASE+ 25)
|
||||
#define SYS_ptrace (SYS_BASE+ 26)
|
||||
#define SYS_alarm (SYS_BASE+ 27)
|
||||
/* SYS_fstat was 28 */
|
||||
#define SYS_pause (SYS_BASE+ 29)
|
||||
#define SYS_utime (SYS_BASE+ 30)
|
||||
/* SYS_stty was 31 */
|
||||
/* SYS_gtty was 32 */
|
||||
#define SYS_access (SYS_BASE+ 33)
|
||||
#define SYS_nice (SYS_BASE+ 34)
|
||||
/* SYS_ftime was 35 */
|
||||
#define SYS_sync (SYS_BASE+ 36)
|
||||
#define SYS_kill (SYS_BASE+ 37)
|
||||
#define SYS_rename (SYS_BASE+ 38)
|
||||
#define SYS_mkdir (SYS_BASE+ 39)
|
||||
#define SYS_rmdir (SYS_BASE+ 40)
|
||||
#define SYS_dup (SYS_BASE+ 41)
|
||||
#define SYS_pipe (SYS_BASE+ 42)
|
||||
#define SYS_times (SYS_BASE+ 43)
|
||||
/* SYS_prof was 44 */
|
||||
#define SYS_brk (SYS_BASE+ 45)
|
||||
#define SYS_setgid (SYS_BASE+ 46)
|
||||
#define SYS_getgid (SYS_BASE+ 47)
|
||||
/* SYS_signal was 48 */
|
||||
#define SYS_geteuid (SYS_BASE+ 49)
|
||||
#define SYS_getegid (SYS_BASE+ 50)
|
||||
#define SYS_acct (SYS_BASE+ 51)
|
||||
#define SYS_umount2 (SYS_BASE+ 52)
|
||||
/* SYS_lock was 53 */
|
||||
#define SYS_ioctl (SYS_BASE+ 54)
|
||||
#define SYS_fcntl (SYS_BASE+ 55)
|
||||
/* SYS_mpx was 56 */
|
||||
#define SYS_setpgid (SYS_BASE+ 57)
|
||||
/* SYS_ulimit was 58 */
|
||||
/* SYS_olduname was 59 */
|
||||
#define SYS_umask (SYS_BASE+ 60)
|
||||
#define SYS_chroot (SYS_BASE+ 61)
|
||||
#define SYS_ustat (SYS_BASE+ 62)
|
||||
#define SYS_dup2 (SYS_BASE+ 63)
|
||||
#define SYS_getppid (SYS_BASE+ 64)
|
||||
#define SYS_getpgrp (SYS_BASE+ 65)
|
||||
#define SYS_setsid (SYS_BASE+ 66)
|
||||
#define SYS_sigaction (SYS_BASE+ 67)
|
||||
/* SYS_sgetmask was 68 */
|
||||
/* SYS_ssetmask was 69 */
|
||||
#define SYS_setreuid (SYS_BASE+ 70)
|
||||
#define SYS_setregid (SYS_BASE+ 71)
|
||||
#define SYS_sigsuspend (SYS_BASE+ 72)
|
||||
#define SYS_sigpending (SYS_BASE+ 73)
|
||||
#define SYS_sethostname (SYS_BASE+ 74)
|
||||
#define SYS_setrlimit (SYS_BASE+ 75)
|
||||
#define SYS_getrlimit (SYS_BASE+ 76)
|
||||
#define SYS_getrusage (SYS_BASE+ 77)
|
||||
#define SYS_gettimeofday (SYS_BASE+ 78)
|
||||
#define SYS_settimeofday (SYS_BASE+ 79)
|
||||
#define SYS_getgroups (SYS_BASE+ 80)
|
||||
#define SYS_setgroups (SYS_BASE+ 81)
|
||||
#define SYS_select (SYS_BASE+ 82)
|
||||
#define SYS_symlink (SYS_BASE+ 83)
|
||||
/* SYS_lstat was 84 */
|
||||
#define SYS_readlink (SYS_BASE+ 85)
|
||||
#define SYS_uselib (SYS_BASE+ 86)
|
||||
#define SYS_swapon (SYS_BASE+ 87)
|
||||
#define SYS_reboot (SYS_BASE+ 88)
|
||||
#define SYS_readdir (SYS_BASE+ 89)
|
||||
#define SYS_mmap (SYS_BASE+ 90)
|
||||
#define SYS_munmap (SYS_BASE+ 91)
|
||||
#define SYS_truncate (SYS_BASE+ 92)
|
||||
#define SYS_ftruncate (SYS_BASE+ 93)
|
||||
#define SYS_fchmod (SYS_BASE+ 94)
|
||||
#define SYS_fchown (SYS_BASE+ 95)
|
||||
#define SYS_getpriority (SYS_BASE+ 96)
|
||||
#define SYS_setpriority (SYS_BASE+ 97)
|
||||
/* SYS_profil was 98 */
|
||||
#define SYS_statfs (SYS_BASE+ 99)
|
||||
#define SYS_fstatfs (SYS_BASE+100)
|
||||
/* SYS_ioperm was 101 */
|
||||
#define SYS_socketcall (SYS_BASE+102)
|
||||
#define SYS_syslog (SYS_BASE+103)
|
||||
#define SYS_setitimer (SYS_BASE+104)
|
||||
#define SYS_getitimer (SYS_BASE+105)
|
||||
#define SYS_stat (SYS_BASE+106)
|
||||
#define SYS_lstat (SYS_BASE+107)
|
||||
#define SYS_fstat (SYS_BASE+108)
|
||||
/* SYS_uname was 109 */
|
||||
/* SYS_iopl was 110 */
|
||||
#define SYS_vhangup (SYS_BASE+111)
|
||||
/* SYS_idle was 112 */
|
||||
#define SYS_syscall (SYS_BASE+113)
|
||||
#define SYS_wait4 (SYS_BASE+114)
|
||||
#define SYS_swapoff (SYS_BASE+115)
|
||||
#define SYS_sysinfo (SYS_BASE+116)
|
||||
#define SYS_ipc (SYS_BASE+117)
|
||||
#define SYS_fsync (SYS_BASE+118)
|
||||
#define SYS_sigreturn (SYS_BASE+119)
|
||||
#define SYS_clone (SYS_BASE+120)
|
||||
#define SYS_setdomainname (SYS_BASE+121)
|
||||
#define SYS_uname (SYS_BASE+122)
|
||||
/* SYS_modify_ldt was 123 */
|
||||
#define SYS_adjtimex (SYS_BASE+124)
|
||||
#define SYS_mprotect (SYS_BASE+125)
|
||||
#define SYS_sigprocmask (SYS_BASE+126)
|
||||
/* SYS_create_module was 127 */
|
||||
#define SYS_init_module (SYS_BASE+128)
|
||||
#define SYS_delete_module (SYS_BASE+129)
|
||||
/* SYS_get_kernel_syms was 130 */
|
||||
#define SYS_quotactl (SYS_BASE+131)
|
||||
#define SYS_getpgid (SYS_BASE+132)
|
||||
#define SYS_fchdir (SYS_BASE+133)
|
||||
#define SYS_bdflush (SYS_BASE+134)
|
||||
#define SYS_sysfs (SYS_BASE+135)
|
||||
#define SYS_personality (SYS_BASE+136)
|
||||
/* SYS_afs_syscall was 137 */
|
||||
#define SYS_setfsuid (SYS_BASE+138)
|
||||
#define SYS_setfsgid (SYS_BASE+139)
|
||||
#define SYS__llseek (SYS_BASE+140)
|
||||
#define SYS_getdents (SYS_BASE+141)
|
||||
#define SYS__newselect (SYS_BASE+142)
|
||||
#define SYS_flock (SYS_BASE+143)
|
||||
#define SYS_msync (SYS_BASE+144)
|
||||
#define SYS_readv (SYS_BASE+145)
|
||||
#define SYS_writev (SYS_BASE+146)
|
||||
#define SYS_getsid (SYS_BASE+147)
|
||||
#define SYS_fdatasync (SYS_BASE+148)
|
||||
#define SYS__sysctl (SYS_BASE+149)
|
||||
#define SYS_mlock (SYS_BASE+150)
|
||||
#define SYS_munlock (SYS_BASE+151)
|
||||
#define SYS_mlockall (SYS_BASE+152)
|
||||
#define SYS_munlockall (SYS_BASE+153)
|
||||
#define SYS_sched_setparam (SYS_BASE+154)
|
||||
#define SYS_sched_getparam (SYS_BASE+155)
|
||||
#define SYS_sched_setscheduler (SYS_BASE+156)
|
||||
#define SYS_sched_getscheduler (SYS_BASE+157)
|
||||
#define SYS_sched_yield (SYS_BASE+158)
|
||||
#define SYS_sched_get_priority_max (SYS_BASE+159)
|
||||
#define SYS_sched_get_priority_min (SYS_BASE+160)
|
||||
#define SYS_sched_rr_get_interval (SYS_BASE+161)
|
||||
#define SYS_nanosleep (SYS_BASE+162)
|
||||
#define SYS_mremap (SYS_BASE+163)
|
||||
#define SYS_setresuid (SYS_BASE+164)
|
||||
#define SYS_getresuid (SYS_BASE+165)
|
||||
/* SYS_vm86 was 166 */
|
||||
/* SYS_query_module was 167 */
|
||||
#define SYS_poll (SYS_BASE+168)
|
||||
#define SYS_nfsservctl (SYS_BASE+169)
|
||||
#define SYS_setresgid (SYS_BASE+170)
|
||||
#define SYS_getresgid (SYS_BASE+171)
|
||||
#define SYS_prctl (SYS_BASE+172)
|
||||
#define SYS_rt_sigreturn (SYS_BASE+173)
|
||||
#define SYS_rt_sigaction (SYS_BASE+174)
|
||||
#define SYS_rt_sigprocmask (SYS_BASE+175)
|
||||
#define SYS_rt_sigpending (SYS_BASE+176)
|
||||
#define SYS_rt_sigtimedwait (SYS_BASE+177)
|
||||
#define SYS_rt_sigqueueinfo (SYS_BASE+178)
|
||||
#define SYS_rt_sigsuspend (SYS_BASE+179)
|
||||
#define SYS_pread64 (SYS_BASE+180)
|
||||
#define SYS_pwrite64 (SYS_BASE+181)
|
||||
#define SYS_chown (SYS_BASE+182)
|
||||
#define SYS_getcwd (SYS_BASE+183)
|
||||
#define SYS_capget (SYS_BASE+184)
|
||||
#define SYS_capset (SYS_BASE+185)
|
||||
#define SYS_sigaltstack (SYS_BASE+186)
|
||||
#define SYS_sendfile (SYS_BASE+187)
|
||||
/* reserved 188 */
|
||||
/* reserved 189 */
|
||||
#define SYS_vfork (SYS_BASE+190)
|
||||
#define SYS_ugetrlimit (SYS_BASE+191)
|
||||
#define SYS_mmap2 (SYS_BASE+192)
|
||||
#define SYS_truncate64 (SYS_BASE+193)
|
||||
#define SYS_ftruncate64 (SYS_BASE+194)
|
||||
#define SYS_stat64 (SYS_BASE+195)
|
||||
#define SYS_lstat64 (SYS_BASE+196)
|
||||
#define SYS_fstat64 (SYS_BASE+197)
|
||||
#define SYS_lchown32 (SYS_BASE+198)
|
||||
#define SYS_getuid32 (SYS_BASE+199)
|
||||
#define SYS_getgid32 (SYS_BASE+200)
|
||||
#define SYS_geteuid32 (SYS_BASE+201)
|
||||
#define SYS_getegid32 (SYS_BASE+202)
|
||||
#define SYS_setreuid32 (SYS_BASE+203)
|
||||
#define SYS_setregid32 (SYS_BASE+204)
|
||||
#define SYS_getgroups32 (SYS_BASE+205)
|
||||
#define SYS_setgroups32 (SYS_BASE+206)
|
||||
#define SYS_fchown32 (SYS_BASE+207)
|
||||
#define SYS_setresuid32 (SYS_BASE+208)
|
||||
#define SYS_getresuid32 (SYS_BASE+209)
|
||||
#define SYS_setresgid32 (SYS_BASE+210)
|
||||
#define SYS_getresgid32 (SYS_BASE+211)
|
||||
#define SYS_chown32 (SYS_BASE+212)
|
||||
#define SYS_setuid32 (SYS_BASE+213)
|
||||
#define SYS_setgid32 (SYS_BASE+214)
|
||||
#define SYS_setfsuid32 (SYS_BASE+215)
|
||||
#define SYS_setfsgid32 (SYS_BASE+216)
|
||||
#define SYS_getdents64 (SYS_BASE+217)
|
||||
#define SYS_pivot_root (SYS_BASE+218)
|
||||
#define SYS_mincore (SYS_BASE+219)
|
||||
#define SYS_madvise (SYS_BASE+220)
|
||||
#define SYS_fcntl64 (SYS_BASE+221)
|
||||
/* SYS_tux reserved 222 */
|
||||
/* unused 223 */
|
||||
#define SYS_gettid (SYS_BASE+224)
|
||||
#define SYS_readahead (SYS_BASE+225)
|
||||
#define SYS_setxattr (SYS_BASE+226)
|
||||
#define SYS_lsetxattr (SYS_BASE+227)
|
||||
#define SYS_fsetxattr (SYS_BASE+228)
|
||||
#define SYS_getxattr (SYS_BASE+229)
|
||||
#define SYS_lgetxattr (SYS_BASE+230)
|
||||
#define SYS_fgetxattr (SYS_BASE+231)
|
||||
#define SYS_listxattr (SYS_BASE+232)
|
||||
#define SYS_llistxattr (SYS_BASE+233)
|
||||
#define SYS_flistxattr (SYS_BASE+234)
|
||||
#define SYS_removexattr (SYS_BASE+235)
|
||||
#define SYS_lremovexattr (SYS_BASE+236)
|
||||
#define SYS_fremovexattr (SYS_BASE+237)
|
||||
#define SYS_tkill (SYS_BASE+238)
|
||||
#define SYS_sendfile64 (SYS_BASE+239)
|
||||
#define SYS_futex (SYS_BASE+240)
|
||||
#define SYS_sched_setaffinity (SYS_BASE+241)
|
||||
#define SYS_sched_getaffinity (SYS_BASE+242)
|
||||
#define SYS_io_setup (SYS_BASE+243)
|
||||
#define SYS_io_destroy (SYS_BASE+244)
|
||||
#define SYS_io_getevents (SYS_BASE+245)
|
||||
#define SYS_io_submit (SYS_BASE+246)
|
||||
#define SYS_io_cancel (SYS_BASE+247)
|
||||
#define SYS_exit_group (SYS_BASE+248)
|
||||
#define SYS_lookup_dcookie (SYS_BASE+249)
|
||||
#define SYS_epoll_create (SYS_BASE+250)
|
||||
#define SYS_epoll_ctl (SYS_BASE+251)
|
||||
#define SYS_epoll_wait (SYS_BASE+252)
|
||||
#define SYS_remap_file_pages (SYS_BASE+253)
|
||||
/* SYS_set_thread_area reserved 254 */
|
||||
/* SYS_get_thread_area reserved 255 */
|
||||
#define SYS_set_tid_address (SYS_BASE+256)
|
||||
#define SYS_timer_create (SYS_BASE+257)
|
||||
#define SYS_timer_settime (SYS_BASE+258)
|
||||
#define SYS_timer_gettime (SYS_BASE+259)
|
||||
#define SYS_timer_getoverrun (SYS_BASE+260)
|
||||
#define SYS_timer_delete (SYS_BASE+261)
|
||||
#define SYS_clock_settime (SYS_BASE+262)
|
||||
#define SYS_clock_gettime (SYS_BASE+263)
|
||||
#define SYS_clock_getres (SYS_BASE+264)
|
||||
#define SYS_clock_nanosleep (SYS_BASE+265)
|
||||
#define SYS_statfs64 (SYS_BASE+266)
|
||||
#define SYS_fstatfs64 (SYS_BASE+267)
|
||||
#define SYS_tgkill (SYS_BASE+268)
|
||||
#define SYS_utimes (SYS_BASE+269)
|
||||
#define SYS_arm_fadvise64_64 (SYS_BASE+270)
|
||||
#define SYS_pciconfig_iobase (SYS_BASE+271)
|
||||
#define SYS_pciconfig_read (SYS_BASE+272)
|
||||
#define SYS_pciconfig_write (SYS_BASE+273)
|
||||
#define SYS_mq_open (SYS_BASE+274)
|
||||
#define SYS_mq_unlink (SYS_BASE+275)
|
||||
#define SYS_mq_timedsend (SYS_BASE+276)
|
||||
#define SYS_mq_timedreceive (SYS_BASE+277)
|
||||
#define SYS_mq_notify (SYS_BASE+278)
|
||||
#define SYS_mq_getsetattr (SYS_BASE+279)
|
||||
#define SYS_waitid (SYS_BASE+280)
|
||||
|
||||
#define SYS_SOCKET 1
|
||||
#define SYS_BIND 2
|
||||
#define SYS_CONNECT 3
|
||||
#define SYS_LISTEN 4
|
||||
#define SYS_ACCEPT 5
|
||||
#define SYS_GETSOCKNAME 6
|
||||
#define SYS_GETPEERNAME 7
|
||||
#define SYS_SOCKETPAIR 8
|
||||
#define SYS_SEND 9
|
||||
#define SYS_RECV 10
|
||||
#define SYS_SENDTO 11
|
||||
#define SYS_RECVFROM 12
|
||||
#define SYS_SHUTDOWN 13
|
||||
#define SYS_SETSOCKOPT 14
|
||||
#define SYS_GETSOCKOPT 15
|
||||
#define SYS_SENDMSG 16
|
||||
#define SYS_RECVMSG 17
|
||||
|
||||
#endif /* _LIBGLOSS_ARM_LINUX_UNISTD_H */
|
192
gcc/libgloss/arm/linux-syscalls0.S
Normal file
192
gcc/libgloss/arm/linux-syscalls0.S
Normal file
@ -0,0 +1,192 @@
|
||||
/** Linux system call interface for the ARM processor.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>.
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#include "linux-syscall.h"
|
||||
|
||||
#if __thumb__
|
||||
# define FUNC(name) .type name, %function; .thumb_func; name:
|
||||
# define SET .thumb_set
|
||||
#else
|
||||
# define FUNC(name) .type name, %function; name:
|
||||
# define SET .set
|
||||
#endif
|
||||
|
||||
#define GLOBAL(name) .global name; FUNC(name)
|
||||
#define SIZE(name) .size name, .-name
|
||||
|
||||
# define SYSCALL4(name) \
|
||||
GLOBAL(_ ## name); \
|
||||
swi #SYS_ ## name; \
|
||||
b _set_errno; \
|
||||
SIZE(_ ## name)
|
||||
|
||||
# define SYSCALL6(name) \
|
||||
GLOBAL(_ ## name); \
|
||||
push { r4 - r5 }; \
|
||||
ldr r4, [sp, #8]; \
|
||||
ldr r5, [sp, #12]; \
|
||||
swi #SYS_ ## name; \
|
||||
pop { r4 - r5 }; \
|
||||
b _set_errno; \
|
||||
SIZE(_ ## name)
|
||||
|
||||
#define SYSCALL0(name) SYSCALL3(name)
|
||||
#define SYSCALL3(name) SYSCALL4(name)
|
||||
#define SYSCALL1(name) SYSCALL3(name)
|
||||
#define SYSCALL2(name) SYSCALL3(name)
|
||||
#define SYSCALL5(name) SYSCALL6(name)
|
||||
|
||||
SYSCALL1(alarm)
|
||||
SYSCALL1(brk)
|
||||
SYSCALL1(chdir)
|
||||
SYSCALL2(chmod)
|
||||
SYSCALL3(chown)
|
||||
SYSCALL1(close)
|
||||
SYSCALL1(dup)
|
||||
SYSCALL2(dup2)
|
||||
SYSCALL3(execve)
|
||||
SYSCALL1(exit)
|
||||
SYSCALL3(fcntl)
|
||||
SYSCALL2(fstat)
|
||||
SYSCALL2(ftruncate)
|
||||
SYSCALL3(getdents)
|
||||
SYSCALL0(getegid)
|
||||
SYSCALL0(geteuid)
|
||||
SYSCALL0(getgid)
|
||||
SYSCALL2(getgroups)
|
||||
SYSCALL1(getpgid)
|
||||
SYSCALL0(getpgrp)
|
||||
SYSCALL0(getpid)
|
||||
SYSCALL0(getuid)
|
||||
SYSCALL2(gettimeofday)
|
||||
SYSCALL3(ioctl)
|
||||
SYSCALL2(kill)
|
||||
SYSCALL3(lchown)
|
||||
SYSCALL2(link)
|
||||
SYSCALL3(lseek)
|
||||
SYSCALL2(lstat)
|
||||
SYSCALL2(mkdir)
|
||||
SYSCALL3(mknod)
|
||||
SYSCALL2(nanosleep)
|
||||
SYSCALL3(open)
|
||||
SYSCALL0(pause)
|
||||
SYSCALL1(pipe)
|
||||
SYSCALL3(read)
|
||||
SYSCALL3(readlink)
|
||||
SYSCALL4(reboot)
|
||||
SYSCALL1(rmdir)
|
||||
SYSCALL5(select)
|
||||
SYSCALL2(setpgid)
|
||||
SYSCALL1(setgid)
|
||||
SYSCALL0(setsid)
|
||||
SYSCALL1(setuid)
|
||||
SYSCALL3(sigprocmask)
|
||||
SYSCALL2(socketcall)
|
||||
SYSCALL2(stat)
|
||||
SYSCALL1(stime)
|
||||
SYSCALL2(symlink)
|
||||
SYSCALL1(sync)
|
||||
SYSCALL1(sysinfo)
|
||||
SYSCALL1(times)
|
||||
SYSCALL2(truncate)
|
||||
SYSCALL1(umask)
|
||||
SYSCALL1(uname)
|
||||
SYSCALL1(unlink)
|
||||
SYSCALL2(utime)
|
||||
SYSCALL0(vfork)
|
||||
SYSCALL4(wait4)
|
||||
SYSCALL3(write)
|
||||
|
||||
#define ALIAS(name) .GLOBAL name; SET name, _ ## name
|
||||
|
||||
ALIAS(alarm)
|
||||
ALIAS(chdir)
|
||||
ALIAS(chmod)
|
||||
ALIAS(chown)
|
||||
ALIAS(dup)
|
||||
ALIAS(dup2)
|
||||
ALIAS(ftruncate)
|
||||
ALIAS(getdents)
|
||||
ALIAS(getegid)
|
||||
ALIAS(geteuid)
|
||||
ALIAS(getgid)
|
||||
ALIAS(getgroups)
|
||||
ALIAS(getpgid)
|
||||
ALIAS(getpgrp)
|
||||
ALIAS(getuid)
|
||||
ALIAS(ioctl)
|
||||
ALIAS(lchown)
|
||||
ALIAS(lstat)
|
||||
ALIAS(mkdir)
|
||||
ALIAS(mknod)
|
||||
ALIAS(nanosleep)
|
||||
ALIAS(pause)
|
||||
ALIAS(pipe)
|
||||
ALIAS(readlink)
|
||||
ALIAS(rmdir)
|
||||
ALIAS(select)
|
||||
ALIAS(setgid)
|
||||
ALIAS(setpgid)
|
||||
ALIAS(setsid)
|
||||
ALIAS(setuid)
|
||||
ALIAS(sigprocmask)
|
||||
ALIAS(stime)
|
||||
ALIAS(symlink)
|
||||
ALIAS(sync)
|
||||
ALIAS(sysinfo)
|
||||
ALIAS(truncate)
|
||||
ALIAS(umask)
|
||||
ALIAS(uname)
|
||||
ALIAS(utime)
|
||||
ALIAS(vfork)
|
||||
ALIAS(wait4)
|
||||
|
||||
# define SOCKETCALL(name, NAME) \
|
||||
GLOBAL(name); \
|
||||
push { r0 - r3 }; \
|
||||
mov r0, #SYS_ ## NAME; \
|
||||
b _socketcall_tail; \
|
||||
SIZE(name)
|
||||
|
||||
FUNC(_socketcall_tail)
|
||||
mov r1, sp
|
||||
push { lr }
|
||||
bl _socketcall
|
||||
pop { r3 }
|
||||
add sp, #16
|
||||
#if defined(__ARM_ARCH_2__) || defined(__ARM_ARCH_3__) \
|
||||
|| defined(__ARM_ARCH_3M__) || defined(__ARM_ARCH_4__)
|
||||
mov pc, r3
|
||||
#else
|
||||
bx r3
|
||||
#endif
|
||||
SIZE(_socketcall_tail)
|
||||
|
||||
#define SOCKETCALL2(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL3(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL4(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL5(name, NAME) SOCKETCALL(name, NAME)
|
||||
#define SOCKETCALL6(name, NAME) SOCKETCALL(name, NAME)
|
||||
|
||||
SOCKETCALL3(accept, ACCEPT)
|
||||
SOCKETCALL3(bind, BIND)
|
||||
SOCKETCALL3(connect, CONNECT)
|
||||
SOCKETCALL3(getpeername, GETPEERNAME)
|
||||
SOCKETCALL3(getsockname, GETSOCKNAME)
|
||||
SOCKETCALL5(getsockopt, GETSOCKOPT)
|
||||
SOCKETCALL2(listen, LISTEN)
|
||||
SOCKETCALL4(recv, RECV)
|
||||
SOCKETCALL6(recvfrom, RECVFROM)
|
||||
SOCKETCALL3(recvmsg, RECVMSG)
|
||||
SOCKETCALL4(send, SEND)
|
||||
SOCKETCALL3(sendmsg, SENDMSG)
|
||||
SOCKETCALL6(sendto, SENDTO)
|
||||
SOCKETCALL5(setsockopt, SETSOCKOPT)
|
||||
SOCKETCALL2(shutdown, SHUTDOWN)
|
||||
SOCKETCALL3(socket, SOCKET)
|
||||
SOCKETCALL4(socketpair, SOCKETPAIR)
|
71
gcc/libgloss/arm/linux-syscalls1.c
Normal file
71
gcc/libgloss/arm/linux-syscalls1.c
Normal file
@ -0,0 +1,71 @@
|
||||
/** Linux system call interface.
|
||||
* Written by Shaun Jackman <sjackman@gmail.com>.
|
||||
* Copyright 2006 Pathway Connectivity
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
|
||||
extern char _end[];
|
||||
static void *curbrk = _end;
|
||||
|
||||
extern void *_brk(void *addr);
|
||||
|
||||
int brk(void *addr)
|
||||
{
|
||||
void *newbrk;
|
||||
if (curbrk == addr)
|
||||
return 0;
|
||||
newbrk = _brk(addr);
|
||||
curbrk = newbrk;
|
||||
if (newbrk < addr) {
|
||||
errno = ENOMEM;
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *_sbrk(intptr_t incr)
|
||||
{
|
||||
void *oldbrk = curbrk;
|
||||
if (brk(oldbrk + incr) == -1)
|
||||
return (void *)-1;
|
||||
return oldbrk;
|
||||
}
|
||||
|
||||
void *sbrk(intptr_t incr) __attribute__((alias("_sbrk")));
|
||||
|
||||
int _set_errno(int n)
|
||||
{
|
||||
if (n < 0) {
|
||||
errno = -n;
|
||||
return -1;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
#include <sys/wait.h>
|
||||
|
||||
struct rusage;
|
||||
|
||||
pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);
|
||||
|
||||
pid_t _wait(int *status)
|
||||
{
|
||||
return wait4(-1, status, 0, NULL);
|
||||
}
|
||||
|
||||
pid_t waitpid(pid_t pid, int *status, int options)
|
||||
{
|
||||
return wait4(pid, status, options, NULL);
|
||||
}
|
||||
|
||||
extern int _reboot(int magic, int magic2, int flag, void *arg);
|
||||
|
||||
int reboot(int flag)
|
||||
{
|
||||
return _reboot(0xfee1dead, 0x28121969, flag, NULL);
|
||||
}
|
133
gcc/libgloss/arm/redboot-crt0.S
Normal file
133
gcc/libgloss/arm/redboot-crt0.S
Normal file
@ -0,0 +1,133 @@
|
||||
#include "arm.h"
|
||||
|
||||
.file "crt0.S"
|
||||
|
||||
#define XGLUE(a,b) a##b
|
||||
#define GLUE(a,b) XGLUE(a,b)
|
||||
|
||||
#ifdef __USER_LABEL_PREFIX__
|
||||
#define SYM_NAME( name ) GLUE (__USER_LABEL_PREFIX__, name)
|
||||
#else
|
||||
#error __USER_LABEL_PREFIX is not defined
|
||||
#endif
|
||||
|
||||
.text
|
||||
.syntax unified
|
||||
/* Setup the assembly entry point. */
|
||||
#ifdef THUMB_V7_V6M
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
.thumb_func
|
||||
\name:
|
||||
.endm
|
||||
.thumb
|
||||
#else
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
\name:
|
||||
.endm
|
||||
.code 32
|
||||
#endif
|
||||
FUNC_START SYM_NAME(start)
|
||||
FUNC_START SYM_NAME(_start)
|
||||
/* Unnecessary to set fp for v6-m/v7-m, which don't support
|
||||
ARM state. */
|
||||
#ifndef THUMB_V7M_V6M
|
||||
mov fp, #0 /* Null frame pointer. */
|
||||
#endif
|
||||
movs r7, #0 /* Null frame pointer for Thumb. */
|
||||
|
||||
/* Enable interrupts for gdb debugging. */
|
||||
#ifdef THUMB_V7_V6M
|
||||
cpsie if
|
||||
#else
|
||||
mrs r0, cpsr
|
||||
bic r0, r0, #0xC0
|
||||
msr cpsr, r0
|
||||
#endif
|
||||
|
||||
movs a2, #0 /* Second arg: fill value. */
|
||||
ldr a1, .LC1 /* First arg: start of memory block. */
|
||||
ldr a3, .LC2
|
||||
subs a3, a3, a1 /* Third arg: length of block. */
|
||||
|
||||
#ifdef GCRT0
|
||||
/* Zero out the bss without using memset.
|
||||
Using memset is bad because it may be instrumented for
|
||||
profiling, but at this point, the profiling data structures
|
||||
have not been set up.
|
||||
FIXME: This loop could be a lot more efficient. */
|
||||
subs a3, a3, #0
|
||||
beq 2f
|
||||
1: strb a2, [a1]
|
||||
subs a3, a3, #1
|
||||
add a1, a1, #1
|
||||
bne 1b
|
||||
2:
|
||||
/* Nothing to left to clear. */
|
||||
#endif
|
||||
|
||||
#if defined(__thumb__) && !defined(THUMB_V7_V6M)
|
||||
/* Enter Thumb mode. */
|
||||
add a4, pc, #1 /* Get the address of the Thumb block. */
|
||||
bx a4 /* Go there and start Thumb decoding. */
|
||||
|
||||
.code 16
|
||||
.global __change_mode
|
||||
.thumb_func
|
||||
__change_mode:
|
||||
#endif
|
||||
|
||||
#ifndef GCRT0
|
||||
bl SYM_NAME(memset)
|
||||
#endif
|
||||
bl SYM_NAME(__get_memtop)
|
||||
subs r0, r0, #32
|
||||
mov sp, r0
|
||||
|
||||
#ifdef __USES_INITFINI__
|
||||
/* Some arm/elf targets use the .init and .fini sections
|
||||
to create constructors and destructors, and for these
|
||||
targets we need to call the _init function and arrange
|
||||
for _fini to be called at program exit. */
|
||||
ldr r0, .Lfini
|
||||
bl SYM_NAME (atexit)
|
||||
bl SYM_NAME (_init)
|
||||
#endif
|
||||
|
||||
movs a1, #0
|
||||
ldr a2, .LC3
|
||||
mov a3, a2
|
||||
bl SYM_NAME(main)
|
||||
1: bl SYM_NAME(exit)
|
||||
b 1b
|
||||
.align 2
|
||||
.LC1:
|
||||
.word __bss_start__
|
||||
.LC2:
|
||||
.word __bss_end__
|
||||
.LC3:
|
||||
.word 0
|
||||
#ifdef __USES_INITFINI__
|
||||
.Lfini:
|
||||
.word SYM_NAME(_fini)
|
||||
#endif
|
||||
#if 0
|
||||
#ifdef __thumb__
|
||||
.code 16
|
||||
#endif
|
||||
.global SYM_NAME(__syscall)
|
||||
#ifdef __thumb__
|
||||
.thumb_func
|
||||
#else
|
||||
.align 4
|
||||
#endif
|
||||
SYM_NAME(__syscall):
|
||||
mov r12, lr
|
||||
#ifdef __thumb__
|
||||
swi 0x18
|
||||
#else
|
||||
swi 0x180001
|
||||
#endif
|
||||
mov pc, r12
|
||||
#endif
|
284
gcc/libgloss/arm/redboot-syscalls.c
Normal file
284
gcc/libgloss/arm/redboot-syscalls.c
Normal file
@ -0,0 +1,284 @@
|
||||
/*
|
||||
* redboot-syscalls.c -- provide system call support for RedBoot
|
||||
*
|
||||
* Copyright (c) 1997, 2001, 2002 Red Hat, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/times.h>
|
||||
#include <errno.h>
|
||||
#include "syscall.h"
|
||||
|
||||
// Use "naked" attribute to suppress C prologue/epilogue
|
||||
static int __attribute__ ((naked)) __syscall(int func_no, ...)
|
||||
{
|
||||
asm ("mov r12, lr\n");
|
||||
#ifdef __thumb__
|
||||
asm ("swi 0x18\n");
|
||||
#else
|
||||
asm ("swi 0x180001\n");
|
||||
#endif
|
||||
asm ("mov pc, r12\n");
|
||||
}
|
||||
|
||||
int
|
||||
_close(int fd)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_close, fd);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
_exit(int stat)
|
||||
{
|
||||
while (1)
|
||||
__syscall(SYS_exit, stat);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_stat (const char *filename, struct stat *st)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_stat, filename, st);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_fstat (int file, struct stat *st)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_fstat, file, st);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_getpid(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_gettimeofday (void * tp, void * tzp)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_gettimeofday, tp, tzp);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_isatty(int fd)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_isatty, fd);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_kill(int pid, int sig)
|
||||
{
|
||||
if(pid == 1)
|
||||
_exit(sig);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
off_t
|
||||
_lseek(int fd, off_t offset, int whence)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_lseek, fd, offset, whence);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return (off_t)-1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_open(const char *buf, int flags, int mode)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_open, buf, flags, mode);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_write(int fd, const char *buf, int nbytes)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = __syscall(SYS_write, fd, buf, nbytes);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
print(char *ptr)
|
||||
{
|
||||
char *p = ptr;
|
||||
|
||||
while (*p != '\0')
|
||||
p++;
|
||||
|
||||
_write (1, ptr, p-ptr);
|
||||
}
|
||||
|
||||
void
|
||||
_raise (void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
_read(int fd, char *buf, int nbytes)
|
||||
{
|
||||
int err;
|
||||
err = __syscall(SYS_read, fd, buf, nbytes);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
extern char end[]; /* end is set in the linker command file */
|
||||
|
||||
char *heap_ptr;
|
||||
|
||||
char *
|
||||
_sbrk (int nbytes)
|
||||
{
|
||||
char *base;
|
||||
|
||||
if (!heap_ptr)
|
||||
heap_ptr = (char *)&end;
|
||||
base = heap_ptr;
|
||||
heap_ptr += nbytes;
|
||||
|
||||
return base;
|
||||
}
|
||||
|
||||
|
||||
clock_t
|
||||
_times(struct tms * tp)
|
||||
{
|
||||
clock_t utime;
|
||||
int err;
|
||||
err = __syscall(SYS_times, &utime);
|
||||
if (err)
|
||||
utime = 0;
|
||||
|
||||
if (tp) {
|
||||
tp->tms_utime = utime;
|
||||
tp->tms_stime = 0;
|
||||
tp->tms_cutime = 0;
|
||||
tp->tms_cstime = 0;
|
||||
}
|
||||
|
||||
return utime;
|
||||
}
|
||||
|
||||
int
|
||||
_rename (const char *oldpath, const char *newpath)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_rename, oldpath, newpath);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_unlink (const char *pathname)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_unlink, pathname);
|
||||
if (err<0)
|
||||
{
|
||||
errno = -err;
|
||||
return -1;
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
int
|
||||
_system (const char *command)
|
||||
{
|
||||
int err ;
|
||||
err = __syscall(SYS_system, command);
|
||||
return err;
|
||||
}
|
||||
|
||||
#define SYS_meminfo 1001
|
||||
|
||||
void *
|
||||
__get_memtop(void)
|
||||
{
|
||||
unsigned long totmem = 0, topmem = 0;
|
||||
int numbanks;
|
||||
|
||||
__syscall(SYS_meminfo, (unsigned long)&totmem, (unsigned long)&topmem, 0);
|
||||
return (void*)topmem;
|
||||
}
|
91
gcc/libgloss/arm/swi.h
Normal file
91
gcc/libgloss/arm/swi.h
Normal file
@ -0,0 +1,91 @@
|
||||
#include "arm.h"
|
||||
|
||||
/* SWI numbers for RDP (Demon) monitor. */
|
||||
#define SWI_WriteC 0x0
|
||||
#define SWI_Write0 0x2
|
||||
#define SWI_ReadC 0x4
|
||||
#define SWI_CLI 0x5
|
||||
#define SWI_GetEnv 0x10
|
||||
#define SWI_Exit 0x11
|
||||
#define SWI_EnterOS 0x16
|
||||
|
||||
#define SWI_GetErrno 0x60
|
||||
#define SWI_Clock 0x61
|
||||
#define SWI_Time 0x63
|
||||
#define SWI_Remove 0x64
|
||||
#define SWI_Rename 0x65
|
||||
#define SWI_Open 0x66
|
||||
|
||||
#define SWI_Close 0x68
|
||||
#define SWI_Write 0x69
|
||||
#define SWI_Read 0x6a
|
||||
#define SWI_Seek 0x6b
|
||||
#define SWI_Flen 0x6c
|
||||
|
||||
#define SWI_IsTTY 0x6e
|
||||
#define SWI_TmpNam 0x6f
|
||||
#define SWI_InstallHandler 0x70
|
||||
#define SWI_GenerateError 0x71
|
||||
|
||||
|
||||
/* Now the SWI numbers and reason codes for RDI (Angel) monitors. */
|
||||
#define AngelSWI_ARM 0x123456
|
||||
#ifdef __thumb__
|
||||
#define AngelSWI 0xAB
|
||||
#else
|
||||
#define AngelSWI AngelSWI_ARM
|
||||
#endif
|
||||
/* For thumb only architectures use the BKPT instruction instead of SWI. */
|
||||
#ifdef THUMB_V7M_V6M
|
||||
#define AngelSWIInsn "bkpt"
|
||||
#define AngelSWIAsm bkpt
|
||||
#else
|
||||
#define AngelSWIInsn "swi"
|
||||
#define AngelSWIAsm swi
|
||||
#endif
|
||||
|
||||
/* The reason codes: */
|
||||
#define AngelSWI_Reason_Open 0x01
|
||||
#define AngelSWI_Reason_Close 0x02
|
||||
#define AngelSWI_Reason_WriteC 0x03
|
||||
#define AngelSWI_Reason_Write0 0x04
|
||||
#define AngelSWI_Reason_Write 0x05
|
||||
#define AngelSWI_Reason_Read 0x06
|
||||
#define AngelSWI_Reason_ReadC 0x07
|
||||
#define AngelSWI_Reason_IsTTY 0x09
|
||||
#define AngelSWI_Reason_Seek 0x0A
|
||||
#define AngelSWI_Reason_FLen 0x0C
|
||||
#define AngelSWI_Reason_TmpNam 0x0D
|
||||
#define AngelSWI_Reason_Remove 0x0E
|
||||
#define AngelSWI_Reason_Rename 0x0F
|
||||
#define AngelSWI_Reason_Clock 0x10
|
||||
#define AngelSWI_Reason_Time 0x11
|
||||
#define AngelSWI_Reason_System 0x12
|
||||
#define AngelSWI_Reason_Errno 0x13
|
||||
#define AngelSWI_Reason_GetCmdLine 0x15
|
||||
#define AngelSWI_Reason_HeapInfo 0x16
|
||||
#define AngelSWI_Reason_EnterSVC 0x17
|
||||
#define AngelSWI_Reason_ReportException 0x18
|
||||
#define ADP_Stopped_ApplicationExit ((2 << 16) + 38)
|
||||
#define ADP_Stopped_RunTimeError ((2 << 16) + 35)
|
||||
|
||||
#if defined(ARM_RDI_MONITOR) && !defined(__ASSEMBLER__)
|
||||
|
||||
static inline int
|
||||
do_AngelSWI (int reason, void * arg)
|
||||
{
|
||||
int value;
|
||||
asm volatile ("mov r0, %1; mov r1, %2; " AngelSWIInsn " %a3; mov %0, r0"
|
||||
: "=r" (value) /* Outputs */
|
||||
: "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */
|
||||
: "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc"
|
||||
/* Clobbers r0 and r1, and lr if in supervisor mode */);
|
||||
/* Accordingly to page 13-77 of ARM DUI 0040D other registers
|
||||
can also be clobbered. Some memory positions may also be
|
||||
changed by a system call, so they should not be kept in
|
||||
registers. Note: we are assuming the manual is right and
|
||||
Angel is respecting the APCS. */
|
||||
return value;
|
||||
}
|
||||
|
||||
#endif
|
54
gcc/libgloss/arm/syscall.h
Normal file
54
gcc/libgloss/arm/syscall.h
Normal file
@ -0,0 +1,54 @@
|
||||
/* General use syscall.h file.
|
||||
The more ports that use this file, the simpler sim/common/nltvals.def
|
||||
remains. */
|
||||
|
||||
#ifndef LIBGLOSS_SYSCALL_H
|
||||
#define LIBGLOSS_SYSCALL_H
|
||||
|
||||
/* Note: This file may be included by assembler source. */
|
||||
|
||||
/* These should be as small as possible to allow a port to use a trap type
|
||||
instruction, which the system call # as the trap (the d10v for instance
|
||||
supports traps 0..31). An alternative would be to define one trap for doing
|
||||
system calls, and put the system call number in a register that is not used
|
||||
for the normal calling sequence (so that you don't have to shift down the
|
||||
arguments to add the system call number). Obviously, if these system call
|
||||
numbers are ever changed, all of the simulators and potentially user code
|
||||
will need to be updated. */
|
||||
|
||||
/* There is no current need for the following: SYS_execv, SYS_creat, SYS_wait,
|
||||
etc. etc. Don't add them. */
|
||||
|
||||
/* These are required by the ANSI C part of newlib (excluding system() of
|
||||
course). */
|
||||
#define SYS_exit 1
|
||||
#define SYS_open 2
|
||||
#define SYS_close 3
|
||||
#define SYS_read 4
|
||||
#define SYS_write 5
|
||||
#define SYS_lseek 6
|
||||
#define SYS_unlink 7
|
||||
#define SYS_getpid 8
|
||||
#define SYS_kill 9
|
||||
#define SYS_fstat 10
|
||||
/*#define SYS_sbrk 11 - not currently a system call, but reserved. */
|
||||
|
||||
/* ARGV support. */
|
||||
#define SYS_argvlen 12
|
||||
#define SYS_argv 13
|
||||
|
||||
/* These are extras added for one reason or another. */
|
||||
#define SYS_chdir 14
|
||||
#define SYS_stat 15
|
||||
#define SYS_chmod 16
|
||||
#define SYS_utime 17
|
||||
#define SYS_time 18
|
||||
#define SYS_gettimeofday 19
|
||||
#define SYS_times 20
|
||||
#define SYS_link 21
|
||||
/* These are additional syscalls in RedBoot. */
|
||||
#define SYS_rename 3001
|
||||
#define SYS_isatty 3002
|
||||
#define SYS_system 3003
|
||||
|
||||
#endif
|
855
gcc/libgloss/arm/syscalls.c
Normal file
855
gcc/libgloss/arm/syscalls.c
Normal file
@ -0,0 +1,855 @@
|
||||
/* Support files for GNU libc. Files in the system namespace go here.
|
||||
Files in the C namespace (ie those that do not start with an
|
||||
underscore) go in .c. */
|
||||
|
||||
#include <_ansi.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/times.h>
|
||||
#include <errno.h>
|
||||
#include <reent.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/wait.h>
|
||||
#include "swi.h"
|
||||
|
||||
/* Forward prototypes. */
|
||||
int _system _PARAMS ((const char *));
|
||||
int _rename _PARAMS ((const char *, const char *));
|
||||
int _isatty _PARAMS ((int));
|
||||
clock_t _times _PARAMS ((struct tms *));
|
||||
int _gettimeofday _PARAMS ((struct timeval *, void *));
|
||||
int _unlink _PARAMS ((const char *));
|
||||
int _link _PARAMS ((void));
|
||||
int _stat _PARAMS ((const char *, struct stat *));
|
||||
int _fstat _PARAMS ((int, struct stat *));
|
||||
int _swistat _PARAMS ((int fd, struct stat * st));
|
||||
caddr_t _sbrk _PARAMS ((int));
|
||||
int _getpid _PARAMS ((int));
|
||||
int _close _PARAMS ((int));
|
||||
clock_t _clock _PARAMS ((void));
|
||||
int _swiclose _PARAMS ((int));
|
||||
int _open _PARAMS ((const char *, int, ...));
|
||||
int _swiopen _PARAMS ((const char *, int));
|
||||
int _write _PARAMS ((int, char *, int));
|
||||
int _swiwrite _PARAMS ((int, char *, int));
|
||||
int _lseek _PARAMS ((int, int, int));
|
||||
int _swilseek _PARAMS ((int, int, int));
|
||||
int _read _PARAMS ((int, char *, int));
|
||||
int _swiread _PARAMS ((int, char *, int));
|
||||
void initialise_monitor_handles _PARAMS ((void));
|
||||
|
||||
static int checkerror _PARAMS ((int));
|
||||
static int error _PARAMS ((int));
|
||||
static int get_errno _PARAMS ((void));
|
||||
|
||||
/* Struct used to keep track of the file position, just so we
|
||||
can implement fseek(fh,x,SEEK_CUR). */
|
||||
struct fdent
|
||||
{
|
||||
int handle;
|
||||
int pos;
|
||||
};
|
||||
|
||||
#define MAX_OPEN_FILES 20
|
||||
|
||||
/* User file descriptors (fd) are integer indexes into
|
||||
the openfiles[] array. Error checking is done by using
|
||||
findslot().
|
||||
|
||||
This openfiles array is manipulated directly by only
|
||||
these 5 functions:
|
||||
|
||||
findslot() - Translate entry.
|
||||
newslot() - Find empty entry.
|
||||
initilise_monitor_handles() - Initialize entries.
|
||||
_swiopen() - Initialize entry.
|
||||
_close() - Handle stdout == stderr case.
|
||||
|
||||
Every other function must use findslot(). */
|
||||
|
||||
static struct fdent openfiles [MAX_OPEN_FILES];
|
||||
|
||||
static struct fdent* findslot _PARAMS ((int));
|
||||
static int newslot _PARAMS ((void));
|
||||
|
||||
/* Register name faking - works in collusion with the linker. */
|
||||
register char * stack_ptr asm ("sp");
|
||||
|
||||
|
||||
/* following is copied from libc/stdio/local.h to check std streams */
|
||||
extern void _EXFUN(__sinit,(struct _reent *));
|
||||
#define CHECK_INIT(ptr) \
|
||||
do \
|
||||
{ \
|
||||
if ((ptr) && !(ptr)->__sdidinit) \
|
||||
__sinit (ptr); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
static int monitor_stdin;
|
||||
static int monitor_stdout;
|
||||
static int monitor_stderr;
|
||||
|
||||
/* Return a pointer to the structure associated with
|
||||
the user file descriptor fd. */
|
||||
static struct fdent*
|
||||
findslot (int fd)
|
||||
{
|
||||
CHECK_INIT(_REENT);
|
||||
|
||||
/* User file descriptor is out of range. */
|
||||
if ((unsigned int)fd >= MAX_OPEN_FILES)
|
||||
return NULL;
|
||||
|
||||
/* User file descriptor is open? */
|
||||
if (openfiles[fd].handle == -1)
|
||||
return NULL;
|
||||
|
||||
/* Valid. */
|
||||
return &openfiles[fd];
|
||||
}
|
||||
|
||||
/* Return the next lowest numbered free file
|
||||
structure, or -1 if we can't find one. */
|
||||
static int
|
||||
newslot (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_OPEN_FILES; i++)
|
||||
if (openfiles[i].handle == -1)
|
||||
break;
|
||||
|
||||
if (i == MAX_OPEN_FILES)
|
||||
return -1;
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
void
|
||||
initialise_monitor_handles (void)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* Open the standard file descriptors by opening the special
|
||||
* teletype device, ":tt", read-only to obtain a descritpor for
|
||||
* standard input and write-only to obtain a descriptor for standard
|
||||
* output. Finally, open ":tt" in append mode to obtain a descriptor
|
||||
* for standard error. Since this is a write mode, most kernels will
|
||||
* probably return the same value as for standard output, but the
|
||||
* kernel can differentiate the two using the mode flag and return a
|
||||
* different descriptor for standard error.
|
||||
*/
|
||||
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int volatile block[3];
|
||||
|
||||
block[0] = (int) ":tt";
|
||||
block[2] = 3; /* length of filename */
|
||||
block[1] = 0; /* mode "r" */
|
||||
monitor_stdin = do_AngelSWI (AngelSWI_Reason_Open, (void *) block);
|
||||
|
||||
block[0] = (int) ":tt";
|
||||
block[2] = 3; /* length of filename */
|
||||
block[1] = 4; /* mode "w" */
|
||||
monitor_stdout = do_AngelSWI (AngelSWI_Reason_Open, (void *) block);
|
||||
|
||||
block[0] = (int) ":tt";
|
||||
block[2] = 3; /* length of filename */
|
||||
block[1] = 8; /* mode "a" */
|
||||
monitor_stderr = do_AngelSWI (AngelSWI_Reason_Open, (void *) block);
|
||||
#else
|
||||
int fh;
|
||||
const char * name;
|
||||
|
||||
name = ":tt";
|
||||
asm ("mov r0,%2; mov r1, #0; swi %a1; mov %0, r0"
|
||||
: "=r"(fh)
|
||||
: "i" (SWI_Open),"r"(name)
|
||||
: "r0","r1");
|
||||
monitor_stdin = fh;
|
||||
|
||||
name = ":tt";
|
||||
asm ("mov r0,%2; mov r1, #4; swi %a1; mov %0, r0"
|
||||
: "=r"(fh)
|
||||
: "i" (SWI_Open),"r"(name)
|
||||
: "r0","r1");
|
||||
monitor_stdout = fh;
|
||||
|
||||
name = ":tt";
|
||||
asm ("mov r0,%2; mov r1, #8; swi %a1; mov %0, r0"
|
||||
: "=r"(fh)
|
||||
: "i" (SWI_Open),"r"(name)
|
||||
: "r0","r1");
|
||||
monitor_stderr = fh;
|
||||
#endif
|
||||
|
||||
/* If we failed to open stderr, redirect to stdout. */
|
||||
if (monitor_stderr == -1)
|
||||
monitor_stderr = monitor_stdout;
|
||||
|
||||
for (i = 0; i < MAX_OPEN_FILES; i ++)
|
||||
openfiles[i].handle = -1;
|
||||
|
||||
openfiles[0].handle = monitor_stdin;
|
||||
openfiles[0].pos = 0;
|
||||
openfiles[1].handle = monitor_stdout;
|
||||
openfiles[1].pos = 0;
|
||||
openfiles[2].handle = monitor_stderr;
|
||||
openfiles[2].pos = 0;
|
||||
}
|
||||
|
||||
static int
|
||||
get_errno (void)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
return do_AngelSWI (AngelSWI_Reason_Errno, NULL);
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
asm ("swi %a1" : "=r"(r0) : "i" (SWI_GetErrno));
|
||||
return r0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Set errno and return result. */
|
||||
static int
|
||||
error (int result)
|
||||
{
|
||||
errno = get_errno ();
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Check the return and set errno appropriately. */
|
||||
static int
|
||||
checkerror (int result)
|
||||
{
|
||||
if (result == -1)
|
||||
return error (-1);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle.
|
||||
ptr, is a null terminated string.
|
||||
len, is the length in bytes to read.
|
||||
Returns the number of bytes *not* written. */
|
||||
int
|
||||
_swiread (int fh,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[3];
|
||||
|
||||
block[0] = fh;
|
||||
block[1] = (int) ptr;
|
||||
block[2] = len;
|
||||
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Read, block));
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
register r1 asm("r1");
|
||||
register r2 asm("r2");
|
||||
r0 = fh;
|
||||
r1 = (int)ptr;
|
||||
r2 = len;
|
||||
asm ("swi %a4"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "r"(r1), "r"(r2), "i"(SWI_Read));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fd, is a valid user file handle.
|
||||
Translates the return of _swiread into
|
||||
bytes read. */
|
||||
int
|
||||
_read (int fd,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
res = _swiread (pfd->handle, ptr, len);
|
||||
|
||||
if (res == -1)
|
||||
return res;
|
||||
|
||||
pfd->pos += len - res;
|
||||
|
||||
/* res == len is not an error,
|
||||
at least if we want feof() to work. */
|
||||
return len - res;
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_swilseek (int fd,
|
||||
int ptr,
|
||||
int dir)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
/* Valid file descriptor? */
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Valid whence? */
|
||||
if ((dir != SEEK_CUR)
|
||||
&& (dir != SEEK_SET)
|
||||
&& (dir != SEEK_END))
|
||||
{
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Convert SEEK_CUR to SEEK_SET */
|
||||
if (dir == SEEK_CUR)
|
||||
{
|
||||
ptr = pfd->pos + ptr;
|
||||
/* The resulting file offset would be negative. */
|
||||
if (ptr < 0)
|
||||
{
|
||||
errno = EINVAL;
|
||||
if ((pfd->pos > 0) && (ptr > 0))
|
||||
errno = EOVERFLOW;
|
||||
return -1;
|
||||
}
|
||||
dir = SEEK_SET;
|
||||
}
|
||||
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[2];
|
||||
if (dir == SEEK_END)
|
||||
{
|
||||
block[0] = pfd->handle;
|
||||
res = checkerror (do_AngelSWI (AngelSWI_Reason_FLen, block));
|
||||
if (res == -1)
|
||||
return -1;
|
||||
ptr += res;
|
||||
}
|
||||
|
||||
/* This code only does absolute seeks. */
|
||||
block[0] = pfd->handle;
|
||||
block[1] = ptr;
|
||||
res = checkerror (do_AngelSWI (AngelSWI_Reason_Seek, block));
|
||||
#else
|
||||
if (dir == SEEK_END)
|
||||
{
|
||||
asm ("mov r0, %2; swi %a1; mov %0, r0"
|
||||
: "=r" (res)
|
||||
: "i" (SWI_Flen), "r" (pfd->handle)
|
||||
: "r0");
|
||||
checkerror (res);
|
||||
if (res == -1)
|
||||
return -1;
|
||||
ptr += res;
|
||||
}
|
||||
|
||||
/* This code only does absolute seeks. */
|
||||
asm ("mov r0, %2; mov r1, %3; swi %a1; mov %0, r0"
|
||||
: "=r" (res)
|
||||
: "i" (SWI_Seek), "r" (pfd->handle), "r" (ptr)
|
||||
: "r0", "r1");
|
||||
checkerror (res);
|
||||
#endif
|
||||
/* At this point ptr is the current file position. */
|
||||
if (res >= 0)
|
||||
{
|
||||
pfd->pos = ptr;
|
||||
return ptr;
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
_lseek (int fd,
|
||||
int ptr,
|
||||
int dir)
|
||||
{
|
||||
return _swilseek (fd, ptr, dir);
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle.
|
||||
Returns the number of bytes *not* written. */
|
||||
int
|
||||
_swiwrite (
|
||||
int fh,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[3];
|
||||
|
||||
block[0] = fh;
|
||||
block[1] = (int) ptr;
|
||||
block[2] = len;
|
||||
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Write, block));
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
register r1 asm("r1");
|
||||
register r2 asm("r2");
|
||||
r0 = fh;
|
||||
r1 = (int)ptr;
|
||||
r2 = len;
|
||||
asm ("swi %a4"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "r"(r1), "r"(r2), "i"(SWI_Write));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_write (int fd,
|
||||
char * ptr,
|
||||
int len)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
res = _swiwrite (pfd->handle, ptr,len);
|
||||
|
||||
/* Clearly an error. */
|
||||
if (res < 0)
|
||||
return -1;
|
||||
|
||||
pfd->pos += len - res;
|
||||
|
||||
/* We wrote 0 bytes?
|
||||
Retrieve errno just in case. */
|
||||
if ((len - res) == 0)
|
||||
return error (0);
|
||||
|
||||
return (len - res);
|
||||
}
|
||||
|
||||
int
|
||||
_swiopen (const char * path, int flags)
|
||||
{
|
||||
int aflags = 0, fh;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[3];
|
||||
#endif
|
||||
|
||||
int fd = newslot ();
|
||||
|
||||
if (fd == -1)
|
||||
{
|
||||
errno = EMFILE;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* It is an error to open a file that already exists. */
|
||||
if ((flags & O_CREAT)
|
||||
&& (flags & O_EXCL))
|
||||
{
|
||||
struct stat st;
|
||||
int res;
|
||||
res = _stat (path, &st);
|
||||
if (res != -1)
|
||||
{
|
||||
errno = EEXIST;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* The flags are Unix-style, so we need to convert them. */
|
||||
#ifdef O_BINARY
|
||||
if (flags & O_BINARY)
|
||||
aflags |= 1;
|
||||
#endif
|
||||
|
||||
/* In O_RDONLY we expect aflags == 0. */
|
||||
|
||||
if (flags & O_RDWR)
|
||||
aflags |= 2;
|
||||
|
||||
if ((flags & O_CREAT)
|
||||
|| (flags & O_TRUNC)
|
||||
|| (flags & O_WRONLY))
|
||||
aflags |= 4;
|
||||
|
||||
if (flags & O_APPEND)
|
||||
{
|
||||
/* Can't ask for w AND a; means just 'a'. */
|
||||
aflags &= ~4;
|
||||
aflags |= 8;
|
||||
}
|
||||
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
block[0] = (int) path;
|
||||
block[2] = strlen (path);
|
||||
block[1] = aflags;
|
||||
|
||||
fh = do_AngelSWI (AngelSWI_Reason_Open, block);
|
||||
|
||||
#else
|
||||
asm ("mov r0,%2; mov r1, %3; swi %a1; mov %0, r0"
|
||||
: "=r"(fh)
|
||||
: "i" (SWI_Open),"r"(path),"r"(aflags)
|
||||
: "r0","r1");
|
||||
#endif
|
||||
|
||||
/* Return a user file descriptor or an error. */
|
||||
if (fh >= 0)
|
||||
{
|
||||
openfiles[fd].handle = fh;
|
||||
openfiles[fd].pos = 0;
|
||||
return fd;
|
||||
}
|
||||
else
|
||||
return error (fh);
|
||||
}
|
||||
|
||||
int
|
||||
_open (const char * path, int flags, ...)
|
||||
{
|
||||
return _swiopen (path, flags);
|
||||
}
|
||||
|
||||
/* fh, is a valid internal file handle. */
|
||||
int
|
||||
_swiclose (int fh)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Close, &fh));
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = fh;
|
||||
asm ("swi %a2"
|
||||
: "=r"(r0)
|
||||
: "0"(r0), "i" (SWI_Close));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* fd, is a user file descriptor. */
|
||||
int
|
||||
_close (int fd)
|
||||
{
|
||||
int res;
|
||||
struct fdent *pfd;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Handle stderr == stdout. */
|
||||
if ((fd == 1 || fd == 2)
|
||||
&& (openfiles[1].handle == openfiles[2].handle))
|
||||
{
|
||||
pfd->handle = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Attempt to close the handle. */
|
||||
res = _swiclose (pfd->handle);
|
||||
|
||||
/* Reclaim handle? */
|
||||
if (res == 0)
|
||||
pfd->handle = -1;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_getpid (int n __attribute__ ((unused)))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
caddr_t
|
||||
_sbrk (int incr)
|
||||
{
|
||||
extern char end asm ("end"); /* Defined by the linker. */
|
||||
static char * heap_end;
|
||||
char * prev_heap_end;
|
||||
|
||||
if (heap_end == NULL)
|
||||
heap_end = & end;
|
||||
|
||||
prev_heap_end = heap_end;
|
||||
|
||||
if (heap_end + incr > stack_ptr)
|
||||
{
|
||||
/* Some of the libstdc++-v3 tests rely upon detecting
|
||||
out of memory errors, so do not abort here. */
|
||||
#if 0
|
||||
extern void abort (void);
|
||||
|
||||
_write (1, "_sbrk: Heap and stack collision\n", 32);
|
||||
|
||||
abort ();
|
||||
#else
|
||||
errno = ENOMEM;
|
||||
return (caddr_t) -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
heap_end += incr;
|
||||
|
||||
return (caddr_t) prev_heap_end;
|
||||
}
|
||||
|
||||
int
|
||||
_swistat (int fd, struct stat * st)
|
||||
{
|
||||
struct fdent *pfd;
|
||||
int res;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Always assume a character device,
|
||||
with 1024 byte blocks. */
|
||||
st->st_mode |= S_IFCHR;
|
||||
st->st_blksize = 1024;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
res = checkerror (do_AngelSWI (AngelSWI_Reason_FLen, &pfd->handle));
|
||||
#else
|
||||
asm ("mov r0, %2; swi %a1; mov %0, r0"
|
||||
: "=r" (res)
|
||||
: "i" (SWI_Flen), "r" (pfd->handle)
|
||||
: "r0");
|
||||
checkerror (res);
|
||||
#endif
|
||||
if (res == -1)
|
||||
return -1;
|
||||
/* Return the file size. */
|
||||
st->st_size = res;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_fstat (int fd, struct stat * st)
|
||||
{
|
||||
memset (st, 0, sizeof (* st));
|
||||
return _swistat (fd, st);
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_stat (const char *fname, struct stat *st)
|
||||
{
|
||||
int fd, res;
|
||||
memset (st, 0, sizeof (* st));
|
||||
/* The best we can do is try to open the file readonly.
|
||||
If it exists, then we can guess a few things about it. */
|
||||
if ((fd = _open (fname, O_RDONLY)) == -1)
|
||||
return -1;
|
||||
st->st_mode |= S_IFREG | S_IREAD;
|
||||
res = _swistat (fd, st);
|
||||
/* Not interested in the error. */
|
||||
_close (fd);
|
||||
return res;
|
||||
}
|
||||
|
||||
int __attribute__((weak))
|
||||
_link (void)
|
||||
{
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
_unlink (const char *path)
|
||||
{
|
||||
int res;
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[2];
|
||||
block[0] = (int)path;
|
||||
block[1] = strlen(path);
|
||||
res = do_AngelSWI (AngelSWI_Reason_Remove, block);
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = (int)path;
|
||||
asm ("swi %a2"
|
||||
: "=r"(r0)
|
||||
: "0"(r0), "i" (SWI_Remove));
|
||||
res = r0;
|
||||
#endif
|
||||
if (res == -1)
|
||||
return error (res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
_gettimeofday (struct timeval * tp, void * tzvp)
|
||||
{
|
||||
struct timezone *tzp = tzvp;
|
||||
if (tp)
|
||||
{
|
||||
/* Ask the host for the seconds since the Unix epoch. */
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
tp->tv_sec = do_AngelSWI (AngelSWI_Reason_Time,NULL);
|
||||
#else
|
||||
{
|
||||
int value;
|
||||
asm ("swi %a1; mov %0, r0" : "=r" (value): "i" (SWI_Time) : "r0");
|
||||
tp->tv_sec = value;
|
||||
}
|
||||
#endif
|
||||
tp->tv_usec = 0;
|
||||
}
|
||||
|
||||
/* Return fixed data for the timezone. */
|
||||
if (tzp)
|
||||
{
|
||||
tzp->tz_minuteswest = 0;
|
||||
tzp->tz_dsttime = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return a clock that ticks at 100Hz. */
|
||||
clock_t
|
||||
_clock (void)
|
||||
{
|
||||
clock_t timeval;
|
||||
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
timeval = do_AngelSWI (AngelSWI_Reason_Clock,NULL);
|
||||
#else
|
||||
asm ("swi %a1; mov %0, r0" : "=r" (timeval): "i" (SWI_Clock) : "r0");
|
||||
#endif
|
||||
return timeval;
|
||||
}
|
||||
|
||||
/* Return a clock that ticks at 100Hz. */
|
||||
clock_t
|
||||
_times (struct tms * tp)
|
||||
{
|
||||
clock_t timeval = _clock();
|
||||
|
||||
if (tp)
|
||||
{
|
||||
tp->tms_utime = timeval; /* user time */
|
||||
tp->tms_stime = 0; /* system time */
|
||||
tp->tms_cutime = 0; /* user time, children */
|
||||
tp->tms_cstime = 0; /* system time, children */
|
||||
}
|
||||
|
||||
return timeval;
|
||||
};
|
||||
|
||||
|
||||
int
|
||||
_isatty (int fd)
|
||||
{
|
||||
struct fdent *pfd;
|
||||
int tty;
|
||||
|
||||
pfd = findslot (fd);
|
||||
if (pfd == NULL)
|
||||
{
|
||||
errno = EBADF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
tty = do_AngelSWI (AngelSWI_Reason_IsTTY, &pfd->handle);
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = pfd->handle;
|
||||
asm ("swi %a2"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "i" (SWI_IsTTY));
|
||||
tty = r0;
|
||||
#endif
|
||||
|
||||
if (tty == 1)
|
||||
return 1;
|
||||
errno = get_errno ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
_system (const char *s)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[2];
|
||||
int e;
|
||||
|
||||
/* Hmmm. The ARM debug interface specification doesn't say whether
|
||||
SYS_SYSTEM does the right thing with a null argument, or assign any
|
||||
meaning to its return value. Try to do something reasonable.... */
|
||||
if (!s)
|
||||
return 1; /* maybe there is a shell available? we can hope. :-P */
|
||||
block[0] = (int)s;
|
||||
block[1] = strlen (s);
|
||||
e = checkerror (do_AngelSWI (AngelSWI_Reason_System, block));
|
||||
if ((e >= 0) && (e < 256))
|
||||
{
|
||||
/* We have to convert e, an exit status to the encoded status of
|
||||
the command. To avoid hard coding the exit status, we simply
|
||||
loop until we find the right position. */
|
||||
int exit_code;
|
||||
|
||||
for (exit_code = e; e && WEXITSTATUS (e) != exit_code; e <<= 1)
|
||||
continue;
|
||||
}
|
||||
return e;
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
r0 = (int)s;
|
||||
asm ("swi %a2"
|
||||
: "=r" (r0)
|
||||
: "0"(r0), "i" (SWI_CLI));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
_rename (const char * oldpath, const char * newpath)
|
||||
{
|
||||
#ifdef ARM_RDI_MONITOR
|
||||
int block[4];
|
||||
block[0] = (int)oldpath;
|
||||
block[1] = strlen(oldpath);
|
||||
block[2] = (int)newpath;
|
||||
block[3] = strlen(newpath);
|
||||
return checkerror (do_AngelSWI (AngelSWI_Reason_Rename, block)) ? -1 : 0;
|
||||
#else
|
||||
register r0 asm("r0");
|
||||
register r1 asm("r1");
|
||||
r0 = (int)oldpath;
|
||||
r1 = (int)newpath;
|
||||
asm ("swi %a3"
|
||||
: "=r" (r0)
|
||||
: "0" (r0), "r" (r1), "i" (SWI_Rename));
|
||||
return checkerror (r0);
|
||||
#endif
|
||||
}
|
96
gcc/libgloss/arm/trap.S
Normal file
96
gcc/libgloss/arm/trap.S
Normal file
@ -0,0 +1,96 @@
|
||||
#include "arm.h"
|
||||
/* Run-time exception support */
|
||||
#ifndef THUMB_V7_V6M
|
||||
#include "swi.h"
|
||||
|
||||
/* .text is used instead of .section .text so it works with arm-aout too. */
|
||||
.text
|
||||
.align 0
|
||||
.global __rt_stkovf_split_big
|
||||
.global __rt_stkovf_split_small
|
||||
|
||||
/* The following functions are provided for software stack checking.
|
||||
If hardware stack-checking is being used then the code can be
|
||||
compiled without the PCS entry checks, and simply rely on VM
|
||||
management to extend the stack for a thread.
|
||||
|
||||
The stack extension event occurs when the PCS function entry code
|
||||
would result in a stack-pointer beneath the stack-limit register
|
||||
value. The system relies on the following map:
|
||||
|
||||
+-----------------------------------+ <-- end of stack block
|
||||
| ... |
|
||||
| ... |
|
||||
| active stack |
|
||||
| ... | <-- sp (stack-pointer) somewhere in here
|
||||
| ... |
|
||||
+-----------------------------------+ <-- sl (stack-limit)
|
||||
| stack-extension handler workspace |
|
||||
+-----------------------------------+ <-- base of stack block
|
||||
|
||||
The "stack-extension handler workspace" is an amount of memory in
|
||||
which the stack overflow support code must execute. It must be
|
||||
large enough to deal with the worst case path through the extension
|
||||
code. At the moment the compiler expects this to be AT LEAST
|
||||
256bytes. It uses this fact to code functions with small local
|
||||
data usage within the overflow space.
|
||||
|
||||
In a true target environment We may need to increase the space
|
||||
between sl and the true limit to allow for the stack extension
|
||||
code, SWI handlers and for undefined instruction handlers of the
|
||||
target environment. */
|
||||
|
||||
__rt_stkovf_split_small:
|
||||
mov ip,sp @ Ensure we can calculate the stack required
|
||||
@ and fall through to...
|
||||
__rt_stkovf_split_big:
|
||||
@ in: sp = current stack-pointer (beneath stack-limit)
|
||||
@ sl = current stack-limit
|
||||
@ ip = low stack point we require for the current function
|
||||
@ lr = return address into the current function
|
||||
@ fp = frame-pointer
|
||||
@ original sp --> +----------------------------------+
|
||||
@ | pc (12 ahead of PCS entry store) |
|
||||
@ current fp ---> +----------------------------------+
|
||||
@ | lr (on entry) pc (on exit) |
|
||||
@ +----------------------------------+
|
||||
@ | sp ("original sp" on entry) |
|
||||
@ +----------------------------------+
|
||||
@ | fp (on entry to function) |
|
||||
@ +----------------------------------+
|
||||
@ | |
|
||||
@ | ..argument and work registers.. |
|
||||
@ | |
|
||||
@ current sp ---> +----------------------------------+
|
||||
@
|
||||
@ The "current sl" is somewhere between "original sp" and "current sp"
|
||||
@ but above "true sl". The "current sl" should be at least 256bytes
|
||||
@ above the "true sl". The 256byte stack guard should be large enough
|
||||
@ to deal with the worst case function entry stacking (160bytes) plus
|
||||
@ the stack overflow handler stacking requirements, plus the stack
|
||||
@ required for the memory allocation routines.
|
||||
@
|
||||
@ Normal PCS entry (before stack overflow check) can stack 16
|
||||
@ standard registers (64bytes) and 8 floating point registers
|
||||
@ (96bytes). This gives a minimum stack guard of 160bytes (excluding
|
||||
@ the stack required for the code). (Actually only a maximum of
|
||||
@ 14standard registers are ever stacked on entry to a function).
|
||||
@
|
||||
@ NOTE: Structure returns are performed by the caller allocating a
|
||||
@ dummy space on the stack and passing in a "phantom" arg1 into
|
||||
@ the function. This means that we do not need to worry about
|
||||
@ preserving the stack under "sp" even on function return.
|
||||
@
|
||||
@ Code should never poke values beneath sp. The sp register
|
||||
@ should always be "dropped" first to cover the data. This
|
||||
@ protects the data against any events that may try and use
|
||||
@ the stack.
|
||||
|
||||
SUB ip, sp, ip @ extra stack required for function
|
||||
@ Add stack extension code here. If desired a new stack chunk
|
||||
@ can be allocated, and the register state updated suitably.
|
||||
|
||||
@ We now know how much extra stack the function requires.
|
||||
@ Terminate the program for the moment:
|
||||
swi SWI_Exit
|
||||
#endif
|
183
gcc/libgloss/bfin/Makefile.in
Normal file
183
gcc/libgloss/bfin/Makefile.in
Normal file
@ -0,0 +1,183 @@
|
||||
#
|
||||
#
|
||||
|
||||
DESTDIR =
|
||||
VPATH = @srcdir@ @srcdir@/..
|
||||
srcdir = @srcdir@
|
||||
objdir = .
|
||||
srcroot = $(srcdir)/../..
|
||||
objroot = $(objdir)/../..
|
||||
top_srcdir = @top_srcdir@
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
host_alias = @host_alias@
|
||||
target_alias = @target_alias@
|
||||
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
tooldir = $(exec_prefix)/$(target_alias)
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
||||
# Multilib support variables.
|
||||
# TOP is used instead of MULTI{BUILD,SRC}TOP.
|
||||
MULTIDIRS =
|
||||
MULTISUBDIR =
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
|
||||
CC = @CC@
|
||||
|
||||
AS = @AS@
|
||||
AR = @AR@
|
||||
LD = @LD@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
|
||||
then echo ${objroot}/../binutils/objdump ; \
|
||||
else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
|
||||
OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
|
||||
then echo ${objroot}/../binutils/objcopy ; \
|
||||
else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
|
||||
|
||||
OBJS =
|
||||
CFLAGS =
|
||||
SCRIPTS =
|
||||
|
||||
# Here is all of the simulator stuff
|
||||
SIM_SCRIPTS =
|
||||
SIM_LDFLAGS =
|
||||
SIM_BSP = libsim.a
|
||||
SIM_CRT0 = crt0.o
|
||||
SIM_OBJS = syscalls.o clear_cache_range.o
|
||||
SIM_TEST = sim-test
|
||||
SIM_INSTALL = install-sim
|
||||
|
||||
# Here is all of the development board stuff
|
||||
BOARD_SCRIPTS = bfin-common-sc.ld bfin-common-mc.ld \
|
||||
bf504.ld bf506.ld \
|
||||
bf512.ld bf514.ld bf516.ld bf518.ld \
|
||||
bf522.ld bf523.ld bf524.ld bf525.ld bf526.ld bf527.ld \
|
||||
bf531.ld bf532.ld bf533.ld \
|
||||
bf534.ld bf536.ld bf537.ld \
|
||||
bf538.ld bf539.ld \
|
||||
bf542.ld bf544.ld bf547.ld bf548.ld bf549.ld \
|
||||
bf561.ld bf561a.ld bf561b.ld bf561m.ld \
|
||||
bf592.ld
|
||||
BOARD_LDFLAGS =
|
||||
BOARD_BSP = libbfinbsp.a
|
||||
BOARD_CRT0S = basiccrt.o basiccrts.o
|
||||
BOARD_CRT0S += basiccrt561.o basiccrt561s.o basiccrt561b.o
|
||||
BOARD_OBJS = clear_cache_range.o
|
||||
BOARD_TEST =
|
||||
BOARD_INSTALL = install-board
|
||||
|
||||
# Host specific makefile fragment comes in here.
|
||||
@host_makefile_frag@
|
||||
|
||||
INCLUDES += -I$(srcdir)/include
|
||||
#
|
||||
# build a test program for each target board. Just trying to get
|
||||
# it to link is a good test, so we ignore all the errors for now.
|
||||
#
|
||||
all: ${SIM_CRT0} ${SIM_BSP} ${BOARD_CRT0S} ${BOARD_BSP}
|
||||
|
||||
#
|
||||
# here's where we build the board support packages for each target
|
||||
#
|
||||
${BOARD_BSP}: ${OBJS} ${BOARD_OBJS}
|
||||
${AR} ${ARFLAGS} $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
${SIM_BSP}: ${OBJS} ${SIM_OBJS}
|
||||
${AR} ${ARFLAGS} ${SIM_BSP} ${SIM_OBJS} ${OBJS}
|
||||
${RANLIB} ${SIM_BSP}
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
crt0.o: crt0.S
|
||||
|
||||
basiccrt.o: basiccrt.S
|
||||
ifeq (,$(findstring mcpu=,$(CFLAGS)))
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf532-any -o $@ -c $<
|
||||
else
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrts.o: basiccrt.S
|
||||
ifeq (,$(findstring mcpu=,$(CFLAGS)))
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf532-any -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt561.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-none -o $@ -c $<
|
||||
else
|
||||
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt561s.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-none -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__BFIN_SDRAM $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
basiccrt561b.o: basiccrt.S
|
||||
ifneq (,$(findstring mcpu=bf532-none,$(CFLAGS)))
|
||||
$(CC) -D__ADSPBF561_COREB__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-none -o $@ -c $<
|
||||
else
|
||||
$(CC) -D__ADSPBF561_COREB__ $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -mcpu=bf561-any -o $@ -c $<
|
||||
endif
|
||||
|
||||
clean mostlyclean:
|
||||
rm -f a.out core *.i *.o ${SIM_BSP} ${BOARD_BSP}
|
||||
|
||||
distclean maintainer-clean realclean: clean
|
||||
rm -f Makefile config.status *~
|
||||
|
||||
.PHONY: install info install-info clean-info
|
||||
install: ${SIM_INSTALL} ${BOARD_INSTALL}
|
||||
|
||||
install-sim:
|
||||
for x in ${SIM_CRT0} ${SIM_BSP} ${SIM_SCRIPTS}; do \
|
||||
${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x || exit $$?; \
|
||||
done
|
||||
|
||||
install-board:
|
||||
for x in ${BOARD_CRT0S} ${BOARD_BSP}; do \
|
||||
${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x || exit $$?; \
|
||||
done
|
||||
-if [ -z "${MULTISUBDIR}" ]; then \
|
||||
for x in ${BOARD_SCRIPTS}; do \
|
||||
${INSTALL_DATA} ${srcdir}/$$x $(DESTDIR)${tooldir}/lib/$$x; \
|
||||
done; \
|
||||
${mkinstalldirs} ${DESTDIR}${tooldir}/include; \
|
||||
for i in ${srcdir}/include/*.h; do \
|
||||
${INSTALL_DATA} $$i ${DESTDIR}${tooldir}/include/`basename $$i`; \
|
||||
done; \
|
||||
${mkinstalldirs} ${DESTDIR}${tooldir}/include/sys; \
|
||||
for i in ${srcdir}/include/sys/*.h; do \
|
||||
${INSTALL_DATA} $$i ${DESTDIR}${tooldir}/include/sys/`basename $$i`; \
|
||||
done; \
|
||||
else true; fi
|
||||
|
||||
doc:
|
||||
info:
|
||||
install-info:
|
||||
clean-info:
|
||||
|
||||
Makefile: Makefile.in config.status @host_makefile_frag_path@
|
||||
$(SHELL) config.status
|
||||
|
||||
config.status: configure
|
||||
$(SHELL) config.status --recheck
|
344
gcc/libgloss/bfin/aclocal.m4
vendored
Normal file
344
gcc/libgloss/bfin/aclocal.m4
vendored
Normal file
@ -0,0 +1,344 @@
|
||||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 7
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])
|
||||
AC_SUBST([$1_FALSE])
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 3
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo done
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# We grep out `Entering directory' and `Leaving directory'
|
||||
# messages which can occur if `w' ends up in MAKEFLAGS.
|
||||
# In particular we don't look at `^make:' because GNU make might
|
||||
# be invoked under some other name (usually "gmake"), in which
|
||||
# case it prints its new name instead of `make'.
|
||||
if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
fi
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
m4_include([../acinclude.m4])
|
586
gcc/libgloss/bfin/basiccrt.S
Normal file
586
gcc/libgloss/bfin/basiccrt.S
Normal file
@ -0,0 +1,586 @@
|
||||
/*
|
||||
* Basic startup code for Blackfin processor
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
// basic startup code which
|
||||
// - turns the cycle counter on
|
||||
// - loads up FP & SP (both supervisor and user)
|
||||
// - initialises the device drivers (FIOCRT)
|
||||
// - calls monstartup to set up the profiling routines (PROFCRT)
|
||||
// - calls the C++ startup (CPLUSCRT)
|
||||
// - initialises argc/argv (FIOCRT/normal)
|
||||
// - calls _main
|
||||
// - calls _exit (which calls monexit to dump accumulated prof data (PROFCRT))
|
||||
// - defines dummy IO routines (!FIOCRT)
|
||||
|
||||
#include <sys/platform.h>
|
||||
#include <cplb.h>
|
||||
#include <sys/anomaly_macros_rtl.h>
|
||||
|
||||
#define IVBh (EVT0 >> 16)
|
||||
#define IVBl (EVT0 & 0xFFFF)
|
||||
#define UNASSIGNED_VAL 0
|
||||
#define UNASSIGNED_FILL 0
|
||||
// just IVG15
|
||||
#define INTERRUPT_BITS 0x400
|
||||
#if defined(_ADI_THREADS) || \
|
||||
!defined(__ADSPLPBLACKFIN__) || defined(__ADSPBF561__) || defined(__ADSPBF566__)
|
||||
#define SET_CLOCK_SPEED 0
|
||||
#else
|
||||
#define SET_CLOCK_SPEED 1
|
||||
#endif
|
||||
|
||||
#if SET_CLOCK_SPEED == 1
|
||||
#include <sys/pll.h>
|
||||
#define SET_CLK_MSEL 0x16
|
||||
#define SET_CLK_DF 0
|
||||
#define SET_CLK_LOCK_COUNT 0x300
|
||||
#define SET_CLK_CSEL 0
|
||||
#define SET_CLK_SSEL 5
|
||||
|
||||
/*
|
||||
** CLKIN == 27MHz on the EZ-Kits.
|
||||
** D==0 means CLKIN is passed to PLL without dividing.
|
||||
** MSEL==0x16 means VCO==27*0x16 == 594MHz
|
||||
** CSEL==0 means CCLK==VCO == 594MHz
|
||||
** SSEL==5 means SCLK==VCO/5 == 118MHz
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.section .b.text,"ax",@progbits
|
||||
.align 2;
|
||||
.global __coreb_start;
|
||||
.type __coreb_start, STT_FUNC;
|
||||
__coreb_start:
|
||||
#else
|
||||
.text;
|
||||
.align 2;
|
||||
.global __start;
|
||||
.type __start, STT_FUNC;
|
||||
__start:
|
||||
#endif
|
||||
#if WA_05000109
|
||||
// Avoid Anomaly ID 05000109.
|
||||
# define SYSCFG_VALUE 0x30
|
||||
R1 = SYSCFG_VALUE;
|
||||
SYSCFG = R1;
|
||||
#endif
|
||||
#if WA_05000229
|
||||
// Avoid Anomaly 05-00-0229: DMA5_CONFIG and SPI_CTL not cleared on reset.
|
||||
R1 = 0x400;
|
||||
#if defined(__ADSPBF538__) || defined(__ADSPBF539__)
|
||||
P0.L = SPI0_CTL & 0xFFFF;
|
||||
P0.H = SPI0_CTL >> 16;
|
||||
W[P0] = R1.L;
|
||||
#else
|
||||
P0.L = SPI_CTL & 0xFFFF;
|
||||
P0.H = SPI_CTL >> 16;
|
||||
W[P0] = R1.L;
|
||||
#endif
|
||||
P0.L = DMA5_CONFIG & 0xFFFF;
|
||||
P0.H = DMA5_CONFIG >> 16;
|
||||
R1 = 0;
|
||||
W[P0] = R1.L;
|
||||
#endif
|
||||
// Zap loop counters to zero, to make sure that
|
||||
// hw loops are disabled - it could be really baffling
|
||||
// if the counters and bottom regs are set, and we happen
|
||||
// to run into them.
|
||||
R7 = 0;
|
||||
LC0 = R7;
|
||||
LC1 = R7;
|
||||
|
||||
// Clear the DAG Length regs too, so that it's safe to
|
||||
// use I-regs without them wrapping around.
|
||||
L0 = R7;
|
||||
L1 = R7;
|
||||
L2 = R7;
|
||||
L3 = R7;
|
||||
|
||||
// Zero ITEST_COMMAND and DTEST_COMMAND
|
||||
// (in case they have crud in them and
|
||||
// does a write somewhere when we enable cache)
|
||||
I0.L = (ITEST_COMMAND & 0xFFFF);
|
||||
I0.H = (ITEST_COMMAND >> 16);
|
||||
I1.L = (DTEST_COMMAND & 0xFFFF);
|
||||
I1.H = (DTEST_COMMAND >> 16);
|
||||
R7 = 0;
|
||||
[I0] = R7;
|
||||
[I1] = R7;
|
||||
// It seems writing ITEST_COMMAND from SDRAM with icache enabled
|
||||
// needs SSYNC.
|
||||
#ifdef __BFIN_SDRAM
|
||||
SSYNC;
|
||||
#else
|
||||
CSYNC;
|
||||
#endif
|
||||
|
||||
// Initialise the Event Vector table.
|
||||
P0.H = IVBh;
|
||||
P0.L = IVBl;
|
||||
|
||||
// Install __unknown_exception_occurred in EVT so that
|
||||
// there is defined behaviour.
|
||||
P0 += 2*4; // Skip Emulation and Reset
|
||||
P1 = 13;
|
||||
R1.L = __unknown_exception_occurred;
|
||||
R1.H = __unknown_exception_occurred;
|
||||
LSETUP (L$ivt,L$ivt) LC0 = P1;
|
||||
L$ivt: [P0++] = R1;
|
||||
// Set IVG15's handler to be the start of the mode-change
|
||||
// code. Then, before we return from the Reset back to user
|
||||
// mode, we'll raise IVG15. This will mean we stay in supervisor
|
||||
// mode, and continue from the mode-change point., but at a
|
||||
// much lower priority.
|
||||
P1.H = L$supervisor_mode;
|
||||
P1.L = L$supervisor_mode;
|
||||
[P0] = P1;
|
||||
|
||||
// Initialise the stack.
|
||||
// Note: this points just past the end of the section.
|
||||
// First write should be with [--SP].
|
||||
#ifdef __BFIN_SDRAM
|
||||
SP.L = __end + 0x400000 - 12;
|
||||
SP.H = __end + 0x400000 - 12;
|
||||
#else
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
SP.L=__coreb_stack_end - 12;
|
||||
SP.H=__coreb_stack_end - 12;
|
||||
#else
|
||||
SP.L=__stack_end - 12;
|
||||
SP.H=__stack_end - 12;
|
||||
#endif
|
||||
#endif
|
||||
usp = sp;
|
||||
|
||||
// We're still in supervisor mode at the moment, so the FP
|
||||
// needs to point to the supervisor stack.
|
||||
FP = SP;
|
||||
|
||||
// And make space for incoming "parameters" for functions
|
||||
// we call from here:
|
||||
SP += -12;
|
||||
|
||||
// Zero out bss section
|
||||
#ifdef __BFIN_SDRAM
|
||||
R0.L = ___bss_start;
|
||||
R0.H = ___bss_start;
|
||||
R1.L = __end;
|
||||
R1.H = __end;
|
||||
#else
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
R0.L = __coreb_bss_start;
|
||||
R0.H = __coreb_bss_start;
|
||||
R1.L = __coreb_bss_end;
|
||||
R1.H = __coreb_bss_end;
|
||||
#else
|
||||
R0.L = __bss_start;
|
||||
R0.H = __bss_start;
|
||||
R1.L = __bss_end;
|
||||
R1.H = __bss_end;
|
||||
#endif
|
||||
#endif
|
||||
R2 = R1 - R0;
|
||||
R1 = 0;
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
CALL.X __coreb_memset;
|
||||
#else
|
||||
CALL.X _memset;
|
||||
#endif
|
||||
|
||||
R0 = INTERRUPT_BITS;
|
||||
R0 <<= 5; // Bits 0-4 not settable.
|
||||
// CALL.X __install_default_handlers;
|
||||
R4 = R0; // Save modified list
|
||||
|
||||
R0 = SYSCFG; // Enable the Cycle counter
|
||||
BITSET(R0,1);
|
||||
SYSCFG = R0;
|
||||
|
||||
#if WA_05000137
|
||||
// Avoid anomaly #05000137
|
||||
|
||||
// Set the port preferences of DAG0 and DAG1 to be
|
||||
// different; this gives better performance when
|
||||
// performing dual-dag operations on SDRAM.
|
||||
P0.L = DMEM_CONTROL & 0xFFFF;
|
||||
P0.H = DMEM_CONTROL >> 16;
|
||||
R0 = [P0];
|
||||
BITSET(R0, 12);
|
||||
BITCLR(R0, 13);
|
||||
[P0] = R0;
|
||||
CSYNC;
|
||||
#endif
|
||||
|
||||
// Reinitialise data areas in RAM from ROM, if MemInit's
|
||||
// been used.
|
||||
// CALL.X _mi_initialize;
|
||||
|
||||
#if defined(__ADSPLPBLACKFIN__)
|
||||
#if SET_CLOCK_SPEED == 1
|
||||
|
||||
#if 0
|
||||
// Check if this feature is enabled, i.e. ___clk_ctrl is defined to non-zero
|
||||
P0.L = ___clk_ctrl;
|
||||
P0.H = ___clk_ctrl;
|
||||
R0 = MAX_IN_STARTUP;
|
||||
R1 = [P0];
|
||||
R0 = R0 - R1;
|
||||
CC = R0;
|
||||
IF CC JUMP L$clock_is_set;
|
||||
#endif
|
||||
|
||||
// Investigate whether we are a suitable revision
|
||||
// for boosting the system clocks.
|
||||
// speed.
|
||||
P0.L = DSPID & 0xFFFF;
|
||||
P0.H = DSPID >> 16;
|
||||
R0 = [P0];
|
||||
R0 = R0.L (Z);
|
||||
CC = R0 < 2;
|
||||
IF CC JUMP L$clock_is_set;
|
||||
|
||||
// Set the internal Voltage-Controlled Oscillator (VCO)
|
||||
R0 = SET_CLK_MSEL (Z);
|
||||
R1 = SET_CLK_DF (Z);
|
||||
R2 = SET_CLK_LOCK_COUNT (Z);
|
||||
CALL.X __pll_set_system_vco;
|
||||
|
||||
// Set the Core and System clocks
|
||||
R0 = SET_CLK_CSEL (Z);
|
||||
R1 = SET_CLK_SSEL (Z);
|
||||
CALL.X __pll_set_system_clocks;
|
||||
|
||||
L$clock_is_set:
|
||||
#endif
|
||||
#endif /* ADSPLPBLACKFIN */
|
||||
|
||||
#if defined(__ADSPBF561__) || defined(__ADSPBF566__)
|
||||
// Initialise the multi-core data tables.
|
||||
// A dummy function will be called if we are not linking with
|
||||
// -multicore
|
||||
// CALL.X __mc_data_initialise;
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
// Write the cplb exception handler to the EVT if approprate and
|
||||
// initialise the CPLBs if they're needed. couldn't do
|
||||
// this before we set up the stacks.
|
||||
P2.H = ___cplb_ctrl;
|
||||
P2.L = ___cplb_ctrl;
|
||||
R0 = CPLB_ENABLE_ANY_CPLBS;
|
||||
R6 = [P2];
|
||||
R0 = R0 & R6;
|
||||
CC = R0;
|
||||
IF !CC JUMP L$no_cplbs;
|
||||
#if !defined(_ADI_THREADS)
|
||||
P1.H = __cplb_hdr;
|
||||
P1.L = __cplb_hdr;
|
||||
P0.H = IVBh;
|
||||
P0.L = IVBl;
|
||||
[P0+12] = P1; // write exception handler
|
||||
#endif /* _ADI_THREADS */
|
||||
R0 = R6;
|
||||
CALL.X __cplb_init;
|
||||
#endif
|
||||
L$no_cplbs:
|
||||
// Enable interrupts
|
||||
STI R4; // Using the mask from default handlers
|
||||
RAISE 15;
|
||||
|
||||
// Move the processor into user mode.
|
||||
P0.L=L$still_interrupt_in_ipend;
|
||||
P0.H=L$still_interrupt_in_ipend;
|
||||
RETI=P0;
|
||||
|
||||
L$still_interrupt_in_ipend:
|
||||
rti; // keep doing 'rti' until we've 'finished' servicing all
|
||||
// interrupts of priority higher than IVG15. Normally one
|
||||
// would expect to only have the reset interrupt in IPEND
|
||||
// being serviced, but occasionally when debugging this may
|
||||
// not be the case - if restart is hit when servicing an
|
||||
// interrupt.
|
||||
//
|
||||
// When we clear all bits from IPEND, we'll enter user mode,
|
||||
// then we'll automatically jump to supervisor_mode to start
|
||||
// servicing IVG15 (which we will 'service' for the whole
|
||||
// program, so that the program is in supervisor mode.
|
||||
//
|
||||
// Need to do this to 'finish' servicing the reset interupt.
|
||||
|
||||
L$supervisor_mode:
|
||||
[--SP] = RETI; // re-enables the interrupt system
|
||||
|
||||
R0.L = UNASSIGNED_VAL;
|
||||
R0.H = UNASSIGNED_VAL;
|
||||
#if UNASSIGNED_FILL
|
||||
R2=R0;
|
||||
R3=R0;
|
||||
R4=R0;
|
||||
R5=R0;
|
||||
R6=R0;
|
||||
R7=R0;
|
||||
P0=R0;
|
||||
P1=R0;
|
||||
P2=R0;
|
||||
P3=R0;
|
||||
P4=R0;
|
||||
P5=R0;
|
||||
#endif
|
||||
// Push a RETS and Old FP onto the stack, for sanity.
|
||||
[--SP]=R0;
|
||||
[--SP]=R0;
|
||||
// Make sure the FP is sensible.
|
||||
FP = SP;
|
||||
|
||||
// And leave space for incoming "parameters"
|
||||
SP += -12;
|
||||
|
||||
#ifdef PROFCRT
|
||||
CALL.X monstartup; // initialise profiling routines
|
||||
#endif /* PROFCRT */
|
||||
|
||||
#ifndef __ADSPBF561_COREB__
|
||||
CALL.X __init;
|
||||
|
||||
R0.L = __fini;
|
||||
R0.H = __fini;
|
||||
CALL.X _atexit;
|
||||
#endif
|
||||
|
||||
#if !defined(_ADI_THREADS)
|
||||
#ifdef FIOCRT
|
||||
// FILE IO provides access to real command-line arguments.
|
||||
CALL.X __getargv;
|
||||
r1.l=__Argv;
|
||||
r1.h=__Argv;
|
||||
#else
|
||||
// Default to having no arguments and a null list.
|
||||
R0=0;
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
R1.L=L$argv_coreb;
|
||||
R1.H=L$argv_coreb;
|
||||
#else
|
||||
R1.L=L$argv;
|
||||
R1.H=L$argv;
|
||||
#endif
|
||||
#endif /* FIOCRT */
|
||||
#endif /* _ADI_THREADS */
|
||||
|
||||
// At long last, call the application program.
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
CALL.X _coreb_main;
|
||||
#else
|
||||
CALL.X _main;
|
||||
#endif
|
||||
|
||||
#if !defined(_ADI_THREADS)
|
||||
#ifndef __ADSPBF561_COREB__
|
||||
CALL.X _exit; // passing in main's return value
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.size __coreb_start, .-__coreb_start
|
||||
#else
|
||||
.size __start, .-__start
|
||||
#endif
|
||||
|
||||
.align 2
|
||||
.type __unknown_exception_occurred, STT_FUNC;
|
||||
__unknown_exception_occurred:
|
||||
// This function is invoked by the default exception
|
||||
// handler, if it does not recognise the kind of
|
||||
// exception that has occurred. In other words, the
|
||||
// default handler only handles some of the system's
|
||||
// exception types, and it does not expect any others
|
||||
// to occur. If your application is going to be using
|
||||
// other kinds of exceptions, you must replace the
|
||||
// default handler with your own, that handles all the
|
||||
// exceptions you will use.
|
||||
//
|
||||
// Since there's nothing we can do, we just loop here
|
||||
// at what we hope is a suitably informative label.
|
||||
IDLE;
|
||||
CSYNC;
|
||||
JUMP __unknown_exception_occurred;
|
||||
RTS;
|
||||
.size __unknown_exception_occurred, .-__unknown_exception_occurred
|
||||
|
||||
#if defined(__ADSPLPBLACKFIN__)
|
||||
#if SET_CLOCK_SPEED == 1
|
||||
|
||||
/*
|
||||
** CLKIN == 27MHz on the EZ-Kits.
|
||||
** D==0 means CLKIN is passed to PLL without dividing.
|
||||
** MSEL==0x16 means VCO==27*0x16 == 594MHz
|
||||
** CSEL==0 means CCLK==VCO == 594MHz
|
||||
** SSEL==5 means SCLK==VCO/5 == 118MHz
|
||||
*/
|
||||
|
||||
// int pll_set_system_clocks(int csel, int ssel)
|
||||
// returns 0 for success, -1 for error.
|
||||
|
||||
.align 2
|
||||
.type __pll_set_system_clocks, STT_FUNC;
|
||||
__pll_set_system_clocks:
|
||||
P0.H = PLL_DIV >> 16;
|
||||
P0.L = PLL_DIV & 0xFFFF;
|
||||
R2 = W[P0] (Z);
|
||||
|
||||
// Plant CSEL and SSEL
|
||||
R0 <<= 16;
|
||||
R0.L = (4 << 8) | 2; // 2 bits, at posn 4
|
||||
R1 <<= 16;
|
||||
R1.L = 4; // 4 bits, at posn 0
|
||||
R2 = DEPOSIT(R2, R0);
|
||||
|
||||
#if defined(__WORKAROUND_DREG_COMP_LATENCY)
|
||||
// Work around anomaly 05-00-0209 which affects the DEPOSIT
|
||||
// instruction (and the EXTRACT, SIGNBITS, and EXPADJ instructions)
|
||||
// if the previous instruction created any of its operands
|
||||
NOP;
|
||||
#endif
|
||||
|
||||
R2 = DEPOSIT(R2, R1);
|
||||
|
||||
W[P0] = R2;
|
||||
SSYNC;
|
||||
RTS;
|
||||
.size __pll_set_system_clocks, .-__pll_set_system_clocks
|
||||
|
||||
// int pll_set_system_vco(int msel, int df, lockcnt)
|
||||
.align 2
|
||||
.type __pll_set_system_vco, STT_FUNC;
|
||||
__pll_set_system_vco:
|
||||
P0.H = PLL_CTL >> 16;
|
||||
P0.L = PLL_CTL & 0xFFFF;
|
||||
R3 = W[P0] (Z);
|
||||
P2 = R3; // Save copy
|
||||
R3 >>= 1; // Drop old DF
|
||||
R1 = ROT R1 BY -1; // Move DF into CC
|
||||
R3 = ROT R3 BY 1; // and into ctl space.
|
||||
R0 <<= 16; // Set up pattern reg
|
||||
R0.L = (9<<8) | 6; // (6 bits at posn 9)
|
||||
R1 = P2; // Get the old version
|
||||
R3 = DEPOSIT(R3, R0);
|
||||
CC = R1 == R3; // and if we haven't changed
|
||||
IF CC JUMP L$done; // Anything, return
|
||||
|
||||
CC = R2 == 0; // Use default lockcount if
|
||||
IF CC JUMP L$wakeup; // user one is zero.
|
||||
P2.H = PLL_LOCKCNT >> 16;
|
||||
P2.L = PLL_LOCKCNT & 0xFFFF;
|
||||
W[P2] = R2; // Set the lock counter
|
||||
L$wakeup:
|
||||
P2.H = SIC_IWR >> 16;
|
||||
P2.L = SIC_IWR & 0xFFFF;
|
||||
R2 = [P2];
|
||||
BITSET(R2, 0); // enable PLL Wakeup
|
||||
[P2] = R2;
|
||||
|
||||
W[P0] = R3; // Update PLL_CTL
|
||||
SSYNC;
|
||||
|
||||
CLI R2; // Avoid unnecessary interrupts
|
||||
IDLE; // Wait until PLL has locked
|
||||
STI R2; // Restore interrupts.
|
||||
|
||||
L$done:
|
||||
RTS;
|
||||
.size __pll_set_system_vco, .-__pll_set_system_vco
|
||||
#endif
|
||||
#endif /* ADSPLPBLACKFIN */
|
||||
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.section .b.text,"ax",@progbits
|
||||
.type __coreb_memset, STT_FUNC
|
||||
__coreb_memset:
|
||||
P0 = R0 ; /* P0 = address */
|
||||
P2 = R2 ; /* P2 = count */
|
||||
R3 = R0 + R2; /* end */
|
||||
CC = R2 <= 7(IU);
|
||||
IF CC JUMP .Ltoo_small;
|
||||
R1 = R1.B (Z); /* R1 = fill char */
|
||||
R2 = 3;
|
||||
R2 = R0 & R2; /* addr bottom two bits */
|
||||
CC = R2 == 0; /* AZ set if zero. */
|
||||
IF !CC JUMP .Lforce_align ; /* Jump if addr not aligned. */
|
||||
|
||||
.Laligned:
|
||||
P1 = P2 >> 2; /* count = n/4 */
|
||||
R2 = R1 << 8; /* create quad filler */
|
||||
R2.L = R2.L + R1.L(NS);
|
||||
R2.H = R2.L + R1.H(NS);
|
||||
P2 = R3;
|
||||
|
||||
LSETUP (.Lquad_loop , .Lquad_loop) LC0=P1;
|
||||
.Lquad_loop:
|
||||
[P0++] = R2;
|
||||
|
||||
CC = P0 == P2;
|
||||
IF !CC JUMP .Lbytes_left;
|
||||
RTS;
|
||||
|
||||
.Lbytes_left:
|
||||
R2 = R3; /* end point */
|
||||
R3 = P0; /* current position */
|
||||
R2 = R2 - R3; /* bytes left */
|
||||
P2 = R2;
|
||||
|
||||
.Ltoo_small:
|
||||
CC = P2 == 0; /* Check zero count */
|
||||
IF CC JUMP .Lfinished; /* Unusual */
|
||||
|
||||
.Lbytes:
|
||||
LSETUP (.Lbyte_loop , .Lbyte_loop) LC0=P2;
|
||||
.Lbyte_loop:
|
||||
B[P0++] = R1;
|
||||
|
||||
.Lfinished:
|
||||
RTS;
|
||||
|
||||
.Lforce_align:
|
||||
CC = BITTST (R0, 0); /* odd byte */
|
||||
R0 = 4;
|
||||
R0 = R0 - R2;
|
||||
P1 = R0;
|
||||
R0 = P0; /* Recover return address */
|
||||
IF !CC JUMP .Lskip1;
|
||||
B[P0++] = R1;
|
||||
.Lskip1:
|
||||
CC = R2 <= 2; /* 2 bytes */
|
||||
P2 -= P1; /* reduce count */
|
||||
IF !CC JUMP .Laligned;
|
||||
B[P0++] = R1;
|
||||
B[P0++] = R1;
|
||||
JUMP .Laligned;
|
||||
.size __coreb_memset,.-__coreb_memset
|
||||
#endif
|
||||
|
||||
#ifdef __ADSPBF561_COREB__
|
||||
.section .b.bss,"aw",@progbits
|
||||
.align 4
|
||||
.type L$argv_coreb, @object
|
||||
.size L$argv_coreb, 4
|
||||
L$argv_coreb:
|
||||
.zero 4
|
||||
#else
|
||||
.local L$argv
|
||||
.comm L$argv,4,4
|
||||
#endif
|
||||
|
26
gcc/libgloss/bfin/bf504.ld
Normal file
26
gcc/libgloss/bfin/bf504.ld
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF506 processor.
|
||||
*
|
||||
* Copyright (C) 2007-2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA04000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
26
gcc/libgloss/bfin/bf506.ld
Normal file
26
gcc/libgloss/bfin/bf506.ld
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF506 processor.
|
||||
*
|
||||
* Copyright (C) 2007-2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA04000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf512.ld
Normal file
27
gcc/libgloss/bfin/bf512.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF512 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf514.ld
Normal file
27
gcc/libgloss/bfin/bf514.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF514 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf516.ld
Normal file
27
gcc/libgloss/bfin/bf516.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF516 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf518.ld
Normal file
27
gcc/libgloss/bfin/bf518.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF518 processor.
|
||||
*
|
||||
* Copyright (C) 2009 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf522.ld
Normal file
27
gcc/libgloss/bfin/bf522.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF522 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf523.ld
Normal file
27
gcc/libgloss/bfin/bf523.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF523 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf524.ld
Normal file
27
gcc/libgloss/bfin/bf524.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF522 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf525.ld
Normal file
27
gcc/libgloss/bfin/bf525.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF525 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf526.ld
Normal file
27
gcc/libgloss/bfin/bf526.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF522 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf527.ld
Normal file
27
gcc/libgloss/bfin/bf527.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF527 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xc000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
26
gcc/libgloss/bfin/bf531.ld
Normal file
26
gcc/libgloss/bfin/bf531.ld
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF531 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA08000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF804000, LENGTH = 0x4000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf532.ld
Normal file
27
gcc/libgloss/bfin/bf532.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF532 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA08000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF904000, LENGTH = 0x4000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF804000, LENGTH = 0x4000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf533.ld
Normal file
27
gcc/libgloss/bfin/bf533.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF533 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf534.ld
Normal file
27
gcc/libgloss/bfin/bf534.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF534 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xC000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf536.ld
Normal file
27
gcc/libgloss/bfin/bf536.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF536 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xC000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF904000, LENGTH = 0x4000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF804000, LENGTH = 0x4000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf537.ld
Normal file
27
gcc/libgloss/bfin/bf537.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF537 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0xC000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf538.ld
Normal file
27
gcc/libgloss/bfin/bf538.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF538 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf539.ld
Normal file
27
gcc/libgloss/bfin/bf539.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executable running on
|
||||
* ADSP-BF539 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x10000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
27
gcc/libgloss/bfin/bf542.ld
Normal file
27
gcc/libgloss/bfin/bf542.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF542 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
27
gcc/libgloss/bfin/bf544.ld
Normal file
27
gcc/libgloss/bfin/bf544.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF544 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
27
gcc/libgloss/bfin/bf547.ld
Normal file
27
gcc/libgloss/bfin/bf547.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF547 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
27
gcc/libgloss/bfin/bf548.ld
Normal file
27
gcc/libgloss/bfin/bf548.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF548 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
27
gcc/libgloss/bfin/bf549.ld
Normal file
27
gcc/libgloss/bfin/bf549.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF549 processor.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x8000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
27
gcc/libgloss/bfin/bf561.ld
Normal file
27
gcc/libgloss/bfin/bf561.ld
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF561 processor (single core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
}
|
34
gcc/libgloss/bfin/bf561a.ld
Normal file
34
gcc/libgloss/bfin/bf561a.ld
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core A of ADSP-BF561 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
B_MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x0
|
||||
B_MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x0
|
||||
B_MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x0
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB08000, LENGTH = 0x8000
|
||||
MEM_L2_SHARED : ORIGIN = 0xFEB10000, LENGTH = 0x10000
|
||||
}
|
36
gcc/libgloss/bfin/bf561b.ld
Normal file
36
gcc/libgloss/bfin/bf561b.ld
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* Core B of ADSP-BF561 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
/* These B_MEM_* are Core A memory region with zero length.
|
||||
They just provide dummy memory region to satisfy bfin-common-mc.ld. */
|
||||
B_MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x0
|
||||
B_MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x0
|
||||
B_MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x0
|
||||
B_MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x0
|
||||
|
||||
MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x8000
|
||||
MEM_L2_SHARED : ORIGIN = 0xFEB10000, LENGTH = 0x10000
|
||||
}
|
34
gcc/libgloss/bfin/bf561m.ld
Normal file
34
gcc/libgloss/bfin/bf561m.ld
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF561 processor (dual core).
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x8000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
B_MEM_L1_CODE : ORIGIN = 0xFF600000, LENGTH = 0x4000
|
||||
B_MEM_L1_CODE_CACHE : ORIGIN = 0xFF610000, LENGTH = 0x4000
|
||||
B_MEM_L1_SCRATCH : ORIGIN = 0xFF700000, LENGTH = 0x1000
|
||||
B_MEM_L1_DATA_B : ORIGIN = 0xFF500000, LENGTH = 0x8000
|
||||
B_MEM_L1_DATA_A : ORIGIN = 0xFF400000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x20000
|
||||
MEM_L2_SHARED : ORIGIN = 0xFEB20000, LENGTH = 0x0
|
||||
}
|
26
gcc/libgloss/bfin/bf592.ld
Normal file
26
gcc/libgloss/bfin/bf592.ld
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* The default linker script for standalone executables running on
|
||||
* ADSP-BF592 processor.
|
||||
*
|
||||
* Copyright (C) 2007-2010 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x4000
|
||||
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA04000, LENGTH = 0x4000
|
||||
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0x1000
|
||||
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x8000
|
||||
|
||||
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
|
||||
}
|
260
gcc/libgloss/bfin/bfin-common-mc.ld
Normal file
260
gcc/libgloss/bfin/bfin-common-mc.ld
Normal file
@ -0,0 +1,260 @@
|
||||
/*
|
||||
* The common part of the default linker scripts for standalone executables
|
||||
* running on single core Blackfin processors.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/* The default linker script, for single core blackfin standalone executables */
|
||||
OUTPUT_FORMAT("elf32-bfin", "elf32-bfin",
|
||||
"elf32-bfin")
|
||||
OUTPUT_ARCH(bfin)
|
||||
ENTRY(__start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
PROVIDE (__executable_start = 0x0); . = 0x0;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.init : { *(.rel.init) }
|
||||
.rela.init : { *(.rela.init) }
|
||||
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
|
||||
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
|
||||
.rel.fini : { *(.rel.fini) }
|
||||
.rela.fini : { *(.rela.fini) }
|
||||
.rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
|
||||
.rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
|
||||
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
|
||||
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
|
||||
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
|
||||
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
|
||||
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
|
||||
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
|
||||
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
|
||||
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) }
|
||||
.rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) }
|
||||
.rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) }
|
||||
.rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) }
|
||||
.rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) }
|
||||
.rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) }
|
||||
.rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) }
|
||||
.rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) }
|
||||
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
|
||||
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.l2 :
|
||||
{
|
||||
*(.l2 .l2.*)
|
||||
} >MEM_L2 =0
|
||||
.l2_shared :
|
||||
{
|
||||
*(.l2_shared .l2_shared.*)
|
||||
} >MEM_L2_SHARED =0
|
||||
.b.text :
|
||||
{
|
||||
*(.b.text .b.text.* .b.l1.text .b.l1.text.*)
|
||||
} >B_MEM_L1_CODE =0
|
||||
.text :
|
||||
{
|
||||
*(.text .stub .text.* .gnu.linkonce.t.* .l1.text .l1.text.*)
|
||||
KEEP (*(.text.*personality*))
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
} >MEM_L1_CODE =0
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} >MEM_L1_CODE =0
|
||||
.plt : { *(.plt) } >MEM_L1_CODE
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} >MEM_L1_CODE =0
|
||||
PROVIDE (__etext = .);
|
||||
PROVIDE (_etext = .);
|
||||
PROVIDE (etext = .);
|
||||
.b.rodata : { *(.b.rodata .b.rodata.*) } >B_MEM_L1_DATA_A
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >MEM_L1_DATA_A
|
||||
.rodata1 : { *(.rodata1) } >MEM_L1_DATA_A
|
||||
.sdata2 :
|
||||
{
|
||||
*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
|
||||
} >MEM_L1_DATA_A
|
||||
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >MEM_L1_DATA_A
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) } >MEM_L1_DATA_A
|
||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(0x1000) + (. & (0x1000 - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >MEM_L1_DATA_A
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >MEM_L1_DATA_A
|
||||
.preinit_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (___preinit_array_start = .);
|
||||
KEEP (*(.preinit_array))
|
||||
PROVIDE_HIDDEN (___preinit_array_end = .);
|
||||
} >MEM_L1_DATA_A
|
||||
.init_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (___init_array_start = .);
|
||||
KEEP (*(SORT(.init_array.*)))
|
||||
KEEP (*(.init_array))
|
||||
PROVIDE_HIDDEN (___init_array_end = .);
|
||||
} >MEM_L1_DATA_A
|
||||
.fini_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (___fini_array_start = .);
|
||||
KEEP (*(.fini_array))
|
||||
KEEP (*(SORT(.fini_array.*)))
|
||||
PROVIDE_HIDDEN (___fini_array_end = .);
|
||||
} >MEM_L1_DATA_A
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin*.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
} >MEM_L1_DATA_A
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin*.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
} >MEM_L1_DATA_A
|
||||
.jcr : { KEEP (*(.jcr)) } >MEM_L1_DATA_A
|
||||
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } >MEM_L1_DATA_A
|
||||
.dynamic : { *(.dynamic) } >MEM_L1_DATA_A
|
||||
.b.data :
|
||||
{
|
||||
*(.b.data .b.data.* .b.l1.data .b.l1.data.*)
|
||||
} >B_MEM_L1_DATA_A
|
||||
.data :
|
||||
{
|
||||
*(.data .data.* .gnu.linkonce.d.* .l1.data .l1.data.*)
|
||||
KEEP (*(.gnu.linkonce.d.*personality*))
|
||||
SORT(CONSTRUCTORS)
|
||||
} >MEM_L1_DATA_A
|
||||
.data1 : { *(.data1) } >MEM_L1_DATA_A
|
||||
.got : { *(.got.plt) *(.got) } >MEM_L1_DATA_A
|
||||
/* We want the small data sections together, so single-instruction offsets
|
||||
can access them all, and initialized data all before uninitialized, so
|
||||
we can shorten the on-disk segment size. */
|
||||
.sdata :
|
||||
{
|
||||
*(.sdata .sdata.* .gnu.linkonce.s.*)
|
||||
} >MEM_L1_DATA_A
|
||||
__edata = .; PROVIDE (_edata = .);
|
||||
.b.sbss :
|
||||
{
|
||||
__coreb_bss_start = .;
|
||||
} >B_MEM_L1_DATA_A
|
||||
.b.bss :
|
||||
{
|
||||
*(.b.bss .b.bss.*)
|
||||
__coreb_bss_end = .;
|
||||
} >B_MEM_L1_DATA_A
|
||||
.sbss :
|
||||
{
|
||||
__bss_start = .;
|
||||
*(.dynsbss)
|
||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||
*(.scommon)
|
||||
} >MEM_L1_DATA_A
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections.
|
||||
FIXME: Why do we need it? When there is no .bss section, we don't
|
||||
pad the .data section. */
|
||||
. = ALIGN(. != 0 ? 32 / 8 : 1);
|
||||
__bss_end = .;
|
||||
} >MEM_L1_DATA_A
|
||||
. = ALIGN(32 / 8);
|
||||
. = ALIGN(32 / 8);
|
||||
__end = .; PROVIDE (_end = .);
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
|
||||
__stack_end = ORIGIN(MEM_L1_SCRATCH) + LENGTH(MEM_L1_SCRATCH);
|
||||
__coreb_stack_end = ORIGIN(B_MEM_L1_SCRATCH) + LENGTH(B_MEM_L1_SCRATCH);
|
||||
|
||||
/DISCARD/ : { *(.note.GNU-stack) }
|
||||
}
|
237
gcc/libgloss/bfin/bfin-common-sc.ld
Normal file
237
gcc/libgloss/bfin/bfin-common-sc.ld
Normal file
@ -0,0 +1,237 @@
|
||||
/*
|
||||
* The common part of the default linker scripts for standalone executables
|
||||
* running on single core Blackfin processors.
|
||||
*
|
||||
* Copyright (C) 2008 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/* The default linker script, for single core blackfin standalone executables */
|
||||
OUTPUT_FORMAT("elf32-bfin", "elf32-bfin",
|
||||
"elf32-bfin")
|
||||
OUTPUT_ARCH(bfin)
|
||||
ENTRY(__start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
PROVIDE (__executable_start = 0x0); . = 0x0;
|
||||
.interp : { *(.interp) }
|
||||
.hash : { *(.hash) }
|
||||
.dynsym : { *(.dynsym) }
|
||||
.dynstr : { *(.dynstr) }
|
||||
.gnu.version : { *(.gnu.version) }
|
||||
.gnu.version_d : { *(.gnu.version_d) }
|
||||
.gnu.version_r : { *(.gnu.version_r) }
|
||||
.rel.init : { *(.rel.init) }
|
||||
.rela.init : { *(.rela.init) }
|
||||
.rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
|
||||
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
|
||||
.rel.fini : { *(.rel.fini) }
|
||||
.rela.fini : { *(.rela.fini) }
|
||||
.rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
|
||||
.rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
|
||||
.rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) }
|
||||
.rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) }
|
||||
.rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
|
||||
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
|
||||
.rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
|
||||
.rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
|
||||
.rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
|
||||
.rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
|
||||
.rel.ctors : { *(.rel.ctors) }
|
||||
.rela.ctors : { *(.rela.ctors) }
|
||||
.rel.dtors : { *(.rel.dtors) }
|
||||
.rela.dtors : { *(.rela.dtors) }
|
||||
.rel.got : { *(.rel.got) }
|
||||
.rela.got : { *(.rela.got) }
|
||||
.rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) }
|
||||
.rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) }
|
||||
.rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) }
|
||||
.rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) }
|
||||
.rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) }
|
||||
.rela.sdata2 : { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) }
|
||||
.rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) }
|
||||
.rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) }
|
||||
.rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
|
||||
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
|
||||
.rel.plt : { *(.rel.plt) }
|
||||
.rela.plt : { *(.rela.plt) }
|
||||
.l2 :
|
||||
{
|
||||
*(.l2 .l2.*)
|
||||
} >MEM_L2 =0
|
||||
.text :
|
||||
{
|
||||
*(.text .stub .text.* .gnu.linkonce.t.* .l1.text .l1.text.*)
|
||||
KEEP (*(.text.*personality*))
|
||||
/* .gnu.warning sections are handled specially by elf32.em. */
|
||||
*(.gnu.warning)
|
||||
} >MEM_L1_CODE =0
|
||||
.init :
|
||||
{
|
||||
KEEP (*(.init))
|
||||
} >MEM_L1_CODE =0
|
||||
.plt : { *(.plt) } >MEM_L1_CODE
|
||||
.fini :
|
||||
{
|
||||
KEEP (*(.fini))
|
||||
} >MEM_L1_CODE =0
|
||||
PROVIDE (__etext = .);
|
||||
PROVIDE (_etext = .);
|
||||
PROVIDE (etext = .);
|
||||
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } >MEM_L1_DATA_A
|
||||
.rodata1 : { *(.rodata1) } >MEM_L1_DATA_A
|
||||
.sdata2 :
|
||||
{
|
||||
*(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
|
||||
} >MEM_L1_DATA_A
|
||||
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } >MEM_L1_DATA_A
|
||||
.eh_frame_hdr : { *(.eh_frame_hdr) } >MEM_L1_DATA_A
|
||||
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
|
||||
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
|
||||
/* Adjust the address for the data segment. We want to adjust up to
|
||||
the same address within the page on the next page up. */
|
||||
. = ALIGN(0x1000) + (. & (0x1000 - 1));
|
||||
/* Exception handling */
|
||||
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } >MEM_L1_DATA_A
|
||||
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } >MEM_L1_DATA_A
|
||||
/* Thread Local Storage sections */
|
||||
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } >MEM_L1_DATA_A
|
||||
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >MEM_L1_DATA_A
|
||||
.preinit_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (___preinit_array_start = .);
|
||||
KEEP (*(.preinit_array))
|
||||
PROVIDE_HIDDEN (___preinit_array_end = .);
|
||||
} >MEM_L1_DATA_A
|
||||
.init_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (___init_array_start = .);
|
||||
KEEP (*(SORT(.init_array.*)))
|
||||
KEEP (*(.init_array))
|
||||
PROVIDE_HIDDEN (___init_array_end = .);
|
||||
} >MEM_L1_DATA_A
|
||||
.fini_array :
|
||||
{
|
||||
PROVIDE_HIDDEN (___fini_array_start = .);
|
||||
KEEP (*(.fini_array))
|
||||
KEEP (*(SORT(.fini_array.*)))
|
||||
PROVIDE_HIDDEN (___fini_array_end = .);
|
||||
} >MEM_L1_DATA_A
|
||||
.ctors :
|
||||
{
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*crtbegin*.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
} >MEM_L1_DATA_A
|
||||
.dtors :
|
||||
{
|
||||
KEEP (*crtbegin*.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
} >MEM_L1_DATA_A
|
||||
.jcr : { KEEP (*(.jcr)) } >MEM_L1_DATA_A
|
||||
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } >MEM_L1_DATA_A
|
||||
.dynamic : { *(.dynamic) } >MEM_L1_DATA_A
|
||||
.data :
|
||||
{
|
||||
*(.data .data.* .gnu.linkonce.d.* .l1.data .l1.data.*)
|
||||
KEEP (*(.gnu.linkonce.d.*personality*))
|
||||
SORT(CONSTRUCTORS)
|
||||
} >MEM_L1_DATA_A
|
||||
.data1 : { *(.data1) } >MEM_L1_DATA_A
|
||||
.got : { *(.got.plt) *(.got) } >MEM_L1_DATA_A
|
||||
/* We want the small data sections together, so single-instruction offsets
|
||||
can access them all, and initialized data all before uninitialized, so
|
||||
we can shorten the on-disk segment size. */
|
||||
.sdata :
|
||||
{
|
||||
*(.sdata .sdata.* .gnu.linkonce.s.*)
|
||||
} >MEM_L1_DATA_A
|
||||
__edata = .; PROVIDE (_edata = .);
|
||||
.sbss :
|
||||
{
|
||||
__bss_start = .;
|
||||
*(.dynsbss)
|
||||
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
||||
*(.scommon)
|
||||
} >MEM_L1_DATA_A
|
||||
.bss :
|
||||
{
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
*(COMMON)
|
||||
/* Align here to ensure that the .bss section occupies space up to
|
||||
_end. Align after .bss to ensure correct alignment even if the
|
||||
.bss section disappears because there are no input sections.
|
||||
FIXME: Why do we need it? When there is no .bss section, we don't
|
||||
pad the .data section. */
|
||||
. = ALIGN(. != 0 ? 32 / 8 : 1);
|
||||
__bss_end = .;
|
||||
} >MEM_L1_DATA_A
|
||||
. = ALIGN(32 / 8);
|
||||
. = ALIGN(32 / 8);
|
||||
__end = .; PROVIDE (_end = .);
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section so we begin them at 0. */
|
||||
/* DWARF 1 */
|
||||
.debug 0 : { *(.debug) }
|
||||
.line 0 : { *(.line) }
|
||||
/* GNU DWARF 1 extensions */
|
||||
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||
/* DWARF 1.1 and DWARF 2 */
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
/* DWARF 2 */
|
||||
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_frame 0 : { *(.debug_frame) }
|
||||
.debug_str 0 : { *(.debug_str) }
|
||||
.debug_loc 0 : { *(.debug_loc) }
|
||||
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||
/* SGI/MIPS DWARF 2 extensions */
|
||||
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||
.debug_typenames 0 : { *(.debug_typenames) }
|
||||
.debug_varnames 0 : { *(.debug_varnames) }
|
||||
|
||||
__stack_end = ORIGIN(MEM_L1_SCRATCH) + LENGTH(MEM_L1_SCRATCH);
|
||||
|
||||
/DISCARD/ : { *(.note.GNU-stack) }
|
||||
}
|
33
gcc/libgloss/bfin/clear_cache_range.c
Normal file
33
gcc/libgloss/bfin/clear_cache_range.c
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* C library support files for the Blackfin processor
|
||||
*
|
||||
* Copyright (C) 2010 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/* This is a callback which gcc itself wants to flush jump tables.
|
||||
|
||||
Map it into L1 Text because of anomalies 05-00-0312 and 05-00-0419. */
|
||||
|
||||
__attribute__ ((l1_text))
|
||||
void __clear_cache_range (char *beg, char *end)
|
||||
{
|
||||
char *ptr = beg;
|
||||
do {
|
||||
__asm__ __volatile__ ("FLUSH [%0++];" : "+a" (ptr) : : "memory");
|
||||
} while (ptr <= end);
|
||||
ptr = beg;
|
||||
__asm__ __volatile__ ("SSYNC;");
|
||||
do {
|
||||
__asm__ __volatile__ ("IFLUSH [%0++];" : "+a" (ptr) : : "memory");
|
||||
} while (ptr <= end);
|
||||
}
|
3731
gcc/libgloss/bfin/configure
vendored
Executable file
3731
gcc/libgloss/bfin/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
54
gcc/libgloss/bfin/configure.in
Normal file
54
gcc/libgloss/bfin/configure.in
Normal file
@ -0,0 +1,54 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(crt0.S)
|
||||
|
||||
if test "${enable_shared}" = "yes" ; then
|
||||
echo "Shared libraries not supported for cross compiling, ignored"
|
||||
fi
|
||||
|
||||
if test "$srcdir" = "." ; then
|
||||
if test "${with_target_subdir}" != "." ; then
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../../.."
|
||||
else
|
||||
libgloss_topdir="${srcdir}/${with_multisrctop}../.."
|
||||
fi
|
||||
else
|
||||
libgloss_topdir="${srcdir}/../.."
|
||||
fi
|
||||
AC_CONFIG_AUX_DIR($libgloss_topdir)
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_ARG_PROGRAM
|
||||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
LIB_AC_PROG_CC
|
||||
AS=${AS-as}
|
||||
AC_SUBST(AS)
|
||||
AR=${AR-ar}
|
||||
AC_SUBST(AR)
|
||||
LD=${LD-ld}
|
||||
AC_SUBST(LD)
|
||||
AC_PROG_RANLIB
|
||||
LIB_AM_PROG_AS
|
||||
|
||||
host_makefile_frag=${srcdir}/../config/default.mh
|
||||
|
||||
dnl We have to assign the same value to other variables because autoconf
|
||||
dnl doesn't provide a mechanism to substitute a replacement keyword with
|
||||
dnl arbitrary data or pathnames.
|
||||
dnl
|
||||
host_makefile_frag_path=$host_makefile_frag
|
||||
AC_SUBST(host_makefile_frag_path)
|
||||
AC_SUBST_FILE(host_makefile_frag)
|
||||
|
||||
AC_CONFIG_FILES(Makefile,
|
||||
. ${libgloss_topdir}/config-ml.in,
|
||||
srcdir=${srcdir}
|
||||
target=${target}
|
||||
with_multisubdir=${with_multisubdir}
|
||||
ac_configure_args="${ac_configure_args} --enable-multilib"
|
||||
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
libgloss_topdir=${libgloss_topdir}
|
||||
)
|
||||
AC_OUTPUT
|
72
gcc/libgloss/bfin/crt0.S
Normal file
72
gcc/libgloss/bfin/crt0.S
Normal file
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* crt0.S for the Blackfin processor
|
||||
*
|
||||
* Copyright (C) 2006 Analog Devices, Inc.
|
||||
*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
.text
|
||||
.align 2
|
||||
|
||||
.global __start
|
||||
__start:
|
||||
|
||||
/* Start by setting up a stack */
|
||||
link 0xc;
|
||||
/* Zero the memory in the .bss section. */
|
||||
|
||||
p0.l = __edata;
|
||||
p0.h = __edata;
|
||||
p1.l = __end;
|
||||
p1.h = __end;
|
||||
p1 -= p0;
|
||||
r0 = 0;
|
||||
lsetup (L$L$clear_bss, L$L$clear_bss) lc0 = p1;
|
||||
L$L$clear_bss:
|
||||
B [p0++] = r0;
|
||||
|
||||
#ifdef __BFIN_FDPIC__
|
||||
/* Set up GOT pointer. */
|
||||
P0.L = __ROFIXUP_END__;
|
||||
P0.H = __ROFIXUP_END__;
|
||||
P4 = [P0 - 4];
|
||||
#endif
|
||||
|
||||
/* Need to set up standard file handles */
|
||||
/* Parse string at r1 */
|
||||
|
||||
p0.l = __init;
|
||||
p0.h = __init;
|
||||
P3 = P4;
|
||||
call (p0)
|
||||
|
||||
p0.l = _atexit;
|
||||
p0.h = _atexit;
|
||||
#ifdef __BFIN_FDPIC__
|
||||
r0 = [P4 + __fini@FUNCDESC_GOT17M4];
|
||||
P3 = P4;
|
||||
#else
|
||||
r0.l = __fini;
|
||||
r0.h = __fini;
|
||||
#endif
|
||||
call (p0)
|
||||
|
||||
p0.l = ___setup_argv_and_call_main;
|
||||
p0.h = ___setup_argv_and_call_main;
|
||||
P3 = P4;
|
||||
call (p0)
|
||||
|
||||
p0.l = _exit;
|
||||
p0.h = _exit;
|
||||
P3 = P4;
|
||||
jump (p0) /* Should not return. */
|
||||
nop;
|
16
gcc/libgloss/bfin/include/blackfin.h
Normal file
16
gcc/libgloss/bfin/include/blackfin.h
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
#ifndef _BLACKFIN_H
|
||||
#define _BLACKFIN_H
|
||||
#include <sys/platform.h>
|
||||
#endif
|
295
gcc/libgloss/bfin/include/builtins.h
Normal file
295
gcc/libgloss/bfin/include/builtins.h
Normal file
@ -0,0 +1,295 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_2_4)
|
||||
#pragma diag(suppress:misra_rule_5_3)
|
||||
#pragma diag(suppress:misra_rule_6_3)
|
||||
#pragma diag(suppress:misra_rule_8_1)
|
||||
#pragma diag(suppress:misra_rule_8_8)
|
||||
#pragma diag(suppress:misra_rule_8_5)
|
||||
#pragma diag(suppress:misra_rule_19_7)
|
||||
#pragma diag(suppress:misra_rule_19_15)
|
||||
#pragma diag(suppress:misra_rule_20_2)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if !defined(__NO_BUILTIN)
|
||||
|
||||
/* VDSP -> GCC glue */
|
||||
#define __builtin_NOP() __asm__ __volatile__ ("NOP;")
|
||||
#define __builtin_cli() ({ unsigned int __rval; __asm__ __volatile__ ("cli %0;" : "=r"(__rval)); __rval; })
|
||||
#define __builtin_sti(x) __asm__ __volatile__ ("sti %0;" : : "r"(x))
|
||||
#define __builtin_idle() __asm__ __volatile__ ("IDLE;")
|
||||
#define __builtin_raise(x) __asm__ __volatile__ ("raise %0;" : : "n"(x))
|
||||
#define __builtin_excpt(x) __asm__ __volatile__ ("excpt %0;" : : "n"(x))
|
||||
#define __builtin_prefetch(x) __asm__ __volatile__ ("PREFETCH[%0];" : : "p"(x))
|
||||
#define __builtin_prefetchmodup(x) ({ void *__p = &(x); __asm__ __volatile__ ("PREFETCH[%0++];" : "+p"(__p)); __p; })
|
||||
#define __builtin_flushinv(x) __asm__ __volatile__ ("FLUSHINV[%0];" : : "p"(x))
|
||||
#define __builtin_flushinvmodup(x) ({ void *__p = &(x); __asm__ __volatile__ ("FLUSHINV[%0++];" : "+p"(__p)); __p; })
|
||||
#define __builtin_flush(x) __asm__ __volatile__ ("FLUSH[%0];" : : "p"(x))
|
||||
#define __builtin_flushmodup(x) ({ void *__p = &(x); __asm__ __volatile__ ("FLUSH[%0++];" : "+p"(__p)); __p; })
|
||||
#define __builtin_iflush(x) __asm__ __volatile__ ("IFLUSH[%0];" : : "p"(x))
|
||||
#define __builtin_iflushmodup(x) ({ void *__p = &(x); __asm__ __volatile__ ("IFLUSH[%0++];" : "+p"(__p)); __p; })
|
||||
#define __builtin_csync() __builtin_bfin_csync()
|
||||
#define __builtin_ssync() __builtin_bfin_ssync()
|
||||
|
||||
#endif /* __NO_BUILTIN */
|
||||
|
||||
|
||||
#if !defined(__NO_BUILTIN) && !defined(__NO_SHORTNAMES)
|
||||
|
||||
#if (!defined(__DEFINED_NOP) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_NOP)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_NOP))))
|
||||
|
||||
#define __DEFINED_NOP
|
||||
|
||||
/* Insert a normal 16 bit NOP, which is treated as volatile.
|
||||
*/
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void NOP(void) {
|
||||
__builtin_NOP();
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_NOP */
|
||||
|
||||
#if (!defined(__DEFINED_CLI) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_CLI)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_CLI))))
|
||||
|
||||
#define __DEFINED_CLI
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static unsigned int cli(void) {
|
||||
unsigned int __rval = __builtin_cli();
|
||||
return __rval;
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_CLI */
|
||||
|
||||
#if (!defined(__DEFINED_STI) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_STI)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_STI))))
|
||||
|
||||
#define __DEFINED_STI
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void sti(unsigned int __a) {
|
||||
__builtin_sti(__a);
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_STI */
|
||||
|
||||
#if (!defined(__DEFINED_IDLE) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_IDLE)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_IDLE))))
|
||||
|
||||
#define __DEFINED_IDLE
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void idle(void) {
|
||||
__builtin_idle();
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_IDLE */
|
||||
|
||||
#if (!defined(__DEFINED_RAISE_INTR) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_RAISE_INTR)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_RAISE_INTR))))
|
||||
|
||||
#define __DEFINED_RAISE_INTR
|
||||
|
||||
#define raise_intr(A) (__builtin_raise((A)))
|
||||
|
||||
#endif /* __DEFINED_RAISE_INTR */
|
||||
|
||||
#if (!defined(__DEFINED_EXCPT) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_EXCPT)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_EXCPT))))
|
||||
|
||||
#define __DEFINED_EXCPT
|
||||
|
||||
#define excpt(A) (__builtin_excpt((A)))
|
||||
|
||||
#endif /* __DEFINED_EXCPT */
|
||||
|
||||
#if (!defined(__DEFINED_PREFETCH) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_PREFETCH)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_PREFETCH))))
|
||||
|
||||
#define __DEFINED_PREFETCH
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void prefetch(void * __a) {
|
||||
__builtin_prefetch(__a);
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_PREFETCH */
|
||||
|
||||
#if (!defined(__DEFINED_PREFETCHMODUP) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_PREFETCHMODUP)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_PREFETCHMODUP))))
|
||||
|
||||
#define __DEFINED_PREFETCHMODUP
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void * prefetchmodup(void * __a) {
|
||||
void * __rval = __builtin_prefetchmodup(__a);
|
||||
return __rval;
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_PREFETCHMODUP */
|
||||
|
||||
#if (!defined(__DEFINED_FLUSHINV) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_FLUSHINV)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_FLUSHINV))))
|
||||
|
||||
#define __DEFINED_FLUSHINV
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void flushinv(void * __a) {
|
||||
__builtin_flushinv(__a);
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_FLUSHINV */
|
||||
|
||||
#if (!defined(__DEFINED_FLUSHINVMODUP) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_FLUSHINVMODUP)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_FLUSHINVMODUP))))
|
||||
|
||||
#define __DEFINED_FLUSHINVMODUP
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void * flushinvmodup(void * __a) {
|
||||
void * __rval = __builtin_flushinvmodup(__a);
|
||||
return __rval;
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_FLUSHINVMODUP */
|
||||
|
||||
#if (!defined(__DEFINED_FLUSH) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_FLUSH)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_FLUSH))))
|
||||
|
||||
#define __DEFINED_FLUSH
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void flush(void * __a) {
|
||||
__builtin_flush(__a);
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_FLUSH */
|
||||
|
||||
#if (!defined(__DEFINED_FLUSHMODUP) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_FLUSHMODUP)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_FLUSHMODUP))))
|
||||
|
||||
#define __DEFINED_FLUSHMODUP
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void * flushmodup(void * __a) {
|
||||
void * __rval = __builtin_flushmodup(__a);
|
||||
return __rval;
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_FLUSHMODUP */
|
||||
|
||||
#if (!defined(__DEFINED_IFLUSH) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_IFLUSH)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_IFLUSH))))
|
||||
|
||||
#define __DEFINED_IFLUSH
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void iflush(void * __a) {
|
||||
__builtin_iflush(__a);
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_IFLUSH */
|
||||
|
||||
#if (!defined(__DEFINED_IFLUSHMODUP) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_IFLUSHMODUP)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_IFLUSHMODUP))))
|
||||
|
||||
#define __DEFINED_IFLUSHMODUP
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void * iflushmodup(void * __a) {
|
||||
void * __rval = __builtin_iflushmodup(__a);
|
||||
return __rval;
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_IFLUSHMODUP */
|
||||
|
||||
#if (!defined(__DEFINED_CSYNC) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_CSYNC)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_CSYNC))))
|
||||
|
||||
#define __DEFINED_CSYNC
|
||||
|
||||
/* generate a csync instruction protected by CLI/STI for anomaly 05-00-0312;
|
||||
** you can generate an unprotected csync by using csync_int
|
||||
*/
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void csync(void) {
|
||||
__builtin_csync();
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_CSYNC */
|
||||
|
||||
#if (!defined(__DEFINED_SSYNC) && \
|
||||
((defined(__SPECIFIC_NAMES) && defined(__ENABLE_SSYNC)) || \
|
||||
(!defined(__SPECIFIC_NAMES) && !defined(__DISABLE_SSYNC))))
|
||||
|
||||
#define __DEFINED_SSYNC
|
||||
|
||||
/* generate a ssync instruction protected by CLI/STI for anomaly 05-00-0312;
|
||||
** you can generate an unprotected ssync by using ssync_int
|
||||
*/
|
||||
|
||||
#pragma inline
|
||||
#pragma always_inline
|
||||
static void ssync(void) {
|
||||
__builtin_ssync();
|
||||
}
|
||||
|
||||
#endif /* __DEFINED_SSYNC */
|
||||
|
||||
#endif /* __NO_BUILTIN */
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
23
gcc/libgloss/bfin/include/ccblkfn.h
Normal file
23
gcc/libgloss/bfin/include/ccblkfn.h
Normal file
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
#ifndef _CCBLKFN_H
|
||||
#define _CCBLKFN_H
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <builtins.h>
|
||||
#include <sys/anomaly_macros_rtl.h>
|
||||
|
||||
#include <sys/mc_typedef.h>
|
||||
|
||||
#endif
|
34
gcc/libgloss/bfin/include/cdefBF504.h
Normal file
34
gcc/libgloss/bfin/include/cdefBF504.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This include file contains a list of macro "defines" to enable programs
|
||||
** to use symbolic names for register-access and bit-manipulation for the
|
||||
** ADSP-BF504 processor.
|
||||
**
|
||||
** Copyright (C) 2009 Analog Devices Inc., All Rights Reserved.
|
||||
*/
|
||||
|
||||
#ifndef _CDEF_BF504_H
|
||||
#define _CDEF_BF504_H
|
||||
|
||||
/* Include all Core registers and bit definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* Include cdefBF50x_base.h for the set of #defines that are
|
||||
** common to all ADSP-BF50x processors
|
||||
*/
|
||||
#include <cdefBF50x_base.h>
|
||||
|
||||
/* Define the set of macros that are specific to the ADSP-BF504 processor */
|
||||
|
||||
#endif /* _CDEF_BF504_H */
|
34
gcc/libgloss/bfin/include/cdefBF504F.h
Normal file
34
gcc/libgloss/bfin/include/cdefBF504F.h
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This include file contains a list of macro "defines" to enable programs
|
||||
** to use symbolic names for register-access and bit-manipulation for the
|
||||
** ADSP-BF504F processor.
|
||||
**
|
||||
** Copyright (C) 2009 Analog Devices Inc., All Rights Reserved.
|
||||
*/
|
||||
|
||||
#ifndef _CDEF_BF504F_H
|
||||
#define _CDEF_BF504F_H
|
||||
|
||||
/* Include all Core registers and bit definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* Include cdefBF50x_base.h for the set of #defines that are
|
||||
** common to all ADSP-BF50x processors
|
||||
*/
|
||||
#include <cdefBF50x_base.h>
|
||||
|
||||
/* Define the set of macros that are specific to the ADSP-BF504F processor */
|
||||
|
||||
#endif /* _CDEF_BF504F_H */
|
32
gcc/libgloss/bfin/include/cdefBF506F.h
Normal file
32
gcc/libgloss/bfin/include/cdefBF506F.h
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This include file contains a list of macro "defines" to enable programs
|
||||
** to use symbolic names for register-access and bit-manipulation for the
|
||||
** ADSP-BF506F processor.
|
||||
**
|
||||
** Copyright (C) 2009 Analog Devices Inc., All Rights Reserved.
|
||||
*/
|
||||
|
||||
#ifndef _CDEF_BF506F_H
|
||||
#define _CDEF_BF506F_H
|
||||
|
||||
/* Include all Core registers and bit definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* Include cdefBF50x_base.h for the set of #defines that are
|
||||
** common to all ADSP-BF50x processors
|
||||
*/
|
||||
#include <cdefBF50x_base.h>
|
||||
|
||||
#endif /* _CDEF_BF506F_H */
|
1159
gcc/libgloss/bfin/include/cdefBF50x_base.h
Normal file
1159
gcc/libgloss/bfin/include/cdefBF50x_base.h
Normal file
File diff suppressed because it is too large
Load Diff
39
gcc/libgloss/bfin/include/cdefBF512.h
Normal file
39
gcc/libgloss/bfin/include/cdefBF512.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF512 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF512_H
|
||||
#define _CDEF_BF512_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF512.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF512 */
|
||||
|
||||
/* include cdefBF51x_base.h for the set of #defines that are common to all ADSP-BF51x processors */
|
||||
#include <cdefBF51x_base.h>
|
||||
|
||||
#endif /* _CDEF_BF512_H */
|
114
gcc/libgloss/bfin/include/cdefBF514.h
Normal file
114
gcc/libgloss/bfin/include/cdefBF514.h
Normal file
@ -0,0 +1,114 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF514 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF514_H
|
||||
#define _CDEF_BF514_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF514.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF514 */
|
||||
|
||||
/* include cdefBF51x_base.h for the set of #defines that are common to all ADSP-BF51x processors */
|
||||
#include <cdefBF51x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* The following are the #defines needed by ADSP-BF514 that are not in the common header */
|
||||
|
||||
/* SDH Registers (0xFFC03800 - 0xFFC03CFF)*/
|
||||
#define pSDH_PWR_CTL ((volatile unsigned short *)SDH_PWR_CTL)
|
||||
#define pSDH_CLK_CTL ((volatile unsigned short *)SDH_CLK_CTL)
|
||||
#define pSDH_ARGUMENT ((volatile unsigned long *)SDH_ARGUMENT)
|
||||
#define pSDH_COMMAND ((volatile unsigned short *)SDH_COMMAND)
|
||||
#define pSDH_RESP_CMD ((volatile unsigned short *)SDH_RESP_CMD)
|
||||
#define pSDH_RESPONSE0 ((volatile unsigned long *)SDH_RESPONSE0)
|
||||
#define pSDH_RESPONSE1 ((volatile unsigned long *)SDH_RESPONSE1)
|
||||
#define pSDH_RESPONSE2 ((volatile unsigned long *)SDH_RESPONSE2)
|
||||
#define pSDH_RESPONSE3 ((volatile unsigned long *)SDH_RESPONSE3)
|
||||
#define pSDH_DATA_TIMER ((volatile unsigned long *)SDH_DATA_TIMER)
|
||||
#define pSDH_DATA_LGTH ((volatile unsigned short *)SDH_DATA_LGTH)
|
||||
#define pSDH_DATA_CTL ((volatile unsigned short *)SDH_DATA_CTL)
|
||||
#define pSDH_DATA_CNT ((volatile unsigned short *)SDH_DATA_CNT)
|
||||
#define pSDH_STATUS ((volatile unsigned long *)SDH_STATUS)
|
||||
#define pSDH_STATUS_CLR ((volatile unsigned short *)SDH_STATUS_CLR)
|
||||
#define pSDH_MASK0 ((volatile unsigned long *)SDH_MASK0)
|
||||
#define pSDH_MASK1 ((volatile unsigned long *)SDH_MASK1)
|
||||
#define pSDH_FIFO_CNT ((volatile unsigned short *)SDH_FIFO_CNT)
|
||||
#define pSDH_FIFO ((volatile unsigned long *)SDH_FIFO)
|
||||
#define pSDH_E_STATUS ((volatile unsigned short *)SDH_E_STATUS)
|
||||
#define pSDH_E_MASK ((volatile unsigned short *)SDH_E_MASK)
|
||||
#define pSDH_CFG ((volatile unsigned short *)SDH_CFG)
|
||||
#define pSDH_RD_WAIT_EN ((volatile unsigned short *)SDH_RD_WAIT_EN)
|
||||
#define pSDH_PID0 ((volatile unsigned short *)SDH_PID0)
|
||||
#define pSDH_PID1 ((volatile unsigned short *)SDH_PID1)
|
||||
#define pSDH_PID2 ((volatile unsigned short *)SDH_PID2)
|
||||
#define pSDH_PID3 ((volatile unsigned short *)SDH_PID3)
|
||||
#define pSDH_PID4 ((volatile unsigned short *)SDH_PID4)
|
||||
#define pSDH_PID5 ((volatile unsigned short *)SDH_PID5)
|
||||
#define pSDH_PID6 ((volatile unsigned short *)SDH_PID6)
|
||||
#define pSDH_PID7 ((volatile unsigned short *)SDH_PID7)
|
||||
|
||||
|
||||
/* RSI Registers (0xFFC03800 - 0xFFC03CFF)*/
|
||||
#define pRSI_PWR_CONTROL ((volatile unsigned short *)RSI_PWR_CONTROL)
|
||||
#define pRSI_CLK_CONTROL ((volatile unsigned short *)RSI_CLK_CONTROL)
|
||||
#define pRSI_ARGUMENT ((volatile unsigned long *)RSI_ARGUMENT)
|
||||
#define pRSI_COMMAND ((volatile unsigned short *)RSI_COMMAND)
|
||||
#define pRSI_RESP_CMD ((volatile unsigned short *)RSI_RESP_CMD)
|
||||
#define pRSI_RESPONSE0 ((volatile unsigned long *)RSI_RESPONSE0)
|
||||
#define pRSI_RESPONSE1 ((volatile unsigned long *)RSI_RESPONSE1)
|
||||
#define pRSI_RESPONSE2 ((volatile unsigned long *)RSI_RESPONSE2)
|
||||
#define pRSI_RESPONSE3 ((volatile unsigned long *)RSI_RESPONSE3)
|
||||
#define pRSI_DATA_TIMER ((volatile unsigned long *)RSI_DATA_TIMER)
|
||||
#define pRSI_DATA_LGTH ((volatile unsigned short *)RSI_DATA_LGTH)
|
||||
#define pRSI_DATA_CONTROL ((volatile unsigned short *)RSI_DATA_CONTROL)
|
||||
#define pRSI_DATA_CNT ((volatile unsigned short *)RSI_DATA_CNT)
|
||||
#define pRSI_STATUS ((volatile unsigned long *)RSI_STATUS)
|
||||
#define pRSI_STATUSCL ((volatile unsigned short *)RSI_STATUSCL)
|
||||
#define pRSI_MASK0 ((volatile unsigned long *)RSI_MASK0)
|
||||
#define pRSI_MASK1 ((volatile unsigned long *)RSI_MASK1)
|
||||
#define pRSI_FIFO_CNT ((volatile unsigned short *)RSI_FIFO_CNT)
|
||||
#define pRSI_CEATA_CONTROL ((volatile unsigned short *)RSI_CEATA_CONTROL)
|
||||
#define pRSI_FIFO ((volatile unsigned long *)RSI_FIFO)
|
||||
#define pRSI_ESTAT ((volatile unsigned short *)RSI_ESTAT)
|
||||
#define pRSI_EMASK ((volatile unsigned short *)RSI_EMASK)
|
||||
#define pRSI_CONFIG ((volatile unsigned short *)RSI_CONFIG)
|
||||
#define pRSI_RD_WAIT_EN ((volatile unsigned short *)RSI_RD_WAIT_EN)
|
||||
#define pRSI_PID0 ((volatile unsigned short *)RSI_PID0)
|
||||
#define pRSI_PID1 ((volatile unsigned short *)RSI_PID1)
|
||||
#define pRSI_PID2 ((volatile unsigned short *)RSI_PID2)
|
||||
#define pRSI_PID3 ((volatile unsigned short *)RSI_PID3)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF514_H */
|
200
gcc/libgloss/bfin/include/cdefBF516.h
Normal file
200
gcc/libgloss/bfin/include/cdefBF516.h
Normal file
@ -0,0 +1,200 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF516 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF516_H
|
||||
#define _CDEF_BF516_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF516.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF516 */
|
||||
|
||||
/* include cdefBF51x_base.h for the set of #defines that are common to all ADSP-BF51x processors */
|
||||
#include <cdefBF51x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* The following are the #defines needed by ADSP-BF516 that are not in the common header */
|
||||
|
||||
/* 10/100 Ethernet Controller */
|
||||
#define pEMAC_OPMODE ((volatile unsigned long *)EMAC_OPMODE)
|
||||
#define pEMAC_ADDRLO ((volatile unsigned long *)EMAC_ADDRLO)
|
||||
#define pEMAC_ADDRHI ((volatile unsigned long *)EMAC_ADDRHI)
|
||||
#define pEMAC_HASHLO ((volatile unsigned long *)EMAC_HASHLO)
|
||||
#define pEMAC_HASHHI ((volatile unsigned long *)EMAC_HASHHI)
|
||||
#define pEMAC_STAADD ((volatile unsigned long *)EMAC_STAADD)
|
||||
#define pEMAC_STADAT ((volatile unsigned long *)EMAC_STADAT)
|
||||
#define pEMAC_FLC ((volatile unsigned long *)EMAC_FLC)
|
||||
#define pEMAC_VLAN1 ((volatile unsigned long *)EMAC_VLAN1)
|
||||
#define pEMAC_VLAN2 ((volatile unsigned long *)EMAC_VLAN2)
|
||||
#define pEMAC_WKUP_CTL ((volatile unsigned long *)EMAC_WKUP_CTL)
|
||||
#define pEMAC_WKUP_FFMSK0 ((volatile unsigned long *)EMAC_WKUP_FFMSK0)
|
||||
#define pEMAC_WKUP_FFMSK1 ((volatile unsigned long *)EMAC_WKUP_FFMSK1)
|
||||
#define pEMAC_WKUP_FFMSK2 ((volatile unsigned long *)EMAC_WKUP_FFMSK2)
|
||||
#define pEMAC_WKUP_FFMSK3 ((volatile unsigned long *)EMAC_WKUP_FFMSK3)
|
||||
#define pEMAC_WKUP_FFCMD ((volatile unsigned long *)EMAC_WKUP_FFCMD)
|
||||
#define pEMAC_WKUP_FFOFF ((volatile unsigned long *)EMAC_WKUP_FFOFF)
|
||||
#define pEMAC_WKUP_FFCRC0 ((volatile unsigned long *)EMAC_WKUP_FFCRC0)
|
||||
#define pEMAC_WKUP_FFCRC1 ((volatile unsigned long *)EMAC_WKUP_FFCRC1)
|
||||
|
||||
#define pEMAC_SYSCTL ((volatile unsigned long *)EMAC_SYSCTL)
|
||||
#define pEMAC_SYSTAT ((volatile unsigned long *)EMAC_SYSTAT)
|
||||
#define pEMAC_RX_STAT ((volatile unsigned long *)EMAC_RX_STAT)
|
||||
#define pEMAC_RX_STKY ((volatile unsigned long *)EMAC_RX_STKY)
|
||||
#define pEMAC_RX_IRQE ((volatile unsigned long *)EMAC_RX_IRQE)
|
||||
#define pEMAC_TX_STAT ((volatile unsigned long *)EMAC_TX_STAT)
|
||||
#define pEMAC_TX_STKY ((volatile unsigned long *)EMAC_TX_STKY)
|
||||
#define pEMAC_TX_IRQE ((volatile unsigned long *)EMAC_TX_IRQE)
|
||||
|
||||
#define pEMAC_MMC_CTL ((volatile unsigned long *)EMAC_MMC_CTL)
|
||||
#define pEMAC_MMC_RIRQS ((volatile unsigned long *)EMAC_MMC_RIRQS)
|
||||
#define pEMAC_MMC_RIRQE ((volatile unsigned long *)EMAC_MMC_RIRQE)
|
||||
#define pEMAC_MMC_TIRQS ((volatile unsigned long *)EMAC_MMC_TIRQS)
|
||||
#define pEMAC_MMC_TIRQE ((volatile unsigned long *)EMAC_MMC_TIRQE)
|
||||
|
||||
#define pEMAC_RXC_OK ((volatile unsigned long *)EMAC_RXC_OK)
|
||||
#define pEMAC_RXC_FCS ((volatile unsigned long *)EMAC_RXC_FCS)
|
||||
#define pEMAC_RXC_ALIGN ((volatile unsigned long *)EMAC_RXC_ALIGN)
|
||||
#define pEMAC_RXC_OCTET ((volatile unsigned long *)EMAC_RXC_OCTET)
|
||||
#define pEMAC_RXC_DMAOVF ((volatile unsigned long *)EMAC_RXC_DMAOVF)
|
||||
#define pEMAC_RXC_UNICST ((volatile unsigned long *)EMAC_RXC_UNICST)
|
||||
#define pEMAC_RXC_MULTI ((volatile unsigned long *)EMAC_RXC_MULTI)
|
||||
#define pEMAC_RXC_BROAD ((volatile unsigned long *)EMAC_RXC_BROAD)
|
||||
#define pEMAC_RXC_LNERRI ((volatile unsigned long *)EMAC_RXC_LNERRI)
|
||||
#define pEMAC_RXC_LNERRO ((volatile unsigned long *)EMAC_RXC_LNERRO)
|
||||
#define pEMAC_RXC_LONG ((volatile unsigned long *)EMAC_RXC_LONG)
|
||||
#define pEMAC_RXC_MACCTL ((volatile unsigned long *)EMAC_RXC_MACCTL)
|
||||
#define pEMAC_RXC_OPCODE ((volatile unsigned long *)EMAC_RXC_OPCODE)
|
||||
#define pEMAC_RXC_PAUSE ((volatile unsigned long *)EMAC_RXC_PAUSE)
|
||||
#define pEMAC_RXC_ALLFRM ((volatile unsigned long *)EMAC_RXC_ALLFRM)
|
||||
#define pEMAC_RXC_ALLOCT ((volatile unsigned long *)EMAC_RXC_ALLOCT)
|
||||
#define pEMAC_RXC_TYPED ((volatile unsigned long *)EMAC_RXC_TYPED)
|
||||
#define pEMAC_RXC_SHORT ((volatile unsigned long *)EMAC_RXC_SHORT)
|
||||
#define pEMAC_RXC_EQ64 ((volatile unsigned long *)EMAC_RXC_EQ64)
|
||||
#define pEMAC_RXC_LT128 ((volatile unsigned long *)EMAC_RXC_LT128)
|
||||
#define pEMAC_RXC_LT256 ((volatile unsigned long *)EMAC_RXC_LT256)
|
||||
#define pEMAC_RXC_LT512 ((volatile unsigned long *)EMAC_RXC_LT512)
|
||||
#define pEMAC_RXC_LT1024 ((volatile unsigned long *)EMAC_RXC_LT1024)
|
||||
#define pEMAC_RXC_GE1024 ((volatile unsigned long *)EMAC_RXC_GE1024)
|
||||
|
||||
#define pEMAC_TXC_OK ((volatile unsigned long *)EMAC_TXC_OK)
|
||||
#define pEMAC_TXC_1COL ((volatile unsigned long *)EMAC_TXC_1COL)
|
||||
#define pEMAC_TXC_GT1COL ((volatile unsigned long *)EMAC_TXC_GT1COL)
|
||||
#define pEMAC_TXC_OCTET ((volatile unsigned long *)EMAC_TXC_OCTET)
|
||||
#define pEMAC_TXC_DEFER ((volatile unsigned long *)EMAC_TXC_DEFER)
|
||||
#define pEMAC_TXC_LATECL ((volatile unsigned long *)EMAC_TXC_LATECL)
|
||||
#define pEMAC_TXC_XS_COL ((volatile unsigned long *)EMAC_TXC_XS_COL)
|
||||
#define pEMAC_TXC_DMAUND ((volatile unsigned long *)EMAC_TXC_DMAUND)
|
||||
#define pEMAC_TXC_CRSERR ((volatile unsigned long *)EMAC_TXC_CRSERR)
|
||||
#define pEMAC_TXC_UNICST ((volatile unsigned long *)EMAC_TXC_UNICST)
|
||||
#define pEMAC_TXC_MULTI ((volatile unsigned long *)EMAC_TXC_MULTI)
|
||||
#define pEMAC_TXC_BROAD ((volatile unsigned long *)EMAC_TXC_BROAD)
|
||||
#define pEMAC_TXC_XS_DFR ((volatile unsigned long *)EMAC_TXC_XS_DFR)
|
||||
#define pEMAC_TXC_MACCTL ((volatile unsigned long *)EMAC_TXC_MACCTL)
|
||||
#define pEMAC_TXC_ALLFRM ((volatile unsigned long *)EMAC_TXC_ALLFRM)
|
||||
#define pEMAC_TXC_ALLOCT ((volatile unsigned long *)EMAC_TXC_ALLOCT)
|
||||
#define pEMAC_TXC_EQ64 ((volatile unsigned long *)EMAC_TXC_EQ64)
|
||||
#define pEMAC_TXC_LT128 ((volatile unsigned long *)EMAC_TXC_LT128)
|
||||
#define pEMAC_TXC_LT256 ((volatile unsigned long *)EMAC_TXC_LT256)
|
||||
#define pEMAC_TXC_LT512 ((volatile unsigned long *)EMAC_TXC_LT512)
|
||||
#define pEMAC_TXC_LT1024 ((volatile unsigned long *)EMAC_TXC_LT1024)
|
||||
#define pEMAC_TXC_GE1024 ((volatile unsigned long *)EMAC_TXC_GE1024)
|
||||
#define pEMAC_TXC_ABORT ((volatile unsigned long *)EMAC_TXC_ABORT)
|
||||
|
||||
|
||||
/* SDH Registers (0xFFC03800 - 0xFFC03CFF)*/
|
||||
#define pSDH_PWR_CTL ((volatile unsigned short *)SDH_PWR_CTL)
|
||||
#define pSDH_CLK_CTL ((volatile unsigned short *)SDH_CLK_CTL)
|
||||
#define pSDH_ARGUMENT ((volatile unsigned long *)SDH_ARGUMENT)
|
||||
#define pSDH_COMMAND ((volatile unsigned short *)SDH_COMMAND)
|
||||
#define pSDH_RESP_CMD ((volatile unsigned short *)SDH_RESP_CMD)
|
||||
#define pSDH_RESPONSE0 ((volatile unsigned long *)SDH_RESPONSE0)
|
||||
#define pSDH_RESPONSE1 ((volatile unsigned long *)SDH_RESPONSE1)
|
||||
#define pSDH_RESPONSE2 ((volatile unsigned long *)SDH_RESPONSE2)
|
||||
#define pSDH_RESPONSE3 ((volatile unsigned long *)SDH_RESPONSE3)
|
||||
#define pSDH_DATA_TIMER ((volatile unsigned long *)SDH_DATA_TIMER)
|
||||
#define pSDH_DATA_LGTH ((volatile unsigned short *)SDH_DATA_LGTH)
|
||||
#define pSDH_DATA_CTL ((volatile unsigned short *)SDH_DATA_CTL)
|
||||
#define pSDH_DATA_CNT ((volatile unsigned short *)SDH_DATA_CNT)
|
||||
#define pSDH_STATUS ((volatile unsigned long *)SDH_STATUS)
|
||||
#define pSDH_STATUS_CLR ((volatile unsigned short *)SDH_STATUS_CLR)
|
||||
#define pSDH_MASK0 ((volatile unsigned long *)SDH_MASK0)
|
||||
#define pSDH_MASK1 ((volatile unsigned long *)SDH_MASK1)
|
||||
#define pSDH_FIFO_CNT ((volatile unsigned short *)SDH_FIFO_CNT)
|
||||
#define pSDH_FIFO ((volatile unsigned long *)SDH_FIFO)
|
||||
#define pSDH_E_STATUS ((volatile unsigned short *)SDH_E_STATUS)
|
||||
#define pSDH_E_MASK ((volatile unsigned short *)SDH_E_MASK)
|
||||
#define pSDH_CFG ((volatile unsigned short *)SDH_CFG)
|
||||
#define pSDH_RD_WAIT_EN ((volatile unsigned short *)SDH_RD_WAIT_EN)
|
||||
#define pSDH_PID0 ((volatile unsigned short *)SDH_PID0)
|
||||
#define pSDH_PID1 ((volatile unsigned short *)SDH_PID1)
|
||||
#define pSDH_PID2 ((volatile unsigned short *)SDH_PID2)
|
||||
#define pSDH_PID3 ((volatile unsigned short *)SDH_PID3)
|
||||
#define pSDH_PID4 ((volatile unsigned short *)SDH_PID4)
|
||||
#define pSDH_PID5 ((volatile unsigned short *)SDH_PID5)
|
||||
#define pSDH_PID6 ((volatile unsigned short *)SDH_PID6)
|
||||
#define pSDH_PID7 ((volatile unsigned short *)SDH_PID7)
|
||||
|
||||
|
||||
/* RSI Registers (0xFFC03800 - 0xFFC03CFF)*/
|
||||
#define pRSI_PWR_CONTROL ((volatile unsigned short *)RSI_PWR_CONTROL)
|
||||
#define pRSI_CLK_CONTROL ((volatile unsigned short *)RSI_CLK_CONTROL)
|
||||
#define pRSI_ARGUMENT ((volatile unsigned long *)RSI_ARGUMENT)
|
||||
#define pRSI_COMMAND ((volatile unsigned short *)RSI_COMMAND)
|
||||
#define pRSI_RESP_CMD ((volatile unsigned short *)RSI_RESP_CMD)
|
||||
#define pRSI_RESPONSE0 ((volatile unsigned long *)RSI_RESPONSE0)
|
||||
#define pRSI_RESPONSE1 ((volatile unsigned long *)RSI_RESPONSE1)
|
||||
#define pRSI_RESPONSE2 ((volatile unsigned long *)RSI_RESPONSE2)
|
||||
#define pRSI_RESPONSE3 ((volatile unsigned long *)RSI_RESPONSE3)
|
||||
#define pRSI_DATA_TIMER ((volatile unsigned long *)RSI_DATA_TIMER)
|
||||
#define pRSI_DATA_LGTH ((volatile unsigned short *)RSI_DATA_LGTH)
|
||||
#define pRSI_DATA_CONTROL ((volatile unsigned short *)RSI_DATA_CONTROL)
|
||||
#define pRSI_DATA_CNT ((volatile unsigned short *)RSI_DATA_CNT)
|
||||
#define pRSI_STATUS ((volatile unsigned long *)RSI_STATUS)
|
||||
#define pRSI_STATUSCL ((volatile unsigned short *)RSI_STATUSCL)
|
||||
#define pRSI_MASK0 ((volatile unsigned long *)RSI_MASK0)
|
||||
#define pRSI_MASK1 ((volatile unsigned long *)RSI_MASK1)
|
||||
#define pRSI_FIFO_CNT ((volatile unsigned short *)RSI_FIFO_CNT)
|
||||
#define pRSI_CEATA_CONTROL ((volatile unsigned short *)RSI_CEATA_CONTROL)
|
||||
#define pRSI_FIFO ((volatile unsigned long *)RSI_FIFO)
|
||||
#define pRSI_ESTAT ((volatile unsigned short *)RSI_ESTAT)
|
||||
#define pRSI_EMASK ((volatile unsigned short *)RSI_EMASK)
|
||||
#define pRSI_CONFIG ((volatile unsigned short *)RSI_CONFIG)
|
||||
#define pRSI_RD_WAIT_EN ((volatile unsigned short *)RSI_RD_WAIT_EN)
|
||||
#define pRSI_PID0 ((volatile unsigned short *)RSI_PID0)
|
||||
#define pRSI_PID1 ((volatile unsigned short *)RSI_PID1)
|
||||
#define pRSI_PID2 ((volatile unsigned short *)RSI_PID2)
|
||||
#define pRSI_PID3 ((volatile unsigned short *)RSI_PID3)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF516_H */
|
226
gcc/libgloss/bfin/include/cdefBF518.h
Normal file
226
gcc/libgloss/bfin/include/cdefBF518.h
Normal file
@ -0,0 +1,226 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF518 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF518_H
|
||||
#define _CDEF_BF518_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF518.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF518 */
|
||||
|
||||
/* include cdefBF51x_base.h for the set of #defines that are common to all ADSP-BF51x processors */
|
||||
#include <cdefBF51x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* The following are the #defines needed by ADSP-BF518 that are not in the common header */
|
||||
|
||||
/* 10/100 Ethernet Controller */
|
||||
#define pEMAC_OPMODE ((volatile unsigned long *)EMAC_OPMODE)
|
||||
#define pEMAC_ADDRLO ((volatile unsigned long *)EMAC_ADDRLO)
|
||||
#define pEMAC_ADDRHI ((volatile unsigned long *)EMAC_ADDRHI)
|
||||
#define pEMAC_HASHLO ((volatile unsigned long *)EMAC_HASHLO)
|
||||
#define pEMAC_HASHHI ((volatile unsigned long *)EMAC_HASHHI)
|
||||
#define pEMAC_STAADD ((volatile unsigned long *)EMAC_STAADD)
|
||||
#define pEMAC_STADAT ((volatile unsigned long *)EMAC_STADAT)
|
||||
#define pEMAC_FLC ((volatile unsigned long *)EMAC_FLC)
|
||||
#define pEMAC_VLAN1 ((volatile unsigned long *)EMAC_VLAN1)
|
||||
#define pEMAC_VLAN2 ((volatile unsigned long *)EMAC_VLAN2)
|
||||
#define pEMAC_WKUP_CTL ((volatile unsigned long *)EMAC_WKUP_CTL)
|
||||
#define pEMAC_WKUP_FFMSK0 ((volatile unsigned long *)EMAC_WKUP_FFMSK0)
|
||||
#define pEMAC_WKUP_FFMSK1 ((volatile unsigned long *)EMAC_WKUP_FFMSK1)
|
||||
#define pEMAC_WKUP_FFMSK2 ((volatile unsigned long *)EMAC_WKUP_FFMSK2)
|
||||
#define pEMAC_WKUP_FFMSK3 ((volatile unsigned long *)EMAC_WKUP_FFMSK3)
|
||||
#define pEMAC_WKUP_FFCMD ((volatile unsigned long *)EMAC_WKUP_FFCMD)
|
||||
#define pEMAC_WKUP_FFOFF ((volatile unsigned long *)EMAC_WKUP_FFOFF)
|
||||
#define pEMAC_WKUP_FFCRC0 ((volatile unsigned long *)EMAC_WKUP_FFCRC0)
|
||||
#define pEMAC_WKUP_FFCRC1 ((volatile unsigned long *)EMAC_WKUP_FFCRC1)
|
||||
|
||||
#define pEMAC_SYSCTL ((volatile unsigned long *)EMAC_SYSCTL)
|
||||
#define pEMAC_SYSTAT ((volatile unsigned long *)EMAC_SYSTAT)
|
||||
#define pEMAC_RX_STAT ((volatile unsigned long *)EMAC_RX_STAT)
|
||||
#define pEMAC_RX_STKY ((volatile unsigned long *)EMAC_RX_STKY)
|
||||
#define pEMAC_RX_IRQE ((volatile unsigned long *)EMAC_RX_IRQE)
|
||||
#define pEMAC_TX_STAT ((volatile unsigned long *)EMAC_TX_STAT)
|
||||
#define pEMAC_TX_STKY ((volatile unsigned long *)EMAC_TX_STKY)
|
||||
#define pEMAC_TX_IRQE ((volatile unsigned long *)EMAC_TX_IRQE)
|
||||
|
||||
#define pEMAC_MMC_CTL ((volatile unsigned long *)EMAC_MMC_CTL)
|
||||
#define pEMAC_MMC_RIRQS ((volatile unsigned long *)EMAC_MMC_RIRQS)
|
||||
#define pEMAC_MMC_RIRQE ((volatile unsigned long *)EMAC_MMC_RIRQE)
|
||||
#define pEMAC_MMC_TIRQS ((volatile unsigned long *)EMAC_MMC_TIRQS)
|
||||
#define pEMAC_MMC_TIRQE ((volatile unsigned long *)EMAC_MMC_TIRQE)
|
||||
|
||||
#define pEMAC_RXC_OK ((volatile unsigned long *)EMAC_RXC_OK)
|
||||
#define pEMAC_RXC_FCS ((volatile unsigned long *)EMAC_RXC_FCS)
|
||||
#define pEMAC_RXC_ALIGN ((volatile unsigned long *)EMAC_RXC_ALIGN)
|
||||
#define pEMAC_RXC_OCTET ((volatile unsigned long *)EMAC_RXC_OCTET)
|
||||
#define pEMAC_RXC_DMAOVF ((volatile unsigned long *)EMAC_RXC_DMAOVF)
|
||||
#define pEMAC_RXC_UNICST ((volatile unsigned long *)EMAC_RXC_UNICST)
|
||||
#define pEMAC_RXC_MULTI ((volatile unsigned long *)EMAC_RXC_MULTI)
|
||||
#define pEMAC_RXC_BROAD ((volatile unsigned long *)EMAC_RXC_BROAD)
|
||||
#define pEMAC_RXC_LNERRI ((volatile unsigned long *)EMAC_RXC_LNERRI)
|
||||
#define pEMAC_RXC_LNERRO ((volatile unsigned long *)EMAC_RXC_LNERRO)
|
||||
#define pEMAC_RXC_LONG ((volatile unsigned long *)EMAC_RXC_LONG)
|
||||
#define pEMAC_RXC_MACCTL ((volatile unsigned long *)EMAC_RXC_MACCTL)
|
||||
#define pEMAC_RXC_OPCODE ((volatile unsigned long *)EMAC_RXC_OPCODE)
|
||||
#define pEMAC_RXC_PAUSE ((volatile unsigned long *)EMAC_RXC_PAUSE)
|
||||
#define pEMAC_RXC_ALLFRM ((volatile unsigned long *)EMAC_RXC_ALLFRM)
|
||||
#define pEMAC_RXC_ALLOCT ((volatile unsigned long *)EMAC_RXC_ALLOCT)
|
||||
#define pEMAC_RXC_TYPED ((volatile unsigned long *)EMAC_RXC_TYPED)
|
||||
#define pEMAC_RXC_SHORT ((volatile unsigned long *)EMAC_RXC_SHORT)
|
||||
#define pEMAC_RXC_EQ64 ((volatile unsigned long *)EMAC_RXC_EQ64)
|
||||
#define pEMAC_RXC_LT128 ((volatile unsigned long *)EMAC_RXC_LT128)
|
||||
#define pEMAC_RXC_LT256 ((volatile unsigned long *)EMAC_RXC_LT256)
|
||||
#define pEMAC_RXC_LT512 ((volatile unsigned long *)EMAC_RXC_LT512)
|
||||
#define pEMAC_RXC_LT1024 ((volatile unsigned long *)EMAC_RXC_LT1024)
|
||||
#define pEMAC_RXC_GE1024 ((volatile unsigned long *)EMAC_RXC_GE1024)
|
||||
|
||||
#define pEMAC_TXC_OK ((volatile unsigned long *)EMAC_TXC_OK)
|
||||
#define pEMAC_TXC_1COL ((volatile unsigned long *)EMAC_TXC_1COL)
|
||||
#define pEMAC_TXC_GT1COL ((volatile unsigned long *)EMAC_TXC_GT1COL)
|
||||
#define pEMAC_TXC_OCTET ((volatile unsigned long *)EMAC_TXC_OCTET)
|
||||
#define pEMAC_TXC_DEFER ((volatile unsigned long *)EMAC_TXC_DEFER)
|
||||
#define pEMAC_TXC_LATECL ((volatile unsigned long *)EMAC_TXC_LATECL)
|
||||
#define pEMAC_TXC_XS_COL ((volatile unsigned long *)EMAC_TXC_XS_COL)
|
||||
#define pEMAC_TXC_DMAUND ((volatile unsigned long *)EMAC_TXC_DMAUND)
|
||||
#define pEMAC_TXC_CRSERR ((volatile unsigned long *)EMAC_TXC_CRSERR)
|
||||
#define pEMAC_TXC_UNICST ((volatile unsigned long *)EMAC_TXC_UNICST)
|
||||
#define pEMAC_TXC_MULTI ((volatile unsigned long *)EMAC_TXC_MULTI)
|
||||
#define pEMAC_TXC_BROAD ((volatile unsigned long *)EMAC_TXC_BROAD)
|
||||
#define pEMAC_TXC_XS_DFR ((volatile unsigned long *)EMAC_TXC_XS_DFR)
|
||||
#define pEMAC_TXC_MACCTL ((volatile unsigned long *)EMAC_TXC_MACCTL)
|
||||
#define pEMAC_TXC_ALLFRM ((volatile unsigned long *)EMAC_TXC_ALLFRM)
|
||||
#define pEMAC_TXC_ALLOCT ((volatile unsigned long *)EMAC_TXC_ALLOCT)
|
||||
#define pEMAC_TXC_EQ64 ((volatile unsigned long *)EMAC_TXC_EQ64)
|
||||
#define pEMAC_TXC_LT128 ((volatile unsigned long *)EMAC_TXC_LT128)
|
||||
#define pEMAC_TXC_LT256 ((volatile unsigned long *)EMAC_TXC_LT256)
|
||||
#define pEMAC_TXC_LT512 ((volatile unsigned long *)EMAC_TXC_LT512)
|
||||
#define pEMAC_TXC_LT1024 ((volatile unsigned long *)EMAC_TXC_LT1024)
|
||||
#define pEMAC_TXC_GE1024 ((volatile unsigned long *)EMAC_TXC_GE1024)
|
||||
#define pEMAC_TXC_ABORT ((volatile unsigned long *)EMAC_TXC_ABORT)
|
||||
|
||||
|
||||
/* EMAC PTP (IEEE 1588) (0xFFC030A0 - 0xFFC030EC)*/
|
||||
#define pEMAC_PTP_CTL ((volatile unsigned short *)EMAC_PTP_CTL)
|
||||
#define pEMAC_PTP_IE ((volatile unsigned short *)EMAC_PTP_IE)
|
||||
#define pEMAC_PTP_ISTAT ((volatile unsigned short *)EMAC_PTP_ISTAT)
|
||||
#define pEMAC_PTP_FOFF ((volatile unsigned long *)EMAC_PTP_FOFF)
|
||||
#define pEMAC_PTP_FV1 ((volatile unsigned long *)EMAC_PTP_FV1)
|
||||
#define pEMAC_PTP_FV2 ((volatile unsigned long *)EMAC_PTP_FV2)
|
||||
#define pEMAC_PTP_FV3 ((volatile unsigned long *)EMAC_PTP_FV3)
|
||||
#define pEMAC_PTP_ADDEND ((volatile unsigned long *)EMAC_PTP_ADDEND)
|
||||
#define pEMAC_PTP_ACCR ((volatile unsigned long *)EMAC_PTP_ACCR)
|
||||
#define pEMAC_PTP_OFFSET ((volatile unsigned long *)EMAC_PTP_OFFSET)
|
||||
#define pEMAC_PTP_TIMELO ((volatile unsigned long *)EMAC_PTP_TIMELO)
|
||||
#define pEMAC_PTP_TIMEHI ((volatile unsigned long *)EMAC_PTP_TIMEHI)
|
||||
#define pEMAC_PTP_RXSNAPLO ((volatile unsigned long *)EMAC_PTP_RXSNAPLO)
|
||||
#define pEMAC_PTP_RXSNAPHI ((volatile unsigned long *)EMAC_PTP_RXSNAPHI)
|
||||
#define pEMAC_PTP_TXSNAPLO ((volatile unsigned long *)EMAC_PTP_TXSNAPLO)
|
||||
#define pEMAC_PTP_TXSNAPHI ((volatile unsigned long *)EMAC_PTP_TXSNAPHI)
|
||||
#define pEMAC_PTP_ALARMLO ((volatile unsigned long *)EMAC_PTP_ALARMLO)
|
||||
#define pEMAC_PTP_ALARMHI ((volatile unsigned long *)EMAC_PTP_ALARMHI)
|
||||
#define pEMAC_PTP_ID_OFF ((volatile unsigned short *)EMAC_PTP_ID_OFF)
|
||||
#define pEMAC_PTP_ID_SNAP ((volatile unsigned long *)EMAC_PTP_ID_SNAP)
|
||||
#define pEMAC_PTP_PPS_STARTLO ((volatile unsigned long *)EMAC_PTP_PPS_STARTLO)
|
||||
#define pEMAC_PTP_PPS_STARTHI ((volatile unsigned long *)EMAC_PTP_PPS_STARTHI)
|
||||
#define pEMAC_PTP_PPS_PERIOD ((volatile unsigned long *)EMAC_PTP_PPS_PERIOD)
|
||||
|
||||
|
||||
/* SDH Registers (0xFFC03800 - 0xFFC03CFF)*/
|
||||
#define pSDH_PWR_CTL ((volatile unsigned short *)SDH_PWR_CTL)
|
||||
#define pSDH_CLK_CTL ((volatile unsigned short *)SDH_CLK_CTL)
|
||||
#define pSDH_ARGUMENT ((volatile unsigned long *)SDH_ARGUMENT)
|
||||
#define pSDH_COMMAND ((volatile unsigned short *)SDH_COMMAND)
|
||||
#define pSDH_RESP_CMD ((volatile unsigned short *)SDH_RESP_CMD)
|
||||
#define pSDH_RESPONSE0 ((volatile unsigned long *)SDH_RESPONSE0)
|
||||
#define pSDH_RESPONSE1 ((volatile unsigned long *)SDH_RESPONSE1)
|
||||
#define pSDH_RESPONSE2 ((volatile unsigned long *)SDH_RESPONSE2)
|
||||
#define pSDH_RESPONSE3 ((volatile unsigned long *)SDH_RESPONSE3)
|
||||
#define pSDH_DATA_TIMER ((volatile unsigned long *)SDH_DATA_TIMER)
|
||||
#define pSDH_DATA_LGTH ((volatile unsigned short *)SDH_DATA_LGTH)
|
||||
#define pSDH_DATA_CTL ((volatile unsigned short *)SDH_DATA_CTL)
|
||||
#define pSDH_DATA_CNT ((volatile unsigned short *)SDH_DATA_CNT)
|
||||
#define pSDH_STATUS ((volatile unsigned long *)SDH_STATUS)
|
||||
#define pSDH_STATUS_CLR ((volatile unsigned short *)SDH_STATUS_CLR)
|
||||
#define pSDH_MASK0 ((volatile unsigned long *)SDH_MASK0)
|
||||
#define pSDH_MASK1 ((volatile unsigned long *)SDH_MASK1)
|
||||
#define pSDH_FIFO_CNT ((volatile unsigned short *)SDH_FIFO_CNT)
|
||||
#define pSDH_FIFO ((volatile unsigned long *)SDH_FIFO)
|
||||
#define pSDH_E_STATUS ((volatile unsigned short *)SDH_E_STATUS)
|
||||
#define pSDH_E_MASK ((volatile unsigned short *)SDH_E_MASK)
|
||||
#define pSDH_CFG ((volatile unsigned short *)SDH_CFG)
|
||||
#define pSDH_RD_WAIT_EN ((volatile unsigned short *)SDH_RD_WAIT_EN)
|
||||
#define pSDH_PID0 ((volatile unsigned short *)SDH_PID0)
|
||||
#define pSDH_PID1 ((volatile unsigned short *)SDH_PID1)
|
||||
#define pSDH_PID2 ((volatile unsigned short *)SDH_PID2)
|
||||
#define pSDH_PID3 ((volatile unsigned short *)SDH_PID3)
|
||||
#define pSDH_PID4 ((volatile unsigned short *)SDH_PID4)
|
||||
#define pSDH_PID5 ((volatile unsigned short *)SDH_PID5)
|
||||
#define pSDH_PID6 ((volatile unsigned short *)SDH_PID6)
|
||||
#define pSDH_PID7 ((volatile unsigned short *)SDH_PID7)
|
||||
|
||||
|
||||
/* RSI Registers (0xFFC03800 - 0xFFC03CFF)*/
|
||||
#define pRSI_PWR_CONTROL ((volatile unsigned short *)RSI_PWR_CONTROL)
|
||||
#define pRSI_CLK_CONTROL ((volatile unsigned short *)RSI_CLK_CONTROL)
|
||||
#define pRSI_ARGUMENT ((volatile unsigned long *)RSI_ARGUMENT)
|
||||
#define pRSI_COMMAND ((volatile unsigned short *)RSI_COMMAND)
|
||||
#define pRSI_RESP_CMD ((volatile unsigned short *)RSI_RESP_CMD)
|
||||
#define pRSI_RESPONSE0 ((volatile unsigned long *)RSI_RESPONSE0)
|
||||
#define pRSI_RESPONSE1 ((volatile unsigned long *)RSI_RESPONSE1)
|
||||
#define pRSI_RESPONSE2 ((volatile unsigned long *)RSI_RESPONSE2)
|
||||
#define pRSI_RESPONSE3 ((volatile unsigned long *)RSI_RESPONSE3)
|
||||
#define pRSI_DATA_TIMER ((volatile unsigned long *)RSI_DATA_TIMER)
|
||||
#define pRSI_DATA_LGTH ((volatile unsigned short *)RSI_DATA_LGTH)
|
||||
#define pRSI_DATA_CONTROL ((volatile unsigned short *)RSI_DATA_CONTROL)
|
||||
#define pRSI_DATA_CNT ((volatile unsigned short *)RSI_DATA_CNT)
|
||||
#define pRSI_STATUS ((volatile unsigned long *)RSI_STATUS)
|
||||
#define pRSI_STATUSCL ((volatile unsigned short *)RSI_STATUSCL)
|
||||
#define pRSI_MASK0 ((volatile unsigned long *)RSI_MASK0)
|
||||
#define pRSI_MASK1 ((volatile unsigned long *)RSI_MASK1)
|
||||
#define pRSI_FIFO_CNT ((volatile unsigned short *)RSI_FIFO_CNT)
|
||||
#define pRSI_CEATA_CONTROL ((volatile unsigned short *)RSI_CEATA_CONTROL)
|
||||
#define pRSI_FIFO ((volatile unsigned long *)RSI_FIFO)
|
||||
#define pRSI_ESTAT ((volatile unsigned short *)RSI_ESTAT)
|
||||
#define pRSI_EMASK ((volatile unsigned short *)RSI_EMASK)
|
||||
#define pRSI_CONFIG ((volatile unsigned short *)RSI_CONFIG)
|
||||
#define pRSI_RD_WAIT_EN ((volatile unsigned short *)RSI_RD_WAIT_EN)
|
||||
#define pRSI_PID0 ((volatile unsigned short *)RSI_PID0)
|
||||
#define pRSI_PID1 ((volatile unsigned short *)RSI_PID1)
|
||||
#define pRSI_PID2 ((volatile unsigned short *)RSI_PID2)
|
||||
#define pRSI_PID3 ((volatile unsigned short *)RSI_PID3)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF518_H */
|
674
gcc/libgloss/bfin/include/cdefBF51x_base.h
Normal file
674
gcc/libgloss/bfin/include/cdefBF51x_base.h
Normal file
@ -0,0 +1,674 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** cdefBF51x_base.h
|
||||
**
|
||||
** Copyright (C) 2007-2009 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the registers common to the ADSP-BF51x peripherals.
|
||||
**
|
||||
***************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF51X_H
|
||||
#define _CDEF_BF51X_H
|
||||
|
||||
#include <defBF51x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#ifndef _PTR_TO_VOL_VOID_PTR
|
||||
#ifndef _USE_LEGACY_CDEF_BEHAVIOUR
|
||||
#define _PTR_TO_VOL_VOID_PTR (void * volatile *)
|
||||
#else
|
||||
#define _PTR_TO_VOL_VOID_PTR (volatile void **)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/* Clock and System Control (0xFFC00000 - 0xFFC000FF) */
|
||||
#define pPLL_CTL ((volatile unsigned short *)PLL_CTL)
|
||||
#define pPLL_DIV ((volatile unsigned short *)PLL_DIV)
|
||||
#define pVR_CTL ((volatile unsigned short *)VR_CTL)
|
||||
#define pPLL_STAT ((volatile unsigned short *)PLL_STAT)
|
||||
#define pPLL_LOCKCNT ((volatile unsigned short *)PLL_LOCKCNT)
|
||||
#define pCHIPID ((volatile unsigned long *)CHIPID)
|
||||
|
||||
|
||||
/* System Interrupt Controller(0xFFC00100 - 0xFFC001FF) */
|
||||
#define pSWRST ((volatile unsigned short *)SWRST)
|
||||
#define pSYSCR ((volatile unsigned short *)SYSCR)
|
||||
|
||||
#define pSIC_IMASK0 ((volatile unsigned long *)SIC_IMASK0) /* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSIC_IMASK ((volatile unsigned long *)SIC_IMASK0)
|
||||
#define pSIC_IAR0 ((volatile unsigned long *)SIC_IAR0)
|
||||
#define pSIC_IAR1 ((volatile unsigned long *)SIC_IAR1)
|
||||
#define pSIC_IAR2 ((volatile unsigned long *)SIC_IAR2)
|
||||
#define pSIC_IAR3 ((volatile unsigned long *)SIC_IAR3)
|
||||
#define pSIC_ISR0 ((volatile unsigned long *)SIC_ISR0) /* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSIC_ISR ((volatile unsigned long *)SIC_ISR0)
|
||||
#define pSIC_IWR0 ((volatile unsigned long *)SIC_IWR0) /* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSIC_IWR ((volatile unsigned long *)SIC_IWR0)
|
||||
|
||||
/* SIC Additions to ADSP-BF51x(0xFFC0014C - 0xFFC00162) */
|
||||
#define pSIC_IMASK1 ((volatile unsigned long *)SIC_IMASK1)
|
||||
#define pSIC_IAR4 ((volatile unsigned long *)SIC_IAR4)
|
||||
#define pSIC_IAR5 ((volatile unsigned long *)SIC_IAR5)
|
||||
#define pSIC_IAR6 ((volatile unsigned long *)SIC_IAR6)
|
||||
#define pSIC_IAR7 ((volatile unsigned long *)SIC_IAR7)
|
||||
#define pSIC_ISR1 ((volatile unsigned long *)SIC_ISR1)
|
||||
#define pSIC_IWR1 ((volatile unsigned long *)SIC_IWR1)
|
||||
|
||||
/* Watchdog Timer (0xFFC00200 - 0xFFC002FF) */
|
||||
#define pWDOG_CTL ((volatile unsigned short *)WDOG_CTL)
|
||||
#define pWDOG_CNT ((volatile unsigned long *)WDOG_CNT)
|
||||
#define pWDOG_STAT ((volatile unsigned long *)WDOG_STAT)
|
||||
|
||||
|
||||
/* Real Time Clock (0xFFC00300 - 0xFFC003FF) */
|
||||
#define pRTC_STAT ((volatile unsigned long *)RTC_STAT)
|
||||
#define pRTC_ICTL ((volatile unsigned short *)RTC_ICTL)
|
||||
#define pRTC_ISTAT ((volatile unsigned short *)RTC_ISTAT)
|
||||
#define pRTC_SWCNT ((volatile unsigned short *)RTC_SWCNT)
|
||||
#define pRTC_ALARM ((volatile unsigned long *)RTC_ALARM)
|
||||
#define pRTC_FAST ((volatile unsigned short *)RTC_FAST)
|
||||
#define pRTC_PREN ((volatile unsigned short *)RTC_PREN)
|
||||
|
||||
|
||||
/* UART0 Controller (0xFFC00400 - 0xFFC004FF) */
|
||||
#define pUART0_THR ((volatile unsigned short *)UART0_THR)
|
||||
#define pUART0_RBR ((volatile unsigned short *)UART0_RBR)
|
||||
#define pUART0_DLL ((volatile unsigned short *)UART0_DLL)
|
||||
#define pUART0_IER ((volatile unsigned short *)UART0_IER)
|
||||
#define pUART0_DLH ((volatile unsigned short *)UART0_DLH)
|
||||
#define pUART0_IIR ((volatile unsigned short *)UART0_IIR)
|
||||
#define pUART0_LCR ((volatile unsigned short *)UART0_LCR)
|
||||
#define pUART0_MCR ((volatile unsigned short *)UART0_MCR)
|
||||
#define pUART0_LSR ((volatile unsigned short *)UART0_LSR)
|
||||
#define pUART0_SCR ((volatile unsigned short *)UART0_SCR)
|
||||
#define pUART0_GCTL ((volatile unsigned short *)UART0_GCTL)
|
||||
|
||||
|
||||
/* SPI0 Controller (0xFFC00500 - 0xFFC005FF)*/
|
||||
#define pSPI0_CTL ((volatile unsigned short *)SPI0_CTL)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSPI_CTL pSPI0_CTL
|
||||
#define pSPI0_FLG ((volatile unsigned short *)SPI0_FLG)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSPI_FLG pSPI0_FLG
|
||||
#define pSPI0_STAT ((volatile unsigned short *)SPI0_STAT)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSPI_STAT pSPI0_STAT
|
||||
#define pSPI0_TDBR ((volatile unsigned short *)SPI0_TDBR)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSPI_TDBR pSPI0_TDBR
|
||||
#define pSPI0_RDBR ((volatile unsigned short *)SPI0_RDBR)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSPI_RDBR pSPI0_RDBR
|
||||
#define pSPI0_BAUD ((volatile unsigned short *)SPI0_BAUD)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSPI_BAUD pSPI0_BAUD
|
||||
#define pSPI0_SHADOW ((volatile unsigned short *)SPI0_SHADOW)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSPI_SHADOW pSPI0_SHADOW
|
||||
|
||||
|
||||
/* TIMER0-7 Registers (0xFFC00600 - 0xFFC006FF) */
|
||||
#define pTIMER0_CONFIG ((volatile unsigned short *)TIMER0_CONFIG)
|
||||
#define pTIMER0_COUNTER ((volatile unsigned long *)TIMER0_COUNTER)
|
||||
#define pTIMER0_PERIOD ((volatile unsigned long *)TIMER0_PERIOD)
|
||||
#define pTIMER0_WIDTH ((volatile unsigned long *)TIMER0_WIDTH)
|
||||
|
||||
#define pTIMER1_CONFIG ((volatile unsigned short *)TIMER1_CONFIG)
|
||||
#define pTIMER1_COUNTER ((volatile unsigned long *)TIMER1_COUNTER)
|
||||
#define pTIMER1_PERIOD ((volatile unsigned long *)TIMER1_PERIOD)
|
||||
#define pTIMER1_WIDTH ((volatile unsigned long *)TIMER1_WIDTH)
|
||||
|
||||
#define pTIMER2_CONFIG ((volatile unsigned short *)TIMER2_CONFIG)
|
||||
#define pTIMER2_COUNTER ((volatile unsigned long *)TIMER2_COUNTER)
|
||||
#define pTIMER2_PERIOD ((volatile unsigned long *)TIMER2_PERIOD)
|
||||
#define pTIMER2_WIDTH ((volatile unsigned long *)TIMER2_WIDTH)
|
||||
|
||||
#define pTIMER3_CONFIG ((volatile unsigned short *)TIMER3_CONFIG)
|
||||
#define pTIMER3_COUNTER ((volatile unsigned long *)TIMER3_COUNTER)
|
||||
#define pTIMER3_PERIOD ((volatile unsigned long *)TIMER3_PERIOD)
|
||||
#define pTIMER3_WIDTH ((volatile unsigned long *)TIMER3_WIDTH)
|
||||
|
||||
#define pTIMER4_CONFIG ((volatile unsigned short *)TIMER4_CONFIG)
|
||||
#define pTIMER4_COUNTER ((volatile unsigned long *)TIMER4_COUNTER)
|
||||
#define pTIMER4_PERIOD ((volatile unsigned long *)TIMER4_PERIOD)
|
||||
#define pTIMER4_WIDTH ((volatile unsigned long *)TIMER4_WIDTH)
|
||||
|
||||
#define pTIMER5_CONFIG ((volatile unsigned short *)TIMER5_CONFIG)
|
||||
#define pTIMER5_COUNTER ((volatile unsigned long *)TIMER5_COUNTER)
|
||||
#define pTIMER5_PERIOD ((volatile unsigned long *)TIMER5_PERIOD)
|
||||
#define pTIMER5_WIDTH ((volatile unsigned long *)TIMER5_WIDTH)
|
||||
|
||||
#define pTIMER6_CONFIG ((volatile unsigned short *)TIMER6_CONFIG)
|
||||
#define pTIMER6_COUNTER ((volatile unsigned long *)TIMER6_COUNTER)
|
||||
#define pTIMER6_PERIOD ((volatile unsigned long *)TIMER6_PERIOD)
|
||||
#define pTIMER6_WIDTH ((volatile unsigned long *)TIMER6_WIDTH)
|
||||
|
||||
#define pTIMER7_CONFIG ((volatile unsigned short *)TIMER7_CONFIG)
|
||||
#define pTIMER7_COUNTER ((volatile unsigned long *)TIMER7_COUNTER)
|
||||
#define pTIMER7_PERIOD ((volatile unsigned long *)TIMER7_PERIOD)
|
||||
#define pTIMER7_WIDTH ((volatile unsigned long *)TIMER7_WIDTH)
|
||||
|
||||
#define pTIMER_ENABLE ((volatile unsigned short *)TIMER_ENABLE)
|
||||
#define pTIMER_DISABLE ((volatile unsigned short *)TIMER_DISABLE)
|
||||
#define pTIMER_STATUS ((volatile unsigned long *)TIMER_STATUS)
|
||||
|
||||
|
||||
/* General Purpose I/O Port F (0xFFC00700 - 0xFFC007FF) */
|
||||
#define pPORTFIO ((volatile unsigned short *)PORTFIO)
|
||||
#define pPORTFIO_CLEAR ((volatile unsigned short *)PORTFIO_CLEAR)
|
||||
#define pPORTFIO_SET ((volatile unsigned short *)PORTFIO_SET)
|
||||
#define pPORTFIO_TOGGLE ((volatile unsigned short *)PORTFIO_TOGGLE)
|
||||
#define pPORTFIO_MASKA ((volatile unsigned short *)PORTFIO_MASKA)
|
||||
#define pPORTFIO_MASKA_CLEAR ((volatile unsigned short *)PORTFIO_MASKA_CLEAR)
|
||||
#define pPORTFIO_MASKA_SET ((volatile unsigned short *)PORTFIO_MASKA_SET)
|
||||
#define pPORTFIO_MASKA_TOGGLE ((volatile unsigned short *)PORTFIO_MASKA_TOGGLE)
|
||||
#define pPORTFIO_MASKB ((volatile unsigned short *)PORTFIO_MASKB)
|
||||
#define pPORTFIO_MASKB_CLEAR ((volatile unsigned short *)PORTFIO_MASKB_CLEAR)
|
||||
#define pPORTFIO_MASKB_SET ((volatile unsigned short *)PORTFIO_MASKB_SET)
|
||||
#define pPORTFIO_MASKB_TOGGLE ((volatile unsigned short *)PORTFIO_MASKB_TOGGLE)
|
||||
#define pPORTFIO_DIR ((volatile unsigned short *)PORTFIO_DIR)
|
||||
#define pPORTFIO_POLAR ((volatile unsigned short *)PORTFIO_POLAR)
|
||||
#define pPORTFIO_EDGE ((volatile unsigned short *)PORTFIO_EDGE)
|
||||
#define pPORTFIO_BOTH ((volatile unsigned short *)PORTFIO_BOTH)
|
||||
#define pPORTFIO_INEN ((volatile unsigned short *)PORTFIO_INEN)
|
||||
|
||||
|
||||
/* SPORT0 Controller (0xFFC00800 - 0xFFC008FF) */
|
||||
#define pSPORT0_TCR1 ((volatile unsigned short *)SPORT0_TCR1)
|
||||
#define pSPORT0_TCR2 ((volatile unsigned short *)SPORT0_TCR2)
|
||||
#define pSPORT0_TCLKDIV ((volatile unsigned short *)SPORT0_TCLKDIV)
|
||||
#define pSPORT0_TFSDIV ((volatile unsigned short *)SPORT0_TFSDIV)
|
||||
#define pSPORT0_TX ((volatile unsigned long *)SPORT0_TX)
|
||||
#define pSPORT0_RX ((volatile unsigned long *)SPORT0_RX)
|
||||
#define pSPORT0_TX32 ((volatile unsigned long *)SPORT0_TX)
|
||||
#define pSPORT0_RX32 ((volatile unsigned long *)SPORT0_RX)
|
||||
#define pSPORT0_TX16 ((volatile unsigned short *)SPORT0_TX)
|
||||
#define pSPORT0_RX16 ((volatile unsigned short *)SPORT0_RX)
|
||||
#define pSPORT0_RCR1 ((volatile unsigned short *)SPORT0_RCR1)
|
||||
#define pSPORT0_RCR2 ((volatile unsigned short *)SPORT0_RCR2)
|
||||
#define pSPORT0_RCLKDIV ((volatile unsigned short *)SPORT0_RCLKDIV)
|
||||
#define pSPORT0_RFSDIV ((volatile unsigned short *)SPORT0_RFSDIV)
|
||||
#define pSPORT0_STAT ((volatile unsigned short *)SPORT0_STAT)
|
||||
#define pSPORT0_CHNL ((volatile unsigned short *)SPORT0_CHNL)
|
||||
#define pSPORT0_MCMC1 ((volatile unsigned short *)SPORT0_MCMC1)
|
||||
#define pSPORT0_MCMC2 ((volatile unsigned short *)SPORT0_MCMC2)
|
||||
#define pSPORT0_MTCS0 ((volatile unsigned long *)SPORT0_MTCS0)
|
||||
#define pSPORT0_MTCS1 ((volatile unsigned long *)SPORT0_MTCS1)
|
||||
#define pSPORT0_MTCS2 ((volatile unsigned long *)SPORT0_MTCS2)
|
||||
#define pSPORT0_MTCS3 ((volatile unsigned long *)SPORT0_MTCS3)
|
||||
#define pSPORT0_MRCS0 ((volatile unsigned long *)SPORT0_MRCS0)
|
||||
#define pSPORT0_MRCS1 ((volatile unsigned long *)SPORT0_MRCS1)
|
||||
#define pSPORT0_MRCS2 ((volatile unsigned long *)SPORT0_MRCS2)
|
||||
#define pSPORT0_MRCS3 ((volatile unsigned long *)SPORT0_MRCS3)
|
||||
|
||||
|
||||
/* SPORT1 Controller (0xFFC00900 - 0xFFC009FF) */
|
||||
#define pSPORT1_TCR1 ((volatile unsigned short *)SPORT1_TCR1)
|
||||
#define pSPORT1_TCR2 ((volatile unsigned short *)SPORT1_TCR2)
|
||||
#define pSPORT1_TCLKDIV ((volatile unsigned short *)SPORT1_TCLKDIV)
|
||||
#define pSPORT1_TFSDIV ((volatile unsigned short *)SPORT1_TFSDIV)
|
||||
#define pSPORT1_TX ((volatile unsigned long *)SPORT1_TX)
|
||||
#define pSPORT1_RX ((volatile unsigned long *)SPORT1_RX)
|
||||
#define pSPORT1_TX32 ((volatile unsigned long *)SPORT1_TX)
|
||||
#define pSPORT1_RX32 ((volatile unsigned long *)SPORT1_RX)
|
||||
#define pSPORT1_TX16 ((volatile unsigned short *)SPORT1_TX)
|
||||
#define pSPORT1_RX16 ((volatile unsigned short *)SPORT1_RX)
|
||||
#define pSPORT1_RCR1 ((volatile unsigned short *)SPORT1_RCR1)
|
||||
#define pSPORT1_RCR2 ((volatile unsigned short *)SPORT1_RCR2)
|
||||
#define pSPORT1_RCLKDIV ((volatile unsigned short *)SPORT1_RCLKDIV)
|
||||
#define pSPORT1_RFSDIV ((volatile unsigned short *)SPORT1_RFSDIV)
|
||||
#define pSPORT1_STAT ((volatile unsigned short *)SPORT1_STAT)
|
||||
#define pSPORT1_CHNL ((volatile unsigned short *)SPORT1_CHNL)
|
||||
#define pSPORT1_MCMC1 ((volatile unsigned short *)SPORT1_MCMC1)
|
||||
#define pSPORT1_MCMC2 ((volatile unsigned short *)SPORT1_MCMC2)
|
||||
#define pSPORT1_MTCS0 ((volatile unsigned long *)SPORT1_MTCS0)
|
||||
#define pSPORT1_MTCS1 ((volatile unsigned long *)SPORT1_MTCS1)
|
||||
#define pSPORT1_MTCS2 ((volatile unsigned long *)SPORT1_MTCS2)
|
||||
#define pSPORT1_MTCS3 ((volatile unsigned long *)SPORT1_MTCS3)
|
||||
#define pSPORT1_MRCS0 ((volatile unsigned long *)SPORT1_MRCS0)
|
||||
#define pSPORT1_MRCS1 ((volatile unsigned long *)SPORT1_MRCS1)
|
||||
#define pSPORT1_MRCS2 ((volatile unsigned long *)SPORT1_MRCS2)
|
||||
#define pSPORT1_MRCS3 ((volatile unsigned long *)SPORT1_MRCS3)
|
||||
|
||||
|
||||
/* External Bus Interface Unit (0xFFC00A00 - 0xFFC00AFF) */
|
||||
#define pEBIU_AMGCTL ((volatile unsigned short *)EBIU_AMGCTL)
|
||||
#define pEBIU_AMBCTL0 ((volatile unsigned long *)EBIU_AMBCTL0)
|
||||
#define pEBIU_AMBCTL1 ((volatile unsigned long *)EBIU_AMBCTL1)
|
||||
#define pEBIU_SDGCTL ((volatile unsigned long *)EBIU_SDGCTL)
|
||||
#define pEBIU_SDBCTL ((volatile unsigned short *)EBIU_SDBCTL)
|
||||
#define pEBIU_SDRRC ((volatile unsigned short *)EBIU_SDRRC)
|
||||
#define pEBIU_SDSTAT ((volatile unsigned short *)EBIU_SDSTAT)
|
||||
|
||||
|
||||
/* DMA Traffic Control Registers (0xFFC00B00 - 0xFFC00BFF) */
|
||||
#define pDMA_TC_PER ((volatile unsigned short *)DMA_TC_PER)
|
||||
#define pDMA_TC_CNT ((volatile unsigned short *)DMA_TC_CNT)
|
||||
|
||||
/* Alternate deprecated register names (below) provided for backwards code compatibility */
|
||||
#define pDMA_TCPER ((volatile unsigned short *)DMA_TCPER)
|
||||
#define pDMA_TCCNT ((volatile unsigned short *)DMA_TCCNT)
|
||||
|
||||
/* DMA Controller (0xFFC00C00 - FFC00FFF)*/
|
||||
#define pDMA0_CONFIG ((volatile unsigned short *)DMA0_CONFIG)
|
||||
#define pDMA0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA0_NEXT_DESC_PTR)
|
||||
#define pDMA0_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA0_START_ADDR)
|
||||
#define pDMA0_X_COUNT ((volatile unsigned short *)DMA0_X_COUNT)
|
||||
#define pDMA0_Y_COUNT ((volatile unsigned short *)DMA0_Y_COUNT)
|
||||
#define pDMA0_X_MODIFY ((volatile signed short *)DMA0_X_MODIFY)
|
||||
#define pDMA0_Y_MODIFY ((volatile signed short *)DMA0_Y_MODIFY)
|
||||
#define pDMA0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA0_CURR_DESC_PTR)
|
||||
#define pDMA0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA0_CURR_ADDR)
|
||||
#define pDMA0_CURR_X_COUNT ((volatile unsigned short *)DMA0_CURR_X_COUNT)
|
||||
#define pDMA0_CURR_Y_COUNT ((volatile unsigned short *)DMA0_CURR_Y_COUNT)
|
||||
#define pDMA0_IRQ_STATUS ((volatile unsigned short *)DMA0_IRQ_STATUS)
|
||||
#define pDMA0_PERIPHERAL_MAP ((volatile unsigned short *)DMA0_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA1_CONFIG ((volatile unsigned short *)DMA1_CONFIG)
|
||||
#define pDMA1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA1_NEXT_DESC_PTR)
|
||||
#define pDMA1_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA1_START_ADDR)
|
||||
#define pDMA1_X_COUNT ((volatile unsigned short *)DMA1_X_COUNT)
|
||||
#define pDMA1_Y_COUNT ((volatile unsigned short *)DMA1_Y_COUNT)
|
||||
#define pDMA1_X_MODIFY ((volatile signed short *)DMA1_X_MODIFY)
|
||||
#define pDMA1_Y_MODIFY ((volatile signed short *)DMA1_Y_MODIFY)
|
||||
#define pDMA1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA1_CURR_DESC_PTR)
|
||||
#define pDMA1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA1_CURR_ADDR)
|
||||
#define pDMA1_CURR_X_COUNT ((volatile unsigned short *)DMA1_CURR_X_COUNT)
|
||||
#define pDMA1_CURR_Y_COUNT ((volatile unsigned short *)DMA1_CURR_Y_COUNT)
|
||||
#define pDMA1_IRQ_STATUS ((volatile unsigned short *)DMA1_IRQ_STATUS)
|
||||
#define pDMA1_PERIPHERAL_MAP ((volatile unsigned short *)DMA1_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA2_CONFIG ((volatile unsigned short *)DMA2_CONFIG)
|
||||
#define pDMA2_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA2_NEXT_DESC_PTR)
|
||||
#define pDMA2_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA2_START_ADDR)
|
||||
#define pDMA2_X_COUNT ((volatile unsigned short *)DMA2_X_COUNT)
|
||||
#define pDMA2_Y_COUNT ((volatile unsigned short *)DMA2_Y_COUNT)
|
||||
#define pDMA2_X_MODIFY ((volatile signed short *)DMA2_X_MODIFY)
|
||||
#define pDMA2_Y_MODIFY ((volatile signed short *)DMA2_Y_MODIFY)
|
||||
#define pDMA2_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA2_CURR_DESC_PTR)
|
||||
#define pDMA2_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA2_CURR_ADDR)
|
||||
#define pDMA2_CURR_X_COUNT ((volatile unsigned short *)DMA2_CURR_X_COUNT)
|
||||
#define pDMA2_CURR_Y_COUNT ((volatile unsigned short *)DMA2_CURR_Y_COUNT)
|
||||
#define pDMA2_IRQ_STATUS ((volatile unsigned short *)DMA2_IRQ_STATUS)
|
||||
#define pDMA2_PERIPHERAL_MAP ((volatile unsigned short *)DMA2_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA3_CONFIG ((volatile unsigned short *)DMA3_CONFIG)
|
||||
#define pDMA3_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA3_NEXT_DESC_PTR)
|
||||
#define pDMA3_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA3_START_ADDR)
|
||||
#define pDMA3_X_COUNT ((volatile unsigned short *)DMA3_X_COUNT)
|
||||
#define pDMA3_Y_COUNT ((volatile unsigned short *)DMA3_Y_COUNT)
|
||||
#define pDMA3_X_MODIFY ((volatile signed short *)DMA3_X_MODIFY)
|
||||
#define pDMA3_Y_MODIFY ((volatile signed short *)DMA3_Y_MODIFY)
|
||||
#define pDMA3_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA3_CURR_DESC_PTR)
|
||||
#define pDMA3_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA3_CURR_ADDR)
|
||||
#define pDMA3_CURR_X_COUNT ((volatile unsigned short *)DMA3_CURR_X_COUNT)
|
||||
#define pDMA3_CURR_Y_COUNT ((volatile unsigned short *)DMA3_CURR_Y_COUNT)
|
||||
#define pDMA3_IRQ_STATUS ((volatile unsigned short *)DMA3_IRQ_STATUS)
|
||||
#define pDMA3_PERIPHERAL_MAP ((volatile unsigned short *)DMA3_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA4_CONFIG ((volatile unsigned short *)DMA4_CONFIG)
|
||||
#define pDMA4_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA4_NEXT_DESC_PTR)
|
||||
#define pDMA4_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA4_START_ADDR)
|
||||
#define pDMA4_X_COUNT ((volatile unsigned short *)DMA4_X_COUNT)
|
||||
#define pDMA4_Y_COUNT ((volatile unsigned short *)DMA4_Y_COUNT)
|
||||
#define pDMA4_X_MODIFY ((volatile signed short *)DMA4_X_MODIFY)
|
||||
#define pDMA4_Y_MODIFY ((volatile signed short *)DMA4_Y_MODIFY)
|
||||
#define pDMA4_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA4_CURR_DESC_PTR)
|
||||
#define pDMA4_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA4_CURR_ADDR)
|
||||
#define pDMA4_CURR_X_COUNT ((volatile unsigned short *)DMA4_CURR_X_COUNT)
|
||||
#define pDMA4_CURR_Y_COUNT ((volatile unsigned short *)DMA4_CURR_Y_COUNT)
|
||||
#define pDMA4_IRQ_STATUS ((volatile unsigned short *)DMA4_IRQ_STATUS)
|
||||
#define pDMA4_PERIPHERAL_MAP ((volatile unsigned short *)DMA4_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA5_CONFIG ((volatile unsigned short *)DMA5_CONFIG)
|
||||
#define pDMA5_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA5_NEXT_DESC_PTR)
|
||||
#define pDMA5_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA5_START_ADDR)
|
||||
#define pDMA5_X_COUNT ((volatile unsigned short *)DMA5_X_COUNT)
|
||||
#define pDMA5_Y_COUNT ((volatile unsigned short *)DMA5_Y_COUNT)
|
||||
#define pDMA5_X_MODIFY ((volatile signed short *)DMA5_X_MODIFY)
|
||||
#define pDMA5_Y_MODIFY ((volatile signed short *)DMA5_Y_MODIFY)
|
||||
#define pDMA5_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA5_CURR_DESC_PTR)
|
||||
#define pDMA5_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA5_CURR_ADDR)
|
||||
#define pDMA5_CURR_X_COUNT ((volatile unsigned short *)DMA5_CURR_X_COUNT)
|
||||
#define pDMA5_CURR_Y_COUNT ((volatile unsigned short *)DMA5_CURR_Y_COUNT)
|
||||
#define pDMA5_IRQ_STATUS ((volatile unsigned short *)DMA5_IRQ_STATUS)
|
||||
#define pDMA5_PERIPHERAL_MAP ((volatile unsigned short *)DMA5_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA6_CONFIG ((volatile unsigned short *)DMA6_CONFIG)
|
||||
#define pDMA6_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA6_NEXT_DESC_PTR)
|
||||
#define pDMA6_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA6_START_ADDR)
|
||||
#define pDMA6_X_COUNT ((volatile unsigned short *)DMA6_X_COUNT)
|
||||
#define pDMA6_Y_COUNT ((volatile unsigned short *)DMA6_Y_COUNT)
|
||||
#define pDMA6_X_MODIFY ((volatile signed short *)DMA6_X_MODIFY)
|
||||
#define pDMA6_Y_MODIFY ((volatile signed short *)DMA6_Y_MODIFY)
|
||||
#define pDMA6_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA6_CURR_DESC_PTR)
|
||||
#define pDMA6_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA6_CURR_ADDR)
|
||||
#define pDMA6_CURR_X_COUNT ((volatile unsigned short *)DMA6_CURR_X_COUNT)
|
||||
#define pDMA6_CURR_Y_COUNT ((volatile unsigned short *)DMA6_CURR_Y_COUNT)
|
||||
#define pDMA6_IRQ_STATUS ((volatile unsigned short *)DMA6_IRQ_STATUS)
|
||||
#define pDMA6_PERIPHERAL_MAP ((volatile unsigned short *)DMA6_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA7_CONFIG ((volatile unsigned short *)DMA7_CONFIG)
|
||||
#define pDMA7_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA7_NEXT_DESC_PTR)
|
||||
#define pDMA7_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA7_START_ADDR)
|
||||
#define pDMA7_X_COUNT ((volatile unsigned short *)DMA7_X_COUNT)
|
||||
#define pDMA7_Y_COUNT ((volatile unsigned short *)DMA7_Y_COUNT)
|
||||
#define pDMA7_X_MODIFY ((volatile signed short *)DMA7_X_MODIFY)
|
||||
#define pDMA7_Y_MODIFY ((volatile signed short *)DMA7_Y_MODIFY)
|
||||
#define pDMA7_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA7_CURR_DESC_PTR)
|
||||
#define pDMA7_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA7_CURR_ADDR)
|
||||
#define pDMA7_CURR_X_COUNT ((volatile unsigned short *)DMA7_CURR_X_COUNT)
|
||||
#define pDMA7_CURR_Y_COUNT ((volatile unsigned short *)DMA7_CURR_Y_COUNT)
|
||||
#define pDMA7_IRQ_STATUS ((volatile unsigned short *)DMA7_IRQ_STATUS)
|
||||
#define pDMA7_PERIPHERAL_MAP ((volatile unsigned short *)DMA7_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA8_CONFIG ((volatile unsigned short *)DMA8_CONFIG)
|
||||
#define pDMA8_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA8_NEXT_DESC_PTR)
|
||||
#define pDMA8_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA8_START_ADDR)
|
||||
#define pDMA8_X_COUNT ((volatile unsigned short *)DMA8_X_COUNT)
|
||||
#define pDMA8_Y_COUNT ((volatile unsigned short *)DMA8_Y_COUNT)
|
||||
#define pDMA8_X_MODIFY ((volatile signed short *)DMA8_X_MODIFY)
|
||||
#define pDMA8_Y_MODIFY ((volatile signed short *)DMA8_Y_MODIFY)
|
||||
#define pDMA8_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA8_CURR_DESC_PTR)
|
||||
#define pDMA8_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA8_CURR_ADDR)
|
||||
#define pDMA8_CURR_X_COUNT ((volatile unsigned short *)DMA8_CURR_X_COUNT)
|
||||
#define pDMA8_CURR_Y_COUNT ((volatile unsigned short *)DMA8_CURR_Y_COUNT)
|
||||
#define pDMA8_IRQ_STATUS ((volatile unsigned short *)DMA8_IRQ_STATUS)
|
||||
#define pDMA8_PERIPHERAL_MAP ((volatile unsigned short *)DMA8_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA9_CONFIG ((volatile unsigned short *)DMA9_CONFIG)
|
||||
#define pDMA9_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA9_NEXT_DESC_PTR)
|
||||
#define pDMA9_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA9_START_ADDR)
|
||||
#define pDMA9_X_COUNT ((volatile unsigned short *)DMA9_X_COUNT)
|
||||
#define pDMA9_Y_COUNT ((volatile unsigned short *)DMA9_Y_COUNT)
|
||||
#define pDMA9_X_MODIFY ((volatile signed short *)DMA9_X_MODIFY)
|
||||
#define pDMA9_Y_MODIFY ((volatile signed short *)DMA9_Y_MODIFY)
|
||||
#define pDMA9_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA9_CURR_DESC_PTR)
|
||||
#define pDMA9_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA9_CURR_ADDR)
|
||||
#define pDMA9_CURR_X_COUNT ((volatile unsigned short *)DMA9_CURR_X_COUNT)
|
||||
#define pDMA9_CURR_Y_COUNT ((volatile unsigned short *)DMA9_CURR_Y_COUNT)
|
||||
#define pDMA9_IRQ_STATUS ((volatile unsigned short *)DMA9_IRQ_STATUS)
|
||||
#define pDMA9_PERIPHERAL_MAP ((volatile unsigned short *)DMA9_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA10_CONFIG ((volatile unsigned short *)DMA10_CONFIG)
|
||||
#define pDMA10_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA10_NEXT_DESC_PTR)
|
||||
#define pDMA10_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA10_START_ADDR)
|
||||
#define pDMA10_X_COUNT ((volatile unsigned short *)DMA10_X_COUNT)
|
||||
#define pDMA10_Y_COUNT ((volatile unsigned short *)DMA10_Y_COUNT)
|
||||
#define pDMA10_X_MODIFY ((volatile signed short *)DMA10_X_MODIFY)
|
||||
#define pDMA10_Y_MODIFY ((volatile signed short *)DMA10_Y_MODIFY)
|
||||
#define pDMA10_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA10_CURR_DESC_PTR)
|
||||
#define pDMA10_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA10_CURR_ADDR)
|
||||
#define pDMA10_CURR_X_COUNT ((volatile unsigned short *)DMA10_CURR_X_COUNT)
|
||||
#define pDMA10_CURR_Y_COUNT ((volatile unsigned short *)DMA10_CURR_Y_COUNT)
|
||||
#define pDMA10_IRQ_STATUS ((volatile unsigned short *)DMA10_IRQ_STATUS)
|
||||
#define pDMA10_PERIPHERAL_MAP ((volatile unsigned short *)DMA10_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA11_CONFIG ((volatile unsigned short *)DMA11_CONFIG)
|
||||
#define pDMA11_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA11_NEXT_DESC_PTR)
|
||||
#define pDMA11_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA11_START_ADDR)
|
||||
#define pDMA11_X_COUNT ((volatile unsigned short *)DMA11_X_COUNT)
|
||||
#define pDMA11_Y_COUNT ((volatile unsigned short *)DMA11_Y_COUNT)
|
||||
#define pDMA11_X_MODIFY ((volatile signed short *)DMA11_X_MODIFY)
|
||||
#define pDMA11_Y_MODIFY ((volatile signed short *)DMA11_Y_MODIFY)
|
||||
#define pDMA11_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA11_CURR_DESC_PTR)
|
||||
#define pDMA11_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA11_CURR_ADDR)
|
||||
#define pDMA11_CURR_X_COUNT ((volatile unsigned short *)DMA11_CURR_X_COUNT)
|
||||
#define pDMA11_CURR_Y_COUNT ((volatile unsigned short *)DMA11_CURR_Y_COUNT)
|
||||
#define pDMA11_IRQ_STATUS ((volatile unsigned short *)DMA11_IRQ_STATUS)
|
||||
#define pDMA11_PERIPHERAL_MAP ((volatile unsigned short *)DMA11_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_D0_CONFIG ((volatile unsigned short *)MDMA_D0_CONFIG)
|
||||
#define pMDMA_D0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D0_NEXT_DESC_PTR)
|
||||
#define pMDMA_D0_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D0_START_ADDR)
|
||||
#define pMDMA_D0_X_COUNT ((volatile unsigned short *)MDMA_D0_X_COUNT)
|
||||
#define pMDMA_D0_Y_COUNT ((volatile unsigned short *)MDMA_D0_Y_COUNT)
|
||||
#define pMDMA_D0_X_MODIFY ((volatile signed short *)MDMA_D0_X_MODIFY)
|
||||
#define pMDMA_D0_Y_MODIFY ((volatile signed short *)MDMA_D0_Y_MODIFY)
|
||||
#define pMDMA_D0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D0_CURR_DESC_PTR)
|
||||
#define pMDMA_D0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D0_CURR_ADDR)
|
||||
#define pMDMA_D0_CURR_X_COUNT ((volatile unsigned short *)MDMA_D0_CURR_X_COUNT)
|
||||
#define pMDMA_D0_CURR_Y_COUNT ((volatile unsigned short *)MDMA_D0_CURR_Y_COUNT)
|
||||
#define pMDMA_D0_IRQ_STATUS ((volatile unsigned short *)MDMA_D0_IRQ_STATUS)
|
||||
#define pMDMA_D0_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_D0_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_S0_CONFIG ((volatile unsigned short *)MDMA_S0_CONFIG)
|
||||
#define pMDMA_S0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S0_NEXT_DESC_PTR)
|
||||
#define pMDMA_S0_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S0_START_ADDR)
|
||||
#define pMDMA_S0_X_COUNT ((volatile unsigned short *)MDMA_S0_X_COUNT)
|
||||
#define pMDMA_S0_Y_COUNT ((volatile unsigned short *)MDMA_S0_Y_COUNT)
|
||||
#define pMDMA_S0_X_MODIFY ((volatile signed short *)MDMA_S0_X_MODIFY)
|
||||
#define pMDMA_S0_Y_MODIFY ((volatile signed short *)MDMA_S0_Y_MODIFY)
|
||||
#define pMDMA_S0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S0_CURR_DESC_PTR)
|
||||
#define pMDMA_S0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S0_CURR_ADDR)
|
||||
#define pMDMA_S0_CURR_X_COUNT ((volatile unsigned short *)MDMA_S0_CURR_X_COUNT)
|
||||
#define pMDMA_S0_CURR_Y_COUNT ((volatile unsigned short *)MDMA_S0_CURR_Y_COUNT)
|
||||
#define pMDMA_S0_IRQ_STATUS ((volatile unsigned short *)MDMA_S0_IRQ_STATUS)
|
||||
#define pMDMA_S0_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_S0_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_D1_CONFIG ((volatile unsigned short *)MDMA_D1_CONFIG)
|
||||
#define pMDMA_D1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D1_NEXT_DESC_PTR)
|
||||
#define pMDMA_D1_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D1_START_ADDR)
|
||||
#define pMDMA_D1_X_COUNT ((volatile unsigned short *)MDMA_D1_X_COUNT)
|
||||
#define pMDMA_D1_Y_COUNT ((volatile unsigned short *)MDMA_D1_Y_COUNT)
|
||||
#define pMDMA_D1_X_MODIFY ((volatile signed short *)MDMA_D1_X_MODIFY)
|
||||
#define pMDMA_D1_Y_MODIFY ((volatile signed short *)MDMA_D1_Y_MODIFY)
|
||||
#define pMDMA_D1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D1_CURR_DESC_PTR)
|
||||
#define pMDMA_D1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D1_CURR_ADDR)
|
||||
#define pMDMA_D1_CURR_X_COUNT ((volatile unsigned short *)MDMA_D1_CURR_X_COUNT)
|
||||
#define pMDMA_D1_CURR_Y_COUNT ((volatile unsigned short *)MDMA_D1_CURR_Y_COUNT)
|
||||
#define pMDMA_D1_IRQ_STATUS ((volatile unsigned short *)MDMA_D1_IRQ_STATUS)
|
||||
#define pMDMA_D1_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_D1_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_S1_CONFIG ((volatile unsigned short *)MDMA_S1_CONFIG)
|
||||
#define pMDMA_S1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S1_NEXT_DESC_PTR)
|
||||
#define pMDMA_S1_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S1_START_ADDR)
|
||||
#define pMDMA_S1_X_COUNT ((volatile unsigned short *)MDMA_S1_X_COUNT)
|
||||
#define pMDMA_S1_Y_COUNT ((volatile unsigned short *)MDMA_S1_Y_COUNT)
|
||||
#define pMDMA_S1_X_MODIFY ((volatile signed short *)MDMA_S1_X_MODIFY)
|
||||
#define pMDMA_S1_Y_MODIFY ((volatile signed short *)MDMA_S1_Y_MODIFY)
|
||||
#define pMDMA_S1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S1_CURR_DESC_PTR)
|
||||
#define pMDMA_S1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S1_CURR_ADDR)
|
||||
#define pMDMA_S1_CURR_X_COUNT ((volatile unsigned short *)MDMA_S1_CURR_X_COUNT)
|
||||
#define pMDMA_S1_CURR_Y_COUNT ((volatile unsigned short *)MDMA_S1_CURR_Y_COUNT)
|
||||
#define pMDMA_S1_IRQ_STATUS ((volatile unsigned short *)MDMA_S1_IRQ_STATUS)
|
||||
#define pMDMA_S1_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_S1_PERIPHERAL_MAP)
|
||||
|
||||
|
||||
/* Parallel Peripheral Interface (0xFFC01000 - 0xFFC010FF) */
|
||||
#define pPPI_CONTROL ((volatile unsigned short *)PPI_CONTROL)
|
||||
#define pPPI_STATUS ((volatile unsigned short *)PPI_STATUS)
|
||||
#define pPPI_DELAY ((volatile unsigned short *)PPI_DELAY)
|
||||
#define pPPI_COUNT ((volatile unsigned short *)PPI_COUNT)
|
||||
#define pPPI_FRAME ((volatile unsigned short *)PPI_FRAME)
|
||||
|
||||
|
||||
/* Two-Wire Interface (0xFFC01400 - 0xFFC014FF) */
|
||||
#define pTWI_CLKDIV ((volatile unsigned short *)TWI_CLKDIV)
|
||||
#define pTWI_CONTROL ((volatile unsigned short *)TWI_CONTROL)
|
||||
#define pTWI_SLAVE_CTL ((volatile unsigned short *)TWI_SLAVE_CTL)
|
||||
#define pTWI_SLAVE_STAT ((volatile unsigned short *)TWI_SLAVE_STAT)
|
||||
#define pTWI_SLAVE_ADDR ((volatile unsigned short *)TWI_SLAVE_ADDR)
|
||||
#define pTWI_MASTER_CTL ((volatile unsigned short *)TWI_MASTER_CTL)
|
||||
#define pTWI_MASTER_STAT ((volatile unsigned short *)TWI_MASTER_STAT)
|
||||
#define pTWI_MASTER_ADDR ((volatile unsigned short *)TWI_MASTER_ADDR)
|
||||
#define pTWI_INT_STAT ((volatile unsigned short *)TWI_INT_STAT)
|
||||
#define pTWI_INT_MASK ((volatile unsigned short *)TWI_INT_MASK)
|
||||
#define pTWI_FIFO_CTL ((volatile unsigned short *)TWI_FIFO_CTL)
|
||||
#define pTWI_FIFO_STAT ((volatile unsigned short *)TWI_FIFO_STAT)
|
||||
#define pTWI_XMT_DATA8 ((volatile unsigned short *)TWI_XMT_DATA8)
|
||||
#define pTWI_XMT_DATA16 ((volatile unsigned short *)TWI_XMT_DATA16)
|
||||
#define pTWI_RCV_DATA8 ((volatile unsigned short *)TWI_RCV_DATA8)
|
||||
#define pTWI_RCV_DATA16 ((volatile unsigned short *)TWI_RCV_DATA16)
|
||||
|
||||
|
||||
/* General Purpose I/O Port G (0xFFC01500 - 0xFFC015FF) */
|
||||
#define pPORTGIO ((volatile unsigned short *)PORTGIO)
|
||||
#define pPORTGIO_CLEAR ((volatile unsigned short *)PORTGIO_CLEAR)
|
||||
#define pPORTGIO_SET ((volatile unsigned short *)PORTGIO_SET)
|
||||
#define pPORTGIO_TOGGLE ((volatile unsigned short *)PORTGIO_TOGGLE)
|
||||
#define pPORTGIO_MASKA ((volatile unsigned short *)PORTGIO_MASKA)
|
||||
#define pPORTGIO_MASKA_CLEAR ((volatile unsigned short *)PORTGIO_MASKA_CLEAR)
|
||||
#define pPORTGIO_MASKA_SET ((volatile unsigned short *)PORTGIO_MASKA_SET)
|
||||
#define pPORTGIO_MASKA_TOGGLE ((volatile unsigned short *)PORTGIO_MASKA_TOGGLE)
|
||||
#define pPORTGIO_MASKB ((volatile unsigned short *)PORTGIO_MASKB)
|
||||
#define pPORTGIO_MASKB_CLEAR ((volatile unsigned short *)PORTGIO_MASKB_CLEAR)
|
||||
#define pPORTGIO_MASKB_SET ((volatile unsigned short *)PORTGIO_MASKB_SET)
|
||||
#define pPORTGIO_MASKB_TOGGLE ((volatile unsigned short *)PORTGIO_MASKB_TOGGLE)
|
||||
#define pPORTGIO_DIR ((volatile unsigned short *)PORTGIO_DIR)
|
||||
#define pPORTGIO_POLAR ((volatile unsigned short *)PORTGIO_POLAR)
|
||||
#define pPORTGIO_EDGE ((volatile unsigned short *)PORTGIO_EDGE)
|
||||
#define pPORTGIO_BOTH ((volatile unsigned short *)PORTGIO_BOTH)
|
||||
#define pPORTGIO_INEN ((volatile unsigned short *)PORTGIO_INEN)
|
||||
|
||||
|
||||
/* General Purpose I/O Port H (0xFFC01700 - 0xFFC017FF) */
|
||||
#define pPORTHIO ((volatile unsigned short *)PORTHIO)
|
||||
#define pPORTHIO_CLEAR ((volatile unsigned short *)PORTHIO_CLEAR)
|
||||
#define pPORTHIO_SET ((volatile unsigned short *)PORTHIO_SET)
|
||||
#define pPORTHIO_TOGGLE ((volatile unsigned short *)PORTHIO_TOGGLE)
|
||||
#define pPORTHIO_MASKA ((volatile unsigned short *)PORTHIO_MASKA)
|
||||
#define pPORTHIO_MASKA_CLEAR ((volatile unsigned short *)PORTHIO_MASKA_CLEAR)
|
||||
#define pPORTHIO_MASKA_SET ((volatile unsigned short *)PORTHIO_MASKA_SET)
|
||||
#define pPORTHIO_MASKA_TOGGLE ((volatile unsigned short *)PORTHIO_MASKA_TOGGLE)
|
||||
#define pPORTHIO_MASKB ((volatile unsigned short *)PORTHIO_MASKB)
|
||||
#define pPORTHIO_MASKB_CLEAR ((volatile unsigned short *)PORTHIO_MASKB_CLEAR)
|
||||
#define pPORTHIO_MASKB_SET ((volatile unsigned short *)PORTHIO_MASKB_SET)
|
||||
#define pPORTHIO_MASKB_TOGGLE ((volatile unsigned short *)PORTHIO_MASKB_TOGGLE)
|
||||
#define pPORTHIO_DIR ((volatile unsigned short *)PORTHIO_DIR)
|
||||
#define pPORTHIO_POLAR ((volatile unsigned short *)PORTHIO_POLAR)
|
||||
#define pPORTHIO_EDGE ((volatile unsigned short *)PORTHIO_EDGE)
|
||||
#define pPORTHIO_BOTH ((volatile unsigned short *)PORTHIO_BOTH)
|
||||
#define pPORTHIO_INEN ((volatile unsigned short *)PORTHIO_INEN)
|
||||
|
||||
|
||||
/* UART1 Controller (0xFFC02000 - 0xFFC020FF) */
|
||||
#define pUART1_THR ((volatile unsigned short *)UART1_THR)
|
||||
#define pUART1_RBR ((volatile unsigned short *)UART1_RBR)
|
||||
#define pUART1_DLL ((volatile unsigned short *)UART1_DLL)
|
||||
#define pUART1_IER ((volatile unsigned short *)UART1_IER)
|
||||
#define pUART1_DLH ((volatile unsigned short *)UART1_DLH)
|
||||
#define pUART1_IIR ((volatile unsigned short *)UART1_IIR)
|
||||
#define pUART1_LCR ((volatile unsigned short *)UART1_LCR)
|
||||
#define pUART1_MCR ((volatile unsigned short *)UART1_MCR)
|
||||
#define pUART1_LSR ((volatile unsigned short *)UART1_LSR)
|
||||
#define pUART1_SCR ((volatile unsigned short *)UART1_SCR)
|
||||
#define pUART1_GCTL ((volatile unsigned short *)UART1_GCTL)
|
||||
|
||||
|
||||
/* Pin Control Registers (0xFFC03200 - 0xFFC032FF) */
|
||||
#define pPORTF_FER ((volatile unsigned short *)PORTF_FER)
|
||||
#define pPORTG_FER ((volatile unsigned short *)PORTG_FER)
|
||||
#define pPORTH_FER ((volatile unsigned short *)PORTH_FER)
|
||||
|
||||
|
||||
/* Handshake MDMA Registers (0xFFC03300 - 0xFFC033FF) */
|
||||
#define pHMDMA0_CONTROL ((volatile unsigned short *)HMDMA0_CONTROL)
|
||||
#define pHMDMA0_ECINIT ((volatile unsigned short *)HMDMA0_ECINIT)
|
||||
#define pHMDMA0_BCINIT ((volatile unsigned short *)HMDMA0_BCINIT)
|
||||
#define pHMDMA0_ECURGENT ((volatile unsigned short *)HMDMA0_ECURGENT)
|
||||
#define pHMDMA0_ECOVERFLOW ((volatile unsigned short *)HMDMA0_ECOVERFLOW)
|
||||
#define pHMDMA0_ECOUNT ((volatile unsigned short *)HMDMA0_ECOUNT)
|
||||
#define pHMDMA0_BCOUNT ((volatile unsigned short *)HMDMA0_BCOUNT)
|
||||
|
||||
#define pHMDMA1_CONTROL ((volatile unsigned short *)HMDMA1_CONTROL)
|
||||
#define pHMDMA1_ECINIT ((volatile unsigned short *)HMDMA1_ECINIT)
|
||||
#define pHMDMA1_BCINIT ((volatile unsigned short *)HMDMA1_BCINIT)
|
||||
#define pHMDMA1_ECURGENT ((volatile unsigned short *)HMDMA1_ECURGENT)
|
||||
#define pHMDMA1_ECOVERFLOW ((volatile unsigned short *)HMDMA1_ECOVERFLOW)
|
||||
#define pHMDMA1_ECOUNT ((volatile unsigned short *)HMDMA1_ECOUNT)
|
||||
#define pHMDMA1_BCOUNT ((volatile unsigned short *)HMDMA1_BCOUNT)
|
||||
|
||||
|
||||
/* GPIO PIN mux (0xFFC03210 - OxFFC03288) */
|
||||
#define pPORTF_MUX ((volatile unsigned short *)PORTF_MUX)
|
||||
#define pPORTG_MUX ((volatile unsigned short *)PORTG_MUX)
|
||||
#define pPORTH_MUX ((volatile unsigned short *)PORTH_MUX)
|
||||
#define pPORTF_DRIVE ((volatile unsigned short *)PORTF_DRIVE)
|
||||
#define pPORTG_DRIVE ((volatile unsigned short *)PORTG_DRIVE)
|
||||
#define pPORTH_DRIVE ((volatile unsigned short *)PORTH_DRIVE)
|
||||
#define pPORTF_HYSTERESIS ((volatile unsigned short *)PORTF_HYSTERESIS)
|
||||
#define pPORTG_HYSTERESIS ((volatile unsigned short *)PORTG_HYSTERESIS)
|
||||
#define pPORTH_HYSTERESIS ((volatile unsigned short *)PORTH_HYSTERESIS)
|
||||
#define pNONGPIO_DRIVE ((volatile unsigned short *)NONGPIO_DRIVE)
|
||||
#define pNONGPIO_HYSTERESIS ((volatile unsigned short *)NONGPIO_HYSTERESIS)
|
||||
|
||||
|
||||
/* SPI1 Controller (0xFFC03400 - 0xFFC034FF)*/
|
||||
#define pSPI1_CTL ((volatile unsigned short *)SPI1_CTL)
|
||||
#define pSPI1_FLG ((volatile unsigned short *)SPI1_FLG)
|
||||
#define pSPI1_STAT ((volatile unsigned short *)SPI1_STAT)
|
||||
#define pSPI1_TDBR ((volatile unsigned short *)SPI1_TDBR)
|
||||
#define pSPI1_RDBR ((volatile unsigned short *)SPI1_RDBR)
|
||||
#define pSPI1_BAUD ((volatile unsigned short *)SPI1_BAUD)
|
||||
#define pSPI1_SHADOW ((volatile unsigned short *)SPI1_SHADOW)
|
||||
|
||||
|
||||
/* Counter Registers (0xFFC03500 - 0xFFC035FF)*/
|
||||
#define pCNT_CONFIG ((volatile unsigned short *)CNT_CONFIG)
|
||||
#define pCNT_IMASK ((volatile unsigned short *)CNT_IMASK)
|
||||
#define pCNT_STATUS ((volatile unsigned short *)CNT_STATUS)
|
||||
#define pCNT_COMMAND ((volatile unsigned short *)CNT_COMMAND)
|
||||
#define pCNT_DEBOUNCE ((volatile unsigned short *)CNT_DEBOUNCE)
|
||||
#define pCNT_COUNTER ((volatile unsigned long *)CNT_COUNTER)
|
||||
#define pCNT_MAX ((volatile unsigned long *)CNT_MAX)
|
||||
#define pCNT_MIN ((volatile unsigned long *)CNT_MIN)
|
||||
|
||||
|
||||
/* OTP Registers (0xFFC03600 - 0xFFC036FF) */
|
||||
/* Security Registers */
|
||||
#define pSECURE_SYSSWT ((volatile unsigned long *)SECURE_SYSSWT)
|
||||
#define pSECURE_CONTROL ((volatile unsigned short *)SECURE_CONTROL)
|
||||
#define pSECURE_STATUS ((volatile unsigned short *)SECURE_STATUS)
|
||||
|
||||
/* OTP Read/Write Data Buffer Registers */
|
||||
#define pOTP_DATA0 ((volatile unsigned long *)OTP_DATA0)
|
||||
#define pOTP_DATA1 ((volatile unsigned long *)OTP_DATA1)
|
||||
#define pOTP_DATA2 ((volatile unsigned long *)OTP_DATA2)
|
||||
#define pOTP_DATA3 ((volatile unsigned long *)OTP_DATA3)
|
||||
|
||||
|
||||
/* PWM 3PHASE (0xFFC03700 - 0xFFC037FF)*/
|
||||
#define pPWM_CTRL ((volatile unsigned short *)PWM_CTRL)
|
||||
#define pPWM_STAT ((volatile unsigned short *)PWM_STAT)
|
||||
#define pPWM_TM ((volatile unsigned short *)PWM_TM)
|
||||
#define pPWM_DT ((volatile unsigned short *)PWM_DT)
|
||||
#define pPWM_GATE ((volatile unsigned short *)PWM_GATE)
|
||||
#define pPWM_CHA ((volatile unsigned short *)PWM_CHA)
|
||||
#define pPWM_CHB ((volatile unsigned short *)PWM_CHB)
|
||||
#define pPWM_CHC ((volatile unsigned short *)PWM_CHC)
|
||||
#define pPWM_SEG ((volatile unsigned short *)PWM_SEG)
|
||||
#define pPWM_SYNCWT ((volatile unsigned short *)PWM_SYNCWT)
|
||||
#define pPWM_CHAL ((volatile unsigned short *)PWM_CHAL)
|
||||
#define pPWM_CHBL ((volatile unsigned short *)PWM_CHBL)
|
||||
#define pPWM_CHCL ((volatile unsigned short *)PWM_CHCL)
|
||||
#define pPWM_LSI ((volatile unsigned short *)PWM_LSI)
|
||||
#define pPWM_STAT2 ((volatile unsigned short *)PWM_STAT2)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
|
||||
#endif /*_CDEF_BF51X_H*/
|
39
gcc/libgloss/bfin/include/cdefBF522.h
Normal file
39
gcc/libgloss/bfin/include/cdefBF522.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF522 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF522_H
|
||||
#define _CDEF_BF522_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF522.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */
|
||||
|
||||
/* include cdefBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */
|
||||
#include <cdefBF52x_base.h>
|
||||
|
||||
#endif /* _CDEF_BF522_H */
|
39
gcc/libgloss/bfin/include/cdefBF523.h
Normal file
39
gcc/libgloss/bfin/include/cdefBF523.h
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF523 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF523_H
|
||||
#define _CDEF_BF523_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF523.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF523 */
|
||||
|
||||
/* include cdefBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */
|
||||
#include <cdefBF52x_base.h>
|
||||
|
||||
#endif /* _CDEF_BF523_H */
|
294
gcc/libgloss/bfin/include/cdefBF524.h
Normal file
294
gcc/libgloss/bfin/include/cdefBF524.h
Normal file
@ -0,0 +1,294 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF524 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF524_H
|
||||
#define _CDEF_BF524_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF524.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF524 */
|
||||
|
||||
/* include cdefBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */
|
||||
#include <cdefBF52x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* The following are the #defines needed by ADSP-BF524 that are not in the common header */
|
||||
|
||||
/* USB Control Registers */
|
||||
|
||||
#define pUSB_FADDR ((volatile unsigned short *)USB_FADDR)
|
||||
#define pUSB_POWER ((volatile unsigned short *)USB_POWER)
|
||||
#define pUSB_INTRTX ((volatile unsigned short *)USB_INTRTX)
|
||||
#define pUSB_INTRRX ((volatile unsigned short *)USB_INTRRX)
|
||||
#define pUSB_INTRTXE ((volatile unsigned short *)USB_INTRTXE)
|
||||
#define pUSB_INTRRXE ((volatile unsigned short *)USB_INTRRXE)
|
||||
#define pUSB_INTRUSB ((volatile unsigned short *)USB_INTRUSB)
|
||||
#define pUSB_INTRUSBE ((volatile unsigned short *)USB_INTRUSBE)
|
||||
#define pUSB_FRAME ((volatile unsigned short *)USB_FRAME)
|
||||
#define pUSB_INDEX ((volatile unsigned short *)USB_INDEX)
|
||||
#define pUSB_TESTMODE ((volatile unsigned short *)USB_TESTMODE)
|
||||
#define pUSB_GLOBINTR ((volatile unsigned short *)USB_GLOBINTR)
|
||||
#define pUSB_GLOBAL_CTL ((volatile unsigned short *)USB_GLOBAL_CTL)
|
||||
|
||||
/* USB Packet Control Registers */
|
||||
|
||||
#define pUSB_TX_MAX_PACKET ((volatile unsigned short *)USB_TX_MAX_PACKET)
|
||||
#define pUSB_CSR0 ((volatile unsigned short *)USB_CSR0)
|
||||
#define pUSB_TXCSR ((volatile unsigned short *)USB_TXCSR)
|
||||
#define pUSB_RX_MAX_PACKET ((volatile unsigned short *)USB_RX_MAX_PACKET)
|
||||
#define pUSB_RXCSR ((volatile unsigned short *)USB_RXCSR)
|
||||
#define pUSB_COUNT0 ((volatile unsigned short *)USB_COUNT0)
|
||||
#define pUSB_RXCOUNT ((volatile unsigned short *)USB_RXCOUNT)
|
||||
#define pUSB_TXTYPE ((volatile unsigned short *)USB_TXTYPE)
|
||||
#define pUSB_NAKLIMIT0 ((volatile unsigned short *)USB_NAKLIMIT0)
|
||||
#define pUSB_TXINTERVAL ((volatile unsigned short *)USB_TXINTERVAL)
|
||||
#define pUSB_RXTYPE ((volatile unsigned short *)USB_RXTYPE)
|
||||
#define pUSB_RXINTERVAL ((volatile unsigned short *)USB_RXINTERVAL)
|
||||
#define pUSB_TXCOUNT ((volatile unsigned short *)USB_TXCOUNT)
|
||||
|
||||
/* USB Endpoint FIFO Registers */
|
||||
|
||||
#define pUSB_EP0_FIFO ((volatile unsigned short *)USB_EP0_FIFO)
|
||||
#define pUSB_EP1_FIFO ((volatile unsigned short *)USB_EP1_FIFO)
|
||||
#define pUSB_EP2_FIFO ((volatile unsigned short *)USB_EP2_FIFO)
|
||||
#define pUSB_EP3_FIFO ((volatile unsigned short *)USB_EP3_FIFO)
|
||||
#define pUSB_EP4_FIFO ((volatile unsigned short *)USB_EP4_FIFO)
|
||||
#define pUSB_EP5_FIFO ((volatile unsigned short *)USB_EP5_FIFO)
|
||||
#define pUSB_EP6_FIFO ((volatile unsigned short *)USB_EP6_FIFO)
|
||||
#define pUSB_EP7_FIFO ((volatile unsigned short *)USB_EP7_FIFO)
|
||||
|
||||
/* USB OTG Control Registers */
|
||||
|
||||
#define pUSB_OTG_DEV_CTL ((volatile unsigned short *)USB_OTG_DEV_CTL)
|
||||
#define pUSB_OTG_VBUS_IRQ ((volatile unsigned short *)USB_OTG_VBUS_IRQ)
|
||||
#define pUSB_OTG_VBUS_MASK ((volatile unsigned short *)USB_OTG_VBUS_MASK)
|
||||
|
||||
/* USB Phy Control Registers */
|
||||
|
||||
#define pUSB_LINKINFO ((volatile unsigned short *)USB_LINKINFO)
|
||||
#define pUSB_VPLEN ((volatile unsigned short *)USB_VPLEN)
|
||||
#define pUSB_HS_EOF1 ((volatile unsigned short *)USB_HS_EOF1)
|
||||
#define pUSB_FS_EOF1 ((volatile unsigned short *)USB_FS_EOF1)
|
||||
#define pUSB_LS_EOF1 ((volatile unsigned short *)USB_LS_EOF1)
|
||||
|
||||
/* (APHY_CNTRL is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CNTRL ((volatile unsigned short *)USB_APHY_CNTRL)
|
||||
|
||||
/* (APHY_CALIB is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CALIB ((volatile unsigned short *)USB_APHY_CALIB)
|
||||
|
||||
#define pUSB_APHY_CNTRL2 ((volatile unsigned short *)USB_APHY_CNTRL2)
|
||||
|
||||
/* (PHY_TEST is for ADI usage only) */
|
||||
|
||||
#define pUSB_PHY_TEST ((volatile unsigned short *)USB_PHY_TEST)
|
||||
|
||||
#define pUSB_PLLOSC_CTRL ((volatile unsigned short *)USB_PLLOSC_CTRL)
|
||||
#define pUSB_SRP_CLKDIV ((volatile unsigned short *)USB_SRP_CLKDIV)
|
||||
|
||||
/* USB Endpoint 0 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI0_TXMAXP ((volatile unsigned short *)USB_EP_NI0_TXMAXP)
|
||||
#define pUSB_EP_NI0_TXCSR ((volatile unsigned short *)USB_EP_NI0_TXCSR)
|
||||
#define pUSB_EP_NI0_RXMAXP ((volatile unsigned short *)USB_EP_NI0_RXMAXP)
|
||||
#define pUSB_EP_NI0_RXCSR ((volatile unsigned short *)USB_EP_NI0_RXCSR)
|
||||
#define pUSB_EP_NI0_RXCOUNT ((volatile unsigned short *)USB_EP_NI0_RXCOUNT)
|
||||
#define pUSB_EP_NI0_TXTYPE ((volatile unsigned short *)USB_EP_NI0_TXTYPE)
|
||||
#define pUSB_EP_NI0_TXINTERVAL ((volatile unsigned short *)USB_EP_NI0_TXINTERVAL)
|
||||
#define pUSB_EP_NI0_RXTYPE ((volatile unsigned short *)USB_EP_NI0_RXTYPE)
|
||||
#define pUSB_EP_NI0_RXINTERVAL ((volatile unsigned short *)USB_EP_NI0_RXINTERVAL)
|
||||
#define pUSB_EP_NI0_TXCOUNT ((volatile unsigned short *)USB_EP_NI0_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 1 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI1_TXMAXP ((volatile unsigned short *)USB_EP_NI1_TXMAXP)
|
||||
#define pUSB_EP_NI1_TXCSR ((volatile unsigned short *)USB_EP_NI1_TXCSR)
|
||||
#define pUSB_EP_NI1_RXMAXP ((volatile unsigned short *)USB_EP_NI1_RXMAXP)
|
||||
#define pUSB_EP_NI1_RXCSR ((volatile unsigned short *)USB_EP_NI1_RXCSR)
|
||||
#define pUSB_EP_NI1_RXCOUNT ((volatile unsigned short *)USB_EP_NI1_RXCOUNT)
|
||||
#define pUSB_EP_NI1_TXTYPE ((volatile unsigned short *)USB_EP_NI1_TXTYPE)
|
||||
#define pUSB_EP_NI1_TXINTERVAL ((volatile unsigned short *)USB_EP_NI1_TXINTERVAL)
|
||||
#define pUSB_EP_NI1_RXTYPE ((volatile unsigned short *)USB_EP_NI1_RXTYPE)
|
||||
#define pUSB_EP_NI1_RXINTERVAL ((volatile unsigned short *)USB_EP_NI1_RXINTERVAL)
|
||||
#define pUSB_EP_NI1_TXCOUNT ((volatile unsigned short *)USB_EP_NI1_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 2 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI2_TXMAXP ((volatile unsigned short *)USB_EP_NI2_TXMAXP)
|
||||
#define pUSB_EP_NI2_TXCSR ((volatile unsigned short *)USB_EP_NI2_TXCSR)
|
||||
#define pUSB_EP_NI2_RXMAXP ((volatile unsigned short *)USB_EP_NI2_RXMAXP)
|
||||
#define pUSB_EP_NI2_RXCSR ((volatile unsigned short *)USB_EP_NI2_RXCSR)
|
||||
#define pUSB_EP_NI2_RXCOUNT ((volatile unsigned short *)USB_EP_NI2_RXCOUNT)
|
||||
#define pUSB_EP_NI2_TXTYPE ((volatile unsigned short *)USB_EP_NI2_TXTYPE)
|
||||
#define pUSB_EP_NI2_TXINTERVAL ((volatile unsigned short *)USB_EP_NI2_TXINTERVAL)
|
||||
#define pUSB_EP_NI2_RXTYPE ((volatile unsigned short *)USB_EP_NI2_RXTYPE)
|
||||
#define pUSB_EP_NI2_RXINTERVAL ((volatile unsigned short *)USB_EP_NI2_RXINTERVAL)
|
||||
#define pUSB_EP_NI2_TXCOUNT ((volatile unsigned short *)USB_EP_NI2_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 3 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI3_TXMAXP ((volatile unsigned short *)USB_EP_NI3_TXMAXP)
|
||||
#define pUSB_EP_NI3_TXCSR ((volatile unsigned short *)USB_EP_NI3_TXCSR)
|
||||
#define pUSB_EP_NI3_RXMAXP ((volatile unsigned short *)USB_EP_NI3_RXMAXP)
|
||||
#define pUSB_EP_NI3_RXCSR ((volatile unsigned short *)USB_EP_NI3_RXCSR)
|
||||
#define pUSB_EP_NI3_RXCOUNT ((volatile unsigned short *)USB_EP_NI3_RXCOUNT)
|
||||
#define pUSB_EP_NI3_TXTYPE ((volatile unsigned short *)USB_EP_NI3_TXTYPE)
|
||||
#define pUSB_EP_NI3_TXINTERVAL ((volatile unsigned short *)USB_EP_NI3_TXINTERVAL)
|
||||
#define pUSB_EP_NI3_RXTYPE ((volatile unsigned short *)USB_EP_NI3_RXTYPE)
|
||||
#define pUSB_EP_NI3_RXINTERVAL ((volatile unsigned short *)USB_EP_NI3_RXINTERVAL)
|
||||
#define pUSB_EP_NI3_TXCOUNT ((volatile unsigned short *)USB_EP_NI3_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 4 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI4_TXMAXP ((volatile unsigned short *)USB_EP_NI4_TXMAXP)
|
||||
#define pUSB_EP_NI4_TXCSR ((volatile unsigned short *)USB_EP_NI4_TXCSR)
|
||||
#define pUSB_EP_NI4_RXMAXP ((volatile unsigned short *)USB_EP_NI4_RXMAXP)
|
||||
#define pUSB_EP_NI4_RXCSR ((volatile unsigned short *)USB_EP_NI4_RXCSR)
|
||||
#define pUSB_EP_NI4_RXCOUNT ((volatile unsigned short *)USB_EP_NI4_RXCOUNT)
|
||||
#define pUSB_EP_NI4_TXTYPE ((volatile unsigned short *)USB_EP_NI4_TXTYPE)
|
||||
#define pUSB_EP_NI4_TXINTERVAL ((volatile unsigned short *)USB_EP_NI4_TXINTERVAL)
|
||||
#define pUSB_EP_NI4_RXTYPE ((volatile unsigned short *)USB_EP_NI4_RXTYPE)
|
||||
#define pUSB_EP_NI4_RXINTERVAL ((volatile unsigned short *)USB_EP_NI4_RXINTERVAL)
|
||||
#define pUSB_EP_NI4_TXCOUNT ((volatile unsigned short *)USB_EP_NI4_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 5 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI5_TXMAXP ((volatile unsigned short *)USB_EP_NI5_TXMAXP)
|
||||
#define pUSB_EP_NI5_TXCSR ((volatile unsigned short *)USB_EP_NI5_TXCSR)
|
||||
#define pUSB_EP_NI5_RXMAXP ((volatile unsigned short *)USB_EP_NI5_RXMAXP)
|
||||
#define pUSB_EP_NI5_RXCSR ((volatile unsigned short *)USB_EP_NI5_RXCSR)
|
||||
#define pUSB_EP_NI5_RXCOUNT ((volatile unsigned short *)USB_EP_NI5_RXCOUNT)
|
||||
#define pUSB_EP_NI5_TXTYPE ((volatile unsigned short *)USB_EP_NI5_TXTYPE)
|
||||
#define pUSB_EP_NI5_TXINTERVAL ((volatile unsigned short *)USB_EP_NI5_TXINTERVAL)
|
||||
#define pUSB_EP_NI5_RXTYPE ((volatile unsigned short *)USB_EP_NI5_RXTYPE)
|
||||
#define pUSB_EP_NI5_RXINTERVAL ((volatile unsigned short *)USB_EP_NI5_RXINTERVAL)
|
||||
#define pUSB_EP_NI5_TXCOUNT ((volatile unsigned short *)USB_EP_NI5_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 6 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI6_TXMAXP ((volatile unsigned short *)USB_EP_NI6_TXMAXP)
|
||||
#define pUSB_EP_NI6_TXCSR ((volatile unsigned short *)USB_EP_NI6_TXCSR)
|
||||
#define pUSB_EP_NI6_RXMAXP ((volatile unsigned short *)USB_EP_NI6_RXMAXP)
|
||||
#define pUSB_EP_NI6_RXCSR ((volatile unsigned short *)USB_EP_NI6_RXCSR)
|
||||
#define pUSB_EP_NI6_RXCOUNT ((volatile unsigned short *)USB_EP_NI6_RXCOUNT)
|
||||
#define pUSB_EP_NI6_TXTYPE ((volatile unsigned short *)USB_EP_NI6_TXTYPE)
|
||||
#define pUSB_EP_NI6_TXINTERVAL ((volatile unsigned short *)USB_EP_NI6_TXINTERVAL)
|
||||
#define pUSB_EP_NI6_RXTYPE ((volatile unsigned short *)USB_EP_NI6_RXTYPE)
|
||||
#define pUSB_EP_NI6_RXINTERVAL ((volatile unsigned short *)USB_EP_NI6_RXINTERVAL)
|
||||
#define pUSB_EP_NI6_TXCOUNT ((volatile unsigned short *)USB_EP_NI6_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 7 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI7_TXMAXP ((volatile unsigned short *)USB_EP_NI7_TXMAXP)
|
||||
#define pUSB_EP_NI7_TXCSR ((volatile unsigned short *)USB_EP_NI7_TXCSR)
|
||||
#define pUSB_EP_NI7_RXMAXP ((volatile unsigned short *)USB_EP_NI7_RXMAXP)
|
||||
#define pUSB_EP_NI7_RXCSR ((volatile unsigned short *)USB_EP_NI7_RXCSR)
|
||||
#define pUSB_EP_NI7_RXCOUNT ((volatile unsigned short *)USB_EP_NI7_RXCOUNT)
|
||||
#define pUSB_EP_NI7_TXTYPE ((volatile unsigned short *)USB_EP_NI7_TXTYPE)
|
||||
#define pUSB_EP_NI7_TXINTERVAL ((volatile unsigned short *)USB_EP_NI7_TXINTERVAL)
|
||||
#define pUSB_EP_NI7_RXTYPE ((volatile unsigned short *)USB_EP_NI7_RXTYPE)
|
||||
#define pUSB_EP_NI7_RXINTERVAL ((volatile unsigned short *)USB_EP_NI7_RXINTERVAL)
|
||||
#define pUSB_EP_NI7_TXCOUNT ((volatile unsigned short *)USB_EP_NI7_TXCOUNT)
|
||||
|
||||
#define pUSB_DMA_INTERRUPT ((volatile unsigned short *)USB_DMA_INTERRUPT)
|
||||
|
||||
/* USB Channel 0 Config Registers */
|
||||
|
||||
#define pUSB_DMA0CONTROL ((volatile unsigned short *)USB_DMA0CONTROL)
|
||||
#define pUSB_DMA0ADDRLOW ((volatile unsigned short *)USB_DMA0ADDRLOW)
|
||||
#define pUSB_DMA0ADDRHIGH ((volatile unsigned short *)USB_DMA0ADDRHIGH)
|
||||
#define pUSB_DMA0COUNTLOW ((volatile unsigned short *)USB_DMA0COUNTLOW)
|
||||
#define pUSB_DMA0COUNTHIGH ((volatile unsigned short *)USB_DMA0COUNTHIGH)
|
||||
|
||||
/* USB Channel 1 Config Registers */
|
||||
|
||||
#define pUSB_DMA1CONTROL ((volatile unsigned short *)USB_DMA1CONTROL)
|
||||
#define pUSB_DMA1ADDRLOW ((volatile unsigned short *)USB_DMA1ADDRLOW)
|
||||
#define pUSB_DMA1ADDRHIGH ((volatile unsigned short *)USB_DMA1ADDRHIGH)
|
||||
#define pUSB_DMA1COUNTLOW ((volatile unsigned short *)USB_DMA1COUNTLOW)
|
||||
#define pUSB_DMA1COUNTHIGH ((volatile unsigned short *)USB_DMA1COUNTHIGH)
|
||||
|
||||
/* USB Channel 2 Config Registers */
|
||||
|
||||
#define pUSB_DMA2CONTROL ((volatile unsigned short *)USB_DMA2CONTROL)
|
||||
#define pUSB_DMA2ADDRLOW ((volatile unsigned short *)USB_DMA2ADDRLOW)
|
||||
#define pUSB_DMA2ADDRHIGH ((volatile unsigned short *)USB_DMA2ADDRHIGH)
|
||||
#define pUSB_DMA2COUNTLOW ((volatile unsigned short *)USB_DMA2COUNTLOW)
|
||||
#define pUSB_DMA2COUNTHIGH ((volatile unsigned short *)USB_DMA2COUNTHIGH)
|
||||
|
||||
/* USB Channel 3 Config Registers */
|
||||
|
||||
#define pUSB_DMA3CONTROL ((volatile unsigned short *)USB_DMA3CONTROL)
|
||||
#define pUSB_DMA3ADDRLOW ((volatile unsigned short *)USB_DMA3ADDRLOW)
|
||||
#define pUSB_DMA3ADDRHIGH ((volatile unsigned short *)USB_DMA3ADDRHIGH)
|
||||
#define pUSB_DMA3COUNTLOW ((volatile unsigned short *)USB_DMA3COUNTLOW)
|
||||
#define pUSB_DMA3COUNTHIGH ((volatile unsigned short *)USB_DMA3COUNTHIGH)
|
||||
|
||||
/* USB Channel 4 Config Registers */
|
||||
|
||||
#define pUSB_DMA4CONTROL ((volatile unsigned short *)USB_DMA4CONTROL)
|
||||
#define pUSB_DMA4ADDRLOW ((volatile unsigned short *)USB_DMA4ADDRLOW)
|
||||
#define pUSB_DMA4ADDRHIGH ((volatile unsigned short *)USB_DMA4ADDRHIGH)
|
||||
#define pUSB_DMA4COUNTLOW ((volatile unsigned short *)USB_DMA4COUNTLOW)
|
||||
#define pUSB_DMA4COUNTHIGH ((volatile unsigned short *)USB_DMA4COUNTHIGH)
|
||||
|
||||
/* USB Channel 5 Config Registers */
|
||||
|
||||
#define pUSB_DMA5CONTROL ((volatile unsigned short *)USB_DMA5CONTROL)
|
||||
#define pUSB_DMA5ADDRLOW ((volatile unsigned short *)USB_DMA5ADDRLOW)
|
||||
#define pUSB_DMA5ADDRHIGH ((volatile unsigned short *)USB_DMA5ADDRHIGH)
|
||||
#define pUSB_DMA5COUNTLOW ((volatile unsigned short *)USB_DMA5COUNTLOW)
|
||||
#define pUSB_DMA5COUNTHIGH ((volatile unsigned short *)USB_DMA5COUNTHIGH)
|
||||
|
||||
/* USB Channel 6 Config Registers */
|
||||
|
||||
#define pUSB_DMA6CONTROL ((volatile unsigned short *)USB_DMA6CONTROL)
|
||||
#define pUSB_DMA6ADDRLOW ((volatile unsigned short *)USB_DMA6ADDRLOW)
|
||||
#define pUSB_DMA6ADDRHIGH ((volatile unsigned short *)USB_DMA6ADDRHIGH)
|
||||
#define pUSB_DMA6COUNTLOW ((volatile unsigned short *)USB_DMA6COUNTLOW)
|
||||
#define pUSB_DMA6COUNTHIGH ((volatile unsigned short *)USB_DMA6COUNTHIGH)
|
||||
|
||||
/* USB Channel 7 Config Registers */
|
||||
|
||||
#define pUSB_DMA7CONTROL ((volatile unsigned short *)USB_DMA7CONTROL)
|
||||
#define pUSB_DMA7ADDRLOW ((volatile unsigned short *)USB_DMA7ADDRLOW)
|
||||
#define pUSB_DMA7ADDRHIGH ((volatile unsigned short *)USB_DMA7ADDRHIGH)
|
||||
#define pUSB_DMA7COUNTLOW ((volatile unsigned short *)USB_DMA7COUNTLOW)
|
||||
#define pUSB_DMA7COUNTHIGH ((volatile unsigned short *)USB_DMA7COUNTHIGH)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF524_H */
|
294
gcc/libgloss/bfin/include/cdefBF525.h
Normal file
294
gcc/libgloss/bfin/include/cdefBF525.h
Normal file
@ -0,0 +1,294 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF525 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF525_H
|
||||
#define _CDEF_BF525_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF525.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */
|
||||
|
||||
/* include cdefBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */
|
||||
#include <cdefBF52x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* The following are the #defines needed by ADSP-BF525 that are not in the common header */
|
||||
|
||||
/* USB Control Registers */
|
||||
|
||||
#define pUSB_FADDR ((volatile unsigned short *)USB_FADDR)
|
||||
#define pUSB_POWER ((volatile unsigned short *)USB_POWER)
|
||||
#define pUSB_INTRTX ((volatile unsigned short *)USB_INTRTX)
|
||||
#define pUSB_INTRRX ((volatile unsigned short *)USB_INTRRX)
|
||||
#define pUSB_INTRTXE ((volatile unsigned short *)USB_INTRTXE)
|
||||
#define pUSB_INTRRXE ((volatile unsigned short *)USB_INTRRXE)
|
||||
#define pUSB_INTRUSB ((volatile unsigned short *)USB_INTRUSB)
|
||||
#define pUSB_INTRUSBE ((volatile unsigned short *)USB_INTRUSBE)
|
||||
#define pUSB_FRAME ((volatile unsigned short *)USB_FRAME)
|
||||
#define pUSB_INDEX ((volatile unsigned short *)USB_INDEX)
|
||||
#define pUSB_TESTMODE ((volatile unsigned short *)USB_TESTMODE)
|
||||
#define pUSB_GLOBINTR ((volatile unsigned short *)USB_GLOBINTR)
|
||||
#define pUSB_GLOBAL_CTL ((volatile unsigned short *)USB_GLOBAL_CTL)
|
||||
|
||||
/* USB Packet Control Registers */
|
||||
|
||||
#define pUSB_TX_MAX_PACKET ((volatile unsigned short *)USB_TX_MAX_PACKET)
|
||||
#define pUSB_CSR0 ((volatile unsigned short *)USB_CSR0)
|
||||
#define pUSB_TXCSR ((volatile unsigned short *)USB_TXCSR)
|
||||
#define pUSB_RX_MAX_PACKET ((volatile unsigned short *)USB_RX_MAX_PACKET)
|
||||
#define pUSB_RXCSR ((volatile unsigned short *)USB_RXCSR)
|
||||
#define pUSB_COUNT0 ((volatile unsigned short *)USB_COUNT0)
|
||||
#define pUSB_RXCOUNT ((volatile unsigned short *)USB_RXCOUNT)
|
||||
#define pUSB_TXTYPE ((volatile unsigned short *)USB_TXTYPE)
|
||||
#define pUSB_NAKLIMIT0 ((volatile unsigned short *)USB_NAKLIMIT0)
|
||||
#define pUSB_TXINTERVAL ((volatile unsigned short *)USB_TXINTERVAL)
|
||||
#define pUSB_RXTYPE ((volatile unsigned short *)USB_RXTYPE)
|
||||
#define pUSB_RXINTERVAL ((volatile unsigned short *)USB_RXINTERVAL)
|
||||
#define pUSB_TXCOUNT ((volatile unsigned short *)USB_TXCOUNT)
|
||||
|
||||
/* USB Endpoint FIFO Registers */
|
||||
|
||||
#define pUSB_EP0_FIFO ((volatile unsigned short *)USB_EP0_FIFO)
|
||||
#define pUSB_EP1_FIFO ((volatile unsigned short *)USB_EP1_FIFO)
|
||||
#define pUSB_EP2_FIFO ((volatile unsigned short *)USB_EP2_FIFO)
|
||||
#define pUSB_EP3_FIFO ((volatile unsigned short *)USB_EP3_FIFO)
|
||||
#define pUSB_EP4_FIFO ((volatile unsigned short *)USB_EP4_FIFO)
|
||||
#define pUSB_EP5_FIFO ((volatile unsigned short *)USB_EP5_FIFO)
|
||||
#define pUSB_EP6_FIFO ((volatile unsigned short *)USB_EP6_FIFO)
|
||||
#define pUSB_EP7_FIFO ((volatile unsigned short *)USB_EP7_FIFO)
|
||||
|
||||
/* USB OTG Control Registers */
|
||||
|
||||
#define pUSB_OTG_DEV_CTL ((volatile unsigned short *)USB_OTG_DEV_CTL)
|
||||
#define pUSB_OTG_VBUS_IRQ ((volatile unsigned short *)USB_OTG_VBUS_IRQ)
|
||||
#define pUSB_OTG_VBUS_MASK ((volatile unsigned short *)USB_OTG_VBUS_MASK)
|
||||
|
||||
/* USB Phy Control Registers */
|
||||
|
||||
#define pUSB_LINKINFO ((volatile unsigned short *)USB_LINKINFO)
|
||||
#define pUSB_VPLEN ((volatile unsigned short *)USB_VPLEN)
|
||||
#define pUSB_HS_EOF1 ((volatile unsigned short *)USB_HS_EOF1)
|
||||
#define pUSB_FS_EOF1 ((volatile unsigned short *)USB_FS_EOF1)
|
||||
#define pUSB_LS_EOF1 ((volatile unsigned short *)USB_LS_EOF1)
|
||||
|
||||
/* (APHY_CNTRL is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CNTRL ((volatile unsigned short *)USB_APHY_CNTRL)
|
||||
|
||||
/* (APHY_CALIB is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CALIB ((volatile unsigned short *)USB_APHY_CALIB)
|
||||
|
||||
#define pUSB_APHY_CNTRL2 ((volatile unsigned short *)USB_APHY_CNTRL2)
|
||||
|
||||
/* (PHY_TEST is for ADI usage only) */
|
||||
|
||||
#define pUSB_PHY_TEST ((volatile unsigned short *)USB_PHY_TEST)
|
||||
|
||||
#define pUSB_PLLOSC_CTRL ((volatile unsigned short *)USB_PLLOSC_CTRL)
|
||||
#define pUSB_SRP_CLKDIV ((volatile unsigned short *)USB_SRP_CLKDIV)
|
||||
|
||||
/* USB Endpoint 0 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI0_TXMAXP ((volatile unsigned short *)USB_EP_NI0_TXMAXP)
|
||||
#define pUSB_EP_NI0_TXCSR ((volatile unsigned short *)USB_EP_NI0_TXCSR)
|
||||
#define pUSB_EP_NI0_RXMAXP ((volatile unsigned short *)USB_EP_NI0_RXMAXP)
|
||||
#define pUSB_EP_NI0_RXCSR ((volatile unsigned short *)USB_EP_NI0_RXCSR)
|
||||
#define pUSB_EP_NI0_RXCOUNT ((volatile unsigned short *)USB_EP_NI0_RXCOUNT)
|
||||
#define pUSB_EP_NI0_TXTYPE ((volatile unsigned short *)USB_EP_NI0_TXTYPE)
|
||||
#define pUSB_EP_NI0_TXINTERVAL ((volatile unsigned short *)USB_EP_NI0_TXINTERVAL)
|
||||
#define pUSB_EP_NI0_RXTYPE ((volatile unsigned short *)USB_EP_NI0_RXTYPE)
|
||||
#define pUSB_EP_NI0_RXINTERVAL ((volatile unsigned short *)USB_EP_NI0_RXINTERVAL)
|
||||
#define pUSB_EP_NI0_TXCOUNT ((volatile unsigned short *)USB_EP_NI0_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 1 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI1_TXMAXP ((volatile unsigned short *)USB_EP_NI1_TXMAXP)
|
||||
#define pUSB_EP_NI1_TXCSR ((volatile unsigned short *)USB_EP_NI1_TXCSR)
|
||||
#define pUSB_EP_NI1_RXMAXP ((volatile unsigned short *)USB_EP_NI1_RXMAXP)
|
||||
#define pUSB_EP_NI1_RXCSR ((volatile unsigned short *)USB_EP_NI1_RXCSR)
|
||||
#define pUSB_EP_NI1_RXCOUNT ((volatile unsigned short *)USB_EP_NI1_RXCOUNT)
|
||||
#define pUSB_EP_NI1_TXTYPE ((volatile unsigned short *)USB_EP_NI1_TXTYPE)
|
||||
#define pUSB_EP_NI1_TXINTERVAL ((volatile unsigned short *)USB_EP_NI1_TXINTERVAL)
|
||||
#define pUSB_EP_NI1_RXTYPE ((volatile unsigned short *)USB_EP_NI1_RXTYPE)
|
||||
#define pUSB_EP_NI1_RXINTERVAL ((volatile unsigned short *)USB_EP_NI1_RXINTERVAL)
|
||||
#define pUSB_EP_NI1_TXCOUNT ((volatile unsigned short *)USB_EP_NI1_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 2 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI2_TXMAXP ((volatile unsigned short *)USB_EP_NI2_TXMAXP)
|
||||
#define pUSB_EP_NI2_TXCSR ((volatile unsigned short *)USB_EP_NI2_TXCSR)
|
||||
#define pUSB_EP_NI2_RXMAXP ((volatile unsigned short *)USB_EP_NI2_RXMAXP)
|
||||
#define pUSB_EP_NI2_RXCSR ((volatile unsigned short *)USB_EP_NI2_RXCSR)
|
||||
#define pUSB_EP_NI2_RXCOUNT ((volatile unsigned short *)USB_EP_NI2_RXCOUNT)
|
||||
#define pUSB_EP_NI2_TXTYPE ((volatile unsigned short *)USB_EP_NI2_TXTYPE)
|
||||
#define pUSB_EP_NI2_TXINTERVAL ((volatile unsigned short *)USB_EP_NI2_TXINTERVAL)
|
||||
#define pUSB_EP_NI2_RXTYPE ((volatile unsigned short *)USB_EP_NI2_RXTYPE)
|
||||
#define pUSB_EP_NI2_RXINTERVAL ((volatile unsigned short *)USB_EP_NI2_RXINTERVAL)
|
||||
#define pUSB_EP_NI2_TXCOUNT ((volatile unsigned short *)USB_EP_NI2_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 3 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI3_TXMAXP ((volatile unsigned short *)USB_EP_NI3_TXMAXP)
|
||||
#define pUSB_EP_NI3_TXCSR ((volatile unsigned short *)USB_EP_NI3_TXCSR)
|
||||
#define pUSB_EP_NI3_RXMAXP ((volatile unsigned short *)USB_EP_NI3_RXMAXP)
|
||||
#define pUSB_EP_NI3_RXCSR ((volatile unsigned short *)USB_EP_NI3_RXCSR)
|
||||
#define pUSB_EP_NI3_RXCOUNT ((volatile unsigned short *)USB_EP_NI3_RXCOUNT)
|
||||
#define pUSB_EP_NI3_TXTYPE ((volatile unsigned short *)USB_EP_NI3_TXTYPE)
|
||||
#define pUSB_EP_NI3_TXINTERVAL ((volatile unsigned short *)USB_EP_NI3_TXINTERVAL)
|
||||
#define pUSB_EP_NI3_RXTYPE ((volatile unsigned short *)USB_EP_NI3_RXTYPE)
|
||||
#define pUSB_EP_NI3_RXINTERVAL ((volatile unsigned short *)USB_EP_NI3_RXINTERVAL)
|
||||
#define pUSB_EP_NI3_TXCOUNT ((volatile unsigned short *)USB_EP_NI3_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 4 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI4_TXMAXP ((volatile unsigned short *)USB_EP_NI4_TXMAXP)
|
||||
#define pUSB_EP_NI4_TXCSR ((volatile unsigned short *)USB_EP_NI4_TXCSR)
|
||||
#define pUSB_EP_NI4_RXMAXP ((volatile unsigned short *)USB_EP_NI4_RXMAXP)
|
||||
#define pUSB_EP_NI4_RXCSR ((volatile unsigned short *)USB_EP_NI4_RXCSR)
|
||||
#define pUSB_EP_NI4_RXCOUNT ((volatile unsigned short *)USB_EP_NI4_RXCOUNT)
|
||||
#define pUSB_EP_NI4_TXTYPE ((volatile unsigned short *)USB_EP_NI4_TXTYPE)
|
||||
#define pUSB_EP_NI4_TXINTERVAL ((volatile unsigned short *)USB_EP_NI4_TXINTERVAL)
|
||||
#define pUSB_EP_NI4_RXTYPE ((volatile unsigned short *)USB_EP_NI4_RXTYPE)
|
||||
#define pUSB_EP_NI4_RXINTERVAL ((volatile unsigned short *)USB_EP_NI4_RXINTERVAL)
|
||||
#define pUSB_EP_NI4_TXCOUNT ((volatile unsigned short *)USB_EP_NI4_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 5 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI5_TXMAXP ((volatile unsigned short *)USB_EP_NI5_TXMAXP)
|
||||
#define pUSB_EP_NI5_TXCSR ((volatile unsigned short *)USB_EP_NI5_TXCSR)
|
||||
#define pUSB_EP_NI5_RXMAXP ((volatile unsigned short *)USB_EP_NI5_RXMAXP)
|
||||
#define pUSB_EP_NI5_RXCSR ((volatile unsigned short *)USB_EP_NI5_RXCSR)
|
||||
#define pUSB_EP_NI5_RXCOUNT ((volatile unsigned short *)USB_EP_NI5_RXCOUNT)
|
||||
#define pUSB_EP_NI5_TXTYPE ((volatile unsigned short *)USB_EP_NI5_TXTYPE)
|
||||
#define pUSB_EP_NI5_TXINTERVAL ((volatile unsigned short *)USB_EP_NI5_TXINTERVAL)
|
||||
#define pUSB_EP_NI5_RXTYPE ((volatile unsigned short *)USB_EP_NI5_RXTYPE)
|
||||
#define pUSB_EP_NI5_RXINTERVAL ((volatile unsigned short *)USB_EP_NI5_RXINTERVAL)
|
||||
#define pUSB_EP_NI5_TXCOUNT ((volatile unsigned short *)USB_EP_NI5_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 6 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI6_TXMAXP ((volatile unsigned short *)USB_EP_NI6_TXMAXP)
|
||||
#define pUSB_EP_NI6_TXCSR ((volatile unsigned short *)USB_EP_NI6_TXCSR)
|
||||
#define pUSB_EP_NI6_RXMAXP ((volatile unsigned short *)USB_EP_NI6_RXMAXP)
|
||||
#define pUSB_EP_NI6_RXCSR ((volatile unsigned short *)USB_EP_NI6_RXCSR)
|
||||
#define pUSB_EP_NI6_RXCOUNT ((volatile unsigned short *)USB_EP_NI6_RXCOUNT)
|
||||
#define pUSB_EP_NI6_TXTYPE ((volatile unsigned short *)USB_EP_NI6_TXTYPE)
|
||||
#define pUSB_EP_NI6_TXINTERVAL ((volatile unsigned short *)USB_EP_NI6_TXINTERVAL)
|
||||
#define pUSB_EP_NI6_RXTYPE ((volatile unsigned short *)USB_EP_NI6_RXTYPE)
|
||||
#define pUSB_EP_NI6_RXINTERVAL ((volatile unsigned short *)USB_EP_NI6_RXINTERVAL)
|
||||
#define pUSB_EP_NI6_TXCOUNT ((volatile unsigned short *)USB_EP_NI6_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 7 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI7_TXMAXP ((volatile unsigned short *)USB_EP_NI7_TXMAXP)
|
||||
#define pUSB_EP_NI7_TXCSR ((volatile unsigned short *)USB_EP_NI7_TXCSR)
|
||||
#define pUSB_EP_NI7_RXMAXP ((volatile unsigned short *)USB_EP_NI7_RXMAXP)
|
||||
#define pUSB_EP_NI7_RXCSR ((volatile unsigned short *)USB_EP_NI7_RXCSR)
|
||||
#define pUSB_EP_NI7_RXCOUNT ((volatile unsigned short *)USB_EP_NI7_RXCOUNT)
|
||||
#define pUSB_EP_NI7_TXTYPE ((volatile unsigned short *)USB_EP_NI7_TXTYPE)
|
||||
#define pUSB_EP_NI7_TXINTERVAL ((volatile unsigned short *)USB_EP_NI7_TXINTERVAL)
|
||||
#define pUSB_EP_NI7_RXTYPE ((volatile unsigned short *)USB_EP_NI7_RXTYPE)
|
||||
#define pUSB_EP_NI7_RXINTERVAL ((volatile unsigned short *)USB_EP_NI7_RXINTERVAL)
|
||||
#define pUSB_EP_NI7_TXCOUNT ((volatile unsigned short *)USB_EP_NI7_TXCOUNT)
|
||||
|
||||
#define pUSB_DMA_INTERRUPT ((volatile unsigned short *)USB_DMA_INTERRUPT)
|
||||
|
||||
/* USB Channel 0 Config Registers */
|
||||
|
||||
#define pUSB_DMA0CONTROL ((volatile unsigned short *)USB_DMA0CONTROL)
|
||||
#define pUSB_DMA0ADDRLOW ((volatile unsigned short *)USB_DMA0ADDRLOW)
|
||||
#define pUSB_DMA0ADDRHIGH ((volatile unsigned short *)USB_DMA0ADDRHIGH)
|
||||
#define pUSB_DMA0COUNTLOW ((volatile unsigned short *)USB_DMA0COUNTLOW)
|
||||
#define pUSB_DMA0COUNTHIGH ((volatile unsigned short *)USB_DMA0COUNTHIGH)
|
||||
|
||||
/* USB Channel 1 Config Registers */
|
||||
|
||||
#define pUSB_DMA1CONTROL ((volatile unsigned short *)USB_DMA1CONTROL)
|
||||
#define pUSB_DMA1ADDRLOW ((volatile unsigned short *)USB_DMA1ADDRLOW)
|
||||
#define pUSB_DMA1ADDRHIGH ((volatile unsigned short *)USB_DMA1ADDRHIGH)
|
||||
#define pUSB_DMA1COUNTLOW ((volatile unsigned short *)USB_DMA1COUNTLOW)
|
||||
#define pUSB_DMA1COUNTHIGH ((volatile unsigned short *)USB_DMA1COUNTHIGH)
|
||||
|
||||
/* USB Channel 2 Config Registers */
|
||||
|
||||
#define pUSB_DMA2CONTROL ((volatile unsigned short *)USB_DMA2CONTROL)
|
||||
#define pUSB_DMA2ADDRLOW ((volatile unsigned short *)USB_DMA2ADDRLOW)
|
||||
#define pUSB_DMA2ADDRHIGH ((volatile unsigned short *)USB_DMA2ADDRHIGH)
|
||||
#define pUSB_DMA2COUNTLOW ((volatile unsigned short *)USB_DMA2COUNTLOW)
|
||||
#define pUSB_DMA2COUNTHIGH ((volatile unsigned short *)USB_DMA2COUNTHIGH)
|
||||
|
||||
/* USB Channel 3 Config Registers */
|
||||
|
||||
#define pUSB_DMA3CONTROL ((volatile unsigned short *)USB_DMA3CONTROL)
|
||||
#define pUSB_DMA3ADDRLOW ((volatile unsigned short *)USB_DMA3ADDRLOW)
|
||||
#define pUSB_DMA3ADDRHIGH ((volatile unsigned short *)USB_DMA3ADDRHIGH)
|
||||
#define pUSB_DMA3COUNTLOW ((volatile unsigned short *)USB_DMA3COUNTLOW)
|
||||
#define pUSB_DMA3COUNTHIGH ((volatile unsigned short *)USB_DMA3COUNTHIGH)
|
||||
|
||||
/* USB Channel 4 Config Registers */
|
||||
|
||||
#define pUSB_DMA4CONTROL ((volatile unsigned short *)USB_DMA4CONTROL)
|
||||
#define pUSB_DMA4ADDRLOW ((volatile unsigned short *)USB_DMA4ADDRLOW)
|
||||
#define pUSB_DMA4ADDRHIGH ((volatile unsigned short *)USB_DMA4ADDRHIGH)
|
||||
#define pUSB_DMA4COUNTLOW ((volatile unsigned short *)USB_DMA4COUNTLOW)
|
||||
#define pUSB_DMA4COUNTHIGH ((volatile unsigned short *)USB_DMA4COUNTHIGH)
|
||||
|
||||
/* USB Channel 5 Config Registers */
|
||||
|
||||
#define pUSB_DMA5CONTROL ((volatile unsigned short *)USB_DMA5CONTROL)
|
||||
#define pUSB_DMA5ADDRLOW ((volatile unsigned short *)USB_DMA5ADDRLOW)
|
||||
#define pUSB_DMA5ADDRHIGH ((volatile unsigned short *)USB_DMA5ADDRHIGH)
|
||||
#define pUSB_DMA5COUNTLOW ((volatile unsigned short *)USB_DMA5COUNTLOW)
|
||||
#define pUSB_DMA5COUNTHIGH ((volatile unsigned short *)USB_DMA5COUNTHIGH)
|
||||
|
||||
/* USB Channel 6 Config Registers */
|
||||
|
||||
#define pUSB_DMA6CONTROL ((volatile unsigned short *)USB_DMA6CONTROL)
|
||||
#define pUSB_DMA6ADDRLOW ((volatile unsigned short *)USB_DMA6ADDRLOW)
|
||||
#define pUSB_DMA6ADDRHIGH ((volatile unsigned short *)USB_DMA6ADDRHIGH)
|
||||
#define pUSB_DMA6COUNTLOW ((volatile unsigned short *)USB_DMA6COUNTLOW)
|
||||
#define pUSB_DMA6COUNTHIGH ((volatile unsigned short *)USB_DMA6COUNTHIGH)
|
||||
|
||||
/* USB Channel 7 Config Registers */
|
||||
|
||||
#define pUSB_DMA7CONTROL ((volatile unsigned short *)USB_DMA7CONTROL)
|
||||
#define pUSB_DMA7ADDRLOW ((volatile unsigned short *)USB_DMA7ADDRLOW)
|
||||
#define pUSB_DMA7ADDRHIGH ((volatile unsigned short *)USB_DMA7ADDRHIGH)
|
||||
#define pUSB_DMA7COUNTLOW ((volatile unsigned short *)USB_DMA7COUNTLOW)
|
||||
#define pUSB_DMA7COUNTHIGH ((volatile unsigned short *)USB_DMA7COUNTHIGH)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF525_H */
|
380
gcc/libgloss/bfin/include/cdefBF526.h
Normal file
380
gcc/libgloss/bfin/include/cdefBF526.h
Normal file
@ -0,0 +1,380 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF526 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF526_H
|
||||
#define _CDEF_BF526_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF526.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF526 */
|
||||
|
||||
/* include cdefBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */
|
||||
#include <cdefBF52x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* The following are the #defines needed by ADSP-BF526 that are not in the common header */
|
||||
|
||||
/* 10/100 Ethernet Controller (0xFFC03000 - 0xFFC031FF) */
|
||||
|
||||
#define pEMAC_OPMODE ((volatile unsigned long *)EMAC_OPMODE)
|
||||
#define pEMAC_ADDRLO ((volatile unsigned long *)EMAC_ADDRLO)
|
||||
#define pEMAC_ADDRHI ((volatile unsigned long *)EMAC_ADDRHI)
|
||||
#define pEMAC_HASHLO ((volatile unsigned long *)EMAC_HASHLO)
|
||||
#define pEMAC_HASHHI ((volatile unsigned long *)EMAC_HASHHI)
|
||||
#define pEMAC_STAADD ((volatile unsigned long *)EMAC_STAADD)
|
||||
#define pEMAC_STADAT ((volatile unsigned long *)EMAC_STADAT)
|
||||
#define pEMAC_FLC ((volatile unsigned long *)EMAC_FLC)
|
||||
#define pEMAC_VLAN1 ((volatile unsigned long *)EMAC_VLAN1)
|
||||
#define pEMAC_VLAN2 ((volatile unsigned long *)EMAC_VLAN2)
|
||||
#define pEMAC_WKUP_CTL ((volatile unsigned long *)EMAC_WKUP_CTL)
|
||||
#define pEMAC_WKUP_FFMSK0 ((volatile unsigned long *)EMAC_WKUP_FFMSK0)
|
||||
#define pEMAC_WKUP_FFMSK1 ((volatile unsigned long *)EMAC_WKUP_FFMSK1)
|
||||
#define pEMAC_WKUP_FFMSK2 ((volatile unsigned long *)EMAC_WKUP_FFMSK2)
|
||||
#define pEMAC_WKUP_FFMSK3 ((volatile unsigned long *)EMAC_WKUP_FFMSK3)
|
||||
#define pEMAC_WKUP_FFCMD ((volatile unsigned long *)EMAC_WKUP_FFCMD)
|
||||
#define pEMAC_WKUP_FFOFF ((volatile unsigned long *)EMAC_WKUP_FFOFF)
|
||||
#define pEMAC_WKUP_FFCRC0 ((volatile unsigned long *)EMAC_WKUP_FFCRC0)
|
||||
#define pEMAC_WKUP_FFCRC1 ((volatile unsigned long *)EMAC_WKUP_FFCRC1)
|
||||
|
||||
#define pEMAC_SYSCTL ((volatile unsigned long *)EMAC_SYSCTL)
|
||||
#define pEMAC_SYSTAT ((volatile unsigned long *)EMAC_SYSTAT)
|
||||
#define pEMAC_RX_STAT ((volatile unsigned long *)EMAC_RX_STAT)
|
||||
#define pEMAC_RX_STKY ((volatile unsigned long *)EMAC_RX_STKY)
|
||||
#define pEMAC_RX_IRQE ((volatile unsigned long *)EMAC_RX_IRQE)
|
||||
#define pEMAC_TX_STAT ((volatile unsigned long *)EMAC_TX_STAT)
|
||||
#define pEMAC_TX_STKY ((volatile unsigned long *)EMAC_TX_STKY)
|
||||
#define pEMAC_TX_IRQE ((volatile unsigned long *)EMAC_TX_IRQE)
|
||||
|
||||
#define pEMAC_MMC_CTL ((volatile unsigned long *)EMAC_MMC_CTL)
|
||||
#define pEMAC_MMC_RIRQS ((volatile unsigned long *)EMAC_MMC_RIRQS)
|
||||
#define pEMAC_MMC_RIRQE ((volatile unsigned long *)EMAC_MMC_RIRQE)
|
||||
#define pEMAC_MMC_TIRQS ((volatile unsigned long *)EMAC_MMC_TIRQS)
|
||||
#define pEMAC_MMC_TIRQE ((volatile unsigned long *)EMAC_MMC_TIRQE)
|
||||
|
||||
#define pEMAC_RXC_OK ((volatile unsigned long *)EMAC_RXC_OK)
|
||||
#define pEMAC_RXC_FCS ((volatile unsigned long *)EMAC_RXC_FCS)
|
||||
#define pEMAC_RXC_ALIGN ((volatile unsigned long *)EMAC_RXC_ALIGN)
|
||||
#define pEMAC_RXC_OCTET ((volatile unsigned long *)EMAC_RXC_OCTET)
|
||||
#define pEMAC_RXC_DMAOVF ((volatile unsigned long *)EMAC_RXC_DMAOVF)
|
||||
#define pEMAC_RXC_UNICST ((volatile unsigned long *)EMAC_RXC_UNICST)
|
||||
#define pEMAC_RXC_MULTI ((volatile unsigned long *)EMAC_RXC_MULTI)
|
||||
#define pEMAC_RXC_BROAD ((volatile unsigned long *)EMAC_RXC_BROAD)
|
||||
#define pEMAC_RXC_LNERRI ((volatile unsigned long *)EMAC_RXC_LNERRI)
|
||||
#define pEMAC_RXC_LNERRO ((volatile unsigned long *)EMAC_RXC_LNERRO)
|
||||
#define pEMAC_RXC_LONG ((volatile unsigned long *)EMAC_RXC_LONG)
|
||||
#define pEMAC_RXC_MACCTL ((volatile unsigned long *)EMAC_RXC_MACCTL)
|
||||
#define pEMAC_RXC_OPCODE ((volatile unsigned long *)EMAC_RXC_OPCODE)
|
||||
#define pEMAC_RXC_PAUSE ((volatile unsigned long *)EMAC_RXC_PAUSE)
|
||||
#define pEMAC_RXC_ALLFRM ((volatile unsigned long *)EMAC_RXC_ALLFRM)
|
||||
#define pEMAC_RXC_ALLOCT ((volatile unsigned long *)EMAC_RXC_ALLOCT)
|
||||
#define pEMAC_RXC_TYPED ((volatile unsigned long *)EMAC_RXC_TYPED)
|
||||
#define pEMAC_RXC_SHORT ((volatile unsigned long *)EMAC_RXC_SHORT)
|
||||
#define pEMAC_RXC_EQ64 ((volatile unsigned long *)EMAC_RXC_EQ64)
|
||||
#define pEMAC_RXC_LT128 ((volatile unsigned long *)EMAC_RXC_LT128)
|
||||
#define pEMAC_RXC_LT256 ((volatile unsigned long *)EMAC_RXC_LT256)
|
||||
#define pEMAC_RXC_LT512 ((volatile unsigned long *)EMAC_RXC_LT512)
|
||||
#define pEMAC_RXC_LT1024 ((volatile unsigned long *)EMAC_RXC_LT1024)
|
||||
#define pEMAC_RXC_GE1024 ((volatile unsigned long *)EMAC_RXC_GE1024)
|
||||
|
||||
#define pEMAC_TXC_OK ((volatile unsigned long *)EMAC_TXC_OK)
|
||||
#define pEMAC_TXC_1COL ((volatile unsigned long *)EMAC_TXC_1COL)
|
||||
#define pEMAC_TXC_GT1COL ((volatile unsigned long *)EMAC_TXC_GT1COL)
|
||||
#define pEMAC_TXC_OCTET ((volatile unsigned long *)EMAC_TXC_OCTET)
|
||||
#define pEMAC_TXC_DEFER ((volatile unsigned long *)EMAC_TXC_DEFER)
|
||||
#define pEMAC_TXC_LATECL ((volatile unsigned long *)EMAC_TXC_LATECL)
|
||||
#define pEMAC_TXC_XS_COL ((volatile unsigned long *)EMAC_TXC_XS_COL)
|
||||
#define pEMAC_TXC_DMAUND ((volatile unsigned long *)EMAC_TXC_DMAUND)
|
||||
#define pEMAC_TXC_CRSERR ((volatile unsigned long *)EMAC_TXC_CRSERR)
|
||||
#define pEMAC_TXC_UNICST ((volatile unsigned long *)EMAC_TXC_UNICST)
|
||||
#define pEMAC_TXC_MULTI ((volatile unsigned long *)EMAC_TXC_MULTI)
|
||||
#define pEMAC_TXC_BROAD ((volatile unsigned long *)EMAC_TXC_BROAD)
|
||||
#define pEMAC_TXC_XS_DFR ((volatile unsigned long *)EMAC_TXC_XS_DFR)
|
||||
#define pEMAC_TXC_MACCTL ((volatile unsigned long *)EMAC_TXC_MACCTL)
|
||||
#define pEMAC_TXC_ALLFRM ((volatile unsigned long *)EMAC_TXC_ALLFRM)
|
||||
#define pEMAC_TXC_ALLOCT ((volatile unsigned long *)EMAC_TXC_ALLOCT)
|
||||
#define pEMAC_TXC_EQ64 ((volatile unsigned long *)EMAC_TXC_EQ64)
|
||||
#define pEMAC_TXC_LT128 ((volatile unsigned long *)EMAC_TXC_LT128)
|
||||
#define pEMAC_TXC_LT256 ((volatile unsigned long *)EMAC_TXC_LT256)
|
||||
#define pEMAC_TXC_LT512 ((volatile unsigned long *)EMAC_TXC_LT512)
|
||||
#define pEMAC_TXC_LT1024 ((volatile unsigned long *)EMAC_TXC_LT1024)
|
||||
#define pEMAC_TXC_GE1024 ((volatile unsigned long *)EMAC_TXC_GE1024)
|
||||
#define pEMAC_TXC_ABORT ((volatile unsigned long *)EMAC_TXC_ABORT)
|
||||
|
||||
/* USB Control Registers */
|
||||
|
||||
#define pUSB_FADDR ((volatile unsigned short *)USB_FADDR)
|
||||
#define pUSB_POWER ((volatile unsigned short *)USB_POWER)
|
||||
#define pUSB_INTRTX ((volatile unsigned short *)USB_INTRTX)
|
||||
#define pUSB_INTRRX ((volatile unsigned short *)USB_INTRRX)
|
||||
#define pUSB_INTRTXE ((volatile unsigned short *)USB_INTRTXE)
|
||||
#define pUSB_INTRRXE ((volatile unsigned short *)USB_INTRRXE)
|
||||
#define pUSB_INTRUSB ((volatile unsigned short *)USB_INTRUSB)
|
||||
#define pUSB_INTRUSBE ((volatile unsigned short *)USB_INTRUSBE)
|
||||
#define pUSB_FRAME ((volatile unsigned short *)USB_FRAME)
|
||||
#define pUSB_INDEX ((volatile unsigned short *)USB_INDEX)
|
||||
#define pUSB_TESTMODE ((volatile unsigned short *)USB_TESTMODE)
|
||||
#define pUSB_GLOBINTR ((volatile unsigned short *)USB_GLOBINTR)
|
||||
#define pUSB_GLOBAL_CTL ((volatile unsigned short *)USB_GLOBAL_CTL)
|
||||
|
||||
/* USB Packet Control Registers */
|
||||
|
||||
#define pUSB_TX_MAX_PACKET ((volatile unsigned short *)USB_TX_MAX_PACKET)
|
||||
#define pUSB_CSR0 ((volatile unsigned short *)USB_CSR0)
|
||||
#define pUSB_TXCSR ((volatile unsigned short *)USB_TXCSR)
|
||||
#define pUSB_RX_MAX_PACKET ((volatile unsigned short *)USB_RX_MAX_PACKET)
|
||||
#define pUSB_RXCSR ((volatile unsigned short *)USB_RXCSR)
|
||||
#define pUSB_COUNT0 ((volatile unsigned short *)USB_COUNT0)
|
||||
#define pUSB_RXCOUNT ((volatile unsigned short *)USB_RXCOUNT)
|
||||
#define pUSB_TXTYPE ((volatile unsigned short *)USB_TXTYPE)
|
||||
#define pUSB_NAKLIMIT0 ((volatile unsigned short *)USB_NAKLIMIT0)
|
||||
#define pUSB_TXINTERVAL ((volatile unsigned short *)USB_TXINTERVAL)
|
||||
#define pUSB_RXTYPE ((volatile unsigned short *)USB_RXTYPE)
|
||||
#define pUSB_RXINTERVAL ((volatile unsigned short *)USB_RXINTERVAL)
|
||||
#define pUSB_TXCOUNT ((volatile unsigned short *)USB_TXCOUNT)
|
||||
|
||||
/* USB Endpoint FIFO Registers */
|
||||
|
||||
#define pUSB_EP0_FIFO ((volatile unsigned short *)USB_EP0_FIFO)
|
||||
#define pUSB_EP1_FIFO ((volatile unsigned short *)USB_EP1_FIFO)
|
||||
#define pUSB_EP2_FIFO ((volatile unsigned short *)USB_EP2_FIFO)
|
||||
#define pUSB_EP3_FIFO ((volatile unsigned short *)USB_EP3_FIFO)
|
||||
#define pUSB_EP4_FIFO ((volatile unsigned short *)USB_EP4_FIFO)
|
||||
#define pUSB_EP5_FIFO ((volatile unsigned short *)USB_EP5_FIFO)
|
||||
#define pUSB_EP6_FIFO ((volatile unsigned short *)USB_EP6_FIFO)
|
||||
#define pUSB_EP7_FIFO ((volatile unsigned short *)USB_EP7_FIFO)
|
||||
|
||||
/* USB OTG Control Registers */
|
||||
|
||||
#define pUSB_OTG_DEV_CTL ((volatile unsigned short *)USB_OTG_DEV_CTL)
|
||||
#define pUSB_OTG_VBUS_IRQ ((volatile unsigned short *)USB_OTG_VBUS_IRQ)
|
||||
#define pUSB_OTG_VBUS_MASK ((volatile unsigned short *)USB_OTG_VBUS_MASK)
|
||||
|
||||
/* USB Phy Control Registers */
|
||||
|
||||
#define pUSB_LINKINFO ((volatile unsigned short *)USB_LINKINFO)
|
||||
#define pUSB_VPLEN ((volatile unsigned short *)USB_VPLEN)
|
||||
#define pUSB_HS_EOF1 ((volatile unsigned short *)USB_HS_EOF1)
|
||||
#define pUSB_FS_EOF1 ((volatile unsigned short *)USB_FS_EOF1)
|
||||
#define pUSB_LS_EOF1 ((volatile unsigned short *)USB_LS_EOF1)
|
||||
|
||||
/* (APHY_CNTRL is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CNTRL ((volatile unsigned short *)USB_APHY_CNTRL)
|
||||
|
||||
/* (APHY_CALIB is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CALIB ((volatile unsigned short *)USB_APHY_CALIB)
|
||||
|
||||
#define pUSB_APHY_CNTRL2 ((volatile unsigned short *)USB_APHY_CNTRL2)
|
||||
|
||||
/* (PHY_TEST is for ADI usage only) */
|
||||
|
||||
#define pUSB_PHY_TEST ((volatile unsigned short *)USB_PHY_TEST)
|
||||
|
||||
#define pUSB_PLLOSC_CTRL ((volatile unsigned short *)USB_PLLOSC_CTRL)
|
||||
#define pUSB_SRP_CLKDIV ((volatile unsigned short *)USB_SRP_CLKDIV)
|
||||
|
||||
/* USB Endpoint 0 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI0_TXMAXP ((volatile unsigned short *)USB_EP_NI0_TXMAXP)
|
||||
#define pUSB_EP_NI0_TXCSR ((volatile unsigned short *)USB_EP_NI0_TXCSR)
|
||||
#define pUSB_EP_NI0_RXMAXP ((volatile unsigned short *)USB_EP_NI0_RXMAXP)
|
||||
#define pUSB_EP_NI0_RXCSR ((volatile unsigned short *)USB_EP_NI0_RXCSR)
|
||||
#define pUSB_EP_NI0_RXCOUNT ((volatile unsigned short *)USB_EP_NI0_RXCOUNT)
|
||||
#define pUSB_EP_NI0_TXTYPE ((volatile unsigned short *)USB_EP_NI0_TXTYPE)
|
||||
#define pUSB_EP_NI0_TXINTERVAL ((volatile unsigned short *)USB_EP_NI0_TXINTERVAL)
|
||||
#define pUSB_EP_NI0_RXTYPE ((volatile unsigned short *)USB_EP_NI0_RXTYPE)
|
||||
#define pUSB_EP_NI0_RXINTERVAL ((volatile unsigned short *)USB_EP_NI0_RXINTERVAL)
|
||||
#define pUSB_EP_NI0_TXCOUNT ((volatile unsigned short *)USB_EP_NI0_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 1 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI1_TXMAXP ((volatile unsigned short *)USB_EP_NI1_TXMAXP)
|
||||
#define pUSB_EP_NI1_TXCSR ((volatile unsigned short *)USB_EP_NI1_TXCSR)
|
||||
#define pUSB_EP_NI1_RXMAXP ((volatile unsigned short *)USB_EP_NI1_RXMAXP)
|
||||
#define pUSB_EP_NI1_RXCSR ((volatile unsigned short *)USB_EP_NI1_RXCSR)
|
||||
#define pUSB_EP_NI1_RXCOUNT ((volatile unsigned short *)USB_EP_NI1_RXCOUNT)
|
||||
#define pUSB_EP_NI1_TXTYPE ((volatile unsigned short *)USB_EP_NI1_TXTYPE)
|
||||
#define pUSB_EP_NI1_TXINTERVAL ((volatile unsigned short *)USB_EP_NI1_TXINTERVAL)
|
||||
#define pUSB_EP_NI1_RXTYPE ((volatile unsigned short *)USB_EP_NI1_RXTYPE)
|
||||
#define pUSB_EP_NI1_RXINTERVAL ((volatile unsigned short *)USB_EP_NI1_RXINTERVAL)
|
||||
#define pUSB_EP_NI1_TXCOUNT ((volatile unsigned short *)USB_EP_NI1_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 2 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI2_TXMAXP ((volatile unsigned short *)USB_EP_NI2_TXMAXP)
|
||||
#define pUSB_EP_NI2_TXCSR ((volatile unsigned short *)USB_EP_NI2_TXCSR)
|
||||
#define pUSB_EP_NI2_RXMAXP ((volatile unsigned short *)USB_EP_NI2_RXMAXP)
|
||||
#define pUSB_EP_NI2_RXCSR ((volatile unsigned short *)USB_EP_NI2_RXCSR)
|
||||
#define pUSB_EP_NI2_RXCOUNT ((volatile unsigned short *)USB_EP_NI2_RXCOUNT)
|
||||
#define pUSB_EP_NI2_TXTYPE ((volatile unsigned short *)USB_EP_NI2_TXTYPE)
|
||||
#define pUSB_EP_NI2_TXINTERVAL ((volatile unsigned short *)USB_EP_NI2_TXINTERVAL)
|
||||
#define pUSB_EP_NI2_RXTYPE ((volatile unsigned short *)USB_EP_NI2_RXTYPE)
|
||||
#define pUSB_EP_NI2_RXINTERVAL ((volatile unsigned short *)USB_EP_NI2_RXINTERVAL)
|
||||
#define pUSB_EP_NI2_TXCOUNT ((volatile unsigned short *)USB_EP_NI2_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 3 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI3_TXMAXP ((volatile unsigned short *)USB_EP_NI3_TXMAXP)
|
||||
#define pUSB_EP_NI3_TXCSR ((volatile unsigned short *)USB_EP_NI3_TXCSR)
|
||||
#define pUSB_EP_NI3_RXMAXP ((volatile unsigned short *)USB_EP_NI3_RXMAXP)
|
||||
#define pUSB_EP_NI3_RXCSR ((volatile unsigned short *)USB_EP_NI3_RXCSR)
|
||||
#define pUSB_EP_NI3_RXCOUNT ((volatile unsigned short *)USB_EP_NI3_RXCOUNT)
|
||||
#define pUSB_EP_NI3_TXTYPE ((volatile unsigned short *)USB_EP_NI3_TXTYPE)
|
||||
#define pUSB_EP_NI3_TXINTERVAL ((volatile unsigned short *)USB_EP_NI3_TXINTERVAL)
|
||||
#define pUSB_EP_NI3_RXTYPE ((volatile unsigned short *)USB_EP_NI3_RXTYPE)
|
||||
#define pUSB_EP_NI3_RXINTERVAL ((volatile unsigned short *)USB_EP_NI3_RXINTERVAL)
|
||||
#define pUSB_EP_NI3_TXCOUNT ((volatile unsigned short *)USB_EP_NI3_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 4 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI4_TXMAXP ((volatile unsigned short *)USB_EP_NI4_TXMAXP)
|
||||
#define pUSB_EP_NI4_TXCSR ((volatile unsigned short *)USB_EP_NI4_TXCSR)
|
||||
#define pUSB_EP_NI4_RXMAXP ((volatile unsigned short *)USB_EP_NI4_RXMAXP)
|
||||
#define pUSB_EP_NI4_RXCSR ((volatile unsigned short *)USB_EP_NI4_RXCSR)
|
||||
#define pUSB_EP_NI4_RXCOUNT ((volatile unsigned short *)USB_EP_NI4_RXCOUNT)
|
||||
#define pUSB_EP_NI4_TXTYPE ((volatile unsigned short *)USB_EP_NI4_TXTYPE)
|
||||
#define pUSB_EP_NI4_TXINTERVAL ((volatile unsigned short *)USB_EP_NI4_TXINTERVAL)
|
||||
#define pUSB_EP_NI4_RXTYPE ((volatile unsigned short *)USB_EP_NI4_RXTYPE)
|
||||
#define pUSB_EP_NI4_RXINTERVAL ((volatile unsigned short *)USB_EP_NI4_RXINTERVAL)
|
||||
#define pUSB_EP_NI4_TXCOUNT ((volatile unsigned short *)USB_EP_NI4_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 5 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI5_TXMAXP ((volatile unsigned short *)USB_EP_NI5_TXMAXP)
|
||||
#define pUSB_EP_NI5_TXCSR ((volatile unsigned short *)USB_EP_NI5_TXCSR)
|
||||
#define pUSB_EP_NI5_RXMAXP ((volatile unsigned short *)USB_EP_NI5_RXMAXP)
|
||||
#define pUSB_EP_NI5_RXCSR ((volatile unsigned short *)USB_EP_NI5_RXCSR)
|
||||
#define pUSB_EP_NI5_RXCOUNT ((volatile unsigned short *)USB_EP_NI5_RXCOUNT)
|
||||
#define pUSB_EP_NI5_TXTYPE ((volatile unsigned short *)USB_EP_NI5_TXTYPE)
|
||||
#define pUSB_EP_NI5_TXINTERVAL ((volatile unsigned short *)USB_EP_NI5_TXINTERVAL)
|
||||
#define pUSB_EP_NI5_RXTYPE ((volatile unsigned short *)USB_EP_NI5_RXTYPE)
|
||||
#define pUSB_EP_NI5_RXINTERVAL ((volatile unsigned short *)USB_EP_NI5_RXINTERVAL)
|
||||
#define pUSB_EP_NI5_TXCOUNT ((volatile unsigned short *)USB_EP_NI5_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 6 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI6_TXMAXP ((volatile unsigned short *)USB_EP_NI6_TXMAXP)
|
||||
#define pUSB_EP_NI6_TXCSR ((volatile unsigned short *)USB_EP_NI6_TXCSR)
|
||||
#define pUSB_EP_NI6_RXMAXP ((volatile unsigned short *)USB_EP_NI6_RXMAXP)
|
||||
#define pUSB_EP_NI6_RXCSR ((volatile unsigned short *)USB_EP_NI6_RXCSR)
|
||||
#define pUSB_EP_NI6_RXCOUNT ((volatile unsigned short *)USB_EP_NI6_RXCOUNT)
|
||||
#define pUSB_EP_NI6_TXTYPE ((volatile unsigned short *)USB_EP_NI6_TXTYPE)
|
||||
#define pUSB_EP_NI6_TXINTERVAL ((volatile unsigned short *)USB_EP_NI6_TXINTERVAL)
|
||||
#define pUSB_EP_NI6_RXTYPE ((volatile unsigned short *)USB_EP_NI6_RXTYPE)
|
||||
#define pUSB_EP_NI6_RXINTERVAL ((volatile unsigned short *)USB_EP_NI6_RXINTERVAL)
|
||||
#define pUSB_EP_NI6_TXCOUNT ((volatile unsigned short *)USB_EP_NI6_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 7 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI7_TXMAXP ((volatile unsigned short *)USB_EP_NI7_TXMAXP)
|
||||
#define pUSB_EP_NI7_TXCSR ((volatile unsigned short *)USB_EP_NI7_TXCSR)
|
||||
#define pUSB_EP_NI7_RXMAXP ((volatile unsigned short *)USB_EP_NI7_RXMAXP)
|
||||
#define pUSB_EP_NI7_RXCSR ((volatile unsigned short *)USB_EP_NI7_RXCSR)
|
||||
#define pUSB_EP_NI7_RXCOUNT ((volatile unsigned short *)USB_EP_NI7_RXCOUNT)
|
||||
#define pUSB_EP_NI7_TXTYPE ((volatile unsigned short *)USB_EP_NI7_TXTYPE)
|
||||
#define pUSB_EP_NI7_TXINTERVAL ((volatile unsigned short *)USB_EP_NI7_TXINTERVAL)
|
||||
#define pUSB_EP_NI7_RXTYPE ((volatile unsigned short *)USB_EP_NI7_RXTYPE)
|
||||
#define pUSB_EP_NI7_RXINTERVAL ((volatile unsigned short *)USB_EP_NI7_RXINTERVAL)
|
||||
#define pUSB_EP_NI7_TXCOUNT ((volatile unsigned short *)USB_EP_NI7_TXCOUNT)
|
||||
|
||||
#define pUSB_DMA_INTERRUPT ((volatile unsigned short *)USB_DMA_INTERRUPT)
|
||||
|
||||
/* USB Channel 0 Config Registers */
|
||||
|
||||
#define pUSB_DMA0CONTROL ((volatile unsigned short *)USB_DMA0CONTROL)
|
||||
#define pUSB_DMA0ADDRLOW ((volatile unsigned short *)USB_DMA0ADDRLOW)
|
||||
#define pUSB_DMA0ADDRHIGH ((volatile unsigned short *)USB_DMA0ADDRHIGH)
|
||||
#define pUSB_DMA0COUNTLOW ((volatile unsigned short *)USB_DMA0COUNTLOW)
|
||||
#define pUSB_DMA0COUNTHIGH ((volatile unsigned short *)USB_DMA0COUNTHIGH)
|
||||
|
||||
/* USB Channel 1 Config Registers */
|
||||
|
||||
#define pUSB_DMA1CONTROL ((volatile unsigned short *)USB_DMA1CONTROL)
|
||||
#define pUSB_DMA1ADDRLOW ((volatile unsigned short *)USB_DMA1ADDRLOW)
|
||||
#define pUSB_DMA1ADDRHIGH ((volatile unsigned short *)USB_DMA1ADDRHIGH)
|
||||
#define pUSB_DMA1COUNTLOW ((volatile unsigned short *)USB_DMA1COUNTLOW)
|
||||
#define pUSB_DMA1COUNTHIGH ((volatile unsigned short *)USB_DMA1COUNTHIGH)
|
||||
|
||||
/* USB Channel 2 Config Registers */
|
||||
|
||||
#define pUSB_DMA2CONTROL ((volatile unsigned short *)USB_DMA2CONTROL)
|
||||
#define pUSB_DMA2ADDRLOW ((volatile unsigned short *)USB_DMA2ADDRLOW)
|
||||
#define pUSB_DMA2ADDRHIGH ((volatile unsigned short *)USB_DMA2ADDRHIGH)
|
||||
#define pUSB_DMA2COUNTLOW ((volatile unsigned short *)USB_DMA2COUNTLOW)
|
||||
#define pUSB_DMA2COUNTHIGH ((volatile unsigned short *)USB_DMA2COUNTHIGH)
|
||||
|
||||
/* USB Channel 3 Config Registers */
|
||||
|
||||
#define pUSB_DMA3CONTROL ((volatile unsigned short *)USB_DMA3CONTROL)
|
||||
#define pUSB_DMA3ADDRLOW ((volatile unsigned short *)USB_DMA3ADDRLOW)
|
||||
#define pUSB_DMA3ADDRHIGH ((volatile unsigned short *)USB_DMA3ADDRHIGH)
|
||||
#define pUSB_DMA3COUNTLOW ((volatile unsigned short *)USB_DMA3COUNTLOW)
|
||||
#define pUSB_DMA3COUNTHIGH ((volatile unsigned short *)USB_DMA3COUNTHIGH)
|
||||
|
||||
/* USB Channel 4 Config Registers */
|
||||
|
||||
#define pUSB_DMA4CONTROL ((volatile unsigned short *)USB_DMA4CONTROL)
|
||||
#define pUSB_DMA4ADDRLOW ((volatile unsigned short *)USB_DMA4ADDRLOW)
|
||||
#define pUSB_DMA4ADDRHIGH ((volatile unsigned short *)USB_DMA4ADDRHIGH)
|
||||
#define pUSB_DMA4COUNTLOW ((volatile unsigned short *)USB_DMA4COUNTLOW)
|
||||
#define pUSB_DMA4COUNTHIGH ((volatile unsigned short *)USB_DMA4COUNTHIGH)
|
||||
|
||||
/* USB Channel 5 Config Registers */
|
||||
|
||||
#define pUSB_DMA5CONTROL ((volatile unsigned short *)USB_DMA5CONTROL)
|
||||
#define pUSB_DMA5ADDRLOW ((volatile unsigned short *)USB_DMA5ADDRLOW)
|
||||
#define pUSB_DMA5ADDRHIGH ((volatile unsigned short *)USB_DMA5ADDRHIGH)
|
||||
#define pUSB_DMA5COUNTLOW ((volatile unsigned short *)USB_DMA5COUNTLOW)
|
||||
#define pUSB_DMA5COUNTHIGH ((volatile unsigned short *)USB_DMA5COUNTHIGH)
|
||||
|
||||
/* USB Channel 6 Config Registers */
|
||||
|
||||
#define pUSB_DMA6CONTROL ((volatile unsigned short *)USB_DMA6CONTROL)
|
||||
#define pUSB_DMA6ADDRLOW ((volatile unsigned short *)USB_DMA6ADDRLOW)
|
||||
#define pUSB_DMA6ADDRHIGH ((volatile unsigned short *)USB_DMA6ADDRHIGH)
|
||||
#define pUSB_DMA6COUNTLOW ((volatile unsigned short *)USB_DMA6COUNTLOW)
|
||||
#define pUSB_DMA6COUNTHIGH ((volatile unsigned short *)USB_DMA6COUNTHIGH)
|
||||
|
||||
/* USB Channel 7 Config Registers */
|
||||
|
||||
#define pUSB_DMA7CONTROL ((volatile unsigned short *)USB_DMA7CONTROL)
|
||||
#define pUSB_DMA7ADDRLOW ((volatile unsigned short *)USB_DMA7ADDRLOW)
|
||||
#define pUSB_DMA7ADDRHIGH ((volatile unsigned short *)USB_DMA7ADDRHIGH)
|
||||
#define pUSB_DMA7COUNTLOW ((volatile unsigned short *)USB_DMA7COUNTLOW)
|
||||
#define pUSB_DMA7COUNTHIGH ((volatile unsigned short *)USB_DMA7COUNTHIGH)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF526_H */
|
380
gcc/libgloss/bfin/include/cdefBF527.h
Normal file
380
gcc/libgloss/bfin/include/cdefBF527.h
Normal file
@ -0,0 +1,380 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2006-2008 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the ADSP-BF527 peripherals.
|
||||
**
|
||||
************************************************************************************
|
||||
** System MMR Register Map
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF527_H
|
||||
#define _CDEF_BF527_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF527.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */
|
||||
|
||||
/* include cdefBF52x_base.h for the set of #defines that are common to all ADSP-BF52x processors */
|
||||
#include <cdefBF52x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* The following are the #defines needed by ADSP-BF527 that are not in the common header */
|
||||
|
||||
/* 10/100 Ethernet Controller (0xFFC03000 - 0xFFC031FF) */
|
||||
|
||||
#define pEMAC_OPMODE ((volatile unsigned long *)EMAC_OPMODE)
|
||||
#define pEMAC_ADDRLO ((volatile unsigned long *)EMAC_ADDRLO)
|
||||
#define pEMAC_ADDRHI ((volatile unsigned long *)EMAC_ADDRHI)
|
||||
#define pEMAC_HASHLO ((volatile unsigned long *)EMAC_HASHLO)
|
||||
#define pEMAC_HASHHI ((volatile unsigned long *)EMAC_HASHHI)
|
||||
#define pEMAC_STAADD ((volatile unsigned long *)EMAC_STAADD)
|
||||
#define pEMAC_STADAT ((volatile unsigned long *)EMAC_STADAT)
|
||||
#define pEMAC_FLC ((volatile unsigned long *)EMAC_FLC)
|
||||
#define pEMAC_VLAN1 ((volatile unsigned long *)EMAC_VLAN1)
|
||||
#define pEMAC_VLAN2 ((volatile unsigned long *)EMAC_VLAN2)
|
||||
#define pEMAC_WKUP_CTL ((volatile unsigned long *)EMAC_WKUP_CTL)
|
||||
#define pEMAC_WKUP_FFMSK0 ((volatile unsigned long *)EMAC_WKUP_FFMSK0)
|
||||
#define pEMAC_WKUP_FFMSK1 ((volatile unsigned long *)EMAC_WKUP_FFMSK1)
|
||||
#define pEMAC_WKUP_FFMSK2 ((volatile unsigned long *)EMAC_WKUP_FFMSK2)
|
||||
#define pEMAC_WKUP_FFMSK3 ((volatile unsigned long *)EMAC_WKUP_FFMSK3)
|
||||
#define pEMAC_WKUP_FFCMD ((volatile unsigned long *)EMAC_WKUP_FFCMD)
|
||||
#define pEMAC_WKUP_FFOFF ((volatile unsigned long *)EMAC_WKUP_FFOFF)
|
||||
#define pEMAC_WKUP_FFCRC0 ((volatile unsigned long *)EMAC_WKUP_FFCRC0)
|
||||
#define pEMAC_WKUP_FFCRC1 ((volatile unsigned long *)EMAC_WKUP_FFCRC1)
|
||||
|
||||
#define pEMAC_SYSCTL ((volatile unsigned long *)EMAC_SYSCTL)
|
||||
#define pEMAC_SYSTAT ((volatile unsigned long *)EMAC_SYSTAT)
|
||||
#define pEMAC_RX_STAT ((volatile unsigned long *)EMAC_RX_STAT)
|
||||
#define pEMAC_RX_STKY ((volatile unsigned long *)EMAC_RX_STKY)
|
||||
#define pEMAC_RX_IRQE ((volatile unsigned long *)EMAC_RX_IRQE)
|
||||
#define pEMAC_TX_STAT ((volatile unsigned long *)EMAC_TX_STAT)
|
||||
#define pEMAC_TX_STKY ((volatile unsigned long *)EMAC_TX_STKY)
|
||||
#define pEMAC_TX_IRQE ((volatile unsigned long *)EMAC_TX_IRQE)
|
||||
|
||||
#define pEMAC_MMC_CTL ((volatile unsigned long *)EMAC_MMC_CTL)
|
||||
#define pEMAC_MMC_RIRQS ((volatile unsigned long *)EMAC_MMC_RIRQS)
|
||||
#define pEMAC_MMC_RIRQE ((volatile unsigned long *)EMAC_MMC_RIRQE)
|
||||
#define pEMAC_MMC_TIRQS ((volatile unsigned long *)EMAC_MMC_TIRQS)
|
||||
#define pEMAC_MMC_TIRQE ((volatile unsigned long *)EMAC_MMC_TIRQE)
|
||||
|
||||
#define pEMAC_RXC_OK ((volatile unsigned long *)EMAC_RXC_OK)
|
||||
#define pEMAC_RXC_FCS ((volatile unsigned long *)EMAC_RXC_FCS)
|
||||
#define pEMAC_RXC_ALIGN ((volatile unsigned long *)EMAC_RXC_ALIGN)
|
||||
#define pEMAC_RXC_OCTET ((volatile unsigned long *)EMAC_RXC_OCTET)
|
||||
#define pEMAC_RXC_DMAOVF ((volatile unsigned long *)EMAC_RXC_DMAOVF)
|
||||
#define pEMAC_RXC_UNICST ((volatile unsigned long *)EMAC_RXC_UNICST)
|
||||
#define pEMAC_RXC_MULTI ((volatile unsigned long *)EMAC_RXC_MULTI)
|
||||
#define pEMAC_RXC_BROAD ((volatile unsigned long *)EMAC_RXC_BROAD)
|
||||
#define pEMAC_RXC_LNERRI ((volatile unsigned long *)EMAC_RXC_LNERRI)
|
||||
#define pEMAC_RXC_LNERRO ((volatile unsigned long *)EMAC_RXC_LNERRO)
|
||||
#define pEMAC_RXC_LONG ((volatile unsigned long *)EMAC_RXC_LONG)
|
||||
#define pEMAC_RXC_MACCTL ((volatile unsigned long *)EMAC_RXC_MACCTL)
|
||||
#define pEMAC_RXC_OPCODE ((volatile unsigned long *)EMAC_RXC_OPCODE)
|
||||
#define pEMAC_RXC_PAUSE ((volatile unsigned long *)EMAC_RXC_PAUSE)
|
||||
#define pEMAC_RXC_ALLFRM ((volatile unsigned long *)EMAC_RXC_ALLFRM)
|
||||
#define pEMAC_RXC_ALLOCT ((volatile unsigned long *)EMAC_RXC_ALLOCT)
|
||||
#define pEMAC_RXC_TYPED ((volatile unsigned long *)EMAC_RXC_TYPED)
|
||||
#define pEMAC_RXC_SHORT ((volatile unsigned long *)EMAC_RXC_SHORT)
|
||||
#define pEMAC_RXC_EQ64 ((volatile unsigned long *)EMAC_RXC_EQ64)
|
||||
#define pEMAC_RXC_LT128 ((volatile unsigned long *)EMAC_RXC_LT128)
|
||||
#define pEMAC_RXC_LT256 ((volatile unsigned long *)EMAC_RXC_LT256)
|
||||
#define pEMAC_RXC_LT512 ((volatile unsigned long *)EMAC_RXC_LT512)
|
||||
#define pEMAC_RXC_LT1024 ((volatile unsigned long *)EMAC_RXC_LT1024)
|
||||
#define pEMAC_RXC_GE1024 ((volatile unsigned long *)EMAC_RXC_GE1024)
|
||||
|
||||
#define pEMAC_TXC_OK ((volatile unsigned long *)EMAC_TXC_OK)
|
||||
#define pEMAC_TXC_1COL ((volatile unsigned long *)EMAC_TXC_1COL)
|
||||
#define pEMAC_TXC_GT1COL ((volatile unsigned long *)EMAC_TXC_GT1COL)
|
||||
#define pEMAC_TXC_OCTET ((volatile unsigned long *)EMAC_TXC_OCTET)
|
||||
#define pEMAC_TXC_DEFER ((volatile unsigned long *)EMAC_TXC_DEFER)
|
||||
#define pEMAC_TXC_LATECL ((volatile unsigned long *)EMAC_TXC_LATECL)
|
||||
#define pEMAC_TXC_XS_COL ((volatile unsigned long *)EMAC_TXC_XS_COL)
|
||||
#define pEMAC_TXC_DMAUND ((volatile unsigned long *)EMAC_TXC_DMAUND)
|
||||
#define pEMAC_TXC_CRSERR ((volatile unsigned long *)EMAC_TXC_CRSERR)
|
||||
#define pEMAC_TXC_UNICST ((volatile unsigned long *)EMAC_TXC_UNICST)
|
||||
#define pEMAC_TXC_MULTI ((volatile unsigned long *)EMAC_TXC_MULTI)
|
||||
#define pEMAC_TXC_BROAD ((volatile unsigned long *)EMAC_TXC_BROAD)
|
||||
#define pEMAC_TXC_XS_DFR ((volatile unsigned long *)EMAC_TXC_XS_DFR)
|
||||
#define pEMAC_TXC_MACCTL ((volatile unsigned long *)EMAC_TXC_MACCTL)
|
||||
#define pEMAC_TXC_ALLFRM ((volatile unsigned long *)EMAC_TXC_ALLFRM)
|
||||
#define pEMAC_TXC_ALLOCT ((volatile unsigned long *)EMAC_TXC_ALLOCT)
|
||||
#define pEMAC_TXC_EQ64 ((volatile unsigned long *)EMAC_TXC_EQ64)
|
||||
#define pEMAC_TXC_LT128 ((volatile unsigned long *)EMAC_TXC_LT128)
|
||||
#define pEMAC_TXC_LT256 ((volatile unsigned long *)EMAC_TXC_LT256)
|
||||
#define pEMAC_TXC_LT512 ((volatile unsigned long *)EMAC_TXC_LT512)
|
||||
#define pEMAC_TXC_LT1024 ((volatile unsigned long *)EMAC_TXC_LT1024)
|
||||
#define pEMAC_TXC_GE1024 ((volatile unsigned long *)EMAC_TXC_GE1024)
|
||||
#define pEMAC_TXC_ABORT ((volatile unsigned long *)EMAC_TXC_ABORT)
|
||||
|
||||
/* USB Control Registers */
|
||||
|
||||
#define pUSB_FADDR ((volatile unsigned short *)USB_FADDR)
|
||||
#define pUSB_POWER ((volatile unsigned short *)USB_POWER)
|
||||
#define pUSB_INTRTX ((volatile unsigned short *)USB_INTRTX)
|
||||
#define pUSB_INTRRX ((volatile unsigned short *)USB_INTRRX)
|
||||
#define pUSB_INTRTXE ((volatile unsigned short *)USB_INTRTXE)
|
||||
#define pUSB_INTRRXE ((volatile unsigned short *)USB_INTRRXE)
|
||||
#define pUSB_INTRUSB ((volatile unsigned short *)USB_INTRUSB)
|
||||
#define pUSB_INTRUSBE ((volatile unsigned short *)USB_INTRUSBE)
|
||||
#define pUSB_FRAME ((volatile unsigned short *)USB_FRAME)
|
||||
#define pUSB_INDEX ((volatile unsigned short *)USB_INDEX)
|
||||
#define pUSB_TESTMODE ((volatile unsigned short *)USB_TESTMODE)
|
||||
#define pUSB_GLOBINTR ((volatile unsigned short *)USB_GLOBINTR)
|
||||
#define pUSB_GLOBAL_CTL ((volatile unsigned short *)USB_GLOBAL_CTL)
|
||||
|
||||
/* USB Packet Control Registers */
|
||||
|
||||
#define pUSB_TX_MAX_PACKET ((volatile unsigned short *)USB_TX_MAX_PACKET)
|
||||
#define pUSB_CSR0 ((volatile unsigned short *)USB_CSR0)
|
||||
#define pUSB_TXCSR ((volatile unsigned short *)USB_TXCSR)
|
||||
#define pUSB_RX_MAX_PACKET ((volatile unsigned short *)USB_RX_MAX_PACKET)
|
||||
#define pUSB_RXCSR ((volatile unsigned short *)USB_RXCSR)
|
||||
#define pUSB_COUNT0 ((volatile unsigned short *)USB_COUNT0)
|
||||
#define pUSB_RXCOUNT ((volatile unsigned short *)USB_RXCOUNT)
|
||||
#define pUSB_TXTYPE ((volatile unsigned short *)USB_TXTYPE)
|
||||
#define pUSB_NAKLIMIT0 ((volatile unsigned short *)USB_NAKLIMIT0)
|
||||
#define pUSB_TXINTERVAL ((volatile unsigned short *)USB_TXINTERVAL)
|
||||
#define pUSB_RXTYPE ((volatile unsigned short *)USB_RXTYPE)
|
||||
#define pUSB_RXINTERVAL ((volatile unsigned short *)USB_RXINTERVAL)
|
||||
#define pUSB_TXCOUNT ((volatile unsigned short *)USB_TXCOUNT)
|
||||
|
||||
/* USB Endpoint FIFO Registers */
|
||||
|
||||
#define pUSB_EP0_FIFO ((volatile unsigned short *)USB_EP0_FIFO)
|
||||
#define pUSB_EP1_FIFO ((volatile unsigned short *)USB_EP1_FIFO)
|
||||
#define pUSB_EP2_FIFO ((volatile unsigned short *)USB_EP2_FIFO)
|
||||
#define pUSB_EP3_FIFO ((volatile unsigned short *)USB_EP3_FIFO)
|
||||
#define pUSB_EP4_FIFO ((volatile unsigned short *)USB_EP4_FIFO)
|
||||
#define pUSB_EP5_FIFO ((volatile unsigned short *)USB_EP5_FIFO)
|
||||
#define pUSB_EP6_FIFO ((volatile unsigned short *)USB_EP6_FIFO)
|
||||
#define pUSB_EP7_FIFO ((volatile unsigned short *)USB_EP7_FIFO)
|
||||
|
||||
/* USB OTG Control Registers */
|
||||
|
||||
#define pUSB_OTG_DEV_CTL ((volatile unsigned short *)USB_OTG_DEV_CTL)
|
||||
#define pUSB_OTG_VBUS_IRQ ((volatile unsigned short *)USB_OTG_VBUS_IRQ)
|
||||
#define pUSB_OTG_VBUS_MASK ((volatile unsigned short *)USB_OTG_VBUS_MASK)
|
||||
|
||||
/* USB Phy Control Registers */
|
||||
|
||||
#define pUSB_LINKINFO ((volatile unsigned short *)USB_LINKINFO)
|
||||
#define pUSB_VPLEN ((volatile unsigned short *)USB_VPLEN)
|
||||
#define pUSB_HS_EOF1 ((volatile unsigned short *)USB_HS_EOF1)
|
||||
#define pUSB_FS_EOF1 ((volatile unsigned short *)USB_FS_EOF1)
|
||||
#define pUSB_LS_EOF1 ((volatile unsigned short *)USB_LS_EOF1)
|
||||
|
||||
/* (APHY_CNTRL is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CNTRL ((volatile unsigned short *)USB_APHY_CNTRL)
|
||||
|
||||
/* (APHY_CALIB is for ADI usage only) */
|
||||
|
||||
#define pUSB_APHY_CALIB ((volatile unsigned short *)USB_APHY_CALIB)
|
||||
|
||||
#define pUSB_APHY_CNTRL2 ((volatile unsigned short *)USB_APHY_CNTRL2)
|
||||
|
||||
/* (PHY_TEST is for ADI usage only) */
|
||||
|
||||
#define pUSB_PHY_TEST ((volatile unsigned short *)USB_PHY_TEST)
|
||||
|
||||
#define pUSB_PLLOSC_CTRL ((volatile unsigned short *)USB_PLLOSC_CTRL)
|
||||
#define pUSB_SRP_CLKDIV ((volatile unsigned short *)USB_SRP_CLKDIV)
|
||||
|
||||
/* USB Endpoint 0 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI0_TXMAXP ((volatile unsigned short *)USB_EP_NI0_TXMAXP)
|
||||
#define pUSB_EP_NI0_TXCSR ((volatile unsigned short *)USB_EP_NI0_TXCSR)
|
||||
#define pUSB_EP_NI0_RXMAXP ((volatile unsigned short *)USB_EP_NI0_RXMAXP)
|
||||
#define pUSB_EP_NI0_RXCSR ((volatile unsigned short *)USB_EP_NI0_RXCSR)
|
||||
#define pUSB_EP_NI0_RXCOUNT ((volatile unsigned short *)USB_EP_NI0_RXCOUNT)
|
||||
#define pUSB_EP_NI0_TXTYPE ((volatile unsigned short *)USB_EP_NI0_TXTYPE)
|
||||
#define pUSB_EP_NI0_TXINTERVAL ((volatile unsigned short *)USB_EP_NI0_TXINTERVAL)
|
||||
#define pUSB_EP_NI0_RXTYPE ((volatile unsigned short *)USB_EP_NI0_RXTYPE)
|
||||
#define pUSB_EP_NI0_RXINTERVAL ((volatile unsigned short *)USB_EP_NI0_RXINTERVAL)
|
||||
#define pUSB_EP_NI0_TXCOUNT ((volatile unsigned short *)USB_EP_NI0_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 1 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI1_TXMAXP ((volatile unsigned short *)USB_EP_NI1_TXMAXP)
|
||||
#define pUSB_EP_NI1_TXCSR ((volatile unsigned short *)USB_EP_NI1_TXCSR)
|
||||
#define pUSB_EP_NI1_RXMAXP ((volatile unsigned short *)USB_EP_NI1_RXMAXP)
|
||||
#define pUSB_EP_NI1_RXCSR ((volatile unsigned short *)USB_EP_NI1_RXCSR)
|
||||
#define pUSB_EP_NI1_RXCOUNT ((volatile unsigned short *)USB_EP_NI1_RXCOUNT)
|
||||
#define pUSB_EP_NI1_TXTYPE ((volatile unsigned short *)USB_EP_NI1_TXTYPE)
|
||||
#define pUSB_EP_NI1_TXINTERVAL ((volatile unsigned short *)USB_EP_NI1_TXINTERVAL)
|
||||
#define pUSB_EP_NI1_RXTYPE ((volatile unsigned short *)USB_EP_NI1_RXTYPE)
|
||||
#define pUSB_EP_NI1_RXINTERVAL ((volatile unsigned short *)USB_EP_NI1_RXINTERVAL)
|
||||
#define pUSB_EP_NI1_TXCOUNT ((volatile unsigned short *)USB_EP_NI1_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 2 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI2_TXMAXP ((volatile unsigned short *)USB_EP_NI2_TXMAXP)
|
||||
#define pUSB_EP_NI2_TXCSR ((volatile unsigned short *)USB_EP_NI2_TXCSR)
|
||||
#define pUSB_EP_NI2_RXMAXP ((volatile unsigned short *)USB_EP_NI2_RXMAXP)
|
||||
#define pUSB_EP_NI2_RXCSR ((volatile unsigned short *)USB_EP_NI2_RXCSR)
|
||||
#define pUSB_EP_NI2_RXCOUNT ((volatile unsigned short *)USB_EP_NI2_RXCOUNT)
|
||||
#define pUSB_EP_NI2_TXTYPE ((volatile unsigned short *)USB_EP_NI2_TXTYPE)
|
||||
#define pUSB_EP_NI2_TXINTERVAL ((volatile unsigned short *)USB_EP_NI2_TXINTERVAL)
|
||||
#define pUSB_EP_NI2_RXTYPE ((volatile unsigned short *)USB_EP_NI2_RXTYPE)
|
||||
#define pUSB_EP_NI2_RXINTERVAL ((volatile unsigned short *)USB_EP_NI2_RXINTERVAL)
|
||||
#define pUSB_EP_NI2_TXCOUNT ((volatile unsigned short *)USB_EP_NI2_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 3 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI3_TXMAXP ((volatile unsigned short *)USB_EP_NI3_TXMAXP)
|
||||
#define pUSB_EP_NI3_TXCSR ((volatile unsigned short *)USB_EP_NI3_TXCSR)
|
||||
#define pUSB_EP_NI3_RXMAXP ((volatile unsigned short *)USB_EP_NI3_RXMAXP)
|
||||
#define pUSB_EP_NI3_RXCSR ((volatile unsigned short *)USB_EP_NI3_RXCSR)
|
||||
#define pUSB_EP_NI3_RXCOUNT ((volatile unsigned short *)USB_EP_NI3_RXCOUNT)
|
||||
#define pUSB_EP_NI3_TXTYPE ((volatile unsigned short *)USB_EP_NI3_TXTYPE)
|
||||
#define pUSB_EP_NI3_TXINTERVAL ((volatile unsigned short *)USB_EP_NI3_TXINTERVAL)
|
||||
#define pUSB_EP_NI3_RXTYPE ((volatile unsigned short *)USB_EP_NI3_RXTYPE)
|
||||
#define pUSB_EP_NI3_RXINTERVAL ((volatile unsigned short *)USB_EP_NI3_RXINTERVAL)
|
||||
#define pUSB_EP_NI3_TXCOUNT ((volatile unsigned short *)USB_EP_NI3_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 4 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI4_TXMAXP ((volatile unsigned short *)USB_EP_NI4_TXMAXP)
|
||||
#define pUSB_EP_NI4_TXCSR ((volatile unsigned short *)USB_EP_NI4_TXCSR)
|
||||
#define pUSB_EP_NI4_RXMAXP ((volatile unsigned short *)USB_EP_NI4_RXMAXP)
|
||||
#define pUSB_EP_NI4_RXCSR ((volatile unsigned short *)USB_EP_NI4_RXCSR)
|
||||
#define pUSB_EP_NI4_RXCOUNT ((volatile unsigned short *)USB_EP_NI4_RXCOUNT)
|
||||
#define pUSB_EP_NI4_TXTYPE ((volatile unsigned short *)USB_EP_NI4_TXTYPE)
|
||||
#define pUSB_EP_NI4_TXINTERVAL ((volatile unsigned short *)USB_EP_NI4_TXINTERVAL)
|
||||
#define pUSB_EP_NI4_RXTYPE ((volatile unsigned short *)USB_EP_NI4_RXTYPE)
|
||||
#define pUSB_EP_NI4_RXINTERVAL ((volatile unsigned short *)USB_EP_NI4_RXINTERVAL)
|
||||
#define pUSB_EP_NI4_TXCOUNT ((volatile unsigned short *)USB_EP_NI4_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 5 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI5_TXMAXP ((volatile unsigned short *)USB_EP_NI5_TXMAXP)
|
||||
#define pUSB_EP_NI5_TXCSR ((volatile unsigned short *)USB_EP_NI5_TXCSR)
|
||||
#define pUSB_EP_NI5_RXMAXP ((volatile unsigned short *)USB_EP_NI5_RXMAXP)
|
||||
#define pUSB_EP_NI5_RXCSR ((volatile unsigned short *)USB_EP_NI5_RXCSR)
|
||||
#define pUSB_EP_NI5_RXCOUNT ((volatile unsigned short *)USB_EP_NI5_RXCOUNT)
|
||||
#define pUSB_EP_NI5_TXTYPE ((volatile unsigned short *)USB_EP_NI5_TXTYPE)
|
||||
#define pUSB_EP_NI5_TXINTERVAL ((volatile unsigned short *)USB_EP_NI5_TXINTERVAL)
|
||||
#define pUSB_EP_NI5_RXTYPE ((volatile unsigned short *)USB_EP_NI5_RXTYPE)
|
||||
#define pUSB_EP_NI5_RXINTERVAL ((volatile unsigned short *)USB_EP_NI5_RXINTERVAL)
|
||||
#define pUSB_EP_NI5_TXCOUNT ((volatile unsigned short *)USB_EP_NI5_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 6 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI6_TXMAXP ((volatile unsigned short *)USB_EP_NI6_TXMAXP)
|
||||
#define pUSB_EP_NI6_TXCSR ((volatile unsigned short *)USB_EP_NI6_TXCSR)
|
||||
#define pUSB_EP_NI6_RXMAXP ((volatile unsigned short *)USB_EP_NI6_RXMAXP)
|
||||
#define pUSB_EP_NI6_RXCSR ((volatile unsigned short *)USB_EP_NI6_RXCSR)
|
||||
#define pUSB_EP_NI6_RXCOUNT ((volatile unsigned short *)USB_EP_NI6_RXCOUNT)
|
||||
#define pUSB_EP_NI6_TXTYPE ((volatile unsigned short *)USB_EP_NI6_TXTYPE)
|
||||
#define pUSB_EP_NI6_TXINTERVAL ((volatile unsigned short *)USB_EP_NI6_TXINTERVAL)
|
||||
#define pUSB_EP_NI6_RXTYPE ((volatile unsigned short *)USB_EP_NI6_RXTYPE)
|
||||
#define pUSB_EP_NI6_RXINTERVAL ((volatile unsigned short *)USB_EP_NI6_RXINTERVAL)
|
||||
#define pUSB_EP_NI6_TXCOUNT ((volatile unsigned short *)USB_EP_NI6_TXCOUNT)
|
||||
|
||||
/* USB Endpoint 7 Control Registers */
|
||||
|
||||
#define pUSB_EP_NI7_TXMAXP ((volatile unsigned short *)USB_EP_NI7_TXMAXP)
|
||||
#define pUSB_EP_NI7_TXCSR ((volatile unsigned short *)USB_EP_NI7_TXCSR)
|
||||
#define pUSB_EP_NI7_RXMAXP ((volatile unsigned short *)USB_EP_NI7_RXMAXP)
|
||||
#define pUSB_EP_NI7_RXCSR ((volatile unsigned short *)USB_EP_NI7_RXCSR)
|
||||
#define pUSB_EP_NI7_RXCOUNT ((volatile unsigned short *)USB_EP_NI7_RXCOUNT)
|
||||
#define pUSB_EP_NI7_TXTYPE ((volatile unsigned short *)USB_EP_NI7_TXTYPE)
|
||||
#define pUSB_EP_NI7_TXINTERVAL ((volatile unsigned short *)USB_EP_NI7_TXINTERVAL)
|
||||
#define pUSB_EP_NI7_RXTYPE ((volatile unsigned short *)USB_EP_NI7_RXTYPE)
|
||||
#define pUSB_EP_NI7_RXINTERVAL ((volatile unsigned short *)USB_EP_NI7_RXINTERVAL)
|
||||
#define pUSB_EP_NI7_TXCOUNT ((volatile unsigned short *)USB_EP_NI7_TXCOUNT)
|
||||
|
||||
#define pUSB_DMA_INTERRUPT ((volatile unsigned short *)USB_DMA_INTERRUPT)
|
||||
|
||||
/* USB Channel 0 Config Registers */
|
||||
|
||||
#define pUSB_DMA0CONTROL ((volatile unsigned short *)USB_DMA0CONTROL)
|
||||
#define pUSB_DMA0ADDRLOW ((volatile unsigned short *)USB_DMA0ADDRLOW)
|
||||
#define pUSB_DMA0ADDRHIGH ((volatile unsigned short *)USB_DMA0ADDRHIGH)
|
||||
#define pUSB_DMA0COUNTLOW ((volatile unsigned short *)USB_DMA0COUNTLOW)
|
||||
#define pUSB_DMA0COUNTHIGH ((volatile unsigned short *)USB_DMA0COUNTHIGH)
|
||||
|
||||
/* USB Channel 1 Config Registers */
|
||||
|
||||
#define pUSB_DMA1CONTROL ((volatile unsigned short *)USB_DMA1CONTROL)
|
||||
#define pUSB_DMA1ADDRLOW ((volatile unsigned short *)USB_DMA1ADDRLOW)
|
||||
#define pUSB_DMA1ADDRHIGH ((volatile unsigned short *)USB_DMA1ADDRHIGH)
|
||||
#define pUSB_DMA1COUNTLOW ((volatile unsigned short *)USB_DMA1COUNTLOW)
|
||||
#define pUSB_DMA1COUNTHIGH ((volatile unsigned short *)USB_DMA1COUNTHIGH)
|
||||
|
||||
/* USB Channel 2 Config Registers */
|
||||
|
||||
#define pUSB_DMA2CONTROL ((volatile unsigned short *)USB_DMA2CONTROL)
|
||||
#define pUSB_DMA2ADDRLOW ((volatile unsigned short *)USB_DMA2ADDRLOW)
|
||||
#define pUSB_DMA2ADDRHIGH ((volatile unsigned short *)USB_DMA2ADDRHIGH)
|
||||
#define pUSB_DMA2COUNTLOW ((volatile unsigned short *)USB_DMA2COUNTLOW)
|
||||
#define pUSB_DMA2COUNTHIGH ((volatile unsigned short *)USB_DMA2COUNTHIGH)
|
||||
|
||||
/* USB Channel 3 Config Registers */
|
||||
|
||||
#define pUSB_DMA3CONTROL ((volatile unsigned short *)USB_DMA3CONTROL)
|
||||
#define pUSB_DMA3ADDRLOW ((volatile unsigned short *)USB_DMA3ADDRLOW)
|
||||
#define pUSB_DMA3ADDRHIGH ((volatile unsigned short *)USB_DMA3ADDRHIGH)
|
||||
#define pUSB_DMA3COUNTLOW ((volatile unsigned short *)USB_DMA3COUNTLOW)
|
||||
#define pUSB_DMA3COUNTHIGH ((volatile unsigned short *)USB_DMA3COUNTHIGH)
|
||||
|
||||
/* USB Channel 4 Config Registers */
|
||||
|
||||
#define pUSB_DMA4CONTROL ((volatile unsigned short *)USB_DMA4CONTROL)
|
||||
#define pUSB_DMA4ADDRLOW ((volatile unsigned short *)USB_DMA4ADDRLOW)
|
||||
#define pUSB_DMA4ADDRHIGH ((volatile unsigned short *)USB_DMA4ADDRHIGH)
|
||||
#define pUSB_DMA4COUNTLOW ((volatile unsigned short *)USB_DMA4COUNTLOW)
|
||||
#define pUSB_DMA4COUNTHIGH ((volatile unsigned short *)USB_DMA4COUNTHIGH)
|
||||
|
||||
/* USB Channel 5 Config Registers */
|
||||
|
||||
#define pUSB_DMA5CONTROL ((volatile unsigned short *)USB_DMA5CONTROL)
|
||||
#define pUSB_DMA5ADDRLOW ((volatile unsigned short *)USB_DMA5ADDRLOW)
|
||||
#define pUSB_DMA5ADDRHIGH ((volatile unsigned short *)USB_DMA5ADDRHIGH)
|
||||
#define pUSB_DMA5COUNTLOW ((volatile unsigned short *)USB_DMA5COUNTLOW)
|
||||
#define pUSB_DMA5COUNTHIGH ((volatile unsigned short *)USB_DMA5COUNTHIGH)
|
||||
|
||||
/* USB Channel 6 Config Registers */
|
||||
|
||||
#define pUSB_DMA6CONTROL ((volatile unsigned short *)USB_DMA6CONTROL)
|
||||
#define pUSB_DMA6ADDRLOW ((volatile unsigned short *)USB_DMA6ADDRLOW)
|
||||
#define pUSB_DMA6ADDRHIGH ((volatile unsigned short *)USB_DMA6ADDRHIGH)
|
||||
#define pUSB_DMA6COUNTLOW ((volatile unsigned short *)USB_DMA6COUNTLOW)
|
||||
#define pUSB_DMA6COUNTHIGH ((volatile unsigned short *)USB_DMA6COUNTHIGH)
|
||||
|
||||
/* USB Channel 7 Config Registers */
|
||||
|
||||
#define pUSB_DMA7CONTROL ((volatile unsigned short *)USB_DMA7CONTROL)
|
||||
#define pUSB_DMA7ADDRLOW ((volatile unsigned short *)USB_DMA7ADDRLOW)
|
||||
#define pUSB_DMA7ADDRHIGH ((volatile unsigned short *)USB_DMA7ADDRHIGH)
|
||||
#define pUSB_DMA7COUNTLOW ((volatile unsigned short *)USB_DMA7COUNTLOW)
|
||||
#define pUSB_DMA7COUNTHIGH ((volatile unsigned short *)USB_DMA7COUNTHIGH)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF527_H */
|
669
gcc/libgloss/bfin/include/cdefBF52x_base.h
Normal file
669
gcc/libgloss/bfin/include/cdefBF52x_base.h
Normal file
@ -0,0 +1,669 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/*
|
||||
** cdefBF52x_base.h
|
||||
**
|
||||
** Copyright (C) 2007-2009 Analog Devices Inc., All Rights Reserved.
|
||||
**
|
||||
************************************************************************************
|
||||
**
|
||||
** This include file contains a list of macro "defines" to enable the programmer
|
||||
** to use symbolic names for the registers common to the ADSP-BF52x peripherals.
|
||||
**
|
||||
***************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF52X_H
|
||||
#define _CDEF_BF52X_H
|
||||
|
||||
#include <defBF52x_base.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
/* ==== begin from cdefBF534.h ==== */
|
||||
|
||||
#ifndef _PTR_TO_VOL_VOID_PTR
|
||||
#ifndef _USE_LEGACY_CDEF_BEHAVIOUR
|
||||
#define _PTR_TO_VOL_VOID_PTR (void * volatile *)
|
||||
#else
|
||||
#define _PTR_TO_VOL_VOID_PTR (volatile void **)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/* Clock and System Control (0xFFC00000 - 0xFFC000FF) */
|
||||
#define pPLL_CTL ((volatile unsigned short *)PLL_CTL)
|
||||
#define pPLL_DIV ((volatile unsigned short *)PLL_DIV)
|
||||
#define pVR_CTL ((volatile unsigned short *)VR_CTL)
|
||||
#define pPLL_STAT ((volatile unsigned short *)PLL_STAT)
|
||||
#define pPLL_LOCKCNT ((volatile unsigned short *)PLL_LOCKCNT)
|
||||
#define pCHIPID ((volatile unsigned long*)CHIPID)
|
||||
|
||||
|
||||
/* System Interrupt Controller (0xFFC00100 - 0xFFC001FF) */
|
||||
#define pSWRST ((volatile unsigned short *)SWRST)
|
||||
#define pSYSCR ((volatile unsigned short *)SYSCR)
|
||||
|
||||
#define pSIC_IMASK0 ((volatile unsigned long *)SIC_IMASK0)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSIC_IMASK ((volatile unsigned long *)SIC_IMASK0)
|
||||
|
||||
#define pSIC_IAR0 ((volatile unsigned long *)SIC_IAR0)
|
||||
#define pSIC_IAR1 ((volatile unsigned long *)SIC_IAR1)
|
||||
#define pSIC_IAR2 ((volatile unsigned long *)SIC_IAR2)
|
||||
#define pSIC_IAR3 ((volatile unsigned long *)SIC_IAR3)
|
||||
|
||||
#define pSIC_ISR0 ((volatile unsigned long *)SIC_ISR0)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSIC_ISR ((volatile unsigned long *)SIC_ISR0)
|
||||
|
||||
#define pSIC_IWR0 ((volatile unsigned long *)SIC_IWR0)
|
||||
/* legacy register name (below) provided for backwards code compatibility */
|
||||
#define pSIC_IWR ((volatile unsigned long *)SIC_IWR0)
|
||||
|
||||
/* SIC Additions to ADSP-BF52x (0xFFC0014C - 0xFFC00162) */
|
||||
|
||||
#define pSIC_IMASK1 ((volatile unsigned long *)SIC_IMASK1)
|
||||
#define pSIC_IAR4 ((volatile unsigned long *)SIC_IAR4)
|
||||
#define pSIC_IAR5 ((volatile unsigned long *)SIC_IAR5)
|
||||
#define pSIC_IAR6 ((volatile unsigned long *)SIC_IAR6)
|
||||
#define pSIC_IAR7 ((volatile unsigned long *)SIC_IAR7)
|
||||
#define pSIC_ISR1 ((volatile unsigned long *)SIC_ISR1)
|
||||
#define pSIC_IWR1 ((volatile unsigned long *)SIC_IWR1)
|
||||
|
||||
/* Watchdog Timer (0xFFC00200 - 0xFFC002FF) */
|
||||
#define pWDOG_CTL ((volatile unsigned short *)WDOG_CTL)
|
||||
#define pWDOG_CNT ((volatile unsigned long *)WDOG_CNT)
|
||||
#define pWDOG_STAT ((volatile unsigned long *)WDOG_STAT)
|
||||
|
||||
|
||||
/* Real Time Clock (0xFFC00300 - 0xFFC003FF) */
|
||||
#define pRTC_STAT ((volatile unsigned long *)RTC_STAT)
|
||||
#define pRTC_ICTL ((volatile unsigned short *)RTC_ICTL)
|
||||
#define pRTC_ISTAT ((volatile unsigned short *)RTC_ISTAT)
|
||||
#define pRTC_SWCNT ((volatile unsigned short *)RTC_SWCNT)
|
||||
#define pRTC_ALARM ((volatile unsigned long *)RTC_ALARM)
|
||||
#define pRTC_FAST ((volatile unsigned short *)RTC_FAST)
|
||||
#define pRTC_PREN ((volatile unsigned short *)RTC_PREN)
|
||||
|
||||
|
||||
/* UART0 Controller (0xFFC00400 - 0xFFC004FF) */
|
||||
#define pUART0_THR ((volatile unsigned short *)UART0_THR)
|
||||
#define pUART0_RBR ((volatile unsigned short *)UART0_RBR)
|
||||
#define pUART0_DLL ((volatile unsigned short *)UART0_DLL)
|
||||
#define pUART0_IER ((volatile unsigned short *)UART0_IER)
|
||||
#define pUART0_DLH ((volatile unsigned short *)UART0_DLH)
|
||||
#define pUART0_IIR ((volatile unsigned short *)UART0_IIR)
|
||||
#define pUART0_LCR ((volatile unsigned short *)UART0_LCR)
|
||||
#define pUART0_MCR ((volatile unsigned short *)UART0_MCR)
|
||||
#define pUART0_LSR ((volatile unsigned short *)UART0_LSR)
|
||||
#define pUART0_SCR ((volatile unsigned short *)UART0_SCR)
|
||||
#define pUART0_GCTL ((volatile unsigned short *)UART0_GCTL)
|
||||
|
||||
|
||||
/* SPI Controller (0xFFC00500 - 0xFFC005FF) */
|
||||
#define pSPI_CTL ((volatile unsigned short *)SPI_CTL)
|
||||
#define pSPI_FLG ((volatile unsigned short *)SPI_FLG)
|
||||
#define pSPI_STAT ((volatile unsigned short *)SPI_STAT)
|
||||
#define pSPI_TDBR ((volatile unsigned short *)SPI_TDBR)
|
||||
#define pSPI_RDBR ((volatile unsigned short *)SPI_RDBR)
|
||||
#define pSPI_BAUD ((volatile unsigned short *)SPI_BAUD)
|
||||
#define pSPI_SHADOW ((volatile unsigned short *)SPI_SHADOW)
|
||||
|
||||
|
||||
/* TIMER0-7 Registers (0xFFC00600 - 0xFFC006FF) */
|
||||
#define pTIMER0_CONFIG ((volatile unsigned short *)TIMER0_CONFIG)
|
||||
#define pTIMER0_COUNTER ((volatile unsigned long *)TIMER0_COUNTER)
|
||||
#define pTIMER0_PERIOD ((volatile unsigned long *)TIMER0_PERIOD)
|
||||
#define pTIMER0_WIDTH ((volatile unsigned long *)TIMER0_WIDTH)
|
||||
|
||||
#define pTIMER1_CONFIG ((volatile unsigned short *)TIMER1_CONFIG)
|
||||
#define pTIMER1_COUNTER ((volatile unsigned long *)TIMER1_COUNTER)
|
||||
#define pTIMER1_PERIOD ((volatile unsigned long *)TIMER1_PERIOD)
|
||||
#define pTIMER1_WIDTH ((volatile unsigned long *)TIMER1_WIDTH)
|
||||
|
||||
#define pTIMER2_CONFIG ((volatile unsigned short *)TIMER2_CONFIG)
|
||||
#define pTIMER2_COUNTER ((volatile unsigned long *)TIMER2_COUNTER)
|
||||
#define pTIMER2_PERIOD ((volatile unsigned long *)TIMER2_PERIOD)
|
||||
#define pTIMER2_WIDTH ((volatile unsigned long *)TIMER2_WIDTH)
|
||||
|
||||
#define pTIMER3_CONFIG ((volatile unsigned short *)TIMER3_CONFIG)
|
||||
#define pTIMER3_COUNTER ((volatile unsigned long *)TIMER3_COUNTER)
|
||||
#define pTIMER3_PERIOD ((volatile unsigned long *)TIMER3_PERIOD)
|
||||
#define pTIMER3_WIDTH ((volatile unsigned long *)TIMER3_WIDTH)
|
||||
|
||||
#define pTIMER4_CONFIG ((volatile unsigned short *)TIMER4_CONFIG)
|
||||
#define pTIMER4_COUNTER ((volatile unsigned long *)TIMER4_COUNTER)
|
||||
#define pTIMER4_PERIOD ((volatile unsigned long *)TIMER4_PERIOD)
|
||||
#define pTIMER4_WIDTH ((volatile unsigned long *)TIMER4_WIDTH)
|
||||
|
||||
#define pTIMER5_CONFIG ((volatile unsigned short *)TIMER5_CONFIG)
|
||||
#define pTIMER5_COUNTER ((volatile unsigned long *)TIMER5_COUNTER)
|
||||
#define pTIMER5_PERIOD ((volatile unsigned long *)TIMER5_PERIOD)
|
||||
#define pTIMER5_WIDTH ((volatile unsigned long *)TIMER5_WIDTH)
|
||||
|
||||
#define pTIMER6_CONFIG ((volatile unsigned short *)TIMER6_CONFIG)
|
||||
#define pTIMER6_COUNTER ((volatile unsigned long *)TIMER6_COUNTER)
|
||||
#define pTIMER6_PERIOD ((volatile unsigned long *)TIMER6_PERIOD)
|
||||
#define pTIMER6_WIDTH ((volatile unsigned long *)TIMER6_WIDTH)
|
||||
|
||||
#define pTIMER7_CONFIG ((volatile unsigned short *)TIMER7_CONFIG)
|
||||
#define pTIMER7_COUNTER ((volatile unsigned long *)TIMER7_COUNTER)
|
||||
#define pTIMER7_PERIOD ((volatile unsigned long *)TIMER7_PERIOD)
|
||||
#define pTIMER7_WIDTH ((volatile unsigned long *)TIMER7_WIDTH)
|
||||
|
||||
#define pTIMER_ENABLE ((volatile unsigned short *)TIMER_ENABLE)
|
||||
#define pTIMER_DISABLE ((volatile unsigned short *)TIMER_DISABLE)
|
||||
#define pTIMER_STATUS ((volatile unsigned long *)TIMER_STATUS)
|
||||
|
||||
|
||||
/* General Purpose I/O Port F (0xFFC00700 - 0xFFC007FF) */
|
||||
#define pPORTFIO ((volatile unsigned short *)PORTFIO)
|
||||
#define pPORTFIO_CLEAR ((volatile unsigned short *)PORTFIO_CLEAR)
|
||||
#define pPORTFIO_SET ((volatile unsigned short *)PORTFIO_SET)
|
||||
#define pPORTFIO_TOGGLE ((volatile unsigned short *)PORTFIO_TOGGLE)
|
||||
#define pPORTFIO_MASKA ((volatile unsigned short *)PORTFIO_MASKA)
|
||||
#define pPORTFIO_MASKA_CLEAR ((volatile unsigned short *)PORTFIO_MASKA_CLEAR)
|
||||
#define pPORTFIO_MASKA_SET ((volatile unsigned short *)PORTFIO_MASKA_SET)
|
||||
#define pPORTFIO_MASKA_TOGGLE ((volatile unsigned short *)PORTFIO_MASKA_TOGGLE)
|
||||
#define pPORTFIO_MASKB ((volatile unsigned short *)PORTFIO_MASKB)
|
||||
#define pPORTFIO_MASKB_CLEAR ((volatile unsigned short *)PORTFIO_MASKB_CLEAR)
|
||||
#define pPORTFIO_MASKB_SET ((volatile unsigned short *)PORTFIO_MASKB_SET)
|
||||
#define pPORTFIO_MASKB_TOGGLE ((volatile unsigned short *)PORTFIO_MASKB_TOGGLE)
|
||||
#define pPORTFIO_DIR ((volatile unsigned short *)PORTFIO_DIR)
|
||||
#define pPORTFIO_POLAR ((volatile unsigned short *)PORTFIO_POLAR)
|
||||
#define pPORTFIO_EDGE ((volatile unsigned short *)PORTFIO_EDGE)
|
||||
#define pPORTFIO_BOTH ((volatile unsigned short *)PORTFIO_BOTH)
|
||||
#define pPORTFIO_INEN ((volatile unsigned short *)PORTFIO_INEN)
|
||||
|
||||
|
||||
/* SPORT0 Controller (0xFFC00800 - 0xFFC008FF) */
|
||||
#define pSPORT0_TCR1 ((volatile unsigned short *)SPORT0_TCR1)
|
||||
#define pSPORT0_TCR2 ((volatile unsigned short *)SPORT0_TCR2)
|
||||
#define pSPORT0_TCLKDIV ((volatile unsigned short *)SPORT0_TCLKDIV)
|
||||
#define pSPORT0_TFSDIV ((volatile unsigned short *)SPORT0_TFSDIV)
|
||||
#define pSPORT0_TX ((volatile unsigned long *)SPORT0_TX)
|
||||
#define pSPORT0_RX ((volatile unsigned long *)SPORT0_RX)
|
||||
#define pSPORT0_TX32 ((volatile unsigned long *)SPORT0_TX)
|
||||
#define pSPORT0_RX32 ((volatile unsigned long *)SPORT0_RX)
|
||||
#define pSPORT0_TX16 ((volatile unsigned short *)SPORT0_TX)
|
||||
#define pSPORT0_RX16 ((volatile unsigned short *)SPORT0_RX)
|
||||
#define pSPORT0_RCR1 ((volatile unsigned short *)SPORT0_RCR1)
|
||||
#define pSPORT0_RCR2 ((volatile unsigned short *)SPORT0_RCR2)
|
||||
#define pSPORT0_RCLKDIV ((volatile unsigned short *)SPORT0_RCLKDIV)
|
||||
#define pSPORT0_RFSDIV ((volatile unsigned short *)SPORT0_RFSDIV)
|
||||
#define pSPORT0_STAT ((volatile unsigned short *)SPORT0_STAT)
|
||||
#define pSPORT0_CHNL ((volatile unsigned short *)SPORT0_CHNL)
|
||||
#define pSPORT0_MCMC1 ((volatile unsigned short *)SPORT0_MCMC1)
|
||||
#define pSPORT0_MCMC2 ((volatile unsigned short *)SPORT0_MCMC2)
|
||||
#define pSPORT0_MTCS0 ((volatile unsigned long *)SPORT0_MTCS0)
|
||||
#define pSPORT0_MTCS1 ((volatile unsigned long *)SPORT0_MTCS1)
|
||||
#define pSPORT0_MTCS2 ((volatile unsigned long *)SPORT0_MTCS2)
|
||||
#define pSPORT0_MTCS3 ((volatile unsigned long *)SPORT0_MTCS3)
|
||||
#define pSPORT0_MRCS0 ((volatile unsigned long *)SPORT0_MRCS0)
|
||||
#define pSPORT0_MRCS1 ((volatile unsigned long *)SPORT0_MRCS1)
|
||||
#define pSPORT0_MRCS2 ((volatile unsigned long *)SPORT0_MRCS2)
|
||||
#define pSPORT0_MRCS3 ((volatile unsigned long *)SPORT0_MRCS3)
|
||||
|
||||
|
||||
/* SPORT1 Controller (0xFFC00900 - 0xFFC009FF) */
|
||||
#define pSPORT1_TCR1 ((volatile unsigned short *)SPORT1_TCR1)
|
||||
#define pSPORT1_TCR2 ((volatile unsigned short *)SPORT1_TCR2)
|
||||
#define pSPORT1_TCLKDIV ((volatile unsigned short *)SPORT1_TCLKDIV)
|
||||
#define pSPORT1_TFSDIV ((volatile unsigned short *)SPORT1_TFSDIV)
|
||||
#define pSPORT1_TX ((volatile unsigned long *)SPORT1_TX)
|
||||
#define pSPORT1_RX ((volatile unsigned long *)SPORT1_RX)
|
||||
#define pSPORT1_TX32 ((volatile unsigned long *)SPORT1_TX)
|
||||
#define pSPORT1_RX32 ((volatile unsigned long *)SPORT1_RX)
|
||||
#define pSPORT1_TX16 ((volatile unsigned short *)SPORT1_TX)
|
||||
#define pSPORT1_RX16 ((volatile unsigned short *)SPORT1_RX)
|
||||
#define pSPORT1_RCR1 ((volatile unsigned short *)SPORT1_RCR1)
|
||||
#define pSPORT1_RCR2 ((volatile unsigned short *)SPORT1_RCR2)
|
||||
#define pSPORT1_RCLKDIV ((volatile unsigned short *)SPORT1_RCLKDIV)
|
||||
#define pSPORT1_RFSDIV ((volatile unsigned short *)SPORT1_RFSDIV)
|
||||
#define pSPORT1_STAT ((volatile unsigned short *)SPORT1_STAT)
|
||||
#define pSPORT1_CHNL ((volatile unsigned short *)SPORT1_CHNL)
|
||||
#define pSPORT1_MCMC1 ((volatile unsigned short *)SPORT1_MCMC1)
|
||||
#define pSPORT1_MCMC2 ((volatile unsigned short *)SPORT1_MCMC2)
|
||||
#define pSPORT1_MTCS0 ((volatile unsigned long *)SPORT1_MTCS0)
|
||||
#define pSPORT1_MTCS1 ((volatile unsigned long *)SPORT1_MTCS1)
|
||||
#define pSPORT1_MTCS2 ((volatile unsigned long *)SPORT1_MTCS2)
|
||||
#define pSPORT1_MTCS3 ((volatile unsigned long *)SPORT1_MTCS3)
|
||||
#define pSPORT1_MRCS0 ((volatile unsigned long *)SPORT1_MRCS0)
|
||||
#define pSPORT1_MRCS1 ((volatile unsigned long *)SPORT1_MRCS1)
|
||||
#define pSPORT1_MRCS2 ((volatile unsigned long *)SPORT1_MRCS2)
|
||||
#define pSPORT1_MRCS3 ((volatile unsigned long *)SPORT1_MRCS3)
|
||||
|
||||
|
||||
/* External Bus Interface Unit (0xFFC00A00 - 0xFFC00AFF) */
|
||||
#define pEBIU_AMGCTL ((volatile unsigned short *)EBIU_AMGCTL)
|
||||
#define pEBIU_AMBCTL0 ((volatile unsigned long *)EBIU_AMBCTL0)
|
||||
#define pEBIU_AMBCTL1 ((volatile unsigned long *)EBIU_AMBCTL1)
|
||||
#define pEBIU_SDGCTL ((volatile unsigned long *)EBIU_SDGCTL)
|
||||
#define pEBIU_SDBCTL ((volatile unsigned short *)EBIU_SDBCTL)
|
||||
#define pEBIU_SDRRC ((volatile unsigned short *)EBIU_SDRRC)
|
||||
#define pEBIU_SDSTAT ((volatile unsigned short *)EBIU_SDSTAT)
|
||||
|
||||
|
||||
/* DMA Traffic Control Registers */
|
||||
#define pDMA_TC_PER ((volatile unsigned short *)DMA_TC_PER)
|
||||
#define pDMA_TC_CNT ((volatile unsigned short *)DMA_TC_CNT)
|
||||
|
||||
/* Alternate deprecated register names (below) provided for backwards code compatibility */
|
||||
#define pDMA_TCPER ((volatile unsigned short *)DMA_TCPER)
|
||||
#define pDMA_TCCNT ((volatile unsigned short *)DMA_TCCNT)
|
||||
|
||||
/* DMA Controller */
|
||||
#define pDMA0_CONFIG ((volatile unsigned short *)DMA0_CONFIG)
|
||||
#define pDMA0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA0_NEXT_DESC_PTR)
|
||||
#define pDMA0_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA0_START_ADDR)
|
||||
#define pDMA0_X_COUNT ((volatile unsigned short *)DMA0_X_COUNT)
|
||||
#define pDMA0_Y_COUNT ((volatile unsigned short *)DMA0_Y_COUNT)
|
||||
#define pDMA0_X_MODIFY ((volatile signed short *)DMA0_X_MODIFY)
|
||||
#define pDMA0_Y_MODIFY ((volatile signed short *)DMA0_Y_MODIFY)
|
||||
#define pDMA0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA0_CURR_DESC_PTR)
|
||||
#define pDMA0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA0_CURR_ADDR)
|
||||
#define pDMA0_CURR_X_COUNT ((volatile unsigned short *)DMA0_CURR_X_COUNT)
|
||||
#define pDMA0_CURR_Y_COUNT ((volatile unsigned short *)DMA0_CURR_Y_COUNT)
|
||||
#define pDMA0_IRQ_STATUS ((volatile unsigned short *)DMA0_IRQ_STATUS)
|
||||
#define pDMA0_PERIPHERAL_MAP ((volatile unsigned short *)DMA0_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA1_CONFIG ((volatile unsigned short *)DMA1_CONFIG)
|
||||
#define pDMA1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA1_NEXT_DESC_PTR)
|
||||
#define pDMA1_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA1_START_ADDR)
|
||||
#define pDMA1_X_COUNT ((volatile unsigned short *)DMA1_X_COUNT)
|
||||
#define pDMA1_Y_COUNT ((volatile unsigned short *)DMA1_Y_COUNT)
|
||||
#define pDMA1_X_MODIFY ((volatile signed short *)DMA1_X_MODIFY)
|
||||
#define pDMA1_Y_MODIFY ((volatile signed short *)DMA1_Y_MODIFY)
|
||||
#define pDMA1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA1_CURR_DESC_PTR)
|
||||
#define pDMA1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA1_CURR_ADDR)
|
||||
#define pDMA1_CURR_X_COUNT ((volatile unsigned short *)DMA1_CURR_X_COUNT)
|
||||
#define pDMA1_CURR_Y_COUNT ((volatile unsigned short *)DMA1_CURR_Y_COUNT)
|
||||
#define pDMA1_IRQ_STATUS ((volatile unsigned short *)DMA1_IRQ_STATUS)
|
||||
#define pDMA1_PERIPHERAL_MAP ((volatile unsigned short *)DMA1_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA2_CONFIG ((volatile unsigned short *)DMA2_CONFIG)
|
||||
#define pDMA2_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA2_NEXT_DESC_PTR)
|
||||
#define pDMA2_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA2_START_ADDR)
|
||||
#define pDMA2_X_COUNT ((volatile unsigned short *)DMA2_X_COUNT)
|
||||
#define pDMA2_Y_COUNT ((volatile unsigned short *)DMA2_Y_COUNT)
|
||||
#define pDMA2_X_MODIFY ((volatile signed short *)DMA2_X_MODIFY)
|
||||
#define pDMA2_Y_MODIFY ((volatile signed short *)DMA2_Y_MODIFY)
|
||||
#define pDMA2_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA2_CURR_DESC_PTR)
|
||||
#define pDMA2_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA2_CURR_ADDR)
|
||||
#define pDMA2_CURR_X_COUNT ((volatile unsigned short *)DMA2_CURR_X_COUNT)
|
||||
#define pDMA2_CURR_Y_COUNT ((volatile unsigned short *)DMA2_CURR_Y_COUNT)
|
||||
#define pDMA2_IRQ_STATUS ((volatile unsigned short *)DMA2_IRQ_STATUS)
|
||||
#define pDMA2_PERIPHERAL_MAP ((volatile unsigned short *)DMA2_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA3_CONFIG ((volatile unsigned short *)DMA3_CONFIG)
|
||||
#define pDMA3_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA3_NEXT_DESC_PTR)
|
||||
#define pDMA3_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA3_START_ADDR)
|
||||
#define pDMA3_X_COUNT ((volatile unsigned short *)DMA3_X_COUNT)
|
||||
#define pDMA3_Y_COUNT ((volatile unsigned short *)DMA3_Y_COUNT)
|
||||
#define pDMA3_X_MODIFY ((volatile signed short *)DMA3_X_MODIFY)
|
||||
#define pDMA3_Y_MODIFY ((volatile signed short *)DMA3_Y_MODIFY)
|
||||
#define pDMA3_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA3_CURR_DESC_PTR)
|
||||
#define pDMA3_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA3_CURR_ADDR)
|
||||
#define pDMA3_CURR_X_COUNT ((volatile unsigned short *)DMA3_CURR_X_COUNT)
|
||||
#define pDMA3_CURR_Y_COUNT ((volatile unsigned short *)DMA3_CURR_Y_COUNT)
|
||||
#define pDMA3_IRQ_STATUS ((volatile unsigned short *)DMA3_IRQ_STATUS)
|
||||
#define pDMA3_PERIPHERAL_MAP ((volatile unsigned short *)DMA3_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA4_CONFIG ((volatile unsigned short *)DMA4_CONFIG)
|
||||
#define pDMA4_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA4_NEXT_DESC_PTR)
|
||||
#define pDMA4_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA4_START_ADDR)
|
||||
#define pDMA4_X_COUNT ((volatile unsigned short *)DMA4_X_COUNT)
|
||||
#define pDMA4_Y_COUNT ((volatile unsigned short *)DMA4_Y_COUNT)
|
||||
#define pDMA4_X_MODIFY ((volatile signed short *)DMA4_X_MODIFY)
|
||||
#define pDMA4_Y_MODIFY ((volatile signed short *)DMA4_Y_MODIFY)
|
||||
#define pDMA4_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA4_CURR_DESC_PTR)
|
||||
#define pDMA4_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA4_CURR_ADDR)
|
||||
#define pDMA4_CURR_X_COUNT ((volatile unsigned short *)DMA4_CURR_X_COUNT)
|
||||
#define pDMA4_CURR_Y_COUNT ((volatile unsigned short *)DMA4_CURR_Y_COUNT)
|
||||
#define pDMA4_IRQ_STATUS ((volatile unsigned short *)DMA4_IRQ_STATUS)
|
||||
#define pDMA4_PERIPHERAL_MAP ((volatile unsigned short *)DMA4_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA5_CONFIG ((volatile unsigned short *)DMA5_CONFIG)
|
||||
#define pDMA5_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA5_NEXT_DESC_PTR)
|
||||
#define pDMA5_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA5_START_ADDR)
|
||||
#define pDMA5_X_COUNT ((volatile unsigned short *)DMA5_X_COUNT)
|
||||
#define pDMA5_Y_COUNT ((volatile unsigned short *)DMA5_Y_COUNT)
|
||||
#define pDMA5_X_MODIFY ((volatile signed short *)DMA5_X_MODIFY)
|
||||
#define pDMA5_Y_MODIFY ((volatile signed short *)DMA5_Y_MODIFY)
|
||||
#define pDMA5_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA5_CURR_DESC_PTR)
|
||||
#define pDMA5_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA5_CURR_ADDR)
|
||||
#define pDMA5_CURR_X_COUNT ((volatile unsigned short *)DMA5_CURR_X_COUNT)
|
||||
#define pDMA5_CURR_Y_COUNT ((volatile unsigned short *)DMA5_CURR_Y_COUNT)
|
||||
#define pDMA5_IRQ_STATUS ((volatile unsigned short *)DMA5_IRQ_STATUS)
|
||||
#define pDMA5_PERIPHERAL_MAP ((volatile unsigned short *)DMA5_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA6_CONFIG ((volatile unsigned short *)DMA6_CONFIG)
|
||||
#define pDMA6_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA6_NEXT_DESC_PTR)
|
||||
#define pDMA6_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA6_START_ADDR)
|
||||
#define pDMA6_X_COUNT ((volatile unsigned short *)DMA6_X_COUNT)
|
||||
#define pDMA6_Y_COUNT ((volatile unsigned short *)DMA6_Y_COUNT)
|
||||
#define pDMA6_X_MODIFY ((volatile signed short *)DMA6_X_MODIFY)
|
||||
#define pDMA6_Y_MODIFY ((volatile signed short *)DMA6_Y_MODIFY)
|
||||
#define pDMA6_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA6_CURR_DESC_PTR)
|
||||
#define pDMA6_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA6_CURR_ADDR)
|
||||
#define pDMA6_CURR_X_COUNT ((volatile unsigned short *)DMA6_CURR_X_COUNT)
|
||||
#define pDMA6_CURR_Y_COUNT ((volatile unsigned short *)DMA6_CURR_Y_COUNT)
|
||||
#define pDMA6_IRQ_STATUS ((volatile unsigned short *)DMA6_IRQ_STATUS)
|
||||
#define pDMA6_PERIPHERAL_MAP ((volatile unsigned short *)DMA6_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA7_CONFIG ((volatile unsigned short *)DMA7_CONFIG)
|
||||
#define pDMA7_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA7_NEXT_DESC_PTR)
|
||||
#define pDMA7_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA7_START_ADDR)
|
||||
#define pDMA7_X_COUNT ((volatile unsigned short *)DMA7_X_COUNT)
|
||||
#define pDMA7_Y_COUNT ((volatile unsigned short *)DMA7_Y_COUNT)
|
||||
#define pDMA7_X_MODIFY ((volatile signed short *)DMA7_X_MODIFY)
|
||||
#define pDMA7_Y_MODIFY ((volatile signed short *)DMA7_Y_MODIFY)
|
||||
#define pDMA7_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA7_CURR_DESC_PTR)
|
||||
#define pDMA7_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA7_CURR_ADDR)
|
||||
#define pDMA7_CURR_X_COUNT ((volatile unsigned short *)DMA7_CURR_X_COUNT)
|
||||
#define pDMA7_CURR_Y_COUNT ((volatile unsigned short *)DMA7_CURR_Y_COUNT)
|
||||
#define pDMA7_IRQ_STATUS ((volatile unsigned short *)DMA7_IRQ_STATUS)
|
||||
#define pDMA7_PERIPHERAL_MAP ((volatile unsigned short *)DMA7_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA8_CONFIG ((volatile unsigned short *)DMA8_CONFIG)
|
||||
#define pDMA8_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA8_NEXT_DESC_PTR)
|
||||
#define pDMA8_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA8_START_ADDR)
|
||||
#define pDMA8_X_COUNT ((volatile unsigned short *)DMA8_X_COUNT)
|
||||
#define pDMA8_Y_COUNT ((volatile unsigned short *)DMA8_Y_COUNT)
|
||||
#define pDMA8_X_MODIFY ((volatile signed short *)DMA8_X_MODIFY)
|
||||
#define pDMA8_Y_MODIFY ((volatile signed short *)DMA8_Y_MODIFY)
|
||||
#define pDMA8_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA8_CURR_DESC_PTR)
|
||||
#define pDMA8_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA8_CURR_ADDR)
|
||||
#define pDMA8_CURR_X_COUNT ((volatile unsigned short *)DMA8_CURR_X_COUNT)
|
||||
#define pDMA8_CURR_Y_COUNT ((volatile unsigned short *)DMA8_CURR_Y_COUNT)
|
||||
#define pDMA8_IRQ_STATUS ((volatile unsigned short *)DMA8_IRQ_STATUS)
|
||||
#define pDMA8_PERIPHERAL_MAP ((volatile unsigned short *)DMA8_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA9_CONFIG ((volatile unsigned short *)DMA9_CONFIG)
|
||||
#define pDMA9_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA9_NEXT_DESC_PTR)
|
||||
#define pDMA9_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA9_START_ADDR)
|
||||
#define pDMA9_X_COUNT ((volatile unsigned short *)DMA9_X_COUNT)
|
||||
#define pDMA9_Y_COUNT ((volatile unsigned short *)DMA9_Y_COUNT)
|
||||
#define pDMA9_X_MODIFY ((volatile signed short *)DMA9_X_MODIFY)
|
||||
#define pDMA9_Y_MODIFY ((volatile signed short *)DMA9_Y_MODIFY)
|
||||
#define pDMA9_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA9_CURR_DESC_PTR)
|
||||
#define pDMA9_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA9_CURR_ADDR)
|
||||
#define pDMA9_CURR_X_COUNT ((volatile unsigned short *)DMA9_CURR_X_COUNT)
|
||||
#define pDMA9_CURR_Y_COUNT ((volatile unsigned short *)DMA9_CURR_Y_COUNT)
|
||||
#define pDMA9_IRQ_STATUS ((volatile unsigned short *)DMA9_IRQ_STATUS)
|
||||
#define pDMA9_PERIPHERAL_MAP ((volatile unsigned short *)DMA9_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA10_CONFIG ((volatile unsigned short *)DMA10_CONFIG)
|
||||
#define pDMA10_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA10_NEXT_DESC_PTR)
|
||||
#define pDMA10_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA10_START_ADDR)
|
||||
#define pDMA10_X_COUNT ((volatile unsigned short *)DMA10_X_COUNT)
|
||||
#define pDMA10_Y_COUNT ((volatile unsigned short *)DMA10_Y_COUNT)
|
||||
#define pDMA10_X_MODIFY ((volatile signed short *)DMA10_X_MODIFY)
|
||||
#define pDMA10_Y_MODIFY ((volatile signed short *)DMA10_Y_MODIFY)
|
||||
#define pDMA10_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA10_CURR_DESC_PTR)
|
||||
#define pDMA10_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA10_CURR_ADDR)
|
||||
#define pDMA10_CURR_X_COUNT ((volatile unsigned short *)DMA10_CURR_X_COUNT)
|
||||
#define pDMA10_CURR_Y_COUNT ((volatile unsigned short *)DMA10_CURR_Y_COUNT)
|
||||
#define pDMA10_IRQ_STATUS ((volatile unsigned short *)DMA10_IRQ_STATUS)
|
||||
#define pDMA10_PERIPHERAL_MAP ((volatile unsigned short *)DMA10_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA11_CONFIG ((volatile unsigned short *)DMA11_CONFIG)
|
||||
#define pDMA11_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA11_NEXT_DESC_PTR)
|
||||
#define pDMA11_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA11_START_ADDR)
|
||||
#define pDMA11_X_COUNT ((volatile unsigned short *)DMA11_X_COUNT)
|
||||
#define pDMA11_Y_COUNT ((volatile unsigned short *)DMA11_Y_COUNT)
|
||||
#define pDMA11_X_MODIFY ((volatile signed short *)DMA11_X_MODIFY)
|
||||
#define pDMA11_Y_MODIFY ((volatile signed short *)DMA11_Y_MODIFY)
|
||||
#define pDMA11_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA11_CURR_DESC_PTR)
|
||||
#define pDMA11_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA11_CURR_ADDR)
|
||||
#define pDMA11_CURR_X_COUNT ((volatile unsigned short *)DMA11_CURR_X_COUNT)
|
||||
#define pDMA11_CURR_Y_COUNT ((volatile unsigned short *)DMA11_CURR_Y_COUNT)
|
||||
#define pDMA11_IRQ_STATUS ((volatile unsigned short *)DMA11_IRQ_STATUS)
|
||||
#define pDMA11_PERIPHERAL_MAP ((volatile unsigned short *)DMA11_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_D0_CONFIG ((volatile unsigned short *)MDMA_D0_CONFIG)
|
||||
#define pMDMA_D0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D0_NEXT_DESC_PTR)
|
||||
#define pMDMA_D0_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D0_START_ADDR)
|
||||
#define pMDMA_D0_X_COUNT ((volatile unsigned short *)MDMA_D0_X_COUNT)
|
||||
#define pMDMA_D0_Y_COUNT ((volatile unsigned short *)MDMA_D0_Y_COUNT)
|
||||
#define pMDMA_D0_X_MODIFY ((volatile signed short *)MDMA_D0_X_MODIFY)
|
||||
#define pMDMA_D0_Y_MODIFY ((volatile signed short *)MDMA_D0_Y_MODIFY)
|
||||
#define pMDMA_D0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D0_CURR_DESC_PTR)
|
||||
#define pMDMA_D0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D0_CURR_ADDR)
|
||||
#define pMDMA_D0_CURR_X_COUNT ((volatile unsigned short *)MDMA_D0_CURR_X_COUNT)
|
||||
#define pMDMA_D0_CURR_Y_COUNT ((volatile unsigned short *)MDMA_D0_CURR_Y_COUNT)
|
||||
#define pMDMA_D0_IRQ_STATUS ((volatile unsigned short *)MDMA_D0_IRQ_STATUS)
|
||||
#define pMDMA_D0_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_D0_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_S0_CONFIG ((volatile unsigned short *)MDMA_S0_CONFIG)
|
||||
#define pMDMA_S0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S0_NEXT_DESC_PTR)
|
||||
#define pMDMA_S0_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S0_START_ADDR)
|
||||
#define pMDMA_S0_X_COUNT ((volatile unsigned short *)MDMA_S0_X_COUNT)
|
||||
#define pMDMA_S0_Y_COUNT ((volatile unsigned short *)MDMA_S0_Y_COUNT)
|
||||
#define pMDMA_S0_X_MODIFY ((volatile signed short *)MDMA_S0_X_MODIFY)
|
||||
#define pMDMA_S0_Y_MODIFY ((volatile signed short *)MDMA_S0_Y_MODIFY)
|
||||
#define pMDMA_S0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S0_CURR_DESC_PTR)
|
||||
#define pMDMA_S0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S0_CURR_ADDR)
|
||||
#define pMDMA_S0_CURR_X_COUNT ((volatile unsigned short *)MDMA_S0_CURR_X_COUNT)
|
||||
#define pMDMA_S0_CURR_Y_COUNT ((volatile unsigned short *)MDMA_S0_CURR_Y_COUNT)
|
||||
#define pMDMA_S0_IRQ_STATUS ((volatile unsigned short *)MDMA_S0_IRQ_STATUS)
|
||||
#define pMDMA_S0_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_S0_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_D1_CONFIG ((volatile unsigned short *)MDMA_D1_CONFIG)
|
||||
#define pMDMA_D1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D1_NEXT_DESC_PTR)
|
||||
#define pMDMA_D1_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D1_START_ADDR)
|
||||
#define pMDMA_D1_X_COUNT ((volatile unsigned short *)MDMA_D1_X_COUNT)
|
||||
#define pMDMA_D1_Y_COUNT ((volatile unsigned short *)MDMA_D1_Y_COUNT)
|
||||
#define pMDMA_D1_X_MODIFY ((volatile signed short *)MDMA_D1_X_MODIFY)
|
||||
#define pMDMA_D1_Y_MODIFY ((volatile signed short *)MDMA_D1_Y_MODIFY)
|
||||
#define pMDMA_D1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D1_CURR_DESC_PTR)
|
||||
#define pMDMA_D1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D1_CURR_ADDR)
|
||||
#define pMDMA_D1_CURR_X_COUNT ((volatile unsigned short *)MDMA_D1_CURR_X_COUNT)
|
||||
#define pMDMA_D1_CURR_Y_COUNT ((volatile unsigned short *)MDMA_D1_CURR_Y_COUNT)
|
||||
#define pMDMA_D1_IRQ_STATUS ((volatile unsigned short *)MDMA_D1_IRQ_STATUS)
|
||||
#define pMDMA_D1_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_D1_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_S1_CONFIG ((volatile unsigned short *)MDMA_S1_CONFIG)
|
||||
#define pMDMA_S1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S1_NEXT_DESC_PTR)
|
||||
#define pMDMA_S1_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S1_START_ADDR)
|
||||
#define pMDMA_S1_X_COUNT ((volatile unsigned short *)MDMA_S1_X_COUNT)
|
||||
#define pMDMA_S1_Y_COUNT ((volatile unsigned short *)MDMA_S1_Y_COUNT)
|
||||
#define pMDMA_S1_X_MODIFY ((volatile signed short *)MDMA_S1_X_MODIFY)
|
||||
#define pMDMA_S1_Y_MODIFY ((volatile signed short *)MDMA_S1_Y_MODIFY)
|
||||
#define pMDMA_S1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S1_CURR_DESC_PTR)
|
||||
#define pMDMA_S1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S1_CURR_ADDR)
|
||||
#define pMDMA_S1_CURR_X_COUNT ((volatile unsigned short *)MDMA_S1_CURR_X_COUNT)
|
||||
#define pMDMA_S1_CURR_Y_COUNT ((volatile unsigned short *)MDMA_S1_CURR_Y_COUNT)
|
||||
#define pMDMA_S1_IRQ_STATUS ((volatile unsigned short *)MDMA_S1_IRQ_STATUS)
|
||||
#define pMDMA_S1_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_S1_PERIPHERAL_MAP)
|
||||
|
||||
|
||||
/* Parallel Peripheral Interface (0xFFC01000 - 0xFFC010FF) */
|
||||
#define pPPI_CONTROL ((volatile unsigned short *)PPI_CONTROL)
|
||||
#define pPPI_STATUS ((volatile unsigned short *)PPI_STATUS)
|
||||
#define pPPI_DELAY ((volatile unsigned short *)PPI_DELAY)
|
||||
#define pPPI_COUNT ((volatile unsigned short *)PPI_COUNT)
|
||||
#define pPPI_FRAME ((volatile unsigned short *)PPI_FRAME)
|
||||
|
||||
|
||||
/* Two-Wire Interface (0xFFC01400 - 0xFFC014FF) */
|
||||
#define pTWI_CLKDIV ((volatile unsigned short *)TWI_CLKDIV)
|
||||
#define pTWI_CONTROL ((volatile unsigned short *)TWI_CONTROL)
|
||||
#define pTWI_SLAVE_CTL ((volatile unsigned short *)TWI_SLAVE_CTL)
|
||||
#define pTWI_SLAVE_STAT ((volatile unsigned short *)TWI_SLAVE_STAT)
|
||||
#define pTWI_SLAVE_ADDR ((volatile unsigned short *)TWI_SLAVE_ADDR)
|
||||
#define pTWI_MASTER_CTL ((volatile unsigned short *)TWI_MASTER_CTL)
|
||||
#define pTWI_MASTER_STAT ((volatile unsigned short *)TWI_MASTER_STAT)
|
||||
#define pTWI_MASTER_ADDR ((volatile unsigned short *)TWI_MASTER_ADDR)
|
||||
#define pTWI_INT_STAT ((volatile unsigned short *)TWI_INT_STAT)
|
||||
#define pTWI_INT_MASK ((volatile unsigned short *)TWI_INT_MASK)
|
||||
#define pTWI_FIFO_CTL ((volatile unsigned short *)TWI_FIFO_CTL)
|
||||
#define pTWI_FIFO_STAT ((volatile unsigned short *)TWI_FIFO_STAT)
|
||||
#define pTWI_XMT_DATA8 ((volatile unsigned short *)TWI_XMT_DATA8)
|
||||
#define pTWI_XMT_DATA16 ((volatile unsigned short *)TWI_XMT_DATA16)
|
||||
#define pTWI_RCV_DATA8 ((volatile unsigned short *)TWI_RCV_DATA8)
|
||||
#define pTWI_RCV_DATA16 ((volatile unsigned short *)TWI_RCV_DATA16)
|
||||
|
||||
|
||||
/* General Purpose I/O Port G (0xFFC01500 - 0xFFC015FF) */
|
||||
#define pPORTGIO ((volatile unsigned short *)PORTGIO)
|
||||
#define pPORTGIO_CLEAR ((volatile unsigned short *)PORTGIO_CLEAR)
|
||||
#define pPORTGIO_SET ((volatile unsigned short *)PORTGIO_SET)
|
||||
#define pPORTGIO_TOGGLE ((volatile unsigned short *)PORTGIO_TOGGLE)
|
||||
#define pPORTGIO_MASKA ((volatile unsigned short *)PORTGIO_MASKA)
|
||||
#define pPORTGIO_MASKA_CLEAR ((volatile unsigned short *)PORTGIO_MASKA_CLEAR)
|
||||
#define pPORTGIO_MASKA_SET ((volatile unsigned short *)PORTGIO_MASKA_SET)
|
||||
#define pPORTGIO_MASKA_TOGGLE ((volatile unsigned short *)PORTGIO_MASKA_TOGGLE)
|
||||
#define pPORTGIO_MASKB ((volatile unsigned short *)PORTGIO_MASKB)
|
||||
#define pPORTGIO_MASKB_CLEAR ((volatile unsigned short *)PORTGIO_MASKB_CLEAR)
|
||||
#define pPORTGIO_MASKB_SET ((volatile unsigned short *)PORTGIO_MASKB_SET)
|
||||
#define pPORTGIO_MASKB_TOGGLE ((volatile unsigned short *)PORTGIO_MASKB_TOGGLE)
|
||||
#define pPORTGIO_DIR ((volatile unsigned short *)PORTGIO_DIR)
|
||||
#define pPORTGIO_POLAR ((volatile unsigned short *)PORTGIO_POLAR)
|
||||
#define pPORTGIO_EDGE ((volatile unsigned short *)PORTGIO_EDGE)
|
||||
#define pPORTGIO_BOTH ((volatile unsigned short *)PORTGIO_BOTH)
|
||||
#define pPORTGIO_INEN ((volatile unsigned short *)PORTGIO_INEN)
|
||||
|
||||
|
||||
/* General Purpose I/O Port H (0xFFC01700 - 0xFFC017FF) */
|
||||
#define pPORTHIO ((volatile unsigned short *)PORTHIO)
|
||||
#define pPORTHIO_CLEAR ((volatile unsigned short *)PORTHIO_CLEAR)
|
||||
#define pPORTHIO_SET ((volatile unsigned short *)PORTHIO_SET)
|
||||
#define pPORTHIO_TOGGLE ((volatile unsigned short *)PORTHIO_TOGGLE)
|
||||
#define pPORTHIO_MASKA ((volatile unsigned short *)PORTHIO_MASKA)
|
||||
#define pPORTHIO_MASKA_CLEAR ((volatile unsigned short *)PORTHIO_MASKA_CLEAR)
|
||||
#define pPORTHIO_MASKA_SET ((volatile unsigned short *)PORTHIO_MASKA_SET)
|
||||
#define pPORTHIO_MASKA_TOGGLE ((volatile unsigned short *)PORTHIO_MASKA_TOGGLE)
|
||||
#define pPORTHIO_MASKB ((volatile unsigned short *)PORTHIO_MASKB)
|
||||
#define pPORTHIO_MASKB_CLEAR ((volatile unsigned short *)PORTHIO_MASKB_CLEAR)
|
||||
#define pPORTHIO_MASKB_SET ((volatile unsigned short *)PORTHIO_MASKB_SET)
|
||||
#define pPORTHIO_MASKB_TOGGLE ((volatile unsigned short *)PORTHIO_MASKB_TOGGLE)
|
||||
#define pPORTHIO_DIR ((volatile unsigned short *)PORTHIO_DIR)
|
||||
#define pPORTHIO_POLAR ((volatile unsigned short *)PORTHIO_POLAR)
|
||||
#define pPORTHIO_EDGE ((volatile unsigned short *)PORTHIO_EDGE)
|
||||
#define pPORTHIO_BOTH ((volatile unsigned short *)PORTHIO_BOTH)
|
||||
#define pPORTHIO_INEN ((volatile unsigned short *)PORTHIO_INEN)
|
||||
|
||||
|
||||
/* UART1 Controller (0xFFC02000 - 0xFFC020FF) */
|
||||
#define pUART1_THR ((volatile unsigned short *)UART1_THR)
|
||||
#define pUART1_RBR ((volatile unsigned short *)UART1_RBR)
|
||||
#define pUART1_DLL ((volatile unsigned short *)UART1_DLL)
|
||||
#define pUART1_IER ((volatile unsigned short *)UART1_IER)
|
||||
#define pUART1_DLH ((volatile unsigned short *)UART1_DLH)
|
||||
#define pUART1_IIR ((volatile unsigned short *)UART1_IIR)
|
||||
#define pUART1_LCR ((volatile unsigned short *)UART1_LCR)
|
||||
#define pUART1_MCR ((volatile unsigned short *)UART1_MCR)
|
||||
#define pUART1_LSR ((volatile unsigned short *)UART1_LSR)
|
||||
#define pUART1_SCR ((volatile unsigned short *)UART1_SCR)
|
||||
#define pUART1_GCTL ((volatile unsigned short *)UART1_GCTL)
|
||||
|
||||
/* Omit CAN register sets from the cdefBF534.h (CAN is not in the ADSP-BF52x processor) */
|
||||
|
||||
/* Pin Control Registers (0xFFC03200 - 0xFFC032FF) */
|
||||
#define pPORTF_FER ((volatile unsigned short *)PORTF_FER)
|
||||
#define pPORTG_FER ((volatile unsigned short *)PORTG_FER)
|
||||
#define pPORTH_FER ((volatile unsigned short *)PORTH_FER)
|
||||
|
||||
|
||||
/* Handshake MDMA Registers (0xFFC03300 - 0xFFC033FF) */
|
||||
#define pHMDMA0_CONTROL ((volatile unsigned short *)HMDMA0_CONTROL)
|
||||
#define pHMDMA0_ECINIT ((volatile unsigned short *)HMDMA0_ECINIT)
|
||||
#define pHMDMA0_BCINIT ((volatile unsigned short *)HMDMA0_BCINIT)
|
||||
#define pHMDMA0_ECURGENT ((volatile unsigned short *)HMDMA0_ECURGENT)
|
||||
#define pHMDMA0_ECOVERFLOW ((volatile unsigned short *)HMDMA0_ECOVERFLOW)
|
||||
#define pHMDMA0_ECOUNT ((volatile unsigned short *)HMDMA0_ECOUNT)
|
||||
#define pHMDMA0_BCOUNT ((volatile unsigned short *)HMDMA0_BCOUNT)
|
||||
|
||||
#define pHMDMA1_CONTROL ((volatile unsigned short *)HMDMA1_CONTROL)
|
||||
#define pHMDMA1_ECINIT ((volatile unsigned short *)HMDMA1_ECINIT)
|
||||
#define pHMDMA1_BCINIT ((volatile unsigned short *)HMDMA1_BCINIT)
|
||||
#define pHMDMA1_ECURGENT ((volatile unsigned short *)HMDMA1_ECURGENT)
|
||||
#define pHMDMA1_ECOVERFLOW ((volatile unsigned short *)HMDMA1_ECOVERFLOW)
|
||||
#define pHMDMA1_ECOUNT ((volatile unsigned short *)HMDMA1_ECOUNT)
|
||||
#define pHMDMA1_BCOUNT ((volatile unsigned short *)HMDMA1_BCOUNT)
|
||||
|
||||
/* ==== end from cdefBF534.h ==== */
|
||||
|
||||
/* GPIO PIN mux (0xFFC03210 - OxFFC03288) */
|
||||
|
||||
#define pPORTF_MUX ((volatile unsigned short *)PORTF_MUX)
|
||||
#define pPORTG_MUX ((volatile unsigned short *)PORTG_MUX)
|
||||
#define pPORTH_MUX ((volatile unsigned short *)PORTH_MUX)
|
||||
|
||||
#define pPORTF_DRIVE ((volatile unsigned short *)PORTF_DRIVE)
|
||||
#define pPORTG_DRIVE ((volatile unsigned short *)PORTG_DRIVE)
|
||||
#define pPORTH_DRIVE ((volatile unsigned short *)PORTH_DRIVE)
|
||||
#define pPORTF_HYSTERESIS ((volatile unsigned short *)PORTF_HYSTERESIS)
|
||||
#define pPORTG_HYSTERESIS ((volatile unsigned short *)PORTG_HYSTERESIS)
|
||||
#define pPORTH_HYSTERESIS ((volatile unsigned short *)PORTH_HYSTERESIS)
|
||||
#define pNONGPIO_DRIVE ((volatile unsigned short *)NONGPIO_DRIVE)
|
||||
#define pNONGPIO_HYSTERESIS ((volatile unsigned short *)NONGPIO_HYSTERESIS)
|
||||
|
||||
/* HOST Port Registers */
|
||||
|
||||
#define pHOST_CONTROL ((volatile unsigned short *)HOST_CONTROL)
|
||||
#define pHOST_STATUS ((volatile unsigned short *)HOST_STATUS)
|
||||
#define pHOST_TIMEOUT ((volatile unsigned short *)HOST_TIMEOUT)
|
||||
|
||||
/* Counter Registers */
|
||||
|
||||
#define pCNT_CONFIG ((volatile unsigned short *)CNT_CONFIG)
|
||||
#define pCNT_IMASK ((volatile unsigned short *)CNT_IMASK)
|
||||
#define pCNT_STATUS ((volatile unsigned short *)CNT_STATUS)
|
||||
#define pCNT_COMMAND ((volatile unsigned short *)CNT_COMMAND)
|
||||
#define pCNT_DEBOUNCE ((volatile unsigned short *)CNT_DEBOUNCE)
|
||||
#define pCNT_COUNTER ((volatile unsigned long *)CNT_COUNTER)
|
||||
#define pCNT_MAX ((volatile unsigned long *)CNT_MAX)
|
||||
#define pCNT_MIN ((volatile unsigned long *)CNT_MIN)
|
||||
|
||||
/* Security Registers */
|
||||
|
||||
#define pSECURE_SYSSWT ((volatile unsigned long *)SECURE_SYSSWT)
|
||||
#define pSECURE_CONTROL ((volatile unsigned short *)SECURE_CONTROL)
|
||||
#define pSECURE_STATUS ((volatile unsigned short *)SECURE_STATUS)
|
||||
|
||||
/* OTP Read/Write Data Buffer Registers */
|
||||
|
||||
#define pOTP_DATA0 ((volatile unsigned long *)OTP_DATA0)
|
||||
#define pOTP_DATA1 ((volatile unsigned long *)OTP_DATA1)
|
||||
#define pOTP_DATA2 ((volatile unsigned long *)OTP_DATA2)
|
||||
#define pOTP_DATA3 ((volatile unsigned long *)OTP_DATA3)
|
||||
|
||||
/* NFC Registers */
|
||||
|
||||
#define pNFC_CTL ((volatile unsigned short *)NFC_CTL)
|
||||
#define pNFC_STAT ((volatile unsigned short *)NFC_STAT)
|
||||
#define pNFC_IRQSTAT ((volatile unsigned short *)NFC_IRQSTAT)
|
||||
#define pNFC_IRQMASK ((volatile unsigned short *)NFC_IRQMASK)
|
||||
#define pNFC_ECC0 ((volatile unsigned short *)NFC_ECC0)
|
||||
#define pNFC_ECC1 ((volatile unsigned short *)NFC_ECC1)
|
||||
#define pNFC_ECC2 ((volatile unsigned short *)NFC_ECC2)
|
||||
#define pNFC_ECC3 ((volatile unsigned short *)NFC_ECC3)
|
||||
#define pNFC_COUNT ((volatile unsigned short *)NFC_COUNT)
|
||||
#define pNFC_RST ((volatile unsigned short *)NFC_RST)
|
||||
#define pNFC_PGCTL ((volatile unsigned short *)NFC_PGCTL)
|
||||
#define pNFC_READ ((volatile unsigned short *)NFC_READ)
|
||||
#define pNFC_ADDR ((volatile unsigned short *)NFC_ADDR)
|
||||
#define pNFC_CMD ((volatile unsigned short *)NFC_CMD)
|
||||
#define pNFC_DATA_WR ((volatile unsigned short *)NFC_DATA_WR)
|
||||
#define pNFC_DATA_RD ((volatile unsigned short *)NFC_DATA_RD)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF52X_H */
|
26
gcc/libgloss/bfin/include/cdefBF531.h
Normal file
26
gcc/libgloss/bfin/include/cdefBF531.h
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/************************************************************************
|
||||
*
|
||||
* cdefBF531.h
|
||||
*
|
||||
* (c) Copyright 2002-2003 Analog Devices, Inc. All rights reserved.
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef _CDEFBF531_H
|
||||
#define _CDEFBF531_H
|
||||
|
||||
#include <cdefBF532.h>
|
||||
|
||||
#endif /* _CDEFBF531_H */
|
403
gcc/libgloss/bfin/include/cdefBF532.h
Normal file
403
gcc/libgloss/bfin/include/cdefBF532.h
Normal file
@ -0,0 +1,403 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/************************************************************************
|
||||
*
|
||||
* cdefBF532.h
|
||||
*
|
||||
* (c) Copyright 2001-2009 Analog Devices, Inc. All rights reserved.
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF532_H
|
||||
#define _CDEF_BF532_H
|
||||
|
||||
#if !defined(__ADSPLPBLACKFIN__)
|
||||
#warning cdefBF532.h should only be included for 532 compatible chips.
|
||||
#endif
|
||||
/* include all Core registers and bit definitions */
|
||||
#include <defBF532.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdef_LPBlackfin.h>
|
||||
|
||||
/* include built-in mneumonic macros */
|
||||
#include <ccblkfn.h>
|
||||
|
||||
#ifndef _PTR_TO_VOL_VOID_PTR
|
||||
#ifndef _USE_LEGACY_CDEF_BEHAVIOUR
|
||||
#define _PTR_TO_VOL_VOID_PTR (void * volatile *)
|
||||
#else
|
||||
#define _PTR_TO_VOL_VOID_PTR (volatile void **)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Clock/Regulator Control */
|
||||
#define pPLL_CTL ((volatile unsigned short *)PLL_CTL)
|
||||
#define pPLL_DIV ((volatile unsigned short *)PLL_DIV)
|
||||
#define pVR_CTL ((volatile unsigned short *)VR_CTL)
|
||||
#define pPLL_STAT ((volatile unsigned short *)PLL_STAT)
|
||||
#define pPLL_LOCKCNT ((volatile unsigned short *)PLL_LOCKCNT)
|
||||
#define pCHIPID ((volatile unsigned long *)CHIPID)
|
||||
|
||||
|
||||
/* System Interrupt Controller */
|
||||
#define pSWRST ((volatile unsigned short *)SWRST)
|
||||
#define pSYSCR ((volatile unsigned short *)SYSCR)
|
||||
#define pSIC_IMASK ((volatile unsigned long *)SIC_IMASK)
|
||||
#define pSIC_IAR0 ((volatile unsigned long *)SIC_IAR0)
|
||||
#define pSIC_IAR1 ((volatile unsigned long *)SIC_IAR1)
|
||||
#define pSIC_IAR2 ((volatile unsigned long *)SIC_IAR2)
|
||||
#define pSIC_ISR ((volatile unsigned long *)SIC_ISR)
|
||||
#define pSIC_IWR ((volatile unsigned long *)SIC_IWR)
|
||||
|
||||
|
||||
/* Watchdog Timer */
|
||||
#define pWDOG_CTL ((volatile unsigned short *)WDOG_CTL)
|
||||
#define pWDOG_CNT ((volatile unsigned long *)WDOG_CNT)
|
||||
#define pWDOG_STAT ((volatile unsigned long *)WDOG_STAT)
|
||||
|
||||
|
||||
/* Real Time Clock */
|
||||
#define pRTC_STAT ((volatile unsigned long *)RTC_STAT)
|
||||
#define pRTC_ICTL ((volatile unsigned short *)RTC_ICTL)
|
||||
#define pRTC_ISTAT ((volatile unsigned short *)RTC_ISTAT)
|
||||
#define pRTC_SWCNT ((volatile unsigned short *)RTC_SWCNT)
|
||||
#define pRTC_ALARM ((volatile unsigned long *)RTC_ALARM)
|
||||
#define pRTC_FAST ((volatile unsigned short *)RTC_FAST)
|
||||
#define pRTC_PREN ((volatile unsigned short *)RTC_PREN)
|
||||
|
||||
|
||||
/* UART Controller */
|
||||
#define pUART_THR ((volatile unsigned short *)UART_THR)
|
||||
#define pUART_RBR ((volatile unsigned short *)UART_RBR)
|
||||
#define pUART_DLL ((volatile unsigned short *)UART_DLL)
|
||||
#define pUART_IER ((volatile unsigned short *)UART_IER)
|
||||
#define pUART_DLH ((volatile unsigned short *)UART_DLH)
|
||||
#define pUART_IIR ((volatile unsigned short *)UART_IIR)
|
||||
#define pUART_LCR ((volatile unsigned short *)UART_LCR)
|
||||
#define pUART_MCR ((volatile unsigned short *)UART_MCR)
|
||||
#define pUART_LSR ((volatile unsigned short *)UART_LSR)
|
||||
#define pUART_SCR ((volatile unsigned short *)UART_SCR)
|
||||
#define pUART_GCTL ((volatile unsigned short *)UART_GCTL)
|
||||
|
||||
|
||||
/* SPI Controller */
|
||||
#define pSPI_CTL ((volatile unsigned short *)SPI_CTL)
|
||||
#define pSPI_FLG ((volatile unsigned short *)SPI_FLG)
|
||||
#define pSPI_STAT ((volatile unsigned short *)SPI_STAT)
|
||||
#define pSPI_TDBR ((volatile unsigned short *)SPI_TDBR)
|
||||
#define pSPI_RDBR ((volatile unsigned short *)SPI_RDBR)
|
||||
#define pSPI_BAUD ((volatile unsigned short *)SPI_BAUD)
|
||||
#define pSPI_SHADOW ((volatile unsigned short *)SPI_SHADOW)
|
||||
|
||||
|
||||
/* TIMER 0, 1, 2 Registers */
|
||||
#define pTIMER0_CONFIG ((volatile unsigned short *)TIMER0_CONFIG)
|
||||
#define pTIMER0_COUNTER ((volatile unsigned long *)TIMER0_COUNTER)
|
||||
#define pTIMER0_PERIOD ((volatile unsigned long *)TIMER0_PERIOD)
|
||||
#define pTIMER0_WIDTH ((volatile unsigned long *)TIMER0_WIDTH)
|
||||
|
||||
#define pTIMER1_CONFIG ((volatile unsigned short *)TIMER1_CONFIG)
|
||||
#define pTIMER1_COUNTER ((volatile unsigned long *)TIMER1_COUNTER)
|
||||
#define pTIMER1_PERIOD ((volatile unsigned long *)TIMER1_PERIOD)
|
||||
#define pTIMER1_WIDTH ((volatile unsigned long *)TIMER1_WIDTH)
|
||||
|
||||
#define pTIMER2_CONFIG ((volatile unsigned short *)TIMER2_CONFIG)
|
||||
#define pTIMER2_COUNTER ((volatile unsigned long *)TIMER2_COUNTER)
|
||||
#define pTIMER2_PERIOD ((volatile unsigned long *)TIMER2_PERIOD)
|
||||
#define pTIMER2_WIDTH ((volatile unsigned long *)TIMER2_WIDTH)
|
||||
|
||||
#define pTIMER_ENABLE ((volatile unsigned short *)TIMER_ENABLE)
|
||||
#define pTIMER_DISABLE ((volatile unsigned short *)TIMER_DISABLE)
|
||||
#define pTIMER_STATUS ((volatile unsigned short *)TIMER_STATUS)
|
||||
|
||||
|
||||
/* General Purpose IO */
|
||||
#define pFIO_FLAG_D ((volatile unsigned short *)FIO_FLAG_D)
|
||||
#define pFIO_FLAG_C ((volatile unsigned short *)FIO_FLAG_C)
|
||||
#define pFIO_FLAG_S ((volatile unsigned short *)FIO_FLAG_S)
|
||||
#define pFIO_FLAG_T ((volatile unsigned short *)FIO_FLAG_T)
|
||||
#define pFIO_MASKA_D ((volatile unsigned short *)FIO_MASKA_D)
|
||||
#define pFIO_MASKA_C ((volatile unsigned short *)FIO_MASKA_C)
|
||||
#define pFIO_MASKA_S ((volatile unsigned short *)FIO_MASKA_S)
|
||||
#define pFIO_MASKA_T ((volatile unsigned short *)FIO_MASKA_T)
|
||||
#define pFIO_MASKB_D ((volatile unsigned short *)FIO_MASKB_D)
|
||||
#define pFIO_MASKB_C ((volatile unsigned short *)FIO_MASKB_C)
|
||||
#define pFIO_MASKB_S ((volatile unsigned short *)FIO_MASKB_S)
|
||||
#define pFIO_MASKB_T ((volatile unsigned short *)FIO_MASKB_T)
|
||||
#define pFIO_DIR ((volatile unsigned short *)FIO_DIR)
|
||||
#define pFIO_POLAR ((volatile unsigned short *)FIO_POLAR)
|
||||
#define pFIO_EDGE ((volatile unsigned short *)FIO_EDGE)
|
||||
#define pFIO_BOTH ((volatile unsigned short *)FIO_BOTH)
|
||||
#define pFIO_INEN ((volatile unsigned short *)FIO_INEN)
|
||||
|
||||
|
||||
/* SPORT0 Controller */
|
||||
#define pSPORT0_TCR1 ((volatile unsigned short *)SPORT0_TCR1)
|
||||
#define pSPORT0_TCR2 ((volatile unsigned short *)SPORT0_TCR2)
|
||||
#define pSPORT0_TCLKDIV ((volatile unsigned short *)SPORT0_TCLKDIV)
|
||||
#define pSPORT0_TFSDIV ((volatile unsigned short *)SPORT0_TFSDIV)
|
||||
#define pSPORT0_TX ((volatile long *)SPORT0_TX)
|
||||
#define pSPORT0_RX ((volatile long *)SPORT0_RX)
|
||||
#define pSPORT0_TX32 ((volatile long *)SPORT0_TX)
|
||||
#define pSPORT0_RX32 ((volatile long *)SPORT0_RX)
|
||||
#define pSPORT0_TX16 ((volatile unsigned short *)SPORT0_TX)
|
||||
#define pSPORT0_RX16 ((volatile unsigned short *)SPORT0_RX)
|
||||
#define pSPORT0_RCR1 ((volatile unsigned short *)SPORT0_RCR1)
|
||||
#define pSPORT0_RCR2 ((volatile unsigned short *)SPORT0_RCR2)
|
||||
#define pSPORT0_RCLKDIV ((volatile unsigned short *)SPORT0_RCLKDIV)
|
||||
#define pSPORT0_RFSDIV ((volatile unsigned short *)SPORT0_RFSDIV)
|
||||
#define pSPORT0_STAT ((volatile unsigned short *)SPORT0_STAT)
|
||||
#define pSPORT0_CHNL ((volatile unsigned short *)SPORT0_CHNL)
|
||||
#define pSPORT0_MCMC1 ((volatile unsigned short *)SPORT0_MCMC1)
|
||||
#define pSPORT0_MCMC2 ((volatile unsigned short *)SPORT0_MCMC2)
|
||||
#define pSPORT0_MTCS0 ((volatile unsigned long *)SPORT0_MTCS0)
|
||||
#define pSPORT0_MTCS1 ((volatile unsigned long *)SPORT0_MTCS1)
|
||||
#define pSPORT0_MTCS2 ((volatile unsigned long *)SPORT0_MTCS2)
|
||||
#define pSPORT0_MTCS3 ((volatile unsigned long *)SPORT0_MTCS3)
|
||||
#define pSPORT0_MRCS0 ((volatile unsigned long *)SPORT0_MRCS0)
|
||||
#define pSPORT0_MRCS1 ((volatile unsigned long *)SPORT0_MRCS1)
|
||||
#define pSPORT0_MRCS2 ((volatile unsigned long *)SPORT0_MRCS2)
|
||||
#define pSPORT0_MRCS3 ((volatile unsigned long *)SPORT0_MRCS3)
|
||||
|
||||
|
||||
/* SPORT1 Controller */
|
||||
#define pSPORT1_TCR1 ((volatile unsigned short *)SPORT1_TCR1)
|
||||
#define pSPORT1_TCR2 ((volatile unsigned short *)SPORT1_TCR2)
|
||||
#define pSPORT1_TCLKDIV ((volatile unsigned short *)SPORT1_TCLKDIV)
|
||||
#define pSPORT1_TFSDIV ((volatile unsigned short *)SPORT1_TFSDIV)
|
||||
#define pSPORT1_TX ((volatile long *)SPORT1_TX)
|
||||
#define pSPORT1_RX ((volatile long *)SPORT1_RX)
|
||||
#define pSPORT1_TX32 ((volatile long *)SPORT1_TX)
|
||||
#define pSPORT1_RX32 ((volatile long *)SPORT1_RX)
|
||||
#define pSPORT1_TX16 ((volatile unsigned short *)SPORT1_TX)
|
||||
#define pSPORT1_RX16 ((volatile unsigned short *)SPORT1_RX)
|
||||
#define pSPORT1_RCR1 ((volatile unsigned short *)SPORT1_RCR1)
|
||||
#define pSPORT1_RCR2 ((volatile unsigned short *)SPORT1_RCR2)
|
||||
#define pSPORT1_RCLKDIV ((volatile unsigned short *)SPORT1_RCLKDIV)
|
||||
#define pSPORT1_RFSDIV ((volatile unsigned short *)SPORT1_RFSDIV)
|
||||
#define pSPORT1_STAT ((volatile unsigned short *)SPORT1_STAT)
|
||||
#define pSPORT1_CHNL ((volatile unsigned short *)SPORT1_CHNL)
|
||||
#define pSPORT1_MCMC1 ((volatile unsigned short *)SPORT1_MCMC1)
|
||||
#define pSPORT1_MCMC2 ((volatile unsigned short *)SPORT1_MCMC2)
|
||||
#define pSPORT1_MTCS0 ((volatile unsigned long *)SPORT1_MTCS0)
|
||||
#define pSPORT1_MTCS1 ((volatile unsigned long *)SPORT1_MTCS1)
|
||||
#define pSPORT1_MTCS2 ((volatile unsigned long *)SPORT1_MTCS2)
|
||||
#define pSPORT1_MTCS3 ((volatile unsigned long *)SPORT1_MTCS3)
|
||||
#define pSPORT1_MRCS0 ((volatile unsigned long *)SPORT1_MRCS0)
|
||||
#define pSPORT1_MRCS1 ((volatile unsigned long *)SPORT1_MRCS1)
|
||||
#define pSPORT1_MRCS2 ((volatile unsigned long *)SPORT1_MRCS2)
|
||||
#define pSPORT1_MRCS3 ((volatile unsigned long *)SPORT1_MRCS3)
|
||||
|
||||
|
||||
/* External Bus Interface Unit */
|
||||
/* Aysnchronous Memory Controller */
|
||||
#define pEBIU_AMGCTL ((volatile unsigned short *)EBIU_AMGCTL)
|
||||
#define pEBIU_AMBCTL0 ((volatile unsigned long *)EBIU_AMBCTL0)
|
||||
#define pEBIU_AMBCTL1 ((volatile unsigned long *)EBIU_AMBCTL1)
|
||||
|
||||
/* SDRAM Controller */
|
||||
#define pEBIU_SDGCTL ((volatile unsigned long *)EBIU_SDGCTL)
|
||||
#define pEBIU_SDBCTL ((volatile unsigned short *)EBIU_SDBCTL)
|
||||
#define pEBIU_SDRRC ((volatile unsigned short *)EBIU_SDRRC)
|
||||
#define pEBIU_SDSTAT ((volatile unsigned short *)EBIU_SDSTAT)
|
||||
|
||||
|
||||
/* DMA Traffic controls */
|
||||
#define pDMA_TC_PER ((volatile unsigned short *)DMA_TC_PER)
|
||||
#define pDMA_TC_CNT ((volatile unsigned short *)DMA_TC_CNT)
|
||||
|
||||
/* Alternate deprecated register names (below) provided for backwards code compatibility */
|
||||
#define pDMA_TCPER ((volatile unsigned short *)DMA_TCPER)
|
||||
#define pDMA_TCCNT ((volatile unsigned short *)DMA_TCCNT)
|
||||
|
||||
|
||||
/* DMA Controller */
|
||||
#define pDMA0_CONFIG ((volatile unsigned short *)DMA0_CONFIG)
|
||||
#define pDMA0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA0_NEXT_DESC_PTR)
|
||||
#define pDMA0_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA0_START_ADDR)
|
||||
#define pDMA0_X_COUNT ((volatile unsigned short *)DMA0_X_COUNT)
|
||||
#define pDMA0_Y_COUNT ((volatile unsigned short *)DMA0_Y_COUNT)
|
||||
#define pDMA0_X_MODIFY ((volatile signed short *)DMA0_X_MODIFY)
|
||||
#define pDMA0_Y_MODIFY ((volatile signed short *)DMA0_Y_MODIFY)
|
||||
#define pDMA0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA0_CURR_DESC_PTR)
|
||||
#define pDMA0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA0_CURR_ADDR)
|
||||
#define pDMA0_CURR_X_COUNT ((volatile unsigned short *)DMA0_CURR_X_COUNT)
|
||||
#define pDMA0_CURR_Y_COUNT ((volatile unsigned short *)DMA0_CURR_Y_COUNT)
|
||||
#define pDMA0_IRQ_STATUS ((volatile unsigned short *)DMA0_IRQ_STATUS)
|
||||
#define pDMA0_PERIPHERAL_MAP ((volatile unsigned short *)DMA0_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA1_CONFIG ((volatile unsigned short *)DMA1_CONFIG)
|
||||
#define pDMA1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA1_NEXT_DESC_PTR)
|
||||
#define pDMA1_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA1_START_ADDR)
|
||||
#define pDMA1_X_COUNT ((volatile unsigned short *)DMA1_X_COUNT)
|
||||
#define pDMA1_Y_COUNT ((volatile unsigned short *)DMA1_Y_COUNT)
|
||||
#define pDMA1_X_MODIFY ((volatile signed short *)DMA1_X_MODIFY)
|
||||
#define pDMA1_Y_MODIFY ((volatile signed short *)DMA1_Y_MODIFY)
|
||||
#define pDMA1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA1_CURR_DESC_PTR)
|
||||
#define pDMA1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA1_CURR_ADDR)
|
||||
#define pDMA1_CURR_X_COUNT ((volatile unsigned short *)DMA1_CURR_X_COUNT)
|
||||
#define pDMA1_CURR_Y_COUNT ((volatile unsigned short *)DMA1_CURR_Y_COUNT)
|
||||
#define pDMA1_IRQ_STATUS ((volatile unsigned short *)DMA1_IRQ_STATUS)
|
||||
#define pDMA1_PERIPHERAL_MAP ((volatile unsigned short *)DMA1_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA2_CONFIG ((volatile unsigned short *)DMA2_CONFIG)
|
||||
#define pDMA2_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA2_NEXT_DESC_PTR)
|
||||
#define pDMA2_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA2_START_ADDR)
|
||||
#define pDMA2_X_COUNT ((volatile unsigned short *)DMA2_X_COUNT)
|
||||
#define pDMA2_Y_COUNT ((volatile unsigned short *)DMA2_Y_COUNT)
|
||||
#define pDMA2_X_MODIFY ((volatile signed short *)DMA2_X_MODIFY)
|
||||
#define pDMA2_Y_MODIFY ((volatile signed short *)DMA2_Y_MODIFY)
|
||||
#define pDMA2_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA2_CURR_DESC_PTR)
|
||||
#define pDMA2_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA2_CURR_ADDR)
|
||||
#define pDMA2_CURR_X_COUNT ((volatile unsigned short *)DMA2_CURR_X_COUNT)
|
||||
#define pDMA2_CURR_Y_COUNT ((volatile unsigned short *)DMA2_CURR_Y_COUNT)
|
||||
#define pDMA2_IRQ_STATUS ((volatile unsigned short *)DMA2_IRQ_STATUS)
|
||||
#define pDMA2_PERIPHERAL_MAP ((volatile unsigned short *)DMA2_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA3_CONFIG ((volatile unsigned short *)DMA3_CONFIG)
|
||||
#define pDMA3_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA3_NEXT_DESC_PTR)
|
||||
#define pDMA3_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA3_START_ADDR)
|
||||
#define pDMA3_X_COUNT ((volatile unsigned short *)DMA3_X_COUNT)
|
||||
#define pDMA3_Y_COUNT ((volatile unsigned short *)DMA3_Y_COUNT)
|
||||
#define pDMA3_X_MODIFY ((volatile signed short *)DMA3_X_MODIFY)
|
||||
#define pDMA3_Y_MODIFY ((volatile signed short *)DMA3_Y_MODIFY)
|
||||
#define pDMA3_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA3_CURR_DESC_PTR)
|
||||
#define pDMA3_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA3_CURR_ADDR)
|
||||
#define pDMA3_CURR_X_COUNT ((volatile unsigned short *)DMA3_CURR_X_COUNT)
|
||||
#define pDMA3_CURR_Y_COUNT ((volatile unsigned short *)DMA3_CURR_Y_COUNT)
|
||||
#define pDMA3_IRQ_STATUS ((volatile unsigned short *)DMA3_IRQ_STATUS)
|
||||
#define pDMA3_PERIPHERAL_MAP ((volatile unsigned short *)DMA3_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA4_CONFIG ((volatile unsigned short *)DMA4_CONFIG)
|
||||
#define pDMA4_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA4_NEXT_DESC_PTR)
|
||||
#define pDMA4_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA4_START_ADDR)
|
||||
#define pDMA4_X_COUNT ((volatile unsigned short *)DMA4_X_COUNT)
|
||||
#define pDMA4_Y_COUNT ((volatile unsigned short *)DMA4_Y_COUNT)
|
||||
#define pDMA4_X_MODIFY ((volatile signed short *)DMA4_X_MODIFY)
|
||||
#define pDMA4_Y_MODIFY ((volatile signed short *)DMA4_Y_MODIFY)
|
||||
#define pDMA4_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA4_CURR_DESC_PTR)
|
||||
#define pDMA4_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA4_CURR_ADDR)
|
||||
#define pDMA4_CURR_X_COUNT ((volatile unsigned short *)DMA4_CURR_X_COUNT)
|
||||
#define pDMA4_CURR_Y_COUNT ((volatile unsigned short *)DMA4_CURR_Y_COUNT)
|
||||
#define pDMA4_IRQ_STATUS ((volatile unsigned short *)DMA4_IRQ_STATUS)
|
||||
#define pDMA4_PERIPHERAL_MAP ((volatile unsigned short *)DMA4_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA5_CONFIG ((volatile unsigned short *)DMA5_CONFIG)
|
||||
#define pDMA5_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA5_NEXT_DESC_PTR)
|
||||
#define pDMA5_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA5_START_ADDR)
|
||||
#define pDMA5_X_COUNT ((volatile unsigned short *)DMA5_X_COUNT)
|
||||
#define pDMA5_Y_COUNT ((volatile unsigned short *)DMA5_Y_COUNT)
|
||||
#define pDMA5_X_MODIFY ((volatile signed short *)DMA5_X_MODIFY)
|
||||
#define pDMA5_Y_MODIFY ((volatile signed short *)DMA5_Y_MODIFY)
|
||||
#define pDMA5_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA5_CURR_DESC_PTR)
|
||||
#define pDMA5_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA5_CURR_ADDR)
|
||||
#define pDMA5_CURR_X_COUNT ((volatile unsigned short *)DMA5_CURR_X_COUNT)
|
||||
#define pDMA5_CURR_Y_COUNT ((volatile unsigned short *)DMA5_CURR_Y_COUNT)
|
||||
#define pDMA5_IRQ_STATUS ((volatile unsigned short *)DMA5_IRQ_STATUS)
|
||||
#define pDMA5_PERIPHERAL_MAP ((volatile unsigned short *)DMA5_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA6_CONFIG ((volatile unsigned short *)DMA6_CONFIG)
|
||||
#define pDMA6_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA6_NEXT_DESC_PTR)
|
||||
#define pDMA6_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA6_START_ADDR)
|
||||
#define pDMA6_X_COUNT ((volatile unsigned short *)DMA6_X_COUNT)
|
||||
#define pDMA6_Y_COUNT ((volatile unsigned short *)DMA6_Y_COUNT)
|
||||
#define pDMA6_X_MODIFY ((volatile signed short *)DMA6_X_MODIFY)
|
||||
#define pDMA6_Y_MODIFY ((volatile signed short *)DMA6_Y_MODIFY)
|
||||
#define pDMA6_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA6_CURR_DESC_PTR)
|
||||
#define pDMA6_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA6_CURR_ADDR)
|
||||
#define pDMA6_CURR_X_COUNT ((volatile unsigned short *)DMA6_CURR_X_COUNT)
|
||||
#define pDMA6_CURR_Y_COUNT ((volatile unsigned short *)DMA6_CURR_Y_COUNT)
|
||||
#define pDMA6_IRQ_STATUS ((volatile unsigned short *)DMA6_IRQ_STATUS)
|
||||
#define pDMA6_PERIPHERAL_MAP ((volatile unsigned short *)DMA6_PERIPHERAL_MAP)
|
||||
|
||||
#define pDMA7_CONFIG ((volatile unsigned short *)DMA7_CONFIG)
|
||||
#define pDMA7_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA7_NEXT_DESC_PTR)
|
||||
#define pDMA7_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA7_START_ADDR)
|
||||
#define pDMA7_X_COUNT ((volatile unsigned short *)DMA7_X_COUNT)
|
||||
#define pDMA7_Y_COUNT ((volatile unsigned short *)DMA7_Y_COUNT)
|
||||
#define pDMA7_X_MODIFY ((volatile signed short *)DMA7_X_MODIFY)
|
||||
#define pDMA7_Y_MODIFY ((volatile signed short *)DMA7_Y_MODIFY)
|
||||
#define pDMA7_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR DMA7_CURR_DESC_PTR)
|
||||
#define pDMA7_CURR_ADDR (_PTR_TO_VOL_VOID_PTR DMA7_CURR_ADDR)
|
||||
#define pDMA7_CURR_X_COUNT ((volatile unsigned short *)DMA7_CURR_X_COUNT)
|
||||
#define pDMA7_CURR_Y_COUNT ((volatile unsigned short *)DMA7_CURR_Y_COUNT)
|
||||
#define pDMA7_IRQ_STATUS ((volatile unsigned short *)DMA7_IRQ_STATUS)
|
||||
#define pDMA7_PERIPHERAL_MAP ((volatile unsigned short *)DMA7_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_D1_CONFIG ((volatile unsigned short *)MDMA_D1_CONFIG)
|
||||
#define pMDMA_D1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D1_NEXT_DESC_PTR)
|
||||
#define pMDMA_D1_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D1_START_ADDR)
|
||||
#define pMDMA_D1_X_COUNT ((volatile unsigned short *)MDMA_D1_X_COUNT)
|
||||
#define pMDMA_D1_Y_COUNT ((volatile unsigned short *)MDMA_D1_Y_COUNT)
|
||||
#define pMDMA_D1_X_MODIFY ((volatile signed short *)MDMA_D1_X_MODIFY)
|
||||
#define pMDMA_D1_Y_MODIFY ((volatile signed short *)MDMA_D1_Y_MODIFY)
|
||||
#define pMDMA_D1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D1_CURR_DESC_PTR)
|
||||
#define pMDMA_D1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D1_CURR_ADDR)
|
||||
#define pMDMA_D1_CURR_X_COUNT ((volatile unsigned short *)MDMA_D1_CURR_X_COUNT)
|
||||
#define pMDMA_D1_CURR_Y_COUNT ((volatile unsigned short *)MDMA_D1_CURR_Y_COUNT)
|
||||
#define pMDMA_D1_IRQ_STATUS ((volatile unsigned short *)MDMA_D1_IRQ_STATUS)
|
||||
#define pMDMA_D1_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_D1_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_S1_CONFIG ((volatile unsigned short *)MDMA_S1_CONFIG)
|
||||
#define pMDMA_S1_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S1_NEXT_DESC_PTR)
|
||||
#define pMDMA_S1_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S1_START_ADDR)
|
||||
#define pMDMA_S1_X_COUNT ((volatile unsigned short *)MDMA_S1_X_COUNT)
|
||||
#define pMDMA_S1_Y_COUNT ((volatile unsigned short *)MDMA_S1_Y_COUNT)
|
||||
#define pMDMA_S1_X_MODIFY ((volatile signed short *)MDMA_S1_X_MODIFY)
|
||||
#define pMDMA_S1_Y_MODIFY ((volatile signed short *)MDMA_S1_Y_MODIFY)
|
||||
#define pMDMA_S1_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S1_CURR_DESC_PTR)
|
||||
#define pMDMA_S1_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S1_CURR_ADDR)
|
||||
#define pMDMA_S1_CURR_X_COUNT ((volatile unsigned short *)MDMA_S1_CURR_X_COUNT)
|
||||
#define pMDMA_S1_CURR_Y_COUNT ((volatile unsigned short *)MDMA_S1_CURR_Y_COUNT)
|
||||
#define pMDMA_S1_IRQ_STATUS ((volatile unsigned short *)MDMA_S1_IRQ_STATUS)
|
||||
#define pMDMA_S1_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_S1_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_D0_CONFIG ((volatile unsigned short *)MDMA_D0_CONFIG)
|
||||
#define pMDMA_D0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D0_NEXT_DESC_PTR)
|
||||
#define pMDMA_D0_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D0_START_ADDR)
|
||||
#define pMDMA_D0_X_COUNT ((volatile unsigned short *)MDMA_D0_X_COUNT)
|
||||
#define pMDMA_D0_Y_COUNT ((volatile unsigned short *)MDMA_D0_Y_COUNT)
|
||||
#define pMDMA_D0_X_MODIFY ((volatile signed short *)MDMA_D0_X_MODIFY)
|
||||
#define pMDMA_D0_Y_MODIFY ((volatile signed short *)MDMA_D0_Y_MODIFY)
|
||||
#define pMDMA_D0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_D0_CURR_DESC_PTR)
|
||||
#define pMDMA_D0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_D0_CURR_ADDR)
|
||||
#define pMDMA_D0_CURR_X_COUNT ((volatile unsigned short *)MDMA_D0_CURR_X_COUNT)
|
||||
#define pMDMA_D0_CURR_Y_COUNT ((volatile unsigned short *)MDMA_D0_CURR_Y_COUNT)
|
||||
#define pMDMA_D0_IRQ_STATUS ((volatile unsigned short *)MDMA_D0_IRQ_STATUS)
|
||||
#define pMDMA_D0_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_D0_PERIPHERAL_MAP)
|
||||
|
||||
#define pMDMA_S0_CONFIG ((volatile unsigned short *)MDMA_S0_CONFIG)
|
||||
#define pMDMA_S0_NEXT_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S0_NEXT_DESC_PTR)
|
||||
#define pMDMA_S0_START_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S0_START_ADDR)
|
||||
#define pMDMA_S0_X_COUNT ((volatile unsigned short *)MDMA_S0_X_COUNT)
|
||||
#define pMDMA_S0_Y_COUNT ((volatile unsigned short *)MDMA_S0_Y_COUNT)
|
||||
#define pMDMA_S0_X_MODIFY ((volatile signed short *)MDMA_S0_X_MODIFY)
|
||||
#define pMDMA_S0_Y_MODIFY ((volatile signed short *)MDMA_S0_Y_MODIFY)
|
||||
#define pMDMA_S0_CURR_DESC_PTR (_PTR_TO_VOL_VOID_PTR MDMA_S0_CURR_DESC_PTR)
|
||||
#define pMDMA_S0_CURR_ADDR (_PTR_TO_VOL_VOID_PTR MDMA_S0_CURR_ADDR)
|
||||
#define pMDMA_S0_CURR_X_COUNT ((volatile unsigned short *)MDMA_S0_CURR_X_COUNT)
|
||||
#define pMDMA_S0_CURR_Y_COUNT ((volatile unsigned short *)MDMA_S0_CURR_Y_COUNT)
|
||||
#define pMDMA_S0_IRQ_STATUS ((volatile unsigned short *)MDMA_S0_IRQ_STATUS)
|
||||
#define pMDMA_S0_PERIPHERAL_MAP ((volatile unsigned short *)MDMA_S0_PERIPHERAL_MAP)
|
||||
|
||||
|
||||
|
||||
/* Parallel Peripheral Interface (PPI) */
|
||||
#define pPPI_CONTROL ((volatile unsigned short *)PPI_CONTROL)
|
||||
#define pPPI_STATUS ((volatile unsigned short *)PPI_STATUS)
|
||||
#define pPPI_COUNT ((volatile unsigned short *)PPI_COUNT)
|
||||
#define pPPI_DELAY ((volatile unsigned short *)PPI_DELAY)
|
||||
#define pPPI_FRAME ((volatile unsigned short *)PPI_FRAME)
|
||||
|
||||
#endif /* _CDEF_BF532_H */
|
26
gcc/libgloss/bfin/include/cdefBF533.h
Normal file
26
gcc/libgloss/bfin/include/cdefBF533.h
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/************************************************************************
|
||||
*
|
||||
* cdefBF533.h
|
||||
*
|
||||
* (c) Copyright 2002-2003 Analog Devices, Inc. All rights reserved.
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef _CDEFBF533_H
|
||||
#define _CDEFBF533_H
|
||||
|
||||
#include <cdefBF532.h>
|
||||
|
||||
#endif /* _CDEFBF533_H */
|
1007
gcc/libgloss/bfin/include/cdefBF534.h
Normal file
1007
gcc/libgloss/bfin/include/cdefBF534.h
Normal file
File diff suppressed because it is too large
Load Diff
461
gcc/libgloss/bfin/include/cdefBF535.h
Normal file
461
gcc/libgloss/bfin/include/cdefBF535.h
Normal file
@ -0,0 +1,461 @@
|
||||
/*
|
||||
* The authors hereby grant permission to use, copy, modify, distribute,
|
||||
* and license this software and its documentation for any purpose, provided
|
||||
* that existing copyright notices are retained in all copies and that this
|
||||
* notice is included verbatim in any distributions. No written agreement,
|
||||
* license, or royalty fee is required for any of the authorized uses.
|
||||
* Modifications to this software may be copyrighted by their authors
|
||||
* and need not follow the licensing terms described here, provided that
|
||||
* the new terms are clearly indicated on the first page of each file where
|
||||
* they apply.
|
||||
*/
|
||||
|
||||
/************************************************************************
|
||||
*
|
||||
* cdefBF535.h
|
||||
*
|
||||
* (c) Copyright 2002-2005 Analog Devices, Inc. All rights reserved.
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef _CDEF_BF535_H
|
||||
#define _CDEF_BF535_H
|
||||
|
||||
/* include all Core registers and bit definitions */
|
||||
#if defined(__ADSPLPBLACKFIN__)
|
||||
#warning cdefBF535.h should only be included for 535 compatible chips.
|
||||
#endif
|
||||
#include <defBF535.h>
|
||||
|
||||
/* include core specific register pointer definitions */
|
||||
#include <cdefblackfin.h>
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(push)
|
||||
#pragma diag(suppress:misra_rule_19_4:"some macro definitions not MISRA compliant")
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#ifndef _PTR_TO_VOL_VOID_PTR
|
||||
#ifndef _USE_LEGACY_CDEF_BEHAVIOUR
|
||||
#define _PTR_TO_VOL_VOID_PTR (void * volatile *)
|
||||
#else
|
||||
#define _PTR_TO_VOL_VOID_PTR (volatile void **)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Clock and System Control (0xFFC0 0400-0xFFC0 07FF) */
|
||||
#define pPLL_CTL ((volatile unsigned long *)PLL_CTL)
|
||||
#define pPLL_STAT ((volatile unsigned short *)PLL_STAT)
|
||||
#define pPLL_LOCKCNT ((volatile unsigned short *)PLL_LOCKCNT)
|
||||
#define pSWRST ((volatile unsigned short *)SWRST)
|
||||
#define pSYSCR ((volatile unsigned short *)SYSCR)
|
||||
#define pPLL_IOCKR ((volatile unsigned short *)PLL_IOCKR)
|
||||
#define pPLL_IOCK ((volatile unsigned short *)PLL_IOCK)
|
||||
|
||||
/* JTAG/Debug Communication Channel (0xFFC0 0800-0xFFC0 0BFF) */
|
||||
#define pCHIPID ((volatile unsigned long *)CHIPID)
|
||||
|
||||
/* System Interrupt Controller (0xFFC0 0C00-0xFFC0 0FFF) */
|
||||
#define pSIC_IAR0 ((volatile unsigned long *)SIC_IAR0)
|
||||
#define pSIC_IAR1 ((volatile unsigned long *)SIC_IAR1)
|
||||
#define pSIC_IAR2 ((volatile unsigned long *)SIC_IAR2)
|
||||
#define pSIC_IMASK ((volatile unsigned long *)SIC_IMASK)
|
||||
#define pSIC_ISR ((volatile unsigned long *)SIC_ISR)
|
||||
#define pSIC_IWR ((volatile unsigned long *)SIC_IWR)
|
||||
|
||||
/* Watchdog Timer (0xFFC0 1000-0xFFC0 13FF) */
|
||||
#define pWDOG_CTL ((volatile unsigned short *)WDOG_CTL)
|
||||
#define pWDOG_CNT ((volatile unsigned long *)WDOG_CNT)
|
||||
#define pWDOG_STAT ((volatile unsigned long *)WDOG_STAT)
|
||||
|
||||
/* Real Time Clock (0xFFC0 1400-0xFFC0 17FF) */
|
||||
#define pRTC_STAT ((volatile unsigned long *)RTC_STAT)
|
||||
#define pRTC_ICTL ((volatile unsigned short *)RTC_ICTL)
|
||||
#define pRTC_ISTAT ((volatile unsigned short *)RTC_ISTAT)
|
||||
#define pRTC_SWCNT ((volatile unsigned short *)RTC_SWCNT)
|
||||
#define pRTC_ALARM ((volatile unsigned long *)RTC_ALARM)
|
||||
#define pRTC_FAST ((volatile unsigned short *)RTC_FAST)
|
||||
|
||||
/* General Purpose IO (0xFFC0 2400-0xFFC0 27FF) */
|
||||
#define pFIO_DIR ((volatile unsigned short *)FIO_DIR)
|
||||
#define pFIO_FLAG_C ((volatile unsigned short *)FIO_FLAG_C)
|
||||
#define pFIO_FLAG_S ((volatile unsigned short *)FIO_FLAG_S)
|
||||
#define pFIO_MASKA_C ((volatile unsigned short *)FIO_MASKA_C)
|
||||
#define pFIO_MASKA_S ((volatile unsigned short *)FIO_MASKA_S)
|
||||
#define pFIO_MASKB_C ((volatile unsigned short *)FIO_MASKB_C)
|
||||
#define pFIO_MASKB_S ((volatile unsigned short *)FIO_MASKB_S)
|
||||
#define pFIO_POLAR ((volatile unsigned short *)FIO_POLAR)
|
||||
#define pFIO_EDGE ((volatile unsigned short *)FIO_EDGE)
|
||||
#define pFIO_BOTH ((volatile unsigned short *)FIO_BOTH)
|
||||
|
||||
/* Aysnchronous Memory Controller - External Bus Interface Unit (0xFFC0 3C00-0xFFC0 3FFF) */
|
||||
#define pEBIU_AMGCTL ((volatile unsigned short *)EBIU_AMGCTL)
|
||||
#define pEBIU_AMBCTL0 ((volatile unsigned long *)EBIU_AMBCTL0)
|
||||
#define pEBIU_AMBCTL1 ((volatile unsigned long *)EBIU_AMBCTL1)
|
||||
|
||||
/* USB Registers (0xFFC0 4400 - 0xFFC0 47FF) */
|
||||
#define pUSBD_ID ((volatile unsigned short *)USBD_ID)
|
||||
#define pUSBD_FRM ((volatile unsigned short *)USBD_FRM)
|
||||
#define pUSBD_FRMAT ((volatile unsigned short *)USBD_FRMAT)
|
||||
#define pUSBD_EPBUF ((volatile unsigned short *)USBD_EPBUF)
|
||||
#define pUSBD_STAT ((volatile unsigned short *)USBD_STAT)
|
||||
#define pUSBD_CTRL ((volatile unsigned short *)USBD_CTRL)
|
||||
#define pUSBD_GINTR ((volatile unsigned short *)USBD_GINTR)
|
||||
#define pUSBD_GMASK ((volatile unsigned short *)USBD_GMASK)
|
||||
#define pUSBD_DMACFG ((volatile unsigned short *)USBD_DMACFG)
|
||||
#define pUSBD_DMABL ((volatile unsigned short *)USBD_DMABL)
|
||||
#define pUSBD_DMABH ((volatile unsigned short *)USBD_DMABH)
|
||||
#define pUSBD_DMACT ((volatile unsigned short *)USBD_DMACT)
|
||||
#define pUSBD_DMAIRQ ((volatile unsigned short *)USBD_DMAIRQ)
|
||||
#define pUSBD_INTR0 ((volatile unsigned short *)USBD_INTR0)
|
||||
#define pUSBD_MASK0 ((volatile unsigned short *)USBD_MASK0)
|
||||
#define pUSBD_EPCFG0 ((volatile unsigned short *)USBD_EPCFG0)
|
||||
#define pUSBD_EPADR0 ((volatile unsigned short *)USBD_EPADR0)
|
||||
#define pUSBD_EPLEN0 ((volatile unsigned short *)USBD_EPLEN0)
|
||||
#define pUSBD_INTR1 ((volatile unsigned short *)USBD_INTR1)
|
||||
#define pUSBD_MASK1 ((volatile unsigned short *)USBD_MASK1)
|
||||
#define pUSBD_EPCFG1 ((volatile unsigned short *)USBD_EPCFG1)
|
||||
#define pUSBD_EPADR1 ((volatile unsigned short *)USBD_EPADR1)
|
||||
#define pUSBD_EPLEN1 ((volatile unsigned short *)USBD_EPLEN1)
|
||||
#define pUSBD_INTR2 ((volatile unsigned short *)USBD_INTR2)
|
||||
#define pUSBD_MASK2 ((volatile unsigned short *)USBD_MASK2)
|
||||
#define pUSBD_EPCFG2 ((volatile unsigned short *)USBD_EPCFG2)
|
||||
#define pUSBD_EPADR2 ((volatile unsigned short *)USBD_EPADR2)
|
||||
#define pUSBD_EPLEN2 ((volatile unsigned short *)USBD_EPLEN2)
|
||||
#define pUSBD_INTR3 ((volatile unsigned short *)USBD_INTR3)
|
||||
#define pUSBD_MASK3 ((volatile unsigned short *)USBD_MASK3)
|
||||
#define pUSBD_EPCFG3 ((volatile unsigned short *)USBD_EPCFG3)
|
||||
#define pUSBD_EPADR3 ((volatile unsigned short *)USBD_EPADR3)
|
||||
#define pUSBD_EPLEN3 ((volatile unsigned short *)USBD_EPLEN3)
|
||||
#define pUSBD_INTR4 ((volatile unsigned short *)USBD_INTR4)
|
||||
#define pUSBD_MASK4 ((volatile unsigned short *)USBD_MASK4)
|
||||
#define pUSBD_EPCFG4 ((volatile unsigned short *)USBD_EPCFG4)
|
||||
#define pUSBD_EPADR4 ((volatile unsigned short *)USBD_EPADR4)
|
||||
#define pUSBD_EPLEN4 ((volatile unsigned short *)USBD_EPLEN4)
|
||||
#define pUSBD_INTR5 ((volatile unsigned short *)USBD_INTR5)
|
||||
#define pUSBD_MASK5 ((volatile unsigned short *)USBD_MASK5)
|
||||
#define pUSBD_EPCFG5 ((volatile unsigned short *)USBD_EPCFG5)
|
||||
#define pUSBD_EPADR5 ((volatile unsigned short *)USBD_EPADR5)
|
||||
#define pUSBD_EPLEN5 ((volatile unsigned short *)USBD_EPLEN5)
|
||||
#define pUSBD_INTR6 ((volatile unsigned short *)USBD_INTR6)
|
||||
#define pUSBD_MASK6 ((volatile unsigned short *)USBD_MASK6)
|
||||
#define pUSBD_EPCFG6 ((volatile unsigned short *)USBD_EPCFG6)
|
||||
#define pUSBD_EPADR6 ((volatile unsigned short *)USBD_EPADR6)
|
||||
#define pUSBD_EPLEN6 ((volatile unsigned short *)USBD_EPLEN6)
|
||||
#define pUSBD_INTR7 ((volatile unsigned short *)USBD_INTR7)
|
||||
#define pUSBD_MASK7 ((volatile unsigned short *)USBD_MASK7)
|
||||
#define pUSBD_EPCFG7 ((volatile unsigned short *)USBD_EPCFG7)
|
||||
#define pUSBD_EPADR7 ((volatile unsigned short *)USBD_EPADR7)
|
||||
#define pUSBD_EPLEN7 ((volatile unsigned short *)USBD_EPLEN7)
|
||||
|
||||
/* SDRAM Controller External Bus Interface Unit (0xFFC0 4C00-0xFFC0 4FFF) */
|
||||
#define pEBIU_SDGCTL ((volatile unsigned long *)EBIU_SDGCTL)
|
||||
#define pEBIU_SDRRC ((volatile unsigned short *)EBIU_SDRRC)
|
||||
#define pEBIU_SDSTAT ((volatile unsigned short *)EBIU_SDSTAT)
|
||||
#define pEBIU_SDBCTL ((volatile unsigned long *)EBIU_SDBCTL)
|
||||
|
||||
/* Memory Map */
|
||||
|
||||
/* Core MMRs */
|
||||
#define pCOREMMR_BASE ((volatile void *)COREMMR_BASE)
|
||||
|
||||
/* System MMRs */
|
||||
#define pSYSMMR_BASE ((volatile void *)SYSMMR_BASE)
|
||||
|
||||
/* L1 cache/SRAM internal memory */
|
||||
#define pL1_DATA_A ((void *)L1_DATA_A)
|
||||
#define pL1_DATA_B ((void *)L1_DATA_B)
|
||||
#define pL1_CODE ((void *)L1_CODE)
|
||||
#define pL1_SCRATCH ((void *)L1_SCRATCH)
|
||||
|
||||
/* L2 SRAM external memory */
|
||||
#define pL2_BASE ((void *)L2_BASE)
|
||||
|
||||
/* PCI Spaces */
|
||||
#define pPCI_CONFIG_SPACE_PORT ((volatile void *)PCI_CONFIG_SPACE_PORT)
|
||||
#define pPCI_CONFIG_BASE ((volatile void *)PCI_CONFIG_BASE)
|
||||
#define pPCI_IO_BASE ((volatile void *)PCI_IO_BASE)
|
||||
#define pPCI_MEM_BASE ((volatile void *)PCI_MEM_BASE)
|
||||
|
||||
/* Async Memory Banks */
|
||||
#define pASYNC_BANK3_BASE ((void *)ASYNC_BANK3_BASE)
|
||||
#define pASYNC_BANK2_BASE ((void *)ASYNC_BANK2_BASE)
|
||||
#define pASYNC_BANK1_BASE ((void *)ASYNC_BANK1_BASE)
|
||||
#define pASYNC_BANK0_BASE ((void *)ASYNC_BANK0_BASE)
|
||||
|
||||
/* Sync DRAM Banks */
|
||||
#define pSDRAM_BANK3_BASE ((void *)SDRAM_BANK3_BASE)
|
||||
#define pSDRAM_BANK2_BASE ((void *)SDRAM_BANK2_BASE)
|
||||
#define pSDRAM_BANK1_BASE ((void *)SDRAM_BANK1_BASE)
|
||||
#define pSDRAM_BANK0_BASE ((void *)SDRAM_BANK0_BASE)
|
||||
|
||||
/* UART 0 Controller (0xFFC0 1800-0xFFC0 1BFF) */
|
||||
#define pUART0_THR ((volatile unsigned short *)UART0_THR)
|
||||
#define pUART0_RBR ((volatile unsigned short *)UART0_RBR)
|
||||
#define pUART0_DLL ((volatile unsigned short *)UART0_DLL)
|
||||
#define pUART0_IER ((volatile unsigned short *)UART0_IER)
|
||||
#define pUART0_DLH ((volatile unsigned short *)UART0_DLH)
|
||||
#define pUART0_IIR ((volatile unsigned short *)UART0_IIR)
|
||||
#define pUART0_LCR ((volatile unsigned short *)UART0_LCR)
|
||||
#define pUART0_MCR ((volatile unsigned short *)UART0_MCR)
|
||||
#define pUART0_LSR ((volatile unsigned short *)UART0_LSR)
|
||||
#define pUART0_MSR ((volatile unsigned short *)UART0_MSR)
|
||||
#define pUART0_SCR ((volatile unsigned short *)UART0_SCR)
|
||||
#define pUART0_IRCR ((volatile unsigned short *)UART0_IRCR)
|
||||
#define pUART0_CURR_PTR_RX ((volatile unsigned short *)UART0_CURR_PTR_RX)
|
||||
#define pUART0_CONFIG_RX ((volatile unsigned short *)UART0_CONFIG_RX)
|
||||
#define pUART0_START_ADDR_HI_RX ((volatile unsigned short *)UART0_START_ADDR_HI_RX)
|
||||
#define pUART0_START_ADDR_LO_RX ((volatile unsigned short *)UART0_START_ADDR_LO_RX)
|
||||
#define pUART0_COUNT_RX ((volatile unsigned short *)UART0_COUNT_RX)
|
||||
#define pUART0_NEXT_DESCR_RX ((volatile unsigned short *)UART0_NEXT_DESCR_RX)
|
||||
#define pUART0_DESCR_RDY_RX ((volatile unsigned short *)UART0_DESCR_RDY_RX)
|
||||
#define pUART0_IRQSTAT_RX ((volatile unsigned short *)UART0_IRQSTAT_RX)
|
||||
#define pUART0_CURR_PTR_TX ((volatile unsigned short *)UART0_CURR_PTR_TX)
|
||||
#define pUART0_CONFIG_TX ((volatile unsigned short *)UART0_CONFIG_TX)
|
||||
#define pUART0_START_ADDR_HI_TX ((volatile unsigned short *)UART0_START_ADDR_HI_TX)
|
||||
#define pUART0_START_ADDR_LO_TX ((volatile unsigned short *)UART0_START_ADDR_LO_TX)
|
||||
#define pUART0_COUNT_TX ((volatile unsigned short *)UART0_COUNT_TX)
|
||||
#define pUART0_NEXT_DESCR_TX ((volatile unsigned short *)UART0_NEXT_DESCR_TX)
|
||||
#define pUART0_DESCR_RDY_TX ((volatile unsigned short *)UART0_DESCR_RDY_TX)
|
||||
#define pUART0_IRQSTAT_TX ((volatile unsigned short *)UART0_IRQSTAT_TX)
|
||||
|
||||
/* UART 1 Controller (0xFFC0 1C00-0xFFC0 1FFF) */
|
||||
#define pUART1_THR ((volatile unsigned short *)UART1_THR)
|
||||
#define pUART1_RBR ((volatile unsigned short *)UART1_RBR)
|
||||
#define pUART1_DLL ((volatile unsigned short *)UART1_DLL)
|
||||
#define pUART1_IER ((volatile unsigned short *)UART1_IER)
|
||||
#define pUART1_DLH ((volatile unsigned short *)UART1_DLH)
|
||||
#define pUART1_IIR ((volatile unsigned short *)UART1_IIR)
|
||||
#define pUART1_LCR ((volatile unsigned short *)UART1_LCR)
|
||||
#define pUART1_MCR ((volatile unsigned short *)UART1_MCR)
|
||||
#define pUART1_LSR ((volatile unsigned short *)UART1_LSR)
|
||||
#define pUART1_MSR ((volatile unsigned short *)UART1_MSR)
|
||||
#define pUART1_SCR ((volatile unsigned short *)UART1_SCR)
|
||||
#define pUART1_CURR_PTR_RX ((volatile unsigned short *)UART1_CURR_PTR_RX)
|
||||
#define pUART1_CONFIG_RX ((volatile unsigned short *)UART1_CONFIG_RX)
|
||||
#define pUART1_START_ADDR_HI_RX ((volatile unsigned short *)UART1_START_ADDR_HI_RX)
|
||||
#define pUART1_START_ADDR_LO_RX ((volatile unsigned short *)UART1_START_ADDR_LO_RX)
|
||||
#define pUART1_COUNT_RX ((volatile unsigned short *)UART1_COUNT_RX)
|
||||
#define pUART1_NEXT_DESCR_RX ((volatile unsigned short *)UART1_NEXT_DESCR_RX)
|
||||
#define pUART1_DESCR_RDY_RX ((volatile unsigned short *)UART1_DESCR_RDY_RX)
|
||||
#define pUART1_IRQSTAT_RX ((volatile unsigned short *)UART1_IRQSTAT_RX)
|
||||
#define pUART1_CURR_PTR_TX ((volatile unsigned short *)UART1_CURR_PTR_TX)
|
||||
#define pUART1_CONFIG_TX ((volatile unsigned short *)UART1_CONFIG_TX)
|
||||
#define pUART1_START_ADDR_HI_TX ((volatile unsigned short *)UART1_START_ADDR_HI_TX)
|
||||
#define pUART1_START_ADDR_LO_TX ((volatile unsigned short *)UART1_START_ADDR_LO_TX)
|
||||
#define pUART1_COUNT_TX ((volatile unsigned short *)UART1_COUNT_TX)
|
||||
#define pUART1_NEXT_DESCR_TX ((volatile unsigned short *)UART1_NEXT_DESCR_TX)
|
||||
#define pUART1_DESCR_RDY_TX ((volatile unsigned short *)UART1_DESCR_RDY_TX)
|
||||
#define pUART1_IRQSTAT_TX ((volatile unsigned short *)UART1_IRQSTAT_TX)
|
||||
|
||||
/* TIMER 0, 1, 2 Registers (0xFFC0 2000-0xFFC0 23FF) */
|
||||
#define pTIMER0_STATUS ((volatile unsigned short *)TIMER0_STATUS)
|
||||
#define pTIMER0_CONFIG ((volatile unsigned short *)TIMER0_CONFIG)
|
||||
#define pTIMER0_COUNTER_LO ((volatile unsigned short *)TIMER0_COUNTER_LO)
|
||||
#define pTIMER0_COUNTER_HI ((volatile unsigned short *)TIMER0_COUNTER_HI)
|
||||
#define pTIMER0_PERIOD_LO ((volatile unsigned short *)TIMER0_PERIOD_LO)
|
||||
#define pTIMER0_PERIOD_HI ((volatile unsigned short *)TIMER0_PERIOD_HI)
|
||||
#define pTIMER0_WIDTH_LO ((volatile unsigned short *)TIMER0_WIDTH_LO)
|
||||
#define pTIMER0_WIDTH_HI ((volatile unsigned short *)TIMER0_WIDTH_HI)
|
||||
#define pTIMER1_STATUS ((volatile unsigned short *)TIMER1_STATUS)
|
||||
#define pTIMER1_CONFIG ((volatile unsigned short *)TIMER1_CONFIG)
|
||||
#define pTIMER1_COUNTER_LO ((volatile unsigned short *)TIMER1_COUNTER_LO)
|
||||
#define pTIMER1_COUNTER_HI ((volatile unsigned short *)TIMER1_COUNTER_HI)
|
||||
#define pTIMER1_PERIOD_LO ((volatile unsigned short *)TIMER1_PERIOD_LO)
|
||||
#define pTIMER1_PERIOD_HI ((volatile unsigned short *)TIMER1_PERIOD_HI)
|
||||
#define pTIMER1_WIDTH_LO ((volatile unsigned short *)TIMER1_WIDTH_LO)
|
||||
#define pTIMER1_WIDTH_HI ((volatile unsigned short *)TIMER1_WIDTH_HI)
|
||||
#define pTIMER2_STATUS ((volatile unsigned short *)TIMER2_STATUS)
|
||||
#define pTIMER2_CONFIG ((volatile unsigned short *)TIMER2_CONFIG)
|
||||
#define pTIMER2_COUNTER_LO ((volatile unsigned short *)TIMER2_COUNTER_LO)
|
||||
#define pTIMER2_COUNTER_HI ((volatile unsigned short *)TIMER2_COUNTER_HI)
|
||||
#define pTIMER2_PERIOD_LO ((volatile unsigned short *)TIMER2_PERIOD_LO)
|
||||
#define pTIMER2_PERIOD_HI ((volatile unsigned short *)TIMER2_PERIOD_HI)
|
||||
#define pTIMER2_WIDTH_LO ((volatile unsigned short *)TIMER2_WIDTH_LO)
|
||||
#define pTIMER2_WIDTH_HI ((volatile unsigned short *)TIMER2_WIDTH_HI)
|
||||
|
||||
/* SPORT0 Controller (0xFFC0 2800-0xFFC0 2BFF) */
|
||||
#define pSPORT0_TX_CONFIG ((volatile unsigned short *)SPORT0_TX_CONFIG)
|
||||
#define pSPORT0_RX_CONFIG ((volatile unsigned short *)SPORT0_RX_CONFIG)
|
||||
#define pSPORT0_TX ((volatile short *)SPORT0_TX)
|
||||
#define pSPORT0_RX ((volatile short *)SPORT0_RX)
|
||||
#define pSPORT0_TSCLKDIV ((volatile unsigned short *)SPORT0_TSCLKDIV)
|
||||
#define pSPORT0_RSCLKDIV ((volatile unsigned short *)SPORT0_RSCLKDIV)
|
||||
#define pSPORT0_TFSDIV ((volatile unsigned short *)SPORT0_TFSDIV)
|
||||
#define pSPORT0_RFSDIV ((volatile unsigned short *)SPORT0_RFSDIV)
|
||||
#define pSPORT0_STAT ((volatile unsigned short *)SPORT0_STAT)
|
||||
#define pSPORT0_MTCS0 ((volatile unsigned short *)SPORT0_MTCS0)
|
||||
#define pSPORT0_MTCS1 ((volatile unsigned short *)SPORT0_MTCS1)
|
||||
#define pSPORT0_MTCS2 ((volatile unsigned short *)SPORT0_MTCS2)
|
||||
#define pSPORT0_MTCS3 ((volatile unsigned short *)SPORT0_MTCS3)
|
||||
#define pSPORT0_MTCS4 ((volatile unsigned short *)SPORT0_MTCS4)
|
||||
#define pSPORT0_MTCS5 ((volatile unsigned short *)SPORT0_MTCS5)
|
||||
#define pSPORT0_MTCS6 ((volatile unsigned short *)SPORT0_MTCS6)
|
||||
#define pSPORT0_MTCS7 ((volatile unsigned short *)SPORT0_MTCS7)
|
||||
#define pSPORT0_MRCS0 ((volatile unsigned short *)SPORT0_MRCS0)
|
||||
#define pSPORT0_MRCS1 ((volatile unsigned short *)SPORT0_MRCS1)
|
||||
#define pSPORT0_MRCS2 ((volatile unsigned short *)SPORT0_MRCS2)
|
||||
#define pSPORT0_MRCS3 ((volatile unsigned short *)SPORT0_MRCS3)
|
||||
#define pSPORT0_MRCS4 ((volatile unsigned short *)SPORT0_MRCS4)
|
||||
#define pSPORT0_MRCS5 ((volatile unsigned short *)SPORT0_MRCS5)
|
||||
#define pSPORT0_MRCS6 ((volatile unsigned short *)SPORT0_MRCS6)
|
||||
#define pSPORT0_MRCS7 ((volatile unsigned short *)SPORT0_MRCS7)
|
||||
#define pSPORT0_MCMC1 ((volatile unsigned short *)SPORT0_MCMC1)
|
||||
#define pSPORT0_MCMC2 ((volatile unsigned short *)SPORT0_MCMC2)
|
||||
#define pSPORT0_CURR_PTR_RX ((volatile unsigned short *)SPORT0_CURR_PTR_RX)
|
||||
#define pSPORT0_CONFIG_DMA_RX ((volatile unsigned short *)SPORT0_CONFIG_DMA_RX)
|
||||
#define pSPORT0_START_ADDR_HI_RX ((volatile unsigned short *)SPORT0_START_ADDR_HI_RX)
|
||||
#define pSPORT0_START_ADDR_LO_RX ((volatile unsigned short *)SPORT0_START_ADDR_LO_RX)
|
||||
#define pSPORT0_COUNT_RX ((volatile unsigned short *)SPORT0_COUNT_RX)
|
||||
#define pSPORT0_NEXT_DESCR_RX ((volatile unsigned short *)SPORT0_NEXT_DESCR_RX)
|
||||
#define pSPORT0_DESCR_RDY_RX ((volatile unsigned short *)SPORT0_DESCR_RDY_RX)
|
||||
#define pSPORT0_IRQSTAT_RX ((volatile unsigned short *)SPORT0_IRQSTAT_RX)
|
||||
#define pSPORT0_CURR_PTR_TX ((volatile unsigned short *)SPORT0_CURR_PTR_TX)
|
||||
#define pSPORT0_CONFIG_DMA_TX ((volatile unsigned short *)SPORT0_CONFIG_DMA_TX)
|
||||
#define pSPORT0_START_ADDR_HI_TX ((volatile unsigned short *)SPORT0_START_ADDR_HI_TX)
|
||||
#define pSPORT0_START_ADDR_LO_TX ((volatile unsigned short *)SPORT0_START_ADDR_LO_TX)
|
||||
#define pSPORT0_COUNT_TX ((volatile unsigned short *)SPORT0_COUNT_TX)
|
||||
#define pSPORT0_NEXT_DESCR_TX ((volatile unsigned short *)SPORT0_NEXT_DESCR_TX)
|
||||
#define pSPORT0_DESCR_RDY_TX ((volatile unsigned short *)SPORT0_DESCR_RDY_TX)
|
||||
#define pSPORT0_IRQSTAT_TX ((volatile unsigned short *)SPORT0_IRQSTAT_TX)
|
||||
|
||||
/* SPORT1 Controller (0xFFC0 2C00-0xFFC0 2FFF) */
|
||||
#define pSPORT1_TX_CONFIG ((volatile unsigned short *)SPORT1_TX_CONFIG)
|
||||
#define pSPORT1_RX_CONFIG ((volatile unsigned short *)SPORT1_RX_CONFIG)
|
||||
#define pSPORT1_TX ((volatile short *)SPORT1_TX)
|
||||
#define pSPORT1_RX ((volatile short *)SPORT1_RX)
|
||||
#define pSPORT1_TSCLKDIV ((volatile unsigned short *)SPORT1_TSCLKDIV)
|
||||
#define pSPORT1_RSCLKDIV ((volatile unsigned short *)SPORT1_RSCLKDIV)
|
||||
#define pSPORT1_TFSDIV ((volatile unsigned short *)SPORT1_TFSDIV)
|
||||
#define pSPORT1_RFSDIV ((volatile unsigned short *)SPORT1_RFSDIV)
|
||||
#define pSPORT1_STAT ((volatile unsigned short *)SPORT1_STAT)
|
||||
#define pSPORT1_MTCS0 ((volatile unsigned short *)SPORT1_MTCS0)
|
||||
#define pSPORT1_MTCS1 ((volatile unsigned short *)SPORT1_MTCS1)
|
||||
#define pSPORT1_MTCS2 ((volatile unsigned short *)SPORT1_MTCS2)
|
||||
#define pSPORT1_MTCS3 ((volatile unsigned short *)SPORT1_MTCS3)
|
||||
#define pSPORT1_MTCS4 ((volatile unsigned short *)SPORT1_MTCS4)
|
||||
#define pSPORT1_MTCS5 ((volatile unsigned short *)SPORT1_MTCS5)
|
||||
#define pSPORT1_MTCS6 ((volatile unsigned short *)SPORT1_MTCS6)
|
||||
#define pSPORT1_MTCS7 ((volatile unsigned short *)SPORT1_MTCS7)
|
||||
#define pSPORT1_MRCS0 ((volatile unsigned short *)SPORT1_MRCS0)
|
||||
#define pSPORT1_MRCS1 ((volatile unsigned short *)SPORT1_MRCS1)
|
||||
#define pSPORT1_MRCS2 ((volatile unsigned short *)SPORT1_MRCS2)
|
||||
#define pSPORT1_MRCS3 ((volatile unsigned short *)SPORT1_MRCS3)
|
||||
#define pSPORT1_MRCS4 ((volatile unsigned short *)SPORT1_MRCS4)
|
||||
#define pSPORT1_MRCS5 ((volatile unsigned short *)SPORT1_MRCS5)
|
||||
#define pSPORT1_MRCS6 ((volatile unsigned short *)SPORT1_MRCS6)
|
||||
#define pSPORT1_MRCS7 ((volatile unsigned short *)SPORT1_MRCS7)
|
||||
#define pSPORT1_MCMC1 ((volatile unsigned short *)SPORT1_MCMC1)
|
||||
#define pSPORT1_MCMC2 ((volatile unsigned short *)SPORT1_MCMC2)
|
||||
#define pSPORT1_CURR_PTR_RX ((volatile unsigned short *)SPORT1_CURR_PTR_RX)
|
||||
#define pSPORT1_CONFIG_DMA_RX ((volatile unsigned short *)SPORT1_CONFIG_DMA_RX)
|
||||
#define pSPORT1_START_ADDR_HI_RX ((volatile unsigned short *)SPORT1_START_ADDR_HI_RX)
|
||||
#define pSPORT1_START_ADDR_LO_RX ((volatile unsigned short *)SPORT1_START_ADDR_LO_RX)
|
||||
#define pSPORT1_COUNT_RX ((volatile unsigned short *)SPORT1_COUNT_RX)
|
||||
#define pSPORT1_NEXT_DESCR_RX ((volatile unsigned short *)SPORT1_NEXT_DESCR_RX)
|
||||
#define pSPORT1_DESCR_RDY_RX ((volatile unsigned short *)SPORT1_DESCR_RDY_RX)
|
||||
#define pSPORT1_IRQSTAT_RX ((volatile unsigned short *)SPORT1_IRQSTAT_RX)
|
||||
#define pSPORT1_CURR_PTR_TX ((volatile unsigned short *)SPORT1_CURR_PTR_TX)
|
||||
#define pSPORT1_CONFIG_DMA_TX ((volatile unsigned short *)SPORT1_CONFIG_DMA_TX)
|
||||
#define pSPORT1_START_ADDR_HI_TX ((volatile unsigned short *)SPORT1_START_ADDR_HI_TX)
|
||||
#define pSPORT1_START_ADDR_LO_TX ((volatile unsigned short *)SPORT1_START_ADDR_LO_TX)
|
||||
#define pSPORT1_COUNT_TX ((volatile unsigned short *)SPORT1_COUNT_TX)
|
||||
#define pSPORT1_NEXT_DESCR_TX ((volatile unsigned short *)SPORT1_NEXT_DESCR_TX)
|
||||
#define pSPORT1_DESCR_RDY_TX ((volatile unsigned short *)SPORT1_DESCR_RDY_TX)
|
||||
#define pSPORT1_IRQSTAT_TX ((volatile unsigned short *)SPORT1_IRQSTAT_TX)
|
||||
|
||||
/* SPI 0 Controller (0xFFC0 3000-0xFFC0 33FF) */
|
||||
#define pSPI0_CTL ((volatile unsigned short *)SPI0_CTL)
|
||||
#define pSPI0_FLG ((volatile unsigned short *)SPI0_FLG)
|
||||
#define pSPI0_ST ((volatile unsigned short *)SPI0_ST)
|
||||
#define pSPI0_TDBR ((volatile unsigned short *)SPI0_TDBR)
|
||||
#define pSPI0_RDBR ((volatile unsigned short *)SPI0_RDBR)
|
||||
#define pSPI0_BAUD ((volatile unsigned short *)SPI0_BAUD)
|
||||
#define pSPI0_SHADOW ((volatile unsigned short *)SPI0_SHADOW)
|
||||
#define pSPI0_CURR_PTR ((volatile unsigned short *)SPI0_CURR_PTR)
|
||||
#define pSPI0_CONFIG ((volatile unsigned short *)SPI0_CONFIG)
|
||||
#define pSPI0_START_ADDR_HI ((volatile unsigned short *)SPI0_START_ADDR_HI)
|
||||
#define pSPI0_START_ADDR_LO ((volatile unsigned short *)SPI0_START_ADDR_LO)
|
||||
#define pSPI0_COUNT ((volatile unsigned short *)SPI0_COUNT)
|
||||
#define pSPI0_NEXT_DESCR ((volatile unsigned short *)SPI0_NEXT_DESCR)
|
||||
#define pSPI0_DESCR_RDY ((volatile unsigned short *)SPI0_DESCR_RDY)
|
||||
#define pSPI0_DMA_INT ((volatile unsigned short *)SPI0_DMA_INT)
|
||||
|
||||
/* SPI 1 Controller (0xFFC0 3400-0xFFC0 37FF) */
|
||||
#define pSPI1_CTL ((volatile unsigned short *)SPI1_CTL)
|
||||
#define pSPI1_FLG ((volatile unsigned short *)SPI1_FLG)
|
||||
#define pSPI1_ST ((volatile unsigned short *)SPI1_ST)
|
||||
#define pSPI1_TDBR ((volatile unsigned short *)SPI1_TDBR)
|
||||
#define pSPI1_RDBR ((volatile unsigned short *)SPI1_RDBR)
|
||||
#define pSPI1_BAUD ((volatile unsigned short *)SPI1_BAUD)
|
||||
#define pSPI1_SHADOW ((volatile unsigned short *)SPI1_SHADOW)
|
||||
#define pSPI1_CURR_PTR ((volatile unsigned short *)SPI1_CURR_PTR)
|
||||
#define pSPI1_CONFIG ((volatile unsigned short *)SPI1_CONFIG)
|
||||
#define pSPI1_START_ADDR_HI ((volatile unsigned short *)SPI1_START_ADDR_HI)
|
||||
#define pSPI1_START_ADDR_LO ((volatile unsigned short *)SPI1_START_ADDR_LO)
|
||||
#define pSPI1_COUNT ((volatile unsigned short *)SPI1_COUNT)
|
||||
#define pSPI1_NEXT_DESCR ((volatile unsigned short *)SPI1_NEXT_DESCR)
|
||||
#define pSPI1_DESCR_RDY ((volatile unsigned short *)SPI1_DESCR_RDY)
|
||||
#define pSPI1_DMA_INT ((volatile unsigned short *)SPI1_DMA_INT)
|
||||
|
||||
/* Memory DMA Controller (0xFFC0 3800-0xFFC0 3BFF) */
|
||||
#define pMDD_DCP ((volatile unsigned short *)MDD_DCP)
|
||||
#define pMDD_DCFG ((volatile unsigned short *)MDD_DCFG)
|
||||
#define pMDD_DSAH ((volatile unsigned short *)MDD_DSAH)
|
||||
#define pMDD_DSAL ((volatile unsigned short *)MDD_DSAL)
|
||||
#define pMDD_DCT ((volatile unsigned short *)MDD_DCT)
|
||||
#define pMDD_DND ((volatile unsigned short *)MDD_DND)
|
||||
#define pMDD_DDR ((volatile unsigned short *)MDD_DDR)
|
||||
#define pMDD_DI ((volatile unsigned short *)MDD_DI)
|
||||
#define pMDS_DCP ((volatile unsigned short *)MDS_DCP)
|
||||
#define pMDS_DCFG ((volatile unsigned short *)MDS_DCFG)
|
||||
#define pMDS_DSAH ((volatile unsigned short *)MDS_DSAH)
|
||||
#define pMDS_DSAL ((volatile unsigned short *)MDS_DSAL)
|
||||
#define pMDS_DCT ((volatile unsigned short *)MDS_DCT)
|
||||
#define pMDS_DND ((volatile unsigned short *)MDS_DND)
|
||||
#define pMDS_DDR ((volatile unsigned short *)MDS_DDR)
|
||||
#define pMDS_DI ((volatile unsigned short *)MDS_DI)
|
||||
|
||||
/* PCI Bridge PAB Registers (0xFFC0 4000-0xFFC0 43FF) */
|
||||
#define pPCI_CTL ((volatile unsigned short *)PCI_CTL)
|
||||
#define pPCI_STAT ((volatile unsigned long *)PCI_STAT)
|
||||
#define pPCI_ICTL ((volatile unsigned long *)PCI_ICTL)
|
||||
#define pPCI_MBAP (_PTR_TO_VOL_VOID_PTR PCI_MBAP)
|
||||
#define pPCI_IBAP (_PTR_TO_VOL_VOID_PTR PCI_IBAP)
|
||||
#define pPCI_CBAP (_PTR_TO_VOL_VOID_PTR PCI_CBAP)
|
||||
#define pPCI_TMBAP (_PTR_TO_VOL_VOID_PTR PCI_TMBAP)
|
||||
#define pPCI_TIBAP (_PTR_TO_VOL_VOID_PTR PCI_TIBAP)
|
||||
|
||||
/* PCI Bridge External Access Bus Registers (0xEEFF FF00-0xEEFF FFFF) */
|
||||
#define pPCI_DMBARM ((volatile unsigned long *)PCI_DMBARM)
|
||||
#define pPCI_DIBARM ((volatile unsigned long *)PCI_DIBARM)
|
||||
#define pPCI_CFG_DIC ((volatile unsigned long *)PCI_CFG_DIC)
|
||||
#define pPCI_CFG_VIC ((volatile unsigned long *)PCI_CFG_VIC)
|
||||
#define pPCI_CFG_STAT ((volatile unsigned long *)PCI_CFG_STAT)
|
||||
#define pPCI_CFG_CMD ((volatile unsigned long *)PCI_CFG_CMD)
|
||||
#define pPCI_CFG_CC ((volatile unsigned long *)PCI_CFG_CC)
|
||||
#define pPCI_CFG_RID ((volatile unsigned long *)PCI_CFG_RID)
|
||||
#define pPCI_CFG_BIST ((volatile unsigned long *)PCI_CFG_BIST)
|
||||
#define pPCI_CFG_HT ((volatile unsigned long *)PCI_CFG_HT)
|
||||
#define pPCI_CFG_MLT ((volatile unsigned long *)PCI_CFG_MLT)
|
||||
#define pPCI_CFG_CLS ((volatile unsigned long *)PCI_CFG_CLS)
|
||||
#define pPCI_CFG_MBAR ((volatile unsigned long *)PCI_CFG_MBAR)
|
||||
#define pPCI_CFG_IBAR ((volatile unsigned long *)PCI_CFG_IBAR)
|
||||
#define pPCI_CFG_SID ((volatile unsigned long *)PCI_CFG_SID)
|
||||
#define pPCI_CFG_SVID ((volatile unsigned long *)PCI_CFG_SVID)
|
||||
#define pPCI_CFG_MAXL ((volatile unsigned long *)PCI_CFG_MAXL)
|
||||
#define pPCI_CFG_MING ((volatile unsigned long *)PCI_CFG_MING)
|
||||
#define pPCI_CFG_IP ((volatile unsigned long *)PCI_CFG_IP)
|
||||
#define pPCI_CFG_IL ((volatile unsigned long *)PCI_CFG_IL)
|
||||
#define pPCI_HMCTL ((volatile unsigned long *)PCI_HMCTL)
|
||||
|
||||
/* System Bus Interface Unit (0xFFC0 4800-0xFFC0 4FFF) */
|
||||
#define pDMA_DBP ((volatile unsigned short *)DMA_DBP)
|
||||
#define pDB_ACOMP (_PTR_TO_VOL_VOID_PTR DB_ACOMP)
|
||||
#define pDB_CCOMP ((volatile unsigned long *)DB_CCOMP)
|
||||
|
||||
#ifdef _MISRA_RULES
|
||||
#pragma diag(pop)
|
||||
#endif /* _MISRA_RULES */
|
||||
|
||||
#endif /* _CDEF_BF535_H */
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user