Hi All,
I'm using IBM redwood6 stb025xx(ppc405gp) platform
with 2.6.14 kernel. I'm trying to get DMA working for IDE interface (PIO is
working). The problem I'm facing is that my DMA is completing and I'm getting a
error in DMA status register that "A DMA request from an external
device is pending"
I'm attaching the console message along with the
sample code of the driver. Please help me to resolve this issue. What I feel is
that DMA is completing and IDE is not getting anything. ( IDE status register is
giving 0x58).
Any pointers to same will be highly
appreciated.
Regards,
Akhilesh
|
IBM Set-Top-Box BIOS 1.50 (Feb-16-2004)
Platform support <Redwood6/STBx25xx 1.03 (Jun/24/2002)> Initializing devices, please wait..... ------- System Info -------- Processor speed = 252 MHz EBIU speed = 63 MHz Amount of RAM = 64 MBytes DM9000 : dmfe_probe() : Checking DM9000 chip DM9000 : Chip Found ID : 90000a46 --- Device Configuration --- Power-On Test Devices: 000 Disabled System Memory [RAM] ---------------------------- Boot Sources: 001 Disabled Application in Flash [FLASH] 002 Enabled Ethernet [ENET] local=192.168.18.28 remote=192.168.18.101 hwaddr=bad0add00000 003 Disabled Serial Port 1 [S1] Baud = 9600 ---------------------------- Update Flash : Disabled Automatic Boot: Disabled ---------------------------- 1 - Toggle Power-On Tests 2 - Change a Boot Device 3 - Change IP Addresses 4 - Ping test 5 - Change Baud Rate for S1 Boot 6 - Toggle Update Flash 7 - Toggle Automatic Boot B - Bootlogo Management D - Display Configuration S - Save Changes Z - Set Ethernet HW Address 0 - Exit Menu and Boot Application C - Enable CHOIS Debug ->0 DM900 : dmfe_init_dm9000 : initialising dm9000 Booting from [ENET] Ethernet... Sending bootp request ... bootp packets sent = 1 DM900 : dmfe_send : hold frame collision, outbound frame. Got bootp response from : 192.168.18.101 My ip address is : 192.168.18.28 Loading file "zImage.treeboot" by TFTP for net boot ... block 268 block 1440 Transfer completed, 897568 bytes received Loaded successfully ... Entry point at 0x500000 ... loaded at: 00500000 005DC164 relocated to: 00400000 004DC164 board data at: 004DA124 004DA164 relocated to: 0040515C 0040519C zimage at: 0040591D 004D9A6C avail ram: 004DD000 02000000 Linux/PPC load: ip=on Uncompressing Linux...done. Now booting the kernel Linux version 2.6.14 ([EMAIL PROTECTED]) (gcc version 4.0.0 (DENX ELDK 4.0 4.0.0)) #258 Wed Sep 13 16:12:58 IST 2006 ocp: ocp_early_init()... ocp: ocp_add_one_device()... ocp: ocp_add_one_device()...done ocp: ocp_add_one_device()... ocp: ocp_add_one_device()...done ocp: ocp_add_one_device()... ocp: ocp_add_one_device()...done ocp: ocp_add_one_device()... ocp: ocp_add_one_device()...done ocp: ocp_add_one_device()... ocp: ocp_add_one_device()...done ocp: ocp_add_one_device()... ocp: ocp_add_one_device()...done ocp: ocp_early_init()... done. IBM Redwood6 (STBx25XX) Platform Port by MontaVista Software, Inc. ([EMAIL PROTECTED]) Built 1 zonelists Kernel command line: ip=on PID hash table entries: 256 (order: 8, 4096 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 30488k available (1452k kernel code, 344k data, 96k init, 0k highmem) Mount-cache hash table entries: 512 NET: Registered protocol family 16 ocp: ocp_driver_init()... ocp: ocp_driver_init()... done. Adding platform devices Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled ttyS0 at MMIO 0x0 (irq = 22) is a 16550A ttyS1 at MMIO 0x0 (irq = 20) is a 16550A ttyS2 at MMIO 0x0 (irq = 21) is a 16550A io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) dm9000 Ethernet Driver dm9000_set_io : byte_width 2 eth0: dm9000 at c3000000,c3000004 IRQ 26 MAC: ba:d0:ad:d0:00:00 Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx NET: Registered protocol family 2 IP route cache hash table entries: 512 (order: -1, 2048 bytes) TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered TCP bic registered NET: Registered protocol family 1 inside stb04xxx_ide_init IBM STB025xx OCP IDE driver version 1.0 f2100000 ide_redwood: waiting for drive ready......Drive spun up ocp_ide_setup_dma probing for hda: present=0, media=32, probetype=ATA hda: probing with STATUS(0x51) instead of ALTSTATUS(0x00) hda: WDC WD400EB-00CPF0, ATA DISK drive probing for hdb: present=0, media=32, probetype=ATA probing for hdb: present=0, media=32, probetype=ATAPI hdb: probing with STATUS(0x01) instead of ALTSTATUS(0x00) ocp_ide_tune_drive pio 4 got ocp_ide_dma_off_quietly got ocp_ide_dma_check redwood_config_drive_for_dma 22 ocp_ide_tune_drive pio 4 got ocp_ide_dma_on ide0 at 0xc3004000-0xc3004007,0xc3006000 on irq 27 hda: max request size: 128KiB ide_execute_command : 0x91 ide_execute_command : 0x10 ide_execute_command : 0xf8 hda: 78165360 sectors (40020 MB) w/2048KiB Cache, CHS=65535/16/63, (U)DMA hda: cache flushes not supported hda:__ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c0340000 340000 count 8 dmastat 0 got ocp_ide_dma_test_irq got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 50 DMA complete stat 0 500000 hda1 IDE probe finished eth0: link up, 100Mbps, full-duplex, lpa 0x41E1 Sending BOOTP and RARP requests . OK IP-Config: Got BOOTP answer from 192.168.18.101, my address is 192.168.18.28 IP-Config: Complete: device=eth0, addr=192.168.18.28, mask=255.255.255.0, gw=192.168.18.1, host=192.168.18.28, domain=, nis-domain=(none), bootserver=192.168.18.101, rootserver=192.168.18.101, rootpath=/opt/eldk/ppc_4xx Looking up port of RPC 100003/2 on 192.168.18.101 Looking up port of RPC 100005/1 on 192.168.18.101 VFS: Mounted root (nfs filesystem) readonly. Freeing unused kernel memory: 96k init modprobe: FATAL: Could not load /lib/modules/2.6.14/modules.dep: No such file or directory modprobe: FATAL: Could not load /lib/modules/2.6.14/modules.dep: No such file or directory INIT: version 2.85 booting Came here in rc.sysinit creating var\n mounting ln: `/proc/mounts': File exists Welcome to DENX Embedded Linux Environment Press 'I' to enter interactive startup. Building the cache [ OK ] storage network audio done[ OK ] modprobe: FATAL: Could not load /lib/modules/2.6.14/modules.dep: No such file or directory Cannot access the Hardware Clock via any known method. Use the --debug option to see the details of our search for an access method. Setting clock : Thu Jan 1 01:00:12 MET 1970 [ OK ] Setting hostname CHOISpad-110: [ OK ] Mounting local filesystems: [ OK ] Enabling swap space: [ OK ] INIT: Entering runlevel: 3 Entering non-interactive startup Bringing up loopback interface: modprobe: FATAL: Could not load /lib/modules/2.6.14/modules.dep: No such file or directory arping: socket: Address family not supported by protocol Error, some other host already uses address 127.0.0.1. [FAILED] Starting system logger: [ OK ] Starting kernel logger: [ OK ] Starting portmap: [ OK ] Mounting NFS filesystems: [ OK ] Mounting other filesystems: [ OK ] Starting xinetd: [ OK ] DENX ELDK version 4.0 build 2006-01-11 Linux 2.6.14 on a ppc CHOISpad-110 login: root Last login: Thu Jan 1 01:00:19 on console bash-3.00# bash-3.00# bash-3.00# bash-3.00# bash-3.00# bash-3.00# hdparm -t /dev/hda /dev/hda: multcount = 0 (off) I/O support = 0 (default 16-bit) unmaskirq = 1 (on) using_dma = 1 (on) keepsettings = 0 (off) nowerr = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 65535/16/63, sectors = 78165360, start = 0 bash-3.00# bash-3.00# bash-3.00# bash-3.00# bash-3.00# hdparm -t /dev/hda /dev/hda: Timing buffered__ide_do_rw_disk : dma 1 lba48 0 LBA=0 disk reads: got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown __ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown ide_execute_command : 0x10 __ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown __ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown got ocp_ide_dma_off_quietly ide0: reset: master: error (0x00?) ide_execute_command : 0x91 ide_execute_command : 0x10 __ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown __ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown ide_execute_command : 0x10 __ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown __ide_do_rw_disk : dma 1 lba48 0 LBA=0 got ocp_ide_dma_setup ide_execute_command : 0xc8 got ocp_ide_dma_begin 0x1000 DMA addr c1238000 1238000 count 8 dmastat 0 DMA complete stat 20001000 0 hda: lost interrupt got ocp_ide_dma_end 0 20000000 ide_dma_intr : stat 58 hda: dma_intr: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown got ocp_ide_dma_off_quietly ide0: reset: master: error (0x00?) end_request: I/O error, dev hda, sector 0 Buffer I/O error on device hda, logical block 0 end_request: I/O error, dev hda, sector 8 Buffer I/O error on device hda, logical block 1 end_request: I/O error, dev hda, sector 16 Buffer I/O error on device hda, logical block 2 end_request: I/O error, dev hda, sector 24 Buffer I/O error on device hda, logical block 3 end_request: I/O error, dev hda, sector 32 Buffer I/O error on device hda, logical block 4 end_request: I/O error, dev hda, sector 40 Buffer I/O error on device hda, logical block 5 end_request: I/O error, dev hda, sector 48 Buffer I/O error on device hda, logical block 6 end_request: I/O error, dev hda, sector 56 Buffer I/O error on device hda, logical block 7 end_request: I/O error, dev hda, sector 64 Buffer I/O error on device hda, logical block 8 end_request: I/O error, dev hda, sector 72 Buffer I/O error on device hda, logical block 9 end_request: I/O error, dev hda, sector 80 end_request: I/O error, dev hda, sector 88 end_request: I/O error, dev hda, sector 96 end_request: I/O error, dev hda, sector 104 end_request: I/O error, dev hda, sector 112 end_request: I/O error, dev hda, sector 120 end_request: I/O error, dev hda, sector 128 end_request: I/O error, dev hda, sector 136 end_request: I/O error, dev hda, sector 144 end_request: I/O error, dev hda, sector 152 end_request: I/O error, dev hda, sector 160 end_request: I/O error, dev hda, sector 168 end_request: I/O error, dev hda, sector 176 end_request: I/O error, dev hda, sector 184 end_request: I/O error, dev hda, sector 192 end_request: I/O error, dev hda, sector 200 end_request: I/O error, dev hda, sector 208 end_request: I/O error, dev hda, sector 216 end_request: I/O error, dev hda, sector 224 end_request: I/O error, dev hda, sector 232 end_request: I/O error, dev hda, sector 240 end_request: I/O error, dev hda, sector 248 end_request: I/O error, dev hda, sector 256 end_request: I/O error, dev hda, sector 264 end_request: I/O error, dev hda, sector 272 end_request: I/O error, dev hda, sector 280 end_request: I/O error, dev hda, sector 288 end_request: I/O error, dev hda, sector 296 end_request: I/O error, dev hda, sector 304 end_request: I/O error, dev hda, sector 312 end_request: I/O error, dev hda, sector 320 end_request: I/O error, dev hda, sector 328 end_request: I/O error, dev hda, sector 336 end_request: I/O error, dev hda, sector 344 end_request: I/O error, dev hda, sector 352 end_request: I/O error, dev hda, sector 360 end_request: I/O error, dev hda, sector 368 end_request: I/O error, dev hda, sector 376 end_request: I/O error, dev hda, sector 384 end_request: I/O error, dev hda, sector 392 end_request: I/O error, dev hda, sector 400 end_request: I/O error, dev hda, sector 408 end_request: I/O error, dev hda, sector 416 end_request: I/O error, dev hda, sector 424 end_request: I/O error, dev hda, sector 432 end_request: I/O error, dev hda, sector 440 end_request: I/O error, dev hda, sector 448 end_request: I/O error, dev hda, sector 456 end_request: I/O error, dev hda, sector 464 end_request: I/O error, dev hda, sector 472 end_request: I/O error, dev hda, sector 480 end_request: I/O error, dev hda, sector 488 end_request: I/O error, dev hda, sector 496 end_request: I/O error, dev hda, sector 504 end_request: I/O error, dev hda, sector 0 read() failed: Input/output error bash-3.00#
ibm_ocp_ide.c
Description: Binary data
_______________________________________________ Linuxppc-embedded mailing list Linuxppc-embedded@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-embedded