From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0AC8CC7EE2D for ; Sat, 25 Feb 2023 09:20:53 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7F7868575D; Sat, 25 Feb 2023 10:20:51 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="CGBXcGsx"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 42B9F85AFB; Sat, 25 Feb 2023 10:20:49 +0100 (CET) Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 01FA4809A5 for ; Sat, 25 Feb 2023 10:20:45 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jbx6244@gmail.com Received: by mail-ed1-x536.google.com with SMTP id cq23so6718494edb.1 for ; Sat, 25 Feb 2023 01:20:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=MtDtaLr9rjZVUHdJtST8jeIkBIK0mhHPx2OIwAPM6hs=; b=CGBXcGsxa0gVkbI6n0WPk+bJH8bD1L1ftgZvr+mrpR7qsV4Uv9/4mAVJYgUYQF142t gIXxXqkNUyx0+R9Ia+AOCWaE4y4McdQLSjSDAe13KV06gmzuinw9eVkaAfif0bFYZIES aU74gVNSv6eaR6c3rxkLdZiQlO58Ras4j4dSVP3szXSnTbWa1G4Ji5OFGaL/xjj9LoMO Cfw73i1xBHhyGTF0l73YUR7DekCM+SprdZ9n0BG8B7MIztoT8XORnAP6PFr32/y3d93j gQq5D8roRBtz2rvUEL8AyCXyQ5jsuYXIbJUpubiD8qXeiAf3FiX0eCFfQ4/swWgMbxNO PtcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MtDtaLr9rjZVUHdJtST8jeIkBIK0mhHPx2OIwAPM6hs=; b=Z+23NLCNIDLUoJcqk7UcNxsGe1fdCjGdI5XnTxfEZi+Lg1eff0G1edTFcKDN/aM8jc f1+ymnSYQm7WxDcWmVSoDwlXhNx9KvUJ4Zqi9rcko79kbRSId4BozJiNC4mgglgFYb6x E1Ylg+9Uj5VtpCl8/QgQ033PSVrD8EZuuDO2oui6CQDAPzrNdGkq89wL9dp8AxPxyacL RkBL4K7OcsMu4Tu/yR3LeeVbjKH5439OjP64wEGmuS/RkmtKq8AtA/d83T5tvqyUuVew 797DPpcHHHtge5jdZ5iIfQaYcgc0hMma56g2Y1NHfGlybczQygjKfZTIcFPW6H3wU/Ui MDmg== X-Gm-Message-State: AO0yUKVsn4goc/lw28W72XGCbvDalVAD8it6SFdjYMEUA/pvJYyee2GP Jr7V6FaSJCArsnwirG2W6C8= X-Google-Smtp-Source: AK7set+DT4TkaQePwkE9xQLefP+Ua1cRwCIbIv9VavQQz+yTDLaUDwvr83kAym9/wi1xQodlYqcevw== X-Received: by 2002:a17:906:74d5:b0:8b3:b74:aeb5 with SMTP id z21-20020a17090674d500b008b30b74aeb5mr28433542ejl.30.1677316845549; Sat, 25 Feb 2023 01:20:45 -0800 (PST) Received: from [192.168.2.1] (81-204-249-205.fixed.kpn.net. [81.204.249.205]) by smtp.gmail.com with ESMTPSA id u25-20020a17090617d900b008cee005346csm641852eje.34.2023.02.25.01.20.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 25 Feb 2023 01:20:45 -0800 (PST) Message-ID: Date: Sat, 25 Feb 2023 10:20:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: [PATCH v4 01/11] include: fdtdec: decouple fdt_addr_t and phys_addr_t size Content-Language: en-US To: Michael Nazzareno Trimarchi Cc: Kever Yang , dario.binacchi@amarulasolutions.com, sjg@chromium.org, u-boot@lists.denx.de, yifeng.zhao@rock-chips.com References: <49d0321c-72e4-429f-335e-8f23ff866d39@rock-chips.com> From: Johan Jonker In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean On 2/25/23 10:15, Michael Nazzareno Trimarchi wrote: > Hi Johan > > On Sat, Feb 25, 2023 at 10:11 AM Johan Jonker 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 >>>> Reviewed-by: Simon Glass >>>> Reviewed-by: Kever Yang >>>> --- >>>> >>>> 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 >>>> >>>> /* >>>> - * 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 >>>> > > >