[uClinux-dev] ARM7TDMI zImage booting

Daniel Glöckner daniel-gl at gmx.net
Sat Jul 27 09:39:23 EDT 2013


On Sat, Jul 27, 2013 at 01:01:36PM +0000, Plüss Tobias TA.E.1001 wrote:
> I just looked in the arch/arm/boot/compressed/head.S, and there is this
> statement
> 
> .arch	armv7-a
>
> which is definitely wrong and makes the kernel not portable to other 
> architectures.

This is done to not be restricted to ARMv4 instructions in the setup code
for newer cores. It does not make the code incompatible per se. It just
gives the programmer more possibilities.

> Also, the head.S uses some CLZ instructions, which are ARMv5. I'm pretty
> sure this instruction is the reason which causes my processor to go into
> illegal instruction handler.

I can see only one clz and it can only be reached from
__armv7_mmu_cache_flush. This function should not be called unless
you don't define CONFIG_CPU_CP15 and have CONFIG_PROCESSOR_ID set
to something that resembles an ARMv7 ID.

> Do you have some ideas how to solve the problem?

I'd try to narrow down which instruction causes the exception.

  Daniel


More information about the uClinux-dev mailing list