From: Johan Jonker <jbx6244@gmail.com>
To: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
Cc: Kever Yang <kever.yang@rock-chips.com>,
dario.binacchi@amarulasolutions.com, sjg@chromium.org,
u-boot@lists.denx.de, yifeng.zhao@rock-chips.com
Subject: Re: [PATCH v4 01/11] include: fdtdec: decouple fdt_addr_t and phys_addr_t size
Date: Sat, 25 Feb 2023 10:20:44 +0100 [thread overview]
Message-ID: <edcca552-4e3e-c732-9237-8daf0829e839@gmail.com> (raw)
In-Reply-To: <CAOf5uwmGv-JF20yy2Bu4broGq89VDfo5UsT7MWAHKbJ-VP8VJg@mail.gmail.com>
On 2/25/23 10:15, Michael Nazzareno Trimarchi wrote:
> Hi Johan
>
> On Sat, Feb 25, 2023 at 10:11 AM Johan Jonker <jbx6244@gmail.com> wrote:
>>
>>
>>
>> On 2/23/23 01:47, Kever Yang wrote:
>>> Hi Johan,
>>>
>>> This update will cause below error on evb-ast2500/2600:
>>
>> Hi Kever, Simon,
>>
>> For "spi-aspeed-smc.c" I have submitted a patch proposal.
>> The changes in patch 1 possible involves a lot more boards that might need a change to which the external MAINTAINERS may or may not respond to.
>> As that becomes a lengthy time consuming process. Is it maybe possible to skip patch 1 for now and get at least the more essential patches 2-11 merged?
>> Please advise what's the best option here to get forward.
>>
>> Johan
>
> Please point to the patch you mentioned.
[PATCH v1] spi: spi-aspeed-smc: convert devfdt_get_addr_index output to phys_addr_t
https://lore.kernel.org/u-boot/f3dba231-4a55-0a94-dfab-5cab1419d132@gmail.com/T/#m167646537956e20dc9ae60957f6d54f8a00866d7
>
> Kever if you are going to pick the nand patches part let me know
>
> Michael
>
>>
>>
>>>
>>> $ tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board ${TEST_PY_BD} ${OVERRIDE}
>>> Building current source for 1 boards (1 thread, 24 jobs per thread)
>>> arm: + evb-ast2600
>>> +drivers/spi/spi-aspeed-smc.c: In function 'apseed_spi_of_to_plat':
>>> +drivers/spi/spi-aspeed-smc.c:1154:22: error: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'fdt_size_t' {aka 'unsigned int'} [-Werror=format=]
>>> + 1154 | dev_dbg(bus, "ctrl_base = 0x%x, ahb_base = 0x%p, size = 0x%lx\n",
>>> + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> + 1155 | (u32)priv->regs, plat->ahb_base, plat->ahb_sz);
>>> + | ~~~~~~~~~~~~
>>> + | |
>>> + | fdt_size_t {aka unsigned int}
>>> +include/dm/device_compat.h:50:24: note: in definition of macro 'dev_printk_emit'
>>> + 50 | printf(fmt, ##__VA_ARGS__); \
>>> + | ^~~
>>> +include/dm/device_compat.h:117:9: note: in expansion of macro '__dev_printk'
>>> + 117 | __dev_printk(LOGL_DEBUG, dev, fmt, ##__VA_ARGS__)
>>> + | ^~~~~~~~~~~~
>>> +drivers/spi/spi-aspeed-smc.c:1154:9: note: in expansion of macro 'dev_dbg'
>>> + | ^~~~~~~
>>> +drivers/spi/spi-aspeed-smc.c:1154:69: note: format string is defined here
>>> + | ~~^
>>> + | |
>>> + | long unsigned int
>>> + | %x
>>> +In file included from include/linux/printk.h:4,
>>> + from include/linux/kernel.h:5,
>>> + from arch/arm/include/asm/io.h:14,
>>> + from drivers/spi/spi-aspeed-smc.c:13:
>>> +include/log.h:222:24: note: in definition of macro 'log'
>>> + 222 | printf(_fmt, ##_args); \
>>> + | ^~~~
>>> +include/dm/device_compat.h:85:17: note: in expansion of macro 'dev_printk_emit'
>>> + 85 | dev_printk_emit(LOG_CATEGORY, level, fmt, ##__VA_ARGS__); \
>>> + | ^~~~~~~~~~~~~~~
>>> +include/dm/device_compat.h:54:24: note: in definition of macro 'dev_printk_emit'
>>> + 54 | printf(fmt, ##__VA_ARGS__); \
>>> +include/dm/device_compat.h:91:41: error: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'fdt_size_t' {aka 'unsigned int'} [-Werror=format=]
>>> + 91 | "%s %s: " fmt, \
>>> + | ^~~~~~~~~
>>> +include/dm/device_compat.h:90:25: note: in expansion of macro 'dev_printk_emit'
>>> + 90 | dev_printk_emit(__dev->driver->id, level, \
>>> + | ^~~~~~~~~~~~~~~
>>> +include/dm/device_compat.h:96:41: error: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'fdt_size_t' {aka 'unsigned int'} [-Werror=format=]
>>> + 96 | "%s %s: " fmt, \
>>> +include/dm/device_compat.h:95:25: note: in expansion of macro 'dev_printk_emit'
>>> + 95 | dev_printk_emit(LOG_CATEGORY, level, \
>>> +cc1: all warnings being treated as errors
>>> +make[3]: *** [scripts/Makefile.build:256: drivers/spi/spi-aspeed-smc.o] Error 1
>>> +make[2]: *** [scripts/Makefile.build:397: drivers/spi] Error 2
>>> +make[1]: *** [Makefile:1846: drivers] Error 2
>>> +make: *** [Makefile:177: sub-make] Error 2
>>> 0 0 1 /1 evb-ast2600
>>>
>>>
>>> Thanks,
>>>
>>> - Kever
>>>
>>> On 2023/2/18 23:26, Johan Jonker wrote:
>>>> The DT specification supports CPUs with both 32-bit and 64-bit addressing
>>>> capabilities. In U-boot the fdt_addr_t and phys_addr_t size are coupled
>>>> by a typedef. The MTD NAND drivers for 32-bit CPU's can describe partitions
>>>> with a 64-bit reg property. These partitions synced from Linux end up with
>>>> the wrong offset and sizes when only the lower 32-bit is passed.
>>>> Decouple the fdt_addr_t and phys_addr_t size as they don't necessary
>>>> match.
>>>>
>>>> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
>>>> ---
>>>>
>>>> Changed V2:
>>>> reword
>>>>
>>>> ---
>>>>
>>>> Note:
>>>> Most drivers still assume that FDT and CPU capabilities are identical.
>>>> In order to use these variables a cast is needed.
>>>> ---
>>>> Kconfig | 8 ++++++++
>>>> include/fdtdec.h | 13 +++++++++----
>>>> 2 files changed, 17 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/Kconfig b/Kconfig
>>>> index a75cce7e..7697dade 100644
>>>> --- a/Kconfig
>>>> +++ b/Kconfig
>>>> @@ -422,11 +422,19 @@ endif # EXPERT
>>>>
>>>> config PHYS_64BIT
>>>> bool "64bit physical address support"
>>>> + select FDT_64BIT
>>>> help
>>>> Say Y here to support 64bit physical memory address.
>>>> This can be used not only for 64bit SoCs, but also for
>>>> large physical address extension on 32bit SoCs.
>>>>
>>>> +config FDT_64BIT
>>>> + bool "64bit fdt address support"
>>>> + help
>>>> + Say Y here to support 64bit fdt addresses.
>>>> + This can be used not only for 64bit SoCs, but also
>>>> + for large address extensions on 32bit SoCs.
>>>> +
>>>> config HAS_ROM
>>>> bool
>>>> select BINMAN
>>>> diff --git a/include/fdtdec.h b/include/fdtdec.h
>>>> index 12355afd..af29ac0c 100644
>>>> --- a/include/fdtdec.h
>>>> +++ b/include/fdtdec.h
>>>> @@ -18,15 +18,18 @@
>>>> #include <pci.h>
>>>>
>>>> /*
>>>> - * A typedef for a physical address. Note that fdt data is always big
>>>> + * Support for 64bit fdt addresses.
>>>> + * This can be used not only for 64bit SoCs, but also
>>>> + * for large address extensions on 32bit SoCs.
>>>> + * Note that fdt data is always big
>>>> * endian even on a litle endian machine.
>>>> */
>>>> -typedef phys_addr_t fdt_addr_t;
>>>> -typedef phys_size_t fdt_size_t;
>>>>
>>>> #define FDT_SIZE_T_NONE (-1U)
>>>>
>>>> -#ifdef CONFIG_PHYS_64BIT
>>>> +#ifdef CONFIG_FDT_64BIT
>>>> +typedef u64 fdt_addr_t;
>>>> +typedef u64 fdt_size_t;
>>>> #define FDT_ADDR_T_NONE ((ulong)(-1))
>>>>
>>>> #define fdt_addr_to_cpu(reg) be64_to_cpu(reg)
>>>> @@ -35,6 +38,8 @@ typedef phys_size_t fdt_size_t;
>>>> #define cpu_to_fdt_size(reg) cpu_to_be64(reg)
>>>> typedef fdt64_t fdt_val_t;
>>>> #else
>>>> +typedef u32 fdt_addr_t;
>>>> +typedef u32 fdt_size_t;
>>>> #define FDT_ADDR_T_NONE (-1U)
>>>>
>>>> #define fdt_addr_to_cpu(reg) be32_to_cpu(reg)
>>>> --
>>>> 2.20.1
>>>>
>
>
>
next prev parent reply other threads:[~2023-02-25 9:20 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-18 15:23 [PATCH v4 00/11] Fixes for Rockchip NFC driver part 1 Johan Jonker
2023-02-18 15:26 ` [PATCH v4 01/11] include: fdtdec: decouple fdt_addr_t and phys_addr_t size Johan Jonker
2023-02-23 0:47 ` Kever Yang
2023-02-23 14:06 ` [PATCH v1] spi: spi-aspeed-smc: convert devfdt_get_addr_index output to phys_addr_t Johan Jonker
2023-02-25 9:26 ` Michael Nazzareno Trimarchi
2023-02-25 9:50 ` Johan Jonker
2023-02-25 9:53 ` Michael Nazzareno Trimarchi
2023-02-25 11:40 ` Michael Nazzareno Trimarchi
2023-02-25 9:11 ` [PATCH v4 01/11] include: fdtdec: decouple fdt_addr_t and phys_addr_t size Johan Jonker
2023-02-25 9:15 ` Michael Nazzareno Trimarchi
2023-02-25 9:20 ` Johan Jonker [this message]
2023-02-25 11:43 ` [PATCH v2 1/2] core: fdtaddr: add devfdt_get_addr_size_index_ptr function Johan Jonker
2023-02-25 11:44 ` [PATCH v2 2/2] spi: spi-aspeed-smc: use devfdt_get_addr_index_ptr Johan Jonker
2023-02-25 11:47 ` Michael Nazzareno Trimarchi
2023-02-25 11:47 ` [PATCH v2 1/2] core: fdtaddr: add devfdt_get_addr_size_index_ptr function Michael Nazzareno Trimarchi
2023-02-25 16:52 ` Michael Nazzareno Trimarchi
2023-02-25 19:16 ` [RFC PATCH v1 1/4] drivers: use dev_read_addr_index_ptr when cast to pointer Johan Jonker
2023-02-25 19:19 ` [RFC PATCH v1 2/4] drivers: use dev_read_addr_ptr " Johan Jonker
2023-02-25 23:05 ` Johan Jonker
2023-02-25 19:19 ` [RFC PATCH v1 3/4] drivers: use devfdt_get_addr_size_index_ptr " Johan Jonker
2023-02-25 20:39 ` Michael Nazzareno Trimarchi
2023-02-27 15:17 ` Dario Binacchi
2023-02-25 19:19 ` [RFC PATCH v1 4/4] drivers: use devfdt_get_addr_index_ptr " Johan Jonker
2023-02-25 20:40 ` Michael Nazzareno Trimarchi
2023-02-25 20:37 ` [RFC PATCH v1 1/4] drivers: use dev_read_addr_index_ptr " Michael Nazzareno Trimarchi
2023-02-18 15:26 ` [PATCH v4 02/11] include: dm: ofnode: fix headers Johan Jonker
2023-02-18 15:27 ` [PATCH v4 03/11] core: remap: convert regmap_init_mem_plat() input to phys_addr_t Johan Jonker
2023-02-22 7:59 ` Kever Yang
2023-02-18 15:27 ` [PATCH v4 04/11] rockchip: adc: rockchip-saradc: use dev_read_addr_ptr Johan Jonker
2023-02-22 8:00 ` Kever Yang
2023-02-18 15:27 ` [PATCH v4 05/11] rockchip: timer: dw-apb-timer: convert dev_read_addr output to phys_addr_t Johan Jonker
2023-02-18 15:27 ` [PATCH v4 06/11] mtd: nand: raw: rockchip_nfc: use dev_read_addr_ptr Johan Jonker
2023-02-18 15:28 ` [PATCH v4 07/11] mtd: nand: raw: rockchip_nfc: remove the compatible string "rockchip,rk3308-nfc" Johan Jonker
2023-02-18 15:28 ` [PATCH v4 08/11] mtd: nand: raw: rockchip_nfc: add layout structure Johan Jonker
2023-02-18 15:28 ` [PATCH v4 09/11] mtd: nand: raw: rockchip_nfc: add flash_node to chip structure Johan Jonker
2023-02-18 15:28 ` [PATCH v4 10/11] mtd: nand: add support for the Sandisk SDTNQGAMA chip Johan Jonker
2023-02-18 15:29 ` [PATCH v4 11/11] mtd: nand: raw: rockchip_nfc: fix oobfree offset and description Johan Jonker
2023-02-22 8:01 ` Kever Yang
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=edcca552-4e3e-c732-9237-8daf0829e839@gmail.com \
--to=jbx6244@gmail.com \
--cc=dario.binacchi@amarulasolutions.com \
--cc=kever.yang@rock-chips.com \
--cc=michael@amarulasolutions.com \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
--cc=yifeng.zhao@rock-chips.com \
/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.