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

Re: [microblaze-uclinux] Any known problems with LL_TEMAC in XPS 11.2 and PetaLinux v0.40-rc4?



Hi Tom,

On Sat, Aug 1, 2009 at 1:27 AM, Curran, Tom<Tom.Curran@xxxxxxxxx> wrote:
> I have a PetaLinux (with MMU) kernel running on a Avnet V5LX110T board.  Soon after the kernel boots  to the login prompt I get a stream of messages on the console like:
>
> skb_over_panic: text:c010572c len:65596 put:65596 head:c049c000 data:c049c000 tail:c04ac03c...
>
> This appears to be related to the network?  My hardware platform uses the LL_TEMAC and the kernel is configured for 'Xilinx 10/100/1000 LL TEMAC support'.  If I remove the LL TEMAC from the kernel configuration I no longer see these messages, but then I also do not have a network connection to my board :(.
>
> What do these mesaages mean?  How do I get rid of them?  Have I missed something in my hardware or kernel configuration?  The LL_TEMAC hardware is also configured for checksum offload and DMA.

Can you please try the attached patch, which is in the PetaLinux SVN
but has not made it into a snapshot release yet.  The behaviour of the
ll_temac changed slightly in 11.1/2.

$ cd $PETALINUX
$ patch -p0 < petalinux_lltemac_bd_field_fix.patch

Regards,

John
-- 
John Williams, PhD, B.Eng, B.IT
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com  p: +61-7-30090663  f: +61-7-30090663
Index: software/linux-2.6.x-petalogix/drivers/net/xilinx_lltemac/xlltemac_main.c
===================================================================
--- software/linux-2.6.x-petalogix/drivers/net/xilinx_lltemac/xlltemac_main.c	(revision 5623)
+++ software/linux-2.6.x-petalogix/drivers/net/xilinx_lltemac/xlltemac_main.c	(revision 5624)
@@ -144,10 +144,10 @@
     XLlDma_mBdWrite((BdPtr), XLLDMA_BD_USR2_OFFSET, 0)
 
 #define BdCsumGet(BdPtr) \
-    XLlDma_mBdRead((BdPtr), XLLDMA_BD_USR3_OFFSET)
+    (XLlDma_mBdRead((BdPtr), XLLDMA_BD_USR3_OFFSET) & 0xffff)
 
 #define BdGetRxLen(BdPtr) \
-    XLlDma_mBdRead((BdPtr), XLLDMA_BD_USR4_OFFSET)
+    (XLlDma_mBdRead((BdPtr), XLLDMA_BD_USR4_OFFSET) & 0x3fff)
 
 /*
  * Our private per device data.  When a net_device is allocated we will