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 25020C64EC7 for ; Sat, 25 Feb 2023 09:11:25 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9EEA985735; Sat, 25 Feb 2023 10:11:22 +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="e7IJBocv"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DB41185B68; Sat, 25 Feb 2023 10:11:19 +0100 (CET) Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (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 5F561851B1 for ; Sat, 25 Feb 2023 10:11:09 +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-x52e.google.com with SMTP id ec43so6500942edb.8 for ; Sat, 25 Feb 2023 01:11:09 -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:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=jm2K4+DJ0+RBC/wLqNwaOHFonxNaenmKJs/qPnS6mOA=; b=e7IJBocvksAes4+myH/BqGmRGYaNQNXtbBBVTsn/pk31b9Fc1aWW3XgwNE5YHc11ZU EloEfrm55lzLz16IqEeGaxqHLN0wQalP/Oy4E/D32xIYB3VjbHLND8SqECHXWnyhzoy5 mFHhzoz65IBaQbSD5d4TAUDVydVytm3K53APCwmYm+7W8Yjsdqw8C3NNe+detevep1Jl hxwlp97n24aNfVdCHG63vVWeVxdnD45zQZYLFhs8SqPn6GG44rqRsvQzoP6sqbLE9P5f pj08PKwuaQWn1kfc8f1jrl9InxRKoTXNl4MNm5+5Imt+lyF+yddy7pWSVjYI3RYjzPW4 qckQ== 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:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jm2K4+DJ0+RBC/wLqNwaOHFonxNaenmKJs/qPnS6mOA=; b=MGvLsZdHg4ux1aK0QWaXhGWEd2PZDAodp5MDiETz4HR1o9sqCYxny6sY83EKlB+itt IinpwpHDgisKvjp3BJFhjvea9X72b4drNQsDOT2kRLYqyMH3ehd1hRr5A/ZWs+UxkwiE ckJCnCfy6t4T1twoZDsVBg2jpcSQWhyiv/u02lDymA510CW0Iay16fLKp7MI3By4423s tH85s5NAJfWHen8fsktK7OIt8aj7kYW3UAisTHRzDvubaozZzYpal3jj48B2LzqUyVn8 WRGt5quzQngurqaIOzqYPyycifJY0dZ4xhdBYiKrSppE0pQzKDsWuM/ik19/rU3XlLIW cvIA== X-Gm-Message-State: AO0yUKUV7X0kAMt7/wXOQ0rfI9W34fCdBtG2t3J9Ww4W9p0Y4VwT7qDb KUBonhoQJpMl7bdDg2+XKfc= X-Google-Smtp-Source: AK7set9ZCxnv5bZU1oLli9xm2Gzv+OBs0bBRB6ariHE+qT9vGf1RRJq6CFLO+zx36OIQWLqcHJ57mg== X-Received: by 2002:a17:907:d27:b0:8e5:88ca:ebac with SMTP id gn39-20020a1709070d2700b008e588caebacmr18717346ejc.40.1677316268733; Sat, 25 Feb 2023 01:11:08 -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 cw18-20020a170906c79200b008e22978b98bsm641330ejb.61.2023.02.25.01.11.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 25 Feb 2023 01:11:08 -0800 (PST) Message-ID: Date: Sat, 25 Feb 2023 10:11:07 +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 To: Kever Yang , dario.binacchi@amarulasolutions.com, michael@amarulasolutions.com, sjg@chromium.org Cc: u-boot@lists.denx.de, yifeng.zhao@rock-chips.com References: <49d0321c-72e4-429f-335e-8f23ff866d39@rock-chips.com> Content-Language: en-US From: Johan Jonker In-Reply-To: <49d0321c-72e4-429f-335e-8f23ff866d39@rock-chips.com> 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/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 > > $ 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 >>