From 173c8b84635b5e372b784dcee4917d12218e2fd2 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Sun, 29 Nov 2009 00:58:16 +0100 Subject: [PATCH 1/1] Update of the build and patches to rtems-4.7.1 --- .../2.16.1.0/binutils-2.15-psignal.patch | 40 - .../2.16.1.0/binutils-bfd-soname-mod.patch | 26 - .../binutils-redefinition-mname.patch | 13 - .../2.16.1.0/binutils-skip-comments.patch | 95 -- binutils-patches/2.16.1.0/cross-gprof.patch | 22 - binutils-patches/2.16.1.0/series | 5 - .../2.17/binutils-2.17-rtems4.8-20061021.diff | 556 +++++++ binutils-patches/2.17/series | 1 + .../gcc-core-4.1.2-rtems4.8-20070405.diff | 102 ++ gcc-patches/4.1.2/series | 1 + .../newlib-1.15.0-rtems4.8-20070413.diff | 1449 +++++++++++++++++ newlib-patches/1.15.0/series | 1 + .../binutils/binutils-arm9-rtems.cfg | 13 +- rtems-build/arm-csb336/binutils/control | 11 + rtems-build/arm-csb336/gcc/control | 11 + rtems-build/arm-csb336/gcc/gcc-arm9-rtems.cfg | 3 +- .../arm-csb336/rtems/arm-rtems-sys.cfg | 0 rtems-build/arm-csb336/rtems/control | 11 + .../m68k-m5235bcc/gdb/gdb-m68k-bdm-elf.cfg | 0 rtems-patches/control | 11 + .../current/rtems-clone-mrm332-to-mo376.patch | 1423 ++++++++-------- .../current/rtems-clone-ss555-to-ec555.patch | 187 +-- .../current/rtems-mo376-add-to-configs.patch | 20 +- .../current/rtems-mo376-m68376-updates.patch | 105 +- .../current/rtems-readlink-type-fix.patch | 21 + .../rtems-update-mrm332-to-mo376.patch | 127 +- .../current/rtems-update-ss555-to-ec555.patch | 55 +- .../current/rtems-usleep-type-fix.patch | 19 + rtems-patches/current/series | 6 +- 29 files changed, 3165 insertions(+), 1169 deletions(-) delete mode 100644 binutils-patches/2.16.1.0/binutils-2.15-psignal.patch delete mode 100644 binutils-patches/2.16.1.0/binutils-bfd-soname-mod.patch delete mode 100644 binutils-patches/2.16.1.0/binutils-redefinition-mname.patch delete mode 100644 binutils-patches/2.16.1.0/binutils-skip-comments.patch delete mode 100644 binutils-patches/2.16.1.0/cross-gprof.patch delete mode 100644 binutils-patches/2.16.1.0/series create mode 100644 binutils-patches/2.17/binutils-2.17-rtems4.8-20061021.diff create mode 100644 binutils-patches/2.17/series create mode 100644 gcc-patches/4.1.2/gcc-core-4.1.2-rtems4.8-20070405.diff create mode 100644 gcc-patches/4.1.2/series create mode 100644 newlib-patches/1.15.0/newlib-1.15.0-rtems4.8-20070413.diff create mode 100644 newlib-patches/1.15.0/series mode change 100644 => 100755 rtems-build/arm-csb336/binutils/binutils-arm9-rtems.cfg create mode 100644 rtems-build/arm-csb336/binutils/control create mode 100644 rtems-build/arm-csb336/gcc/control mode change 100644 => 100755 rtems-build/arm-csb336/gcc/gcc-arm9-rtems.cfg mode change 100644 => 100755 rtems-build/arm-csb336/rtems/arm-rtems-sys.cfg create mode 100644 rtems-build/arm-csb336/rtems/control mode change 100755 => 100644 rtems-build/m68k-m5235bcc/gdb/gdb-m68k-bdm-elf.cfg create mode 100644 rtems-patches/control create mode 100644 rtems-patches/current/rtems-readlink-type-fix.patch create mode 100644 rtems-patches/current/rtems-usleep-type-fix.patch diff --git a/binutils-patches/2.16.1.0/binutils-2.15-psignal.patch b/binutils-patches/2.16.1.0/binutils-2.15-psignal.patch deleted file mode 100644 index 98fa600..0000000 --- a/binutils-patches/2.16.1.0/binutils-2.15-psignal.patch +++ /dev/null @@ -1,40 +0,0 @@ -Make psignal prototype in libiberty match that in glibc. - -Fixes: - -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c: In function `psignal': -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:563: argument `signo' doesn't match prototype -/usr/include/signal.h:131: prototype declaration -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:563: argument `message' doesn't match prototype -/usr/include/signal.h:131: prototype declaration -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:568: warning: comparison between signed and unsigned -mprotect... make[1]: *** [strsignal.o] Error 1 -make[1]: Leaving directory `/export/hda3/dkegel/queue/jobdir.produser_cpsm17/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.1.3/build-binutils/libiberty' -make: *** [all-libiberty] Error 2 - -when building on red hat 7.1 -though it's a bit of a mystery why libiberty's psignal is being compiled at -all, since red hat 7.1's glibc supports psignal (hence the error message) - ---- binutils-2.15/libiberty/strsignal.c.old 2005-04-18 13:57:40.000000000 -0700 -+++ binutils-2.15/libiberty/strsignal.c 2005-04-18 13:59:09.000000000 -0700 -@@ -544,7 +544,7 @@ - - /* - --@deftypefn Supplemental void psignal (unsigned @var{signo}, char *@var{message}) -+@deftypefn Supplemental void psignal (int @var{signo}, const char *@var{message}) - - Print @var{message} to the standard error, followed by a colon, - followed by the description of the signal specified by @var{signo}, -@@ -557,9 +557,7 @@ - #ifndef HAVE_PSIGNAL - - void --psignal (signo, message) -- unsigned signo; -- char *message; -+psignal (int signo, const char *message) - { - if (signal_names == NULL) - { diff --git a/binutils-patches/2.16.1.0/binutils-bfd-soname-mod.patch b/binutils-patches/2.16.1.0/binutils-bfd-soname-mod.patch deleted file mode 100644 index d3b3e5a..0000000 --- a/binutils-patches/2.16.1.0/binutils-bfd-soname-mod.patch +++ /dev/null @@ -1,26 +0,0 @@ -Index: binutils-2.16.1/bfd/configure -=================================================================== ---- binutils-2.16.1.orig/bfd/configure -+++ binutils-2.16.1/bfd/configure -@@ -2834,7 +2834,7 @@ fi - - # Define the identity of the package. - PACKAGE=bfd -- VERSION=2.16.1 -+ VERSION=2.16.1.0 - - - cat >>confdefs.h <<_ACEOF -Index: binutils-2.16.1/bfd/configure.in -=================================================================== ---- binutils-2.16.1.orig/bfd/configure.in -+++ binutils-2.16.1/bfd/configure.in -@@ -8,7 +8,7 @@ AC_CONFIG_SRCDIR([libbfd.c]) - AC_CANONICAL_TARGET - AC_ISC_POSIX - --AM_INIT_AUTOMAKE(bfd, 2.16.1) -+AM_INIT_AUTOMAKE(bfd, 2.16.1.0) - - dnl These must be called before AM_PROG_LIBTOOL, because it may want - dnl to call AC_CHECK_PROG. diff --git a/binutils-patches/2.16.1.0/binutils-redefinition-mname.patch b/binutils-patches/2.16.1.0/binutils-redefinition-mname.patch deleted file mode 100644 index ddef4e6..0000000 --- a/binutils-patches/2.16.1.0/binutils-redefinition-mname.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: binutils-2.16.1/binutils/dlltool.c -=================================================================== ---- binutils-2.16.1.orig/binutils/dlltool.c -+++ binutils-2.16.1/binutils/dlltool.c -@@ -389,7 +389,7 @@ static int verbose; - static FILE *output_def; - static FILE *base_file; - --#ifdef DLLTOOL_ARM -+#if defined(DLLTOOL_ARM) && !defined(DLLTOOL_I386) - #ifdef DLLTOOL_ARM_EPOC - static const char *mname = "arm-epoc"; - #else diff --git a/binutils-patches/2.16.1.0/binutils-skip-comments.patch b/binutils-patches/2.16.1.0/binutils-skip-comments.patch deleted file mode 100644 index 0ca9a47..0000000 --- a/binutils-patches/2.16.1.0/binutils-skip-comments.patch +++ /dev/null @@ -1,95 +0,0 @@ -[removed first hunk so it would apply to 2.16.1 - copyright date already updated - dank] - -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html -Fixes -localealias.s:544: Error: junk at end of line, first unrecognized character is `,' -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3 - -Paths adjusted to match crosstool's patcher. - -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de -From: Andreas Schwab -To: Nathan Sidwell -Cc: Ian Lance Taylor , binutils at sources dot redhat dot com -Date: Fri, 23 Apr 2004 22:27:19 +0200 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line - -Nathan Sidwell writes: - -> Index: read.c -> =================================================================== -> RCS file: /cvs/src/src/gas/read.c,v -> retrieving revision 1.76 -> diff -c -3 -p -r1.76 read.c -> *** read.c 12 Mar 2004 17:48:12 -0000 1.76 -> --- read.c 18 Mar 2004 09:56:05 -0000 -> *************** read_a_source_file (char *name) -> *** 1053,1059 **** -> #endif -> input_line_pointer--; -> /* Report unknown char as ignored. */ -> ! ignore_rest_of_line (); -> } -> -> #ifdef md_after_pass_hook -> --- 1053,1059 ---- -> #endif -> input_line_pointer--; -> /* Report unknown char as ignored. */ -> ! demand_empty_rest_of_line (); -> } -> -> #ifdef md_after_pass_hook - -This means that the unknown character is no longer ignored, despite the -comment. As a side effect a line starting with a line comment character -not followed by APP in NO_APP mode now triggers an error instead of just a -warning, breaking builds of glibc on m68k-linux. Earlier in -read_a_source_file where #APP is handled there is another comment that -claims that unknown comments are ignored, when in fact they aren't (only -the initial line comment character is skipped). - -Note that the presence of #APP will mess up the line counters, but -that appears to be difficult to fix. - -Andreas. - -2004-04-23 Andreas Schwab - - * read.c (read_a_source_file): Ignore unknown text after line - comment character. Fix misleading comment. - ---- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200 -+++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200 -@@ -950,10 +950,14 @@ read_a_source_file (char *name) - unsigned int new_length; - char *tmp_buf = 0; - -- bump_line_counters (); - s = input_line_pointer; - if (strncmp (s, "APP\n", 4)) -- continue; /* We ignore it */ -+ { -+ /* We ignore it */ -+ ignore_rest_of_line (); -+ continue; -+ } -+ bump_line_counters (); - s += 4; - - sb_new (&sbuf); -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name) - continue; - #endif - input_line_pointer--; -- /* Report unknown char as ignored. */ -+ /* Report unknown char as error. */ - demand_empty_rest_of_line (); - } - - --- -Andreas Schwab, SuSE Labs, schwab@suse.de -SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany -Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 -"And now for something completely different." diff --git a/binutils-patches/2.16.1.0/cross-gprof.patch b/binutils-patches/2.16.1.0/cross-gprof.patch deleted file mode 100644 index ea6c18f..0000000 --- a/binutils-patches/2.16.1.0/cross-gprof.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- binutils-2.15/configure.old 2004-07-21 21:36:47.000000000 -0700 -+++ binutils-2.15/configure 2004-07-21 21:37:08.000000000 -0700 -@@ -999,7 +999,7 @@ - - # Some tools are only suitable for building in a "native" situation. - # Remove these if host!=target. --native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf" -+native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf" - - # Similarly, some are only suitable for cross toolchains. - # Remove these if host=target. ---- binutils-2.15/configure.in.old 2004-07-21 21:37:19.000000000 -0700 -+++ binutils-2.15/configure.in 2004-07-21 21:37:34.000000000 -0700 -@@ -236,7 +236,7 @@ - - # Some tools are only suitable for building in a "native" situation. - # Remove these if host!=target. --native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf" -+native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf" - - # Similarly, some are only suitable for cross toolchains. - # Remove these if host=target. diff --git a/binutils-patches/2.16.1.0/series b/binutils-patches/2.16.1.0/series deleted file mode 100644 index 33a573f..0000000 --- a/binutils-patches/2.16.1.0/series +++ /dev/null @@ -1,5 +0,0 @@ -binutils-2.15-psignal.patch -binutils-skip-comments.patch -cross-gprof.patch -binutils-redefinition-mname.patch -binutils-bfd-soname-mod.patch diff --git a/binutils-patches/2.17/binutils-2.17-rtems4.8-20061021.diff b/binutils-patches/2.17/binutils-2.17-rtems4.8-20061021.diff new file mode 100644 index 0000000..a5b2216 --- /dev/null +++ b/binutils-patches/2.17/binutils-2.17-rtems4.8-20061021.diff @@ -0,0 +1,556 @@ +diff -uNr binutils-2.17.orig/bfd/bfd-in2.h binutils-2.17/bfd/bfd-in2.h +--- binutils-2.17.orig/bfd/bfd-in2.h 2006-03-26 01:38:42.000000000 +0100 ++++ binutils-2.17/bfd/bfd-in2.h 2006-10-21 13:53:23.000000000 +0200 +@@ -643,6 +643,12 @@ + DYN_NO_NEEDED = 8 + }; + ++enum notice_asneeded_action { ++ notice_as_needed, ++ notice_not_needed, ++ notice_needed ++}; ++ + extern bfd_boolean bfd_elf_record_link_assignment + (bfd *, struct bfd_link_info *, const char *, bfd_boolean, + bfd_boolean); +diff -uNr binutils-2.17.orig/bfd/bfd-in.h binutils-2.17/bfd/bfd-in.h +--- binutils-2.17.orig/bfd/bfd-in.h 2006-03-16 13:20:15.000000000 +0100 ++++ binutils-2.17/bfd/bfd-in.h 2006-10-21 13:53:23.000000000 +0200 +@@ -636,6 +636,12 @@ + DYN_NO_NEEDED = 8 + }; + ++enum notice_asneeded_action { ++ notice_as_needed, ++ notice_not_needed, ++ notice_needed ++}; ++ + extern bfd_boolean bfd_elf_record_link_assignment + (bfd *, struct bfd_link_info *, const char *, bfd_boolean, + bfd_boolean); +diff -uNr binutils-2.17.orig/bfd/ChangeLog binutils-2.17/bfd/ChangeLog +--- binutils-2.17.orig/bfd/ChangeLog 2006-06-23 20:18:16.000000000 +0200 ++++ binutils-2.17/bfd/ChangeLog 2006-10-21 13:53:23.000000000 +0200 +@@ -1,3 +1,25 @@ ++2006-08-08 Nick Clifton ++ ++ PR binutils/2724 ++ * coffcode.h (coff_new_section_hook): Only modify the section ++ symbol of sections which were created by the user. ++ ++2006-07-19 Alan Modra ++ ++ * bfd-in.h (enum notice_asneeded_action): Define. ++ * bfd-in2.h: Regenerate. ++ * elflink.c (elf_link_add_object_symbols): Call linker "notice" ++ function with NULL name for as-needed handling. ++ ++2006-07-12 Matthew R. Dempsky ++ ++ * cpu-m68k.c (bfd_m68k_compatible): Handle CPU32. ++ ++2006-06-23 Daniel Jacobowitz ++ ++ * Makefile.am: Clear RELEASE. ++ * Makefile.in: Regenerated. ++ + 2006-06-23 Daniel Jacobowitz + + * configure.in: Update version to 2.17. +diff -uNr binutils-2.17.orig/bfd/coffcode.h binutils-2.17/bfd/coffcode.h +--- binutils-2.17.orig/bfd/coffcode.h 2005-10-25 19:40:09.000000000 +0200 ++++ binutils-2.17/bfd/coffcode.h 2006-10-21 13:53:24.000000000 +0200 +@@ -1546,9 +1546,6 @@ + static bfd_boolean + coff_new_section_hook (bfd * abfd, asection * section) + { +- combined_entry_type *native; +- bfd_size_type amt; +- + section->alignment_power = COFF_DEFAULT_SECTION_ALIGNMENT_POWER; + + #ifdef RS6000COFF_C +@@ -1560,27 +1557,34 @@ + section->alignment_power = bfd_xcoff_data_align_power (abfd); + #endif + +- /* Allocate aux records for section symbols, to store size and +- related info. +- +- @@ The 10 is a guess at a plausible maximum number of aux entries +- (but shouldn't be a constant). */ +- amt = sizeof (combined_entry_type) * 10; +- native = bfd_zalloc (abfd, amt); +- if (native == NULL) +- return FALSE; +- +- /* We don't need to set up n_name, n_value, or n_scnum in the native +- symbol information, since they'll be overridden by the BFD symbol +- anyhow. However, we do need to set the type and storage class, +- in case this symbol winds up getting written out. The value 0 +- for n_numaux is already correct. */ +- +- native->u.syment.n_type = T_NULL; +- native->u.syment.n_sclass = C_STAT; ++ /* PR binutils/2724: Only real sections have a symbol that ++ has the coff_symbol_type structure allocated for it. */ ++ if (! bfd_is_const_section (section)) ++ { ++ combined_entry_type *native; ++ bfd_size_type amt; ++ ++ /* Allocate aux records for section symbols, to store size and ++ related info. ++ ++ @@ The 10 is a guess at a plausible maximum number of aux entries ++ (but shouldn't be a constant). */ ++ amt = sizeof (combined_entry_type) * 10; ++ native = bfd_zalloc (abfd, amt); ++ if (native == NULL) ++ return FALSE; + +- coffsymbol (section->symbol)->native = native; ++ /* We don't need to set up n_name, n_value, or n_scnum in the native ++ symbol information, since they'll be overridden by the BFD symbol ++ anyhow. However, we do need to set the type and storage class, ++ in case this symbol winds up getting written out. The value 0 ++ for n_numaux is already correct. */ ++ native->u.syment.n_type = T_NULL; ++ native->u.syment.n_sclass = C_STAT; + ++ coffsymbol (section->symbol)->native = native; ++ } ++ + coff_set_custom_section_alignment (abfd, section, + coff_section_alignment_table, + coff_section_alignment_table_size); +diff -uNr binutils-2.17.orig/bfd/cpu-m68k.c binutils-2.17/bfd/cpu-m68k.c +--- binutils-2.17.orig/bfd/cpu-m68k.c 2006-03-25 11:24:27.000000000 +0100 ++++ binutils-2.17/bfd/cpu-m68k.c 2006-10-21 13:53:24.000000000 +0200 +@@ -202,6 +202,9 @@ + if (a->mach <= bfd_mach_m68060 && b->mach <= bfd_mach_m68060) + /* Merge m68k machine. */ + return a->mach > b->mach ? a : b; ++ else if (a->mach == bfd_mach_cpu32 && b->mach == bfd_mach_cpu32) ++ /* CPU32 is compatible with itself. */ ++ return a; + else if (a->mach >= bfd_mach_mcf_isa_a_nodiv + && b->mach >= bfd_mach_mcf_isa_a_nodiv) + { +diff -uNr binutils-2.17.orig/bfd/elflink.c binutils-2.17/bfd/elflink.c +--- binutils-2.17.orig/bfd/elflink.c 2006-05-22 17:06:36.000000000 +0200 ++++ binutils-2.17/bfd/elflink.c 2006-10-21 13:53:24.000000000 +0200 +@@ -3496,6 +3496,13 @@ + if (alloc_mark == NULL) + goto error_free_vers; + ++ /* Make a special call to the linker "notice" function to ++ tell it that we are about to handle an as-needed lib. */ ++ if (!(*info->callbacks->notice) (info, NULL, abfd, NULL, ++ notice_as_needed)) ++ return FALSE; ++ ++ + /* Clone the symbol table and sym hashes. Remember some + pointers into the symbol table, and dynamic symbol count. */ + old_hash = (char *) old_tab + tabsize; +@@ -4169,6 +4176,12 @@ + } + } + ++ /* Make a special call to the linker "notice" function to ++ tell it that symbols added for crefs may need to be removed. */ ++ if (!(*info->callbacks->notice) (info, NULL, abfd, NULL, ++ notice_not_needed)) ++ return FALSE; ++ + free (old_tab); + objalloc_free_block ((struct objalloc *) htab->root.table.memory, + alloc_mark); +@@ -4179,6 +4192,9 @@ + + if (old_tab != NULL) + { ++ if (!(*info->callbacks->notice) (info, NULL, abfd, NULL, ++ notice_needed)) ++ return FALSE; + free (old_tab); + old_tab = NULL; + } +diff -uNr binutils-2.17.orig/bfd/version.h binutils-2.17/bfd/version.h +--- binutils-2.17.orig/bfd/version.h 2006-06-23 20:14:41.000000000 +0200 ++++ binutils-2.17/bfd/version.h 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,3 @@ +-#define BFD_VERSION_DATE 20060623 ++#define BFD_VERSION_DATE 20061021 + #define BFD_VERSION @bfd_version@ + #define BFD_VERSION_STRING @bfd_version_string@ +diff -uNr binutils-2.17.orig/binutils/ChangeLog binutils-2.17/binutils/ChangeLog +--- binutils-2.17.orig/binutils/ChangeLog 2006-06-12 15:05:03.000000000 +0200 ++++ binutils-2.17/binutils/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,8 @@ ++2006-08-15 Nick Clifton ++ ++ PR binutils/3039 ++ * wrstabs.c (stab_tag_type): Initialize 'size'. ++ + 2006-06-07 Joseph S. Myers + + * po/Make-in (pdf, ps): New dummy targets. +diff -uNr binutils-2.17.orig/binutils/wrstabs.c binutils-2.17/binutils/wrstabs.c +--- binutils-2.17.orig/binutils/wrstabs.c 2006-03-16 13:20:16.000000000 +0100 ++++ binutils-2.17/binutils/wrstabs.c 2006-10-21 13:53:24.000000000 +0200 +@@ -1869,7 +1869,7 @@ + { + struct stab_write_handle *info = (struct stab_write_handle *) p; + long index; +- unsigned int size; ++ unsigned int size = 0; + + index = stab_get_struct_index (info, name, id, kind, &size); + if (index < 0) +diff -uNr binutils-2.17.orig/gas/ChangeLog binutils-2.17/gas/ChangeLog +--- binutils-2.17.orig/gas/ChangeLog 2006-06-12 15:05:03.000000000 +0200 ++++ binutils-2.17/gas/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,8 @@ ++2006-07-19 Mat Hostetter ++ ++ * symbols.c (report_op_error): Fix pasto. Don't use as_bad_where ++ when file and line unknown. ++ + 2006-06-07 Joseph S. Myers + + * po/Make-in (pdf, ps): New dummy targets. +diff -uNr binutils-2.17.orig/gas/symbols.c binutils-2.17/gas/symbols.c +--- binutils-2.17.orig/gas/symbols.c 2006-01-09 18:14:40.000000000 +0100 ++++ binutils-2.17/gas/symbols.c 2006-10-21 13:53:24.000000000 +0200 +@@ -928,13 +928,11 @@ + && seg_right != undefined_section) + { + if (right) +- as_bad_where (file, line, +- _("invalid sections for operation on `%s' and `%s' setting `%s'"), +- S_GET_NAME (left), S_GET_NAME (right), S_GET_NAME (symp)); ++ as_bad (_("invalid sections for operation on `%s' and `%s' setting `%s'"), ++ S_GET_NAME (left), S_GET_NAME (right), S_GET_NAME (symp)); + else +- as_bad_where (file, line, +- _("invalid section for operation on `%s' setting `%s'"), +- S_GET_NAME (left), S_GET_NAME (symp)); ++ as_bad (_("invalid section for operation on `%s' setting `%s'"), ++ S_GET_NAME (left), S_GET_NAME (symp)); + } + } + } +diff -uNr binutils-2.17.orig/ld/ChangeLog binutils-2.17/ld/ChangeLog +--- binutils-2.17.orig/ld/ChangeLog 2006-06-12 15:07:28.000000000 +0200 ++++ binutils-2.17/ld/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,20 @@ ++2006-07-19 Alan Modra ++ ++ * ld.h (handle_asneeded_cref): Declare. ++ * ldcref.c: Include objalloc.h. ++ (old_table, old_tab, alloc_mark): New variables. ++ (tabsize, entsize, refsize, old_symcount): Likewise. ++ (add_cref): Use bfd_hash_allocate for refs. ++ (handle_asneeded_cref): New function. ++ * ldmain.c (notice): Call handle_asneeded_cref for NULL name. ++ ++2006-07-04 Daniel Jacobowitz ++ ++ Backport: ++ 2006-05-19 Alan Modra ++ * ldlang.c (lang_size_sections_1): Don't check mem regions for ++ os->ignored sections. ++ + 2006-06-12 Fred Fish + + * emulparams/elf32bmip.sh (OTHER_SECTIONS): Keep the +diff -uNr binutils-2.17.orig/ld/configure.tgt binutils-2.17/ld/configure.tgt +--- binutils-2.17.orig/ld/configure.tgt 2006-04-05 14:41:57.000000000 +0200 ++++ binutils-2.17/ld/configure.tgt 2006-10-21 13:53:24.000000000 +0200 +@@ -83,7 +83,8 @@ + avr-*-*) targ_emul=avr2 + targ_extra_emuls="avr1 avr3 avr4 avr5" + ;; +-bfin-*-elf) targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" ;; ++bfin-*-elf | bfin-*-rtems*) ++ targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" ;; + bfin-*-uclinux*) targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" ;; + cr16c-*-elf*) targ_emul=elf32cr16c + ;; +diff -uNr binutils-2.17.orig/ld/emulparams/h8300elf.sh binutils-2.17/ld/emulparams/h8300elf.sh +--- binutils-2.17.orig/ld/emulparams/h8300elf.sh 2005-12-22 18:43:34.000000000 +0100 ++++ binutils-2.17/ld/emulparams/h8300elf.sh 2006-10-21 13:53:24.000000000 +0200 +@@ -17,7 +17,7 @@ + TINY_DATA_SECTION=".tinydata 0xff8000 : + { + *(.tinydata) +- _tinydata = .; ++ ${RELOCATING+ _tinydata = .; } + }" + TINY_BSS_SECTION=".tinybss : AT (_tinydata) + { +diff -uNr binutils-2.17.orig/ld/ldcref.c binutils-2.17/ld/ldcref.c +--- binutils-2.17.orig/ld/ldcref.c 2006-03-16 13:20:16.000000000 +0100 ++++ binutils-2.17/ld/ldcref.c 2006-10-21 13:53:24.000000000 +0200 +@@ -27,6 +27,7 @@ + #include "sysdep.h" + #include "bfdlink.h" + #include "libiberty.h" ++#include "objalloc.h" + + #include "ld.h" + #include "ldmain.h" +@@ -101,6 +102,15 @@ + + static size_t cref_symcount; + ++/* Used to take a snapshot of the cref hash table when starting to ++ add syms from an as-needed library. */ ++static struct bfd_hash_entry **old_table; ++static unsigned int old_size; ++static void *old_tab; ++static void *alloc_mark; ++static size_t tabsize, entsize, refsize; ++static size_t old_symcount; ++ + /* Create an entry in a cref hash table. */ + + static struct bfd_hash_entry * +@@ -165,7 +175,9 @@ + + if (r == NULL) + { +- r = xmalloc (sizeof *r); ++ r = bfd_hash_allocate (&cref_table.root, sizeof *r); ++ if (r == NULL) ++ einfo (_("%X%P: cref alloc failed: %E\n")); + r->next = h->refs; + h->refs = r; + r->abfd = abfd; +@@ -182,6 +194,123 @@ + r->def = TRUE; + } + ++/* Called before loading an as-needed library to take a snapshot of ++ the cref hash table, and after we have loaded or found that the ++ library was not needed. */ ++ ++bfd_boolean ++handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED, ++ enum notice_asneeded_action act) ++{ ++ unsigned int i; ++ ++ if (!cref_initialized) ++ return TRUE; ++ ++ if (act == notice_as_needed) ++ { ++ char *old_ent, *old_ref; ++ ++ for (i = 0; i < cref_table.root.size; i++) ++ { ++ struct bfd_hash_entry *p; ++ struct cref_hash_entry *c; ++ struct cref_ref *r; ++ ++ for (p = cref_table.root.table[i]; p != NULL; p = p->next) ++ { ++ entsize += cref_table.root.entsize; ++ c = (struct cref_hash_entry *) p; ++ for (r = c->refs; r != NULL; r = r->next) ++ refsize += sizeof (struct cref_hash_entry); ++ } ++ } ++ ++ tabsize = cref_table.root.size * sizeof (struct bfd_hash_entry *); ++ old_tab = xmalloc (tabsize + entsize + refsize); ++ ++ alloc_mark = bfd_hash_allocate (&cref_table.root, 1); ++ if (alloc_mark == NULL) ++ return FALSE; ++ ++ memcpy (old_tab, cref_table.root.table, tabsize); ++ old_ent = (char *) old_tab + tabsize; ++ old_ref = (char *) old_ent + entsize; ++ old_table = cref_table.root.table; ++ old_size = cref_table.root.size; ++ old_symcount = cref_symcount; ++ ++ for (i = 0; i < cref_table.root.size; i++) ++ { ++ struct bfd_hash_entry *p; ++ struct cref_hash_entry *c; ++ struct cref_ref *r; ++ ++ for (p = cref_table.root.table[i]; p != NULL; p = p->next) ++ { ++ memcpy (old_ent, p, cref_table.root.entsize); ++ old_ent = (char *) old_ent + cref_table.root.entsize; ++ c = (struct cref_hash_entry *) p; ++ for (r = c->refs; r != NULL; r = r->next) ++ { ++ memcpy (old_ref, r, sizeof (struct cref_hash_entry)); ++ old_ref = (char *) old_ref + sizeof (struct cref_hash_entry); ++ } ++ } ++ } ++ return TRUE; ++ } ++ ++ if (act == notice_not_needed) ++ { ++ char *old_ent, *old_ref; ++ ++ if (old_tab == NULL) ++ { ++ /* The only way old_tab can be NULL is if the cref hash table ++ had not been initialised when notice_as_needed. */ ++ bfd_hash_table_free (&cref_table.root); ++ cref_initialized = FALSE; ++ return TRUE; ++ } ++ ++ old_ent = (char *) old_tab + tabsize; ++ old_ref = (char *) old_ent + entsize; ++ cref_table.root.table = old_table; ++ cref_table.root.size = old_size; ++ memcpy (cref_table.root.table, old_tab, tabsize); ++ cref_symcount = old_symcount; ++ ++ for (i = 0; i < cref_table.root.size; i++) ++ { ++ struct bfd_hash_entry *p; ++ struct cref_hash_entry *c; ++ struct cref_ref *r; ++ ++ for (p = cref_table.root.table[i]; p != NULL; p = p->next) ++ { ++ memcpy (p, old_ent, cref_table.root.entsize); ++ old_ent = (char *) old_ent + cref_table.root.entsize; ++ c = (struct cref_hash_entry *) p; ++ for (r = c->refs; r != NULL; r = r->next) ++ { ++ memcpy (r, old_ref, sizeof (struct cref_hash_entry)); ++ old_ref = (char *) old_ref + sizeof (struct cref_hash_entry); ++ } ++ } ++ } ++ ++ objalloc_free_block ((struct objalloc *) cref_table.root.memory, ++ alloc_mark); ++ } ++ else if (act != notice_needed) ++ return FALSE; ++ ++ free (old_tab); ++ old_tab = NULL; ++ return TRUE; ++} ++ + /* Copy the addresses of the hash table entries into an array. This + is called via cref_hash_traverse. We also fill in the demangled + name. */ +diff -uNr binutils-2.17.orig/ld/ld.h binutils-2.17/ld/ld.h +--- binutils-2.17.orig/ld/ld.h 2005-09-30 13:42:04.000000000 +0200 ++++ binutils-2.17/ld/ld.h 2006-10-21 13:53:24.000000000 +0200 +@@ -1,6 +1,6 @@ + /* ld.h -- general linker header file + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +- 2001, 2002, 2003, 2004, 2005 ++ 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This file is part of GLD, the Gnu Linker. +@@ -282,6 +282,7 @@ + + extern int yyparse (void); + extern void add_cref (const char *, bfd *, asection *, bfd_vma); ++extern bfd_boolean handle_asneeded_cref (bfd *, enum notice_asneeded_action); + extern void output_cref (FILE *); + extern void check_nocrossrefs (void); + extern void ld_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; +diff -uNr binutils-2.17.orig/ld/ldlang.c binutils-2.17/ld/ldlang.c +--- binutils-2.17.orig/ld/ldlang.c 2006-06-12 15:05:04.000000000 +0200 ++++ binutils-2.17/ld/ldlang.c 2006-10-21 13:53:24.000000000 +0200 +@@ -4207,7 +4207,8 @@ + /* If a loadable section is using the default memory + region, and some non default memory regions were + defined, issue an error message. */ +- if (!IGNORE_SECTION (os->bfd_section) ++ if (!os->ignored ++ && !IGNORE_SECTION (os->bfd_section) + && ! link_info.relocatable + && check_regions + && strcmp (os->region->name, +diff -uNr binutils-2.17.orig/ld/ldmain.c binutils-2.17/ld/ldmain.c +--- binutils-2.17.orig/ld/ldmain.c 2006-04-06 20:52:45.000000000 +0200 ++++ binutils-2.17/ld/ldmain.c 2006-10-21 13:53:24.000000000 +0200 +@@ -1511,6 +1511,13 @@ + asection *section, + bfd_vma value) + { ++ if (name == NULL) ++ { ++ if (command_line.cref || nocrossref_list != NULL) ++ return handle_asneeded_cref (abfd, value); ++ return TRUE; ++ } ++ + if (! info->notice_all + || (info->notice_hash != NULL + && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL)) +diff -uNr binutils-2.17.orig/ld/testsuite/ChangeLog binutils-2.17/ld/testsuite/ChangeLog +--- binutils-2.17.orig/ld/testsuite/ChangeLog 2006-06-12 15:44:33.000000000 +0200 ++++ binutils-2.17/ld/testsuite/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,17 @@ ++2006-07-12 Richard Sandiford ++ ++ * ld-m68k/merge-ok-1c.d: New test. ++ * ld-m68k/m68k.exp: Run it. ++ ++2006-07-04 Daniel Jacobowitz ++ ++ Backport: ++ 2006-05-19 Alan Modra ++ * ld-scripts/empty-orphan.d: Update again. ++ ++ * ld-scripts/empty-orphan.t: Discard .reginfo. ++ * ld-scripts/empty-orphan.d: Update. ++ + 2006-06-12 Daniel Jacobowitz + + Backport: +diff -uNr binutils-2.17.orig/ld/testsuite/ld-m68k/m68k.exp binutils-2.17/ld/testsuite/ld-m68k/m68k.exp +--- binutils-2.17.orig/ld/testsuite/ld-m68k/m68k.exp 2006-03-25 11:24:27.000000000 +0100 ++++ binutils-2.17/ld/testsuite/ld-m68k/m68k.exp 2006-10-21 13:53:24.000000000 +0200 +@@ -53,3 +53,4 @@ + run_dump_test "merge-error-1e" + run_dump_test "merge-ok-1a" + run_dump_test "merge-ok-1b" ++run_dump_test "merge-ok-1c" +diff -uNr binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.d binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.d +--- binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.d 2005-03-17 17:20:39.000000000 +0100 ++++ binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.d 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,6 @@ + #source: empty-orphan.s + #ld: -T empty-orphan.t +-#error: no memory region specified for loadable section ++#readelf: -l --wide ++#... ++ +LOAD +[x0-9a-f]+ [x0]+70000000 [x0]+70000000 [x0]+(2|4|8|10|20|40|80) .* ++#pass +diff -uNr binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.t binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.t +--- binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.t 2005-03-17 17:20:39.000000000 +0100 ++++ binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.t 2006-10-21 13:53:24.000000000 +0200 +@@ -17,5 +17,6 @@ + .text : { *(.text) } > text_mem : text_phdr + .data : { *(.data) } > data_mem : data_phdr + .bss : { *(.bss) } > data_mem : data_phdr ++ /DISCARD/ : { *(.reginfo) } + /* .orphan_data is an orphan */ + } diff --git a/binutils-patches/2.17/series b/binutils-patches/2.17/series new file mode 100644 index 0000000..a3ba899 --- /dev/null +++ b/binutils-patches/2.17/series @@ -0,0 +1 @@ +binutils-2.17-rtems4.8-20061021.diff diff --git a/gcc-patches/4.1.2/gcc-core-4.1.2-rtems4.8-20070405.diff b/gcc-patches/4.1.2/gcc-core-4.1.2-rtems4.8-20070405.diff new file mode 100644 index 0000000..f9de16d --- /dev/null +++ b/gcc-patches/4.1.2/gcc-core-4.1.2-rtems4.8-20070405.diff @@ -0,0 +1,102 @@ +diff -uNr gcc-4.1.2.orig/gcc/config/arm/rtems-elf.h gcc-4.1.2/gcc/config/arm/rtems-elf.h +--- gcc-4.1.2.orig/gcc/config/arm/rtems-elf.h 2005-11-22 00:28:29.000000000 +0100 ++++ gcc-4.1.2/gcc/config/arm/rtems-elf.h 2007-04-05 04:50:02.000000000 +0200 +@@ -27,6 +27,7 @@ + #define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ ++ builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) + +diff -uNr gcc-4.1.2.orig/gcc/config/c4x/rtems.h gcc-4.1.2/gcc/config/c4x/rtems.h +--- gcc-4.1.2.orig/gcc/config/c4x/rtems.h 2005-06-25 03:22:41.000000000 +0200 ++++ gcc-4.1.2/gcc/config/c4x/rtems.h 2007-04-05 04:50:02.000000000 +0200 +@@ -24,6 +24,5 @@ + #define TARGET_OS_CPP_BUILTINS() \ + do { \ + builtin_define ("__rtems__"); \ +- builtin_define ("__USE_INIT_FINI__"); \ + builtin_assert ("system=rtems"); \ + } while (0) +diff -uNr gcc-4.1.2.orig/gcc/config/mips/elf.h gcc-4.1.2/gcc/config/mips/elf.h +--- gcc-4.1.2.orig/gcc/config/mips/elf.h 2005-07-09 10:46:34.000000000 +0200 ++++ gcc-4.1.2/gcc/config/mips/elf.h 2007-04-05 04:50:03.000000000 +0200 +@@ -48,5 +48,3 @@ + + #undef ENDFILE_SPEC + #define ENDFILE_SPEC "crtend%O%s crtn%O%s" +- +-#define NO_IMPLICIT_EXTERN_C 1 +diff -uNr gcc-4.1.2.orig/gcc/config/mips/mips.h gcc-4.1.2/gcc/config/mips/mips.h +--- gcc-4.1.2.orig/gcc/config/mips/mips.h 2006-02-17 22:38:59.000000000 +0100 ++++ gcc-4.1.2/gcc/config/mips/mips.h 2007-04-05 04:49:10.000000000 +0200 +@@ -450,6 +450,8 @@ + #endif + #endif /* IN_LIBGCC2 */ + ++#define TARGET_LIBGCC_SDATA_SECTION ".sdata" ++ + #ifndef MULTILIB_ENDIAN_DEFAULT + #if TARGET_ENDIAN_DEFAULT == 0 + #define MULTILIB_ENDIAN_DEFAULT "EL" +@@ -2712,7 +2714,6 @@ + /* Define the strings to put out for each section in the object file. */ + #define TEXT_SECTION_ASM_OP "\t.text" /* instructions */ + #define DATA_SECTION_ASM_OP "\t.data" /* large data */ +-#define SDATA_SECTION_ASM_OP "\t.sdata" /* small data */ + + #undef READONLY_DATA_SECTION_ASM_OP + #define READONLY_DATA_SECTION_ASM_OP "\t.rdata" /* read-only data */ +diff -uNr gcc-4.1.2.orig/gcc/config.gcc gcc-4.1.2/gcc/config.gcc +--- gcc-4.1.2.orig/gcc/config.gcc 2006-10-16 01:12:23.000000000 +0200 ++++ gcc-4.1.2/gcc/config.gcc 2007-04-05 04:50:03.000000000 +0200 +@@ -761,6 +761,11 @@ + tmake_file=bfin/t-bfin-elf + use_collect2=no + ;; ++bfin*-rtems*) ++ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h" ++ tmake_file=bfin/t-bfin-elf ++ use_collect2=no ++ ;; + bfin*-*) + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" + tmake_file=bfin/t-bfin +@@ -1560,7 +1565,7 @@ + tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" + use_fixproto=yes + ;; +-mips*-*-rtems*) ++mips-*-rtems*) + tm_file="elfos.h ${tm_file} mips/elf.h mips/rtems.h rtems.h" + tmake_file="mips/t-elf t-rtems mips/t-rtems" + ;; +diff -uNr gcc-4.1.2.orig/gcc/crtstuff.c gcc-4.1.2/gcc/crtstuff.c +--- gcc-4.1.2.orig/gcc/crtstuff.c 2005-11-15 02:21:29.000000000 +0100 ++++ gcc-4.1.2/gcc/crtstuff.c 2007-04-05 04:49:10.000000000 +0200 +@@ -225,6 +225,9 @@ + in one DSO or the main program is not used in another object. The + dynamic linker takes care of this. */ + ++#ifdef TARGET_LIBGCC_SDATA_SECTION ++extern void *__dso_handle __attribute__ ((__section__ (TARGET_LIBGCC_SDATA_SECTION))); ++#endif + #ifdef HAVE_GAS_HIDDEN + extern void *__dso_handle __attribute__ ((__visibility__ ("hidden"))); + #endif +diff -uNr gcc-4.1.2.orig/Makefile.in gcc-4.1.2/Makefile.in +--- gcc-4.1.2.orig/Makefile.in 2006-04-04 23:03:05.000000000 +0200 ++++ gcc-4.1.2/Makefile.in 2007-04-05 04:50:03.000000000 +0200 +@@ -329,9 +329,9 @@ + # CFLAGS will be just -g. We want to ensure that TARGET libraries + # (which we know are built with gcc) are built with optimizations so + # prepend -O2 when setting CFLAGS_FOR_TARGET. +-CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) ++CFLAGS_FOR_TARGET = $(strip -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)) + SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ +-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) ++CXXFLAGS_FOR_TARGET = $(strip $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)) + LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) + LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates + LDFLAGS_FOR_TARGET = diff --git a/gcc-patches/4.1.2/series b/gcc-patches/4.1.2/series new file mode 100644 index 0000000..f54fce9 --- /dev/null +++ b/gcc-patches/4.1.2/series @@ -0,0 +1 @@ +gcc-core-4.1.2-rtems4.8-20070405.diff diff --git a/newlib-patches/1.15.0/newlib-1.15.0-rtems4.8-20070413.diff b/newlib-patches/1.15.0/newlib-1.15.0-rtems4.8-20070413.diff new file mode 100644 index 0000000..853e2b1 --- /dev/null +++ b/newlib-patches/1.15.0/newlib-1.15.0-rtems4.8-20070413.diff @@ -0,0 +1,1449 @@ +diff -uNr newlib-1.15.0.orig/newlib/libc/include/inttypes.h newlib-1.15.0/newlib/libc/include/inttypes.h +--- newlib-1.15.0.orig/newlib/libc/include/inttypes.h 2005-12-16 20:03:12.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/inttypes.h 2007-04-13 10:41:47.000000000 +0200 +@@ -242,9 +242,12 @@ + #define SCNxMAX __SCNMAX(x) + + /* ptr types */ +-#if __have_longlong64 +-#define __PRIPTR(x) __STRINGIFY(ll##x) +-#define __SCNPTR(x) __STRINGIFY(ll##x) ++#if __ptrint_t_long_defined ++#define __PRIPTR(x) __STRINGIFY(l##x) ++#define __SCNPTR(x) __STRINGIFY(l##x) ++#elif __ptrint_t_int_defined ++#define __PRIPTR(x) __STRINGIFY(x) ++#define __SCNPTR(x) __STRINGIFY(x) + #elif __have_long64 + #define __PRIPTR(x) __STRINGIFY(l##x) + #define __SCNPTR(x) __STRINGIFY(l##x) +diff -uNr newlib-1.15.0.orig/newlib/libc/include/machine/setjmp.h newlib-1.15.0/newlib/libc/include/machine/setjmp.h +--- newlib-1.15.0.orig/newlib/libc/include/machine/setjmp.h 2006-12-18 17:48:03.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/machine/setjmp.h 2007-04-13 10:41:47.000000000 +0200 +@@ -27,7 +27,7 @@ + + /* necv70 was 9 as well. */ + +-#ifdef __mc68000__ ++#if defined(__m68k__) || defined(__mc68000__) + /* + * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, + * fp2-fp7 for 68881. +diff -uNr newlib-1.15.0.orig/newlib/libc/include/stdint.h newlib-1.15.0/newlib/libc/include/stdint.h +--- newlib-1.15.0.orig/newlib/libc/include/stdint.h 2006-08-16 23:39:43.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/stdint.h 2007-04-13 10:41:47.000000000 +0200 +@@ -393,6 +393,9 @@ + #define UINTMAX_C(x) x##UL + #endif + ++#ifdef __rtems__ ++#include ++#endif + + #ifdef __cplusplus + } +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/errno.h newlib-1.15.0/newlib/libc/include/sys/errno.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/errno.h 2002-09-24 16:10:12.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/sys/errno.h 2007-04-13 10:41:47.000000000 +0200 +@@ -148,6 +148,7 @@ + #define ECASECLASH 137 /* Filename exists with different case */ + #define EILSEQ 138 + #define EOVERFLOW 139 /* Value too large for defined data type */ ++#define ECANCELED 140 /* Operation canceled. */ + + /* From cygwin32. */ + #define EWOULDBLOCK EAGAIN /* Operation would block */ +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/features.h newlib-1.15.0/newlib/libc/include/sys/features.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/features.h 2006-09-14 00:09:27.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/sys/features.h 2007-04-13 10:41:47.000000000 +0200 +@@ -38,6 +38,7 @@ + #define _POSIX_MEMLOCK_RANGE 1 + #define _POSIX_MEMORY_PROTECTION 1 + #define _POSIX_MESSAGE_PASSING 1 ++#define _POSIX_MONOTONIC_CLOCK 200112L + #define _POSIX_PRIORITIZED_IO 1 + #define _POSIX_PRIORITY_SCHEDULING 1 + #define _POSIX_REALTIME_SIGNALS 1 +@@ -81,17 +82,89 @@ + #endif + + #ifdef __CYGWIN__ +-# define _POSIX_JOB_CONTROL 1 +-# define _POSIX_SAVED_IDS 0 +-# define _POSIX_VERSION 199009L +-# define _POSIX_THREADS 1 +-# define _POSIX_THREAD_PROCESS_SHARED 1 +-# define _POSIX_THREAD_SAFE_FUNCTIONS 1 +-# define _POSIX_THREAD_PRIORITY_SCHEDULING 1 +-# define _POSIX_THREAD_ATTR_STACKSIZE 1 +-# define _POSIX_SEMAPHORES 1 +-# define _POSIX_TIMERS 1 +-# define _POSIX_MEMLOCK_RANGE 1 ++#define _POSIX_VERSION 200112L ++#define _POSIX2_VERSION 200112L ++#define _XOPEN_VERSION 600 ++ ++#define _POSIX_ADVISORY_INFO 200112L ++/* #define _POSIX_ASYNCHRONOUS_IO -1 */ ++/* #define _POSIX_BARRIERS -1 */ ++#define _POSIX_CHOWN_RESTRICTED 1 ++/* #define _POSIX_CLOCK_SELECTION -1 */ ++/* #define _POSIX_CPUTIME -1 */ ++#define _POSIX_FSYNC 200112L ++#define _POSIX_IPV6 200112L ++#define _POSIX_JOB_CONTROL 1 ++#define _POSIX_MAPPED_FILES 200112L ++/* #define _POSIX_MEMLOCK -1 */ ++#define _POSIX_MEMLOCK_RANGE 200112L ++#define _POSIX_MEMORY_PROTECTION 200112L ++/* #define _POSIX_MESSAGE_PASSING -1 */ ++/* #define _POSIX_MONOTONIC_CLOCK -1 */ ++#define _POSIX_NO_TRUNC 1 ++/* #define _POSIX_PRIORITIZED_IO -1 */ ++#define _POSIX_PRIORITY_SCHEDULING 200112L ++#define _POSIX_RAW_SOCKETS 200112L ++#define _POSIX_READER_WRITER_LOCKS 200112L ++#define _POSIX_REALTIME_SIGNALS 200112L ++#define _POSIX_REGEXP 1 ++#define _POSIX_SAVED_IDS 1 ++#define _POSIX_SEMAPHORES 1 ++/* #define _POSIX_SHARED_MEMORY_OBJECTS -1 */ ++#define _POSIX_SHELL 1 ++/* #define _POSIX_SPAWN -1 */ ++/* #define _POSIX_SPIN_LOCKS -1 */ ++/* #define _POSIX_SPORADIC_SERVER -1 */ ++#define _POSIX_SYNCHRONIZED_IO 200112L ++/* #define _POSIX_THREAD_ATTR_STACKADDR -1 */ ++#define _POSIX_THREAD_ATTR_STACKSIZE 200112L ++/* #define _POSIX_THREAD_CPUTIME -1 */ ++/* #define _POSIX_THREAD_PRIO_INHERIT -1 */ ++/* #define _POSIX_THREAD_PRIO_PROTECT -1 */ ++#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L ++#define _POSIX_THREAD_PROCESS_SHARED 200112L ++#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L ++/* #define _POSIX_THREAD_SPORADIC_SERVER -1 */ ++#define _POSIX_THREADS 200112L ++/* #define _POSIX_TIMEOUTS -1 */ ++#define _POSIX_TIMERS 1 ++/* #define _POSIX_TRACE -1 */ ++/* #define _POSIX_TRACE_EVENT_FILTER -1 */ ++/* #define _POSIX_TRACE_INHERIT -1 */ ++/* #define _POSIX_TRACE_LOG -1 */ ++/* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */ ++#define _POSIX_VDISABLE '\0' ++#define _POSIX2_C_BIND 200112L ++#define _POSIX2_C_DEV 200112L ++#define _POSIX2_CHAR_TERM 200112L ++/* #define _POSIX2_FORT_DEV -1 */ ++/* #define _POSIX2_FORT_RUN -1 */ ++/* #define _POSIX2_LOCALEDEF -1 */ ++/* #define _POSIX2_PBS -1 */ ++/* #define _POSIX2_PBS_ACCOUNTING -1 */ ++/* #define _POSIX2_PBS_CHECKPOINT -1 */ ++/* #define _POSIX2_PBS_LOCATE -1 */ ++/* #define _POSIX2_PBS_MESSAGE -1 */ ++/* #define _POSIX2_PBS_TRACK -1 */ ++#define _POSIX2_SW_DEV 200112L ++#define _POSIX2_UPE 200112L ++/* #define _POSIX_V6_ILP32_OFF32 -1 */ ++#define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 ++#define _POSIX_V6_ILP32_OFFBIG 1 ++#define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG ++/* #define _POSIX_V6_LP64_OFF64 -1 */ ++#define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64 ++/* #define _POSIX_V6_LPBIG_OFFBIG -1 */ ++#define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG ++#define _XOPEN_CRYPT 1 ++#define _XOPEN_ENH_I18N 1 ++/* #define _XOPEN_LEGACY -1 */ ++/* #define _XOPEN_REALTIME -1 */ ++/* #define _XOPEN_REALTIME_THREADS -1 */ ++#define _XOPEN_SHM 1 ++/* #define _XOPEN_STREAMS -1 */ ++/* #define _XOPEN_UNIX -1 */ ++ + #endif + + #ifdef __cplusplus +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/_types.h newlib-1.15.0/newlib/libc/include/sys/_types.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/_types.h 2004-06-11 22:37:09.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/include/sys/_types.h 2007-04-13 10:41:47.000000000 +0200 +@@ -39,4 +39,7 @@ + /* Iconv descriptor type */ + typedef void *_iconv_t; + ++typedef long * __intptr_t; ++typedef unsigned long* __uintptr_t; ++ + #endif /* _SYS__TYPES_H */ +diff -uNr newlib-1.15.0.orig/newlib/libc/include/sys/unistd.h newlib-1.15.0/newlib/libc/include/sys/unistd.h +--- newlib-1.15.0.orig/newlib/libc/include/sys/unistd.h 2006-11-07 16:33:40.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/sys/unistd.h 2007-04-13 10:41:47.000000000 +0200 +@@ -200,7 +200,7 @@ + int _EXFUN(getdtablesize, (void)); + int _EXFUN(setdtablesize, (int)); + useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval)); +-unsigned _EXFUN(usleep, (unsigned int __useconds)); ++int _EXFUN(usleep, (useconds_t __useconds)); + #if !(defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS)) + /* winsock[2].h defines as __stdcall, and with int as 2nd arg */ + int _EXFUN(gethostname, (char *__name, size_t __len)); +@@ -212,7 +212,7 @@ + int _EXFUN(sync, (void)); + #endif + #endif +-int _EXFUN(readlink, (const char *__path, char *__buf, int __buflen)); ++ssize_t _EXFUN(readlink, (const char *__path, char *__buf, size_t __buflen)); + int _EXFUN(symlink, (const char *__name1, const char *__name2)); + + #define F_OK 0 +@@ -231,63 +231,55 @@ + #define STDERR_FILENO 2 /* standard error file descriptor */ + + /* +- * 4.8.1 Get Configurable System Variables, P1003.1b-1993, p. 96 +- * +- * NOTE: Table 4-2, Configurable System Variables, p. 96 +- */ +- +-#define _SC_ARG_MAX 0 +-#define _SC_CHILD_MAX 1 +-#define _SC_CLK_TCK 2 +-#define _SC_NGROUPS_MAX 3 +-#define _SC_OPEN_MAX 4 +- /* no _SC_STREAM_MAX */ +-#define _SC_JOB_CONTROL 5 +-#define _SC_SAVED_IDS 6 +-#define _SC_VERSION 7 +-#define _SC_PAGESIZE 8 +-/* CYGWIN-specific values .. do not touch */ +-#define _SC_NPROCESSORS_CONF 9 +-#define _SC_NPROCESSORS_ONLN 10 +-#define _SC_PHYS_PAGES 11 +-#define _SC_AVPHYS_PAGES 12 +-/* end of CYGWIN-specific values */ +-#define _SC_MQ_OPEN_MAX 13 +-#define _SC_MQ_PRIO_MAX 14 +-#define _SC_RTSIG_MAX 15 +-#define _SC_SEM_NSEMS_MAX 16 +-#define _SC_SEM_VALUE_MAX 17 +-#define _SC_SIGQUEUE_MAX 18 +-#define _SC_TIMER_MAX 19 +-#define _SC_TZNAME_MAX 20 +- +-#define _SC_ASYNCHRONOUS_IO 21 +-#define _SC_FSYNC 22 +-#define _SC_MAPPED_FILES 23 +-#define _SC_MEMLOCK 24 +-#define _SC_MEMLOCK_RANGE 25 +-#define _SC_MEMORY_PROTECTION 26 +-#define _SC_MESSAGE_PASSING 27 +-#define _SC_PRIORITIZED_IO 28 +-#define _SC_REALTIME_SIGNALS 29 +-#define _SC_SEMAPHORES 30 +-#define _SC_SHARED_MEMORY_OBJECTS 31 +-#define _SC_SYNCHRONIZED_IO 32 +-#define _SC_TIMERS 33 +-#define _SC_AIO_LISTIO_MAX 34 +-#define _SC_AIO_MAX 35 +-#define _SC_AIO_PRIO_DELTA_MAX 36 +-#define _SC_DELAYTIMER_MAX 37 +- +-/* +- * P1003.1c/D10, p. 52 adds the following. ++ * sysconf values per IEEE Std 1003.1, 2004 Edition + */ + ++#define _SC_ARG_MAX 0 ++#define _SC_CHILD_MAX 1 ++#define _SC_CLK_TCK 2 ++#define _SC_NGROUPS_MAX 3 ++#define _SC_OPEN_MAX 4 ++#define _SC_JOB_CONTROL 5 ++#define _SC_SAVED_IDS 6 ++#define _SC_VERSION 7 ++#define _SC_PAGESIZE 8 ++#define _SC_PAGE_SIZE _SC_PAGESIZE ++/* These are non-POSIX values we accidentally introduced in 2000 without ++ guarding them. Keeping them unguarded for backward compatibility. */ ++#define _SC_NPROCESSORS_CONF 9 ++#define _SC_NPROCESSORS_ONLN 10 ++#define _SC_PHYS_PAGES 11 ++#define _SC_AVPHYS_PAGES 12 ++/* End of non-POSIX values. */ ++#define _SC_MQ_OPEN_MAX 13 ++#define _SC_MQ_PRIO_MAX 14 ++#define _SC_RTSIG_MAX 15 ++#define _SC_SEM_NSEMS_MAX 16 ++#define _SC_SEM_VALUE_MAX 17 ++#define _SC_SIGQUEUE_MAX 18 ++#define _SC_TIMER_MAX 19 ++#define _SC_TZNAME_MAX 20 ++#define _SC_ASYNCHRONOUS_IO 21 ++#define _SC_FSYNC 22 ++#define _SC_MAPPED_FILES 23 ++#define _SC_MEMLOCK 24 ++#define _SC_MEMLOCK_RANGE 25 ++#define _SC_MEMORY_PROTECTION 26 ++#define _SC_MESSAGE_PASSING 27 ++#define _SC_PRIORITIZED_IO 28 ++#define _SC_REALTIME_SIGNALS 29 ++#define _SC_SEMAPHORES 30 ++#define _SC_SHARED_MEMORY_OBJECTS 31 ++#define _SC_SYNCHRONIZED_IO 32 ++#define _SC_TIMERS 33 ++#define _SC_AIO_LISTIO_MAX 34 ++#define _SC_AIO_MAX 35 ++#define _SC_AIO_PRIO_DELTA_MAX 36 ++#define _SC_DELAYTIMER_MAX 37 + #define _SC_THREAD_KEYS_MAX 38 + #define _SC_THREAD_STACK_MIN 39 + #define _SC_THREAD_THREADS_MAX 40 + #define _SC_TTY_NAME_MAX 41 +- + #define _SC_THREADS 42 + #define _SC_THREAD_ATTR_STACKADDR 43 + #define _SC_THREAD_ATTR_STACKSIZE 44 +@@ -302,34 +294,99 @@ + #define _SC_GETPW_R_SIZE_MAX 51 + #define _SC_LOGIN_NAME_MAX 52 + #define _SC_THREAD_DESTRUCTOR_ITERATIONS 53 +- +-#if !defined(__rtems__) +-#define _SC_STREAM_MAX 100 +-#endif +-#if !defined(__CYGWIN__) && !defined(__rtems__) +-#define _SC_PRIORITY_SCHEDULING 101 +-#endif +- +-# define _PC_LINK_MAX 0 +-# define _PC_MAX_CANON 1 +-# define _PC_MAX_INPUT 2 +-# define _PC_NAME_MAX 3 +-# define _PC_PATH_MAX 4 +-# define _PC_PIPE_BUF 5 +-# define _PC_CHOWN_RESTRICTED 6 +-# define _PC_NO_TRUNC 7 +-# define _PC_VDISABLE 8 +-# define _PC_ASYNC_IO 9 +-# define _PC_PRIO_IO 10 +-# define _PC_SYNC_IO 11 +-# define _PC_FILESIZEBITS 12 +-# define _PC_2_SYMLINKS 13 +-# define _PC_SYMLINK_MAX 14 ++#define _SC_ADVISORY_INFO 54 ++#define _SC_ATEXIT_MAX 55 ++#define _SC_BARRIERS 56 ++#define _SC_BC_BASE_MAX 57 ++#define _SC_BC_DIM_MAX 58 ++#define _SC_BC_SCALE_MAX 59 ++#define _SC_BC_STRING_MAX 60 ++#define _SC_CLOCK_SELECTION 61 ++#define _SC_COLL_WEIGHTS_MAX 62 ++#define _SC_CPUTIME 63 ++#define _SC_EXPR_NEST_MAX 64 ++#define _SC_HOST_NAME_MAX 65 ++#define _SC_IOV_MAX 66 ++#define _SC_IPV6 67 ++#define _SC_LINE_MAX 68 ++#define _SC_MONOTONIC_CLOCK 69 ++#define _SC_RAW_SOCKETS 70 ++#define _SC_READER_WRITER_LOCKS 71 ++#define _SC_REGEXP 72 ++#define _SC_RE_DUP_MAX 73 ++#define _SC_SHELL 74 ++#define _SC_SPAWN 75 ++#define _SC_SPIN_LOCKS 76 ++#define _SC_SPORADIC_SERVER 77 ++#define _SC_SS_REPL_MAX 78 ++#define _SC_SYMLOOP_MAX 79 ++#define _SC_THREAD_CPUTIME 80 ++#define _SC_THREAD_SPORADIC_SERVER 81 ++#define _SC_TIMEOUTS 82 ++#define _SC_TRACE 83 ++#define _SC_TRACE_EVENT_FILTER 84 ++#define _SC_TRACE_EVENT_NAME_MAX 85 ++#define _SC_TRACE_INHERIT 86 ++#define _SC_TRACE_LOG 87 ++#define _SC_TRACE_NAME_MAX 88 ++#define _SC_TRACE_SYS_MAX 89 ++#define _SC_TRACE_USER_EVENT_MAX 90 ++#define _SC_TYPED_MEMORY_OBJECTS 91 ++#define _SC_V6_ILP32_OFF32 92 ++#define _SC_XBS5_ILP32_OFF32 _SC_V6_ILP32_OFF32 ++#define _SC_V6_ILP32_OFFBIG 93 ++#define _SC_XBS5_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG ++#define _SC_V6_LP64_OFF64 94 ++#define _SC_XBS5_LP64_OFF64 _SC_V6_LP64_OFF64 ++#define _SC_V6_LPBIG_OFFBIG 95 ++#define _SC_XBS5_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG ++#define _SC_XOPEN_CRYPT 96 ++#define _SC_XOPEN_ENH_I18N 97 ++#define _SC_XOPEN_LEGACY 98 ++#define _SC_XOPEN_REALTIME 99 ++#define _SC_STREAM_MAX 100 ++#define _SC_PRIORITY_SCHEDULING 101 ++#define _SC_XOPEN_REALTIME_THREADS 102 ++#define _SC_XOPEN_SHM 103 ++#define _SC_XOPEN_STREAMS 104 ++#define _SC_XOPEN_UNIX 105 ++#define _SC_XOPEN_VERSION 106 ++#define _SC_2_CHAR_TERM 107 ++#define _SC_2_C_BIND 108 ++#define _SC_2_C_DEV 109 ++#define _SC_2_FORT_DEV 110 ++#define _SC_2_FORT_RUN 111 ++#define _SC_2_LOCALEDEF 112 ++#define _SC_2_PBS 113 ++#define _SC_2_PBS_ACCOUNTING 114 ++#define _SC_2_PBS_CHECKPOINT 115 ++#define _SC_2_PBS_LOCATE 116 ++#define _SC_2_PBS_MESSAGE 117 ++#define _SC_2_PBS_TRACK 118 ++#define _SC_2_SW_DEV 119 ++#define _SC_2_UPE 120 ++#define _SC_2_VERSION 121 ++ ++#define _PC_LINK_MAX 0 ++#define _PC_MAX_CANON 1 ++#define _PC_MAX_INPUT 2 ++#define _PC_NAME_MAX 3 ++#define _PC_PATH_MAX 4 ++#define _PC_PIPE_BUF 5 ++#define _PC_CHOWN_RESTRICTED 6 ++#define _PC_NO_TRUNC 7 ++#define _PC_VDISABLE 8 ++#define _PC_ASYNC_IO 9 ++#define _PC_PRIO_IO 10 ++#define _PC_SYNC_IO 11 ++#define _PC_FILESIZEBITS 12 ++#define _PC_2_SYMLINKS 13 ++#define _PC_SYMLINK_MAX 14 + #ifdef __CYGWIN__ + /* Ask for POSIX permission bits support. */ +-# define _PC_POSIX_PERMISSIONS 90 ++#define _PC_POSIX_PERMISSIONS 90 + /* Ask for full POSIX permission support including uid/gid settings. */ +-# define _PC_POSIX_SECURITY 91 ++#define _PC_POSIX_SECURITY 91 + #endif + + /* FIXME: This is temporary until winsup gets sorted out. */ +diff -uNr newlib-1.15.0.orig/newlib/libc/include/time.h newlib-1.15.0/newlib/libc/include/time.h +--- newlib-1.15.0.orig/newlib/libc/include/time.h 2005-11-18 16:57:24.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/include/time.h 2007-04-13 10:41:47.000000000 +0200 +@@ -226,6 +226,16 @@ + + #endif + ++#if defined(_POSIX_MONOTONIC_CLOCK) ++ ++/* The identifier for the system-wide monotonic clock, which is defined ++ as a clock whose value cannot be set via clock_settime() and which ++ cannot have backward clock jumps. */ ++ ++#define CLOCK_MONOTONIC (clockid_t)4 ++ ++#endif ++ + #if defined(_POSIX_CPUTIME) + + /* Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 */ +diff -uNr newlib-1.15.0.orig/newlib/libc/machine/arm/machine/endian.h newlib-1.15.0/newlib/libc/machine/arm/machine/endian.h +--- newlib-1.15.0.orig/newlib/libc/machine/arm/machine/endian.h 2004-05-07 22:29:24.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/machine/arm/machine/endian.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,12 +0,0 @@ +-/* ARM configuration file */ +- +-#ifndef _MACHINE_ENDIAN_H +-# define _MACHINE_ENDIAN_H +- +-#ifdef __ARMEB__ +-#define BYTE_ORDER BIG_ENDIAN +-#else +-#define BYTE_ORDER LITTLE_ENDIAN +-#endif +- +-#endif +diff -uNr newlib-1.15.0.orig/newlib/libc/search/db_local.h newlib-1.15.0/newlib/libc/search/db_local.h +--- newlib-1.15.0.orig/newlib/libc/search/db_local.h 2002-06-25 01:05:08.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/db_local.h 2007-04-13 10:41:47.000000000 +0200 +@@ -50,7 +50,7 @@ + #define MAX_PAGE_NUMBER 0xffffffff /* >= # of pages in a file */ + typedef __uint32_t pgno_t; + #define MAX_PAGE_OFFSET 65535 /* >= # of bytes in a page */ +-typedef __uint16_t indx_t; ++typedef __uint_least16_t indx_t; + #define MAX_REC_NUMBER 0xffffffff /* >= # of records in a tree */ + typedef __uint32_t recno_t; + +@@ -191,12 +191,12 @@ + * P_16_COPY swap from one location to another + */ + #define M_16_SWAP(a) { \ +- __uint16_t _tmp = a; \ ++ __uint_least16_t _tmp = a; \ + ((char *)&a)[0] = ((char *)&_tmp)[1]; \ + ((char *)&a)[1] = ((char *)&_tmp)[0]; \ + } + #define P_16_SWAP(a) { \ +- __uint16_t _tmp = *(__uint16_t *)a; \ ++ __uint_least16_t _tmp = *(__uint_least16_t *)a; \ + ((char *)a)[0] = ((char *)&_tmp)[1]; \ + ((char *)a)[1] = ((char *)&_tmp)[0]; \ + } +diff -uNr newlib-1.15.0.orig/newlib/libc/search/extern.h newlib-1.15.0/newlib/libc/search/extern.h +--- newlib-1.15.0.orig/newlib/libc/search/extern.h 2002-06-20 21:51:31.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/extern.h 2007-04-13 10:41:47.000000000 +0200 +@@ -48,7 +48,7 @@ + int __delpair(HTAB *, BUFHEAD *, int); + int __expand_table(HTAB *); + int __find_bigpair(HTAB *, BUFHEAD *, int, char *, int); +-__uint16_t __find_last_page(HTAB *, BUFHEAD **); ++__uint_least16_t __find_last_page(HTAB *, BUFHEAD **); + void __free_ovflpage(HTAB *, BUFHEAD *); + BUFHEAD *__get_buf(HTAB *, __uint32_t, BUFHEAD *, int); + int __get_page(HTAB *, char *, __uint32_t, int, int, int); +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash_bigkey.c newlib-1.15.0/newlib/libc/search/hash_bigkey.c +--- newlib-1.15.0.orig/newlib/libc/search/hash_bigkey.c 2006-06-07 21:22:59.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash_bigkey.c 2007-04-13 10:41:47.000000000 +0200 +@@ -92,13 +92,13 @@ + BUFHEAD *bufp; + const DBT *key, *val; + { +- __uint16_t *p; ++ __uint_least16_t *p; + int key_size, n, val_size; +- __uint16_t space, move_bytes, off; ++ __uint_least16_t space, move_bytes, off; + char *cp, *key_data, *val_data; + + cp = bufp->page; /* Character pointer of p. */ +- p = (__uint16_t *)cp; ++ p = (__uint_least16_t *)cp; + + key_data = (char *)key->data; + key_size = key->size; +@@ -136,7 +136,7 @@ + OFFSET(p) = off; + } else + p[n - 2] = FULL_KEY; +- p = (__uint16_t *)bufp->page; ++ p = (__uint_least16_t *)bufp->page; + cp = bufp->page; + bufp->flags |= BUF_MOD; + } +@@ -166,7 +166,7 @@ + if (!bufp) + return (-1); + cp = bufp->page; +- p = (__uint16_t *)cp; ++ p = (__uint_least16_t *)cp; + } else + p[n] = FULL_KEY_DATA; + bufp->flags |= BUF_MOD; +@@ -191,12 +191,12 @@ + BUFHEAD *bufp; + { + BUFHEAD *last_bfp, *rbufp; +- __uint16_t *bp, pageno; ++ __uint_least16_t *bp, pageno; + int key_done, n; + + rbufp = bufp; + last_bfp = NULL; +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + pageno = 0; + key_done = 0; + +@@ -219,7 +219,7 @@ + last_bfp = rbufp; + if (!rbufp) + return (-1); /* Error. */ +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + } + + /* +@@ -234,7 +234,7 @@ + pageno = bp[n - 1]; + + /* Now, bp is the first page of the pair. */ +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + if (n > 2) { + /* There is an overflow page. */ + bp[1] = pageno; +@@ -272,13 +272,13 @@ + char *key; + int size; + { +- __uint16_t *bp; ++ __uint_least16_t *bp; + char *p; + int ksize; +- __uint16_t bytes; ++ __uint_least16_t bytes; + char *kkey; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + p = bufp->page; + ksize = size; + kkey = key; +@@ -294,7 +294,7 @@ + if (!bufp) + return (-3); + p = bufp->page; +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + ndx = 1; + } + +@@ -316,17 +316,17 @@ + * of the pair; 0 if there isn't any (i.e. big pair is the last key in the + * bucket) + */ +-extern __uint16_t ++extern __uint_least16_t + __find_last_page(hashp, bpp) + HTAB *hashp; + BUFHEAD **bpp; + { + BUFHEAD *bufp; +- __uint16_t *bp, pageno; ++ __uint_least16_t *bp, pageno; + int n; + + bufp = *bpp; +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + for (;;) { + n = bp[0]; + +@@ -343,7 +343,7 @@ + bufp = __get_buf(hashp, pageno, bufp, 0); + if (!bufp) + return (0); /* Need to indicate an error! */ +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } + + *bpp = bufp; +@@ -366,15 +366,15 @@ + int set_current; + { + BUFHEAD *save_p; +- __uint16_t *bp, len, off, save_addr; ++ __uint_least16_t *bp, len, off, save_addr; + char *tp; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + while (bp[ndx + 1] == PARTIAL_KEY) { + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + ndx = 1; + } + +@@ -382,7 +382,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + save_p = bufp; + save_addr = save_p->addr; + off = bp[1]; +@@ -403,7 +403,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } else { + /* The data is all on one page. */ + tp = (char *)bp; +@@ -422,7 +422,7 @@ + if (!hashp->cpage) + return (-1); + hashp->cndx = 1; +- if (!((__uint16_t *) ++ if (!((__uint_least16_t *) + hashp->cpage->page)[0]) { + hashp->cbucket++; + hashp->cpage = NULL; +@@ -454,14 +454,14 @@ + BUFHEAD *bufp; + int len, set; + { +- __uint16_t *bp; ++ __uint_least16_t *bp; + char *p; + BUFHEAD *xbp; +- __uint16_t save_addr; ++ __uint_least16_t save_addr; + int mylen, totlen; + + p = bufp->page; +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + mylen = hashp->BSIZE - bp[1]; + save_addr = bufp->addr; + +@@ -481,7 +481,7 @@ + __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!hashp->cpage) + return (-1); +- else if (!((__uint16_t *)hashp->cpage->page)[0]) { ++ else if (!((__uint_least16_t *)hashp->cpage->page)[0]) { + hashp->cbucket++; + hashp->cpage = NULL; + } +@@ -533,10 +533,10 @@ + BUFHEAD *xbp; + char *p; + int mylen, totlen; +- __uint16_t *bp, save_addr; ++ __uint_least16_t *bp, save_addr; + + p = bufp->page; +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + mylen = hashp->BSIZE - bp[1]; + + save_addr = bufp->addr; +@@ -579,11 +579,11 @@ + SPLIT_RETURN *ret; + { + BUFHEAD *tmpp; +- __uint16_t *tp; ++ __uint_least16_t *tp; + BUFHEAD *bp; + DBT key, val; + __uint32_t change; +- __uint16_t free_space, n, off; ++ __uint_least16_t free_space, n, off; + + bp = big_keyp; + +@@ -615,14 +615,14 @@ + (tmpp->ovfl ? tmpp->ovfl->addr : 0), (bp ? bp->addr : 0)); + #endif + tmpp->ovfl = bp; /* one of op/np point to big_keyp */ +- tp = (__uint16_t *)tmpp->page; ++ tp = (__uint_least16_t *)tmpp->page; + #ifdef DEBUG + assert(FREESPACE(tp) >= OVFLSIZE); + #endif + n = tp[0]; + off = OFFSET(tp); + free_space = FREESPACE(tp); +- tp[++n] = (__uint16_t)addr; ++ tp[++n] = (__uint_least16_t)addr; + tp[++n] = OVFLPAGE; + tp[0] = n; + OFFSET(tp) = off; +@@ -638,7 +638,7 @@ + ret->newp = np; + ret->oldp = op; + +- tp = (__uint16_t *)big_keyp->page; ++ tp = (__uint_least16_t *)big_keyp->page; + big_keyp->flags |= BUF_MOD; + if (tp[0] > 2) { + /* +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash_buf.c newlib-1.15.0/newlib/libc/search/hash_buf.c +--- newlib-1.15.0.orig/newlib/libc/search/hash_buf.c 2004-05-26 19:57:10.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash_buf.c 2007-04-13 10:41:47.000000000 +0200 +@@ -176,7 +176,7 @@ + BUFHEAD *next_xbp; + SEGMENT segp; + int segment_ndx; +- __uint16_t oaddr, *shortp; ++ __uint_least16_t oaddr, *shortp; + + oaddr = 0; + bp = LRU; +@@ -212,7 +212,7 @@ + * Set oaddr before __put_page so that you get it + * before bytes are swapped. + */ +- shortp = (__uint16_t *)bp->page; ++ shortp = (__uint_least16_t *)bp->page; + if (shortp[0]) + oaddr = shortp[shortp[0] - 1]; + if ((bp->flags & BUF_MOD) && __put_page(hashp, bp->page, +@@ -255,7 +255,7 @@ + (oaddr != xbp->addr)) + break; + +- shortp = (__uint16_t *)xbp->page; ++ shortp = (__uint_least16_t *)xbp->page; + if (shortp[0]) + /* set before __put_page */ + oaddr = shortp[shortp[0] - 1]; +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash.c newlib-1.15.0/newlib/libc/search/hash.c +--- newlib-1.15.0.orig/newlib/libc/search/hash.c 2004-05-26 19:57:10.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash.c 2007-04-13 10:41:47.000000000 +0200 +@@ -628,10 +628,10 @@ + { + BUFHEAD *rbufp; + BUFHEAD *bufp, *save_bufp; +- __uint16_t *bp; ++ __uint_least16_t *bp; + int n, ndx, off, size; + char *kp; +- __uint16_t pageno; ++ __uint_least16_t pageno; + + #ifdef HASH_STATISTICS + hash_accesses++; +@@ -647,7 +647,7 @@ + + /* Pin the bucket chain */ + rbufp->flags |= BUF_PIN; +- for (bp = (__uint16_t *)rbufp->page, n = *bp++, ndx = 1; ndx < n;) ++ for (bp = (__uint_least16_t *)rbufp->page, n = *bp++, ndx = 1; ndx < n;) + if (bp[1] >= REAL_KEY) { + /* Real key/data pair */ + if (size == off - *bp && +@@ -666,7 +666,7 @@ + return (ERROR); + } + /* FOR LOOP INIT */ +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + n = *bp++; + ndx = 1; + off = hashp->BSIZE; +@@ -688,7 +688,7 @@ + return (ERROR); + } + /* FOR LOOP INIT */ +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + n = *bp++; + ndx = 1; + off = hashp->BSIZE; +@@ -722,7 +722,7 @@ + save_bufp->flags &= ~BUF_PIN; + return (ABNORMAL); + case HASH_GET: +- bp = (__uint16_t *)rbufp->page; ++ bp = (__uint_least16_t *)rbufp->page; + if (bp[ndx + 1] < REAL_KEY) { + if (__big_return(hashp, rbufp, ndx, val, 0)) + return (ERROR); +@@ -758,7 +758,7 @@ + __uint32_t bucket; + BUFHEAD *bufp; + HTAB *hashp; +- __uint16_t *bp, ndx; ++ __uint_least16_t *bp, ndx; + + hashp = (HTAB *)dbp->internal; + if (flag && flag != R_FIRST && flag != R_NEXT) { +@@ -783,7 +783,7 @@ + if (!bufp) + return (ERROR); + hashp->cpage = bufp; +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + if (bp[0]) + break; + } +@@ -793,7 +793,7 @@ + return (ABNORMAL); + } + } else +- bp = (__uint16_t *)hashp->cpage->page; ++ bp = (__uint_least16_t *)hashp->cpage->page; + + #ifdef DEBUG + assert(bp); +@@ -804,7 +804,7 @@ + __get_buf(hashp, bp[hashp->cndx], bufp, 0); + if (!bufp) + return (ERROR); +- bp = (__uint16_t *)(bufp->page); ++ bp = (__uint_least16_t *)(bufp->page); + hashp->cndx = 1; + } + if (!bp[0]) { +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash.h newlib-1.15.0/newlib/libc/search/hash.h +--- newlib-1.15.0.orig/newlib/libc/search/hash.h 2002-07-02 20:18:58.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash.h 2007-04-13 10:41:47.000000000 +0200 +@@ -102,7 +102,7 @@ + #define NCACHED 32 /* number of bit maps and spare + * points */ + int spares[NCACHED];/* spare pages for overflow */ +- __uint16_t bitmaps[NCACHED]; /* address of overflow page ++ __uint_least16_t bitmaps[NCACHED]; /* address of overflow page + * bitmaps */ + } HASHHDR; + +diff -uNr newlib-1.15.0.orig/newlib/libc/search/hash_page.c newlib-1.15.0/newlib/libc/search/hash_page.c +--- newlib-1.15.0.orig/newlib/libc/search/hash_page.c 2002-09-19 23:28:51.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/hash_page.c 2007-04-13 10:41:47.000000000 +0200 +@@ -77,16 +77,16 @@ + static __uint32_t *fetch_bitmap(HTAB *, int); + static __uint32_t first_free(__uint32_t); + static int open_temp(HTAB *); +-static __uint16_t overflow_page(HTAB *); ++static __uint_least16_t overflow_page(HTAB *); + static void putpair(char *, const DBT *, const DBT *); +-static void squeeze_key(__uint16_t *, const DBT *, const DBT *); ++static void squeeze_key(__uint_least16_t *, const DBT *, const DBT *); + static int ugly_split + (HTAB *, __uint32_t, BUFHEAD *, BUFHEAD *, int, int); + + #define PAGE_INIT(P) { \ +- ((__uint16_t *)(P))[0] = 0; \ +- ((__uint16_t *)(P))[1] = hashp->BSIZE - 3 * sizeof(__uint16_t); \ +- ((__uint16_t *)(P))[2] = hashp->BSIZE; \ ++ ((__uint_least16_t *)(P))[0] = 0; \ ++ ((__uint_least16_t *)(P))[1] = hashp->BSIZE - 3 * sizeof(__uint_least16_t); \ ++ ((__uint_least16_t *)(P))[2] = hashp->BSIZE; \ + } + + /* +@@ -99,9 +99,9 @@ + char *p; + const DBT *key, *val; + { +- __uint16_t *bp, n, off; ++ __uint_least16_t *bp, n, off; + +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + + /* Enter the key first. */ + n = bp[0]; +@@ -117,7 +117,7 @@ + + /* Adjust page info. */ + bp[0] = n; +- bp[n + 1] = off - ((n + 3) * sizeof(__uint16_t)); ++ bp[n + 1] = off - ((n + 3) * sizeof(__uint_least16_t)); + bp[n + 2] = off; + } + +@@ -132,11 +132,11 @@ + BUFHEAD *bufp; + int ndx; + { +- __uint16_t *bp, newoff; ++ __uint_least16_t *bp, newoff; + int n; +- __uint16_t pairlen; ++ __uint_least16_t pairlen; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + n = bp[0]; + + if (bp[ndx + 1] < REAL_KEY) +@@ -167,7 +167,7 @@ + } + /* Finally adjust the page data */ + bp[n] = OFFSET(bp) + pairlen; +- bp[n - 1] = bp[n + 1] + pairlen + 2 * sizeof(__uint16_t); ++ bp[n - 1] = bp[n + 1] + pairlen + 2 * sizeof(__uint_least16_t); + bp[0] = n - 2; + hashp->NKEYS--; + +@@ -185,15 +185,15 @@ + __uint32_t obucket, nbucket; + { + BUFHEAD *new_bufp, *old_bufp; +- __uint16_t *ino; ++ __uint_least16_t *ino; + char *np; + DBT key, val; + int n, ndx, retval; +- __uint16_t copyto, diff, off, moved; ++ __uint_least16_t copyto, diff, off, moved; + char *op; + +- copyto = (__uint16_t)hashp->BSIZE; +- off = (__uint16_t)hashp->BSIZE; ++ copyto = (__uint_least16_t)hashp->BSIZE; ++ off = (__uint_least16_t)hashp->BSIZE; + old_bufp = __get_buf(hashp, obucket, NULL, 0); + if (old_bufp == NULL) + return (-1); +@@ -204,7 +204,7 @@ + old_bufp->flags |= (BUF_MOD | BUF_PIN); + new_bufp->flags |= (BUF_MOD | BUF_PIN); + +- ino = (__uint16_t *)(op = old_bufp->page); ++ ino = (__uint_least16_t *)(op = old_bufp->page); + np = new_bufp->page; + + moved = 0; +@@ -246,13 +246,13 @@ + + /* Now clean up the page */ + ino[0] -= moved; +- FREESPACE(ino) = copyto - sizeof(__uint16_t) * (ino[0] + 3); ++ FREESPACE(ino) = copyto - sizeof(__uint_least16_t) * (ino[0] + 3); + OFFSET(ino) = copyto; + + #ifdef DEBUG3 + (void)fprintf(stderr, "split %d/%d\n", +- ((__uint16_t *)np)[0] / 2, +- ((__uint16_t *)op)[0] / 2); ++ ((__uint_least16_t *)np)[0] / 2, ++ ((__uint_least16_t *)op)[0] / 2); + #endif + /* unpin both pages */ + old_bufp->flags &= ~BUF_PIN; +@@ -284,22 +284,22 @@ + int moved; /* Number of pairs moved to new page. */ + { + BUFHEAD *bufp; /* Buffer header for ino */ +- __uint16_t *ino; /* Page keys come off of */ +- __uint16_t *np; /* New page */ +- __uint16_t *op; /* Page keys go on to if they aren't moving */ ++ __uint_least16_t *ino; /* Page keys come off of */ ++ __uint_least16_t *np; /* New page */ ++ __uint_least16_t *op; /* Page keys go on to if they aren't moving */ + + BUFHEAD *last_bfp; /* Last buf header OVFL needing to be freed */ + DBT key, val; + SPLIT_RETURN ret; +- __uint16_t n, off, ov_addr, scopyto; ++ __uint_least16_t n, off, ov_addr, scopyto; + char *cino; /* Character value of ino */ + + bufp = old_bufp; +- ino = (__uint16_t *)old_bufp->page; +- np = (__uint16_t *)new_bufp->page; +- op = (__uint16_t *)old_bufp->page; ++ ino = (__uint_least16_t *)old_bufp->page; ++ np = (__uint_least16_t *)new_bufp->page; ++ op = (__uint_least16_t *)old_bufp->page; + last_bfp = NULL; +- scopyto = (__uint16_t)copyto; /* ANSI */ ++ scopyto = (__uint_least16_t)copyto; /* ANSI */ + + n = ino[0] - 1; + while (n < ino[0]) { +@@ -310,16 +310,16 @@ + old_bufp = ret.oldp; + if (!old_bufp) + return (-1); +- op = (__uint16_t *)old_bufp->page; ++ op = (__uint_least16_t *)old_bufp->page; + new_bufp = ret.newp; + if (!new_bufp) + return (-1); +- np = (__uint16_t *)new_bufp->page; ++ np = (__uint_least16_t *)new_bufp->page; + bufp = ret.nextp; + if (!bufp) + return (0); + cino = (char *)bufp->page; +- ino = (__uint16_t *)cino; ++ ino = (__uint_least16_t *)cino; + last_bfp = ret.nextp; + } else if (ino[n + 1] == OVFLPAGE) { + ov_addr = ino[n]; +@@ -329,14 +329,14 @@ + */ + ino[0] -= (moved + 2); + FREESPACE(ino) = +- scopyto - sizeof(__uint16_t) * (ino[0] + 3); ++ scopyto - sizeof(__uint_least16_t) * (ino[0] + 3); + OFFSET(ino) = scopyto; + + bufp = __get_buf(hashp, ov_addr, bufp, 0); + if (!bufp) + return (-1); + +- ino = (__uint16_t *)bufp->page; ++ ino = (__uint_least16_t *)bufp->page; + n = 1; + scopyto = hashp->BSIZE; + moved = 0; +@@ -364,7 +364,7 @@ + __add_ovflpage(hashp, old_bufp); + if (!old_bufp) + return (-1); +- op = (__uint16_t *)old_bufp->page; ++ op = (__uint_least16_t *)old_bufp->page; + putpair((char *)op, &key, &val); + } + old_bufp->flags |= BUF_MOD; +@@ -377,7 +377,7 @@ + __add_ovflpage(hashp, new_bufp); + if (!new_bufp) + return (-1); +- np = (__uint16_t *)new_bufp->page; ++ np = (__uint_least16_t *)new_bufp->page; + putpair((char *)np, &key, &val); + } + new_bufp->flags |= BUF_MOD; +@@ -402,10 +402,10 @@ + BUFHEAD *bufp; + const DBT *key, *val; + { +- __uint16_t *bp, *sop; ++ __uint_least16_t *bp, *sop; + int do_expand; + +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + do_expand = 0; + while (bp[0] && (bp[2] < REAL_KEY || bp[bp[0]] < REAL_KEY)) + /* Exception case */ +@@ -417,7 +417,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } else + /* Try to squeeze key on this page */ + if (FREESPACE(bp) > PAIRSIZE(key, val)) { +@@ -427,7 +427,7 @@ + bufp = __get_buf(hashp, bp[bp[0] - 1], bufp, 0); + if (!bufp) + return (-1); +- bp = (__uint16_t *)bufp->page; ++ bp = (__uint_least16_t *)bufp->page; + } + + if (PAIRFITS(bp, key, val)) +@@ -437,7 +437,7 @@ + bufp = __add_ovflpage(hashp, bufp); + if (!bufp) + return (-1); +- sop = (__uint16_t *)bufp->page; ++ sop = (__uint_least16_t *)bufp->page; + + if (PAIRFITS(sop, key, val)) + putpair((char *)sop, key, val); +@@ -468,12 +468,12 @@ + HTAB *hashp; + BUFHEAD *bufp; + { +- __uint16_t *sp; +- __uint16_t ndx, ovfl_num; ++ __uint_least16_t *sp; ++ __uint_least16_t ndx, ovfl_num; + #ifdef DEBUG1 + int tmp1, tmp2; + #endif +- sp = (__uint16_t *)bufp->page; ++ sp = (__uint_least16_t *)bufp->page; + + /* Check if we are dynamically determining the fill factor */ + if (hashp->FFACTOR == DEF_FFACTOR) { +@@ -525,7 +525,7 @@ + { + int fd, page, size; + int rsize; +- __uint16_t *bp; ++ __uint_least16_t *bp; + + fd = hashp->fp; + size = hashp->BSIZE; +@@ -541,7 +541,7 @@ + if ((lseek(fd, (off_t)page << hashp->BSHIFT, SEEK_SET) == -1) || + ((rsize = read(fd, p, size)) == -1)) + return (-1); +- bp = (__uint16_t *)p; ++ bp = (__uint_least16_t *)p; + if (!rsize) + bp[0] = 0; /* We hit the EOF, so initialize a new page */ + else +@@ -600,9 +600,9 @@ + for (i = 0; i < max; i++) + M_32_SWAP(((int *)p)[i]); + } else { +- max = ((__uint16_t *)p)[0] + 2; ++ max = ((__uint_least16_t *)p)[0] + 2; + for (i = 0; i <= max; i++) +- M_16_SWAP(((__uint16_t *)p)[i]); ++ M_16_SWAP(((__uint_least16_t *)p)[i]); + } + } + if (is_bucket) +@@ -643,7 +643,7 @@ + hashp->BSIZE - clearbytes); + ip[clearints - 1] = ALL_SET << (nbits & BYTE_MASK); + SETBIT(ip, 0); +- hashp->BITMAPS[ndx] = (__uint16_t)pnum; ++ hashp->BITMAPS[ndx] = (__uint_least16_t)pnum; + hashp->mapp[ndx] = ip; + return (0); + } +@@ -663,13 +663,13 @@ + return (i); + } + +-static __uint16_t ++static __uint_least16_t + overflow_page(hashp) + HTAB *hashp; + { + __uint32_t *freep; + int max_free, offset, splitnum; +- __uint16_t addr; ++ __uint_least16_t addr; + int bit, first_page, free_bit, free_page, i, in_use_bits, j; + #ifdef DEBUG2 + int tmp1, tmp2; +@@ -816,16 +816,16 @@ + HTAB *hashp; + BUFHEAD *obufp; + { +- __uint16_t addr; ++ __uint_least16_t addr; + __uint32_t *freep; + int bit_address, free_page, free_bit; +- __uint16_t ndx; ++ __uint_least16_t ndx; + + addr = obufp->addr; + #ifdef DEBUG1 + (void)fprintf(stderr, "Freeing %d\n", addr); + #endif +- ndx = (((__uint16_t)addr) >> SPLITSHIFT); ++ ndx = (((__uint_least16_t)addr) >> SPLITSHIFT); + bit_address = + (ndx ? hashp->SPARES[ndx - 1] : 0) + (addr & SPLITMASK) - 1; + if (bit_address < hashp->LAST_FREED) +@@ -883,11 +883,11 @@ + */ + static void + squeeze_key(sp, key, val) +- __uint16_t *sp; ++ __uint_least16_t *sp; + const DBT *key, *val; + { + char *p; +- __uint16_t free_space, n, off, pageno; ++ __uint_least16_t free_space, n, off, pageno; + + p = (char *)sp; + n = sp[0]; +diff -uNr newlib-1.15.0.orig/newlib/libc/search/page.h newlib-1.15.0/newlib/libc/search/page.h +--- newlib-1.15.0.orig/newlib/libc/search/page.h 2002-06-20 21:51:31.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/search/page.h 2007-04-13 10:41:47.000000000 +0200 +@@ -74,20 +74,20 @@ + * You might as well do this up front. + */ + +-#define PAIRSIZE(K,D) (2*sizeof(__uint16_t) + (K)->size + (D)->size) +-#define BIGOVERHEAD (4*sizeof(__uint16_t)) +-#define KEYSIZE(K) (4*sizeof(__uint16_t) + (K)->size); +-#define OVFLSIZE (2*sizeof(__uint16_t)) ++#define PAIRSIZE(K,D) (2*sizeof(__uint_least16_t) + (K)->size + (D)->size) ++#define BIGOVERHEAD (4*sizeof(__uint_least16_t)) ++#define KEYSIZE(K) (4*sizeof(__uint_least16_t) + (K)->size); ++#define OVFLSIZE (2*sizeof(__uint_least16_t)) + #define FREESPACE(P) ((P)[(P)[0]+1]) + #define OFFSET(P) ((P)[(P)[0]+2]) + #define PAIRFITS(P,K,D) \ + (((P)[2] >= REAL_KEY) && \ + (PAIRSIZE((K),(D)) + OVFLSIZE) <= FREESPACE((P))) +-#define PAGE_META(N) (((N)+3) * sizeof(__uint16_t)) ++#define PAGE_META(N) (((N)+3) * sizeof(__uint_least16_t)) + + typedef struct { + BUFHEAD *newp; + BUFHEAD *oldp; + BUFHEAD *nextp; +- __uint16_t next_addr; ++ __uint_least16_t next_addr; + } SPLIT_RETURN; +diff -uNr newlib-1.15.0.orig/newlib/libc/sys/rtems/machine/stdint.h newlib-1.15.0/newlib/libc/sys/rtems/machine/stdint.h +--- newlib-1.15.0.orig/newlib/libc/sys/rtems/machine/stdint.h 1970-01-01 01:00:00.000000000 +0100 ++++ newlib-1.15.0/newlib/libc/sys/rtems/machine/stdint.h 2007-04-13 10:41:47.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* ++ * ++ */ ++#ifndef _MACHINE_STDINT_H ++#define _MACHINE_STDINT_H ++ ++#ifndef _STDINT_H ++#error machine/stdint.h is an internal file and must not be directly included ++#endif ++ ++#if defined(__sparc__) \ ++ || defined(__powerpc__) || defined(__PPC__) \ ++ || defined(__mips__) \ ++ || defined(__sh__) \ ++ || defined(__AVR__) \ ++ || defined(_C4x) || defined(_C3x) \ ++ || defined(__H8300__) ++/* PTRDIFF_TYPE = int */ ++#define __ptrint_t_int_defined 1 ++#endif ++ ++#if defined(__i386__) \ ++ || defined(__m68k__) \ ++ || defined(__bfin__) \ ++ || defined(__arm__) \ ++ || defined(__H8300S__) || defined(__H8300H__) ++/* PTRDIFF_TYPE = long */ ++#define __ptrint_t_long_defined 1 ++#endif ++ ++#endif +diff -uNr newlib-1.15.0.orig/newlib/libc/sys/rtems/sys/param.h newlib-1.15.0/newlib/libc/sys/rtems/sys/param.h +--- newlib-1.15.0.orig/newlib/libc/sys/rtems/sys/param.h 2004-05-07 22:29:24.000000000 +0200 ++++ newlib-1.15.0/newlib/libc/sys/rtems/sys/param.h 2007-04-13 10:41:47.000000000 +0200 +@@ -93,7 +93,6 @@ + #include + #include + #include +-#include + + #ifndef FALSE + #define FALSE 0 +diff -uNr newlib-1.15.0.orig/newlib/Makefile.am newlib-1.15.0/newlib/Makefile.am +--- newlib-1.15.0.orig/newlib/Makefile.am 2006-06-05 19:42:57.000000000 +0200 ++++ newlib-1.15.0/newlib/Makefile.am 2007-04-13 10:41:47.000000000 +0200 +@@ -81,7 +81,7 @@ + libc.a + endif + +-noinst_DATA = stmp-targ-include ++BUILT_SOURCES = stmp-targ-include + + toollib_DATA = $(CRT0) $(CRT1) + +@@ -186,9 +186,6 @@ + + $(CRT1_DIR)$(CRT1): ; @true + +- +-all-recursive: stmp-targ-include +- + # The targ-include directory just holds the includes files for the + # particular system and machine we have been configured for. It is + # used while building. +diff -uNr newlib-1.15.0.orig/newlib/Makefile.in newlib-1.15.0/newlib/Makefile.in +--- newlib-1.15.0.orig/newlib/Makefile.in 2006-12-18 21:32:41.000000000 +0100 ++++ newlib-1.15.0/newlib/Makefile.in 2007-04-13 10:41:47.000000000 +0200 +@@ -103,7 +103,7 @@ + pdf-recursive ps-recursive uninstall-info-recursive \ + uninstall-recursive + toollibDATA_INSTALL = $(INSTALL_DATA) +-DATA = $(noinst_DATA) $(toollib_DATA) ++DATA = $(toollib_DATA) + ETAGS = etags + CTAGS = ctags + DEJATOOL = $(PACKAGE) +@@ -205,12 +205,7 @@ + USE_LIBTOOL_FALSE = @USE_LIBTOOL_FALSE@ + USE_LIBTOOL_TRUE = @USE_LIBTOOL_TRUE@ + VERSION = @VERSION@ +-ac_ct_AR = @ac_ct_AR@ +-ac_ct_AS = @ac_ct_AS@ + ac_ct_CC = @ac_ct_CC@ +-ac_ct_RANLIB = @ac_ct_RANLIB@ +-ac_ct_READELF = @ac_ct_READELF@ +-ac_ct_STRIP = @ac_ct_STRIP@ + aext = @aext@ + am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ + am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +@@ -226,12 +221,16 @@ + build_os = @build_os@ + build_vendor = @build_vendor@ + datadir = @datadir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++dvidir = @dvidir@ + exec_prefix = @exec_prefix@ + host = @host@ + host_alias = @host_alias@ + host_cpu = @host_cpu@ + host_os = @host_os@ + host_vendor = @host_vendor@ ++htmldir = @htmldir@ + includedir = @includedir@ + infodir = @infodir@ + install_sh = @install_sh@ +@@ -240,6 +239,7 @@ + libdir = @libdir@ + libexecdir = @libexecdir@ + libm_machine_dir = @libm_machine_dir@ ++localedir = @localedir@ + localstatedir = @localstatedir@ + lpfx = @lpfx@ + machine_dir = @machine_dir@ +@@ -248,8 +248,10 @@ + newlib_basedir = @newlib_basedir@ + oext = @oext@ + oldincludedir = @oldincludedir@ ++pdfdir = @pdfdir@ + prefix = @prefix@ + program_transform_name = @program_transform_name@ ++psdir = @psdir@ + sbindir = @sbindir@ + sharedstatedir = @sharedstatedir@ + subdirs = @subdirs@ +@@ -323,7 +325,7 @@ + @USE_LIBTOOL_FALSE@toollib_LIBRARIES = libm.a \ + @USE_LIBTOOL_FALSE@ libc.a + +-noinst_DATA = stmp-targ-include ++BUILT_SOURCES = stmp-targ-include + toollib_DATA = $(CRT0) $(CRT1) + + # The functions ldexp, frexp and modf are traditionally supplied in +@@ -382,7 +384,7 @@ + + # dejagnu support + RUNTESTFLAGS = +-all: newlib.h ++all: $(BUILT_SOURCES) newlib.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + + .SUFFIXES: +@@ -687,14 +689,16 @@ + done + check-am: + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU +-check: check-recursive ++check: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) check-recursive + all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(DATA) newlib.h + installdirs: installdirs-recursive + installdirs-am: + for dir in "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)" "$(DESTDIR)$(toollibdir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +-install: install-recursive ++install: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) install-recursive + install-exec: install-exec-recursive + install-data: install-data-recursive + uninstall: uninstall-recursive +@@ -719,6 +723,7 @@ + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." ++ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + clean: clean-recursive + + clean-am: clean-generic clean-libtool clean-toollibLIBRARIES \ +@@ -837,8 +842,6 @@ + + $(CRT1_DIR)$(CRT1): ; @true + +-all-recursive: stmp-targ-include +- + # The targ-include directory just holds the includes files for the + # particular system and machine we have been configured for. It is + # used while building. diff --git a/newlib-patches/1.15.0/series b/newlib-patches/1.15.0/series new file mode 100644 index 0000000..7079b6a --- /dev/null +++ b/newlib-patches/1.15.0/series @@ -0,0 +1 @@ +newlib-1.15.0-rtems4.8-20070413.diff diff --git a/rtems-build/arm-csb336/binutils/binutils-arm9-rtems.cfg b/rtems-build/arm-csb336/binutils/binutils-arm9-rtems.cfg old mode 100644 new mode 100755 index 580d00a..9813dfb --- a/rtems-build/arm-csb336/binutils/binutils-arm9-rtems.cfg +++ b/rtems-build/arm-csb336/binutils/binutils-arm9-rtems.cfg @@ -151,18 +151,9 @@ CFLAGS=-O2 LDFLAGS=-s \ --host=i586-pc-linux-gnu \ --target=arm-rtems \ --with-gnu-ld --exec-prefix=/usr --prefix=/usr \ ---enable-shared --enable-commonbfdlib --verbose \ +--verbose \ --with-mmap --enable-64-bit-bfd \ ---enable-targets=i586-pc-linux-gnu,i586-pc-linux-gnulibc1,\ -i386-coff,i586-msdosdjgpp,\ -m68k-linux-elf,m68k-rtems,m68k-coff,m68k-a.out-linux,\ -powerpc-rtems,powerpc-linux,m68hc11-elf,m68hc12-elf,\ -h8300-coff,h8300-elf,sh-coff,sh-rtemself,sh64-linux,\ -or32-elf,openrisc-elf,alpha-linux-gnu,\ -ia64-linux-gnu,x86_64-linux-gnu,\ -arm-rtems,arm-linux,arm-pe,arm-coff,avr-elf,\ -sparc-linux-elf,i586-win-pe,\ -tic30-ti-coff,tic30-ti-aout,tic4x-ti-coff,tic54x-ti-coff,msp430 +--enable-targets=arm-rtems,arm-linux,arm-coff #i586-go32, #--ieee, #srec,symbolsrec,tekhex,binary,ihex,trad-core diff --git a/rtems-build/arm-csb336/binutils/control b/rtems-build/arm-csb336/binutils/control new file mode 100644 index 0000000..324ee8a --- /dev/null +++ b/rtems-build/arm-csb336/binutils/control @@ -0,0 +1,11 @@ +Package: binutils-arm-rtems +Version: 2.17-1 +Architecture: amd64 +Source: binutils-2.17 +Section: cross-dev +Priority: extra +Maintainer: Pavel Pisa +Priority: extra +Description: Binutils for target arm-rtems + . + GNU binutils targetting arm-rtems diff --git a/rtems-build/arm-csb336/gcc/control b/rtems-build/arm-csb336/gcc/control new file mode 100644 index 0000000..cc42a7b --- /dev/null +++ b/rtems-build/arm-csb336/gcc/control @@ -0,0 +1,11 @@ +Package: gcc-arm-rtems +Version: 4.1.2-1 +Architecture: amd64 +Source: gcc-4.1.2 +Section: cross-dev +Priority: extra +Maintainer: Pavel Pisa +Priority: extra +Description: GCC for target arm-rtems + . + GNU binutils targetting arm-rtems diff --git a/rtems-build/arm-csb336/gcc/gcc-arm9-rtems.cfg b/rtems-build/arm-csb336/gcc/gcc-arm9-rtems.cfg old mode 100644 new mode 100755 index 36f02d7..af51b64 --- a/rtems-build/arm-csb336/gcc/gcc-arm9-rtems.cfg +++ b/rtems-build/arm-csb336/gcc/gcc-arm9-rtems.cfg @@ -166,4 +166,5 @@ --verbose \ --disable-nls \ --host=i586-pc-linux-gnu \ - --with-newlib + --with-newlib \ + --enable-version-specific-runtime-libs diff --git a/rtems-build/arm-csb336/rtems/arm-rtems-sys.cfg b/rtems-build/arm-csb336/rtems/arm-rtems-sys.cfg old mode 100644 new mode 100755 diff --git a/rtems-build/arm-csb336/rtems/control b/rtems-build/arm-csb336/rtems/control new file mode 100644 index 0000000..129f2f6 --- /dev/null +++ b/rtems-build/arm-csb336/rtems/control @@ -0,0 +1,11 @@ +Package: rtems-csb336 +Version: 4.7.1 +Architecture: all +Source: rtems-4.7.1 +Section: cross-dev +Priority: extra +Maintainer: Pavel Pisa +Priority: extra +Description: RTEMS executive for target board CSB336/PiMX1 (arm-rtems) + . + RTEMS targetting board CSB336/PiMX1 (arm-rtems) diff --git a/rtems-build/m68k-m5235bcc/gdb/gdb-m68k-bdm-elf.cfg b/rtems-build/m68k-m5235bcc/gdb/gdb-m68k-bdm-elf.cfg old mode 100755 new mode 100644 diff --git a/rtems-patches/control b/rtems-patches/control new file mode 100644 index 0000000..11f2aea --- /dev/null +++ b/rtems-patches/control @@ -0,0 +1,11 @@ +Package: rtems-common +Version: 4.7.1 +Architecture: amd64 +Source: rtems-4.7.1 +Section: cross-dev +Priority: extra +Maintainer: Pavel Pisa +Priority: extra +Description: RTEMS executive common files + . + RTEMS support files common to all target architectures diff --git a/rtems-patches/current/rtems-clone-mrm332-to-mo376.patch b/rtems-patches/current/rtems-clone-mrm332-to-mo376.patch index 3415411..9453f0c 100644 --- a/rtems-patches/current/rtems-clone-mrm332-to-mo376.patch +++ b/rtems-patches/current/rtems-clone-mrm332-to-mo376.patch @@ -1,12 +1,43 @@ +--- + c/src/lib/libbsp/m68k/mo376/ChangeLog | 455 +++ + c/src/lib/libbsp/m68k/mo376/Makefile.am | 68 + c/src/lib/libbsp/m68k/mo376/README | 24 + c/src/lib/libbsp/m68k/mo376/bsp_specs | 16 + c/src/lib/libbsp/m68k/mo376/clock/ckinit.c | 128 + + c/src/lib/libbsp/m68k/mo376/configure.ac | 20 + c/src/lib/libbsp/m68k/mo376/console/console.c | 174 + + c/src/lib/libbsp/m68k/mo376/console/sci.c | 1596 ++++++++++++++ + c/src/lib/libbsp/m68k/mo376/console/sci.h | 234 ++ + c/src/lib/libbsp/m68k/mo376/include/bsp.h | 139 + + c/src/lib/libbsp/m68k/mo376/include/bspopts.h.in | 16 + c/src/lib/libbsp/m68k/mo376/include/mrm332.h | 70 + c/src/lib/libbsp/m68k/mo376/include/tm27.h | 34 + c/src/lib/libbsp/m68k/mo376/misc/dotests | 15 + c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 | 16 + c/src/lib/libbsp/m68k/mo376/misc/interr.c | 99 + c/src/lib/libbsp/m68k/mo376/preinstall.am | 66 + c/src/lib/libbsp/m68k/mo376/spurious/spinit.c | 105 + c/src/lib/libbsp/m68k/mo376/start/start.S | 150 + + c/src/lib/libbsp/m68k/mo376/startup/bspclean.c | 27 + c/src/lib/libbsp/m68k/mo376/startup/bspstart.c | 82 + c/src/lib/libbsp/m68k/mo376/startup/except_vect_332_ROM.S | 293 ++ + c/src/lib/libbsp/m68k/mo376/startup/linkcmds | 164 + + c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM | 200 + + c/src/lib/libbsp/m68k/mo376/startup/start_c.c | 125 + + c/src/lib/libbsp/m68k/mo376/timer/timer.c | 81 + c/src/lib/libbsp/m68k/mo376/times | 195 + + make/custom/mo376.cfg | 67 + 28 files changed, 4659 insertions(+) + Index: rtems/make/custom/mo376.cfg =================================================================== ---- /dev/null -+++ rtems/make/custom/mo376.cfg -@@ -0,0 +1,68 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/make/custom/mo376.cfg 2007-08-14 17:20:30.000000000 +0200 +@@ -0,0 +1,67 @@ +# +# Config file for the mrm332 BSP +# -+# $Id: mrm332.cfg,v 1.8 2004/02/04 16:50:30 ralf Exp $ ++# $Id: mrm332.cfg,v 1.9.2.3 2007/01/18 11:27:07 ralf Exp $ +# + +include $(RTEMS_ROOT)/make/custom/default.cfg @@ -21,12 +52,11 @@ Index: rtems/make/custom/mo376.cfg +# and (hopefully) optimize for it. +CPU_CFLAGS = -mcpu32 + -+# optimize flag: typically -0, could use -O4 or -fast, -O4 is ok for RTEMS -+CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer ++# optimize flag: typically -O2 ++CFLAGS_OPTIMIZE_V = -O2 -g -fomit-frame-pointer + +# The following are definitions of make-exe which will work using ld as -+# is currently required. It is expected that as of gcc 2.8, the end user -+# will be able to override parts of the compilers specs and link using gcc. ++# is currently required. + +ifeq ($(MRM_IN_ROM),yes) +# Build a rommable image - move the .data section after the .text section @@ -50,8 +80,8 @@ Index: rtems/make/custom/mo376.cfg + /\.text/ { base = $$4 ; size = $$3 };\ + END { printf("0x%x", h2d(base) + h2d(size)) }'\ + ` $(basename $@).pxe $(basename $@).nxe -+ $(OBJCOPY) -O srec $(basename $@).nxe $(basename $@).i -+ sed -e 's/.$$//' -e '/^S0/d' $(basename $@).i | \ ++ $(OBJCOPY) -O srec $(basename $@).nxe $(basename $@).srec ++ sed -e 's/.$$//' -e '/^S0/d' $(basename $@).srec | \ + $(PACKHEX) > $(basename $@).exe + $(NM) -g -n $(basename $@).pxe > $(basename $@).pnum + $(NM) -g -n $(basename $@).nxe > $(basename $@).num @@ -61,9 +91,9 @@ Index: rtems/make/custom/mo376.cfg +define make-exe + $(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) -o $(basename $@).nxe \ + $(LINK_OBJS) $(LINK_LIBS) -+ $(OBJCOPY) -O srec $(basename $@).nxe $(basename $@).i ++ $(OBJCOPY) -O srec $(basename $@).nxe $(basename $@).srec +# m68k-rtems-objdump -dxC $(basename $@).nxe > $(basename $@).dump -+ sed -e 's/.$$//' -e '/^S0/d' $(basename $@).i | \ ++ sed -e 's/.$$//' -e '/^S0/d' $(basename $@).srec | \ + $(PACKHEX) > $(basename $@).exe + $(NM) -g -n $(basename $@).nxe > $(basename $@).num + $(SIZE) $(basename $@).nxe @@ -73,9 +103,9 @@ Index: rtems/make/custom/mo376.cfg +# Miscellaneous additions go here Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/console/sci.h -@@ -0,0 +1,231 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/console/sci.h 2007-08-14 17:20:30.000000000 +0200 +@@ -0,0 +1,234 @@ +/**************************************************************************** +* File: sci.h +* @@ -83,7 +113,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.h +* +* Note: See bsp.h,confdefs.h,system.h for installing drivers into RTEMS. +* -+* $Id: sci.h,v 1.4 2004/04/21 16:01:35 ralf Exp $ ++* $Id: sci.h,v 1.5 2006/09/11 21:43:55 joel Exp $ +****************************************************************************/ + +#ifndef _sci_h_ @@ -94,64 +124,65 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.h + I'm still working on these... +*******************************************************************************/ + -+#define SCI_IOCTL_PARITY_NONE 0x00 // no parity bit after the data bits -+#define SCI_IOCTL_PARITY_ODD 0x01 // parity bit added after data bits -+#define SCI_IOCTL_PARITY_EVEN 0x02 // parity bit added after data bits -+#define SCI_IOCTL_PARITY_MARK 0x03 // parity bit is lo, -12 volts, logical 1 -+#define SCI_IOCTL_PARITY_SPACE 0x04 // parity bit is hi, +12 volts, logical 0 -+#define SCI_IOCTL_PARITY_FORCED_ON 0x03 // parity bit is forced hi or lo -+#define SCI_IOCTL_PARITY_FORCED_OFF 0x04 // parity bit is forced hi or lo ++#define SCI_IOCTL_PARITY_NONE 0x00 /* no parity bit after the data bits */ ++#define SCI_IOCTL_PARITY_ODD 0x01 /* parity bit added after data bits */ ++#define SCI_IOCTL_PARITY_EVEN 0x02 /* parity bit added after data bits */ ++#define SCI_IOCTL_PARITY_MARK 0x03 /* parity bit is lo, -12 volts, logical 1 */ ++#define SCI_IOCTL_PARITY_SPACE 0x04 /* parity bit is hi, +12 volts, logical 0 */ ++#define SCI_IOCTL_PARITY_FORCED_ON 0x03 /* parity bit is forced hi or lo */ ++#define SCI_IOCTL_PARITY_FORCED_OFF 0x04 /* parity bit is forced hi or lo */ + -+#define SCI_IOCTL_BAUD_RATE 0x20 // set the baud rate, arg is baud ++#define SCI_IOCTL_BAUD_RATE 0x20 /* set the baud rate, arg is baud */ + -+#define SCI_IOCTL_DATA_BITS 0x30 // set the data bits, arg is # bits ++#define SCI_IOCTL_DATA_BITS 0x30 /* set the data bits, arg is # bits */ + -+#define SCI_IOCTL_STOP_BITS_1 0x40 // 1 stop bit after char frame -+#define SCI_IOCTL_STOP_BITS_2 0x41 // 2 stop bit after char frame ++#define SCI_IOCTL_STOP_BITS_1 0x40 /* 1 stop bit after char frame */ ++#define SCI_IOCTL_STOP_BITS_2 0x41 /* 2 stop bit after char frame */ + -+#define SCI_IOCTL_MODE_NORMAL 0x50 // normal operating mode -+#define SCI_IOCTL_MODE_LOOP 0x51 // internal loopback mode ++#define SCI_IOCTL_MODE_NORMAL 0x50 /* normal operating mode */ ++#define SCI_IOCTL_MODE_LOOP 0x51 /* internal loopback mode */ + -+#define SCI_IOCTL_FLOW_NONE 0x60 // no flow control -+#define SCI_IOCTL_FLOW_RTS_CTS 0x61 // hardware flow control ++#define SCI_IOCTL_FLOW_NONE 0x60 /* no flow control */ ++#define SCI_IOCTL_FLOW_RTS_CTS 0x61 /* hardware flow control */ + -+#define SCI_IOCTL_SEND_BREAK 0x70 // send an rs-232 break ++#define SCI_IOCTL_SEND_BREAK 0x70 /* send an rs-232 break */ + -+#define SCI_IOCTL_MODE_1200 0x80 // 1200,n,8,1 download mode -+#define SCI_IOCTL_MODE_9600 0x81 // 9600,n,8,1 download mode -+#define SCI_IOCTL_MODE_9_BIT 0x82 // 9600,forced,8,1 command mode ++#define SCI_IOCTL_MODE_1200 0x80 /* 1200,n,8,1 download mode */ ++#define SCI_IOCTL_MODE_9600 0x81 /* 9600,n,8,1 download mode */ ++#define SCI_IOCTL_MODE_9_BIT 0x82 /* 9600,forced,8,1 command mode */ + + +/******************************************************************************* + SCI Registers +*******************************************************************************/ + -+// SCI Control Register 0 (SCCR0) $FFFC08 -+ -+// 8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1 -+// ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ -+// | | | | | | | | | | | | | | | | -+// | | | | | | | | | | | | | | | +----- 0 baud rate divisor -+// | | | | | | | | | | | | | | +------- 1 baud rate divisor -+// | | | | | | | | | | | | | +--------- 2 baud rate divisor -+// | | | | | | | | | | | | +----------- 3 baud rate divisor -+// | | | | | | | | | | | | -+// | | | | | | | | | | | +--------------- 4 baud rate divisor -+// | | | | | | | | | | +----------------- 5 baud rate divisor -+// | | | | | | | | | +------------------- 6 baud rate divisor -+// | | | | | | | | +--------------------- 7 baud rate divisor -+// | | | | | | | | -+// | | | | | | | +------------------------- 8 baud rate divisor -+// | | | | | | +--------------------------- 9 baud rate divisor -+// | | | | | +----------------------------- 10 baud rate divisor -+// | | | | +------------------------------- 11 baud rate divisor -+// | | | | -+// | | | +----------------------------------- 12 baud rate divisor -+// | | +------------------------------------- 13 unused -+// | +--------------------------------------- 14 unused -+// +----------------------------------------- 15 unused -+ -+// 0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 1 0 0 reset value - (64k baud?) ++/* SCI Control Register 0 (SCCR0) $FFFC08 ++ ++ 8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1 ++ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ++ | | | | | | | | | | | | | | | | ++ | | | | | | | | | | | | | | | +----- 0 baud rate divisor ++ | | | | | | | | | | | | | | +------- 1 baud rate divisor ++ | | | | | | | | | | | | | +--------- 2 baud rate divisor ++ | | | | | | | | | | | | +----------- 3 baud rate divisor ++ | | | | | | | | | | | | ++ | | | | | | | | | | | +--------------- 4 baud rate divisor ++ | | | | | | | | | | +----------------- 5 baud rate divisor ++ | | | | | | | | | +------------------- 6 baud rate divisor ++ | | | | | | | | +--------------------- 7 baud rate divisor ++ | | | | | | | | ++ | | | | | | | +------------------------- 8 baud rate divisor ++ | | | | | | +--------------------------- 9 baud rate divisor ++ | | | | | +----------------------------- 10 baud rate divisor ++ | | | | +------------------------------- 11 baud rate divisor ++ | | | | ++ | | | +----------------------------------- 12 baud rate divisor ++ | | +------------------------------------- 13 unused ++ | +--------------------------------------- 14 unused ++ +----------------------------------------- 15 unused ++ ++ 0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 1 0 0 reset value - (64k baud?) ++ */ + +#define SCI_BAUD_57_6K 9 +#define SCI_BAUD_38_4K 14 @@ -162,115 +193,117 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.h +#define SCI_BAUD_1200 437 + + -+// SCI Control Register 1 (SCCR1) $FFFC0A -+ -+// 8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1 -+// ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ -+// | | | | | | | | | | | | | | | | -+// | | | | | | | | | | | | | | | +----- 0 send a break -+// | | | | | | | | | | | | | | +------- 1 rcvr wakeup mode -+// | | | | | | | | | | | | | +--------- 2 rcvr enable -+// | | | | | | | | | | | | +----------- 3 xmtr enable -+// | | | | | | | | | | | | -+// | | | | | | | | | | | +--------------- 4 idle line intr enable -+// | | | | | | | | | | +----------------- 5 rcvr intr enable -+// | | | | | | | | | +------------------- 6 xmit complete intr enable -+// | | | | | | | | +--------------------- 7 xmtr intr enable -+// | | | | | | | | -+// | | | | | | | +------------------------- 8 wakeup on address mark -+// | | | | | | +--------------------------- 9 mode 1=9 bits, 0=8 bits -+// | | | | | +----------------------------- 10 parity enable 1=on, 0=off -+// | | | | +------------------------------- 11 parity type 1=odd, 0=even -+// | | | | -+// | | | +----------------------------------- 12 idle line select -+// | | +------------------------------------- 13 wired-or mode -+// | +--------------------------------------- 14 loop mode -+// +----------------------------------------- 15 unused -+ -+// 0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 0 0 0 reset value -+ -+#define SCI_SEND_BREAK 0x0001 // 0000-0000-0000-0001 -+#define SCI_RCVR_WAKEUP 0x0002 // 0000-0000-0000-0010 -+#define SCI_ENABLE_RCVR 0x0004 // 0000-0000-0000-0100 -+#define SCI_ENABLE_XMTR 0x0008 // 0000-0000-0000-1000 -+ -+#define SCI_DISABLE_RCVR 0xFFFB // 1111-1111-1111-1011 -+#define SCI_DISABLE_XMTR 0xFFF7 // 1111-1111-1111-0111 -+ -+#define SCI_ENABLE_INT_IDLE 0x0010 // 0000-0000-0001-0000 -+#define SCI_ENABLE_INT_RX 0x0020 // 0000-0000-0010-0000 -+#define SCI_ENABLE_INT_TX_DONE 0x0040 // 0000-0000-0100-0000 -+#define SCI_ENABLE_INT_TX 0x0080 // 0000-0000-1000-0000 -+ -+#define SCI_DISABLE_INT_ALL 0xFF00 // 1111-1111-0000-0000 ??? -+ -+#define SCI_DISABLE_INT_RX 0xFFDF // 1111-1111-1101-1111 -+#define SCI_CLEAR_RX_INT 0xFFBF // 1111-1111-1011-1111 -+#define SCI_DISABLE_INT_TX 0xFF7F // 1111-1111-0111-1111 -+#define SCI_CLEAR_TDRE 0xFEFF // 1111-1110-1111-1111 -+ -+#define SCI_RCVR_WAKE_ON_MARK 0x0100 // 0000-0001-0000-0000 -+#define SCI_9_DATA_BITS 0x0200 // 0000-0010-0000-0000 -+#define SCI_PARITY_ENABLE 0x0400 // 0000-0100-0000-0000 -+#define SCI_PARITY_ODD 0x0800 // 0000-1000-0000-0000 -+ -+#define SCI_RCVR_WAKE_ON_IDLE 0xFEFF // 1111-1110-1111-1111 -+#define SCI_8_DATA_BITS 0xFDFF // 1111-1101-1111-1111 -+#define SCI_PARITY_DISABLE 0xFBFF // 1111-1011-1111-1111 -+#define SCI_PARITY_EVEN 0xF7FF // 1111-0111-1111-1111 -+ -+#define SCI_PARITY_NONE 0xF3FF // 1111-0011-1111-1111 -+ -+#define SCI_IDLE_LINE_LONG 0x1000 // 0001-0000-0000-0000 -+#define SCI_TXD_OPEN_DRAIN 0x2000 // 0010-0000-0000-0000 -+#define SCI_LOOPBACK_MODE 0x4000 // 0100-0000-0000-0000 -+#define SCI_SCCR1_UNUSED 0x8000 // 1000-0000-0000-0000 ++/* SCI Control Register 1 (SCCR1) $FFFC0A ++ ++ 8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1 ++ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ++ | | | | | | | | | | | | | | | | ++ | | | | | | | | | | | | | | | +----- 0 send a break ++ | | | | | | | | | | | | | | +------- 1 rcvr wakeup mode ++ | | | | | | | | | | | | | +--------- 2 rcvr enable ++ | | | | | | | | | | | | +----------- 3 xmtr enable ++ | | | | | | | | | | | | ++ | | | | | | | | | | | +--------------- 4 idle line intr enable ++ | | | | | | | | | | +----------------- 5 rcvr intr enable ++ | | | | | | | | | +------------------- 6 xmit complete intr enable ++ | | | | | | | | +--------------------- 7 xmtr intr enable ++ | | | | | | | | ++ | | | | | | | +------------------------- 8 wakeup on address mark ++ | | | | | | +--------------------------- 9 mode 1=9 bits, 0=8 bits ++ | | | | | +----------------------------- 10 parity enable 1=on, 0=off ++ | | | | +------------------------------- 11 parity type 1=odd, 0=even ++ | | | | ++ | | | +----------------------------------- 12 idle line select ++ | | +------------------------------------- 13 wired-or mode ++ | +--------------------------------------- 14 loop mode ++ +----------------------------------------- 15 unused ++ ++ 0 0 0 0 - 0 0 0 0 - 0 0 0 0 - 0 0 0 0 reset value ++*/ ++ ++#define SCI_SEND_BREAK 0x0001 /* 0000-0000-0000-0001 */ ++#define SCI_RCVR_WAKEUP 0x0002 /* 0000-0000-0000-0010 */ ++#define SCI_ENABLE_RCVR 0x0004 /* 0000-0000-0000-0100 */ ++#define SCI_ENABLE_XMTR 0x0008 /* 0000-0000-0000-1000 */ ++ ++#define SCI_DISABLE_RCVR 0xFFFB /* 1111-1111-1111-1011 */ ++#define SCI_DISABLE_XMTR 0xFFF7 /* 1111-1111-1111-0111 */ ++ ++#define SCI_ENABLE_INT_IDLE 0x0010 /* 0000-0000-0001-0000 */ ++#define SCI_ENABLE_INT_RX 0x0020 /* 0000-0000-0010-0000 */ ++#define SCI_ENABLE_INT_TX_DONE 0x0040 /* 0000-0000-0100-0000 */ ++#define SCI_ENABLE_INT_TX 0x0080 /* 0000-0000-1000-0000 */ ++ ++#define SCI_DISABLE_INT_ALL 0xFF00 /* 1111-1111-0000-0000 ??? */ ++ ++#define SCI_DISABLE_INT_RX 0xFFDF /* 1111-1111-1101-1111 */ ++#define SCI_CLEAR_RX_INT 0xFFBF /* 1111-1111-1011-1111 */ ++#define SCI_DISABLE_INT_TX 0xFF7F /* 1111-1111-0111-1111 */ ++#define SCI_CLEAR_TDRE 0xFEFF /* 1111-1110-1111-1111 */ ++ ++#define SCI_RCVR_WAKE_ON_MARK 0x0100 /* 0000-0001-0000-0000 */ ++#define SCI_9_DATA_BITS 0x0200 /* 0000-0010-0000-0000 */ ++#define SCI_PARITY_ENABLE 0x0400 /* 0000-0100-0000-0000 */ ++#define SCI_PARITY_ODD 0x0800 /* 0000-1000-0000-0000 */ ++ ++#define SCI_RCVR_WAKE_ON_IDLE 0xFEFF /* 1111-1110-1111-1111 */ ++#define SCI_8_DATA_BITS 0xFDFF /* 1111-1101-1111-1111 */ ++#define SCI_PARITY_DISABLE 0xFBFF /* 1111-1011-1111-1111 */ ++#define SCI_PARITY_EVEN 0xF7FF /* 1111-0111-1111-1111 */ ++ ++#define SCI_PARITY_NONE 0xF3FF /* 1111-0011-1111-1111 */ ++ ++#define SCI_IDLE_LINE_LONG 0x1000 /* 0001-0000-0000-0000 */ ++#define SCI_TXD_OPEN_DRAIN 0x2000 /* 0010-0000-0000-0000 */ ++#define SCI_LOOPBACK_MODE 0x4000 /* 0100-0000-0000-0000 */ ++#define SCI_SCCR1_UNUSED 0x8000 /* 1000-0000-0000-0000 */ + + -+// SCI Status Register (SCSR) $FFFC0C -+ -+// 8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1 -+// ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ -+// | | | | | | | | | | | | | | | | -+// | | | | | | | | | | | | | | | +----- 0 PF - parity error -+// | | | | | | | | | | | | | | +------- 1 FE - framing error -+// | | | | | | | | | | | | | +--------- 2 NF - noise flag -+// | | | | | | | | | | | | +----------- 3 OR - overrun flag -+// | | | | | | | | | | | | -+// | | | | | | | | | | | +--------------- 4 IDLE - idle line detected -+// | | | | | | | | | | +----------------- 5 RAF - rcvr active flag -+// | | | | | | | | | +------------------- 6 RDRF - rcv data reg full -+// | | | | | | | | +--------------------- 7 TC - xmt complete flag -+// | | | | | | | | -+// | | | | | | | +------------------------- 8 TDRE - xmt data reg empty -+// | | | | | | +--------------------------- 9 always zero -+// | | | | | +----------------------------- 10 always zero -+// | | | | +------------------------------- 11 always zero -+// | | | | -+// | | | +----------------------------------- 12 always zero -+// | | +------------------------------------- 13 always zero -+// | +--------------------------------------- 14 always zero -+// +----------------------------------------- 15 always zero -+ -+// 0 0 0 0 - 0 0 0 1 - 1 0 0 0 - 0 0 0 0 reset value -+ -+#define SCI_ERROR_PARITY 0x0001 // 0000-0000-0000-0001 -+#define SCI_ERROR_FRAMING 0x0002 // 0000-0000-0000-0010 -+#define SCI_ERROR_NOISE 0x0004 // 0000-0000-0000-0100 -+#define SCI_ERROR_OVERRUN 0x0008 // 0000-0000-0000-1000 -+ -+#define SCI_IDLE_LINE 0x0010 // 0000-0000-0001-0000 -+#define SCI_RCVR_ACTIVE 0x0020 // 0000-0000-0010-0000 -+#define SCI_RCVR_READY 0x0040 // 0000-0000-0100-0000 -+#define SCI_XMTR_IDLE 0x0080 // 0000-0000-1000-0000 -+ -+#define SCI_CLEAR_RX_INT 0xFFBF // 1111-1111-1011-1111 -+ -+#define SCI_XMTR_READY 0x0100 // 0000-0001-0000-0000 -+ -+#define SCI_CLEAR_TDRE 0xFEFF // 1111-1110-1111-1111 -+ -+#define SCI_XMTR_AVAILABLE 0x0180 // 0000-0001-1000-0000 ++/* SCI Status Register (SCSR) $FFFC0C ++ ++ 8 4 2 1 - 8 4 2 1 - 8 4 2 1 - 8 4 2 1 ++ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ++ | | | | | | | | | | | | | | | | ++ | | | | | | | | | | | | | | | +----- 0 PF - parity error ++ | | | | | | | | | | | | | | +------- 1 FE - framing error ++ | | | | | | | | | | | | | +--------- 2 NF - noise flag ++ | | | | | | | | | | | | +----------- 3 OR - overrun flag ++ | | | | | | | | | | | | ++ | | | | | | | | | | | +--------------- 4 IDLE - idle line detected ++ | | | | | | | | | | +----------------- 5 RAF - rcvr active flag ++ | | | | | | | | | +------------------- 6 RDRF - rcv data reg full ++ | | | | | | | | +--------------------- 7 TC - xmt complete flag ++ | | | | | | | | ++ | | | | | | | +------------------------- 8 TDRE - xmt data reg empty ++ | | | | | | +--------------------------- 9 always zero ++ | | | | | +----------------------------- 10 always zero ++ | | | | +------------------------------- 11 always zero ++ | | | | ++ | | | +----------------------------------- 12 always zero ++ | | +------------------------------------- 13 always zero ++ | +--------------------------------------- 14 always zero ++ +----------------------------------------- 15 always zero ++ ++ 0 0 0 0 - 0 0 0 1 - 1 0 0 0 - 0 0 0 0 reset value ++*/ ++ ++#define SCI_ERROR_PARITY 0x0001 /* 0000-0000-0000-0001 */ ++#define SCI_ERROR_FRAMING 0x0002 /* 0000-0000-0000-0010 */ ++#define SCI_ERROR_NOISE 0x0004 /* 0000-0000-0000-0100 */ ++#define SCI_ERROR_OVERRUN 0x0008 /* 0000-0000-0000-1000 */ ++ ++#define SCI_IDLE_LINE 0x0010 /* 0000-0000-0001-0000 */ ++#define SCI_RCVR_ACTIVE 0x0020 /* 0000-0000-0010-0000 */ ++#define SCI_RCVR_READY 0x0040 /* 0000-0000-0100-0000 */ ++#define SCI_XMTR_IDLE 0x0080 /* 0000-0000-1000-0000 */ ++ ++#define SCI_CLEAR_RX_INT 0xFFBF /* 1111-1111-1011-1111 */ ++ ++#define SCI_XMTR_READY 0x0100 /* 0000-0001-0000-0000 */ ++ ++#define SCI_CLEAR_TDRE 0xFEFF /* 1111-1110-1111-1111 */ ++ ++#define SCI_XMTR_AVAILABLE 0x0180 /* 0000-0001-1000-0000 */ + + + @@ -282,35 +315,35 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.h +extern "C" { +#endif + -+// look at console_open to see how this is called ++/* look at console_open to see how this is called */ + +const rtems_termios_callbacks * SciGetTermiosHandlers( int32_t polled ); + +/* SCI interrupt */ + -+//rtems_isr SciIsr( rtems_vector_number vector ); ++/*rtems_isr SciIsr( rtems_vector_number vector ); */ + -+//int32_t SciOpenPolled ( int32_t major, int32_t minor, void *arg ); -+//int32_t SciOpenInterrupt ( int32_t major, int32_t minor, void *arg ); ++/*int32_t SciOpenPolled ( int32_t major, int32_t minor, void *arg ); */ ++/*int32_t SciOpenInterrupt ( int32_t major, int32_t minor, void *arg ); */ + -+//int32_t SciClose ( int32_t major, int32_t minor, void *arg ); ++/*int32_t SciClose ( int32_t major, int32_t minor, void *arg ); */ + -+//int32_t SciWritePolled ( int32_t minor, const char *buf, int32_t len ); -+//int32_t SciWriteInterrupt( int32_t minor, const char *buf, int32_t len ); ++/*int32_t SciWritePolled ( int32_t minor, const char *buf, int32_t len ); */ ++/*int32_t SciWriteInterrupt( int32_t minor, const char *buf, int32_t len ); */ + -+//int32_t SciReadPolled ( int32_t minor ); ++/*int32_t SciReadPolled ( int32_t minor ); */ + -+//int32_t SciSetAttributes ( int32_t minor, const struct termios *t ); ++/*int32_t SciSetAttributes ( int32_t minor, const struct termios *t ); */ + +#ifdef __cplusplus +} +#endif + -+#endif // _sci_h_ ++#endif /* _sci_h_ */ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,200 @@ +/* linkcmds + * @@ -514,8 +547,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM +} Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/except_vect_332_ROM.S =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/except_vect_332_ROM.S +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/except_vect_332_ROM.S 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,293 @@ +/* + * $Id: except_vect_332_ROM.S,v 1.3 2004/04/21 16:01:35 ralf Exp $ @@ -812,9 +845,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/except_vect_332_ROM.S + not vectored to reboot or did not return. */ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/console.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/console/console.c -@@ -0,0 +1,176 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/console/console.c 2007-08-14 17:20:30.000000000 +0200 +@@ -0,0 +1,174 @@ +/* + * This file contains the generic console driver shell used + * by all console drivers using libchip. @@ -828,15 +861,13 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/console.c + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * -+ * $Id: console.c,v 1.7 2004/04/21 16:01:35 ralf Exp $ ++ * $Id: console.c,v 1.8 2006/09/11 21:43:53 joel Exp $ + */ + +#include +#include +#include +#include "sci.h" -+//#include "../../../../../../rtems/c/src/lib/libbsp/m68k/opti/console/duart.h" -+//#include "../../../../../../rtems/c/src/lib/libc/libio_.h" + +/*PAGE + * @@ -991,29 +1022,10 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/console.c + + return RTEMS_SUCCESSFUL; +} -Index: rtems/c/src/lib/libbsp/m68k/mo376/.cvsignore -=================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/.cvsignore -@@ -0,0 +1,14 @@ -+aclocal.m4 -+autom4te*.cache -+config.cache -+config.guess -+config.log -+config.status -+config.sub -+configure -+depcomp -+install-sh -+Makefile -+Makefile.in -+missing -+mkinstalldirs Index: rtems/c/src/lib/libbsp/m68k/mo376/start/start.S =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/start/start.S +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/start/start.S 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,150 @@ +/* + * $Id @@ -1167,8 +1179,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/start/start.S +#endif Index: rtems/c/src/lib/libbsp/m68k/mo376/misc/dotests =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/misc/dotests +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/misc/dotests 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,15 @@ +#! /bin/bash +# @@ -1187,9 +1199,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/misc/dotests +kill -9 $cpJob Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h -@@ -0,0 +1,140 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h 2007-08-14 17:20:30.000000000 +0200 +@@ -0,0 +1,139 @@ +/* bsp.h + * + * This include file contains all mrm board IO definitions. @@ -1201,7 +1213,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * -+ * $Id: bsp.h,v 1.13 2005/05/26 05:31:17 ralf Exp $ ++ * $Id: bsp.h,v 1.14 2006/03/17 10:11:36 ralf Exp $ + */ + +#ifndef _BSP_H @@ -1329,11 +1341,10 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h +#endif + +#endif -+/* end of include file */ Index: rtems/c/src/lib/libbsp/m68k/mo376/misc/interr.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/misc/interr.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/misc/interr.c 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,99 @@ +/* + * Internal Error Handler @@ -1436,9 +1447,27 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/misc/interr.c +} Index: rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog -@@ -0,0 +1,437 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog 2007-08-14 17:20:30.000000000 +0200 +@@ -0,0 +1,455 @@ ++2006-12-02 Ralf Corsépius ++ ++ * configure.ac: New BUG-REPORT address. ++ ++2006-10-20 Ralf Corsépius ++ ++ * Makefile.am: Remove superfluous -DASM. ++ ++2006-10-19 Ralf Corsépius ++ ++ * configure.ac: Require automake-1.10. Require autoconf-2.60. ++ ++2006-09-11 Joel Sherrill ++ ++ * console/console.c, console/sci.c, console/sci.h, spurious/spinit.c, ++ startup/bspclean.c, startup/start_c.c: Convert C++ style comments to ++ C style. ++ +2006-02-08 Joel Sherrill + + * startup/linkcmds, startup/linkcmds_ROM: Add sections required by @@ -1878,8 +1907,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog + Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/bspclean.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/bspclean.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/bspclean.c 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,27 @@ +/* bsp_cleanup() + * @@ -1897,7 +1926,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/bspclean.c + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * -+ * $Id: bspclean.c,v 1.4 2004/04/21 10:42:52 ralf Exp $ ++ * $Id: bspclean.c,v 1.5 2006/09/11 21:43:56 joel Exp $ + */ + +#include @@ -1906,12 +1935,12 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/bspclean.c +{ + /* interrupt driven stdio must be flushed */ + _CPU_ISR_Set_level( 7 ); -+ //_UART_flush(); ++ /*_UART_flush(); */ +} Index: rtems/c/src/lib/libbsp/m68k/mo376/timer/timer.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/timer/timer.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/timer/timer.c 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,81 @@ +/* Timer_init() + * @@ -1996,8 +2025,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/timer/timer.c +} Index: rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,128 @@ +/* Clock_init() + * @@ -2129,8 +2158,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c +} Index: rtems/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,16 @@ +# +# $Id: gdbinit68,v 1.1 2001/05/25 16:28:46 joel Exp $ @@ -2150,20 +2179,20 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 +q Index: rtems/c/src/lib/libbsp/m68k/mo376/configure.ac =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/configure.ac +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/configure.ac 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,20 @@ +## Process this file with autoconf to produce a configure script. +## -+## $Id: configure.ac,v 1.14 2004/09/24 06:32:09 ralf Exp $ ++## $Id: configure.ac,v 1.14.2.2 2006/12/02 06:04:46 ralf Exp $ + -+AC_PREREQ(2.59) -+AC_INIT([rtems-c-src-lib-libbsp-m68k-mrm332],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) ++AC_PREREQ(2.60) ++AC_INIT([rtems-c-src-lib-libbsp-m68k-mrm332],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla]) +AC_CONFIG_SRCDIR([bsp_specs]) +RTEMS_TOP(../../../../../..) + +RTEMS_CANONICAL_TARGET_CPU -+AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.9]) ++AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.10]) +RTEMS_BSP_CONFIGURE + +RTEMS_PROG_CC_FOR_TARGET @@ -2175,8 +2204,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/configure.ac +AC_OUTPUT Index: rtems/c/src/lib/libbsp/m68k/mo376/README =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/README +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/README 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,24 @@ +# +# $Id: README,v 1.1 2001/05/25 16:28:46 joel Exp $ @@ -2204,11 +2233,11 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/README + Index: rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,68 @@ +## -+## $Id: Makefile.am,v 1.24 2006/01/12 10:12:30 ralf Exp $ ++## $Id: Makefile.am,v 1.24.2.1 2006/10/20 11:54:57 ralf Exp $ +## + +ACLOCAL_AMFLAGS = -I ../../../../aclocal @@ -2232,7 +2261,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am + +EXTRA_DIST += start/start.S +start.$(OBJEXT): start/start.S -+ $(CPPASCOMPILE) -DASM -o $@ -c $< ++ $(CPPASCOMPILE) -o $@ -c $< + +project_lib_DATA = start.$(OBJEXT) + @@ -2277,9 +2306,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am +include $(top_srcdir)/../../../../automake/local.am Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c -@@ -0,0 +1,1620 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c 2007-08-14 17:20:30.000000000 +0200 +@@ -0,0 +1,1596 @@ +/***************************************************************************** +* File: sci.c +* @@ -2315,34 +2344,10 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* +* Note: See bsp.h,confdefs.h,system.h for installing drivers into RTEMS. +* -+* $Id: sci.c,v 1.10 2005/01/05 18:12:35 ralf Exp $ ++* $Id: sci.c,v 1.11 2006/09/11 21:43:53 joel Exp $ +* +*****************************************************************************/ + -+ -+/***************************************************************************** -+ Compiler Options for the incurably curious -+*****************************************************************************/ -+ -+/* -+/opt/rtems/bin/m68k-rtems-gcc -+ --pipe # use pipes, not tmp files -+ -B../../../../../../../../opti/lib/ # where the library is -+ -specs bsp_specs # ??? -+ -qrtems # ??? -+ -g # add debugging info -+ -Wall # issue all warnings -+ -fasm # allow inline asm??? -+ -DCONSOLE_SCI # for opti-r box/rev b proto -+ -mcpu32 # machine = motorola cpu 32 -+ -c # compile, don't link -+ -O4 # max optimization -+ -fomit-frame-pointer # stack frames are optional -+ -o o-optimize/sci.o # the object file -+ ../../../../../../../../../rtems/c/src/lib/libbsp/m68k/opti/console/sci.c -+*/ -+ -+ +/***************************************************************************** + Overview of serial port console terminal input/output +*****************************************************************************/ @@ -2394,29 +2399,29 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +#include +#include +#include "sci.h" -+//#include "../misc/include/cpu332.h" ++/*#include "../misc/include/cpu332.h" */ + + +/***************************************************************************** + Section B - Manifest Constants +*****************************************************************************/ + -+#define SCI_MINOR 0 // minor device number ++#define SCI_MINOR 0 /* minor device number */ + -+// IMPORTANT - if the device driver api is opened, it means the sci is being -+// used for direct hardware access, so other users (like termios) get ignored -+ -+#define DRIVER_CLOSED 0 // the device driver api is closed -+#define DRIVER_OPENED 1 // the device driver api is opened ++/* IMPORTANT - if the device driver api is opened, it means the sci is being ++ * used for direct hardware access, so other users (like termios) get ignored ++ */ ++#define DRIVER_CLOSED 0 /* the device driver api is closed */ ++#define DRIVER_OPENED 1 /* the device driver api is opened */ + -+// system clock definitions, i dont have documentation on this... ++/* system clock definitions, i dont have documentation on this... */ + -+#if 0 // Not needed, this is provided in mrm332.h -+#define XTAL 32768.0 // crystal frequency in Hz -+#define NUMB_W 0 // system clock parameters ++#if 0 /* Not needed, this is provided in mrm332.h */ ++#define XTAL 32768.0 /* crystal frequency in Hz */ ++#define NUMB_W 0 /* system clock parameters */ +#define NUMB_X 1 -+//efine NUMB_Y 0x38 // for 14.942 Mhz -+#define NUMB_Y 0x3F // for 16.777 Mhz ++#define NUMB_Y 0x38 /* for 14.942 Mhz */ ++#define NUMB_Y 0x3F /* for 16.777 Mhz */ + +#define SYS_CLOCK (XTAL * 4.0 * (NUMB_Y+1) * (1 << (2 * NUMB_W + NUMB_X))) + @@ -2441,61 +2446,70 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +void SCI_output_char(char c); + -+rtems_isr SciIsr( rtems_vector_number vector ); // interrupt handler ++/*rtems_isr SciIsr( rtems_vector_number vector ); interrupt handler */ + +const rtems_termios_callbacks * SciGetTermiosHandlers( int32_t polled ); + -+rtems_device_driver SciInitialize (); // device driver api -+rtems_device_driver SciOpen (); // device driver api -+rtems_device_driver SciClose (); // device driver api -+rtems_device_driver SciRead (); // device driver api -+rtems_device_driver SciWrite (); // device driver api -+rtems_device_driver SciControl (); // device driver api -+ -+int32_t SciInterruptOpen(); // termios api -+int32_t SciInterruptClose(); // termios api -+int32_t SciInterruptWrite(); // termios api ++rtems_device_driver SciInitialize( /* device driver api */ ++ rtems_device_major_number, rtems_device_minor_number, void *); ++rtems_device_driver SciOpen( /* device driver api */ ++ rtems_device_major_number, rtems_device_minor_number, void *); ++rtems_device_driver SciClose( /* device driver api */ ++ rtems_device_major_number, rtems_device_minor_number, void *); ++rtems_device_driver SciRead( /* device driver api */ ++ rtems_device_major_number, rtems_device_minor_number, void *); ++rtems_device_driver SciWrite( /* device driver api */ ++ rtems_device_major_number, rtems_device_minor_number, void *); ++rtems_device_driver SciControl( /* device driver api */ ++ rtems_device_major_number, rtems_device_minor_number, void *); ++rtems_device_driver SciRead ( ++ rtems_device_major_number, rtems_device_minor_number, void *); + -+int32_t SciSetAttributes(); // termios api ++int SciInterruptOpen(int, int, void *); /* termios api */ ++int SciInterruptClose(int, int, void *); /* termios api */ ++int SciInterruptWrite(int, const char *, int); /* termios api */ + -+int32_t SciPolledOpen(); // termios api -+int32_t SciPolledClose(); // termios api -+int32_t SciPolledRead(); // termios api -+int32_t SciPolledWrite(); // termios api ++int SciSetAttributes(int, const struct termios*); /* termios api */ ++int SciPolledOpen(int, int, void *); /* termios api */ ++int SciPolledClose(int, int, void *); /* termios api */ ++int SciPolledRead(int); /* termios api */ ++int SciPolledWrite(int, const char *, int); /* termios api */ + -+static void SciSetBaud(uint32_t rate); // hardware routine -+static void SciSetDataBits(uint16_t bits); // hardware routine -+static void SciSetParity(uint16_t parity); // hardware routine ++static void SciSetBaud(uint32_t rate); /* hardware routine */ ++static void SciSetDataBits(uint16_t bits); /* hardware routine */ ++static void SciSetParity(uint16_t parity); /* hardware routine */ + -+static void inline SciDisableAllInterrupts( void ); // hardware routine -+static void inline SciDisableTransmitInterrupts( void );// hardware routine -+static void inline SciDisableReceiveInterrupts( void ); // hardware routine ++static void inline SciDisableAllInterrupts( void ); /* hardware routine */ ++static void inline SciDisableTransmitInterrupts( void );/* hardware routine */ ++static void inline SciDisableReceiveInterrupts( void ); /* hardware routine */ + -+static void inline SciEnableTransmitInterrupts( void ); // hardware routine -+static void inline SciEnableReceiveInterrupts( void ); // hardware routine ++static void inline SciEnableTransmitInterrupts( void ); /* hardware routine */ ++static void inline SciEnableReceiveInterrupts( void ); /* hardware routine */ + -+static void inline SciDisableReceiver( void ); // hardware routine -+static void inline SciDisableTransmitter( void ); // hardware routine ++static void inline SciDisableReceiver( void ); /* hardware routine */ ++static void inline SciDisableTransmitter( void ); /* hardware routine */ + -+static void inline SciEnableReceiver( void ); // hardware routine -+static void inline SciEnableTransmitter( void ); // hardware routine ++static void inline SciEnableReceiver( void ); /* hardware routine */ ++static void inline SciEnableTransmitter( void ); /* hardware routine */ + -+void SciWriteCharWait ( uint8_t); // hardware routine -+void SciWriteCharNoWait( uint8_t); // hardware routine ++void SciWriteCharWait ( uint8_t ); /* hardware routine */ ++void SciWriteCharNoWait( uint8_t ); /* hardware routine */ + -+uint8_t inline SciCharAvailable( void ); // hardware routine ++uint8_t inline SciCharAvailable( void ); /* hardware routine */ + -+uint8_t inline SciReadCharWait( void ); // hardware routine -+uint8_t inline SciReadCharNoWait( void ); // hardware routine ++uint8_t inline SciReadCharWait( void ); /* hardware routine */ ++uint8_t inline SciReadCharNoWait( void ); /* hardware routine */ + -+void SciSendBreak( void ); // test routine ++void SciSendBreak( void ); /* test routine */ + -+static int8_t SciRcvBufGetChar(); // circular rcv buf -+static void SciRcvBufPutChar( uint8_t); // circular rcv buf -+//atic void SciRcvBufFlush( void ); // circular rcv buf ++static int8_t SciRcvBufGetChar(); /* circular rcv buf */ ++static void SciRcvBufPutChar( uint8_t); /* circular rcv buf */ ++#if 0 ++static void SciRcvBufFlush( void ); /* unused routine */ ++#endif + -+void SciUnitTest(); // test routine -+void SciPrintStats(); // test routine ++void SciUnitTest(); /* test routine */ ++void SciPrintStats(); /* test routine */ + + +/***************************************************************************** @@ -2504,35 +2518,35 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +static struct rtems_termios_tty *SciTermioTty; + -+static uint8_t SciInited = 0; // has the driver been inited ++static uint8_t SciInited = 0; /* has the driver been inited */ + -+static uint8_t SciOpened; // has the driver been opened ++static uint8_t SciOpened; /* has the driver been opened */ + -+static uint8_t SciMajor; // major device number ++static uint8_t SciMajor; /* major device number */ + -+static uint16_t SciBaud; // current value in baud register ++static uint16_t SciBaud; /* current value in baud register */ + -+static uint32_t SciBytesIn = 0; // bytes received -+static uint32_t SciBytesOut = 0; // bytes transmitted ++static uint32_t SciBytesIn = 0; /* bytes received */ ++static uint32_t SciBytesOut = 0; /* bytes transmitted */ + -+static uint32_t SciErrorsParity = 0; // error counter -+static uint32_t SciErrorsNoise = 0; // error counter -+static uint32_t SciErrorsFraming = 0; // error counter -+static uint32_t SciErrorsOverrun = 0; // error counter ++static uint32_t SciErrorsParity = 0; /* error counter */ ++static uint32_t SciErrorsNoise = 0; /* error counter */ ++static uint32_t SciErrorsFraming = 0; /* error counter */ ++static uint32_t SciErrorsOverrun = 0; /* error counter */ + +#if defined(CONSOLE_SCI) + -+// this is what rtems printk uses to do polling based output ++/* this is what rtems printk uses to do polling based output */ + +BSP_output_char_function_type BSP_output_char = SCI_output_char; +BSP_polling_getchar_function_type BSP_poll_char = NULL; + +#endif + -+// cvs id string so you can use the unix ident command on the object ++/* cvs id string so you can use the unix ident command on the object */ + +#ifdef ID_STRINGS -+static const char SciIdent[]="$Id: sci.c,v 1.10 2005/01/05 18:12:35 ralf Exp $"; ++static const char SciIdent[]="$Id: sci.c,v 1.11 2006/09/11 21:43:53 joel Exp $"; +#endif + + @@ -2540,21 +2554,21 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + Section G - A circular buffer for rcv chars when the driver interface is used. +*****************************************************************************/ + -+// it is trivial to wrap your buffer pointers when size is a power of two -+ -+#define SCI_RCV_BUF_SIZE 256 // must be a power of 2 !!! ++/* it is trivial to wrap your buffer pointers when size is a power of two */ + -+// if someone opens the sci device using the device driver interface, -+// then the receive data interrupt handler will put characters in this buffer -+// instead of sending them up to the termios module for the console ++#define SCI_RCV_BUF_SIZE 256 /* must be a power of 2 !!! */ + ++/* if someone opens the sci device using the device driver interface, ++ * then the receive data interrupt handler will put characters in this buffer ++ * instead of sending them up to the termios module for the console ++ */ +static uint8_t SciRcvBuffer[SCI_RCV_BUF_SIZE]; + -+static uint8_t SciRcvBufPutIndex = 0; // array index to put in next char ++static uint8_t SciRcvBufPutIndex = 0; /* array index to put in next char */ + -+static uint8_t SciRcvBufGetIndex = 0; // array index to take out next char ++static uint8_t SciRcvBufGetIndex = 0; /* array index to take out next char */ + -+static uint16_t SciRcvBufCount = 0; // how many bytes are in the buffer ++static uint16_t SciRcvBufCount = 0; /* how many bytes are in the buffer */ + + + @@ -2564,14 +2578,14 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +static const rtems_termios_callbacks SciInterruptCallbacks = +{ -+ SciInterruptOpen, // first open -+ SciInterruptClose, // last close -+ NULL, // polled read (not required) -+ SciInterruptWrite, // write -+ SciSetAttributes, // set attributes -+ NULL, // stop remote xmit -+ NULL, // start remote xmit -+ TRUE // output uses interrupts ++ SciInterruptOpen, /* first open */ ++ SciInterruptClose, /* last close */ ++ NULL, /* polled read (not required) */ ++ SciInterruptWrite, /* write */ ++ SciSetAttributes, /* set attributes */ ++ NULL, /* stop remote xmit */ ++ NULL, /* start remote xmit */ ++ TRUE /* output uses interrupts */ +}; + +/***************************************************************************** @@ -2580,36 +2594,34 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +static const rtems_termios_callbacks SciPolledCallbacks = +{ -+ SciPolledOpen, // first open -+ SciPolledClose, // last close -+ SciPolledRead, // polled read -+ SciPolledWrite, // write -+ SciSetAttributes, // set attributes -+ NULL, // stop remote xmit -+ NULL, // start remote xmit -+ FALSE // output uses interrupts ++ SciPolledOpen, /* first open */ ++ SciPolledClose, /* last close */ ++ SciPolledRead, /* polled read */ ++ SciPolledWrite, /* write */ ++ SciSetAttributes, /* set attributes */ ++ NULL, /* stop remote xmit */ ++ NULL, /* start remote xmit */ ++ FALSE /* output uses interrupts */ +}; + + -+///////////////////////////////////////////////////////////////////////////// -+// -+// SECTION 0 -+// MISCELLANEOUS ROUTINES -+// -+///////////////////////////////////////////////////////////////////////////// ++/* ++ * SECTION 0 ++ * MISCELLANEOUS ROUTINES ++ */ + +/**************************************************************************** -+* Func: SCI_output_char -+* Desc: used by rtems printk function to send a char to the uart -+* Inputs: the character to transmit -+* Outputs: none -+* Errors: none -+* Scope: public -+****************************************************************************/ ++ * Func: SCI_output_char ++ * Desc: used by rtems printk function to send a char to the uart ++ * Inputs: the character to transmit ++ * Outputs: none ++ * Errors: none ++ * Scope: public ++ ****************************************************************************/ + +void SCI_output_char(char c) +{ -+// ( minor device number, pointer to the character, length ) ++/* ( minor device number, pointer to the character, length ) */ + + SciPolledWrite( SCI_MINOR, &c, 1); + @@ -2631,11 +2643,11 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +{ + if ( polled ) + { -+ return &SciPolledCallbacks; // polling based ++ return &SciPolledCallbacks; /* polling based */ + } + else + { -+ return &SciInterruptCallbacks; // interrupt driven ++ return &SciInterruptCallbacks; /* interrupt driven */ + } +} + @@ -2658,53 +2670,52 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + if ( (*SCSR) & SCI_ERROR_NOISE ) SciErrorsNoise ++; + if ( (*SCSR) & SCI_ERROR_OVERRUN ) SciErrorsOverrun ++; + -+ // see if it was a transmit interrupt ++ /* see if it was a transmit interrupt */ + -+ if ( (*SCSR) & SCI_XMTR_AVAILABLE ) // data reg empty, xmt complete ++ if ( (*SCSR) & SCI_XMTR_AVAILABLE ) /* data reg empty, xmt complete */ + { + SciDisableTransmitInterrupts(); + -+ // tell termios module that the charcter was sent -+ // he will call us later to transmit more if there are any ++ /* tell termios module that the charcter was sent */ ++ /* he will call us later to transmit more if there are any */ + + if (rtems_termios_dequeue_characters( SciTermioTty, 1 )) + { -+ // there are more bytes to transmit so enable TX interrupt ++ /* there are more bytes to transmit so enable TX interrupt */ + + SciEnableTransmitInterrupts(); + } + } + -+ // see if it was a receive interrupt -+ // on the sci uart we just get one character per interrupt ++ /* see if it was a receive interrupt */ ++ /* on the sci uart we just get one character per interrupt */ + -+ while ( SciCharAvailable() ) // char in data register? ++ while ( SciCharAvailable() ) /* char in data register? */ + { -+ ch = SciReadCharNoWait(); // get the char from the uart ++ ch = SciReadCharNoWait(); /* get the char from the uart */ + -+ // IMPORTANT!!! -+ // either send it to the termios module or keep it locally ++ /* IMPORTANT!!! */ ++ /* either send it to the termios module or keep it locally */ + -+ if ( SciOpened == DRIVER_OPENED ) // the driver is open ++ if ( SciOpened == DRIVER_OPENED ) /* the driver is open */ + { -+ SciRcvBufPutChar(ch); // keep it locally ++ SciRcvBufPutChar(ch); /* keep it locally */ + } -+ else // put in termios buffer ++ else /* put in termios buffer */ + { -+ rtems_termios_enqueue_raw_characters( SciTermioTty, &ch, 1 ); ++ char c = (char) ch; ++ rtems_termios_enqueue_raw_characters( SciTermioTty, &c, 1 ); + } + -+ *SCSR &= SCI_CLEAR_RX_INT; // clear the interrupt ++ *SCSR &= SCI_CLEAR_RX_INT; /* clear the interrupt */ + } +} + + -+///////////////////////////////////////////////////////////////////////////// -+// -+// SECTION 1 -+// ROUTINES TO MANIPULATE THE CIRCULAR BUFFER -+// -+///////////////////////////////////////////////////////////////////////////// ++/* ++ * SECTION 1 ++ * ROUTINES TO MANIPULATE THE CIRCULAR BUFFER ++ */ + +/**************************************************************************** +* Func: SciRcvBufGetChar @@ -2723,22 +2734,22 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + + if ( SciRcvBufCount == 0 ) + { -+ rtems_fatal_error_occurred(0xDEAD); // check the count first! ++ rtems_fatal_error_occurred(0xDEAD); /* check the count first! */ + } + -+ rtems_interrupt_disable( level ); // disable interrupts ++ rtems_interrupt_disable( level ); /* disable interrupts */ + -+ ch = SciRcvBuffer[SciRcvBufGetIndex]; // get next byte ++ ch = SciRcvBuffer[SciRcvBufGetIndex]; /* get next byte */ + -+ SciRcvBufGetIndex++; // bump the index ++ SciRcvBufGetIndex++; /* bump the index */ + -+ SciRcvBufGetIndex &= SCI_RCV_BUF_SIZE - 1; // and wrap it ++ SciRcvBufGetIndex &= SCI_RCV_BUF_SIZE - 1; /* and wrap it */ + -+ SciRcvBufCount--; // decrement counter ++ SciRcvBufCount--; /* decrement counter */ + -+ rtems_interrupt_enable( level ); // restore interrupts ++ rtems_interrupt_enable( level ); /* restore interrupts */ + -+ return ch; // return the char ++ return ch; /* return the char */ +} + + @@ -2755,24 +2766,24 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +{ + rtems_interrupt_level level; + -+ if ( SciRcvBufCount == SCI_RCV_BUF_SIZE ) // is there room? ++ if ( SciRcvBufCount == SCI_RCV_BUF_SIZE ) /* is there room? */ + { -+ return; // no, throw it away ++ return; /* no, throw it away */ + } + -+ rtems_interrupt_disable( level ); // disable interrupts ++ rtems_interrupt_disable( level ); /* disable interrupts */ + -+ SciRcvBuffer[SciRcvBufPutIndex] = ch; // put it in the buf ++ SciRcvBuffer[SciRcvBufPutIndex] = ch; /* put it in the buf */ + -+ SciRcvBufPutIndex++; // bump the index ++ SciRcvBufPutIndex++; /* bump the index */ + -+ SciRcvBufPutIndex &= SCI_RCV_BUF_SIZE - 1; // and wrap it ++ SciRcvBufPutIndex &= SCI_RCV_BUF_SIZE - 1; /* and wrap it */ + -+ SciRcvBufCount++; // increment counter ++ SciRcvBufCount++; /* increment counter */ + -+ rtems_interrupt_enable( level ); // restore interrupts ++ rtems_interrupt_enable( level ); /* restore interrupts */ + -+ return; // return ++ return; /* return */ +} + + @@ -2785,34 +2796,33 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: private +****************************************************************************/ + -+#if 0 // prevents compiler warning ++#if 0 /* prevents compiler warning */ +static void SciRcvBufFlush( void ) +{ + rtems_interrupt_level level; + -+ rtems_interrupt_disable( level ); // disable interrupts ++ rtems_interrupt_disable( level ); /* disable interrupts */ + + memset( SciRcvBuffer, 0, sizeof(SciRcvBuffer) ); + -+ SciRcvBufPutIndex = 0; // clear ++ SciRcvBufPutIndex = 0; /* clear */ + -+ SciRcvBufGetIndex = 0; // clear ++ SciRcvBufGetIndex = 0; /* clear */ + -+ SciRcvBufCount = 0; // clear ++ SciRcvBufCount = 0; /* clear */ + -+ rtems_interrupt_enable( level ); // restore interrupts ++ rtems_interrupt_enable( level ); /* restore interrupts */ + -+ return; // return ++ return; /* return */ +} +#endif + + -+///////////////////////////////////////////////////////////////////////////// -+// -+// SECTION 2 -+// INTERRUPT BASED ENTRY POINTS FOR THE TERMIOS MODULE -+// -+///////////////////////////////////////////////////////////////////////////// ++/* ++ * ++ * SECTION 2 ++ * INTERRUPT BASED ENTRY POINTS FOR THE TERMIOS MODULE ++ */ + +/**************************************************************************** +* Func: SciInterruptOpen @@ -2828,43 +2838,43 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public API +****************************************************************************/ + -+int32_t SciInterruptOpen( -+ int32_t major, -+ int32_t minor, -+ void *arg ++int SciInterruptOpen( ++ int major, ++ int minor, ++ void *arg +) +{ + rtems_libio_open_close_args_t * args = arg; + rtems_isr_entry old_vector; + -+ if ( minor != SCI_MINOR ) // check minor device num ++ if ( minor != SCI_MINOR ) /* check minor device num */ + { + return -1; + } + -+ if ( !args ) // must have args ++ if ( !args ) /* must have args */ + { + return -1; + } + -+ SciTermioTty = args->iop->data1; // save address of struct ++ SciTermioTty = args->iop->data1; /* save address of struct */ + -+ SciDisableAllInterrupts(); // turn off sci interrupts ++ SciDisableAllInterrupts(); /* turn off sci interrupts */ + -+ // THIS IS ACTUALLY A BAD THING - SETTING LINE PARAMETERS HERE -+ // IT SHOULD BE DONE THROUGH TCSETATTR() WHEN THE CONSOLE IS OPENED!!! ++ /* THIS IS ACTUALLY A BAD THING - SETTING LINE PARAMETERS HERE */ ++ /* IT SHOULD BE DONE THROUGH TCSETATTR() WHEN THE CONSOLE IS OPENED!!! */ + -+// SciSetBaud(115200); // set the baud rate -+// SciSetBaud( 57600); // set the baud rate -+// SciSetBaud( 38400); // set the baud rate -+SciSetBaud( 19200); // set the baud rate -+// SciSetBaud( 9600); // set the baud rate ++/* SciSetBaud(115200); set the baud rate */ ++/* SciSetBaud( 57600); set the baud rate */ ++/* SciSetBaud( 38400); set the baud rate */ ++ SciSetBaud( 19200); /* set the baud rate */ ++/* SciSetBaud( 9600); set the baud rate */ + -+ SciSetParity(SCI_PARITY_NONE); // set parity to none ++ SciSetParity(SCI_PARITY_NONE); /* set parity to none */ + -+ SciSetDataBits(SCI_8_DATA_BITS); // set data bits to 8 ++ SciSetDataBits(SCI_8_DATA_BITS); /* set data bits to 8 */ + -+ // Install our interrupt handler into RTEMS, where does 66 come from? ++ /* Install our interrupt handler into RTEMS, where does 66 come from? */ + + rtems_interrupt_catch( SciIsr, 66, &old_vector ); + @@ -2872,11 +2882,11 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + *QIVR &= 0xf8; + *QILR |= 0x06 & 0x07; + -+ SciEnableTransmitter(); // enable the transmitter ++ SciEnableTransmitter(); /* enable the transmitter */ + -+ SciEnableReceiver(); // enable the receiver ++ SciEnableReceiver(); /* enable the receiver */ + -+ SciEnableReceiveInterrupts(); // enable rcv interrupts ++ SciEnableReceiveInterrupts(); /* enable rcv interrupts */ + + return RTEMS_SUCCESSFUL; +} @@ -2893,10 +2903,10 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public - termio entry point +****************************************************************************/ + -+int32_t SciInterruptClose( -+ int32_t major, -+ int32_t minor, -+ void *arg ++int SciInterruptClose( ++ int major, ++ int minor, ++ void *arg +) +{ + SciDisableAllInterrupts(); @@ -2916,37 +2926,37 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public API +****************************************************************************/ + -+int32_t SciInterruptWrite( -+ int32_t minor, ++int SciInterruptWrite( ++ int minor, + const char *buf, -+ int32_t len ++ int len +) +{ -+ // We are using interrupt driven output so termios only sends us -+ // one character at a time. The sci does not have a fifo. ++ /* We are using interrupt driven output so termios only sends us */ ++ /* one character at a time. The sci does not have a fifo. */ + -+ if ( !len ) // no data? ++ if ( !len ) /* no data? */ + { -+ return 0; // return error ++ return 0; /* return error */ + } + -+ if ( minor != SCI_MINOR ) // check the minor dev num ++ if ( minor != SCI_MINOR ) /* check the minor dev num */ + { -+ return 0; // return error ++ return 0; /* return error */ + } + -+ if ( SciOpened == DRIVER_OPENED ) // is the driver api open? ++ if ( SciOpened == DRIVER_OPENED ) /* is the driver api open? */ + { -+ return 1; // yep, throw this away ++ return 1; /* yep, throw this away */ + } + -+ SciWriteCharNoWait(*buf); // try to send a char ++ SciWriteCharNoWait(*buf); /* try to send a char */ + -+ *SCSR &= SCI_CLEAR_TDRE; // clear tx data reg empty flag ++ *SCSR &= SCI_CLEAR_TDRE; /* clear tx data reg empty flag */ + -+ SciEnableTransmitInterrupts(); // enable the tx interrupt ++ SciEnableTransmitInterrupts(); /* enable the tx interrupt */ + -+ return 1; // return success ++ return 1; /* return success */ +} + + @@ -2960,8 +2970,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public API +****************************************************************************/ + -+int32_t SciSetAttributes( -+ int32_t minor, ++int SciSetAttributes( ++ int minor, + const struct termios *t +) +{ @@ -2970,45 +2980,45 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + uint16_t sci_parity = 0; + uint16_t sci_databits = 0; + -+ if ( minor != SCI_MINOR ) // check the minor dev num ++ if ( minor != SCI_MINOR ) /* check the minor dev num */ + { -+ return -1; // return error ++ return -1; /* return error */ + } + -+ // if you look closely you will see this is the only thing we use -+ // set the baud rate ++ /* if you look closely you will see this is the only thing we use */ ++ /* set the baud rate */ + -+ baud_requested = t->c_cflag & CBAUD; // baud rate ++ baud_requested = t->c_cflag & CBAUD; /* baud rate */ + + if (!baud_requested) + { -+// baud_requested = B9600; // default to 9600 baud -+ baud_requested = B19200; // default to 19200 baud ++/* baud_requested = B9600; default to 9600 baud */ ++ baud_requested = B19200; /* default to 19200 baud */ + } + + sci_rate = termios_baud_to_number( baud_requested ); + -+ // parity error detection ++ /* parity error detection */ + -+ if (t->c_cflag & PARENB) // enable parity detection? ++ if (t->c_cflag & PARENB) /* enable parity detection? */ + { + if (t->c_cflag & PARODD) + { -+ sci_parity = SCI_PARITY_ODD; // select odd parity ++ sci_parity = SCI_PARITY_ODD; /* select odd parity */ + } + else + { -+ sci_parity = SCI_PARITY_EVEN; // select even parity ++ sci_parity = SCI_PARITY_EVEN; /* select even parity */ + } + } + else + { -+ sci_parity = SCI_PARITY_NONE; // no parity, most common ++ sci_parity = SCI_PARITY_NONE; /* no parity, most common */ + } + -+ // set the number of data bits, 8 is most common ++ /* set the number of data bits, 8 is most common */ + -+ if (t->c_cflag & CSIZE) // was it specified? ++ if (t->c_cflag & CSIZE) /* was it specified? */ + { + switch (t->c_cflag & CSIZE) + { @@ -3018,34 +3028,31 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + } + else + { -+ sci_databits = SCI_8_DATA_BITS; // default to 8 data bits ++ sci_databits = SCI_8_DATA_BITS; /* default to 8 data bits */ + } + -+ // the number of stop bits; always 1 for SCI ++ /* the number of stop bits; always 1 for SCI */ + + if (t->c_cflag & CSTOPB) + { -+ // do nothing ++ /* do nothing */ + } + -+ // setup the hardware with these serial port parameters -+ -+ SciSetBaud(sci_rate); // set the baud rate -+ -+ SciSetParity(sci_parity); // set the parity type ++ /* setup the hardware with these serial port parameters */ + -+ SciSetDataBits(sci_databits); // set the data bits ++ SciSetBaud(sci_rate); /* set the baud rate */ ++ SciSetParity(sci_parity); /* set the parity type */ ++ SciSetDataBits(sci_databits); /* set the data bits */ + + return RTEMS_SUCCESSFUL; +} + + -+///////////////////////////////////////////////////////////////////////////// -+// -+// SECTION 3 -+// POLLING BASED ENTRY POINTS FOR THE TERMIOS MODULE -+// -+///////////////////////////////////////////////////////////////////////////// ++/* ++ * ++ * SECTION 3 ++ * POLLING BASED ENTRY POINTS FOR THE TERMIOS MODULE ++ */ + +/**************************************************************************** +* Func: SciPolledOpen @@ -3059,44 +3066,44 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public - termios entry point +****************************************************************************/ + -+int32_t SciPolledOpen( -+ int32_t major, -+ int32_t minor, -+ void *arg ++int SciPolledOpen( ++ int major, ++ int minor, ++ void *arg +) +{ + rtems_libio_open_close_args_t * args = arg; + -+ if ( minor != SCI_MINOR ) // check minor device num ++ if ( minor != SCI_MINOR ) /* check minor device num */ + { + return -1; + } + -+ if ( !args ) // must have args ++ if ( !args ) /* must have args */ + { + return -1; + } + -+ SciTermioTty = args->iop->data1; // Store tty pointer ++ SciTermioTty = args->iop->data1; /* Store tty pointer */ + -+ SciDisableAllInterrupts(); // don't generate interrupts ++ SciDisableAllInterrupts(); /* don't generate interrupts */ + -+ // THIS IS ACTUALLY A BAD THING - SETTING LINE PARAMETERS HERE -+ // IT SHOULD BE DONE THROUGH TCSETATTR() WHEN THE CONSOLE IS OPENED!!! ++ /* THIS IS ACTUALLY A BAD THING - SETTING LINE PARAMETERS HERE */ ++ /* IT SHOULD BE DONE THROUGH TCSETATTR() WHEN THE CONSOLE IS OPENED!!! */ + -+// SciSetBaud(115200); // set the baud rate -+// SciSetBaud( 57600); // set the baud rate -+// SciSetBaud( 38400); // set the baud rate -+ SciSetBaud( 19200); // set the baud rate -+// SciSetBaud( 9600); // set the baud rate ++/* SciSetBaud(115200); set the baud rate */ ++/* SciSetBaud( 57600); set the baud rate */ ++/* SciSetBaud( 38400); set the baud rate */ ++ SciSetBaud( 19200); /* set the baud rate */ ++/* SciSetBaud( 9600); set the baud rate */ + -+ SciSetParity(SCI_PARITY_NONE); // set no parity ++ SciSetParity(SCI_PARITY_NONE); /* set no parity */ + -+ SciSetDataBits(SCI_8_DATA_BITS); // set 8 data bits ++ SciSetDataBits(SCI_8_DATA_BITS); /* set 8 data bits */ + -+ SciEnableTransmitter(); // enable the xmitter ++ SciEnableTransmitter(); /* enable the xmitter */ + -+ SciEnableReceiver(); // enable the rcvr ++ SciEnableReceiver(); /* enable the rcvr */ + + return RTEMS_SUCCESSFUL; +} @@ -3113,10 +3120,10 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public termios API +****************************************************************************/ + -+int32_t SciPolledClose( -+ int32_t major, -+ int32_t minor, -+ void *arg ++int SciPolledClose( ++ int major, ++ int minor, ++ void *arg +) +{ + SciDisableAllInterrupts(); @@ -3134,21 +3141,21 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public API +****************************************************************************/ + -+int32_t SciPolledRead( -+ int32_t minor ++int SciPolledRead( ++ int minor +) +{ -+ if ( minor != SCI_MINOR ) // check the minor dev num ++ if ( minor != SCI_MINOR ) /* check the type-punned dev num */ + { -+ return -1; // return error ++ return -1; /* return error */ + } + -+ if ( SciCharAvailable() ) // if a char is available ++ if ( SciCharAvailable() ) /* if a char is available */ + { -+ return SciReadCharNoWait(); // read the rx data register ++ return SciReadCharNoWait(); /* read the rx data register */ + } + -+ return -1; // return error ++ return -1; /* return error */ +} + + @@ -3164,43 +3171,42 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +* Scope: public termios API +****************************************************************************/ + -+int32_t SciPolledWrite( -+ int32_t minor, -+ const char *buf, -+ int32_t len ++int SciPolledWrite( ++ int minor, ++ const char *buf, ++ int len +) +{ + int32_t written = 0; + -+ if ( minor != SCI_MINOR ) // check minor device num ++ if ( minor != SCI_MINOR ) /* check minor device num */ + { + return -1; + } + -+ if ( SciOpened == DRIVER_OPENED ) // is the driver api open? ++ if ( SciOpened == DRIVER_OPENED ) /* is the driver api open? */ + { -+ return -1; // toss the data ++ return -1; /* toss the data */ + } + -+ // send each byte in the string out the port ++ /* send each byte in the string out the port */ + + while ( written < len ) + { -+ SciWriteCharWait(*buf++); // send a byte ++ SciWriteCharWait(*buf++); /* send a byte */ + -+ written++; // increment counter ++ written++; /* increment counter */ + } + -+ return written; // return count ++ return written; /* return count */ +} + + -+///////////////////////////////////////////////////////////////////////////// -+// -+// SECTION 4 -+// DEVICE DRIVER PUBLIC API ENTRY POINTS -+// -+///////////////////////////////////////////////////////////////////////////// ++/* ++ * ++ * SECTION 4 ++ * DEVICE DRIVER PUBLIC API ENTRY POINTS ++ */ + +/**************************************************************************** +* Func: SciInit @@ -3219,26 +3225,27 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + void * arg +) +{ -+// rtems_status_code status; ++/* rtems_status_code status; */ + -+//printk("%s\r\n", __FUNCTION__); ++/*printk("%s\r\n", __FUNCTION__); */ + -+ // register the SCI device name for termios console i/o -+ // this is done over in console.c which doesn't seem exactly right -+ // but there were problems doing it here... ++ /* register the SCI device name for termios console i/o ++ * this is done over in console.c which doesn't seem exactly right ++ * but there were problems doing it here... ++ */ + -+// status = rtems_io_register_name( "/dev/sci", major, 0 ); ++/* status = rtems_io_register_name( "/dev/sci", major, 0 ); */ + -+// if (status != RTEMS_SUCCESSFUL) -+// rtems_fatal_error_occurred(status); ++/* if (status != RTEMS_SUCCESSFUL) */ ++/* rtems_fatal_error_occurred(status); */ + -+ SciMajor = major; // save the rtems major number ++ SciMajor = major; /* save the rtems major number */ + -+ SciOpened = DRIVER_CLOSED; // initial state is closed ++ SciOpened = DRIVER_CLOSED; /* initial state is closed */ + -+ // if you have an interrupt handler, install it here ++ /* if you have an interrupt handler, install it here */ + -+ SciInited = 1; // set the inited flag ++ SciInited = 1; /* set the inited flag */ + + return RTEMS_SUCCESSFUL; +} @@ -3264,24 +3271,24 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + void * arg +) +{ -+//printk("%s major=%d minor=%d\r\n", __FUNCTION__,major,minor); ++/*printk("%s major=%d minor=%d\r\n", __FUNCTION__,major,minor); */ + -+ if (SciInited == 0) // must be initialized first! ++ if (SciInited == 0) /* must be initialized first! */ + { + return RTEMS_NOT_CONFIGURED; + } + + if (minor != SCI_MINOR) + { -+ return RTEMS_INVALID_NAME; // verify minor number ++ return RTEMS_INVALID_NAME; /* verify minor number */ + } + + if (SciOpened == DRIVER_OPENED) + { -+ return RTEMS_RESOURCE_IN_USE; // already opened! ++ return RTEMS_RESOURCE_IN_USE; /* already opened! */ + } + -+ SciOpened = DRIVER_OPENED; // set the opened flag ++ SciOpened = DRIVER_OPENED; /* set the opened flag */ + + return RTEMS_SUCCESSFUL; +} @@ -3306,19 +3313,19 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + void * arg +) +{ -+//printk("%s major=%d minor=%d\r\n", __FUNCTION__,major,minor); ++/*printk("%s major=%d minor=%d\r\n", __FUNCTION__,major,minor); */ + + if (minor != SCI_MINOR) + { -+ return RTEMS_INVALID_NAME; // check the minor number ++ return RTEMS_INVALID_NAME; /* check the minor number */ + } + + if (SciOpened != DRIVER_OPENED) + { -+ return RTEMS_INCORRECT_STATE; // must be opened first ++ return RTEMS_INCORRECT_STATE; /* must be opened first */ + } + -+ SciOpened = DRIVER_CLOSED; // set the flag ++ SciOpened = DRIVER_CLOSED; /* set the flag */ + + return RTEMS_SUCCESSFUL; +} @@ -3342,42 +3349,42 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + void *arg +) +{ -+ rtems_libio_rw_args_t *rw_args; // ptr to argument struct -+ uint8_t *buffer; ++ rtems_libio_rw_args_t *rw_args; /* ptr to argument struct */ ++ char *buffer; + uint16_t length; + -+ rw_args = (rtems_libio_rw_args_t *) arg; // arguments to read() ++ rw_args = (rtems_libio_rw_args_t *) arg; /* arguments to read() */ + + if (minor != SCI_MINOR) + { -+ return RTEMS_INVALID_NAME; // check the minor number ++ return RTEMS_INVALID_NAME; /* check the minor number */ + } + + if (SciOpened == DRIVER_CLOSED) + { -+ return RTEMS_INCORRECT_STATE; // must be opened first ++ return RTEMS_INCORRECT_STATE; /* must be opened first */ + } + -+ buffer = rw_args->buffer; // points to user's buffer ++ buffer = rw_args->buffer; /* points to user's buffer */ + -+ length = rw_args->count; // how many bytes they want ++ length = rw_args->count; /* how many bytes they want */ + -+// *buffer = SciReadCharWait(); // wait for a character ++/* *buffer = SciReadCharWait(); wait for a character */ + -+ // if there isn't a character available, wait until one shows up -+ // or the timeout period expires, which ever happens first ++ /* if there isn't a character available, wait until one shows up */ ++ /* or the timeout period expires, which ever happens first */ + -+ if ( SciRcvBufCount == 0 ) // no chars ++ if ( SciRcvBufCount == 0 ) /* no chars */ + { -+ // wait for someone to wake me up... -+ //rtems_task_wake_after(SciReadTimeout); ++ /* wait for someone to wake me up... */ ++ /*rtems_task_wake_after(SciReadTimeout); */ + } + -+ if ( SciRcvBufCount ) // any characters locally? ++ if ( SciRcvBufCount ) /* any characters locally? */ + { -+ *buffer = SciRcvBufGetChar(); // get the character ++ *buffer = SciRcvBufGetChar(); /* get the character */ + -+ rw_args->bytes_moved = 1; // how many we actually read ++ rw_args->bytes_moved = 1; /* how many we actually read */ + } + + return RTEMS_SUCCESSFUL; @@ -3402,7 +3409,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + void * arg +) +{ -+ rtems_libio_rw_args_t *rw_args; // ptr to argument struct ++ rtems_libio_rw_args_t *rw_args; /* ptr to argument struct */ + uint8_t *buffer; + uint16_t length; + @@ -3410,24 +3417,24 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + + if (minor != SCI_MINOR) + { -+ return RTEMS_INVALID_NAME; // check the minor number ++ return RTEMS_INVALID_NAME; /* check the minor number */ + } + + if (SciOpened == DRIVER_CLOSED) + { -+ return RTEMS_INCORRECT_STATE; // must be opened first ++ return RTEMS_INCORRECT_STATE; /* must be opened first */ + } + -+ buffer = (uint8_t*)rw_args->buffer; // points to data ++ buffer = (uint8_t*)rw_args->buffer; /* points to data */ + -+ length = rw_args->count; // how many bytes ++ length = rw_args->count; /* how many bytes */ + + while (length--) + { -+ SciWriteCharWait(*buffer++); // send the bytes out ++ SciWriteCharWait(*buffer++); /* send the bytes out */ + } + -+ rw_args->bytes_moved = rw_args->count; // how many we wrote ++ rw_args->bytes_moved = rw_args->count; /* how many we wrote */ + + return RTEMS_SUCCESSFUL; +} @@ -3451,53 +3458,52 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + void * arg +) +{ -+ rtems_libio_ioctl_args_t *args = arg; // rtems arg struct -+ uint16_t command; // the cmd to execute -+ uint16_t unused; // maybe later -+ uint16_t *ptr; // ptr to user data ++ rtems_libio_ioctl_args_t *args = arg; /* rtems arg struct */ ++ uint16_t command; /* the cmd to execute */ ++ uint16_t unused; /* maybe later */ ++ uint16_t *ptr; /* ptr to user data */ + -+//printk("%s major=%d minor=%d\r\n", __FUNCTION__,major,minor); ++/*printk("%s major=%d minor=%d\r\n", __FUNCTION__,major,minor); */ + -+ // do some sanity checking ++ /* do some sanity checking */ + + if (minor != SCI_MINOR) + { -+ return RTEMS_INVALID_NAME; // check the minor number ++ return RTEMS_INVALID_NAME; /* check the minor number */ + } + + if (SciOpened == DRIVER_CLOSED) + { -+ return RTEMS_INCORRECT_STATE; // must be open first ++ return RTEMS_INCORRECT_STATE; /* must be open first */ + } + + if (args == 0) + { -+ return RTEMS_INVALID_ADDRESS; // must have args ++ return RTEMS_INVALID_ADDRESS; /* must have args */ + } + -+ args->ioctl_return = -1; // assume an error ++ args->ioctl_return = -1; /* assume an error */ + -+ command = args->command; // get the command -+ ptr = args->buffer; // this is an address -+ unused = *ptr; // brightness ++ command = args->command; /* get the command */ ++ ptr = args->buffer; /* this is an address */ ++ unused = *ptr; /* brightness */ + -+ if (command == SCI_SEND_BREAK) // process the command ++ if (command == SCI_SEND_BREAK) /* process the command */ + { -+ SciSendBreak(); // send break char ++ SciSendBreak(); /* send break char */ + } + -+ args->ioctl_return = 0; // return status ++ args->ioctl_return = 0; /* return status */ + + return RTEMS_SUCCESSFUL; +} + + -+///////////////////////////////////////////////////////////////////////////// -+// -+// SECTION 5 -+// HARDWARE LEVEL ROUTINES -+// -+///////////////////////////////////////////////////////////////////////////// ++/* ++ * ++ * SECTION 5 ++ * HARDWARE LEVEL ROUTINES ++ */ + +/**************************************************************************** +* Func: SciSetBaud @@ -3513,26 +3519,26 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + uint16_t value; + uint16_t save_sccr1; + -+// when you open the console you need to set the termio struct baud rate -+// it has a default value of 9600, when someone calls tcsetattr it reverts! ++/* when you open the console you need to set the termio struct baud rate */ ++/* it has a default value of 9600, when someone calls tcsetattr it reverts! */ + -+ SciBaud = rate; // save the rate ++ SciBaud = rate; /* save the rate */ + -+ // calculate the register value as a float and convert to an int -+ // set baud rate - you must define the system clock constant -+ // see mrm332.h for an example ++ /* calculate the register value as a float and convert to an int */ ++ /* set baud rate - you must define the system clock constant */ ++ /* see mrm332.h for an example */ + + value = ( (uint16_t) ( SYS_CLOCK / rate / 32.0 + 0.5 ) & 0x1fff ); + -+ save_sccr1 = *SCCR1; // save register ++ save_sccr1 = *SCCR1; /* save register */ + -+ // also turns off the xmtr and rcvr ++ /* also turns off the xmtr and rcvr */ + -+ *SCCR1 &= SCI_DISABLE_INT_ALL; // disable interrupts ++ *SCCR1 &= SCI_DISABLE_INT_ALL; /* disable interrupts */ + -+ *SCCR0 = value; // write the register ++ *SCCR0 = value; /* write the register */ + -+ *SCCR1 = save_sccr1; // restore register ++ *SCCR1 = save_sccr1; /* restore register */ + + return; +} @@ -3551,28 +3557,28 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +{ + uint16_t value; + -+ value = *SCCR1; // get the register ++ value = *SCCR1; /* get the register */ + + if (parity == SCI_PARITY_ODD) + { -+ value |= SCI_PARITY_ENABLE; // parity enabled -+ value |= SCI_PARITY_ODD; // parity odd ++ value |= SCI_PARITY_ENABLE; /* parity enabled */ ++ value |= SCI_PARITY_ODD; /* parity odd */ + } + + else if (parity == SCI_PARITY_EVEN) + { -+ value |= SCI_PARITY_ENABLE; // parity enabled -+ value &= ~SCI_PARITY_ODD; // parity even ++ value |= SCI_PARITY_ENABLE; /* parity enabled */ ++ value &= ~SCI_PARITY_ODD; /* parity even */ + } + + else if (parity == SCI_PARITY_NONE) + { -+ value &= ~SCI_PARITY_ENABLE; // disabled, most common ++ value &= ~SCI_PARITY_ENABLE; /* disabled, most common */ + } + + /* else no changes */ + -+ *SCCR1 = value; // write the register ++ *SCCR1 = value; /* write the register */ + + return; +} @@ -3591,23 +3597,23 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +{ + uint16_t value; + -+ value = *SCCR1; // get the register ++ value = *SCCR1; /* get the register */ + + /* note - the parity setting affects the number of data bits */ + + if (bits == SCI_9_DATA_BITS) + { -+ value |= SCI_9_DATA_BITS; // 9 data bits ++ value |= SCI_9_DATA_BITS; /* 9 data bits */ + } + + else if (bits == SCI_8_DATA_BITS) + { -+ value &= SCI_8_DATA_BITS; // 8 data bits ++ value &= SCI_8_DATA_BITS; /* 8 data bits */ + } + + /* else no changes */ + -+ *SCCR1 = value; // write the register ++ *SCCR1 = value; /* write the register */ + + return; +} @@ -3626,7 +3632,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +static void inline SciDisableAllInterrupts( void ) +{ -+ // this also turns off the xmtr and rcvr ++ /* this also turns off the xmtr and rcvr */ + + *SCCR1 &= SCI_DISABLE_INT_ALL; +} @@ -3694,7 +3700,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +void SciWriteCharWait(uint8_t c) +{ -+ // poll the fifo, waiting for room for another character ++ /* poll the fifo, waiting for room for another character */ + + while ( ( *SCSR & SCI_XMTR_AVAILABLE ) == 0 ) + { @@ -3708,9 +3714,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + rtems_task_wake_after(RTEMS_YIELD_PROCESSOR); + } + -+ *SCDR = c; // send the charcter ++ *SCDR = c; /* send the charcter */ + -+ SciBytesOut++; // increment the counter ++ SciBytesOut++; /* increment the counter */ + + return; +} @@ -3728,12 +3734,12 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +{ + if ( ( *SCSR & SCI_XMTR_AVAILABLE ) == 0 ) + { -+ return; // no room, throw it away ++ return; /* no room, throw it away */ + } + -+ *SCDR = c; // put the char in the fifo ++ *SCDR = c; /* put the char in the fifo */ + -+ SciBytesOut++; // increment the counter ++ SciBytesOut++; /* increment the counter */ + + return; +} @@ -3752,21 +3758,21 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +{ + uint8_t ch; + -+ while ( SciCharAvailable() == 0 ) // anything there? ++ while ( SciCharAvailable() == 0 ) /* anything there? */ + { + /* relinquish processor while waiting */ + rtems_task_wake_after(RTEMS_YIELD_PROCESSOR); + } + -+ // if you have rcv ints enabled, then the isr will probably -+ // get the character before you will unless you turn off ints -+ // ie polling and ints don't mix that well ++ /* if you have rcv ints enabled, then the isr will probably */ ++ /* get the character before you will unless you turn off ints */ ++ /* ie polling and ints don't mix that well */ + -+ ch = *SCDR; // get the charcter ++ ch = *SCDR; /* get the charcter */ + -+ SciBytesIn++; // increment the counter ++ SciBytesIn++; /* increment the counter */ + -+ return ch; // return the char ++ return ch; /* return the char */ +} + +/**************************************************************************** @@ -3782,14 +3788,14 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +{ + uint8_t ch; + -+ if ( SciCharAvailable() == 0 ) // anything there? ++ if ( SciCharAvailable() == 0 ) /* anything there? */ + return -1; + -+ ch = *SCDR; // get the character ++ ch = *SCDR; /* get the character */ + -+ SciBytesIn++; // increment the count ++ SciBytesIn++; /* increment the count */ + -+ return ch; // return the char ++ return ch; /* return the char */ +} + + @@ -3804,7 +3810,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +uint8_t inline SciCharAvailable( void ) +{ -+ return ( *SCSR & SCI_RCVR_READY ); // char in data register? ++ return ( *SCSR & SCI_RCVR_READY ); /* char in data register? */ +} + + @@ -3819,27 +3825,26 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c + +void SciSendBreak( void ) +{ -+ // From the Motorola QSM reference manual - ++ /* From the Motorola QSM reference manual - */ + -+ // "if SBK is toggled by writing it first to a one and then immediately -+ // to a zero (in less than one serial frame interval), the transmitter -+ // sends only one or two break frames before reverting to mark (idle) -+ // or before commencing to send more data" ++ /* "if SBK is toggled by writing it first to a one and then immediately */ ++ /* to a zero (in less than one serial frame interval), the transmitter */ ++ /* sends only one or two break frames before reverting to mark (idle) */ ++ /* or before commencing to send more data" */ + -+ *SCCR1 |= SCI_SEND_BREAK; // set the bit ++ *SCCR1 |= SCI_SEND_BREAK; /* set the bit */ + -+ *SCCR1 &= ~SCI_SEND_BREAK; // clear the bit ++ *SCCR1 &= ~SCI_SEND_BREAK; /* clear the bit */ + + return; +} + + -+///////////////////////////////////////////////////////////////////////////// -+// -+// SECTION 6 -+// TEST CODE -+// -+///////////////////////////////////////////////////////////////////////////// ++/* ++ * ++ * SECTION 6 ++ * TEST CODE ++ */ + +/**************************************************************************** +* Func: SciUnitTest @@ -3850,23 +3855,23 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +****************************************************************************/ + +#if 0 -+#define O_RDWR LIBIO_FLAGS_READ_WRITE // dont like this but... ++#define O_RDWR LIBIO_FLAGS_READ_WRITE /* dont like this but... */ + +void SciUnitTest() +{ -+ uint8_t byte; // a character -+ uint16_t fd; // file descriptor for device -+ uint16_t result; // result of ioctl ++ uint8_t byte; /* a character */ ++ uint16_t fd; /* file descriptor for device */ ++ uint16_t result; /* result of ioctl */ + -+ fd = open("/dev/sci",O_RDWR); // open the device ++ fd = open("/dev/sci",O_RDWR); /* open the device */ + +printk("SCI open fd=%d\r\n",fd); + -+ result = write(fd, "abcd\r\n", 6); // send a string ++ result = write(fd, "abcd\r\n", 6); /* send a string */ + +printk("SCI write result=%d\r\n",result); + -+ result = read(fd, &byte, 1); // read a byte ++ result = read(fd, &byte, 1); /* read a byte */ + +printk("SCI read result=%d,byte=%x\r\n",result,byte); + @@ -3902,8 +3907,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c +} Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/bspstart.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/bspstart.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/bspstart.c 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,82 @@ +/* + * This routine starts the application. It includes application, @@ -3989,8 +3994,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/bspstart.c +} Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,125 @@ +/* + * $Id @@ -4108,7 +4113,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c + + /* Spurious should be called in the predriver hook */ + /* Spurious_Initialize(); */ -+ //console_init(); ++ /*console_init(); */ + + /* + * Execute main with arguments argc and agrv. @@ -4119,8 +4124,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c +} Index: rtems/c/src/lib/libbsp/m68k/mo376/include/tm27.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/tm27.h +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/tm27.h 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,34 @@ +/* + * tm27.h @@ -4158,8 +4163,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/tm27.h +#endif Index: rtems/c/src/lib/libbsp/m68k/mo376/times =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/times +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/times 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,195 @@ +# +# Timing Test Suite Results for the MRM332 BSP @@ -4358,8 +4363,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/times + rtems_rate_monotonic_period: conclude periods -- caller blocks 53 Index: rtems/c/src/lib/libbsp/m68k/mo376/include/mrm332.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/mrm332.h +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/mrm332.h 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,70 @@ +/* mrm332.h + * @@ -4433,8 +4438,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/mrm332.h +#endif /* _MRM_H_ */ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bspopts.h.in =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/bspopts.h.in +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/bspopts.h.in 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,16 @@ +/* include/bspopts.h.in. Generated from configure.ac by autoheader. */ + @@ -4454,8 +4459,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bspopts.h.in +#undef PACKAGE_VERSION Index: rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,105 @@ +/* Spurious_driver + * @@ -4472,7 +4477,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * -+ * $Id: spinit.c,v 1.5 2004/04/21 10:42:52 ralf Exp $ ++ * $Id: spinit.c,v 1.6 2006/09/11 21:43:55 joel Exp $ + */ + +#include @@ -4492,7 +4497,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c + rtems_vector_number vector +) +{ -+ //int sp = 0; ++ /*int sp = 0; */ +#if 0 + const char * const VectDescrip[] = { + _Spurious_Error_[0], _Spurious_Error_[0], _Spurious_Error_[1], @@ -4519,10 +4524,10 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c + _Spurious_Error_[27], _Spurious_Error_[28]}; +#endif + -+ //asm volatile ( "movea.l %%sp,%0 " : "=a" (sp) : "0" (sp) ); ++ /*asm volatile ( "movea.l %%sp,%0 " : "=a" (sp) : "0" (sp) ); */ + + _CPU_ISR_Set_level( 7 ); -+ //_UART_flush(); ++ /*_UART_flush(); */ +#if 0 + RAW_PUTS("\n\rRTEMS: Spurious interrupt: "); + RAW_PUTS((char *)VectDescrip[( (vector>64) ? 64 : vector )]); @@ -4564,8 +4569,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c +} Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,164 @@ +/* linkcmds + * @@ -4733,8 +4738,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds +} Index: rtems/c/src/lib/libbsp/m68k/mo376/bsp_specs =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/bsp_specs +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/bsp_specs 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,16 @@ +%rename endfile old_endfile +%rename startfile old_startfile @@ -4752,26 +4757,10 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/bsp_specs +*endfile: +%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s} + -Index: rtems/c/src/lib/libbsp/m68k/mo376/include/.cvsignore -=================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/.cvsignore -@@ -0,0 +1,5 @@ -+bspopts.h -+bspopts.h.in -+coverhd.h -+stamp-h -+stamp-h.in -Index: rtems/c/src/lib/libbsp/m68k/mo376/wrapup/.keep -=================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/wrapup/.keep -@@ -0,0 +1 @@ -+ Index: rtems/c/src/lib/libbsp/m68k/mo376/preinstall.am =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/preinstall.am +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/preinstall.am 2007-08-14 17:20:30.000000000 +0200 @@ -0,0 +1,66 @@ +## Automatically generated by ampolish3 - Do not edit + @@ -4794,12 +4783,12 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/preinstall.am +CLEANFILES += $(PREINSTALL_FILES) + +$(PROJECT_LIB)/$(dirstamp): -+ @$(mkdir_p) $(PROJECT_LIB) ++ @$(MKDIR_P) $(PROJECT_LIB) + @: > $(PROJECT_LIB)/$(dirstamp) +PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp) + +$(PROJECT_INCLUDE)/$(dirstamp): -+ @$(mkdir_p) $(PROJECT_INCLUDE) ++ @$(MKDIR_P) $(PROJECT_INCLUDE) + @: > $(PROJECT_INCLUDE)/$(dirstamp) +PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp) + diff --git a/rtems-patches/current/rtems-clone-ss555-to-ec555.patch b/rtems-patches/current/rtems-clone-ss555-to-ec555.patch index 313d71c..be62d51 100644 --- a/rtems-patches/current/rtems-clone-ss555-to-ec555.patch +++ b/rtems-patches/current/rtems-clone-ss555-to-ec555.patch @@ -1,27 +1,42 @@ -Index: rtems/c/src/lib/libbsp/powerpc/ec555/.cvsignore -=================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/.cvsignore -@@ -0,0 +1,14 @@ -+aclocal.m4 -+autom4te*.cache -+config.cache -+config.guess -+config.log -+config.status -+config.sub -+configure -+depcomp -+install-sh -+Makefile -+Makefile.in -+missing -+mkinstalldirs +--- + c/src/lib/libbsp/powerpc/ec555/ChangeLog | 131 +++++++ + c/src/lib/libbsp/powerpc/ec555/Makefile.am | 65 +++ + c/src/lib/libbsp/powerpc/ec555/README | 262 ++++++++++++++ + c/src/lib/libbsp/powerpc/ec555/bsp_specs | 13 + c/src/lib/libbsp/powerpc/ec555/clock/p_clock.c | 69 +++ + c/src/lib/libbsp/powerpc/ec555/configure.ac | 52 ++ + c/src/lib/libbsp/powerpc/ec555/console/console.c | 368 +++++++++++++++++++ + c/src/lib/libbsp/powerpc/ec555/include/bsp.h | 114 ++++++ + c/src/lib/libbsp/powerpc/ec555/include/coverhd.h | 116 ++++++ + c/src/lib/libbsp/powerpc/ec555/include/tm27.h | 54 ++ + c/src/lib/libbsp/powerpc/ec555/irq/irq.h | 55 ++ + c/src/lib/libbsp/powerpc/ec555/preinstall.am | 58 +++ + c/src/lib/libbsp/powerpc/ec555/startup/bspstart.c | 201 ++++++++++ + c/src/lib/libbsp/powerpc/ec555/startup/iss555.c | 148 +++++++ + c/src/lib/libbsp/powerpc/ec555/startup/linkcmds | 319 +++++++++++++++++ + c/src/lib/libbsp/powerpc/ec555/startup/start.S | 411 ++++++++++++++++++++++ + c/src/lib/libbsp/powerpc/ec555/startup/tm27supp.c | 29 + + c/src/lib/libbsp/powerpc/ec555/times | 189 ++++++++++ + make/custom/ec555.cfg | 41 ++ + 19 files changed, 2695 insertions(+) + Index: rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog -@@ -0,0 +1,119 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog 2007-08-14 17:51:38.000000000 +0200 +@@ -0,0 +1,131 @@ ++2007-04-06 Ralf Corsépius ++ ++ * bsp_specs: Remove lib (Now expected to exist in GCC). ++ ++2006-12-02 Ralf Corsépius ++ ++ * configure.ac: New BUG-REPORT address. ++ ++2006-10-19 Ralf Corsépius ++ ++ * configure.ac: Require automake-1.10. Require autoconf-2.60. ++ +2006-03-08 Joel Sherrill + + * startup/linkcmds: Add .gnu.linkonce.b.* section. @@ -143,8 +158,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog + Index: rtems/c/src/lib/libbsp/powerpc/ec555/Makefile.am =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/Makefile.am +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/Makefile.am 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,65 @@ +## +## $Id: Makefile.am,v 1.10 2006/01/12 10:12:30 ralf Exp $ @@ -213,8 +228,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/Makefile.am +include $(top_srcdir)/../../../../automake/local.am Index: rtems/c/src/lib/libbsp/powerpc/ec555/README =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/README +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/README 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,262 @@ +# +# $Id: README,v 1.1 2004/04/12 21:52:13 joel Exp $ @@ -480,20 +495,13 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README + - The paranoia program dies on a floating-point assist exception. Index: rtems/c/src/lib/libbsp/powerpc/ec555/bsp_specs =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/bsp_specs -@@ -0,0 +1,20 @@ -+%rename lib old_lib +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/bsp_specs 2007-08-14 17:51:38.000000000 +0200 +@@ -0,0 +1,13 @@ +%rename endfile old_endfile +%rename startfile old_startfile +%rename link old_link + -+*lib: -+%{!qrtems: %(old_lib)} %{!nostdlib: %{qrtems: --start-group \ -+%{!qrtems_debug: -lrtemsbsp -lrtemscpu} %{qrtems_debug: -lrtemsbsp_g -lrtemscpu_g} \ -+%{qjava: -lffi -lgcjgc -lzgcj -lgcj} %{qc++: -lstdc++} -lc -lgcc --end-group \ -+%{!qnolinkcmds: %{qrtems_debug: --defsym RTEMS_DEBUG=1} -T linkcmds%s -Map %b.map}}} -+ +*startfile: +%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: ecrti%O%s}} + @@ -505,8 +513,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/bsp_specs + Index: rtems/c/src/lib/libbsp/powerpc/ec555/clock/p_clock.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/clock/p_clock.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/clock/p_clock.c 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,69 @@ +/* + * Clock Tick interrupt conexion code. @@ -579,20 +587,20 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/clock/p_clock.c +} Index: rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,52 @@ +## Process this file with autoconf to produce a configure script. +## -+## $Id: configure.ac,v 1.7 2006/01/11 04:52:39 ralf Exp $ ++## $Id: configure.ac,v 1.7.2.2 2006/12/02 06:06:51 ralf Exp $ + -+AC_PREREQ(2.59) -+AC_INIT([rtems-c-src-lib-libbsp-powerpc-mbx5xx],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) ++AC_PREREQ(2.60) ++AC_INIT([rtems-c-src-lib-libbsp-powerpc-mbx5xx],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla]) +AC_CONFIG_SRCDIR([bsp_specs]) +RTEMS_TOP(../../../../../..) + +RTEMS_CANONICAL_TARGET_CPU -+AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.9]) ++AM_INIT_AUTOMAKE([no-define nostdinc foreign 1.10]) +RTEMS_BSP_CONFIGURE + +RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]) @@ -636,8 +644,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac +AC_OUTPUT Index: rtems/c/src/lib/libbsp/powerpc/ec555/console/console.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/console/console.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/console/console.c 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,368 @@ +/* + * console.c @@ -1007,20 +1015,11 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/console/console.c + return RTEMS_SUCCESSFUL; + #endif +} -Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/.cvsignore -=================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/include/.cvsignore -@@ -0,0 +1,4 @@ -+bspopts.h -+bspopts.h.in -+stamp-h -+stamp-h.in Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/bsp.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/include/bsp.h -@@ -0,0 +1,115 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/include/bsp.h 2007-08-14 17:51:38.000000000 +0200 +@@ -0,0 +1,114 @@ +/* bsp.h + * + * This include file contains all board IO definitions. @@ -1040,7 +1039,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/bsp.h + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * -+ * $Id: bsp.h,v 1.9 2005/05/26 05:36:48 ralf Exp $ ++ * $Id: bsp.h,v 1.10 2006/03/17 10:11:37 ralf Exp $ + */ + +#ifndef _BSP_H @@ -1135,12 +1134,11 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/bsp.h +#endif + +#endif -+/* end of include file */ Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/coverhd.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/include/coverhd.h -@@ -0,0 +1,117 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/include/coverhd.h 2007-08-14 17:51:38.000000000 +0200 +@@ -0,0 +1,116 @@ +/* coverhd.h + * + * This include file has defines to represent the overhead associated @@ -1164,7 +1162,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/coverhd.h + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * -+ * $Id: coverhd.h,v 1.1 2004/04/12 21:52:13 joel Exp $ ++ * $Id: coverhd.h,v 1.2 2006/03/17 10:11:37 ralf Exp $ + */ + +#ifndef __COVERHD_h @@ -1257,11 +1255,10 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/coverhd.h +#endif + +#endif -+/* end of include file */ Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/tm27.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/include/tm27.h +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/include/tm27.h 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,54 @@ +/* + * tm27.h @@ -1319,8 +1316,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/include/tm27.h +#endif Index: rtems/c/src/lib/libbsp/powerpc/ec555/irq/irq.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/irq/irq.h +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/irq/irq.h 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,55 @@ +/* irq.h + * @@ -1379,8 +1376,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/irq/irq.h +#endif /* LIBBSP_POWERPC_SS555_IRQ_IRQ_H */ Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/bspstart.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/bspstart.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/bspstart.c 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,201 @@ +/* bspstart.c + * @@ -1585,8 +1582,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/bspstart.c +} Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/iss555.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/iss555.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/iss555.c 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,148 @@ +/* + * iss555.c @@ -1738,8 +1735,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/iss555.c +} Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/linkcmds =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/linkcmds +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/linkcmds 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,319 @@ +/* + * Linker command file for Intec SS555 board @@ -2062,8 +2059,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/linkcmds +} Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/start.S =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/start.S +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/start.S 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,411 @@ +/* start.S + * @@ -2478,8 +2475,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/start.S +.L_text_e: Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/tm27supp.c =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/tm27supp.c +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/startup/tm27supp.c 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,29 @@ +/* + * Support routines for TM27 @@ -2512,8 +2509,8 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/startup/tm27supp.c + Index: rtems/c/src/lib/libbsp/powerpc/ec555/times =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/times +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/times 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,189 @@ +# +# Timing Test Suite Results for the Intec SS555 @@ -2706,9 +2703,9 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/times + rtems_rate_monotonic_period: conclude periods -- caller blocks 36 Index: rtems/make/custom/ec555.cfg =================================================================== ---- /dev/null -+++ rtems/make/custom/ec555.cfg -@@ -0,0 +1,49 @@ +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/make/custom/ec555.cfg 2007-08-14 17:51:38.000000000 +0200 +@@ -0,0 +1,41 @@ +# +# Config file for an Intec Automation SS555 MPC555-based card +# @@ -2733,16 +2730,8 @@ Index: rtems/make/custom/ec555.cfg +# +CPU_CFLAGS = -mcpu=$(GCC_CPU_MODEL) -D$(RTEMS_CPU_MODEL) -D$(RTEMS_BSP_FAMILY) + -+# Debugging flags: If we debug with optimization on, single-stepping -+# sometimes looks a little odd, but there won't be any surprises later. -+CFLAGS_DEBUG_V += -O4 -ggdb -+CXXFLAGS_DEBUG_V += -O4 -ggdb -+ -+# optimize flag: typically -O, could use -O4 or -fast -+# -O4 is ok for RTEMS -+# NOTE: some level of -O may be actually required by inline assembler -+CFLAGS_OPTIMIZE_V=-O4 -fno-keep-inline-functions -+CXXFLAGS_OPTIMIZE_V=-O4 ++# optimize flag: typically -O2 ++CFLAGS_OPTIMIZE_V = -O2 -g -fno-keep-inline-functions + +define make-exe + $(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) $(SS555_LDFLAGS) \ @@ -2760,8 +2749,8 @@ Index: rtems/make/custom/ec555.cfg + Index: rtems/c/src/lib/libbsp/powerpc/ec555/preinstall.am =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/powerpc/ec555/preinstall.am +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/preinstall.am 2007-08-14 17:51:38.000000000 +0200 @@ -0,0 +1,58 @@ +## Automatically generated by ampolish3 - Do not edit + @@ -2779,12 +2768,12 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/preinstall.am +CLEANFILES = $(PREINSTALL_FILES) + +$(PROJECT_LIB)/$(dirstamp): -+ @$(mkdir_p) $(PROJECT_LIB) ++ @$(MKDIR_P) $(PROJECT_LIB) + @: > $(PROJECT_LIB)/$(dirstamp) +PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp) + +$(PROJECT_INCLUDE)/$(dirstamp): -+ @$(mkdir_p) $(PROJECT_INCLUDE) ++ @$(MKDIR_P) $(PROJECT_INCLUDE) + @: > $(PROJECT_INCLUDE)/$(dirstamp) +PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp) + @@ -2805,7 +2794,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/preinstall.am +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h + +$(PROJECT_INCLUDE)/bsp/$(dirstamp): -+ @$(mkdir_p) $(PROJECT_INCLUDE)/bsp ++ @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp + @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp) +PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp) + diff --git a/rtems-patches/current/rtems-mo376-add-to-configs.patch b/rtems-patches/current/rtems-mo376-add-to-configs.patch index 2085573..c247240 100644 --- a/rtems-patches/current/rtems-mo376-add-to-configs.patch +++ b/rtems-patches/current/rtems-mo376-add-to-configs.patch @@ -1,13 +1,17 @@ -Index: rtems-051009/c/src/lib/libbsp/m68k/acinclude.m4 +--- + c/src/lib/libbsp/m68k/acinclude.m4 | 2 ++ + 1 file changed, 2 insertions(+) + +Index: rtems/c/src/lib/libbsp/m68k/acinclude.m4 =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/acinclude.m4 -+++ rtems/c/src/lib/libbsp/m68k/acinclude.m4 -@@ -22,6 +22,8 @@ AC_DEFUN([RTEMS_CHECK_BSPDIR], +--- rtems.orig/c/src/lib/libbsp/m68k/acinclude.m4 2007-08-14 18:59:45.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/acinclude.m4 2007-08-14 19:04:40.000000000 +0200 +@@ -20,6 +20,8 @@ + AC_CONFIG_SUBDIRS([mcf5206elite]);; + mcf5235 ) AC_CONFIG_SUBDIRS([mcf5235]);; - mrm332 ) - AC_CONFIG_SUBDIRS([mrm332]);; + mo376 ) + AC_CONFIG_SUBDIRS([mo376]);; + mrm332 ) + AC_CONFIG_SUBDIRS([mrm332]);; mvme136 ) - AC_CONFIG_SUBDIRS([mvme136]);; - mvme147 ) diff --git a/rtems-patches/current/rtems-mo376-m68376-updates.patch b/rtems-patches/current/rtems-mo376-m68376-updates.patch index 22a05b7..22ea2ff 100644 --- a/rtems-patches/current/rtems-mo376-m68376-updates.patch +++ b/rtems-patches/current/rtems-mo376-m68376-updates.patch @@ -1,7 +1,19 @@ -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/include/bsp.h +--- + c/src/lib/libbsp/m68k/mo376/clock/ckinit.c | 2 + c/src/lib/libbsp/m68k/mo376/include/bsp.h | 26 + + c/src/lib/libbsp/m68k/mo376/include/mo376.h | 27 - + c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 | 395 ++++++++++++++++++++++- + c/src/lib/libbsp/m68k/mo376/spurious/spinit.c | 10 + c/src/lib/libbsp/m68k/mo376/startup/linkcmds | 10 + c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM | 17 + c/src/lib/libbsp/m68k/mo376/startup/start_c.c | 6 + make/custom/mo376.cfg | 10 + 9 files changed, 455 insertions(+), 48 deletions(-) + +Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/bsp.h -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/bsp.h 2007-08-14 17:24:09.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h 2007-08-14 17:36:35.000000000 +0200 @@ -1,6 +1,6 @@ /* bsp.h * @@ -10,7 +22,7 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/include/bsp.h * * COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). -@@ -41,6 +41,30 @@ extern "C" { +@@ -41,6 +41,30 @@ /* #define CONFIGURE_INTERRUPT_STACK_MEMORY (TBD * 1024) */ /* @@ -41,11 +53,11 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/include/bsp.h * Simple spin delay in microsecond units for device drivers. * This is very dependent on the clock speed of the target. */ -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c +Index: rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c -+++ rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c -@@ -60,7 +60,7 @@ void Install_clock( +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c 2007-08-14 17:24:09.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c 2007-08-14 17:36:35.000000000 +0200 +@@ -60,7 +60,7 @@ Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 ); /* enable 1mS interrupts */ @@ -54,10 +66,10 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c *PICR = (unsigned short int) /* enable interrupt */ ( SAM(ISRL_PIT,8,PIRQL) | SAM(CLOCK_VECTOR,0,PIV) ); -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 +Index: rtems/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 -+++ rtems/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 2007-08-14 17:36:35.000000000 +0200 @@ -1,16 +1,399 @@ # # $Id: gdbinit68,v 1.1 2001/05/25 16:28:46 joel Exp $ @@ -464,10 +476,10 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/misc/gdbinit68 +#b main + +run -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/include/mo376.h +Index: rtems/c/src/lib/libbsp/m68k/mo376/include/mo376.h =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/mo376.h -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/mo376.h +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/mo376.h 2007-08-14 17:24:09.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/mo376.h 2007-08-14 17:36:35.000000000 +0200 @@ -26,31 +26,22 @@ #define EFI_INT1 25 /* CTS interrupt */ #define ISRL_SCI 6 @@ -509,10 +521,10 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/include/mo376.h #define SCI_BAUD 19200 /* RS232 Baud Rate */ /* macros/functions */ -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM +Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM 2007-08-14 17:36:35.000000000 +0200 @@ -4,7 +4,8 @@ */ @@ -523,7 +535,7 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM __DYNAMIC = 0; /* -@@ -39,18 +40,18 @@ __DYNAMIC = 0; +@@ -39,18 +40,18 @@ MEMORY { @@ -549,36 +561,36 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/startup/linkcmds_ROM /* * -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c +Index: rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c -+++ rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c -@@ -33,8 +33,8 @@ rtems_isr Spurious_Isr( +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c 2007-08-14 17:45:18.000000000 +0200 +@@ -33,8 +33,8 @@ rtems_vector_number vector ) { -- //int sp = 0; +- /*int sp = 0; */ -#if 0 + int sp = 0; +#if 1 const char * const VectDescrip[] = { _Spurious_Error_[0], _Spurious_Error_[0], _Spurious_Error_[1], _Spurious_Error_[2], _Spurious_Error_[3], _Spurious_Error_[4], -@@ -60,11 +60,11 @@ rtems_isr Spurious_Isr( +@@ -60,11 +60,11 @@ _Spurious_Error_[27], _Spurious_Error_[28]}; #endif -- //asm volatile ( "movea.l %%sp,%0 " : "=a" (sp) : "0" (sp) ); +- /*asm volatile ( "movea.l %%sp,%0 " : "=a" (sp) : "0" (sp) ); */ + asm volatile ( "movea.l %%sp,%0 " : "=a" (sp) : "0" (sp) ); _CPU_ISR_Set_level( 7 ); - //_UART_flush(); + /*_UART_flush(); */ -#if 0 +#if 1 RAW_PUTS("\n\rRTEMS: Spurious interrupt: "); RAW_PUTS((char *)VectDescrip[( (vector>64) ? 64 : vector )]); RAW_PUTS("\n\rRTEMS: Vector: "); -@@ -89,6 +89,7 @@ void Spurious_Initialize(void) +@@ -89,6 +89,7 @@ { switch (vector) { @@ -586,7 +598,7 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c case 4: case 9: case 31: -@@ -96,6 +97,7 @@ void Spurious_Initialize(void) +@@ -96,6 +97,7 @@ case 66: /* These vectors used by CPU32bug - don't overwrite them. */ break; @@ -594,11 +606,11 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/spurious/spinit.c default: (void) set_vector( Spurious_Isr, vector, 1 ); -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/startup/linkcmds +Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/linkcmds -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds -@@ -33,15 +33,15 @@ __DYNAMIC = 0; +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/linkcmds 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/linkcmds 2007-08-14 17:36:35.000000000 +0200 +@@ -33,15 +33,15 @@ /* * Declare some sizes. */ @@ -619,33 +631,32 @@ Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/startup/linkcmds } _copy_data_from_rom = 0; -Index: rtems-051009/make/custom/mo376.cfg +Index: rtems/make/custom/mo376.cfg =================================================================== ---- rtems.orig/make/custom/mo376.cfg -+++ rtems/make/custom/mo376.cfg -@@ -16,8 +16,16 @@ RTEMS_BSP_FAMILY=mo376 +--- rtems.orig/make/custom/mo376.cfg 2007-08-14 17:24:09.000000000 +0200 ++++ rtems/make/custom/mo376.cfg 2007-08-14 17:41:03.000000000 +0200 +@@ -16,8 +16,14 @@ # and (hopefully) optimize for it. CPU_CFLAGS = -mcpu32 +-# optimize flag: typically -O2 +-CFLAGS_OPTIMIZE_V = -O2 -g -fomit-frame-pointer +# Debugging flags: If we debug with optimization on, single-stepping +# sometimes looks a little odd, but there won't be any surprises later. +CFLAGS_DEBUG_V += -O2 -ggdb +CXXFLAGS_DEBUG_V += -O2 -ggdb + - # optimize flag: typically -0, could use -O4 or -fast, -O4 is ok for RTEMS --CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer -+CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-pointer -ggdb -+CXXFLAGS_OPTIMIZE_V=-O4 -ggdb -+ -+ ++# optimize flag: typically -0, could use -O4 or -fast, -O4 is ok for RTEMS ++CFLAGS_OPTIMIZE_V=-O2 -fomit-frame-pointer -ggdb ++CXXFLAGS_OPTIMIZE_V=-O2 -ggdb # The following are definitions of make-exe which will work using ld as - # is currently required. It is expected that as of gcc 2.8, the end user -Index: rtems-051009/c/src/lib/libbsp/m68k/mo376/startup/start_c.c + # is currently required. +Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/start_c.c -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c -@@ -60,12 +60,12 @@ void start_c() { +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/start_c.c 2007-08-14 17:24:09.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c 2007-08-14 17:36:35.000000000 +0200 +@@ -60,12 +60,12 @@ /* Port E and F Data Direction Register */ /* see section 9 of the SIM Reference Manual */ diff --git a/rtems-patches/current/rtems-readlink-type-fix.patch b/rtems-patches/current/rtems-readlink-type-fix.patch new file mode 100644 index 0000000..1bed335 --- /dev/null +++ b/rtems-patches/current/rtems-readlink-type-fix.patch @@ -0,0 +1,21 @@ +--- + cpukit/libcsupport/src/readlink.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: rtems/cpukit/libcsupport/src/readlink.c +=================================================================== +--- rtems.orig/cpukit/libcsupport/src/readlink.c 2007-08-15 01:54:35.000000000 +0200 ++++ rtems/cpukit/libcsupport/src/readlink.c 2007-08-15 01:56:45.000000000 +0200 +@@ -18,10 +18,10 @@ + #include + #include + +-int readlink( ++ssize_t readlink( + const char *pathname, + char *buf, +- int bufsize ++ size_t bufsize + ) + { + rtems_filesystem_location_info_t loc; diff --git a/rtems-patches/current/rtems-update-mrm332-to-mo376.patch b/rtems-patches/current/rtems-update-mrm332-to-mo376.patch index 330d95b..9388467 100644 --- a/rtems-patches/current/rtems-update-mrm332-to-mo376.patch +++ b/rtems-patches/current/rtems-update-mrm332-to-mo376.patch @@ -1,7 +1,24 @@ +--- + c/src/lib/libbsp/m68k/mo376/ChangeLog | 5 + + c/src/lib/libbsp/m68k/mo376/Makefile.am | 2 + c/src/lib/libbsp/m68k/mo376/README | 25 ++++----- + c/src/lib/libbsp/m68k/mo376/clock/ckinit.c | 2 + c/src/lib/libbsp/m68k/mo376/configure.ac | 2 + c/src/lib/libbsp/m68k/mo376/console/sci.c | 4 - + c/src/lib/libbsp/m68k/mo376/include/bsp.h | 2 + c/src/lib/libbsp/m68k/mo376/include/mo376.h | 70 ++++++++++++++++++++++++++ + c/src/lib/libbsp/m68k/mo376/include/mrm332.h | 70 -------------------------- + c/src/lib/libbsp/m68k/mo376/preinstall.am | 6 +- + c/src/lib/libbsp/m68k/mo376/start/start.S | 2 + c/src/lib/libbsp/m68k/mo376/startup/start_c.c | 2 + c/src/lib/libbsp/m68k/mo376/times | 6 +- + make/custom/mo376.cfg | 4 - + 14 files changed, 104 insertions(+), 98 deletions(-) + Index: rtems/c/src/lib/libbsp/m68k/mo376/start/start.S =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/start/start.S -+++ rtems/c/src/lib/libbsp/m68k/mo376/start/start.S +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/start/start.S 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/start/start.S 2007-08-14 17:24:09.000000000 +0200 @@ -2,7 +2,7 @@ * $Id */ @@ -13,9 +30,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/start/start.S Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/bsp.h -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h -@@ -26,7 +26,7 @@ extern "C" { +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/bsp.h 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h 2007-08-14 17:24:09.000000000 +0200 +@@ -26,7 +26,7 @@ #include #include #include @@ -26,9 +43,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/bsp.h Index: rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/ChangeLog -+++ rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog -@@ -11,6 +11,11 @@ +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/ChangeLog 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog 2007-08-14 17:24:09.000000000 +0200 +@@ -29,6 +29,11 @@ * include/bsp.h: New header guard. @@ -42,8 +59,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/ChangeLog * Makefile.am: Eliminate CFLAGS_OPTIMIZE_V. Index: rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c -+++ rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c 2007-08-14 17:24:09.000000000 +0200 @@ -20,7 +20,7 @@ #include #include @@ -55,21 +72,21 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/clock/ckinit.c Index: rtems/c/src/lib/libbsp/m68k/mo376/configure.ac =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/configure.ac -+++ rtems/c/src/lib/libbsp/m68k/mo376/configure.ac +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/configure.ac 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/configure.ac 2007-08-14 17:26:26.000000000 +0200 @@ -3,7 +3,7 @@ - ## $Id: configure.ac,v 1.14 2004/09/24 06:32:09 ralf Exp $ + ## $Id: configure.ac,v 1.14.2.2 2006/12/02 06:04:46 ralf Exp $ - AC_PREREQ(2.59) --AC_INIT([rtems-c-src-lib-libbsp-m68k-mrm332],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) -+AC_INIT([rtems-c-src-lib-libbsp-m68k-mo376],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) + AC_PREREQ(2.60) +-AC_INIT([rtems-c-src-lib-libbsp-m68k-mrm332],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla]) ++AC_INIT([rtems-c-src-lib-libbsp-m68k-mo376],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla]) AC_CONFIG_SRCDIR([bsp_specs]) RTEMS_TOP(../../../../../..) Index: rtems/c/src/lib/libbsp/m68k/mo376/README =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/README -+++ rtems/c/src/lib/libbsp/m68k/mo376/README +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/README 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/README 2007-08-14 17:24:09.000000000 +0200 @@ -2,23 +2,24 @@ # $Id: README,v 1.1 2001/05/25 16:28:46 joel Exp $ # @@ -109,9 +126,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/README Index: rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/Makefile.am -+++ rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am -@@ -16,7 +16,7 @@ nodist_include_HEADERS = include/bspopts +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/Makefile.am 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am 2007-08-14 17:24:09.000000000 +0200 +@@ -16,7 +16,7 @@ DISTCLEANFILES = include/bspopts.h noinst_PROGRAMS = @@ -122,30 +139,30 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/Makefile.am EXTRA_DIST = times Index: rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/console/sci.c -+++ rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c -@@ -129,7 +129,7 @@ +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/console/sci.c 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/console/sci.c 2007-08-14 17:31:42.000000000 +0200 +@@ -105,7 +105,7 @@ - // system clock definitions, i dont have documentation on this... + /* system clock definitions, i dont have documentation on this... */ --#if 0 // Not needed, this is provided in mrm332.h -+#if 0 // Not needed, this is provided in mo376.h - #define XTAL 32768.0 // crystal frequency in Hz - #define NUMB_W 0 // system clock parameters +-#if 0 /* Not needed, this is provided in mrm332.h */ ++#if 0 /* Not needed, this is provided in mo376.h */ + #define XTAL 32768.0 /* crystal frequency in Hz */ + #define NUMB_W 0 /* system clock parameters */ #define NUMB_X 1 -@@ -1238,7 +1238,7 @@ static void SciSetBaud(uint32_t rate) +@@ -1215,7 +1215,7 @@ - // calculate the register value as a float and convert to an int - // set baud rate - you must define the system clock constant -- // see mrm332.h for an example -+ // see mo376.h for an example + /* calculate the register value as a float and convert to an int */ + /* set baud rate - you must define the system clock constant */ +- /* see mrm332.h for an example */ ++ /* see mo376.h for an example */ value = ( (uint16_t) ( SYS_CLOCK / rate / 32.0 + 0.5 ) & 0x1fff ); Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/start_c.c -+++ rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/startup/start_c.c 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c 2007-08-14 17:24:09.000000000 +0200 @@ -2,7 +2,7 @@ * $Id */ @@ -157,8 +174,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/startup/start_c.c #include "bsp.h" Index: rtems/c/src/lib/libbsp/m68k/mo376/times =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/times -+++ rtems/c/src/lib/libbsp/m68k/mo376/times +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/times 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/times 2007-08-14 17:24:09.000000000 +0200 @@ -1,5 +1,5 @@ # -# Timing Test Suite Results for the MRM332 BSP @@ -166,7 +183,7 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/times # # $Id: times,v 1.2 2004/01/07 21:13:50 joel Exp $ # -@@ -8,9 +8,9 @@ NOTE: This BSP is user submitted and no +@@ -8,9 +8,9 @@ TBD: MATT - update this with real times! @@ -180,8 +197,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/times Index: rtems/c/src/lib/libbsp/m68k/mo376/include/mo376.h =================================================================== ---- /dev/null -+++ rtems/c/src/lib/libbsp/m68k/mo376/include/mo376.h +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rtems/c/src/lib/libbsp/m68k/mo376/include/mo376.h 2007-08-14 17:24:09.000000000 +0200 @@ -0,0 +1,70 @@ +/* mo376.h + * @@ -255,8 +272,8 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/mo376.h +#endif /* _MRM_H_ */ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/mrm332.h =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/mrm332.h -+++ /dev/null +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/include/mrm332.h 2007-08-14 17:20:30.000000000 +0200 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -/* mrm332.h - * @@ -330,19 +347,9 @@ Index: rtems/c/src/lib/libbsp/m68k/mo376/include/mrm332.h -#endif /* _MRM_H_ */ Index: rtems/make/custom/mo376.cfg =================================================================== ---- rtems.orig/make/custom/mo376.cfg -+++ rtems/make/custom/mo376.cfg -@@ -1,7 +1,7 @@ - # --# Config file for the mrm332 BSP -+# Config file for the mo376 BSP - # --# $Id: mrm332.cfg,v 1.8 2004/02/04 16:50:30 ralf Exp $ -+# $Id: mo376.cfg,v 1.8 2004/02/04 16:50:30 ralf Exp $ - # - - include $(RTEMS_ROOT)/make/custom/default.cfg -@@ -10,7 +10,7 @@ RTEMS_CPU=m68k +--- rtems.orig/make/custom/mo376.cfg 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/make/custom/mo376.cfg 2007-08-14 17:24:09.000000000 +0200 +@@ -10,7 +10,7 @@ RTEMS_CPU_MODEL=m68332 # This is the actual bsp directory used during the build process. @@ -351,7 +358,7 @@ Index: rtems/make/custom/mo376.cfg # This contains the compiler options necessary to select the CPU model # and (hopefully) optimize for it. -@@ -26,7 +26,7 @@ CFLAGS_OPTIMIZE_V=-O4 -fomit-frame-point +@@ -25,7 +25,7 @@ ifeq ($(MRM_IN_ROM),yes) # Build a rommable image - move the .data section after the .text section # in the image. @@ -362,9 +369,9 @@ Index: rtems/make/custom/mo376.cfg # though and greatly slows the build process so only do this if needed. Index: rtems/c/src/lib/libbsp/m68k/mo376/preinstall.am =================================================================== ---- rtems.orig/c/src/lib/libbsp/m68k/mo376/preinstall.am -+++ rtems/c/src/lib/libbsp/m68k/mo376/preinstall.am -@@ -44,9 +44,9 @@ $(PROJECT_INCLUDE)/bspopts.h: include/bs +--- rtems.orig/c/src/lib/libbsp/m68k/mo376/preinstall.am 2007-08-14 17:20:30.000000000 +0200 ++++ rtems/c/src/lib/libbsp/m68k/mo376/preinstall.am 2007-08-14 17:24:09.000000000 +0200 +@@ -44,9 +44,9 @@ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h diff --git a/rtems-patches/current/rtems-update-ss555-to-ec555.patch b/rtems-patches/current/rtems-update-ss555-to-ec555.patch index 258809c..1dbf184 100644 --- a/rtems-patches/current/rtems-update-ss555-to-ec555.patch +++ b/rtems-patches/current/rtems-update-ss555-to-ec555.patch @@ -1,20 +1,27 @@ +--- + c/src/lib/libbsp/powerpc/ec555/ChangeLog | 5 +++++ + c/src/lib/libbsp/powerpc/ec555/README | 18 +++++++++--------- + c/src/lib/libbsp/powerpc/ec555/configure.ac | 2 +- + make/custom/ec555.cfg | 6 +++--- + 4 files changed, 18 insertions(+), 13 deletions(-) + Index: rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog =================================================================== ---- rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog -+++ rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog +--- rtems.orig/c/src/lib/libbsp/powerpc/ec555/ChangeLog 2007-08-14 17:51:38.000000000 +0200 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/ChangeLog 2007-08-14 17:56:57.000000000 +0200 @@ -1,3 +1,8 @@ -+2006-06-02 Pavel Pisa ++2007-08-14 Pavel Pisa + + * EC555 BSP for Wuerz-elektronik EC555 board started + as clone of SS555 BSP. + - 2006-03-08 Joel Sherrill + 2007-04-06 Ralf Corsépius - * startup/linkcmds: Add .gnu.linkonce.b.* section. + * bsp_specs: Remove lib (Now expected to exist in GCC). Index: rtems/c/src/lib/libbsp/powerpc/ec555/README =================================================================== ---- rtems/c/src/lib/libbsp/powerpc/ec555/README -+++ rtems/c/src/lib/libbsp/powerpc/ec555/README +--- rtems.orig/c/src/lib/libbsp/powerpc/ec555/README 2007-08-14 17:51:38.000000000 +0200 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/README 2007-08-14 17:53:52.000000000 +0200 @@ -2,9 +2,9 @@ # $Id: README,v 1.1 2004/04/12 21:52:13 joel Exp $ # @@ -27,7 +34,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README Canada - Suffield, and is Copyright (C) 2004, Real-Time Systems Inc. Please send any comments, improvements, or bug reports to: -@@ -16,8 +16,8 @@ querbach@realtime.bc.ca +@@ -16,8 +16,8 @@ Summary ------- @@ -38,7 +45,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README BUS: None CPU FAMILY: PowerPC CPU: PowerPC MPC555 -@@ -88,7 +88,7 @@ RAM: 512k 2-1-1-1 burst SRAM +@@ -88,7 +88,7 @@ Installation ------------ @@ -47,7 +54,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README depending on whether or not it is built for debugging by giving the VARIANT=DEBUG switch to make: -@@ -112,7 +112,7 @@ Console driver +@@ -112,7 +112,7 @@ This BSP includes an termios-capable asynchronous serial line driver that supports SCI1 and SCI2. The RTEMS console is selected at configuration time @@ -56,7 +63,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README SCI2 for the console, since SCI1 has some extra features which may be desired for application use. -@@ -123,7 +123,7 @@ The BSP console supports three different +@@ -123,7 +123,7 @@ 3. interrupt-driven I/O with termios support. The mode of operation of the serial driver is determined at configure time in @@ -65,7 +72,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README 0 - polled I/O. 1 - interrupt-driven I/O. -@@ -208,7 +208,7 @@ from the Debian distribution. +@@ -208,7 +208,7 @@ Test Configuration ------------------ @@ -74,7 +81,7 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README CPU: Motorola MPC555LFMZP40, mask 1K83H Clock Speed: Crystal 4.0 MHz, CPU 40.0 MHz RAM: 512K bytes of 2-1-1-1 Burst SRAM -@@ -244,7 +244,7 @@ Timing tests: +@@ -244,7 +244,7 @@ OPERATION_COUNT=20 at configuration time. To run tm27 (the interrupt latency timer test), short CN5-48 to CN5-50 on @@ -85,21 +92,21 @@ Index: rtems/c/src/lib/libbsp/powerpc/ec555/README exits. This doesn't seem to cause a problem otherwise. Index: rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac =================================================================== ---- rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac -+++ rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac +--- rtems.orig/c/src/lib/libbsp/powerpc/ec555/configure.ac 2007-08-14 17:51:38.000000000 +0200 ++++ rtems/c/src/lib/libbsp/powerpc/ec555/configure.ac 2007-08-14 17:55:32.000000000 +0200 @@ -3,7 +3,7 @@ - ## $Id: configure.ac,v 1.7 2006/01/11 04:52:39 ralf Exp $ + ## $Id: configure.ac,v 1.7.2.2 2006/12/02 06:06:51 ralf Exp $ - AC_PREREQ(2.59) --AC_INIT([rtems-c-src-lib-libbsp-powerpc-mbx5xx],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) -+AC_INIT([rtems-c-src-lib-libbsp-powerpc-ec5xx],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) + AC_PREREQ(2.60) +-AC_INIT([rtems-c-src-lib-libbsp-powerpc-mbx5xx],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla]) ++AC_INIT([rtems-c-src-lib-libbsp-powerpc-ec5xx],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla]) AC_CONFIG_SRCDIR([bsp_specs]) RTEMS_TOP(../../../../../..) Index: rtems/make/custom/ec555.cfg =================================================================== ---- rtems/make/custom/ec555.cfg -+++ rtems/make/custom/ec555.cfg +--- rtems.orig/make/custom/ec555.cfg 2007-08-14 17:51:38.000000000 +0200 ++++ rtems/make/custom/ec555.cfg 2007-08-14 17:53:52.000000000 +0200 @@ -1,5 +1,5 @@ # -# Config file for an Intec Automation SS555 MPC555-based card @@ -107,7 +114,7 @@ Index: rtems/make/custom/ec555.cfg # # This file is derived from: # -@@ -15,7 +15,7 @@ GCC_CPU_MODEL=505 +@@ -15,7 +15,7 @@ RTEMS_CPU_MODEL=mpc555 # This is the actual bsp directory used during the build process. @@ -116,8 +123,8 @@ Index: rtems/make/custom/ec555.cfg # This contains the compiler options necessary to select the CPU model # and (hopefully) optimize for it. -@@ -34,7 +34,7 @@ CFLAGS_OPTIMIZE_V=-O4 -fno-keep-inline-f - CXXFLAGS_OPTIMIZE_V=-O4 +@@ -26,7 +26,7 @@ + CFLAGS_OPTIMIZE_V = -O2 -g -fno-keep-inline-functions define make-exe - $(LINK.c) $(AM_CFLAGS) $(AM_LDFLAGS) $(SS555_LDFLAGS) \ diff --git a/rtems-patches/current/rtems-usleep-type-fix.patch b/rtems-patches/current/rtems-usleep-type-fix.patch new file mode 100644 index 0000000..26726ac --- /dev/null +++ b/rtems-patches/current/rtems-usleep-type-fix.patch @@ -0,0 +1,19 @@ +--- + cpukit/posix/src/usleep.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: rtems/cpukit/posix/src/usleep.c +=================================================================== +--- rtems.orig/cpukit/posix/src/usleep.c 2007-08-15 01:51:58.000000000 +0200 ++++ rtems/cpukit/posix/src/usleep.c 2007-08-15 01:50:38.000000000 +0200 +@@ -15,8 +15,8 @@ + #include + + +-unsigned usleep( +- unsigned int useconds ++int usleep( ++ useconds_t useconds + ) + { + struct timespec tp; diff --git a/rtems-patches/current/series b/rtems-patches/current/series index 0c8755b..894cea2 100644 --- a/rtems-patches/current/series +++ b/rtems-patches/current/series @@ -1,4 +1,4 @@ -rtems-inttypes-wcs-disable-fix.patch +#rtems-inttypes-wcs-disable-fix.patch rtems-m9328-pimx1-mapping-change.patch rtems-m9328-pimx1-baud-19200.patch rtems-m9328-pimx1-syncmclk.patch @@ -10,4 +10,8 @@ rtems-clone-ss555-to-ec555.patch rtems-ec555-add-to-configs.patch rtems-update-ss555-to-ec555.patch rtems-update-ss555-to-ec555-cpld-remove.patch +rtems-usleep-type-fix.patch +rtems-readlink-type-fix.patch +rtems-m9328-pimx1-uart1to3.patch +#rtems-m5235bcc-changes.patch rtems-m9328-pimx1-uart1to3.patch -- 2.39.2