[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <157393863283F442885425D2C45428564F200FE9@nasanexd02f.na.qualcomm.com>
Date: Thu, 28 Mar 2013 01:01:05 +0000
From: "Huang, Xiong" <xiong@....qualcomm.com>
To: Hannes Frederic Sowa <hannes@...essinduktion.org>
CC: Sven Hartge <sven@...nhartge.de>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: Atheros Communications Inc. AR8121/AR8113/AR8114 Gigabit or
Fast Ethernet (rev b0) 1.0.0.7 md5/sha1 corrupted using NFS and samba
(updated) Version 2
Please try to use following define in atl1e_hw.h
#define GPHY_CTRL_DEFAULT (\
GPHY_CTRL_SEL_ANA_RST |\
GPHY_CTRL_HIB_PULSE |\
GPHY_CTRL_HIB_EN)
BR
Xiong
> -----Original Message-----
> From: Hannes Frederic Sowa [mailto:hannes@...essinduktion.org]
> Sent: Thursday, March 28, 2013 8:40 AM
> To: Huang, Xiong
> Cc: Sven Hartge; netdev@...r.kernel.org
> Subject: Re: Atheros Communications Inc. AR8121/AR8113/AR8114 Gigabit or
> Fast Ethernet (rev b0) 1.0.0.7 md5/sha1 corrupted using NFS and samba
> (updated) Version 2
>
> On Thu, Mar 28, 2013 at 12:10:57AM +0000, Huang, Xiong wrote:
> > There is no much difference on those registers :( But you could try to
> > replace :
> >
> > static void atl1e_cal_ring_size(struct atl1e_adapter *adapter, u32
> > *ring_size) {
> > *ring_size = ((u32)(adapter->tx_ring.count *
> > sizeof(struct atl1e_tpd_desc) + 7
> > /* tx ring, qword align */
> > + adapter->rx_ring.real_page_size *
> AT_PAGE_NUM_PER_QUEUE *
> > adapter->num_rx_queues + 31
> > /* rx ring, 32 bytes align */
> > + (1 + AT_PAGE_NUM_PER_QUEUE * adapter-
> >num_rx_queues) *
> > 16 + 15));
> > /* tx, rx cmd, dword align */
> > }
> >
> >
> > static int atl1e_setup_ring_resources(struct atl1e_adapter *adapter) {
> > .....
> > /* Init CMB dma address */
> > offset = roundup(offset, 16);
> > tx_ring->cmb_dma = adapter->ring_dma + offset;
> > tx_ring->cmb = adapter->ring_vir_addr + offset;
> > offset += sizeof(u32);
> > offset = roundup(offset, 16);
> >
> > for (i = 0; i < adapter->num_rx_queues; i++) {
> > for (j = 0; j < AT_PAGE_NUM_PER_QUEUE; j++) {
> > rx_page_desc[i].rx_page[j].write_offset_dma =
> > adapter->ring_dma + offset;
> > rx_page_desc[i].rx_page[j].write_offset_addr =
> > adapter->ring_vir_addr + offset;
> > offset += sizeof(u32);
> > offset = roundup(offset, 16);
> > }
> > }
> > .....
> >
> >
> >
> > Just guess, no confidence on it ....
>
> No, problem still persists. :(
>
> Btw, in the meantime I extracted another mmiotrace (this time with a dhcp
> exchange) and resolved the symbols:
>
> https://gist.github.com/hannes/5259468/raw/4c22dff854254c46534c1b87e47
> 7eff7d3ca2c5d/mmiotrace.txt
>
> Perhaps it helps.
>
> Thanks,
>
> Hannes
Powered by blists - more mailing lists