1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 22:43:50 +01:00

cpu/stm32/periph_eth: increase debug output

This commit is contained in:
Marian Buschsieweke 2022-08-08 14:21:40 +02:00
parent 4e5931b56a
commit efc307455e
No known key found for this signature in database
GPG Key ID: CB8E3238CE715A94
2 changed files with 31 additions and 5 deletions

View File

@ -115,8 +115,17 @@ static void _debug_tx_descriptor_info(unsigned line)
DEBUG("[stm32_eth:%u] TX descriptors:\n", line);
for (unsigned i = 0; i < ETH_TX_DESCRIPTOR_COUNT; i++) {
uint32_t status = tx_desc[i].status;
char next_valid;
if (i < ETH_TX_DESCRIPTOR_COUNT - 1) {
next_valid = (tx_desc[i].desc_next == &tx_desc[i + 1])
? '1' : '0';
}
else {
next_valid = (tx_desc[i].desc_next == &tx_desc[0])
? '1' : '0';
}
DEBUG(" %s %u: OWN=%c, ES=%c, UF=%c, EC=%c, NC=%c, FS=%c, "
"LS=%c\n",
"LS=%c, next valid=%c\n",
(tx_curr == tx_desc + i) ? "-->" : " ",
i,
(status & TX_DESC_STAT_OWN) ? '1' : '0',
@ -125,7 +134,8 @@ static void _debug_tx_descriptor_info(unsigned line)
(status & TX_DESC_STAT_EC) ? '1' : '0',
(status & TX_DESC_STAT_NC) ? '1' : '0',
(status & TX_DESC_STAT_FS) ? '1' : '0',
(status & TX_DESC_STAT_LS) ? '1' : '0');
(status & TX_DESC_STAT_LS) ? '1' : '0',
next_valid);
}
}
}
@ -142,7 +152,17 @@ static void _debug_rx_descriptor_info(unsigned line)
DEBUG("[stm32_eth:%u] RX descriptors:\n", line);
for (unsigned i = 0; i < ETH_RX_DESCRIPTOR_COUNT; i++) {
uint32_t status = rx_desc[i].status;
DEBUG(" %s %u: OWN=%c, FS=%c, LS=%c, ES=%c, DE=%c, FL=%" PRIu32 "\n",
char next_valid;
if (i < ETH_RX_DESCRIPTOR_COUNT - 1) {
next_valid = (rx_desc[i].desc_next == &rx_desc[i + 1])
? '1' : '0';
}
else {
next_valid = (rx_desc[i].desc_next == &rx_desc[0])
? '1' : '0';
}
DEBUG(" %s %u: OWN=%c, FS=%c, LS=%c, ES=%c, DE=%c, FL=%" PRIu32
", next valid=%c\n",
(rx_curr == rx_desc + i) ? "-->" : " ",
i,
(status & RX_DESC_STAT_OWN) ? '1' : '0',
@ -150,7 +170,8 @@ static void _debug_rx_descriptor_info(unsigned line)
(status & RX_DESC_STAT_LS) ? '1' : '0',
(status & RX_DESC_STAT_ES) ? '1' : '0',
(status & RX_DESC_STAT_DE) ? '1' : '0',
_len_from_rx_desc_status(status));
_len_from_rx_desc_status(status),
next_valid);
}
}
}
@ -249,6 +270,8 @@ static void _init_dma_descriptors(void)
ETH->DMARDLAR = (uintptr_t)rx_curr;
ETH->DMATDLAR = (uintptr_t)tx_curr;
_debug_rx_descriptor_info(__LINE__);
_debug_tx_descriptor_info(__LINE__);
}
static void _reset_eth_dma(void)
@ -475,6 +498,7 @@ static int stm32_eth_send(netdev_t *netdev, const struct iolist *iolist)
/* We cannot send more chunks than allocated descriptors */
assert(iolist_count(iolist) <= ETH_TX_DESCRIPTOR_COUNT);
_debug_tx_descriptor_info(__LINE__);
edma_desc_t *dma_iter = tx_curr;
for (unsigned i = 0; iolist; iolist = iolist->iol_next, i++) {
dma_iter->control = iolist->iol_len;
@ -505,7 +529,6 @@ static int stm32_eth_send(netdev_t *netdev, const struct iolist *iolist)
}
/* Error check */
_debug_tx_descriptor_info(__LINE__);
int error = 0;
while (1) {
uint32_t status = tx_curr->status;
@ -535,6 +558,8 @@ static int stm32_eth_send(netdev_t *netdev, const struct iolist *iolist)
}
}
_debug_tx_descriptor_info(__LINE__);
netdev->event_callback(netdev, NETDEV_EVENT_TX_COMPLETE);
if (error) {
return error;

View File

@ -82,6 +82,7 @@ void isr_eth(void)
extern mutex_t stm32_eth_tx_completed;
unsigned tmp = ETH->DMASR;
ETH->DMASR = ETH_DMASR_NIS | ETH_DMASR_TS | ETH_DMASR_RS;
DEBUG("[periph_eth_common] DMASR = 0x%x\n", tmp);
if ((tmp & ETH_DMASR_TS)) {
DEBUG("isr_eth: TX completed\n");