On Mon, Apr 07, 2025 at 10:56:14AM +0200, Christoph Niedermaier wrote:

> The formatting with %pa / %pap behaves like %x, which results in an
> incorrect value being output. To improve this, a new fine-tuning
> Kconfig XPL_USE_TINY_PRINTF_POINTER_SUPPORT for pointer formatting
> has been added. If it is enabled, the output of %pa / %pap should
> be correct, and if it is disabled, the pointer formatting is
> completely unsupported. In addition to indicate unsupported formatting,
> '?' will be output. This allows enabling pointer formatting only
> when needed. For SPL_NET and NET_LWIP it is selected by default.
> Then it also supports the formatting with %pm, %pM and %pI4.
> 
> Signed-off-by: Christoph Niedermaier <cniederma...@dh-electronics.com>
> ---
> Cc: Tom Rini <tr...@konsulko.com>
> Cc: Simon Glass <s...@chromium.org>
> Cc: Michael Walle <mwa...@kernel.org>
> Cc: Quentin Schulz <quentin.sch...@cherry.de>
> Cc: Marek Vasut <ma...@denx.de>
> Cc: Benedikt Spranger <b.spran...@linutronix.de>
> Cc: Jerome Forissier <jerome.foriss...@linaro.org>
> Cc: John Ogness <john.ogn...@linutronix.de>
> Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org>
> ---
>  Kconfig            |  1 +
>  common/spl/Kconfig |  1 +
>  lib/Kconfig        |  8 ++++++++
>  lib/tiny-printf.c  | 45 +++++++++++++++++++--------------------------
>  4 files changed, 29 insertions(+), 26 deletions(-)
> 
> diff --git a/Kconfig b/Kconfig
> index 6379a454166..4d13717294c 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -757,6 +757,7 @@ config NET
>  
>  config NET_LWIP
>       bool "Use lwIP for networking stack"
> +     select XPL_USE_TINY_PRINTF_POINTER_SUPPORT if SPL_USE_TINY_PRINTF || 
> TPL_USE_TINY_PRINTF || VPL_USE_TINY_PRINTF
>       imply NETDEVICES
>       help
>         Include networking support based on the lwIP (lightweight IP)
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index 94e118f8465..72736dbecf5 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -1096,6 +1096,7 @@ config SPL_DM_SPI_FLASH
>  config SPL_NET
>       bool "Support networking"
>       depends on !NET_LWIP
> +     select XPL_USE_TINY_PRINTF_POINTER_SUPPORT if SPL_USE_TINY_PRINTF || 
> TPL_USE_TINY_PRINTF || VPL_USE_TINY_PRINTF
>       help
>         Enable support for network devices (such as Ethernet) in SPL.
>         This permits SPL to load U-Boot over a network link rather than
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 1a683dea670..62e28d4a1f3 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -253,6 +253,14 @@ config VPL_USE_TINY_PRINTF
>  
>         The supported format specifiers are %c, %s, %u/%d and %x.
>  
> +config XPL_USE_TINY_PRINTF_POINTER_SUPPORT
> +     bool "Extend tiny printf with the pointer formatting %p"
> +     depends on SPL_USE_TINY_PRINTF || TPL_USE_TINY_PRINTF || 
> VPL_USE_TINY_PRINTF
> +     help
> +       This option enables the formatting of pointers %p. It supports
> +       %p and %pa / %pap. If this option is selected by SPL_NET or NET_LWIP
> +       it also supports the formatting with %pm, %pM and %pI4.

This isn't quite what I'd like to see. I don't want to start using the
literal XPL namespace as that will lead to confusion down the line.
Since we only have SPL_NET, I think we should name this symbol
SPL_USE_TINY_PRINTF_POINTER_SUPPORT, not ask about it (so bool without
"prompt text" following), and select from SPL_NET if
SPL_USE_TINY_PRINTF.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to