From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Fri, 13 Sep 2013 18:24:52 +0200 Subject: [U-Boot] [PATCH] net: fec: Avoid MX28 bus sync issue In-Reply-To: <20130913160644.CA908380621@gemini.denx.de> References: <1373583784-7129-1-git-send-email-marex@denx.de> <5232F2E7.4050407@digi.com> <20130913160644.CA908380621@gemini.denx.de> Message-ID: <201309131824.52506.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Wolfgang Denk, > Dear Robert Hodaszi, > > In message <5232F2E7.4050407@digi.com> you wrote: > > Ok. Then what about if I would use the stack, but align the buffer > > manually. > > Has this been tested? Does it work? > > > - uchar buff[FEC_MAX_PKT_SIZE] __aligned(ARCH_DMA_MINALIGN); > > + /* Align the receive buffer */ > > + uchar buff_unaligned[FEC_MAX_PKT_SIZE + (ARCH_DMA_MINALIGN - 1)]; > > + uchar *buff = ((uint32_t)buff_unaligned + (ARCH_DMA_MINALIGN - > > 1)) & ~(ARCH_DMA_MINALIGN - 1); > > You should use the ALIGN() macro here. We already have this stuff in include/common.h ... ALLOC_CACHE_ALIGNED_BUFFER it is called IIRC Best regards, Marek Vasut