Hi Stefan, On 21 November 2014 at 08:34, Stefan Agner <ste...@agner.ch> wrote: > Resynchronize memcpy/memset with kernel and build them explicitly > in Thumb2 mode (unified syntax). Those assembler files can be > built and linked in ARM mode too, however when calling them from > Thumb2 built code, the stack got corrupted and the copy did not > succeed (the exact details have not been traced back). Hoever, > the Linux kernel builds those files in Thumb2 mode. Hence U-Boot > should build them in Thumb2 mode too when CONFIG_SYS_THUMB_BUILD > is set. > > To build the files without warning, some assembler instructions > had to be replaced with their UAL compliant variant (thanks > Jeroen for this input). > > To build the file in Thumb2 mode the implicit-it=always option need > to be set to generate Thumb2 compliant IT instructions where needed. > We add this option to the general AFLAGS when building for Thumb2. > > Signed-off-by: Stefan Agner <ste...@agner.ch> > --- > Changes since v1: > - Don't set auto-it in AFLAGS > - Removed "no-warn-deprecated" warning suppression > - Converted non-UAL assembler instructions to their UAL compliant variants
Reviewed-by: Simon Glass <s...@chromium.org> Tested on pit and found that it fixed the problem with Thumb mode. Still works fine in ARM mode. Tested-by: Simon Glass <s...@chromium.org> A few nits: - typo 'Hoever' in commit message - you could mention the Linux commit/release you synced to > > Tested in ARM and Thumb2 mode on Vybrid SoC. Disassembled the memset/ > memcpy object files before and after converting the instructions to UAL, > the output was identical. > > arch/arm/config.mk | 4 +- > arch/arm/include/asm/assembler.h | 33 ++++++++++-- > arch/arm/lib/memcpy.S | 80 +++++++++++++++++++--------- > arch/arm/lib/memset.S | 112 > ++++++++++++++++++++------------------- > 4 files changed, 142 insertions(+), 87 deletions(-) > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot