From e9fe0dca2f188cb2a58d6e1b20ea665d6e6550ac Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Mon, 10 Jan 2022 12:26:20 +0100 Subject: [PATCH] icE1usb fw: Apply config reg field filter to e1_init call Signed-off-by: Sylvain Munaut Change-Id: Id45688fed0533f8d7dbbfd993c93f9ffc4e2d53e --- firmware/ice40-riscv/icE1usb/e1.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c index a9feea0..f6a41c9 100644 --- a/firmware/ice40-riscv/icE1usb/e1.c +++ b/firmware/ice40-riscv/icE1usb/e1.c @@ -263,6 +263,16 @@ _get_state(int port) } +#define RXCR_PERMITTED ( \ + E1_RX_CR_MODE_MASK ) + +#define TXCR_PERMITTED ( \ + E1_TX_CR_MODE_MASK | \ + E1_TX_CR_TICK_MASK | \ + E1_TX_CR_ALARM | \ + E1_TX_CR_LOOPBACK | \ + E1_TX_CR_LOOPBACK_CROSS ) + void e1_init(int port, uint16_t rx_cr, uint16_t tx_cr) { @@ -277,11 +287,11 @@ e1_init(int port, uint16_t rx_cr, uint16_t tx_cr) e1f_reset(&e1->tx.fifo, (512 * port) + 256, 256); /* Enable Rx */ - e1->rx.cr = E1_RX_CR_ENABLE | rx_cr; + e1->rx.cr = E1_RX_CR_ENABLE | (rx_cr & RXCR_PERMITTED); e1_regs->rx.csr = E1_RX_CR_OVFL_CLR | e1->rx.cr; /* Enable Tx */ - e1->tx.cr = E1_TX_CR_ENABLE | tx_cr; + e1->tx.cr = E1_TX_CR_ENABLE | (tx_cr & TXCR_PERMITTED); e1_regs->tx.csr = E1_TX_CR_UNFL_CLR | e1->tx.cr; /* State */ @@ -289,13 +299,6 @@ e1_init(int port, uint16_t rx_cr, uint16_t tx_cr) e1->tx.state = BOOT; } -#define TXCR_PERMITTED ( \ - E1_TX_CR_MODE_MASK | \ - E1_TX_CR_TICK_MASK | \ - E1_TX_CR_ALARM | \ - E1_TX_CR_LOOPBACK | \ - E1_TX_CR_LOOPBACK_CROSS ) - void e1_tx_config(int port, uint16_t cr) { @@ -305,9 +308,6 @@ e1_tx_config(int port, uint16_t cr) e1_regs->tx.csr = e1->tx.cr; } -#define RXCR_PERMITTED ( \ - E1_RX_CR_MODE_MASK ) - void e1_rx_config(int port, uint16_t cr) {