Next Previous Contents

20. Common Mistakes and Problems

20.1 Changing KERNELBASE/KERNELLOAD

You don't ever want to change KERNELLOAD or KERNELBASE, otherwise the virtual memory and MMU code will all break. Search for KERNELBASE.

20.2 Leaving the Watchdog enabled

The watchdog is enabled by default, and needs to be disabled at reset for anything including BDM to work.

20.3 Mixing code compiled for software and hardware floating point

The usual non-obvious cause of this is combining executables compiled with -fsoft-float and shared libraries compiled with -fhard-float, or vice-versa. See floating point.

20.4 Using an unmodified glibc

In particular, remember to remove (or correct the cache line assumptions in) sysdeps/powerpc/memset.S before building glibc-2.1.3.

20.5 "Kernel Mode Software FPU Emulation" panic

This has little to do with floating point. Nearly all instructions the processor can't decode are vectored to this function. It assumes the primary reason you are here is to emulate floating point instructions. If the function can't decode the instruction as a floating point operation, it is really something the processor can't execute, so the panic message spews forth.

This can be either a software or hardware bug. If it is a software bug, just unravel the stack backtrace and debug it. It could be a trashed stack frame, resulting in a bad function return address, or some indirect function call that was not properly computed.

It could also happen because of a hardware bug while fetching instructions from memory. Verify the NIP instruction that it tried to decode is what is really supposed to be at that location in memory. This is a typical failure when the UPM is not programmed correctly. On a custom board in particular, verify all memory cycles an a logic analyser. Disable the cache and try again, you will probably get a different result.

20.6 NFS gives "neighbour table overflow"

This message is the result of some changes to the IP stack software in Linux version 2.2.x +. This simply means that you are unable to connect to your NFS server. It may be related to the driver, but it may also be related to other issues, such as NFS server not running or incorrectly installed, no physical connectivity to NFS server, etc. Check the configuration of your NFS server and IP network before diving into the driver.


Next Previous Contents