public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Mugunthan V N <mugunthanvnm@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT
Date: Mon, 11 Apr 2016 11:22:11 +0530	[thread overview]
Message-ID: <570B3B8B.1080503@ti.com> (raw)
In-Reply-To: <5709CB72.1000503@wwwdotorg.org>

Stephen

On Sunday 10 April 2016 09:11 AM, Stephen Warren wrote:
> On 04/09/2016 12:35 PM, Simon Glass wrote:
>> +Stephen
>>
>> Hi Mugunthan,
>>
>> On 7 April 2016 at 09:17, Mugunthan V N <mugunthanvnm@ti.com> wrote:
>>> Size cell and address cell should be read from the parent node
>>> and should not assume with data structures as an example
>>> TI DRA7xx SoC is enabled as 64bit as there is LPAE support
>>> but the addresses specified in DT are all 32 bit sizes. So
>>> changing the code to read from parent node instead of
>>> calculations.
>>
>> I don't understand this. Can you please reword it and shorten the
>> sentences?
> 
>>> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
>>> index 70acc29..8a5fb8c 100644
>>> --- a/lib/fdtdec.c
>>> +++ b/lib/fdtdec.c
>>> @@ -88,15 +88,20 @@ fdt_addr_t fdtdec_get_addr_size_fixed(const void
>>> *blob, int node,
>>>          const fdt32_t *prop_addr, *prop_size, *prop_after_size;
>>>          int len;
>>>          fdt_addr_t addr;
>>> +       int parent;
>>>
>>>          debug("%s: %s: ", __func__, prop_name);
>>>
>>> -       if (na > (sizeof(fdt_addr_t) / sizeof(fdt32_t))) {
>>> +       parent = fdt_parent_offset(blob, node);
>>
>> This is a very slow function. I hope this changes is not needed.
>>
>>> +
>>> +       na = fdt_address_cells(blob, parent);
>>> +       if (na < 1) {
>>>                  debug("(na too large for fdt_addr_t type)\n");
>>>                  return FDT_ADDR_T_NONE;
>>>          }
>>>
>>> -       if (ns > (sizeof(fdt_size_t) / sizeof(fdt32_t))) {
>>> +       ns = fdt_size_cells(blob, parent);
>>> +       if (ns < 0) {
>>>                  debug("(ns too large for fdt_size_t type)\n");
>>>                  return FDT_ADDR_T_NONE;
>>>          }
> 
> The entire point of fdtdec_get_addr_size_fixed() is for use-cases where
> na and ns are known and fixed ahead of time, or have already been
> retrieved from the parent node by the caller. This patch is incorrect. I
> expect the correct fix is to call e.g.
> fdtdec_get_addr_size_auto_parent() or
> fdtdec_get_addr_size_auto_noparent() from somewhere, rather than calling
> fdtdec_get_addr_size_fixed().

Will fix thos in v2 by using fdtdec_get_addr_size_auto_parent()

Regards
Mugunthan V N

  reply	other threads:[~2016-04-11  5:52 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-07 15:16 [U-Boot] [PATCH 00/11] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
2016-04-07 15:17 ` [U-Boot] [PATCH 01/11] drivers: core: device: add support to check dt compatible for a device/machine Mugunthan V N
2016-04-09 18:35   ` Simon Glass
2016-04-07 15:17 ` [U-Boot] [PATCH 02/11] lib: fdtdec: fix size cell and address cell parse from DT Mugunthan V N
2016-04-09 18:35   ` Simon Glass
2016-04-10  3:41     ` Stephen Warren
2016-04-11  5:52       ` Mugunthan V N [this message]
2016-04-07 15:17 ` [U-Boot] [PATCH 03/11] ti_omap5_common: eth: do not define DM_ETH for spl Mugunthan V N
2016-04-09 18:35   ` Simon Glass
2016-04-11  5:54     ` Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 04/11] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1 Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 05/11] ARM: omap5: add platform specific ethernet phy modes configurations Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 06/11] drivers: net: cpsw: add support for reading mac address from efuse Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-12  4:24     ` Mugunthan V N
2016-04-12 14:51       ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 07/11] arm: dts: am4372: add syscon node to cpsw to read mac address Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 08/11] arm: dts: dra7: " Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 09/11] defconfig: am437x_gp_evm: enable eth driver model Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 10/11] defconfig: am437x_sk_evm: " Mugunthan V N
2016-04-11 15:01   ` Tom Rini
2016-04-07 15:17 ` [U-Boot] [PATCH 11/11] defconfig: dra74_evm: " Mugunthan V N
2016-04-11 15:02   ` Tom Rini

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=570B3B8B.1080503@ti.com \
    --to=mugunthanvnm@ti.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