MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / eth_init

Function eth_init

bsp/loongson/ls2kdev/drivers/net/synopGMAC.c:299–412  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

297}
298
299static rt_err_t eth_init(rt_device_t device)
300{
301 struct eth_device *eth_device = (struct eth_device *)device;
302 RT_ASSERT(eth_device != RT_NULL);
303
304 s32 ijk;
305 s32 status = 0;
306 u64 dma_addr;
307 u32 Mac_changed = 0;
308 struct pbuf *pbuf;
309 u8 macaddr[6] = DEFAULT_MAC_ADDRESS;
310 struct rt_eth_dev *dev = &eth_dev;
311 struct synopGMACNetworkAdapter *adapter = dev->priv;
312 synopGMACdevice *gmacdev = (synopGMACdevice *)adapter->synopGMACdev;
313
314 synopGMAC_reset(gmacdev);
315 synopGMAC_attach(gmacdev, (gmac_base + MACBASE), (gmac_base + DMABASE), DEFAULT_PHY_BASE, macaddr);
316
317 synopGMAC_read_version(gmacdev);
318
319 synopGMAC_set_mdc_clk_div(gmacdev, GmiiCsrClk3);
320 gmacdev->ClockDivMdc = synopGMAC_get_mdc_clk_div(gmacdev);
321
322 init_phy(adapter->synopGMACdev);
323
324 DEBUG_MES("tx desc_queue\n");
325 synopGMAC_setup_tx_desc_queue(gmacdev, TRANSMIT_DESC_SIZE, RINGMODE);
326 synopGMAC_init_tx_desc_base(gmacdev);
327
328 DEBUG_MES("rx desc_queue\n");
329 synopGMAC_setup_rx_desc_queue(gmacdev, RECEIVE_DESC_SIZE, RINGMODE);
330 synopGMAC_init_rx_desc_base(gmacdev);
331 DEBUG_MES("DmaRxBaseAddr = %08x\n", synopGMACReadReg(gmacdev->DmaBase, DmaRxBaseAddr));
332
333// u32 dmaRx_Base_addr = synopGMACReadReg(gmacdev->DmaBase,DmaRxBaseAddr);
334// rt_kprintf("first_desc_addr = 0x%x\n", dmaRx_Base_addr);
335
336#ifdef ENH_DESC_8W
337 synopGMAC_dma_bus_mode_init(gmacdev, DmaBurstLength32 | DmaDescriptorSkip2 | DmaDescriptor8Words);
338#else
339 synopGMAC_dma_bus_mode_init(gmacdev, DmaBurstLength4 | DmaDescriptorSkip1);
340 //synopGMAC_dma_bus_mode_init(gmacdev, DmaBurstLength4 | DmaDescriptorSkip2);
341#endif
342 synopGMAC_dma_control_init(gmacdev, DmaStoreAndForward | DmaTxSecondFrame | DmaRxThreshCtrl128);
343
344 status = synopGMAC_check_phy_init(adapter);
345 synopGMAC_mac_init(gmacdev);
346
347 synopGMAC_pause_control(gmacdev);
348
349#ifdef IPC_OFFLOAD
350 synopGMAC_enable_rx_chksum_offload(gmacdev);
351 synopGMAC_rx_tcpip_chksum_drop_enable(gmacdev);
352#endif
353
354 u64 skb;
355 do
356 {

Callers

nothing calls this directly

Calls 15

rt_kprintfFunction · 0.85
rt_timer_initFunction · 0.85
rt_timer_startFunction · 0.85
synopGMAC_resetFunction · 0.70
synopGMAC_attachFunction · 0.70
synopGMAC_read_versionFunction · 0.70
init_phyFunction · 0.70

Tested by

no test coverage detected