This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
eSCI patch [was Re: Freescale unified driver]
Here is the patch. I have moved some platform dependent macros from
serial header (ser_esci.h) to var_io.h
Also added a note in ser_esci.h.
I would like to produce some text on how to write platform independent
drivers for ecos. With my ecos "experience" i don't expect it to be
perfect but I count on community critics.
Ilija
diff -r -U 5 -N -x CVS -x '*~' -x '.#*' clean/ecos/packages/devs/serial/freescale/esci/current/ChangeLog devo/ecos/packages/devs/serial/freescale/esci/current/ChangeLog
--- clean/ecos/packages/devs/serial/freescale/esci/current/ChangeLog 2006-05-31 21:16:24.000000000 +0200
+++ devo/ecos/packages/devs/serial/freescale/esci/current/ChangeLog 2006-08-08 09:22:19.000000000 +0200
@@ -1,5 +1,10 @@
+2006-08-08 Ilija Koco <ilijak@siva.com.mk>
+
+ * ser_esci.h : platform dependent clock related macros
+ removed and placed in platform/var header
+
2006-05-24 Ilija Koco <ilijak@siva.com.mk>
* cdl/ser_freescale_esci.cdl:
* include/ser_esci.h:
* src/ser_esci.c
diff -r -U 5 -N -x CVS -x '*~' -x '.#*' clean/ecos/packages/devs/serial/freescale/esci/current/include/ser_esci.h devo/ecos/packages/devs/serial/freescale/esci/current/include/ser_esci.h
--- clean/ecos/packages/devs/serial/freescale/esci/current/include/ser_esci.h 2006-05-31 21:16:24.000000000 +0200
+++ devo/ecos/packages/devs/serial/freescale/esci/current/include/ser_esci.h 2006-08-08 09:35:51.379006640 +0200
@@ -48,14 +48,31 @@
//
//
//####DESCRIPTIONEND####
//==========================================================================
-#define CYGNUM_DEV_SER_FREESCALE_ESCI_SYSTEM_CLOCK \
- (CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED/2)
-#define FREESCALE_ESCI_BAUD(baud_rate) \
- ((CYGNUM_DEV_SER_FREESCALE_ESCI_SYSTEM_CLOCK)/(baud_rate*16))
+// Note: Following macros are platform dependent
+// and have to be defined in var_io.h or plf_io.h
+// Macros referenced by serial driver:
+// CYGADDR_IO_SERIAL_FREESCALE_ESCI_A_BASE
+// CYGADDR_IO_SERIAL_FREESCALE_ESCI_B_BASE
+// CYGADDR_IO_SERIAL_FREESCALE_ESCI_C_BASE
+// CYGADDR_IO_SERIAL_FREESCALE_ESCI_D_BASE
+// CYGNUM_DEV_SER_FREESCALE_ESCI_SYSTEM_CLOCK
+// FREESCALE_ESCI_BAUD(baud_rate)
+
+// Macros not referenced by serial driver
+// but by interrupt controller
+// CYGNUM_IO_SERIAL_FREESCALE_ESCI_A_INT_VECTOR
+// CYGNUM_IO_SERIAL_FREESCALE_ESCI_B_INT_VECTOR
+// CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_INT_VECTOR
+// CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_INT_VECTOR
+// MAC7100_ESCI_A_IV
+// MAC7100_ESCI_B_IV
+// MAC7100_ESCI_C_IV
+// MAC7100_ESCI_D_IV
+//
#define FREESCALE_ESCI_A_BASE (CYGADDR_IO_SERIAL_FREESCALE_ESCI_A_BASE)
#define FREESCALE_ESCI_B_BASE (CYGADDR_IO_SERIAL_FREESCALE_ESCI_B_BASE)
#define FREESCALE_ESCI_C_BASE (CYGADDR_IO_SERIAL_FREESCALE_ESCI_C_BASE)
#define FREESCALE_ESCI_D_BASE (CYGADDR_IO_SERIAL_FREESCALE_ESCI_D_BASE)
diff -r -U 5 -N -x CVS -x '*~' -x '.#*' clean/ecos/packages/hal/arm/mac7100/var/current/ChangeLog devo/ecos/packages/hal/arm/mac7100/var/current/ChangeLog
--- clean/ecos/packages/hal/arm/mac7100/var/current/ChangeLog 2006-06-18 19:05:27.000000000 +0200
+++ devo/ecos/packages/hal/arm/mac7100/var/current/ChangeLog 2006-08-08 09:22:14.000000000 +0200
@@ -1,5 +1,10 @@
+2006-08-08 Ilija Koco <ilijak@siva.com.mk>
+
+ * var_io.h: Freescale eSCI platform dependent clock related macros
+ moved here from ser_esci.h
+
2006-06-08 Ilija Koco <ilijak@siva.com.mk>
* hal_var_setup.h: (new) Assembly macros shared between targets.
* cdl/hal_arm_mac7100.cdl: some defaults changed in favour of
MAC7100EVB
diff -r -U 5 -N -x CVS -x '*~' -x '.#*' clean/ecos/packages/hal/arm/mac7100/var/current/include/var_io.h devo/ecos/packages/hal/arm/mac7100/var/current/include/var_io.h
--- clean/ecos/packages/hal/arm/mac7100/var/current/include/var_io.h 2006-05-31 21:17:51.000000000 +0200
+++ devo/ecos/packages/hal/arm/mac7100/var/current/include/var_io.h 2006-08-08 09:11:24.000000000 +0200
@@ -182,10 +182,16 @@
#define CYGNUM_IO_SERIAL_FREESCALE_ESCI_C_INT_VECTOR MAC7100_ESCI_C_IV
#define CYGADDR_IO_SERIAL_FREESCALE_ESCI_D_BASE 0xFC0D0000
#define CYGNUM_IO_SERIAL_FREESCALE_ESCI_D_INT_VECTOR MAC7100_ESCI_D_IV
+#define CYGNUM_DEV_SER_FREESCALE_ESCI_SYSTEM_CLOCK \
+ (CYGNUM_HAL_ARM_MAC7100_CLOCK_SPEED/2)
+#define FREESCALE_ESCI_BAUD(baud_rate) \
+ ((CYGNUM_DEV_SER_FREESCALE_ESCI_SYSTEM_CLOCK)/(baud_rate*16))
+
+
// *********************************************************************
//
// PIT Module
//
// *********************************************************************