This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers (Synopsys IP blocks);
it has been released starting from the STLinux-2.3 distribution.
This network device driver is for all ST embedded MACs (710x/7200/71x1 platform based).
For the driver performances visit the following link
When one or more packets are received, an interrupt happens.
The interrupts are not queued so the driver has to scan all the
descriptors in the ring during the receive process.
This is based on NAPI so the interrupt handler only signals there
is work to be done, and exits.
Then the poll method will be scheduled at some future point.
The incoming packets are stored, by the DMA, in a list of
pre-allocated socket buffers in order to avoid, for big packet,
the memcpy operation (zero-copy mechanism).
The xmit method is invoked when the kernel needs to transmit
a packet; it sets the descriptors in the ring and informs
the DMA engine that there is a packet ready to be transmitted.
Once the controller has finished transmitting the packet,
an interrupt is triggered; So the driver will be able to releases
the socket buffers.
By default, the driver sets the NETIF_F_SG bit in the features
field of the net_device structure enabling the
scatter/gather feature.
The kernel configuration option is STMMAC_ETH:
Device Drivers ---> Network device support ---> Ethernet (1000 Mbit) ---> STMicroelectronics 10/100/1000 Ethernet driver (STMMAC_ETH)
Below the list of the stmmac parameters adopted starting from the Kernel 2.6.23.17_stm-118:
Driver parameters can be also passed in command line by using: stmmaceth=phyaddr:<phy address> ...
Pay attention to modify the default values of these parameters. For example, passing a wrong phyaddr the drive open method could fail.
target# insmod ste10Xp.ko
STe100p: Registered new driver
STe101p: Registered new drivertarget# insmod stmmac.ko STMMAC driver: platform registration... <6>done! MAC 10/100 no valid MAC address; please, set using ifconfig or nwhwconfig! STMMAC MII Bus: probed
target# ifconfig eth0 hw ether 00:80:E1:12:26:16 target# ifconfig eth0 192.168.1.2 up stmmac_timer: rtc0 Timer ON (freq 256Hz) PHY: 0:0e - Link is Up - 100/Full