diff --git a/ChangeLog b/ChangeLog index 598fc6ac6e..9693f75aad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5028,3 +5028,5 @@ * configs/sam4l-xplained/src/sam_slcd.c: Beginning of a driver for the LED1 segment LCD module. This driver is incomplete on initial check- in (2013-6-21). + * drivers/net/enc28j60.c: Change buffer ordering to work around Errata + #5. From Dave (ziggurat29, 2013-6-22). diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c index 203259aeb9..6b4408f12a 100644 --- a/drivers/net/enc28j60.c +++ b/drivers/net/enc28j60.c @@ -156,10 +156,17 @@ #define ALIGNED_BUFSIZE ((CONFIG_NET_BUFSIZE + 255) & ~255) -#define PKTMEM_TX_START 0x0000 /* Start TX buffer at 0 */ -#define PKTMEM_TX_ENDP1 ALIGNED_BUFSIZE /* Allow TX buffer for one frame */ -#define PKTMEM_RX_START PKTMEM_TX_ENDP1 /* Followed by RX buffer */ -#define PKTMEM_RX_END PKTMEM_END /* RX buffer goes to the end of SRAM */ +#if 0 /* Fix for Errata #5 */ +# define PKTMEM_TX_START 0x0000 /* Start TX buffer at 0 */ +# define PKTMEM_TX_ENDP1 ALIGNED_BUFSIZE /* Allow TX buffer for one frame */ +# define PKTMEM_RX_START PKTMEM_TX_ENDP1 /* Followed by RX buffer */ +# define PKTMEM_RX_END PKTMEM_END /* RX buffer goes to the end of SRAM */ +#else +# define PKTMEM_RX_START 0x0000 +# define PKTMEM_RX_END (PKTMEM_END-ALIGNED_BUFSIZE) +# define PKTMEM_TX_START (PKTMEM_RX_END+1) +# define PKTMEM_TX_ENDP1 (PKTMEM_TX_START+ALIGNED_BUFSIZE) +#endif /* Misc. Helper Macros ******************************************************/