Index: c/src/lib/libchip/Makefile.in
===================================================================
--- c/src/lib/libchip/Makefile.in	(revision 30cde042bba5a018bb0e47f3c6c4e93cc372bb67)
+++ c/src/lib/libchip/Makefile.in	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
@@ -12,3 +12,3 @@
 include $(RTEMS_ROOT)/make/directory.cfg
 
-SUB_DIRS=serial
+SUB_DIRS=rtc serial
Index: c/src/lib/libchip/rtc/Makefile.in
===================================================================
--- c/src/lib/libchip/rtc/Makefile.in	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
+++ c/src/lib/libchip/rtc/Makefile.in	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
@@ -0,0 +1,55 @@
+#
+#  $Id$
+#
+
+@SET_MAKE@
+srcdir = @srcdir@
+VPATH = @srcdir@
+RTEMS_ROOT = @top_srcdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+LIBNAME=librtcio.a
+LIB=${ARCH}/${LIBNAME}
+
+C_PIECES=\
+
+C_FILES=$(C_PIECES:%=%.c)
+C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
+
+INSTALLED_H_FILES=$(srcdir)/rtc.h
+SRCS=$(C_FILES) $(H_FILES) $(SYS_H_FILES) $(RTEMS_H_FILES) $(PRIVATE_H_FILES)
+OBJS=$(C_O_FILES)
+
+include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
+include $(RTEMS_ROOT)/make/lib.cfg
+
+#
+# Add local stuff here using +=
+#
+
+DEFINES  +=
+CPPFLAGS +=
+CFLAGS   += $(LIBC_DEFINES)
+
+#
+# Add your list of files to delete here.  The config files
+#  already know how to delete some stuff, so you may want
+#  to just run 'make clean' first to see what gets missed.
+#  'make clobber' already includes 'make clean'
+#
+
+CLEAN_ADDITIONS += $(LIB)
+CLOBBER_ADDITIONS +=
+
+all:	${ARCH} preinstall $(LIB)
+	$(INSTALL_VARIANT) -m 644 ${LIB} ${PROJECT_RELEASE}/lib
+
+$(LIB): $(SRCS) ${OBJS}
+	$(make-library)
+
+# Install the library, appending _g or _p as appropriate.
+# for include files, just use $(INSTALL)
+preinstall:
+	$(INSTALL) -m 444 $(INSTALLED_H_FILES) $(PROJECT_INCLUDE)/libchip
+
+
Index: c/src/lib/libchip/rtc/rtc.h
===================================================================
--- c/src/lib/libchip/rtc/rtc.h	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
+++ c/src/lib/libchip/rtc/rtc.h	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
@@ -0,0 +1,83 @@
+/*
+ *  This file contains the Real-Time Clock definitions.
+ *
+ *  COPYRIGHT (c) 1989-1998.
+ *  On-Line Applications Research Corporation (OAR).
+ *  Copyright assigned to U.S. Government, 1994.
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.OARcorp.com/rtems/license.html.
+ *
+ *
+ *  $Id$
+ */
+
+#ifndef __LIBCHIP_RTC_h
+#define __LIBCHIP_RTC_h
+
+/*
+ *  Types for get and set register routines
+ */
+
+typedef unsigned8 (*getRegister_f)(unsigned32 port, unsigned8 register);
+typedef void      (*setRegister_f)(
+                            unsigned32 port, unsigned8 reg, unsigned8 value);
+typedef unsigned8 (*getData_f)(unsigned32 port);
+typedef void      (*setData_f)(unsigned32 port, unsigned8 value);
+
+typedef struct _rtc_fns {
+  boolean (*deviceProbe)(int minor);
+  void    (*deviceInitialize)(int minor);
+  int     (*deviceGetTime)(int minor, rtems_time_of_day *time);
+  int     (*deviceSetTime)(int minor, rtems_time_of_day *time);
+} rtc_fns;
+
+typedef enum {
+  RTC_M48T08,                  /* SGS-Thomsom M48T08 or M48T18 */
+  RTC_ICM_7170,                /* Harris ICM-7170 */
+  RTC_CUSTOM                   /* BSP specific driver */
+} rtc_devs;
+
+/*
+ * Each field is interpreted thus:
+ * 
+ * sDeviceName  This is the name of the device. 
+ *
+ * deviceType   This indicates the chip type.
+ *
+ * pDeviceFns   This is a pointer to the set of driver routines to use.
+ *
+ * pDeviceParams This contains either device specific data or a pointer to a
+ *              device specific information table.
+ *
+ * ulCtrlPort1  This is the primary control port number for the device.
+ *
+ * ulCtrlPort2  This is the secondary control port number.
+ *
+ * ulDataPort   This is the port number for the data port of the device
+ *
+ * getRegister  This is the routine used to read register values.
+ *
+ * setRegister  This is the routine used to write register values.
+ */
+
+typedef struct _rtc_tbl {
+  char          *sDeviceName;
+  rtc_devs       deviceType;
+  rtc_fns       *pDeviceFns;
+  boolean      (*deviceProbe)(int minor);
+  void          *pDeviceParams;
+  unsigned32     ulCtrlPort1;
+  unsigned32     ulCtrlPort2;
+  unsigned32     ulDataPort;
+  getRegister_f  getRegister;
+  setRegister_f  setRegister;
+  unsigned int   ulIntVector;
+} rtc_tbl;
+
+extern rtc_tbl        RTC_Port_Tbl[];
+extern unsigned long  RTC_Port_Count;
+
+#endif
+/* end of include file */
Index: c/src/libchip/rtc/Makefile.in
===================================================================
--- c/src/libchip/rtc/Makefile.in	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
+++ c/src/libchip/rtc/Makefile.in	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
@@ -0,0 +1,55 @@
+#
+#  $Id$
+#
+
+@SET_MAKE@
+srcdir = @srcdir@
+VPATH = @srcdir@
+RTEMS_ROOT = @top_srcdir@
+PROJECT_ROOT = @PROJECT_ROOT@
+
+LIBNAME=librtcio.a
+LIB=${ARCH}/${LIBNAME}
+
+C_PIECES=\
+
+C_FILES=$(C_PIECES:%=%.c)
+C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
+
+INSTALLED_H_FILES=$(srcdir)/rtc.h
+SRCS=$(C_FILES) $(H_FILES) $(SYS_H_FILES) $(RTEMS_H_FILES) $(PRIVATE_H_FILES)
+OBJS=$(C_O_FILES)
+
+include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
+include $(RTEMS_ROOT)/make/lib.cfg
+
+#
+# Add local stuff here using +=
+#
+
+DEFINES  +=
+CPPFLAGS +=
+CFLAGS   += $(LIBC_DEFINES)
+
+#
+# Add your list of files to delete here.  The config files
+#  already know how to delete some stuff, so you may want
+#  to just run 'make clean' first to see what gets missed.
+#  'make clobber' already includes 'make clean'
+#
+
+CLEAN_ADDITIONS += $(LIB)
+CLOBBER_ADDITIONS +=
+
+all:	${ARCH} preinstall $(LIB)
+	$(INSTALL_VARIANT) -m 644 ${LIB} ${PROJECT_RELEASE}/lib
+
+$(LIB): $(SRCS) ${OBJS}
+	$(make-library)
+
+# Install the library, appending _g or _p as appropriate.
+# for include files, just use $(INSTALL)
+preinstall:
+	$(INSTALL) -m 444 $(INSTALLED_H_FILES) $(PROJECT_INCLUDE)/libchip
+
+
Index: c/src/libchip/rtc/rtc.h
===================================================================
--- c/src/libchip/rtc/rtc.h	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
+++ c/src/libchip/rtc/rtc.h	(revision 07e91808932ecc3cb8e25dc3d618debd5e2db6fb)
@@ -0,0 +1,83 @@
+/*
+ *  This file contains the Real-Time Clock definitions.
+ *
+ *  COPYRIGHT (c) 1989-1998.
+ *  On-Line Applications Research Corporation (OAR).
+ *  Copyright assigned to U.S. Government, 1994.
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.OARcorp.com/rtems/license.html.
+ *
+ *
+ *  $Id$
+ */
+
+#ifndef __LIBCHIP_RTC_h
+#define __LIBCHIP_RTC_h
+
+/*
+ *  Types for get and set register routines
+ */
+
+typedef unsigned8 (*getRegister_f)(unsigned32 port, unsigned8 register);
+typedef void      (*setRegister_f)(
+                            unsigned32 port, unsigned8 reg, unsigned8 value);
+typedef unsigned8 (*getData_f)(unsigned32 port);
+typedef void      (*setData_f)(unsigned32 port, unsigned8 value);
+
+typedef struct _rtc_fns {
+  boolean (*deviceProbe)(int minor);
+  void    (*deviceInitialize)(int minor);
+  int     (*deviceGetTime)(int minor, rtems_time_of_day *time);
+  int     (*deviceSetTime)(int minor, rtems_time_of_day *time);
+} rtc_fns;
+
+typedef enum {
+  RTC_M48T08,                  /* SGS-Thomsom M48T08 or M48T18 */
+  RTC_ICM_7170,                /* Harris ICM-7170 */
+  RTC_CUSTOM                   /* BSP specific driver */
+} rtc_devs;
+
+/*
+ * Each field is interpreted thus:
+ * 
+ * sDeviceName  This is the name of the device. 
+ *
+ * deviceType   This indicates the chip type.
+ *
+ * pDeviceFns   This is a pointer to the set of driver routines to use.
+ *
+ * pDeviceParams This contains either device specific data or a pointer to a
+ *              device specific information table.
+ *
+ * ulCtrlPort1  This is the primary control port number for the device.
+ *
+ * ulCtrlPort2  This is the secondary control port number.
+ *
+ * ulDataPort   This is the port number for the data port of the device
+ *
+ * getRegister  This is the routine used to read register values.
+ *
+ * setRegister  This is the routine used to write register values.
+ */
+
+typedef struct _rtc_tbl {
+  char          *sDeviceName;
+  rtc_devs       deviceType;
+  rtc_fns       *pDeviceFns;
+  boolean      (*deviceProbe)(int minor);
+  void          *pDeviceParams;
+  unsigned32     ulCtrlPort1;
+  unsigned32     ulCtrlPort2;
+  unsigned32     ulDataPort;
+  getRegister_f  getRegister;
+  setRegister_f  setRegister;
+  unsigned int   ulIntVector;
+} rtc_tbl;
+
+extern rtc_tbl        RTC_Port_Tbl[];
+extern unsigned long  RTC_Port_Count;
+
+#endif
+/* end of include file */
