From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Christophe PLAGNIOL-VILLARD Date: Sat, 20 Jun 2009 10:52:07 +0200 Subject: [U-Boot] [PATCH] mtd: Update MTD infrastructure to support 64bit device size In-Reply-To: <4A3C74C3.6010308@googlemail.com> References: <1242050635-7152-1-git-send-email-sr@denx.de> <4A3C74C3.6010308@googlemail.com> Message-ID: <20090620085207.GC6870@game.jcrosoft.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de > > 2. C++ style comment. Found by Wolfgang ;) > > 3. 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.