Hey Daniel,

okay I didn't realise that this directice .arch has nothing to do with the 
"portability". I guess, it just instructs the assembler to use armv7 
instrcuction set, and since this is backwards compatible if things like CLZ are 
not used in the code, it should run on ARMv4 as well.

>> CONFIG_PROCESSOR_ID

MANY THANKS for this tip! I have never analysed what this processor ID is used 
for; i always thought that it is just some arbitrary number to verify that the 
kernel is running on the right hardware. So I left it always at the default 
value, which is 0x41007700. But, now I searched in the head.S file for this 
number, and you we're right - it seems like this is the processor ID for 
ARM7/710, which is definitely wrong. I'll try this evening to change the 
CONFIG_PROCESSOR_ID to 0x00020000, which should be ARMv4T - which is exactly 
what I want. I'll tell you whether I'm successful ;-)

Thanks so far,

Tobias


________________________________________
Von: uclinux-dev-boun...@uclinux.org [uclinux-dev-boun...@uclinux.org]" im 
Auftrag von "Daniel Glöckner [daniel...@gmx.net]
Gesendet: Samstag, 27. Juli 2013 15:39
An: uClinux development list
Betreff: Re: [uClinux-dev] ARM7TDMI zImage booting

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
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to