[U-Boot] [PATCH v2 05/16] dtoc: Add support for 32 or 64-bit addresses

sjg at google.com sjg at google.com
Fri Sep 15 19:25:44 UTC 2017


On 29 August 2017 at 14:23, Dr. Philipp Tomsich
<philipp.tomsich at theobroma-systems.com> wrote:
>
>> On 29 Aug 2017, at 22:15, Simon Glass <sjg at chromium.org> wrote:
>>
>> When using 32-bit addresses dtoc works correctly. For 64-bit addresses it
>> does not since it ignores the #address-cells and #size-cells properties.
>>
>> Update the tool to use fdt64_t as the element type for reg properties when
>> either the address or size is larger than one cell. Use the correct value
>> so that C code can obtain the information from the device tree easily.
>>
>> Alos create a new type, fdt_val_t, which is defined to either fdt32_t or
>> fdt64_t depending on the word size of the machine. This type corresponds
>> to fdt_addr_t and fdt_size_t. Unfortunately we cannot just use those types
>> since they are defined to phys_addr_t and phys_size_t which use
>> 'unsigned long' in the 32-bit case, rather than 'unsigned int'.
>>
>> Add tests for the four combinations of address and size values (32/32,
>> 64/64, 32/64, 64/32). Also update existing uses for rk3399 and rk3368
>> which now need to use the new fdt_val_t type.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>>
>> Suggested-by: Heiko Stuebner <heiko at sntech.de>
>> Reported-by: Kever Yang <kever.yang at rock-chips.com>
>
> Reviewed-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>
> See below.
>
>> ---
>>
>> Changes in v2:
>> - Support 'reg' properties with a single cell (e.g. #size-cells = 0)
>> - Introduce an fdt_val_t type which is either 32- or 64-bits long
>> - Update rk3368 and rk3399 uses
>> - Drop review tags since there are significant changes in this patch
>>
>> drivers/clk/rockchip/clk_rk3368.c  |   2 +-
>> drivers/clk/rockchip/clk_rk3399.c  |   4 +-
>> drivers/core/regmap.c              |   2 +-
>> include/fdtdec.h                   |   2 +
>> include/regmap.h                   |   2 +-
>> include/syscon.h                   |   6 +-
>> tools/dtoc/dtb_platdata.py         |  61 +++++++++++
>> tools/dtoc/dtoc_test_addr32.dts    |  27 +++++
>> tools/dtoc/dtoc_test_addr32_64.dts |  33 ++++++
>> tools/dtoc/dtoc_test_addr64.dts    |  33 ++++++
>> tools/dtoc/dtoc_test_addr64_32.dts |  33 ++++++
>> tools/dtoc/fdt_util.py             |   2 +
>> tools/dtoc/test_dtoc.py            | 212 +++++++++++++++++++++++++++++++++++++
>> 13 files changed, 413 insertions(+), 6 deletions(-)
>> create mode 100644 tools/dtoc/dtoc_test_addr32.dts
>> create mode 100644 tools/dtoc/dtoc_test_addr32_64.dts
>> create mode 100644 tools/dtoc/dtoc_test_addr64.dts
>> create mode 100644 tools/dtoc/dtoc_test_addr64_32.dts
>>
Applied to u-boot-fdt thanks!


More information about the U-Boot mailing list