summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/mpc821/include/console.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-04-07 15:57:05 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-04-07 15:57:05 +0000
commit3084de251365100266522ed0166a2aa2e3cdc714 (patch)
tree88c17ba84bdb223033fb5f441e417f8aef4e0837 /c/src/lib/libcpu/powerpc/mpc821/include/console.h
parentchanged version to 19990406 (diff)
downloadrtems-3084de251365100266522ed0166a2aa2e3cdc714.tar.bz2
MPC821 support and PPC patches from Andrew Bray <andy@madhouse.demon.co.uk>:
In c/src/exec/score/cpu/powerpc/rtems/score/ppc.h: A lot of hardware interrupts were omitted. Patch enclosed. I have also added the 821. In c/src/exec/score/cpu/powerpc/rtems/score/cpu.h: My patch adds the 821. In c/src/exec/score/cpu/powerpc/cpu.c: I have added the MPC821, and also fixed up for the missing hardware interrupts. It is also inconsistent with c/src/lib/libcpu/powerpc/mpc860/vectors/vectors.S. This has been fixed. In c/src/lib/libcpu/powerpc/mpc860/vectors/vectors.S: Fixed an inconsistency with cpu.c. I also include some new files to go with the above patches. These are the cpu library rtems-19990331/c/src/lib/libcpu/powerpc/mpc821/* and c/src/exec/score/cpu/powerpc/mpc821.h which are minor modifications of the 860 equivalents. Other comments: The various accesses to the DPRAM on the 860 are done with a linktime symbol. This could be done dynamically at run time by reading the immr register, and masking off the lower 16 bits. This takes the same amount of time as loading an address constant, and the same number of instructions as well (2). In c/src/lib/libcpu/powerpc/mpc860/console-generic/console-generic.c: This will silently fail if you attempt to use SCC1. This is only relevant if you are not using SCC1 for ethernet. This file also sets one of port B output pins for each port. This is NOT generic, it should be in the BSP specific console driver.
Diffstat (limited to 'c/src/lib/libcpu/powerpc/mpc821/include/console.h')
-rw-r--r--c/src/lib/libcpu/powerpc/mpc821/include/console.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc821/include/console.h b/c/src/lib/libcpu/powerpc/mpc821/include/console.h
new file mode 100644
index 0000000000..8885abeadc
--- /dev/null
+++ b/c/src/lib/libcpu/powerpc/mpc821/include/console.h
@@ -0,0 +1,44 @@
+/*
+ * $Id$
+ */
+
+#ifndef _M821_CONSOLE_H_
+#define _M821_CONSOLE_H_
+
+#include <rtems/libio.h>
+
+int m821_smc_set_attributes(int, const struct termios*);
+int m821_scc_set_attributes(int, const struct termios*);
+void m821_scc_initialize(int);
+void m821_smc_initialize(int);
+int m821_char_poll_read(int);
+int m821_char_poll_write(int, const char*, int);
+rtems_isr m821_scc1_console_interrupt_handler(rtems_vector_number);
+rtems_isr m821_scc2_console_interrupt_handler(rtems_vector_number);
+rtems_isr m821_smc1_console_interrupt_handler(rtems_vector_number);
+rtems_isr m821_smc2_console_interrupt_handler(rtems_vector_number);
+int m821_buf_poll_read(int, char**);
+int m821_buf_poll_write(int, char*, int);
+void m821_console_initialize(void);
+rtems_device_driver m821_console_read(rtems_device_major_number,
+ rtems_device_minor_number,
+ void*);
+rtems_device_driver m821_console_write(rtems_device_major_number,
+ rtems_device_minor_number,
+ void*);
+
+
+typedef struct Buf_t_ {
+ struct Buf_t_ *next;
+ volatile char *buf;
+ volatile int len;
+ int pos;
+} Buf_t;
+
+#define SMC1_MINOR 0
+#define SMC2_MINOR 1
+#define SCC1_MINOR 2
+#define SCC2_MINOR 3
+
+
+#endif