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

_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to