public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF
@ 2016-12-28  7:36 Oded Gabbay
  2017-01-12  5:07 ` Simon Glass
  2017-01-17  7:30 ` Masahiro Yamada
  0 siblings, 2 replies; 7+ messages in thread
From: Oded Gabbay @ 2016-12-28  7:36 UTC (permalink / raw)
  To: u-boot

In the tiny-printf implementation, there is no support for %.*s. This patch
checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
debug statement which doesn't use %.*s

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
---
 common/spl/spl.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/common/spl/spl.c b/common/spl/spl.c
index f7df834..7c4744d 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
 		}
 		spl_image->os = image_get_os(header);
 		spl_image->name = image_get_name(header);
+#ifdef CONFIG_USE_TINY_PRINTF
+		debug("spl: payload image: %s load addr: 0x%x size: %d\n",
+			spl_image->name, spl_image->load_addr, spl_image->size);
+#else
 		debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
 			(int)sizeof(spl_image->name), spl_image->name,
 			spl_image->load_addr, spl_image->size);
+#endif
 	} else {
 #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
 		/*
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF
  2016-12-28  7:36 [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF Oded Gabbay
@ 2017-01-12  5:07 ` Simon Glass
  2017-01-17  7:30 ` Masahiro Yamada
  1 sibling, 0 replies; 7+ messages in thread
From: Simon Glass @ 2017-01-12  5:07 UTC (permalink / raw)
  To: u-boot

On 28 December 2016 at 00:36, Oded Gabbay <oded.gabbay@gmail.com> wrote:
> In the tiny-printf implementation, there is no support for %.*s. This patch
> checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
> debug statement which doesn't use %.*s
>
> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>
> ---
>  common/spl/spl.c | 5 +++++
>  1 file changed, 5 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

I did consider whether we should have some #defines for this (one
which expands to either "*" or "" and one which drops the (int)
parameter when USE_TINY_PRINTF is enabled), but it might be a bit
clumsy.

I think what you have is the simplest solution for now.

>
> diff --git a/common/spl/spl.c b/common/spl/spl.c
> index f7df834..7c4744d 100644
> --- a/common/spl/spl.c
> +++ b/common/spl/spl.c
> @@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
>                 }
>                 spl_image->os = image_get_os(header);
>                 spl_image->name = image_get_name(header);
> +#ifdef CONFIG_USE_TINY_PRINTF
> +               debug("spl: payload image: %s load addr: 0x%x size: %d\n",
> +                       spl_image->name, spl_image->load_addr, spl_image->size);
> +#else
>                 debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
>                         (int)sizeof(spl_image->name), spl_image->name,
>                         spl_image->load_addr, spl_image->size);
> +#endif
>         } else {
>  #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
>                 /*
> --
> 2.7.4
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF
  2016-12-28  7:36 [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF Oded Gabbay
  2017-01-12  5:07 ` Simon Glass
@ 2017-01-17  7:30 ` Masahiro Yamada
  2017-01-17  8:06   ` Oded Gabbay
  1 sibling, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2017-01-17  7:30 UTC (permalink / raw)
  To: u-boot

2016-12-28 16:36 GMT+09:00 Oded Gabbay <oded.gabbay@gmail.com>:
> In the tiny-printf implementation, there is no support for %.*s. This patch
> checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
> debug statement which doesn't use %.*s
>
> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
> Cc: Simon Glass <sjg@chromium.org>
> ---
>  common/spl/spl.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/common/spl/spl.c b/common/spl/spl.c
> index f7df834..7c4744d 100644
> --- a/common/spl/spl.c
> +++ b/common/spl/spl.c
> @@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
>                 }
>                 spl_image->os = image_get_os(header);
>                 spl_image->name = image_get_name(header);
> +#ifdef CONFIG_USE_TINY_PRINTF
> +               debug("spl: payload image: %s load addr: 0x%x size: %d\n",
> +                       spl_image->name, spl_image->load_addr, spl_image->size);
> +#else
>                 debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
>                         (int)sizeof(spl_image->name), spl_image->name,
>                         spl_image->load_addr, spl_image->size);
> +#endif
>         } else {
>  #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE


Same here.

Please do not patch around with CONFIG_USE_TINY_PRINTF.

What you need to do is to fix tiny_printf() implementation.


-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF
  2017-01-17  7:30 ` Masahiro Yamada
@ 2017-01-17  8:06   ` Oded Gabbay
  2017-01-17  9:18     ` Masahiro Yamada
  2017-01-19  3:03     ` Tom Rini
  0 siblings, 2 replies; 7+ messages in thread
From: Oded Gabbay @ 2017-01-17  8:06 UTC (permalink / raw)
  To: u-boot

On Tue, Jan 17, 2017 at 9:30 AM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> 2016-12-28 16:36 GMT+09:00 Oded Gabbay <oded.gabbay@gmail.com>:
>> In the tiny-printf implementation, there is no support for %.*s. This patch
>> checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
>> debug statement which doesn't use %.*s
>>
>> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
>> Cc: Simon Glass <sjg@chromium.org>
>> ---
>>  common/spl/spl.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>> index f7df834..7c4744d 100644
>> --- a/common/spl/spl.c
>> +++ b/common/spl/spl.c
>> @@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
>>                 }
>>                 spl_image->os = image_get_os(header);
>>                 spl_image->name = image_get_name(header);
>> +#ifdef CONFIG_USE_TINY_PRINTF
>> +               debug("spl: payload image: %s load addr: 0x%x size: %d\n",
>> +                       spl_image->name, spl_image->load_addr, spl_image->size);
>> +#else
>>                 debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
>>                         (int)sizeof(spl_image->name), spl_image->name,
>>                         spl_image->load_addr, spl_image->size);
>> +#endif
>>         } else {
>>  #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
>
>
> Same here.
>
> Please do not patch around with CONFIG_USE_TINY_PRINTF.
>
> What you need to do is to fix tiny_printf() implementation.
>
>
> --
> Best Regards
> Masahiro Yamada

ok, I can accept that but how would you like to fix it ?
I guess you don't want to copy the entire printf implementation,
otherwise what's the point in tiny-printf ?

Do you think we should just silently treat %.s as %s inside
tiny-printf ? And take that approach to the other two patches I sent ?

Thanks,

Oded

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF
  2017-01-17  8:06   ` Oded Gabbay
@ 2017-01-17  9:18     ` Masahiro Yamada
  2017-01-17  9:25       ` Oded Gabbay
  2017-01-19  3:03     ` Tom Rini
  1 sibling, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2017-01-17  9:18 UTC (permalink / raw)
  To: u-boot

2017-01-17 17:06 GMT+09:00 Oded Gabbay <oded.gabbay@gmail.com>:
> On Tue, Jan 17, 2017 at 9:30 AM, Masahiro Yamada
> <yamada.masahiro@socionext.com> wrote:
>> 2016-12-28 16:36 GMT+09:00 Oded Gabbay <oded.gabbay@gmail.com>:
>>> In the tiny-printf implementation, there is no support for %.*s. This patch
>>> checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
>>> debug statement which doesn't use %.*s
>>>
>>> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
>>> Cc: Simon Glass <sjg@chromium.org>
>>> ---
>>>  common/spl/spl.c | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>>> index f7df834..7c4744d 100644
>>> --- a/common/spl/spl.c
>>> +++ b/common/spl/spl.c
>>> @@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
>>>                 }
>>>                 spl_image->os = image_get_os(header);
>>>                 spl_image->name = image_get_name(header);
>>> +#ifdef CONFIG_USE_TINY_PRINTF
>>> +               debug("spl: payload image: %s load addr: 0x%x size: %d\n",
>>> +                       spl_image->name, spl_image->load_addr, spl_image->size);
>>> +#else
>>>                 debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
>>>                         (int)sizeof(spl_image->name), spl_image->name,
>>>                         spl_image->load_addr, spl_image->size);
>>> +#endif
>>>         } else {
>>>  #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
>>
>>
>> Same here.
>>
>> Please do not patch around with CONFIG_USE_TINY_PRINTF.
>>
>> What you need to do is to fix tiny_printf() implementation.
>>
>>
>> --
>> Best Regards
>> Masahiro Yamada
>
> ok, I can accept that but how would you like to fix it ?
> I guess you don't want to copy the entire printf implementation,
> otherwise what's the point in tiny-printf ?


Right.   Supporting all the format specifiers will make
tiny-printf much bigger, then we will lose the point of this function.

Can we silently ignore specifiers that are not recognized by tiny_printf()?


> Do you think we should just silently treat %.s as %s inside
> tiny-printf ? And take that approach to the other two patches I sent ?
>


-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF
  2017-01-17  9:18     ` Masahiro Yamada
@ 2017-01-17  9:25       ` Oded Gabbay
  0 siblings, 0 replies; 7+ messages in thread
From: Oded Gabbay @ 2017-01-17  9:25 UTC (permalink / raw)
  To: u-boot

On Tue, Jan 17, 2017 at 11:18 AM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> 2017-01-17 17:06 GMT+09:00 Oded Gabbay <oded.gabbay@gmail.com>:
>> On Tue, Jan 17, 2017 at 9:30 AM, Masahiro Yamada
>> <yamada.masahiro@socionext.com> wrote:
>>> 2016-12-28 16:36 GMT+09:00 Oded Gabbay <oded.gabbay@gmail.com>:
>>>> In the tiny-printf implementation, there is no support for %.*s. This patch
>>>> checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
>>>> debug statement which doesn't use %.*s
>>>>
>>>> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
>>>> Cc: Simon Glass <sjg@chromium.org>
>>>> ---
>>>>  common/spl/spl.c | 5 +++++
>>>>  1 file changed, 5 insertions(+)
>>>>
>>>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>>>> index f7df834..7c4744d 100644
>>>> --- a/common/spl/spl.c
>>>> +++ b/common/spl/spl.c
>>>> @@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
>>>>                 }
>>>>                 spl_image->os = image_get_os(header);
>>>>                 spl_image->name = image_get_name(header);
>>>> +#ifdef CONFIG_USE_TINY_PRINTF
>>>> +               debug("spl: payload image: %s load addr: 0x%x size: %d\n",
>>>> +                       spl_image->name, spl_image->load_addr, spl_image->size);
>>>> +#else
>>>>                 debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
>>>>                         (int)sizeof(spl_image->name), spl_image->name,
>>>>                         spl_image->load_addr, spl_image->size);
>>>> +#endif
>>>>         } else {
>>>>  #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
>>>
>>>
>>> Same here.
>>>
>>> Please do not patch around with CONFIG_USE_TINY_PRINTF.
>>>
>>> What you need to do is to fix tiny_printf() implementation.
>>>
>>>
>>> --
>>> Best Regards
>>> Masahiro Yamada
>>
>> ok, I can accept that but how would you like to fix it ?
>> I guess you don't want to copy the entire printf implementation,
>> otherwise what's the point in tiny-printf ?
>
>
> Right.   Supporting all the format specifiers will make
> tiny-printf much bigger, then we will lose the point of this function.
>
> Can we silently ignore specifiers that are not recognized by tiny_printf()?
>
That is the default behavior today, but the result of that behavior is
that many prints look awful, with a lot of missing information, such
as : "address () " , or  "payload image: load addr" (between payload
image: and load addr should be the name of the image). It really makes
the whole thing totally unusable.

I didn't like that behavior and that's why I wanted to change it. I
think there are two options:
1. Use only implemented specifiers like in my original patches.
2. Silently replace un-implemented specifiers with the most similar
implemented specifiers, like %X to %x, or %.s to %s

Thanks,
Oded


>
>> Do you think we should just silently treat %.s as %s inside
>> tiny-printf ? And take that approach to the other two patches I sent ?
>>
>
>
> --
> Best Regards
> Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF
  2017-01-17  8:06   ` Oded Gabbay
  2017-01-17  9:18     ` Masahiro Yamada
@ 2017-01-19  3:03     ` Tom Rini
  1 sibling, 0 replies; 7+ messages in thread
From: Tom Rini @ 2017-01-19  3:03 UTC (permalink / raw)
  To: u-boot

On Tue, Jan 17, 2017 at 10:06:26AM +0200, Oded Gabbay wrote:
> On Tue, Jan 17, 2017 at 9:30 AM, Masahiro Yamada
> <yamada.masahiro@socionext.com> wrote:
> > 2016-12-28 16:36 GMT+09:00 Oded Gabbay <oded.gabbay@gmail.com>:
> >> In the tiny-printf implementation, there is no support for %.*s. This patch
> >> checks if CONFIG_USE_TINY_PRINTF is defined and if so, prints a different
> >> debug statement which doesn't use %.*s
> >>
> >> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
> >> Cc: Simon Glass <sjg@chromium.org>
> >> ---
> >>  common/spl/spl.c | 5 +++++
> >>  1 file changed, 5 insertions(+)
> >>
> >> diff --git a/common/spl/spl.c b/common/spl/spl.c
> >> index f7df834..7c4744d 100644
> >> --- a/common/spl/spl.c
> >> +++ b/common/spl/spl.c
> >> @@ -115,9 +115,14 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
> >>                 }
> >>                 spl_image->os = image_get_os(header);
> >>                 spl_image->name = image_get_name(header);
> >> +#ifdef CONFIG_USE_TINY_PRINTF
> >> +               debug("spl: payload image: %s load addr: 0x%x size: %d\n",
> >> +                       spl_image->name, spl_image->load_addr, spl_image->size);
> >> +#else
> >>                 debug("spl: payload image: %.*s load addr: 0x%x size: %d\n",
> >>                         (int)sizeof(spl_image->name), spl_image->name,
> >>                         spl_image->load_addr, spl_image->size);
> >> +#endif
> >>         } else {
> >>  #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
> >
> >
> > Same here.
> >
> > Please do not patch around with CONFIG_USE_TINY_PRINTF.
> >
> > What you need to do is to fix tiny_printf() implementation.
> >
> >
> > --
> > Best Regards
> > Masahiro Yamada
> 
> ok, I can accept that but how would you like to fix it ?

I would suggest un-winding things such that we get useful information in
both cases with USE_TINY_PRINTF being the limiting factor.  I am of the
opinion that USE_TINY_PRINTF should be the default within SPL.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170118/50205fda/attachment.sig>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-01-19  3:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-28  7:36 [U-Boot] [PATCH] spl: don't use %.*s with CONFIG_USE_TINY_PRINTF Oded Gabbay
2017-01-12  5:07 ` Simon Glass
2017-01-17  7:30 ` Masahiro Yamada
2017-01-17  8:06   ` Oded Gabbay
2017-01-17  9:18     ` Masahiro Yamada
2017-01-17  9:25       ` Oded Gabbay
2017-01-19  3:03     ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox