All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mattijs Korpershoek <mkorpershoek@baylibre.com>
To: Gary Bisson <gary.bisson@boundarydevices.com>, u-boot@lists.denx.de
Cc: roman.kovalivskyi@globallogic.com, erosca@de.adit-jv.com,
	Gary Bisson <gary.bisson@boundarydevices.com>
Subject: Re: [PATCH] cmd: bcb: fix bcb struct alignment issue
Date: Wed, 12 Jan 2022 09:08:34 +0100	[thread overview]
Message-ID: <87wnj5l6kd.fsf@baylibre.com> (raw)
In-Reply-To: <20220111170606.2042950-1-gary.bisson@boundarydevices.com>

Hi Gary,

Thank you for your patch.

Gary Bisson <gary.bisson@boundarydevices.com> writes:

> Without this patch the bcb struct could be located at an odd address
> which resulted in data not being copied to the buffer.
>
> Here was the repro steps (from Mattijs):
> => mmc dev 1
> => bcb load 1 misc
> => bcb dump command
> 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> => part start mmc 1 misc misc_start
> => mmc read ${loadaddr} ${misc_start} 4
> => bcb load 1 misc
> => bcb dump command
> 00000000: 62 6f 6f 74 6f 6e 63 65 2d 62 6f 6f 74 6c 6f 61
> 00000010: 64 65 72 00 00 00 00 00 00 00 00 00 00 00 00 00
>
> This behavior was observed on an Amlogic A311D (ARM64) platform with a
> recent GCC toolchain (11.2.0) but is most likely affecting other
> platforms.
>
> To avoid issues the structure is aligned on DMA minimum alignment value
> as it is passed directly to the read function.
>
> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
> ---
>  cmd/bcb.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # on khadas vim3

>
> diff --git a/cmd/bcb.c b/cmd/bcb.c
> index 6b6f1e9a2f1..92f4d27990d 100644
> --- a/cmd/bcb.c
> +++ b/cmd/bcb.c
> @@ -12,6 +12,7 @@
>  #include <log.h>
>  #include <part.h>
>  #include <malloc.h>
> +#include <memalign.h>
>  
>  enum bcb_cmd {
>  	BCB_CMD_LOAD,
> @@ -24,7 +25,7 @@ enum bcb_cmd {
>  
>  static int bcb_dev = -1;
>  static int bcb_part = -1;
> -static struct bootloader_message bcb = { { 0 } };
> +static struct bootloader_message bcb __aligned(ARCH_DMA_MINALIGN) = { { 0 } };
>  
>  static int bcb_cmd_get(char *cmd)
>  {
> -- 
> 2.34.1

  reply	other threads:[~2022-01-12  8:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-11 17:06 [PATCH] cmd: bcb: fix bcb struct alignment issue Gary Bisson
2022-01-12  8:08 ` Mattijs Korpershoek [this message]
2022-02-05 16:40 ` sbabic

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=87wnj5l6kd.fsf@baylibre.com \
    --to=mkorpershoek@baylibre.com \
    --cc=erosca@de.adit-jv.com \
    --cc=gary.bisson@boundarydevices.com \
    --cc=roman.kovalivskyi@globallogic.com \
    --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.