Subject: Re: LKM's work on CATS systems?
To: Alstrup, Kurt <kurt.alstrup@intel.com>
From: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
List: port-arm32
Date: 02/17/2001 10:45:16
> I can't get the LKM's to work on a CATS system running 1.5 NetBSD (release
> version). Not even the the supplied ones in /usr/lkm seems to work. They
> crash my system immediately.
> 
> The message I get on the console when attempting to load the ext2fs.o module
> is..
> 
> panic: Prefetch abort in non-USR mode (frame=0xf39c5d10)
> Stopped in modload at _cpu_Debugger+0x10  ldmdb r11, {r11, r13, r15}
> 
> The default kernel for CATS has LKM's disabled, so am I attempting something
> that isn't supported/working on the arm32 port?

Yep, IIRC they don't work because they are loaded at an address that is too far away from the relocation range of the bl instruction, so calls from the module back into the kernel fail.  A new feature is being added to gcc-3.0 for the ARM to force long-calling (always call through a pointer), this should solve the problem.

R.