
On Tuesday 04 April 2017 01:38 AM, Wolfgang Denk wrote:
Dear Vignesh,
In message 2c453144-8aba-3e66-8f1f-fe468bcdc382@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