[PATCH v2 0/3] Fix DT based address translations

From: Herve Codina
Date: Tue Oct 17 2023 - 07:02:30 EST


Hi,

This patch series fixes a DT based address translation (translations
using the ranges property).

The issue is present with a ranges property made of a 3 cells child
address, a 3 cells parent address and a 2 cells child size.
This can happen with the recent addition of of_pci_prop_ranges() in
commit 407d1a51921e ("PCI: Create device tree node for bridge")

The issue description is fully described in the first patch commit log.

In this series,
- The first patch fixes the issue.
- The second patch avoids duplicated code.
- The third patch adds unit tests related address translations.

I previously sent the first patch alone:
https://lore.kernel.org/linux-kernel/20231003065236.121987-1-herve.codina@xxxxxxxxxxx/
This series v2 has to be considered as the next iteration based on the
review done on my previous patch sent alone.

Best regards,
Hervé

Changes v1 -> v2

- Patch 1
Simplify of_bus_default_flags_map().
Fix the commit log (pci-ep-bus ranges[0] size is 0x200_0000 instead
of 0x2000_0000).

- Patch 2 (new in v2)
Remove duplicated code.

- Patch 3 (new in v2)
Add unit tests.

Herve Codina (3):
of: address: Fix address translation when address-size is greater than
2
of: address: Remove duplicated functions
of: unittest: Add tests for address translations

drivers/of/address.c | 43 ++++++---
drivers/of/unittest-data/tests-address.dtsi | 101 ++++++++++++++++++++
drivers/of/unittest.c | 74 ++++++++++++++
3 files changed, 205 insertions(+), 13 deletions(-)

--
2.41.0