All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bin Meng <bmeng.cn@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH 03/26] common: fdt_support: Support special case of PCI address in fdt_read_prop()
Date: Mon, 8 Feb 2021 13:17:30 +0800	[thread overview]
Message-ID: <CAEUhbmUXuLsKDQNfsmVjdAuCmfBVxnY1XGUBZxj=HsaMg=qGiA@mail.gmail.com> (raw)
In-Reply-To: <CAPnjgZ05TGY8-PgCxMh5S+VKwR794o6iLCOzpb23eydg+67wqQ@mail.gmail.com>

Hi Simon,

On Mon, Feb 8, 2021 at 12:21 PM Simon Glass <sjg@chromium.org> wrote:
>
> Hi Bin,
>
> On Sun, 7 Feb 2021 at 08:11, Bin Meng <bmeng.cn@gmail.com> wrote:
> >
> > 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.
> >
> > This adds the special handling of such case.
> >
> > Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> > ---
> >
> >  common/fdt_support.c | 15 ++++++++++++---
> >  1 file changed, 12 insertions(+), 3 deletions(-)
>
> I think this is missing why it is needed. Also needs an update to
> function to the comment in the header file.
>

I will try to add more details in v2.

The reason why this is needed is because in fdt_read_range() may be
used to read PCI address from <ranges>.
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.

Regards,
Bin

  reply	other threads:[~2021-02-08  5:17 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-07 15:11 [PATCH 00/26] ppc: qemu: Convert qemu-ppce500 to driver model Bin Meng
2021-02-07 15:11 ` Bin Meng
2021-02-07 15:11 ` [PATCH 01/26] Revert "pci: pci-uclass: Dynamically allocate the PCI regions" Bin Meng
2021-02-07 15:33   ` Simon Glass
2021-02-07 19:33     ` Tom Rini
2021-02-10  0:46     ` Bin Meng
2021-02-10  2:36       ` Tom Rini
2021-02-10  5:10       ` Simon Glass
2021-02-10  7:13         ` Stefan Roese
2021-02-10 14:13       ` Tom Rini
2021-02-10 14:27         ` Marek Vasut
2021-02-10 14:48           ` Tom Rini
2021-02-10 14:50             ` Marek Vasut
2021-02-14  4:53         ` Bin Meng
2021-02-14 14:35           ` Tom Rini
2021-02-14 14:44             ` Marek Vasut
2021-02-14 14:52               ` Tom Rini
2021-02-14 19:12                 ` Daniel Schwierzeck
2021-02-14 20:30                   ` Tom Rini
2021-02-18  0:32                     ` Bin Meng
2021-02-07 15:11 ` [PATCH 02/26] ppc: qemu: Update MAINTAINERS for correct email address Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-07 15:11 ` [PATCH 03/26] common: fdt_support: Support special case of PCI address in fdt_read_prop() Bin Meng
2021-02-08  4:21   ` Simon Glass
2021-02-08  5:17     ` Bin Meng [this message]
2021-02-08 14:08       ` Simon Glass
2021-02-07 15:11 ` [PATCH 04/26] ppc: qemu: Support non-identity PCI bus address Bin Meng
2021-02-07 15:11 ` [PATCH 05/26] ppc: qemu: Fix CONFIG_SYS_PCI_MAP_END Bin Meng
2021-02-07 15:11 ` [PATCH 06/26] ppc: mpc85xx: Wrap LAW related codes with CONFIG_FSL_LAW Bin Meng
2021-02-07 15:11 ` [PATCH 07/26] ppc: qemu: Drop init_laws() and print_laws() Bin Meng
2021-02-07 15:11 ` [PATCH 08/26] ppc: qemu: Drop board_early_init_f() Bin Meng
2021-02-07 15:11 ` [PATCH 09/26] ppc: qemu: Enable OF_CONTROL Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-07 15:11 ` [PATCH 10/26] ppc: qemu: Enable driver model Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-07 15:11 ` [PATCH 11/26] include: Remove extern from addr_map.h Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-07 15:11 ` [PATCH 12/26] lib: addr_map: Move address_map[] type to the header file Bin Meng
2021-02-08  4:21   ` Simon Glass
2021-02-07 15:11 ` [PATCH 13/26] cmd: Add a command to display the address map Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-08  5:12     ` Bin Meng
2021-02-08 14:13       ` Simon Glass
2021-02-07 15:11 ` [PATCH 14/26] lib: kconfig: Mention CONFIG_ADDR_MAP limitation in the help Bin Meng
2021-02-08  4:21   ` Simon Glass
2021-02-07 15:11 ` [PATCH 15/26] ppc: io.h: Use addrmap_ translation APIs only in post-relocation phase Bin Meng
2021-02-07 15:11 ` [PATCH 16/26] common: Move initr_addr_map() to a bit earlier Bin Meng
2021-02-08  4:21   ` Simon Glass
2021-02-07 15:11 ` [PATCH 17/26] ppc: qemu: Switch over to use DM serial Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-07 15:11 ` [PATCH 18/26] pci: mpc85xx: Wrap LAW programming with CONFIG_FSL_LAW Bin Meng
2021-02-07 15:11 ` [PATCH 19/26] pci: mpc85xx: Support controller register physical address beyond 32-bit Bin Meng
2021-02-07 15:11 ` [PATCH 20/26] pci: mpc85xx: Support 64-bit bus and cpu address Bin Meng
2021-02-07 15:11 ` [PATCH 21/26] ppc: qemu: Switch over to use DM ETH and PCI Bin Meng
2021-02-07 15:11 ` [PATCH 22/26] ppc: qemu: Drop CONFIG_OF_BOARD_SETUP Bin Meng
2021-02-07 15:11 ` [PATCH 23/26] cmd: Fix virtio command dependency Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-07 15:11 ` [PATCH 24/26] ppc: qemu: Enable VirtIO NET support Bin Meng
2021-02-07 15:11 ` [PATCH 25/26] ppc: qemu: Move board directory from board/freescale to board/emulation Bin Meng
2021-02-07 15:11 ` [PATCH 26/26] doc: Add a reST document for qemu-ppce500 Bin Meng
2021-02-08  4:20   ` Simon Glass
2021-02-10  0:36 ` [PATCH 00/26] ppc: qemu: Convert qemu-ppce500 to driver model Bin Meng
2021-02-10  0:36   ` Bin Meng

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='CAEUhbmUXuLsKDQNfsmVjdAuCmfBVxnY1XGUBZxj=HsaMg=qGiA@mail.gmail.com' \
    --to=bmeng.cn@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.