
On Jun 14, 2010 5:08pm, gnemas@gmail.com wrote:
On Jun 14, 2010 4:30pm, Wolfgang Denk wd@denx.de> wrote:
U-Boot does not need nor use the FPU, so enabling it would not help you in any way.
It may not need it, but enabling it in u-boot did actually fix the problem. I just called the fpu_enable function in the u-boot post code.
Linux will do it's own settings, so this is where you need to look for your incorrect configuration settings (incorrect CPU description in the DT?).
Okay, thanks. I'll try to find out more about how Linux sets this up.
By the way, my dts file has
cpu@0 { device_type = "cpu"; model = "PowerPC,440EPx";
I discovered what was causing the FPU problem. Maybe this might help someone.
I noticed that my processor was being recognized by Linux as a 440GRX (which does not have FPU) rather than the correct 440EPx. It seems that these two processors have the same PVR value. The kernel differentiates these based on the value of the CPU model in the device tree.
Even though I had the correct entries in my device tree source, the kernel was not finding the correct model entry.
The problem was that I was using the device tree compiler from
git://git.kernel.org/pub/scm/linux/kernel/git/galak/dtc.git
instead of the one included with the kernel source. When I started working on this, it did not occur to me that the dtc was included in the kernel tree, so I had searched for it online and discovered that git repository. The galak dtc reports version 1.1.0, whereas the kernel dtc reports versio 1.2.0.
So it all works correctly now.
Thanks for the DT pointer.
Gregg