diff --git a/cpu/sam0_common/periph/eth.c b/cpu/sam0_common/periph/eth.c index 7d374e090b..1550849976 100644 --- a/cpu/sam0_common/periph/eth.c +++ b/cpu/sam0_common/periph/eth.c @@ -355,6 +355,9 @@ bool sam0_eth_has_queued_pkt(void) int sam0_eth_init(void) { + /* HACK: interrupting the init sequence leads to strange hangs */ + unsigned state = irq_disable(); + /* Enable clocks */ _enable_clock(); /* Initialize GPIOs */ @@ -413,5 +416,7 @@ int sam0_eth_init(void) /* Enable both receiver and transmitter */ GMAC->NCR.reg |= GMAC_NCR_TXEN | GMAC_NCR_RXEN; + irq_restore(state); + return 0; }