>-----Original Message-----
>From: Bin Meng <bmeng...@gmail.com>
>Sent: Thursday, February 18, 2021 9:28 PM
>To: Simon Glass <s...@chromium.org>; Alexander Graf <ag...@csgraf.de>;
>Priyanka Jain <priyanka.j...@nxp.com>
>Cc: U-Boot Mailing List <u-boot@lists.denx.de>; Tom Rini
><tr...@konsulko.com>
>Subject: [PATCH v2 03/38] common: fdt_support: Support special case of PCI
>address in fdt_read_prop()
>
>At present fdt_read_prop() can only handle 1 or 2 cells. It is called by
>fdt_read_range() which may be used to read PCI address from <ranges> for a
>PCI bus node where the number of PCI address cell is 3. The <ranges>
>property is an array of:
>
>  { <child address> <parent address> <size in child address space> }
>
>When trying to read <child address> from a PCI bus node using
>fdt_read_prop(), as the codes below:
>
>    /* Read <child address> */
>    if (child_addr) {
>        r = fdt_read_prop(ranges, ranges_len, cell, child_addr,
>                          acells);
>        if (r)
>            return r;
>    }
>
>it will fail, because the PCI child address is made up of 3 cells but
>fdt_read_prop() cannot handle it. We advance the cell offset by 1 so that the
><child address> can be correctly read.
>
>This adds the special handling of such case.
>
>Signed-off-by: Bin Meng <bmeng...@gmail.com>
>
>---
>
Reviewed-by: Priyanka Jain <priyanka.j...@nxp.com>

Reply via email to