Hi everyone,

I am trying to run uClinux on an ARM7 LPC2000 chip from NXP. I have some 
external SDRAM (64M) and Flash (8M). In the Flash, I plan to store the zImage, 
and in the microcontroller's internal Flash I have some sort of bootloader, 
which sets up the device tree and then boots the zImage.

I downloaded the most recent kernel, which was 3.10.2 at that time. Then, I did 
the necessary changes, e.g. for the interrupt controller and so on, and added a 
new folder under arch/arm for my chip. In the menuconfig, I selected the option 
"Support ARM7TDMI processor", and I disabled the option " MMU-based Paged 
Memory Management Support". So the kernel shouldn't use any MMU features, and 
it should be compiled for an ARM7TDMI architecture, which uses the ARMv4 
instruction set.

For the boot process, I copy the zImage to the external SDRAM and then jump to 
the entry point. My hardware is connected to a PC through the serial port, and 
in the terminal programm I can see the message "Uncompressing Linux..." but 
after a few seconds, the kernel trips an illegal instruction error. Why? 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. 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. Do you have some ideas how to solve the 
problem?

Many thanks in advance.
Tobias
_______________________________________________
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