Problems of using APU/FPU under linux
Shanyuan Gao
sygao.research at gmail.com
Tue Apr 15 02:18:07 EST 2008
Hi,
Recently I was trying to make APU/FPU working under Linux on Xilinx
ML410. The standalone programs work perfectly. However under Linux,
when I try to use a floating point operation, like *fmuls*, it will
give me a *trap*.
By studying the user guide from Xilinx and dumping the object files,
I know I need to change the corresponding bits (APU enable, FP
enable, maybe APU Exception enable) in Machine State Register. I
guess I need to enable the bits whenever before the kernel uses
*mtmsr*. However, it doesn't work. I got the same trap with the same
MSR, as I had no APU/FPU before. I also tried to add the FPU.S to ppc
tree, but it doesn't work either.
The questions are
1. I guess there might be some place that changed MSR after all my
changes. But I don't know where. And can I write a kernel module to
change the MSR after booting in Linux? (well, it's hard for me though)
2. Does it have any exception/interrupt mechanism to direct FP
operation to APU/FPU? Or after enabling APU/FPU it will mask the
exception/interrupt and decode FP operation by itself?
Any ideas are appreciated. Thank you very much!
Shan
More information about the Linuxppc-embedded
mailing list