On Mon, Jul 04, 2016 at 02:30:20PM +0200, Marek Vasut wrote: > On 07/04/2016 01:56 AM, Andre Przywara wrote: > >As printf calls may be executed quite early, we should avoid using any > >BSS stored variables, since some boards put BSS in DRAM, which may not > >have been initialised yet. > >Explicitly mark those "static global" variables as belonging to the > >.data section, to keep tiny-printf clear of any BSS usage. > >Please note that this is quite a hack (which may need to be extended to > >other source files) and more sustainable solutions are warmly welcomed. > > > >Signed-off-by: Andre Przywara <andre.przyw...@arm.com> > >--- > >Hi, > > > >as mentioned before I don't like this hack very much, but as this fixes > >the WIP Pine64 SPL code I propose this solution for 2016.07. > > > >Cheers, > >Andre > > > > lib/tiny-printf.c | 13 ++++++++++--- > > 1 file changed, 10 insertions(+), 3 deletions(-) > > > >diff --git a/lib/tiny-printf.c b/lib/tiny-printf.c > >index 451f4f7..bc2995b 100644 > >--- a/lib/tiny-printf.c > >+++ b/lib/tiny-printf.c > >@@ -13,11 +13,18 @@ > > #include <stdarg.h> > > #include <serial.h> > > > >-static char *bf; > >-static char zs; > >+/* > >+ * This code in here may execute before the DRAM is initialised, so > >+ * we should make sure that it doesn't touch BSS, which some boards > >+ * put in DRAM. > >+ */ > >+#define NO_BSS __attribute__((section(".data"))) > > Please don't introduce new macros, it's really not necessary here, > the comment is enough.
And would also match the other areas where we have to do something "ugly" like this in order to function within constraints. Frankly, I don't see this exactly as a hack, but it should be tested on a few more platforms just to be safe. -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot