qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 15/20] arm: add Faraday FTMAC110 10/100Mbps e


From: Kuo-Jung Su
Subject: Re: [Qemu-devel] [PATCH v3 15/20] arm: add Faraday FTMAC110 10/100Mbps ethernet support
Date: Tue, 19 Feb 2013 09:43:27 +0800

2013/2/19 Kuo-Jung Su <address@hidden>:
> 2013/2/18 Stefan Hajnoczi <address@hidden>:
>> On Mon, Feb 18, 2013 at 05:44:38PM +0800, Kuo-Jung Su wrote:
>>> 2013/2/18 Stefan Hajnoczi <address@hidden>:
>>> > On Wed, Feb 06, 2013 at 05:45:19PM +0800, Kuo-Jung Su wrote:
>>> >> From: Kuo-Jung Su <address@hidden>
>>> >>
>>> >> The FTMAC110 is an Ethernet controller that provides AHB master 
>>> >> capability
>>> >> and is in full compliance with the IEEE 802.3 10/100 Mbps specifications.
>>> >> Its DMA controller handles all data transfers between system memory
>>> >> and on-chip memories.
>>> >> It supports half-word data transfer for Linux. However it has a weird DMA
>>> >> alignment issue:
>>> >>
>>> >> (1) Tx DMA Buffer Address:
>>> >>     1 bytes aligned: Invalid
>>> >>     2 bytes aligned: O.K
>>> >>     4 bytes aligned: O.K
>>> >>
>>> >> (2) Rx DMA Buffer Address:
>>> >>     1 bytes aligned: Invalid
>>> >>     2 bytes aligned: O.K
>>> >>     4 bytes aligned: Invalid (It means 0x0, 0x4, 0x8, 0xC are invalid)
>>> >>
>>> >> Signed-off-by: Kuo-Jung Su <address@hidden>
>>> >> ---
>>> >>  hw/arm/Makefile.objs  |    1 +
>>> >>  hw/arm/faraday_a360.c |   10 +
>>> >>  hw/arm/ftmac110.c     |  681 
>>> >> +++++++++++++++++++++++++++++++++++++++++++++++++
>>> >>  hw/arm/ftmac110.h     |  131 ++++++++++
>>> >>  4 files changed, 823 insertions(+)
>>> >>  create mode 100644 hw/arm/ftmac110.c
>>> >>  create mode 100644 hw/arm/ftmac110.h
>>> >
>>> > Hi Kuo-Jung,
>>> > Is there a datasheet and/or driver programming guide for this Ethernet
>>> > controller?
>>> >
>>>
>>> The datasheet distribution is prohibited in Faraday, while it's absolutely 
>>> O.K
>>> to deliver software codes along with register description.
>>>
>>> So, I can't share the datasheets with you, but I can add register 
>>> description
>>> to the source files. Is this what you need?
>>
>> I'm asking because I'd like to confirm that the device keeps checking
>> for available receive descriptors via DMA reads (owner bit) and there is
>> no hw register access to kick the Ethernet controller?
>>
>
> In a descriptor based ethernet MAC, there is usually a dedicated
> register to kick-off DMA
> engine, and of course, FTMAC110/FTGMAC100 has such register, too.
>
> They are:
>
> 1. ftgmac100:
>     1-1. REG_TXPD (0x18):  Kick-off Tx DMA engine
>     1-2. REG_RXPD (0x1c): Kick-off Rx DMA engine
>     1-3. REG_HPTXPD (0x28): Kick-off High Priority Tx DMA engine
>
> 2. ftmac110:
>     2-1. REG_TXPD (0x18):  Kick-off Tx DMA engine
>     2-2. REG_RXPD (0x1c): Kick-off Rx DMA engine
>
> Writing an arbitrary value to these registers would trigger the
> corresponding DMA engine.
>
>> You work at Faraday, so maybe you have the definitive answer to this :).
>>
>> Stefan

If you're looking for a basic example code, I'll recommend the u-boot drivers,
The files are available from my own github:

https://github.com/dantesu1218/u-boot/blob/master/drivers/net/ftgmac100.c
https://github.com/dantesu1218/u-boot/blob/master/drivers/net/ftmac110.c


>
>
>
> --
> Best wishes,
> Kuo-Jung Su



--
Best wishes,
Kuo-Jung Su



reply via email to

[Prev in Thread] Current Thread [Next in Thread]