After install - Fatal trap 18 ATA problem?
Yar Tikhiy
yar at comp.chem.msu.su
Mon Jun 19 18:09:43 UTC 2006
On Fri, Jun 16, 2006 at 01:32:55PM -0400, Anish Mistry wrote:
> I'm trying to get FreeBSD installed on one of my systems and I'm
> getting the error stated below. I did have FreeBSD 6-STABLE
> installed a few months ago on this very system. The only change is
> that FreeBSD is now installed on the second harddrive instead of the
> first. This is using the -CURRENT snapshot for this month. The
> install goes just fine. I also get a very similar error when I
> install 6.1 too.
>
> This seems to be the same problem as:
> http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2006-03/msg00539.html
>
> But I don't have a built-in compact flash reader attached via. ATA.
>
> Full verbose boot+backtrace:
> http://am-productions.biz/docs/boot-panic-script.txt.gz
>
> rr232x: no controller detected.
> ata0-slave: pio=PIO4 wdma=WDMA2 udma=UDMA100 cable=80 wire
> ata0-master: pio=PIO4 wdma=WDMA2 udma=UDMA66 cable=80 wire
> ad0: setting PIO4 on nForce2 Pro chip
> ad0: setting UDMA66 on nForce2 Pro chip
> ad0: 17206MB <IBM DJNA-371800 J78OA30K> at ata0-master UDMA66
>
>
> Fatal trap 18: integer divide fault while in kernel mode
> cpuid = 0; apic id = 00
> instruction pointer = 0x20:0xc089b49f
> stack pointer = 0x28:0xc0c20b64
> frame pointer = 0x28:0xc0c20bec
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 0 (swapper)
> [thread pid 0 tid 0 ]
> Stopped at __qdivrem+0x3b: divl %ecx,%eax
> db> bt
> Tracing pid 0 tid 0 td 0xc0a02fb8
> __qdivrem(219b700,0,0,0,0) at __qdivrem+0x3b
> __udivdi3(219b700,0,0,0) at __udivdi3+0x16
^^^
Looks like an attempt to divide something (0x219b700) by zero
using quad_t arithmetics.
> ad_describe(c26e8580,c26e8580,c262c280,c265e400,c25ec200) at
> ad_describe+0x1b3
> ad_attach(c26e8580) at ad_attach+0x1e7
> device_attach(c26e8580,c0957850,c26e8580,c265e000,c265e400) at
> device_attach+0x58
> device_probe_and_attach(c26e8580) at device_probe_and_attach+0xe0
> bus_generic_attach(c25d2a80,c25d2a80,1,0,c26e8580) at
> bus_generic_attach+0x16
> ata_identify(c25d2a80) at ata_identify+0x1c8
> ata_boot_attach(0) at ata_boot_attach+0x3e
> run_interrupt_driven_config_hooks(0,c1ec00,c1e000,0,c0450af5) at
> run_interrupt_driven_config_hooks+0x18
> mi_startup() at mi_startup+0x96
> begin() at begin+0x2c
> db> ps
> --
> Anish Mistry
FWIW, I saw an integer divide fault apparently related to the ata
driver when I tried to test a low-end VIA-based mobo with FreeBSD.
I gave it away soon and had had no time for debugging though.
Could you see using gdb what C code is at ad_describe+0x1b3
in your kernel?
--
Yar
More information about the freebsd-current
mailing list