From: Przemyslaw Marczak <p.marczak@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/3] fix: fdtdec: allow parse 'reg' property with zero value in '#size-cells'
Date: Fri, 25 Sep 2015 10:35:12 +0200 [thread overview]
Message-ID: <56050740.5070101@samsung.com> (raw)
In-Reply-To: <56042F58.8000003@wwwdotorg.org>
Hello Stephen,
On 09/24/2015 07:14 PM, Stephen Warren wrote:
> On 09/24/2015 09:29 AM, Przemyslaw Marczak wrote:
>> After rework of lib/fdtdec.c by commit:
>>
>> commit 02464e386bb5f0a022c121f95ae75cf583759d95
>> Author: Stephen Warren <swarren@nvidia.com>
>> Date: Thu Aug 6 15:31:02 2015 -0600
>
> That'd usually be abbreviated as:
>
> Commit 02464e386bb5 "fdt: add new fdt address parsing functions".
Ok, I will update the commit message.
>
> Of course, if you want to shame me that's justified too:-) Tracking down
> regressions sucks:-(
>
Oh no no... maybe a little :)
>> the function fdtdec_get_addr() doesn't work as previous,
>> because the implementation assumes that properties '#address-cells'
>> and '#size-cells' are equal to 1, which can be not true sometimes.
>
> "are equal to" should be "is at least"; the purpose of that rework was
> to support values greater than one.
>
But it describe the fdtdec_get_addr(), which calls
fdtdec_get_addr_size_fixed(...)
and for this call we have:
na = sizeof(fdt_addr_t) / sizeof(fdt32_t) == 1
ns = sizeof(fdt_size_t) / sizeof(fdt32_t) == 1
This is consistent with the description for this function in
include/fdtdec.h.
>> The new API introduced fdtdec_get_addr_size_auto_parent() for the 'reg'
>> property parsing, but the implementation assumes, that #size-cells
>> can't be less than 1.
>>
>> This causes that the following children's 'reg' property can't be
>> reached:
>>
>> parent at 0x0 {
>> #address-cells = <1>;
>> #size-cells = <0>;
>> children at 0x100 {
>> reg = < 0x100 >;
>> };
>> };
>>
>> Change the condition value from '1' to '0', which allows parsing property
>> with at least zero #size-cells, fixes the issue.
>>
>> Now, fdtdec_get_addr_size_auto_parent() works properly.
>
> Sorry about that. This patch,
Don't worry, no one is infallible :)
>
> Acked-by: Stephen Warren <swarren@nvidia.com>
>
> (but not tested, but since this allows a previously failing case, it's
> hard to see how this patch could cause any problems.)
>
This just fixes the problem, which I noticed, but it looks, that it
shouldn't break other things.
Best regards,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com
next prev parent reply other threads:[~2015-09-25 8:35 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-24 15:29 [U-Boot] [PATCH 0/3] Fix fdt 'reg' parsing and unbreak Odroid U3 Przemyslaw Marczak
2015-09-24 15:29 ` [U-Boot] [PATCH 1/3] fix: fdtdec: allow parse 'reg' property with zero value in '#size-cells' Przemyslaw Marczak
2015-09-24 17:14 ` Stephen Warren
2015-09-25 8:35 ` Przemyslaw Marczak [this message]
2015-09-25 15:41 ` Stephen Warren
2015-09-24 15:29 ` [U-Boot] [PATCH 2/3] fix: s5p_gpio: call: dev_get_addr() instead of fdtdec_get_addr() Przemyslaw Marczak
2015-09-24 17:29 ` Stephen Warren
2015-09-25 8:36 ` Przemyslaw Marczak
2015-09-25 15:48 ` Stephen Warren
2015-09-29 4:47 ` Simon Glass
2015-09-24 15:29 ` [U-Boot] [PATCH 3/3] fix: mach-exynos: clock: restore calling dead exynos4_get_mmc_clk() Przemyslaw Marczak
2015-09-25 2:40 ` [U-Boot] [PATCH 0/3] Fix fdt 'reg' parsing and unbreak Odroid U3 Jaehoon Chung
2015-09-25 8:59 ` Przemyslaw Marczak
2015-09-25 8:56 ` Przemyslaw Marczak
2015-09-25 10:15 ` Przemyslaw Marczak
2015-09-28 12:17 ` [U-Boot] [PATCH V2 0/3] Fix fdt 'reg' parsing and unbreak few Exynos4 boards Przemyslaw Marczak
2015-09-28 12:17 ` [U-Boot] [PATCH V2 1/3] fdtdec: fix parsing 'reg' property with zero value in '#size-cells' Przemyslaw Marczak
2015-09-29 4:47 ` Simon Glass
2015-09-30 1:27 ` Minkyu Kang
2015-09-28 12:17 ` [U-Boot] [PATCH V2 2/3] gpio: s5p: call: dev_get_addr() instead of fdtdec_get_addr() Przemyslaw Marczak
2015-09-28 12:17 ` [U-Boot] [PATCH V2 3/3] mach-exynos: clock: restore calling dead exynos4_get_mmc_clk() Przemyslaw Marczak
2015-09-29 4:47 ` Simon Glass
2015-09-30 7:26 ` Przemyslaw Marczak
2015-09-30 8:35 ` Jaehoon Chung
2015-09-30 9:20 ` Przemyslaw Marczak
2015-09-30 11:14 ` [U-Boot] [PATCH V3 0/4] Fix fdt 'reg' parsing and unbreak few Exynos4 boards Przemyslaw Marczak
2015-09-30 11:14 ` [U-Boot] [PATCH V3 1/4] fdtdec: fix parsing 'reg' property with zero value in '#size-cells' Przemyslaw Marczak
2015-10-03 14:28 ` Simon Glass
2015-09-30 11:14 ` [U-Boot] [PATCH V3 2/4] gpio: s5p: call: dev_get_addr() instead of fdtdec_get_addr() Przemyslaw Marczak
2015-10-03 14:44 ` Simon Glass
2015-09-30 11:14 ` [U-Boot] [PATCH V3 3/4] mach-exynos: clock: restore calling dead exynos4_get_mmc_clk() Przemyslaw Marczak
2015-10-03 14:44 ` Simon Glass
2015-09-30 11:14 ` [U-Boot] [PATCH V3 4/4] trats: fdt: disable unused DW MMC Przemyslaw Marczak
2015-10-01 3:37 ` Jaehoon Chung
2015-10-01 7:11 ` Przemyslaw Marczak
2015-10-01 7:22 ` Jaehoon Chung
2015-10-03 14:44 ` Simon Glass
2015-09-30 13:13 ` [U-Boot] [PATCH V3 0/4] Fix fdt 'reg' parsing and unbreak few Exynos4 boards Tom Rini
2015-09-30 13:25 ` Przemyslaw Marczak
2015-09-30 18:30 ` Simon Glass
2015-10-03 13:36 ` Simon Glass
2015-10-05 7:46 ` Przemyslaw Marczak
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=56050740.5070101@samsung.com \
--to=p.marczak@samsung.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox