[Buildroot] Kernel oops on imx53 / ARM - Unhandled fault: alignment exception (0x801)s

amit.chaudhuri at bt.com amit.chaudhuri at bt.com
Tue Jul 15 15:12:06 UTC 2014


Hi,

I am using buildroot to create a toolchain for Freescale's imx53qsb board.  
Part of the target we're looking for is Qt5 with support for their eglfs 
platform.

If I only build part of Qt5 and don't satisfy dependencies for eglfs I get
a bootable system. When I add all of the dependencies I appear to need, I
get the relevant Qt5 modules compiled & linked but my kernel dies with 
"Unhandled fault: alignment exception (0x801) at 0xdf039e16". I've added the
console error message and disassembly of the crash site below.

In narrowing down the things that tip me over the edge I've settled on the
addition of udev and evdev as being likely factors.

I *think* I need to add -mno-unaligned-access to the compilation flags for
everything. But I've not worked out how to do that. If alignment is my issue
how does one add custom compilation flags to all packages?

If I'm mis-diagnosing the problem, I'd be keen to have that pointed out.
All help much appreciated..

Regards,

Amit

** console **

Linux version 2.6.35.3-00004-g5a0d407-dirty (chaudhak at linux-j264) (gcc version 4.7.3 (Buildroot 2014.05-rc3-00004-g5a0d407-dirty) ) #1 PREEMPT Mon Jul 14 17:02:48 BST 2014
CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Freescale MX53 LOCO Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 250880
Kernel command line: console=ttymxc0,115200 ip=dhcp root=/dev/mmcblk0p1 rootwait rw
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 480MB 512MB = 992MB total
Memory: 998308k/998308k available, 17500k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xf9e00000 - 0xffe00000   (  96 MB)
    vmalloc : 0xe0800000 - 0xf4000000   ( 312 MB)
    lowmem  : 0x80000000 - 0xe0000000   (1536 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .init : 0x80008000 - 0x80032000   ( 168 kB)
      .text : 0x80032000 - 0x807de000   (7856 kB)
      .data : 0x80802000 - 0x8085a0e0   ( 353 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
        RCU-based detection of stalled CPUs is disabled.
        Verbose stalled-CPUs detection is disabled.
NR_IRQS:368
MXC GPIO hardware
MXC IRQ initialized
MXC_Early serial console at MMIO 0x53fbc000 (options '115200')
bootconsole [ttymxc0] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 999.42 BogoMIPS (lpj=4997120)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Unhandled fault: alignment exception (0x801) at 0xdf039fc6
Internal error: : 801 [#1] PREEMPT
last sysfs file: 
Modules linked in:
CPU: 0    Not tainted  (2.6.35.3-00004-g5a0d407-dirty #1)
PC is at devtmpfs_init+0x10/0xa4
LR is at driver_init+0x8/0x28
pc : [<8001e19c>]    lr : [<8001e148>]    psr: 80000013
sp : df039fc0  ip : 00000000  fp : 00000000
r10: 00000000  r9 : 00000000  r8 : 00000000
r7 : 00000013  r6 : 800338b4  r5 : 80031830  r4 : 80031830
r3 : 8078f6f4  r2 : 65646f6d  r1 : 00000200  r0 : 8083d89c
Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387f  Table: 70004019  DAC: 00000017
Process swapper (pid: 1, stack limit = 0xdf0382e8)
Stack: (0xdf039fc0 to 0xdf03a000)
9fc0: 00000000 00000200 8009e324 00000000 80031830 8001e148 00000000 80008984
9fe0: 00000000 00000000 00000000 00000000 80008904 800338b4 2138002e 1c000420
[<8001e19c>] (devtmpfs_init+0x10/0xa4) from [<8001e148>] (driver_init+0x8/0x28)
[<8001e148>] (driver_init+0x8/0x28) from [<80008984>] (kernel_init+0x80/0x160)
[<80008984>] (kernel_init+0x80/0x160) from [<800338b4>] (kernel_thread_exit+0x0/0x8)
Code: e92d401f e59f3080 e59f0080 e5932000 (e58d2006) 


** disassembly **


8001e18c <devtmpfs_init>:
8001e18c:       e92d401f        push    {r0, r1, r2, r3, r4, lr}
8001e190:       e59f3080        ldr     r3, [pc, #128]  ; 8001e218 <devtmpfs_init+0x8c>
8001e194:       e59f0080        ldr     r0, [pc, #128]  ; 8001e21c <devtmpfs_init+0x90>
8001e198:       e5932000        ldr     r2, [r3]
8001e19c:       e58d2006        str     r2, [sp, #6]
8001e1a0:       e5932004        ldr     r2, [r3, #4]
8001e1a4:       e1d330b8        ldrh    r3, [r3, #8]
8001e1a8:       e58d200a        str     r2, [sp, #10]
8001e1ac:       e1cd30be        strh    r3, [sp, #14]
8001e1b0:       eb02d0a2        bl      800d2440 <register_filesystem>
8001e1b4:       e2504000        subs    r4, r0, #0
8001e1b8:       0a000003        beq     8001e1cc <devtmpfs_init+0x40>
8001e1bc:       e1a01004        mov     r1, r4
8001e1c0:       e59f0058        ldr     r0, [pc, #88]   ; 8001e220 <devtmpfs_init+0x94>
8001e1c4:       eb0f430c        bl      803eedfc <printk>
8001e1c8:       ea00000f        b       8001e20c <devtmpfs_init+0x80>
8001e1cc:       e59f0048        ldr     r0, [pc, #72]   ; 8001e21c <devtmpfs_init+0x90>
8001e1d0:       e28d1006        add     r1, sp, #6
8001e1d4:       eb027dce        bl      800bd914 <kern_mount_data>
8001e1d8:       e3700a01        cmn     r0, #4096       ; 0x1000
8001e1dc:       9a000006        bls     8001e1fc <devtmpfs_init+0x70>
8001e1e0:       e1a04000        mov     r4, r0
8001e1e4:       e59f0038        ldr     r0, [pc, #56]   ; 8001e224 <devtmpfs_init+0x98>
8001e1e8:       e1a01004        mov     r1, r4
8001e1ec:       eb0f4302        bl      803eedfc <printk>
8001e1f0:       e59f0024        ldr     r0, [pc, #36]   ; 8001e21c <devtmpfs_init+0x90>
8001e1f4:       eb02d063        bl      800d2388 <unregister_filesystem>
8001e1f8:       ea000003        b       8001e20c <devtmpfs_init+0x80>
8001e1fc:       e59f3024        ldr     r3, [pc, #36]   ; 8001e228 <devtmpfs_init+0x9c>
8001e200:       e5830000        str     r0, [r3]
8001e204:       e59f0020        ldr     r0, [pc, #32]   ; 8001e22c <devtmpfs_init+0xa0>
8001e208:       eb0f42fb        bl      803eedfc <printk>
8001e20c:       e1a00004        mov     r0, r4
8001e210:       e28dd010        add     sp, sp, #16
8001e214:       e8bd8010        pop     {r4, pc}
8001e218:       8078f6f4        .word   0x8078f6f4
8001e21c:       8083d89c        .word   0x8083d89c
8001e220:       8078f67d        .word   0x8078f67d
8001e224:       8078f6af        .word   0x8078f6af
8001e228:       80878c2c        .word   0x80878c2c
8001e22c:       8078f6da        .word   0x8078f6da

** end **


More information about the buildroot mailing list