summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2008-08-28 15:38:07 +0000
committerTill Straumann <strauman@slac.stanford.edu>2008-08-28 15:38:07 +0000
commit231680a692ab78faf7a88fbd78facc3efd502249 (patch)
tree4c78feb07968e14d323294dbb1073a69d4c10f3c
parentRegenerate. (diff)
downloadrtems-231680a692ab78faf7a88fbd78facc3efd502249.tar.bz2
2008-08-28 Till Straumann <strauman@slac.stanford.edu>
* vmeUniverse/vmeTsi148.h, vmeUniverse/vmeTsi148.c: added vmeTsi148ResetBusXX(), vmeTsi148ResetBus().
-rw-r--r--c/src/lib/libbsp/shared/ChangeLog9
-rw-r--r--c/src/lib/libbsp/shared/vmeUniverse/VME.h4
-rw-r--r--c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.c31
-rw-r--r--c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.h12
4 files changed, 54 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/shared/ChangeLog b/c/src/lib/libbsp/shared/ChangeLog
index 2db7ddf2f6..5123ad7808 100644
--- a/c/src/lib/libbsp/shared/ChangeLog
+++ b/c/src/lib/libbsp/shared/ChangeLog
@@ -1,3 +1,12 @@
+2008-08-28 Till Straumann <strauman@slac.stanford.edu>
+
+ * vmeUniverse/vmeTsi148.h, vmeUniverse/vmeTsi148.c:
+ added vmeTsi148ResetBusXX(), vmeTsi148ResetBus().
+
+2008-08-28 Till Straumann <strauman@slac.stanford.edu>
+
+ * vmeUniverse/VME.h: added BSP_VMEResetBus().
+
2008-08-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
* src/irq-generic.c: Fixed integer conversion warnings.
diff --git a/c/src/lib/libbsp/shared/vmeUniverse/VME.h b/c/src/lib/libbsp/shared/vmeUniverse/VME.h
index d2d7adcedc..0d03743f19 100644
--- a/c/src/lib/libbsp/shared/vmeUniverse/VME.h
+++ b/c/src/lib/libbsp/shared/vmeUniverse/VME.h
@@ -110,4 +110,8 @@ BSP_VMEOutboundPortsShow(FILE *f);
void
BSP_VMEInboundPortsShow(FILE *f);
+/* Assert VME SYSRESET */
+void
+BSP_VMEResetBus(void);
+
#endif
diff --git a/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.c b/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.c
index e3a5e35af3..cebb29e073 100644
--- a/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.c
+++ b/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.c
@@ -168,6 +168,18 @@
# define TSI_VMCTRL_VREQL_MSK (3<< 0)
# define TSI_VMCTRL_VREQL(x) ((x)&3)
+#define TSI_VCTRL_REG 0x238
+#define TSI_VCTRL_DLT_MSK (0xf<<24)
+#define TSI_VCTRL_NELBB (1<<20)
+#define TSI_VCTRL_SRESET (1<<17)
+#define TSI_VCTRL_LRESET (1<<16)
+#define TSI_VCTRL_SFAILAI (1<<15)
+#define TSI_VCTRL_BID_MSK (0x1f<<8)
+#define TSI_VCTRL_ATOEN (1<< 7)
+#define TSI_VCTRL_ROBIN (1<< 6)
+#define TSI_VCTRL_GTO_MSK (7<< 0)
+
+
#define TSI_VSTAT_REG 0x23c
# define TSI_VSTAT_CPURST (1<<15) /* clear power-up reset bit */
# define TSI_VSTAT_BDFAIL (1<<14)
@@ -530,6 +542,25 @@ vmeTsi148Reset()
vmeTsi148ResetXX(THEBASE);
}
+void
+vmeTsi148ResetBusXX(BERegister *base)
+{
+unsigned long flags;
+uint32_t v;
+
+ rtems_interrupt_disable(flags);
+ v = TSI_RD(base, TSI_VCTRL_REG);
+ TSI_WR(base, TSI_VCTRL_REG, v | TSI_VCTRL_SRESET);
+ rtems_interrupt_enable(flags);
+}
+
+void
+vmeTsi148ResetBus(void)
+{
+ vmeTsi148ResetBusXX(THEBASE);
+}
+
+
/* convert an address space selector to a corresponding
* Tsi148 control mode word
*/
diff --git a/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.h b/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.h
index 48133f7734..16c3c16537 100644
--- a/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.h
+++ b/c/src/lib/libbsp/shared/vmeUniverse/vmeTsi148.h
@@ -108,16 +108,24 @@ vmeTsi148InitInstance(unsigned instance);
int
vmeTsi148Init(void);
-/* setup the tsi148 chip, i.e. disable most of its
+/* Setup the tsi148 chip, i.e. disable most of its
* mappings, reset interrupts etc.
*/
void
vmeTsi148ResetXX(BERegister *base);
-/* setup the tsi148 connected to the first driver slot */
+/* Setup the tsi148 connected to the first driver slot */
void
vmeTsi148Reset();
+/* Pull VME SYSRESET line */
+void
+vmeTsi148ResetBusXX(BERegister *base);
+
+/* Pull VME SYSRESET line of the 1st controller */
+void
+vmeTsi148ResetBus(void);
+
/* NOTE: all non-'XX' versions of driver entry points which
* have an associated 'XX' entry point operate on the
* device connected to the 1st driver slot.