Re: [PATCH v5] net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller

From: Mason
Date: Thu Nov 12 2015 - 08:34:01 EST


On 10/11/2015 20:25, Måns Rullgård wrote:

> Mason writes:
>
>> On 10/11/2015 17:14, Mans Rullgard wrote:
>>
>>> This adds a driver for the Aurora VLSI NB8800 Ethernet controller.
>>> It is an almost complete rewrite of a driver originally found in
>>> a Sigma Designs 2.6.22 tree.
>>>
>>> Signed-off-by: Mans Rullgard <mans@xxxxxxxxx>
>>> ---
>>> Changes:
>>> - Refactored mdio access functions
>>> - Refactored register access helpers
>>> - Improved error handling in rx buffer allocation
>>> - Optimised some fifo parameters
>>> - Overhauled tx dma. Multiple packets are now chained in a single dma
>>> operation if xmit_more is set, improving performance.
>>> - Improved rx irq handling. It's not possible to disable interrupts
>>> entirely for napi poll, but they can be slowed down a little.
>>> - Use readx_poll_timeout in various places
>>> - Improved error detection
>>> - Improved statistics
>>> - Report hardware statistics counters through ethtool
>>> - Improved tangox-specific setup
>>> - Support for flow control using pause frames
>>> - Explanatory comments added
>>> - Various minor stylistic changes
>>> ---
>>> drivers/net/ethernet/Kconfig | 1 +
>>> drivers/net/ethernet/Makefile | 1 +
>>> drivers/net/ethernet/aurora/Kconfig | 20 +
>>> drivers/net/ethernet/aurora/Makefile | 1 +
>>> drivers/net/ethernet/aurora/nb8800.c | 1530 ++++++++++++++++++++++++++++++++++
>>> drivers/net/ethernet/aurora/nb8800.h | 314 +++++++
>>> 6 files changed, 1867 insertions(+)
>>
>> The code has grown much since the previous patch, despite some
>> refactoring. Is this mostly due to ethtool_ops support?
>>
>> drivers/net/ethernet/aurora/nb8800.c | 1146 ++++++++++++++++++++++++++++++++++
>> drivers/net/ethernet/aurora/nb8800.h | 230 +++++++
>
> Some of the increase is from new features, some from improvements, and
> then there are a bunch of new comments.

Sweet.

With this version, my kernel boots faster than before
(I had been using a 5 month-old version.)

Before:

[ 0.613623] tangox-enet 26000.ethernet: SMP86xx internal Ethernet at 0x26000
[ 0.623638] libphy: tangox-mii: probed
[ 0.686527] tangox-enet 26000.ethernet: PHY: found Atheros 8035 ethernet at 0x4
[ 0.697169] tangox-enet 26000.ethernet eth0: MAC address 00:16:e8:02:08:42
...
[ 1.306360] Sending DHCP requests ..
[ 4.699969] tangox-enet 26000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 8.899671] ., OK
[ 8.926343] IP-Config: Got DHCP answer from 172.27.200.1, my address is 172.27.64.49
...
[ 8.987327] Freeing unused kernel memory: 168K (c039e000 - c03c8000)

After:

[ 0.623526] libphy: nb8800-mii: probed
[ 0.628092] nb8800 26000.ethernet eth0: MAC address 00:16:e8:02:08:42
...
[ 4.732948] nb8800 26000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 4.752655] Sending DHCP requests ., OK
[ 4.782644] IP-Config: Got DHCP answer from 172.27.200.1, my address is 172.27.64.49
...
[ 4.849298] Freeing unused kernel memory: 164K (c039f000 - c03c8000)


The DHCP request is sent later, but the kernel doesn't twiddle its thumbs
for 4 seconds after the link comes up. Does this come from not probing the
PHY anymore?

BTW, you're not using the PHY IRQ, right? I think I remember you saying
it didn't work reliably?

Regards.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/