
C++ style comment. Found by Wolfgang ;)
The major one: By the new 64bit variables, depending on tool chain,
there are now calls to libgcc introduced. Depending on tool chain, this might work, or fail. As it does with one of my tool chains, which worked totally fine until here. It was my understanding that U-Boot shall not rely on libgcc, i.e. proper tool chain libraries.
Having CONFIG_SYS_64BIT_VSPRINTF not defined, the linker needs "_lshrdi3", which comes from nand_base.o and nand_bbt.o. E.g. from "len = mtd->size >> (this->bbt_erase_shift + 2);" from nand_bbt.c.
Having CONFIG_SYS_64BIT_VSPRINTF enabled, the linker requests _lshrdi3, _udivdi3, _umoddi3 and _clz from libgcc.
Looking into U-Boot's lib_arm/ directory, we have already some low level math functions there to avoid libgcc. E.g. nand_bbt.c has references to _ashrdi3, too, but this is resolved by lib_arm's version what is fine.
I'd like that NAND code is modified that only math is used which U-Boot provides and no libgcc is needed.
this is a already known problem by Stefan and I and solved
two patchs was send to the ML and now we are independant of the libgcc
please test the testing branch of the u-boot-arm tree
Best Regards, J.