[U-Boot] [RFC PATCH] SPL: FIT: Align loading address for header

If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
Signed-off-by: Michal Simek michal.simek@xilinx.com ---
Not sure if this is the right way how to ensure it. But patch is pointing to the problem. For example if bl_len is 1. --- common/spl/spl_fit.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index e301927c87ac..08e432a52dbb 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -119,6 +119,7 @@ int spl_load_simple_fit(struct spl_load_info *info, ulong sector, void *fit) * be before CONFIG_SYS_TEXT_BASE. */ fit = (void *)(CONFIG_SYS_TEXT_BASE - size - info->bl_len); + fit = (void *)ALIGN((ulong)fit, 8); sectors = (size + info->bl_len - 1) / info->bl_len; count = info->read(info, sector, sectors, fit); debug("fit read sector %lx, sectors=%d, dst=%p, count=%lu\n",

On 28 April 2016 at 02:36, Michal Simek michal.simek@xilinx.com wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
Signed-off-by: Michal Simek michal.simek@xilinx.com
Not sure if this is the right way how to ensure it. But patch is pointing to the problem. For example if bl_len is 1.
I suppose this is a non-block device. OK.
common/spl/spl_fit.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index e301927c87ac..08e432a52dbb 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -119,6 +119,7 @@ int spl_load_simple_fit(struct spl_load_info *info, ulong sector, void *fit) * be before CONFIG_SYS_TEXT_BASE. */ fit = (void *)(CONFIG_SYS_TEXT_BASE - size - info->bl_len);
fit = (void *)ALIGN((ulong)fit, 8); sectors = (size + info->bl_len - 1) / info->bl_len; count = info->read(info, sector, sectors, fit); debug("fit read sector %lx, sectors=%d, dst=%p, count=%lu\n",
-- 1.9.1
Reviewed-by: Simon Glass sjg@chromium.org

On Thursday 28 April 2016 02:06 PM, Michal Simek wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
What about loading of U-boot image and dtb image? I have posted a similar patch for solving this[1]. Can you see if it helps?
[1] http://patchwork.ozlabs.org/patch/606958/
Thanks and regards, Lokesh
Signed-off-by: Michal Simek michal.simek@xilinx.com
Not sure if this is the right way how to ensure it. But patch is pointing to the problem. For example if bl_len is 1.
common/spl/spl_fit.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index e301927c87ac..08e432a52dbb 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -119,6 +119,7 @@ int spl_load_simple_fit(struct spl_load_info *info, ulong sector, void *fit) * be before CONFIG_SYS_TEXT_BASE. */ fit = (void *)(CONFIG_SYS_TEXT_BASE - size - info->bl_len);
- fit = (void *)ALIGN((ulong)fit, 8); sectors = (size + info->bl_len - 1) / info->bl_len; count = info->read(info, sector, sectors, fit); debug("fit read sector %lx, sectors=%d, dst=%p, count=%lu\n",

Hi,
On 2.5.2016 05:46, Lokesh Vutla wrote:
On Thursday 28 April 2016 02:06 PM, Michal Simek wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
What about loading of U-boot image and dtb image? I have posted a similar patch for solving this[1]. Can you see if it helps?
I have created this before I saw your patch. I am happy with your patch. Please ignore this one.
Thanks, Michal

On Thu, Apr 28, 2016 at 10:36:11AM +0200, Michal Simek wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!

On Monday 30 May 2016 11:26 PM, Tom Rini wrote:
On Thu, Apr 28, 2016 at 10:36:11AM +0200, Michal Simek wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
This patch is not required and should not be applied.
Thanks and regards, Lokesh
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On Tue, May 31, 2016 at 09:59:47AM +0530, Lokesh Vutla wrote:
On Monday 30 May 2016 11:26 PM, Tom Rini wrote:
On Thu, Apr 28, 2016 at 10:36:11AM +0200, Michal Simek wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
This patch is not required and should not be applied.
Did you both agree on "spl: Allow to load a FIT containing U-Boot from FS" instead then? And thus what's in the tree needs a little re-work since I made the above apply on top of this one instead? Sorry/thanks!

On Tuesday 31 May 2016 07:39 PM, Tom Rini wrote:
On Tue, May 31, 2016 at 09:59:47AM +0530, Lokesh Vutla wrote:
On Monday 30 May 2016 11:26 PM, Tom Rini wrote:
On Thu, Apr 28, 2016 at 10:36:11AM +0200, Michal Simek wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
This patch is not required and should not be applied.
Did you both agree on "spl: Allow to load a FIT containing U-Boot from FS" instead then? And thus what's in the tree needs a little re-work since I made the above apply on top of this one instead? Sorry/thanks!
Yes, Michal as well agreed that this is not required[1]. This patch might work but it can fail in corner cases.
If you want I can send a fix patch on top of latest.
[1] http://patchwork.ozlabs.org/patch/616065/
Thanks and regards, Lokesh

On Tue, May 31, 2016 at 07:42:42PM +0530, Lokesh Vutla wrote:
On Tuesday 31 May 2016 07:39 PM, Tom Rini wrote:
On Tue, May 31, 2016 at 09:59:47AM +0530, Lokesh Vutla wrote:
On Monday 30 May 2016 11:26 PM, Tom Rini wrote:
On Thu, Apr 28, 2016 at 10:36:11AM +0200, Michal Simek wrote:
If bl_len is not aligned it can caused a problem because another code expects that start is aligned.
Signed-off-by: Michal Simek michal.simek@xilinx.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/master, thanks!
This patch is not required and should not be applied.
Did you both agree on "spl: Allow to load a FIT containing U-Boot from FS" instead then? And thus what's in the tree needs a little re-work since I made the above apply on top of this one instead? Sorry/thanks!
Yes, Michal as well agreed that this is not required[1]. This patch might work but it can fail in corner cases.
If you want I can send a fix patch on top of latest.
Yes please, thanks!
participants (4)
-
Lokesh Vutla
-
Michal Simek
-
Simon Glass
-
Tom Rini