[PATCH] ARM: Make sure CPU_ARM940T kernel can be built.

Franz-Josef Haider fj.haider at outlook.com
Wed Oct 1 09:04:00 PDT 2025


On 9/30/25 15:09, Linus Walleij wrote:
> On Thu, Sep 25, 2025 at 11:33 PM Franz-Josef Haider
> <fj.haider at outlook.com> wrote:
>
>> From 33ce5a26ef08199625bc5bb01a176047bfacff91 Mon Sep 17 00:00:00 2001
>> From: Franz-Josef Haider <fj.haider at outlook.com>
>> Date: Thu, 25 Sep 2025 22:14:07 +0300
>> Subject: [PATCH] ARM: Make sure CPU_ARM940T kernel can be built.
>>
>> Fixes build for this cpu type.
>>
>> Signed-off-by: Franz-Josef Haider <fj.haider at outlook.com>
> Please elaborate a bit on this change in the commit message.
>
> 1. What were you trying to do.
>
> 2. What stopped you from doing what you wanted to do.
>
> 3. Why did you do this change to the kernel to do what you wanted
>   to do.
>
> Should it not be:
> !CPU_ARM740T && !CPU_ARM946E && !CPU_ARM940T
> ?
>
> Yours,
> Linus Walleij
Hello, I have done this change because when trying to "select CPU_ARM940T" from a Kconfig for a device with arm940t cpu, the build ends up failing with errors like
            arch/arm/lib/ashldi3.S: Assembler messages:
            arch/arm/lib/ashldi3.S:44: Error: cannot honor width suffix -- `rsb ip,r2,#32'
            arch/arm/lib/ashldi3.S:45: Error: thumb conditional instruction should be in IT block -- `movmi r1,r1,lsl r2'
            arch/arm/lib/ashldi3.S:46: Error: thumb conditional instruction should be in IT block -- `movpl r1,r0,lsl r3'
            arch/arm/lib/ashldi3.S:48: Error: thumb conditional instruction should be in IT block -- `lsrmi r3,r0,ip'
            arch/arm/lib/ashldi3.S:49: Error: thumb conditional instruction should be in IT block -- `orrmi r1,r1,r3'
            arch/arm/lib/ashldi3.S:50: Error: cannot honor width suffix -- `mov r0,r0,lsl r2'
            arch/arm/lib/ashldi3.S:43: Error: immediate value out of range
            make[3]: *** [scripts/Makefile.build:430: arch/arm/lib/ashldi3.o] Error 1
            make[2]: *** [scripts/Makefile.build:556: arch/arm/lib] Error 2
            make[2]: *** Waiting for unfinished jobs....
With the change I am able to build a kernel which runs on a device with arm940t cpu (with the patch "ARM: Add missing mmu flags entry to arm940 proc info." which I've submitted as well. And with the necessary mach files etc).

I can elaborate on this in the commit message and also adjust the condition to include the other CPU types you mentioned.

Best regards and thank you,
Franz-Josef



More information about the linux-arm-kernel mailing list