[U-Boot] [PATCH] ftd_support: Fix regression causes by "fdt: Try to use fdt_address_cells()/fdt_size_cells()"
Jan Kiszka
jan.kiszka at web.de
Fri Nov 28 07:12:22 CET 2014
On 2014-11-27 11:16, Hans de Goede wrote:
> After commit 933cdbb479: "fdt: Try to use fdt_address_cells()/fdt_size_cells()"
> I noticed that allwinner boards would no longer boot.
>
> Switching to fdt_address_cells / fdt_size_cells changes the result from
> bytes to 32 bit words, so when we increment pointers into the blob, we must
> do so by 32 bit words now.
>
> This commit makes allwinner boards boot again.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> common/fdt_support.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index ea42c63..9e84937 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -379,13 +379,13 @@ static int fdt_pack_reg(const void *fdt, void *buf, u64 *address, u64 *size,
> *(fdt64_t *)p = cpu_to_fdt64(address[i]);
> else
> *(fdt32_t *)p = cpu_to_fdt32(address[i]);
> - p += address_len;
> + p += 4 * address_len;
>
> if (size_len == 2)
> *(fdt64_t *)p = cpu_to_fdt64(size[i]);
> else
> *(fdt32_t *)p = cpu_to_fdt32(size[i]);
> - p += size_len;
> + p += 4 * size_len;
> }
>
> return p - (char *)buf;
>
Just debugged this as well...
I would suggest to fix the variable names, too: address_cells and
size_cells.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141128/90e6294d/attachment.pgp>
More information about the U-Boot
mailing list