[U-Boot] [PATCH v2] arm: build arch memset/memcpy in Thumb2 mode

Simon Glass sjg at chromium.org
Sun Nov 30 20:33:36 CET 2014


Hi Stefan,

On 21 November 2014 at 08:34, Stefan Agner <stefan at 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 <stefan at 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 <sjg at 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 <sjg at 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


More information about the U-Boot mailing list