1099 | size << 2 |
1099 | size << 2 |
1100 | 0x1 << 5)); // Download request |
1100 | 0x1 << 5)); // Download request |
1101 EC_WRITE_U16(data + 3, request->index); |
1101 EC_WRITE_U16(data + 3, request->index); |
1102 EC_WRITE_U8 (data + 5, request->subindex); |
1102 EC_WRITE_U8 (data + 5, request->subindex); |
1103 memcpy(data + 6, request->data, request->data_size); |
1103 memcpy(data + 6, request->data, request->data_size); |
|
1104 memset(data + 6 + request->data_size, 0x00, 4 - request->data_size); |
1104 |
1105 |
1105 if (slave->master->debug_level) { |
1106 if (slave->master->debug_level) { |
1106 EC_DBG("Expedited download request:\n"); |
1107 EC_DBG("Expedited download request:\n"); |
1107 ec_print_data(data, 10 + request->data_size); |
1108 ec_print_data(data, 10); |
1108 } |
1109 } |
1109 } |
1110 } |
1110 else { // request->data_size > 4, use normal transfer type |
1111 else { // request->data_size > 4, use normal transfer type |
1111 if (slave->configured_rx_mailbox_size < 6 + 10 + request->data_size) { |
1112 if (slave->configured_rx_mailbox_size < 6 + 10 + request->data_size) { |
1112 EC_ERR("SDO fragmenting not supported yet!\n"); |
1113 EC_ERR("SDO fragmenting not supported yet!\n"); |