---
 c/src/lib/libbsp/sparc/shared/1553/b1553brm.c    |   23 ++++++++++++++++++++-
 c/src/lib/libbsp/sparc/shared/include/b1553brm.h |    8 +++++++
 2 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c 
b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
index 19ad36c..6ec5d64 100644
--- a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
+++ b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
@@ -596,6 +596,25 @@ static void clr_int_logs(struct irq_log_list *logs){
        }
 }
 
+unsigned short b1553brm_rt_cmd_legalize[16] = {
+       0,
+       0,
+       0,
+       0,
+       0,
+       0,
+       0xffff,
+       0xffff,
+       0xffff,
+       0xfffd,
+       0xfe01,
+       0xfff2,
+       0xffff,
+       0xfffd,
+       0xfe05,
+       0xffff,
+};
+
 static rtems_device_driver rt_init(brm_priv *brm) {
        unsigned int i;
 
@@ -633,9 +652,9 @@ static rtems_device_driver rt_init(brm_priv *brm) {
                
        clr_int_logs(brm->irq_log);
 
-       /* Legalize all commands */
+       /* Initialize the Legalize register with standard values */
        for (i = 0; i < 16; i++) {
-               brm->regs->rt_cmd_leg[i] = 0;
+               brm->regs->rt_cmd_leg[i] = b1553brm_rt_cmd_legalize[i];
        }
 
        /* Init descriptor table 
diff --git a/c/src/lib/libbsp/sparc/shared/include/b1553brm.h 
b/c/src/lib/libbsp/sparc/shared/include/b1553brm.h
index 1c3b38b..49b2a21 100644
--- a/c/src/lib/libbsp/sparc/shared/include/b1553brm.h
+++ b/c/src/lib/libbsp/sparc/shared/include/b1553brm.h
@@ -154,6 +154,14 @@ struct bc_msg {
 
 void b1553brm_register_drv(void);
 
+/* Default initialization of the RT legalization registers. The values in this
+ * array are written to the registers on boot driver initialization and when
+ * the user set the mode to RT-mode by calling ioctl(BRM_SET_MODE). Thus,
+ * update the array first then call ioctl(BRM_SET_MODE) for the changes to have
+ * an affect. Note that this affects all B1553BRM RTs in the system.
+ */
+extern unsigned short b1553brm_rt_cmd_legalize[16];
+
 #ifdef __cplusplus
 }
 #endif
-- 
1.7.0.4

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to