[PATCH] [v2] Nios2: Add Altera TSE MAC driver

Franck JULLIEN franck.jullien at gmail.com
Sun Apr 10 14:21:26 EDT 2011


2011/4/10 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>

> >      > index 0000000..2687377
> >      > --- /dev/null
> >      > +
> >      > +static int tse_get_ethaddr(struct eth_device *edev, unsigned char
> *m)
> >      > +{
> >      > +     /* There is no eeprom */
> >      so return the content of the register no?
> >
> >    Well, the register is reseted to 0 when the MAC starts so there is no
> >    Ethernet address
> >    to get.
> >
> except this function is supposed to return the mac address of the device at
> any time so after a set of it it will not be true any more
>

If I implement the function I get a "eth at eth0: got MAC address from EEPROM:
00:00:00:00:00:00" at startup.
That why I returned -1 as what I could find int at91_ether.c......
Or, I could find something to return -1 as long as the MAC address hasn't
been set.



> >
> >      > +     return -1;
> >      > +}
> >      > +
> >      > +static int tse_eth_send(struct eth_device *edev, void *packet,
> int
> >      length)
> >      > +{
> >      > +
> >      > +     struct altera_tse_priv *priv = edev->priv;
> >      > +     struct alt_sgdma_registers *tx_sgdma = priv->sgdma_tx;
> >      > +     struct alt_sgdma_descriptor *tx_desc = (struct
> >      alt_sgdma_descriptor *)priv->tx_desc;
> >      > +
> >      > +     struct alt_sgdma_descriptor *tx_desc_cur = (struct
> >      alt_sgdma_descriptor *)&tx_desc[0];
> >      > +
> >      > +     flush_dcache_range((uint32_t)packet, (uint32_t)packet +
> length);
> >      > +     alt_sgdma_construct_descriptor_burst(
> >      > +             (struct alt_sgdma_descriptor *)&tx_desc[0],
> >      > +             (struct alt_sgdma_descriptor *)&tx_desc[1],
> >      > +             (uint32_t *)packet,  /* read addr */
> >      > +             (uint32_t *)0,       /*           */
> >      > +             length,              /* length or EOP ,will change
> for
> >      each tx */
> >      > +             0x1,                 /* gen eop */
> >      > +             0x0,                 /* read fixed */
> >      > +             0x1,                 /* write fixed or sop */
> >      > +             0x0,                 /* read burst */
> >      > +             0x0,                 /* write burst */
> >      > +             0x0                  /* channel */
> >      please use tab for indent I see other in the patch please check
> >
> >    I use tab for indent, spaces for alignment. I checked the patch with
> >    checkpatch and it
> >    didn't find errors.....
> try to use tab when u can even for alignment please
>

OK........


> >
> >
> >      > +
> >      why this?
> >
> >    Because sometimes (often ?), hardware doesn't run first time. So I
> like to
> >    have some information on MII bus running correctly....One day I had a
> PHY
> >    getting the address 1 and sometimes this f***ing PHY got 31 and this
> >    kind of auto scan helped me to immediately find the problem......
> >    I could remove those function if it is a problem....
> so it's no the right place as it's phy specific and not ehtern drivers
> specific
>

We could put this in the MII code ? Or should I simply remove it ?


>
> Best Regards,
> J.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20110410/a77e34e6/attachment.html>


More information about the barebox mailing list