Lines Matching +full:fman +full:- +full:dtsec

1 /*-
56 #include "fman.h"
62 * @group dTSEC FMan PORT routines.
75 m = m_devget(data, length, 0, sc->sc_ifnet, NULL); in dtsec_im_fm_port_rx_callback()
77 if_input(sc->sc_ifnet, m); in dtsec_im_fm_port_rx_callback()
103 device_printf(sc->sc_dev, "couldn't allocate RX buffer.\n"); in dtsec_im_fm_port_rx_get_buf()
127 params.baseAddr = sc->sc_fm_base + sc->sc_port_rx_hw_id; in dtsec_im_fm_port_rx_init()
128 params.h_Fm = sc->sc_fmh; in dtsec_im_fm_port_rx_init()
129 params.portType = dtsec_fm_port_rx_type(sc->sc_eth_dev_type); in dtsec_im_fm_port_rx_init()
130 params.portId = sc->sc_eth_id; in dtsec_im_fm_port_rx_init()
137 im_params->h_FmMuram = sc->sc_muramh; in dtsec_im_fm_port_rx_init()
138 im_params->liodnOffset = FM_PORT_LIODN_OFFSET; in dtsec_im_fm_port_rx_init()
139 im_params->dataMemId = FM_PORT_MEM_ID; in dtsec_im_fm_port_rx_init()
140 im_params->dataMemAttributes = FM_PORT_MEM_ATTR; in dtsec_im_fm_port_rx_init()
141 im_params->f_RxStore = dtsec_im_fm_port_rx_callback; in dtsec_im_fm_port_rx_init()
144 pool_params->h_BufferPool = sc; in dtsec_im_fm_port_rx_init()
145 pool_params->f_GetBuf = dtsec_im_fm_port_rx_get_buf; in dtsec_im_fm_port_rx_init()
146 pool_params->f_PutBuf = dtsec_im_fm_port_rx_put_buf; in dtsec_im_fm_port_rx_init()
147 pool_params->bufferSize = FM_PORT_BUFFER_SIZE; in dtsec_im_fm_port_rx_init()
149 sc->sc_rxph = FM_PORT_Config(&params); in dtsec_im_fm_port_rx_init()
150 if (sc->sc_rxph == NULL) { in dtsec_im_fm_port_rx_init()
151 device_printf(sc->sc_dev, "couldn't configure FM Port RX.\n"); in dtsec_im_fm_port_rx_init()
155 error = FM_PORT_Init(sc->sc_rxph); in dtsec_im_fm_port_rx_init()
157 device_printf(sc->sc_dev, "couldn't initialize FM Port RX.\n"); in dtsec_im_fm_port_rx_init()
158 FM_PORT_Free(sc->sc_rxph); in dtsec_im_fm_port_rx_init()
163 device_printf(sc->sc_dev, "RX hw port 0x%02x initialized.\n", in dtsec_im_fm_port_rx_init()
164 sc->sc_port_rx_hw_id); in dtsec_im_fm_port_rx_init()
178 params.baseAddr = sc->sc_fm_base + sc->sc_port_tx_hw_id; in dtsec_im_fm_port_tx_init()
179 params.h_Fm = sc->sc_fmh; in dtsec_im_fm_port_tx_init()
180 params.portType = dtsec_fm_port_tx_type(sc->sc_eth_dev_type); in dtsec_im_fm_port_tx_init()
188 im_params->h_FmMuram = sc->sc_muramh; in dtsec_im_fm_port_tx_init()
189 im_params->liodnOffset = FM_PORT_LIODN_OFFSET; in dtsec_im_fm_port_tx_init()
190 im_params->dataMemId = FM_PORT_MEM_ID; in dtsec_im_fm_port_tx_init()
191 im_params->dataMemAttributes = FM_PORT_MEM_ATTR; in dtsec_im_fm_port_tx_init()
192 im_params->f_TxConf = dtsec_im_fm_port_tx_conf_callback; in dtsec_im_fm_port_tx_init()
194 sc->sc_txph = FM_PORT_Config(&params); in dtsec_im_fm_port_tx_init()
195 if (sc->sc_txph == NULL) { in dtsec_im_fm_port_tx_init()
196 device_printf(sc->sc_dev, "couldn't configure FM Port TX.\n"); in dtsec_im_fm_port_tx_init()
200 error = FM_PORT_Init(sc->sc_txph); in dtsec_im_fm_port_tx_init()
202 device_printf(sc->sc_dev, "couldn't initialize FM Port TX.\n"); in dtsec_im_fm_port_tx_init()
203 FM_PORT_Free(sc->sc_txph); in dtsec_im_fm_port_tx_init()
208 device_printf(sc->sc_dev, "TX hw port 0x%02x initialized.\n", in dtsec_im_fm_port_tx_init()
209 sc->sc_port_tx_hw_id); in dtsec_im_fm_port_tx_init()
217 * @group dTSEC IFnet routines.
231 if ((sc->sc_mii->mii_media_status & IFM_ACTIVE) == 0) in dtsec_im_if_start_locked()
234 if ((if_getdrvflags(sc->sc_ifnet) & IFF_DRV_RUNNING) != IFF_DRV_RUNNING) in dtsec_im_if_start_locked()
237 while (!if_sendq_empty(sc->sc_ifnet)) { in dtsec_im_if_start_locked()
238 m = if_dequeue(sc->sc_ifnet); in dtsec_im_if_start_locked()
252 error = FM_PORT_ImTx(sc->sc_txph, buffer, length, TRUE, buffer); in dtsec_im_if_start_locked()