User mode address error problems on 7763

Dale Larson
2009-09-11T18:06:31Z

I've been porting linux (2.6.30.2) to our 7763 based platform and the
kernel seems to be running fine but when user mode programs run I
randomly get errors like this:

[ 8.419557] VFS: Mounted root (nfs filesystem) on device 0:9.
[ 8.431863] Freeing unused kernel memory: 80k freed
init started: BusyBox v1.14.3 (2009-09-04 15:19:48 CDT)
[ 8.682286] Fixing up unaligned userspace access in "mount" pid\x152
pc=0x295583d0 ins=0x60b2
[ 8.699336] Sending SIGBUS to "mount" due to unaligned access (PC
a0042955 PR 295583da)
Populating /dev using udev: done

Another example:

Starting dropbear sshd: OK
[ 484.428550] Fixing up unaligned userspace access in "touch" pid\x188
pc=0x295583d0 ins=0x60b2
[ 492.438796] Sending SIGBUS to "touch" due to unaligned access (PC
a0042955 PR 295583da)

The SIGBUS kills the process. I've tried various versions of linux
form kernel.org: 2.6.28, 2.6.29, 2.6.30 and all have the same
behaviour.

Using JTAG I see that I'm having both data alignment and PC alignment
problems. If I turn off the I&D caching this problem doesn't happen.

It almost seems like some loader code is loading programs on bad addresses.

I'm building the system using BuildRoot and the cross compiler I'm
using is version 4.3.4 of the GNU compiler and 2.19.1 of binutils.

Can anyone give a clue as to what rabbit holes I need to look down?

Dale Larson
Johnson Controls, Inc