All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <monstr@monstr.eu>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] fpga: zynqpl: Fixed bug in alignment routine
Date: Tue, 18 Mar 2014 13:17:05 +0100	[thread overview]
Message-ID: <53283941.3070603@monstr.eu> (raw)
In-Reply-To: <53281DED.8030903@gmail.com>

On 03/18/2014 11:20 AM, Eli Billauer wrote:
> On 18/03/14 08:11, S Durga Prasad Paladugu wrote:
>> This looks like not correct because if you look at the code above this, it always ensuring that the new aligned buffer start is in front of the actual buffer
> 
> Maybe it should, but it doesn't. In the boot log it says:
> 
> zynq_load: Align buffer at 10006f to 100080(swap 1)
> 

I have checked this and there is bug in code.

I have tested it by:
+       int i;
+
+       for (i = 0; i < 100; i++) {
+               printf("%x: align %x\n", i, ALIGN((u32)i, ARCH_DMA_MINALIGN));
+       }


Does this work for you? If yes, I will send this as regular patch.

diff --git a/drivers/fpga/zynqpl.c b/drivers/fpga/zynqpl.c
index 3572bc9..49eef0f 100644
--- a/drivers/fpga/zynqpl.c
+++ b/drivers/fpga/zynqpl.c
@@ -289,10 +289,11 @@ static int zynq_dma_xfer_init(u32 partialbit)
 static u32 *zynq_align_dma_buffer(u32 *buf, u32 len, u32 swap)
 {
        u32 *new_buf;
-       u32 i;
+       u32 i, align;

-       if ((u32)buf != ALIGN((u32)buf, ARCH_DMA_MINALIGN)) {
-               new_buf = (u32 *)ALIGN((u32)buf, ARCH_DMA_MINALIGN);
+       align = ALIGN((u32)(buf - ARCH_DMA_MINALIGN + 1), ARCH_DMA_MINALIGN);
+       if ((u32)buf != align) {
+               new_buf = (u32 *)align;

                /*
                 * This might be dangerous but permits to flash if

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140318/d420533a/attachment.pgp>

  reply	other threads:[~2014-03-18 12:17 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-15 20:40 [U-Boot] [PATCH] fpga: zynqpl: Fixed bug in alignment routine Eli Billauer
2014-03-18  6:11 ` S Durga Prasad Paladugu
2014-03-18 10:20   ` Eli Billauer
2014-03-18 12:17     ` Michal Simek [this message]
2014-03-18 21:14       ` Eli Billauer
2014-03-19  5:50         ` 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=53283941.3070603@monstr.eu \
    --to=monstr@monstr.eu \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.