--- a/master/fsm_slave_config.c Tue Jan 20 08:04:50 2009 +0000
+++ b/master/fsm_slave_config.c Tue Jan 20 09:55:32 2009 +0000
@@ -373,6 +373,10 @@
ec_sync_page(&sync, 0, slave->sii.boot_rx_mailbox_size,
EC_DIR_INVALID, // use default direction
datagram->data);
+ slave->configured_rx_mailbox_offset =
+ slave->sii.boot_rx_mailbox_offset;
+ slave->configured_rx_mailbox_size =
+ slave->sii.boot_rx_mailbox_size;
ec_sync_init(&sync, slave);
sync.physical_start_address = slave->sii.boot_tx_mailbox_offset;
@@ -381,6 +385,11 @@
ec_sync_page(&sync, 1, slave->sii.boot_tx_mailbox_size,
EC_DIR_INVALID, // use default direction
datagram->data + EC_SYNC_PAGE_SIZE);
+ slave->configured_tx_mailbox_offset =
+ slave->sii.boot_tx_mailbox_offset;
+ slave->configured_tx_mailbox_size =
+ slave->sii.boot_tx_mailbox_size;
+
} else if (slave->sii.sync_count >= 2) { // mailbox configuration provided
ec_datagram_fpwr(datagram, slave->station_address, 0x0800,
EC_SYNC_PAGE_SIZE * slave->sii.sync_count);
@@ -393,6 +402,15 @@
EC_DIR_INVALID, // use default direction
datagram->data + EC_SYNC_PAGE_SIZE * i);
}
+
+ slave->configured_rx_mailbox_offset =
+ slave->sii.syncs[0].physical_start_address;
+ slave->configured_rx_mailbox_size =
+ slave->sii.syncs[0].default_length;
+ slave->configured_tx_mailbox_offset =
+ slave->sii.syncs[1].physical_start_address;
+ slave->configured_tx_mailbox_size =
+ slave->sii.syncs[1].default_length;
} else { // no mailbox sync manager configurations provided
ec_sync_t sync;
@@ -412,6 +430,10 @@
ec_sync_page(&sync, 0, slave->sii.std_rx_mailbox_size,
EC_DIR_INVALID, // use default direction
datagram->data);
+ slave->configured_rx_mailbox_offset =
+ slave->sii.std_rx_mailbox_offset;
+ slave->configured_rx_mailbox_size =
+ slave->sii.std_rx_mailbox_size;
ec_sync_init(&sync, slave);
sync.physical_start_address = slave->sii.std_tx_mailbox_offset;
@@ -420,6 +442,10 @@
ec_sync_page(&sync, 1, slave->sii.std_tx_mailbox_size,
EC_DIR_INVALID, // use default direction
datagram->data + EC_SYNC_PAGE_SIZE);
+ slave->configured_tx_mailbox_offset =
+ slave->sii.boot_tx_mailbox_offset;
+ slave->configured_tx_mailbox_size =
+ slave->sii.boot_tx_mailbox_size;
}
fsm->retries = EC_FSM_RETRIES;