[U-Boot] [PATCH v2] net: eth_common: Don't use %pM when USE_TINY_PRINTF is enabled

Vignesh R vigneshr at ti.com
Thu Apr 6 12:34:07 UTC 2017



On Tuesday 04 April 2017 01:38 AM, Wolfgang Denk wrote:
> Dear Vignesh,
> 
> In message <2c453144-8aba-3e66-8f1f-fe468bcdc382 at ti.com> you wrote:
>>
>> I agree, networking widely uses %pM for printing mac addresses.
>> Are you suggesting to port %pM support from lib/vsprintf.c to
>> lib/tiny-printf.c and make it available based on CONFIG_CMD_NET?
> 
> I don't think we should add another #ifdef for this.  How much (in
> terms of number of bytes) does it hurt to add it without an #ifdef?
> 

I ported minimal support for %p? to tiny-printf and here are the stats:

With changes to support %p?(%p %pa[p], %pI[46], %pm, %pM) format in tiny
printf SPL size increases by 509 bytes.

With changes to support just %p, %pa[p] formats in tiny-printf delta is
~75 bytes wrt plain SPL

Therefore, if %pM and other net related printf formats are disabled
based on CONFIG_CMD_NET savings is ~434 bytes

Compiler used is: arm-linux-gnueabihf-gcc (Linaro GCC 6.2-2016.11) 6.2.1
20161016


> I guess we cannot handle this in some intelligent automatic way
> similar to dead code elimination?
> 
>> I am trying to use RNDIS boot on am437x/am335x boards with
>> CONFIG_USE_TINY_PRINTF(to reduce code size due to internal SRAM size
>> constraint) and therefore need networking support in SPL.
> 
> So you need networking _and_ USB and still care about the printf()
> size?  Ouch...
> 

USB RNDIS boot has been supported on am335x platform in mainline u-boot
for quite some time. But the SPL size is steadily increasing due to
which CONFIG_USE_TINY_PRINTF needs to be enabled to avoid SRAM overflow.

> Best regards,
> 
> Wolfgang Denk
> 

-- 
Regards
Vignesh


More information about the U-Boot mailing list