Update iotest for omap3
authorMichael Spang <mspang@csclub.uwaterloo.ca>
Tue, 3 May 2011 02:28:24 +0000 (22:28 -0400)
committerMichael Spang <mspang@csclub.uwaterloo.ca>
Tue, 3 May 2011 03:10:35 +0000 (23:10 -0400)
bwio.c
include/bwio.h
include/omap3.h [new file with mode: 0644]
include/ts7800.h [deleted file]
iotest.c
ts7800.ld

diff --git a/bwio.c b/bwio.c
index e9284b7..e38aa1d 100644 (file)
--- a/bwio.c
+++ b/bwio.c
@@ -6,7 +6,7 @@
  */
 
 #include <stdarg.h>
-#include <ts7800.h>
+#include <omap3.h>
 #include <bwio.h>
 
 void raise() {}
@@ -30,6 +30,10 @@ int bwputc(int channel, char c) {
         flags = (int *)(UART2_PHYS_BASE + UART_LSR_OFFSET);
         data = (int *)(UART2_PHYS_BASE + UART_THR_OFFSET);
         break;
+    case COM3:
+        flags = (int *)(UART3_PHYS_BASE + UART_LSR_OFFSET);
+        data = (int *)(UART3_PHYS_BASE + UART_THR_OFFSET);
+        break;
     default:
         return -1;
         break;
@@ -97,6 +101,10 @@ int bwgetc(int channel) {
         flags = (int *)(UART2_PHYS_BASE + UART_LSR_OFFSET);
         data = (int *)(UART2_PHYS_BASE + UART_RBR_OFFSET);
         break;
+    case COM3:
+        flags = (int *)(UART3_PHYS_BASE + UART_LSR_OFFSET);
+        data = (int *)(UART3_PHYS_BASE + UART_RBR_OFFSET);
+        break;
     default:
         return -1;
         break;
index 4e6fa77..05b27be 100644 (file)
@@ -4,6 +4,7 @@
 
 #define COM1   0
 #define COM2   1
+#define COM3   2
 
 #define ON     1
 #define        OFF     0
diff --git a/include/omap3.h b/include/omap3.h
new file mode 100644 (file)
index 0000000..7cee9f9
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef OMAP3_H
+#define OMAP3_H
+
+#define UART1_PHYS_BASE 0x4806a000
+#define UART2_PHYS_BASE 0x4806c000
+#define UART3_PHYS_BASE 0x49020000
+
+#define UART_RBR_OFFSET 0x00
+#define UART_THR_OFFSET 0x00
+#define UART_DLL_OFFSET 0x00
+#define UART_IER_OFFSET 0x04
+#define UART_DLH_OFFSET 0x04
+#define UART_IIR_OFFSET 0x08
+#define UART_FCR_OFFSET 0x08
+#define UART_LCR_OFFSET 0x0C
+#define UART_MCR_OFFSET 0x10
+#define UART_LSR_OFFSET 0x14
+#define UART_MSR_OFFSET 0x18
+#define UART_SCR_OFFSET 0x1C
+
+/* Line Status Register */
+#define UART_DRS_MASK  0x01 /* DataRxStat */
+#define UART_ORE_MASK  0x02 /* OverRunErr */
+#define UART_PE_MASK   0x04 /* ParErr */
+#define UART_FE_MASK   0x08 /* FrameErr */
+#define UART_BI_MASK   0x10 /* BI */
+#define UART_THRE_MASK 0x20 /* THRE */
+#define UART_TE_MASK   0x40 /* TxEmpty */
+#define UART_RFE_MASK  0x80 /* RxFIFOErr */
+
+#endif
diff --git a/include/ts7800.h b/include/ts7800.h
deleted file mode 100644 (file)
index 98b9fe4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef TS7800_H
-#define TS7800_H
-
-#define UART1_PHYS_BASE 0xf1012000
-#define UART2_PHYS_BASE 0xf1012100
-
-#define UART_RBR_OFFSET 0x00
-#define UART_THR_OFFSET 0x00
-#define UART_DLL_OFFSET 0x00
-#define UART_IER_OFFSET 0x04
-#define UART_DLH_OFFSET 0x04
-#define UART_IIR_OFFSET 0x08
-#define UART_FCR_OFFSET 0x08
-#define UART_LCR_OFFSET 0x0C
-#define UART_MCR_OFFSET 0x10
-#define UART_LSR_OFFSET 0x14
-#define UART_MSR_OFFSET 0x18
-#define UART_SCR_OFFSET 0x1C
-
-/* Line Status Register */
-#define UART_DRS_MASK  0x01 /* DataRxStat */
-#define UART_ORE_MASK  0x02 /* OverRunErr */
-#define UART_PE_MASK   0x04 /* ParErr */
-#define UART_FE_MASK   0x08 /* FrameErr */
-#define UART_BI_MASK   0x10 /* BI */
-#define UART_THRE_MASK 0x20 /* THRE */
-#define UART_TE_MASK   0x40 /* TxEmpty */
-#define UART_RFE_MASK  0x80 /* RxFIFOErr */
-
-#endif
index c1df7fd..ae18dba 100644 (file)
--- a/iotest.c
+++ b/iotest.c
@@ -3,17 +3,17 @@
   */
 
 #include <bwio.h>
-#include <ts7800.h>
+#include <omap3.h>
 
 int main(int argc, char *argv[]) {
     char *str = "Hello\r\n";
-    bwputstr(COM1, str);
-    bwputw(COM1, 10, '*', str);
-    bwprintf(COM1, "Hello world.\r\n");
-    bwprintf(COM1, "%s world%u.\r\n", "Well, hello", 23);
-    bwprintf(COM1, "%d worlds for %u person.\r\n", -23, 1);
-    bwprintf(COM1, "%x worlds for %d people.\r\n", -23, 723);
-    str[0] = bwgetc(COM1);
-    bwprintf(COM1, "You typed: %c\r\n", str[0]);
+    bwputstr(COM3, str);
+    bwputw(COM3, 10, '*', str);
+    bwprintf(COM3, "Hello world.\r\n");
+    bwprintf(COM3, "%s world%u.\r\n", "Well, hello", 23);
+    bwprintf(COM3, "%d worlds for %u person.\r\n", -23, 1);
+    bwprintf(COM3, "%x worlds for %d people.\r\n", -23, 723);
+    str[0] = bwgetc(COM3);
+    bwprintf(COM3, "You typed: %c\r\n", str[0]);
     return 0;
 }
index 02b1fcc..100a683 100644 (file)
--- a/ts7800.ld
+++ b/ts7800.ld
@@ -2,7 +2,7 @@ ENTRY(ts7800_start)
 
 SECTIONS
 {
-  . = 0x8000;
+  . = 0x80000000;
 
   .text : /* The actual instructions. */
   {