B1553BRM: change the init of the RT legalization registers

This commit is contained in:
Daniel Hellstrom
2014-08-08 09:59:36 +02:00
parent d2a94ab97f
commit fed905c8c7
2 changed files with 29 additions and 2 deletions

View File

@@ -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

View File

@@ -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