summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared/include/b1553rt.h
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2015-02-23 13:02:39 +0100
committerDaniel Hellstrom <daniel@gaisler.com>2015-04-17 01:10:17 +0200
commit3bb41226e0941b86d58ecb97f7d292677de573c8 (patch)
tree907aa270343f7c6d1bc08bf73288fb9b10da6197 /c/src/lib/libbsp/sparc/shared/include/b1553rt.h
parentLEON: added network device configuration helper function (diff)
downloadrtems-3bb41226e0941b86d58ecb97f7d292677de573c8.tar.bz2
LEON: added new drivers to the LEON2/LEON3 BSPs
Most drivers use the Driver Manager for device probing, they work on AMBA-over-PCI systems if PCI is big-endian. New APIs: * GPIO Library, interfaced to GRGPIO * GENIRQ, Generic interrupt service implementation helper New GRLIB Drivers: * ACTEL 1553 RT, user interface is similar to 1553 BRM driver * GR1553 (1553 BC, RT and BM core) * AHBSTAT (AHB error status core) * GRADCDAC (Core interfacing to ADC/DAC hardware) * GRGPIO (GPIO port accessed from GPIO Library) * MCTRL (Memory controller settings configuration) * GRETH (10/100/1000 Ethernet driver using Driver manager) * GRPWM (Pulse Width Modulation core) * SPICTRL (SPI master interface) * GRSPW_ROUTER (SpaceWire Router AMBA configuration interface) * GRCTM (SpaceCraft on-board Time Management core) * SPWCUC (Time distribution over SpaceWire) * GRTC (SpaceCraft up-link Tele core) * GRTM (SpaceCraft down-link Tele Metry core) GR712RC ASIC specific interfaces: * GRASCS * CANMUX (select between OCCAN and SATCAN) * SATCAN * SLINK
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/b1553rt.h')
-rw-r--r--c/src/lib/libbsp/sparc/shared/include/b1553rt.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/b1553rt.h b/c/src/lib/libbsp/sparc/shared/include/b1553rt.h
new file mode 100644
index 0000000000..94b5afdbff
--- /dev/null
+++ b/c/src/lib/libbsp/sparc/shared/include/b1553rt.h
@@ -0,0 +1,74 @@
+/* B1553RT driver interface
+ *
+ * COPYRIGHT (c) 2009.
+ * Aeroflex Gaisler AB
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef __B1553RT_H__
+#define __B1553RT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct rt_reg {
+ volatile unsigned int stat; /* 0x00 */
+ volatile unsigned int ctrl; /* 0x04 */
+ volatile unsigned int vword; /* 0x08 */
+ volatile unsigned int irq; /* 0x0C */
+ volatile unsigned int addr; /* 0x10 */
+ volatile unsigned int ipm; /* 0x14 */
+};
+
+
+struct rt_msg {
+ unsigned short miw;
+ unsigned short time;
+ unsigned short data[32];
+ unsigned short desc;
+};
+
+#define RT_FREQ_12MHZ 0
+#define RT_FREQ_16MHZ 1
+#define RT_FREQ_20MHZ 2
+#define RT_FREQ_24MHZ 3
+#define RT_FREQ_MASK 0x3
+
+/* IOCTLs */
+#define RT_SET_ADDR 3
+#define RT_SET_BCE 5
+#define RT_RX_BLOCK 8
+#define RT_CLR_STATUS 12
+#define RT_GET_STATUS 13
+#define RT_SET_EVENTID 14
+
+#define RT_SET_VECTORW 32
+#define RT_SET_EXTMDATA 33
+
+#define RT_ILLCMD_IRQ 128
+#define RT_MERR_IRQ 2048
+#define RT_DMAF_IRQ 32768 /* DMA Fail irq */
+
+#define RT_TSW_OK (1<<14)
+#define RT_TSW_BUS (1<<13)
+#define RT_TSW_BC (1<<12)
+#define RT_TSW_LPBKERRB (1<<11)
+#define RT_TSW_LPBKERRA (1<<10)
+#define RT_TSW_ILL (1<<9)
+#define RT_TSW_MEM (1<<8)
+#define RT_TSW_MAN (1<<7)
+#define RT_TSW_PAR (1<<6)
+#define RT_TSW_WC (1<<5)
+
+void b1553rt_register_drv(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __RT_H__ */
+