public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] net: axi_ethernet: Add driver to u-boot
Date: Mon, 28 Feb 2011 14:29:01 -0500	[thread overview]
Message-ID: <201102281429.02326.vapier@gentoo.org> (raw)
In-Reply-To: <4D6BEE8F.3050900@monstr.eu>

On Monday, February 28, 2011 13:50:55 Michal Simek wrote:
> Mike Frysinger wrote:
> > On Monday, February 28, 2011 04:40:33 Michal Simek wrote:
> >> +	return 1;
> > 
> > a bunch of these funcs return 1 when i'm pretty sure they should be 0
> 
> init function is called from eth.c:eth_init(). From the code below you see
> that return can be >=0.

funny enough, that func in your patch is returning 0 when it should be 1.  it 
doesnt explain why your recv/send are returning 1 when it should be 0.

the init func is a special beast -- it returns the # of devices registered, 
not "1 is success".

> >> +int xilinx_axiemac_initialize(bd_t *bis, int base_addr, int dma_addr)
> >> +{
> >> +	struct eth_device *dev;
> >> +	struct axidma_priv *dma;
> >> +
> >> +	dev = malloc(sizeof(*dev));
> >> +	if (dev == NULL)
> >> +		hang();
> >> +
> >> +	memset(dev, 0, sizeof(*dev));
> >> +	sprintf(dev->name, "Xilinx_AxiEmac");
> >> +
> >> +	dev->iobase = base_addr;
> >> +	dma = dev->priv;
> >> +	dma->dmatx = dma_addr;
> >> +	dma->dmarx = (u32)dma->dmatx + 0x30; /* rx channel offset */
> > 
> > hmm, this is weird.  you just memset(dev) to 0, and then used dev->priv
> > without assigning it storage.  so you're scribbling on top of address 0
> > with your dma struct here arent you ?
> 
> dev contains:
> iobase - axi emac baseaddr
> init, halt, send, recv pointers to functions
> and pointer priv
> + others
> 
> I need to clear it that's why memset.
> 
> dma controller is special IP that's why I use priv for storing pointer to
> axidma_priv structure which contains two pointers to dma for master to
> slave and slave to master directions (rx and tx if you like). As I wrote
> dma controller is different IP that's why there are different addresses.
> axi_dma has offset between channels which is 0x30.
> I used structures for hw access.

ok, but i think you missed my point.  let me use this example:
dev->priv = 0;	/* the memset */
dma = dev->priv;
dma->dmatx = dma_addr;

you're doing a NULL pointer deref here.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110228/d2db302c/attachment.pgp 

  reply	other threads:[~2011-02-28 19:29 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-28  9:40 [U-Boot] [PATCH] net: axi_ethernet: Add driver to u-boot Michal Simek
2011-02-28 17:36 ` Mike Frysinger
2011-02-28 18:50   ` Michal Simek
2011-02-28 19:29     ` Mike Frysinger [this message]
2011-03-01  8:00       ` Michal Simek
2011-03-01  8:18         ` Mike Frysinger
2011-03-01  8:34           ` Michal Simek
2011-03-01  8:48             ` Mike Frysinger
2011-03-01  9:29               ` Michal Simek
2011-03-03 21:51                 ` Mike Frysinger
2011-03-04 10:09                   ` Michal Simek
2011-03-09  7:34                     ` Mike Frysinger
2011-03-09  7:38                     ` Mike Frysinger
2011-03-01  8:37       ` Michal Simek
2011-03-01  8:58         ` Mike Frysinger
2011-03-01  8:19   ` Michal Simek
2011-03-01  8:28     ` Mike Frysinger
2011-03-01  8:46       ` Michal Simek
2011-03-01  9:10         ` Mike Frysinger
  -- strict thread matches above, loose matches on Subject: below --
2011-08-30 12:05 [U-Boot] [PATCH v2] net: ll_temac: Add LL TEMAC " Michal Simek
2011-08-30 12:05 ` [U-Boot] [PATCH] net: axi_ethernet: Add " Michal Simek
2011-08-31 12:19   ` Marek Vasut
2011-08-31 14:46     ` Michal Simek
2011-08-31 15:19       ` Marek Vasut
2011-09-01  7:17         ` Michal Simek
2011-09-01  8:18           ` Marek Vasut
2011-09-01  8:55             ` Michal Simek
2011-09-01 10:07               ` Marek Vasut
2011-09-01 11:04                 ` Michal Simek
2011-09-01 12:47               ` Wolfgang Denk
2011-08-31 20:13       ` Wolfgang Denk
2011-08-31 19:24   ` Mike Frysinger
2011-09-01  6:52     ` Michal Simek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201102281429.02326.vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox