Just do complicate things there is also a bug (at least thats the
only answer I can come up with) with the ldm ^, I've hit this on the
SA-110 and the SA-1100 (However I haven't noticed the reported stm ^ bug).
The bug is the following:
The sequence: ldmfd r0, {sp, pc}^
doesn't work (I think we found it was unstacking to the svc_sp not
the user_sp, r0 is the kernel stack)
The sequence: ldmfd r0!, {sp}^
ldmfd r0, {pc}^
Does work (BTW does anyone know how many cycles this sequence
takes the SA-110 Instruction timming app note doens't mention the timming
of ldm^ with the pc as a target).
I'm pretty sure this is a silicon bug, since the two sequences
should result in the same behaviour (AFAIK from the ARM ARM).
Cheers Adam
On Tue, 30 Nov 1999, Russell King - ARM Linux Admin wrote:
> Nicholas Clark writes:
> > Am I right in thinking that Russell worked out a cunning fix
> > that circumvents the K StrongARM bug on ARMLinux, from version
> > 2.2.6 or thereabouts. Is how it works documented anywhere?
> >
> > Therefore, could the ARM BSD source be similarly patched, so
> > that BSD users on K didn't have to upgrade [to T or to Linux :-)]?
>
> Looking at all the emails here, it appears to be really confused.
>
> 1. The K StrongARM bug refers to the stm ^ with svc & user registers,
> and a certain cache state.
>
> This occurs very frequently if you use the instruction, and causes
> Linux to lock solid. This has been solved a long long time ago
> (about 3 years ago) in both Linux 2.0 kernels and ARM *BSD kernels.
>
> 2. Suspected bug causing random SIGSEGVs. I now believe this not to
> be a processor related bug, but some rare events which happen to
> co-incide in the kernel (now fixed in 2.2.13, hopefully, if I can
> have any feedback, please?).
>
> Hence, for the last 3 years, there have been no additional fixes for
> confirmed StrongARM processor bugs in the ARM Linux kernel.
> _____
> |_____| ------------------------------------------------- ---+---+-
> | | Russell King [EMAIL PROTECTED] --- ---
> | | | | http://www.arm.linux.org.uk/~rmk/armlinux.html / / |
> | +-+-+ --- -+-
> / | THE developer of ARM Linux |+| /|\
> / | | | --- |
> +-+-+ ------------------------------------------------- /\\\ |
>
> unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]
> ++ Please use [EMAIL PROTECTED] for ++
> ++ kernel-related discussions. ++
>
unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]
++ Please use [EMAIL PROTECTED] for ++
++ kernel-related discussions. ++