PDP11, VAX: Fix XQ DELQA-T (DELQA-Plus) mode to receive broadcast addresses
This commit is contained in:
parent
b35d36407d
commit
40d4609385
2 changed files with 9 additions and 4 deletions
|
@ -2403,8 +2403,9 @@ t_stat xq_wr_srqr_action(CTLR* xq)
|
||||||
xq->var->sanity.quarter_secs = 4*xq->var->init.hit_timeout;
|
xq->var->sanity.quarter_secs = 4*xq->var->init.hit_timeout;
|
||||||
}
|
}
|
||||||
xq->var->icr = xq->var->init.options & XQ_IN_OP_INT;
|
xq->var->icr = xq->var->init.options & XQ_IN_OP_INT;
|
||||||
status = eth_filter_hash (xq->var->etherface, 1, &xq->var->init.phys, 0, xq->var->init.mode & XQ_IN_MO_PRO, &xq->var->init.hash_filter);
|
memcpy (&xq->var->turbo_macs[0], &xq->var->init.phys, sizeof (xq->var->turbo_macs[0]));
|
||||||
|
memset (&xq->var->turbo_macs[1], 0xFF, sizeof (xq->var->turbo_macs[1])); /* LANCE explicitly also matches the broadcast address */
|
||||||
|
status = eth_filter_hash (xq->var->etherface, 2, xq->var->turbo_macs, 0, xq->var->init.mode & XQ_IN_MO_PRO, &xq->var->init.hash_filter);
|
||||||
xq->dev->dctrl = saved_debug; /* restore original debugging */
|
xq->dev->dctrl = saved_debug; /* restore original debugging */
|
||||||
}
|
}
|
||||||
/* start the read service timer or enable asynch reading as appropriate */
|
/* start the read service timer or enable asynch reading as appropriate */
|
||||||
|
@ -2925,8 +2926,11 @@ t_stat xq_attach(UNIT* uptr, CONST char* cptr)
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xq->var->mode == XQ_T_DELQA_PLUS)
|
if (xq->var->mode == XQ_T_DELQA_PLUS) {
|
||||||
eth_filter_hash (xq->var->etherface, 1, &xq->var->init.phys, 0, xq->var->init.mode & XQ_IN_MO_PRO, &xq->var->init.hash_filter);
|
memcpy (&xq->var->turbo_macs[0], &xq->var->init.phys, sizeof (xq->var->turbo_macs[0]));
|
||||||
|
memset (&xq->var->turbo_macs[1], 0xFF, sizeof (xq->var->turbo_macs[1])); /* LANCE explicitly also matches the broadcast address */
|
||||||
|
eth_filter_hash (xq->var->etherface, 2, xq->var->turbo_macs, 0, xq->var->init.mode & XQ_IN_MO_PRO, &xq->var->init.hash_filter);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
if (xq->var->setup.valid) {
|
if (xq->var->setup.valid) {
|
||||||
int i, count = 0;
|
int i, count = 0;
|
||||||
|
|
|
@ -285,6 +285,7 @@ struct xq_device {
|
||||||
uint16 pending_interrupt; /* Pending Interrupt - DELQA-T only */
|
uint16 pending_interrupt; /* Pending Interrupt - DELQA-T only */
|
||||||
struct xq_turbo_init_block
|
struct xq_turbo_init_block
|
||||||
init;
|
init;
|
||||||
|
ETH_MAC turbo_macs[2]; /* Hardware MAC address + broadcast */
|
||||||
struct transmit_buffer_descriptor
|
struct transmit_buffer_descriptor
|
||||||
xring[XQ_TURBO_XM_BCNT]; /* Transmit Buffer Ring */
|
xring[XQ_TURBO_XM_BCNT]; /* Transmit Buffer Ring */
|
||||||
uint32 tbindx; /* Transmit Buffer Ring Index */
|
uint32 tbindx; /* Transmit Buffer Ring Index */
|
||||||
|
|
Loading…
Add table
Reference in a new issue