DMA-related IDE driver crash on mount of second partition

Randy Sharo randy.sharo at bluecollarobjects.com
Sat Sep 29 04:23:16 EST 2007


Hello,

 

I could use some guidance on tracking down this problem.

 

I have all off-the-shelf components:

   * Artesyn PMPPC440  PMC (uses 440gp processor)

   * Artesyn CC1000dm carrier card

   * Kontron PMC-HDD1 hard drive module.

 

I'm running U-boot with linux kernel 2.4.10.  The system boots, but the
kernel is unable to allocate resource region 5 of the IDE controller at
0xa0000000.  

 

Even without region 5, I can mount and access a hard drive partition.  When
I mount a second partition I get a kernel oops, though.  The two partitions
are normal ext3 partitions and there is nothing wrong with the hard drive
images - I can mount either individually with no problems.  But the kernel
crashes when I mount both together.

 

I've traced the oops to determine that the kernel is trying to (and failing
to) invalidate the cache for address 0xE0000000.  Per the output of lspci,
the 0xA0000000 window is not large enough to extend to 0xE000000.  I don't
understand why the driver is trying to access such a high address.

 

Any advice on how to resolve the resource conflict and/or crash would be
appreciated.

 

I've attached my kernel config and a complete listing of the boot sequence
and error.  Here are the immediately relevant lines, though:

 

   At boot time:

 

PCI: Probing PCI hardware

PCI: Cannot allocate resource region 5 of device 0000:00:06.0

PCI: Failed to allocate mem resource #5:100 at a0000000 for 0000:00:06.0

.

.

.

SiI680: IDE controller at PCI slot 0000:00:06.0

SiI680: chipset revision 2

siimage: IDE controller MMIO ports not available.

SiI680: BASE CLOCK == 100

SiI680: 100% native mode on irq 25

    ide0: BM-DMA at 0xffd0-0xffd7, BIOS settings: hda:pio, hdb:pio

    ide1: BM-DMA at 0xffd8-0xffdf, BIOS settings: hdc:pio, hdd:pio

hda: HTS424040M9AT00, ATA DISK drive

 

 

   At run time:

 

bash-2.05b# lspci -v

00:02.0 Class 0680: 3388:0021 (rev 04)

        Subsystem: 1223:003a

        Flags: bus master, stepping, 66Mhz, medium devsel, latency 128, IRQ
25

        Memory at 80000000 (32-bit, prefetchable) [size=512M]

        Capabilities: [dc] Power Management version 4

        Capabilities: [e4] #06 [0094]

        Capabilities: [e8] Vital Product Data

 

00:06.0 Class 0101: 1095:0680 (rev 02) (prog-if 85 [Master SecO PriO])

        Subsystem: 1095:0680

        Flags: bus master, medium devsel, latency 128, IRQ 25

        I/O ports at fff8 [size=8]

        I/O ports at fff4 [size=4]

        I/O ports at ffe8 [size=8]

        I/O ports at ffe4 [size=4]

        I/O ports at ffd0 [size=16]

        Memory at a0000000 (32-bit, non-prefetchable)

        Expansion ROM at a0080000 [disabled] [size=512K]

        Capabilities: [60] Power Management version 2

 

bash-2.05b# mount /dev/ide/host0/bus0/target0/lun0/part3 x

bash-2.05b# ls x

bin  boot  etc  images  lib  lost+found  mnt  proc  root  sbin  tmp  usr
var

bash-2.05b# mount /dev/ide/host0/bus0/target0/lun0/part1 y

Oops: kernel access of bad area, sig: 11 [#1]

NIP: C0003804 LR: C00081B0 SP: DE8A3AF0 REGS: de8a3a40 TRAP: 0300    Not
tainted

 

MSR: 00021000 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

DAR: E0000000, DSISR: 00800000

TASK = dfe9ae20[336] 'mount' THREAD: de8a2000

Last syscall: 21

PLB0: bear= 0x00000000 acr=   0x9b000000 besr=  0x00000000

 

GPR00: C00082B4 DE8A3AF0 DFE9AE20 E0000000 07FFFFE0 0000001F 00000002
C02A0000

GPR08: 00000000 1FB44000 00000000 C02A0000 00000001 1002863C 1FFA8600
100C0000

GPR16: 00000000 00000000 100D0888 100C2A88 00000001 C02A0000 00029000
00000001

GPR24: 00000002 00000400 00000000 FFFFFC00 DE8A2000 DFB44800 C06BF880
FFFFFC00

NIP [c0003804] invalidate_dcache_range+0x1c/0x30

LR [c00081b0] __dma_sync+0x54/0x60

Call trace:

 [c00082b4] __dma_sync_page+0xf8/0x19c

 [c01467c0] ide_build_sglist+0xa8/0xf8

 [c0146840] ide_build_dmatable+0x30/0x1ac

 [c0146d64] ide_dma_setup+0x3c/0xc8

 [c0148ee4] __ide_do_rw_disk+0x2b8/0x598

 [c013e0f0] start_request+0x190/0x280

 [c013e438] ide_do_request+0x238/0x3d8

 [c011711c] __generic_unplug_device+0x68/0x6c

 [c011713c] generic_unplug_device+0x1c/0x38

 [c0117190] blk_backing_dev_unplug+0x38/0x3c

 [c0056a68] sync_buffer+0x64/0x68

 [c01ca8c4] __wait_on_bit+0xb0/0xc0

 [c01ca934] out_of_line_wait_on_bit+0x60/0x74

 [c0056b30] __wait_on_buffer+0x3c/0x40

 [c0058560] __bread_slow+0xac/0xd4

note: mount[336] exited with preempt_count 1

 

 

 

Regards,

   Randy Sharo

   Blue Collar Objects, LLC

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070928/c12510a4/attachment-0001.htm 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: config.txt
Url: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070928/c12510a4/attachment-0002.txt 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: legacymode.txt
Url: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20070928/c12510a4/attachment-0003.txt 


More information about the Linuxppc-embedded mailing list