網路界面可使用單一 eth0,或者 eth0 加上 eth1。後者是 dual_emac 模式,可透過 device tree 設定。dual_emac 會有兩份 net_device 及 priv,有各自的 MAC address,但有許多東西是相同或共用的。
接收封包 (使用 NAPI)
- 原本就有 sk_buff,open 時就準備好給驅動程式 DMA 使用。
- 如果是 dual_emac 模式,會去看來自哪個 GMII port,取得精確的 net_device 及 priv
- 取新 sk_buff 給之後封包 DMA 用。如果取不到,拋棄此封包,原本的 sk_buff 給之後封包 DMA 用。
- 設 time stamp、protocol,netif_receive_skb() 及統計
- AM335x 不是 ARCH_DAVINCI,但用 DaVinci 的 MDIO 及 CPDMA。ti 有下列網路界面
- CPSW (ARCH_DAVINCI or SOC_AM33XX): +DaVinci MDIO +DaVinci CPDMA +CPSW Phy sel
- CPTS (CPSW): +PTP_1588_CLOCK
- DaVinci EMAC (ARCH_DAVINCI or ARCH_OMAP3): +DaVinci MDIO +DaVinci CPDMA
- TLAN (PCI or EISA)
- CPMAC (AR7)
- kernel source code 在 git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
沒有留言:
張貼留言