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: Sun, 7 Feb 2021 23:11:03 +0800 [thread overview]
Message-ID: <1612710687-56493-4-git-send-email-bmeng.cn@gmail.com> (raw)
In-Reply-To: <1612710687-56493-1-git-send-email-bmeng.cn@gmail.com>
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(-)
diff --git a/common/fdt_support.c b/common/fdt_support.c
index 638eca9..b3aa865 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1602,22 +1602,31 @@ u64 fdt_get_base_address(const void *fdt, int node)
}
/*
- * Read a property of size <prop_len>. Currently only supports 1 or 2 cells.
+ * Read a property of size <prop_len>. Currently only supports 1 or 2 cells,
+ * or 3 cells specially for a PCI address.
*/
static int fdt_read_prop(const fdt32_t *prop, int prop_len, int cell_off,
uint64_t *val, int cells)
{
- const fdt32_t *prop32 = &prop[cell_off];
- const unaligned_fdt64_t *prop64 = (const fdt64_t *)&prop[cell_off];
+ const fdt32_t *prop32;
+ const unaligned_fdt64_t *prop64;
if ((cell_off + cells) > prop_len)
return -FDT_ERR_NOSPACE;
+ prop32 = &prop[cell_off];
+
+ /* Special handling for PCI address in PCI bus <ranges> */
+ if (cells == 3)
+ cell_off += 1;
+ prop64 = (const fdt64_t *)&prop[cell_off];
+
switch (cells) {
case 1:
*val = fdt32_to_cpu(*prop32);
break;
case 2:
+ case 3:
*val = fdt64_to_cpu(*prop64);
break;
default:
--
2.7.4
next prev parent reply other threads:[~2021-02-07 15:11 UTC|newest]
Thread overview: 61+ 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 ` [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 ` Bin Meng [this message]
2021-02-08 4:21 ` [PATCH 03/26] common: fdt_support: Support special case of PCI address in fdt_read_prop() Simon Glass
2021-02-08 5:17 ` Bin Meng
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
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=1612710687-56493-4-git-send-email-bmeng.cn@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox