USB communication working

This commit is contained in:
Martijn de Vos committed 2025-02-19 19:33:07 +01:00
1 parent aa88deb054
commit fd6f1e0ed9
2 files changed
+13 -7

No files matched your search

+11 -5
View File
@@ -95,7 +95,7 @@ static void synopsys_usb_update_in_ep(synopsys_usb_state *_state, uint8_t _ep)
synopsys_usb_update_ep(_state, eps);
if(eps->control & USB_EPCON_ENABLE)
;//printf("USB: IN transfer queued on %d.\n", _ep);
;printf("USB: IN transfer queued on %d.\n", _ep);
}
static void synopsys_usb_update_out_ep(synopsys_usb_state *_state, uint8_t _ep)
@@ -158,7 +158,7 @@ static int synopsys_usb_tcp_callback(tcp_usb_state_t *_state, void *_arg, tcp_us
if(txfs + txfz > sizeof(state->fifos))
hw_error("usb_synopsys: USB transfer would overflow FIFO buffer!\n");
//printf("USB: Starting IN transfer on EP %d (%d)...\n", ep, amtDone);
printf("USB: Starting IN transfer on EP %d (%d bytes)...\n", ep, amtDone);
if(amtDone > 0)
{
@@ -171,7 +171,7 @@ static int synopsys_usb_tcp_callback(tcp_usb_state_t *_state, void *_arg, tcp_us
memcpy(_buffer, (char*)&state->fifos[txfs], amtDone);
}
//printf("USB: IN transfer complete!\n");
printf("USB: IN transfer complete!\n");
eps->tx_size = (eps->tx_size &~ DEPTSIZ_XFERSIZ_MASK)
| ((sz-amtDone) & DEPTSIZ_XFERSIZ_MASK);
@@ -183,8 +183,10 @@ static int synopsys_usb_tcp_callback(tcp_usb_state_t *_state, void *_arg, tcp_us
ret = USB_RET_NAK;
}
else // OUT
{
{
synopsys_usb_ep_state *eps = &state->out_eps[ep];
printf("EPS control: %d\n", eps->control);
if(eps->control & USB_EPCON_STALL)
{
@@ -209,7 +211,7 @@ static int synopsys_usb_tcp_callback(tcp_usb_state_t *_state, void *_arg, tcp_us
if(rxfz > sizeof(state->fifos))
hw_error("usb_synopsys: USB transfer would overflow FIFO buffer!\n");
//printf("USB: Starting OUT transfer on EP %d (%d)...\n", ep, amtDone);
printf("USB: Starting OUT transfer on EP %d (%d)...\n", ep, amtDone);
if(amtDone > 0)
{
@@ -432,6 +434,10 @@ static void synopsys_usb_in_ep_write(synopsys_usb_state *_state, int _ep, hwaddr
return;
}
if (_addr == 0x10) {
printf("USB: Setting TX size of EP %d to %d.\n", _ep, _val);
}
switch (_addr)
{
case 0x00:
+2 -2
View File
@@ -228,7 +228,7 @@ static void tcp_usb_callback(tcp_usb_state_t *state, int _can_read, int _can_wri
if(state->amount_done < sizeof(*state->header))
return;
debug_hexdump("tcp_usb: Sent Header: ", state->header, sizeof(*state->header));
debug_hexdump("tcp_usb: Sent Header (write response): ", state->header, sizeof(*state->header));
}
if((state->header->ep & USB_DIR_IN) != 0 && state->header->length > 0) // IN
@@ -294,7 +294,7 @@ static void tcp_usb_callback(tcp_usb_state_t *state, int _can_read, int _can_wri
if(state->amount_done < sizeof(*state->header))
return;
debug_hexdump("tcp_usb: Sent Header: ", state->header, sizeof(*state->header));
debug_hexdump("tcp_usb: Sent Header (write request): ", state->header, sizeof(*state->header));
}
if((state->header->ep & USB_DIR_IN) == 0 && state->header->length > 0) // OUT