Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Sep 2009 18:55:38 +0000
From:      Tom Judge <tom@tomjudge.com>
To:        freebsd-hackers@freebsd.org
Subject:   Help debugging: Fatal kernel mode data abort: 'External Linefetch Abort (P)'
Message-ID:  <4AC106AA.9000305@tomjudge.com>

next in thread | raw e-mail | index | archive | help
Hi,

I am working on getting FreeBSD to boot on a new ARM based board, and am hitting this issue any time I load a driver for the PCI based devices on the board.

My current code can be found here:

http://www.tomjudge.com/tmp/em7210.patch

Here is the back trace of the problem (which i can repeat with em and ohci drivers):



RedBoot> load -b 0x01008000 kernel
Using default protocol (TFTP)
Address offset = 0x40000000
Entry point: 0x01008100, address range: 0x01008000-0x01349e28
RedBoot> go
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.0-CURRENT #12: Sat Sep 26 05:00:06 UTC 2009
    root@rita.nodomain:/data/arm_build/arm/usr/src/sys/EM-7210
CPU: i80219 400MHz step A-0 (XScale core)
  DC enabled IC enabled WB enabled LABT branch prediction enabled
  32KB/32B 32-way Instruction cache
  32KB/32B 32-way write-back-locking Data cache
real memory  = 536870912 (512 MB)
avail memory = 503738368 (480 MB)
iq0: <Intel 80321> on motherboard
obio0 on iq0
uart0: <16550 or compatible> on obio0
uart0: [FILTER]
uart0: console (115200,n,8,1)
itimer0: <i80321 timer> on iq0
iopwdog0: <i80321 Watchdog, must be tickled every 7 seconds> on iq0
pcib0: <i80321 PCI bus> on iq0
pci0: <PCI bus> on pcib0
No mapping for 0/5/0/
No mapping for 0/5/1/
No mapping for 0/5/2/
pci0: <network, ethernet> at device 1.0 (no driver attached)
pci0: <network, ethernet> at device 2.0 (no driver attached)
atapci0: <Intel 31244 SATA150 controller> mem 0x80000-0x80fff irq 27 at device 3.0 on pci0
atapci0: [ITHREAD]
ata2: <ATA channel 0> on atapci0
Fatal kernel mode data abort: 'External Linefetch Abort (P)'
trapframe: 0xc00faaf0
FSR=00000406, FAR=Invalid,  spsr=600000d3
r0 =c13e2c00, r1 =cd5bc000, r2 =00000004, r3 =c13e2d7c
r4 =c13e2c00, r5 =cd5bc000, r6 =c1298290, r7 =c1388800
r8 =ffffffff, r9 =00000009, r10=c13d8c00, r11=c00fab58
r12=c00fab24, ssp=c00fab3c, slr=c102389c, pc =c1023898

[thread pid 0 tid 100000 ]
Stopped at      ata_ahci_chipinit+0x4d68:       ldr     r15, [r3, #0x024]
db> bt
Tracing pid 0 tid 100000 td 0xc134dca0
db_trace_thread() at db_trace_thread+0xc
scp=0xc129c68c rlv=0xc100d0f0 (db_command_init+0x2a8)
        rsp=0xc00fa7ec rfp=0xc00fa808
        r10=0x00000001 r9=0xc13537f4
        r8=0xc134b0c4 r7=0x00000062 r6=0x00000002 r5=0x00000010
        r4=0xc134dca0
db_command_init() at db_command_init+0x1d0
scp=0xc100d018 rlv=0xc100cba0 (db_skip_to_eol+0x49c)
        rsp=0xc00fa80c rfp=0xc00fa8b0
        r5=0x00000000 r4=0xc1327938
db_skip_to_eol() at db_skip_to_eol+0x1d0
scp=0xc100c8d4 rlv=0xc100cd0c (db_command_loop+0x60)
        rsp=0xc00fa8b4 rfp=0xc00fa8c0
        r10=0x00000000 r8=0x00000406
        r7=0xc00faaf0 r6=0xc13537f0 r5=0x600000d3 r4=0xc00fa8cc
db_command_loop() at db_command_loop+0xc
scp=0xc100ccb8 rlv=0xc100f050 (X_db_sym_numargs+0xf4)
        rsp=0xc00fa8c4 rfp=0xc00fa9e0
X_db_sym_numargs() at X_db_sym_numargs+0x14
scp=0xc100ef70 rlv=0xc1106e40 (kdb_trap+0xa4)
        rsp=0xc00fa9e4 rfp=0xc00faa0c
        r4=0x000000c0
kdb_trap() at kdb_trap+0xc
scp=0xc1106da8 rlv=0xc12acb44 (badaddr_read+0x280)
        rsp=0xc00faa10 rfp=0xc00faa2c
        r10=0x00000000 r9=0x00000009
        r8=0xc00faaf0 r7=0x00000406 r6=0x00000000 r5=0x00000406
        r4=0xc00faaf0
badaddr_read() at badaddr_read+0xfc
scp=0xc12ac9c0 rlv=0xc12acfdc (prefetch_abort_handler+0x440)
        rsp=0xc00faa30 rfp=0xc00faa50
        r6=0xc134dca0 r5=0xc00faef8
        r4=0xc00faaf0
prefetch_abort_handler() at prefetch_abort_handler+0x378
scp=0xc12acf14 rlv=0xc12ad1a8 (data_abort_handler+0x110)
        rsp=0xc00faa54 rfp=0xc00faaec
        r7=0xc134dca0 r6=0xc1298290
        r5=0xc00faef8 r4=0xc134d9d8
data_abort_handler() at data_abort_handler+0xc
scp=0xc12ad0a4 rlv=0xc129e0c8 (address_exception_entry+0x50)
        rsp=0xc00faaf0 rfp=0xc00fab58
        r10=0xc13d8c00 r9=0x00000009
        r8=0xffffffff r7=0xc1388800 r6=0xc1298290 r5=0xffff1004
        r4=0xc13e2c00
ata_ahci_chipinit() at ata_ahci_chipinit+0x4c44
scp=0xc1023774 rlv=0xc101b664 (ata_mode2idx+0x464)
        rsp=0xc00fab5c rfp=0xc00fab78
        r7=0xc1391900 r6=0xc13d8c00
        r5=0xc1388800 r4=0xc13a01b0
ata_mode2idx() at ata_mode2idx+0x3ec
scp=0xc101b5ec rlv=0xc1101a98 (device_attach+0x2c8)
        rsp=0xc00fab7c rfp=0xc00fabb8
        r7=0xc1100140 r6=0xc13d8c4c
        r5=0x80000000 r4=0xc1383080
device_attach() at device_attach+0xc
scp=0xc11017dc rlv=0xc1102e5c (device_probe_and_attach+0x34)
        rsp=0xc00fabbc rfp=0xc00fabcc
        r10=0xc1383080 r8=0xffffffff
        r7=0xc1100140 r6=0xc1383080 r5=0xc1391900 r4=0xc13d8c00
device_probe_and_attach() at device_probe_and_attach+0xc
scp=0xc1102e34 rlv=0xc1102e80 (bus_generic_attach+0x20)
        rsp=0xc00fabd0 rfp=0xc00fabe0
        r4=0xc13d8c00
bus_generic_attach() at bus_generic_attach+0xc
scp=0xc1102e6c rlv=0xc101d11c (ata_pci_attach+0x2a4)
        rsp=0xc00fabe4 rfp=0xc00fac0c
        r4=0x00000004
ata_pci_attach() at ata_pci_attach+0xc
scp=0xc101ce84 rlv=0xc1101a98 (device_attach+0x2c8)
        rsp=0xc00fac10 rfp=0xc00fac4c
        r7=0xc1100140 r6=0xc13830cc
        r5=0x80000000 r4=0xc1383200
device_attach() at device_attach+0xc
scp=0xc11017dc rlv=0xc1102e5c (device_probe_and_attach+0x34)
        rsp=0xc00fac50 rfp=0xc00fac60
        r10=0xc1383200 r8=0xffffffff
        r7=0xc1100140 r6=0x00000000 r5=0x00000000 r4=0xc1383080
device_probe_and_attach() at device_probe_and_attach+0xc
scp=0xc1102e34 rlv=0xc1102e80 (bus_generic_attach+0x20)
        rsp=0xc00fac64 rfp=0xc00fac74
        r4=0xc1383080
bus_generic_attach() at bus_generic_attach+0xc
scp=0xc1102e6c rlv=0xc1067094 (pci_add_children+0x240)
        rsp=0xc00fac78 rfp=0xc00fac98
        r4=0xc1383200
pci_add_children() at pci_add_children+0x154
scp=0xc1066fa8 rlv=0xc1101a98 (device_attach+0x2c8)
        rsp=0xc00fac9c rfp=0xc00facd8
        r6=0xc138324c r5=0x80000000
        r4=0xc13d9300
device_attach() at device_attach+0xc
scp=0xc11017dc rlv=0xc1102e5c (device_probe_and_attach+0x34)
        rsp=0xc00facdc rfp=0xc00facec
        r10=0xc13d9300 r8=0xffffffff
        r7=0x00000000 r6=0xc13d9300 r5=0xc13bec18 r4=0xc1383200
device_probe_and_attach() at device_probe_and_attach+0xc
scp=0xc1102e34 rlv=0xc1102e80 (bus_generic_attach+0x20)
        rsp=0xc00facf0 rfp=0xc00fad00
        r4=0xc1383200
bus_generic_attach() at bus_generic_attach+0xc
scp=0xc1102e6c rlv=0xc12b25a4 (i80321_sdram_bounds+0x860)
        rsp=0xc00fad04 rfp=0xc00fad20
        r4=0xc13bec60
i80321_sdram_bounds() at i80321_sdram_bounds+0x6f4
scp=0xc12b2438 rlv=0xc1101a98 (device_attach+0x2c8)
        rsp=0xc00fad24 rfp=0xc00fad60
        r7=0xc1100140 r6=0xc13d934c
        r5=0x80000000 r4=0xc13d9580
device_attach() at device_attach+0xc
scp=0xc11017dc rlv=0xc1102e5c (device_probe_and_attach+0x34)
        rsp=0xc00fad64 rfp=0xc00fad74
        r10=0xc13d9580 r8=0xc13d9580
        r7=0x40000004 r6=0xc13e2c00 r5=0x00000000 r4=0xc13d9300
device_probe_and_attach() at device_probe_and_attach+0xc
scp=0xc1102e34 rlv=0xc1102e80 (bus_generic_attach+0x20)
        rsp=0xc00fad78 rfp=0xc00fad88
        r4=0xc13d9300
bus_generic_attach() at bus_generic_attach+0xc
scp=0xc1102e6c rlv=0xc12b31e0 (iq80321_attach+0x370)
        rsp=0xc00fad8c rfp=0xc00fadb8
        r4=0xc12eeca8
iq80321_attach() at iq80321_attach+0xc
scp=0xc12b2e7c rlv=0xc1101a98 (device_attach+0x2c8)
        rsp=0xc00fadbc rfp=0xc00fadf8
        r8=0xffffffff r7=0xc1100140
        r6=0xc13d95cc r5=0x80000000 r4=0xc13d9680
device_attach() at device_attach+0xc
scp=0xc11017dc rlv=0xc1102e5c (device_probe_and_attach+0x34)
        rsp=0xc00fadfc rfp=0xc00fae0c
        r10=0xc13d9680 r8=0xffffffff
        r7=0xc1100140 r6=0xc13d96cc r5=0x80000000 r4=0xc13d9580
device_probe_and_attach() at device_probe_and_attach+0xc
scp=0xc1102e34 rlv=0xc1102e80 (bus_generic_attach+0x20)
        rsp=0xc00fae10 rfp=0xc00fae20
        r4=0xc13d9580
bus_generic_attach() at bus_generic_attach+0xc
scp=0xc1102e6c rlv=0xc12a0fec (minidumpsys+0xaf4)
        rsp=0xc00fae24 rfp=0xc00fae34
        r4=0xc13d9680
minidumpsys() at minidumpsys+0xae4
scp=0xc12a0fdc rlv=0xc1101a98 (device_attach+0x2c8)
        rsp=0xc00fae38 rfp=0xc00fae74
        r4=0xc12c30b8
device_attach() at device_attach+0xc
scp=0xc11017dc rlv=0xc1102e5c (device_probe_and_attach+0x34)
        rsp=0xc00fae78 rfp=0xc00fae88
        r10=0x0000000a r8=0x00000000
        r7=0xa10081a4 r6=0xc13d9b80 r5=0xc1347e7c r4=0xc13d9680
device_probe_and_attach() at device_probe_and_attach+0xc
scp=0xc1102e34 rlv=0xc1103140 (bus_generic_new_pass+0xe4)
        rsp=0xc00fae8c rfp=0xc00faea4
        r4=0xc13d9680
bus_generic_new_pass() at bus_generic_new_pass+0xc
scp=0xc1103068 rlv=0xc10ff13c (bus_set_pass+0x98)
        rsp=0xc00faea8 rfp=0xc00faec0
        r6=0x7fffffff r5=0xc13d9b80
        r4=0xc13f16c0
bus_set_pass() at bus_set_pass+0xc
scp=0xc10ff0b0 rlv=0xc10ff184 (root_bus_configure+0x14)
        rsp=0xc00faec4 rfp=0xc00faed0
        r6=0x00000006 r5=0xa10081b0
        r4=0xc12f0cb4
root_bus_configure() at root_bus_configure+0xc
scp=0xc10ff17c rlv=0xc129708c (xdr_sizeof+0x1d0)
        rsp=0xc00faed4 rfp=0xc00faee0
xdr_sizeof() at xdr_sizeof+0x1cc
scp=0xc1297088 rlv=0xc108e39c (mi_startup+0xdc)
        rsp=0xc00faee4 rfp=0xc00faef4
mi_startup() at mi_startup+0xc
scp=0xc108e2cc rlv=0xc1008248 (btext+0x148)
        rsp=0xc00faef8 rfp=0x00000000
        r4=0xa1008288


Thanks

Tom




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AC106AA.9000305>