<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial size=2>Hi All,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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"</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I'm attaching (inline) the console message(in red
color) along with the sample code of the driver(in blue color). 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). </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Any pointers to same will be highly
appreciated.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Regards,</FONT></DIV>
<DIV><FONT face=Arial size=2>Akhilesh</FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV><FONT color=#ff0000>IBM Set-Top-Box BIOS 1.50 (Feb-16-2004)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Platform support <Redwood6/STBx25xx 1.03
(Jun/24/2002)></FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><BR><FONT color=#ff0000>Initializing devices, please
wait.....<BR>
</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> ------- System Info --------</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> Processor speed = 252 MHz</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> EBIU speed = 63
MHz</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> Amount of RAM = 64
MBytes</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DM9000 : dmfe_probe() : Checking DM9000 chip
</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DM9000 : Chip Found ID : 90000a46 </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><BR><FONT color=#ff0000> --- Device Configuration ---</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> Power-On Test Devices:</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 000 Disabled System Memory
[RAM]</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> ----------------------------</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> Boot Sources:</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 001 Disabled Application in
Flash [FLASH]</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 002 Enabled Ethernet
[ENET]</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT
color=#ff0000>
local=192.168.18.28 remote=192.168.18.101
hwaddr=bad0add00000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 003 Disabled Serial Port 1
[S1]</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT
color=#ff0000>
Baud = 9600</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> ----------------------------</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Update Flash : Disabled </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Automatic Boot: Disabled</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> ----------------------------</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 1 - Toggle Power-On Tests</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 2 - Change a Boot Device</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 3 - Change IP Addresses</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 4 - Ping test</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 5 - Change Baud Rate for S1 Boot</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 6 - Toggle Update Flash</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 7 - Toggle Automatic Boot</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> B - Bootlogo Management</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> D - Display Configuration</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> S - Save Changes</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> Z - Set Ethernet HW Address</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> 0 - Exit Menu and Boot Application</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> C - Enable CHOIS Debug </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>->0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DM900 : dmfe_init_dm9000 : initialising
dm9000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Booting from [ENET] Ethernet...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Sending bootp request ...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> bootp packets sent = 1<BR>DM900 : dmfe_send :
hold frame collision, outbound frame.</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><BR><FONT color=#ff0000>Got bootp response from :
192.168.18.101</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> My ip address is :
192.168.18.28</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><BR><FONT color=#ff0000>Loading file "zImage.treeboot" by TFTP for net boot
...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> block 268<BR> block 1440<BR>Transfer
completed, 897568 bytes received</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Loaded successfully ...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Entry point at 0x500000 ...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><BR><FONT color=#ff0000>loaded at: 00500000
005DC164</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>relocated to: 00400000 004DC164</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>board data at: 004DA124 004DA164</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>relocated to: 0040515C 0040519C</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>zimage at: 0040591D
004D9A6C</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>avail ram: 004DD000
02000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><BR><FONT color=#ff0000>Linux/PPC load: ip=on</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Uncompressing Linux...done.</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Now booting the kernel</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Linux version 2.6.14 (</FONT><A
href="mailto:root@localhost.localdomain"><FONT
color=#ff0000>root@localhost.localdomain</FONT></A><FONT color=#ff0000>) (gcc
version 4.0.0 (DENX ELDK 4.0 4.0.0)) #258 Wed Sep 13 16:12:58 IST
2006</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_early_init()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...done</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...done</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...done</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...done</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...done</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_add_one_device()...done</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_early_init()... done.</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>IBM Redwood6 (STBx25XX) Platform</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Port by MontaVista Software, Inc. (</FONT><A
href="mailto:source@mvista.com"><FONT
color=#ff0000>source@mvista.com</FONT></A><FONT color=#ff0000>)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Built 1 zonelists</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Kernel command line: ip=on</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>PID hash table entries: 256 (order: 8, 4096
bytes)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Dentry cache hash table entries: 8192 (order: 3, 32768
bytes)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Inode-cache hash table entries: 4096 (order: 2, 16384
bytes)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Memory: 30488k available (1452k kernel code, 344k data,
96k init, 0k highmem)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Mount-cache hash table entries: 512</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>NET: Registered protocol family 16</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_driver_init()...</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp: ocp_driver_init()... done.</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Adding platform devices </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports,
IRQ sharing disabled</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ttyS0 at MMIO 0x0 (irq = 22) is a 16550A</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ttyS1 at MMIO 0x0 (irq = 20) is a 16550A</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ttyS2 at MMIO 0x0 (irq = 21) is a 16550A</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>io scheduler noop registered</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>io scheduler anticipatory registered</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>io scheduler deadline registered</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>io scheduler cfq registered</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>RAMDISK driver initialized: 16 RAM disks of 4096K size
1024 blocksize</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>loop: loaded (max 8 devices)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>dm9000 Ethernet Driver</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>dm9000_set_io : byte_width 2</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>eth0: dm9000 at c3000000,c3000004 IRQ 26 MAC:
ba:d0:ad:d0:00:00</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Uniform Multi-Platform E-IDE driver Revision:
7.00alpha2</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: Assuming 50MHz system bus speed for PIO modes;
override with idebus=xx</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>NET: Registered protocol family 2</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>IP route cache hash table entries: 512 (order: -1, 2048
bytes)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>TCP established hash table entries: 2048 (order: 1,
8192 bytes)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>TCP bind hash table entries: 2048 (order: 1, 8192
bytes)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>TCP: Hash tables configured (established 2048 bind
2048)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>TCP reno registered</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>TCP bic registered</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>NET: Registered protocol family 1</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>inside stb04xxx_ide_init </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>IBM STB025xx OCP IDE driver version 1.0 f2100000
</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_redwood: waiting for drive ready......Drive spun up
</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp_ide_setup_dma </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>probing for hda: present=0, media=32,
probetype=ATA</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: probing with STATUS(0x51) instead of
ALTSTATUS(0x00)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: WDC WD400EB-00CPF0, ATA DISK drive</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>probing for hdb: present=0, media=32,
probetype=ATA</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>probing for hdb: present=0, media=32,
probetype=ATAPI</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hdb: probing with STATUS(0x01) instead of
ALTSTATUS(0x00)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp_ide_tune_drive pio 4</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_off_quietly</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_check</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>redwood_config_drive_for_dma 22</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ocp_ide_tune_drive pio 4</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_on</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide0 at 0xc3004000-0xc3004007,0xc3006000 on irq
27</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: max request size: 128KiB</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0x91</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0x10</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xf8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: 78165360 sectors (40020 MB) w/2048KiB Cache,
CHS=65535/16/63, (U)DMA</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: cache flushes not supported</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> hda:__ide_do_rw_disk : dma 1 lba48 0
LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c0340000 340000 count 8 dmastat 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_test_irq</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 50</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 0 500000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> hda1</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>IDE probe finished </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>eth0: link up, 100Mbps, full-duplex, lpa
0x41E1</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Sending BOOTP and RARP requests . OK</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>IP-Config: Got BOOTP answer from 192.168.18.101, my
address is 192.168.18.28</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>IP-Config: Complete:</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> device=eth0,
addr=192.168.18.28, mask=255.255.255.0, gw=192.168.18.1,</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> host=192.168.18.28, domain=,
nis-domain=(none),</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> bootserver=192.168.18.101,
rootserver=192.168.18.101, rootpath=/opt/eldk/ppc_4xx</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Looking up port of RPC 100003/2 on
192.168.18.101</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Looking up port of RPC 100005/1 on
192.168.18.101</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>VFS: Mounted root (nfs filesystem)
readonly.</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Freeing unused kernel memory: 96k init</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>modprobe: FATAL: Could not load
/lib/modules/2.6.14/modules.dep: No such file or directory</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>modprobe: FATAL: Could not load
/lib/modules/2.6.14/modules.dep: No such file or directory</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><BR><FONT color=#ff0000>INIT: version 2.85 booting<BR> Came here in
rc.sysinit creating var\n<BR>mounting <BR>ln: `/proc/mounts': File
exists<BR> Welcome to DENX Embedded Linux
Environment<BR> Press 'I' to enter interactive startup.<BR>Building
the cache [ OK ]<BR> storage network audio done[ OK
]<BR>modprobe: FATAL: Could not load /lib/modules/2.6.14/modules.dep: No such
file or directory</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Cannot access the Hardware Clock via any known
method.<BR>Use the --debug option to see the details of our search for an access
method.<BR>Setting clock : Thu Jan 1 01:00:12 MET 1970 [ OK
]<BR>Setting hostname CHOISpad-110: [ OK ]<BR>Mounting local
filesystems: [ OK ]<BR>Enabling swap space: [
OK ]</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>INIT: Entering runlevel: 3<BR>Entering non-interactive
startup<BR>Bringing up loopback interface: modprobe: FATAL: Could not load
/lib/modules/2.6.14/modules.dep: No such file or directory</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>arping: socket: Address family not supported by
protocol<BR>Error, some other host already uses address
127.0.0.1.<BR>[FAILED]<BR>Starting system logger: [ OK ]<BR>Starting
kernel logger: [ OK ]<BR>Starting portmap: [ OK
]<BR>Mounting NFS filesystems: [ OK ]<BR>Mounting other
filesystems: [ OK ]<BR>Starting xinetd: [ OK
]</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DENX ELDK version 4.0 build 2006-01-11<BR>Linux 2.6.14
on a ppc</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>CHOISpad-110 login: root<BR>Last login: Thu Jan 1
01:00:19 on console<BR>bash-3.00# <BR>bash-3.00# <BR>bash-3.00# <BR>bash-3.00#
<BR>bash-3.00# <BR>bash-3.00# hdparm -t /dev/hda</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>/dev/hda:<BR> multcount =
0 (off)<BR> I/O support = 0 (default
16-bit)<BR> unmaskirq = 1
(on)<BR> using_dma = 1 (on)<BR> keepsettings
= 0 (off)<BR> nowerr = 0
(off)<BR> readonly = 0
(off)<BR> readahead = 256
(on)<BR> geometry = 65535/16/63, sectors =
78165360, start = 0<BR>bash-3.00# <BR>bash-3.00# <BR>bash-3.00# <BR>bash-3.00#
<BR>bash-3.00# hdparm -t /dev/hda</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>/dev/hda:<BR> Timing buffered__ide_do_rw_disk :
dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000> disk reads: got ocp_ide_dma_setup
</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>__ide_do_rw_disk : dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0x10</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>__ide_do_rw_disk : dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>__ide_do_rw_disk : dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_off_quietly</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide0: reset: master: error (0x00?)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0x91</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0x10</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>__ide_do_rw_disk : dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>__ide_do_rw_disk : dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0x10</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>__ide_do_rw_disk : dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>__ide_do_rw_disk : dma 1 lba48 0 LBA=0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_setup </FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_execute_command : 0xc8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_begin 0x1000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA addr c1238000 1238000 count 8 dmastat
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>DMA complete stat 20001000 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: lost interrupt</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_end 0 20000000</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide_dma_intr : stat 58</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>hda: dma_intr: status=0x58 { DriveReady SeekComplete
DataRequest }</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide: failed opcode was: unknown</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>got ocp_ide_dma_off_quietly</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>ide0: reset: master: error (0x00?)</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
1</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 16</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
2</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 24</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
3</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 32</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
4</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 40</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
5</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 48</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
6</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 56</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
7</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 64</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
8</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 72</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>Buffer I/O error on device hda, logical block
9</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 80</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 88</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 96</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
104</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
112</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
120</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
128</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
136</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
144</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
152</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
160</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
168</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
176</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
184</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
192</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
200</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
208</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
216</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
224</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
232</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
240</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
248</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
256</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
264</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
272</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
280</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
288</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
296</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
304</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
312</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
320</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
328</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
336</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
344</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
352</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
360</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
368</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
376</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
384</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
392</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
400</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
408</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
416</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
424</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
432</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
440</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
448</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
456</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
464</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
472</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
480</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
488</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
496</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector
504</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>end_request: I/O error, dev hda, sector 0</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000>read() failed: Input/output error<BR>bash-3.00#
</FONT></DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV><FONT color=#ff0000></FONT> </DIV>
<DIV> </DIV>
<DIV><FONT color=#000080>static void ocp_ide_dma_begin(ide_drive_t
*drive){<BR>int i,reading=0,length;<BR>struct request * const rq =
HWGROUP(drive)->rq;<BR>unsigned long control;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> if(rq_data_dir (rq) == READ) reading =
1;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> printk("got ocp_ide_dma_begin
0x%x\n",mfdcr(DCRN_DMASR));<BR> /* enable DMA
*/<BR> ppc4xx_enable_dma_interrupt(IDE_DMACH);<BR> /*dmastat =
mfdcr(DCRN_DMASR);<BR> mtdcr(DCRN_DMASR,((u32)DMA_CH2_ERR | (u32)DMA_CS2 |
(u32)DMA_TS2));<BR> */<BR> mtdcr(DCRN_DMASR,0x22200120);<BR> /*Configure
CIC reg for line mode DMA*/<BR>#ifdef
WMODE<BR> mtdcr(DCRN_CICCR,(mfdcr(DCRN_CICCR) |
0x00000400));<BR>#else<BR> mtdcr(DCRN_CICCR,(mfdcr(DCRN_CICCR) &
~0x00000400));</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080>#endif</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> if(drive->media != ide_disk)
{<BR> printk("ocp_ide_dma_begin : Invalid media
\n");<BR> return;<BR> }<BR> if(ppc4xx_get_channel_config(IDE_DMACH,&dma_ch)
& DMA_CHANNEL_BUSY){<BR> printk("DMA channel busy
\n");<BR> return;<BR> }<BR> memset(rq->buffer,0,rq->current_nr_sectors*512);<BR> if(reading){<BR> <BR> dma_cache_inv((unsigned
long) rq->buffer, rq->current_nr_sectors * 512);<BR>#ifdef
WMODE<BR> mtdcr(DCRN_DMASA2,(u32)0x00000000);// set src address for
DMA channel
2<BR> mtdcr(DCRN_DMADA2,(u32)virt_to_bus(rq->buffer));//set dst
address for DMA channel
2<BR> mtdcr(DCRN_DCRXBCR,0x00000000);<BR> control =
0xE600CB02;<BR>#else<BR> mtdcr(DCRN_DMASA2,(u32)0xfce00000);// set
src address for DMA channel
2<BR> mtdcr(DCRN_DMADA2,(u32)virt_to_bus(rq->buffer));//set dst
address for DMA channel
2<BR> mtdcr(DCRN_DCRXBCR,0x90000000);<BR> control =
0xEE602b02;<BR>#endif<BR> }<BR> else
{<BR> dma_cache_wback_inv((unsigned long) rq->buffer,
rq->current_nr_sectors * 512);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080>#ifdef
WMODE<BR> mtdcr(DCRN_DMASA2,(u32)0x00000000);// set dst address for
DMA channel
2<BR> mtdcr(DCRN_DMADA2,(u32)virt_to_bus(rq->buffer));// set src
address for DMA channel
2<BR> mtdcr(DCRN_DCRXBCR,0x00000000);<BR> control =
0xC600CB02;<BR>#else<BR> mtdcr(DCRN_DMADA2,(u32)0xfce00000);// set
dst address for DMA channel
2<BR> mtdcr(DCRN_DMASA2,(u32)virt_to_bus(rq->buffer));// set src
address for DMA channel
2<BR> mtdcr(DCRN_DCRXBCR,0xB0000000);<BR> control =
0xcd602b02;<BR>#endif</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> }</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080>#ifdef WMODE<BR> length =
(rq->current_nr_sectors *512)/2;<BR>#else<BR> length =
(rq->current_nr_sectors
*512)/16;<BR>#endif<BR> mtdcr(DCRN_DMACT2,length);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> /*control = mfdcr(DCRN_DMACR2);<BR> control
|= DMA_CIE_ENABLE; Channel Interrupt Enable <BR> */<BR> control
&= ~DMA_CIE_ENABLE;<BR> mtdcr(DCRN_DMACR2,
control);<BR> //ppc4xx_enable_dma_interrupt(IDE_DMACH);<BR> <BR> printk("DMA
addr %x %x count %d dmastat
%x\n",rq->buffer,virt_to_bus(rq->buffer),rq->current_nr_sectors,dmastat);<BR> /*
wait for dma to complete (channel 2 terminal count) */<BR> for (i = 0; i
< 500000; i++) {<BR> if(i%1000 == 0)<BR> dmastat
= mfdcr(DCRN_DMASR);<BR> if (dmastat &
DMA_CS2)<BR> break;<BR> }<BR> printk("DMA complete
stat %x
%d\n",dmastat,i);<BR> mtdcr(DCRN_DCRXBCR,0x00000000);<BR> mtdcr(DCRN_DMACR2,
0x00000000);<BR> drive->waiting_for_dma = 0;<BR> //dmastat =
0;<BR>}<BR>static int ocp_ide_dma_end(ide_drive_t *drive){<BR>unsigned int tmp =
mfdcr(DCRN_DMASR);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> mtdcr (DCRN_UIC_SR(UIC0),(0x80000000ul >>
IDE_DMA_INT));<BR> mtdcr(DCRN_DMASR,0x22200120);<BR> dmastat =
mfdcr(DCRN_DMASR);<BR> printk("got ocp_ide_dma_end %x
%x\n",dmastat,tmp);<BR> drive->waiting_for_dma = 0;<BR> /* disable
DMA */<BR> //ppc4xx_disable_dma_interrupt(IDE_DMACH);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> return 0;<BR>}</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080>static void<BR>ocp_ide_setup_dma (ide_hwif_t * const
hwif)<BR>{<BR> printk("ocp_ide_setup_dma \n");</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><BR><FONT color=#000080> hwif->dma = IDE_DMACH;<BR>#ifdef
WMODE<BR> /*Word Mode psc(11-12)=00,pwc(13-18)=000110,
phc(19-21)=010, 22=1, 30=1 ---- 0xCB02*/</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> dma_ch.mode =TM_S_MM; /* xfer
from peripheral to mem */<BR> dma_ch.td =
DMA_TD;<BR> dma_ch.buffer_enable = FALSE;<BR> dma_ch.tce_enable =
FALSE;<BR> dma_ch.etd_output = FALSE;<BR> dma_ch.pce =
FALSE;<BR> dma_ch.pl = EXTERNAL_PERIPHERAL; /* no op
*/<BR> dma_ch.pwidth = PW_16;<BR> dma_ch.dai =
TRUE;<BR> dma_ch.sai = FALSE;<BR> dma_ch.psc =
0;
/* set the max setup cycles */<BR> dma_ch.pwc =
6;
/* set the max wait cycles */<BR> dma_ch.phc =
2;
/* set the max hold cycles */<BR> dma_ch.cp =
PRIORITY_LOW;<BR> dma_ch.int_enable = FALSE;<BR> dma_ch.ch_enable =
FALSE; /* No chaining */<BR> dma_ch.tcd_disable =
TRUE; /* No chaining */<BR>#else<BR>/*Line Mode
psc(11-12)=00,pwc(13-18)=000001, phc(19-21)=010, 22=1, 30=1 ----
0x2B02*/</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT
color=#000080> dma_ch.mode =DMA_MODE_MM_DEVATSRC; /* xfer
from peripheral to mem */<BR> dma_ch.td =
DMA_TD;<BR> dma_ch.buffer_enable = FALSE;<BR> dma_ch.tce_enable =
FALSE;<BR> dma_ch.etd_output = FALSE;<BR> dma_ch.pce =
FALSE;<BR> dma_ch.pl = EXTERNAL_PERIPHERAL; /* no op
*/<BR> dma_ch.pwidth = PW_64; /* Line mode on stbs
*/<BR> dma_ch.dai = TRUE;<BR> dma_ch.sai = FALSE;<BR> dma_ch.psc
=
0;
/* set the max setup cycles */<BR> dma_ch.pwc =
1;
/* set the max wait cycles */<BR> dma_ch.phc =
2;
/* set the max hold cycles */<BR> dma_ch.cp =
PRIORITY_LOW;<BR> dma_ch.int_enable = FALSE;<BR> dma_ch.ch_enable =
FALSE; /* No chaining */<BR> dma_ch.tcd_disable =
TRUE; /* No chaining */</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080>#endif<BR> if (ppc4xx_init_dma_channel(IDE_DMACH,
&dma_ch) != DMA_STATUS_GOOD){<BR> printk("ppc4xx_init_dma_channel
failed\n");<BR> return
-EBUSY;<BR> }<BR> //ppc4xx_disable_dma_interrupt(IDE_DMACH);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> /*init CIC control register to enable IDE
interface PIO mode*/<BR> mtdcr(DCRN_CICCR,(mfdcr(DCRN_CICCR) &
0xffff7bff) | 0x00000003);<BR> mtdcr(DCRN_DMACR2,
0);<BR> ppc4xx_clr_dma_status(IDE_DMACH);<BR> /* init CIC select2 reg
to connect external DMA port 3 to internal<BR> * DMA channel
2</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> */<BR> mtdcr(DCRN_DMAS2,(mfdcr(DCRN_DMAS2)
& 0xfffffff0) | 0x00000002);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><BR><FONT color=#000080> hwif->autodma =
1;hwif->udma_four=0;<BR> hwif->drives[0].autotune =
hwif->drives[1].autotune =
IDE_TUNE_AUTO;<BR> hwif->drives[0].autodma =
hwif->drives[1].autodma = hwif->autodma;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> hwif->atapi_dma =
0;<BR> hwif->ultra_mask = hwif->udma_four ? 0x1f :
0x07;<BR> hwif->mwdma_mask = 0x07;<BR> hwif->swdma_mask =
0x00;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> /* set everything to something != NULL
*/<BR> hwif->ide_dma_host_off =
&ocp_ide_dma_off_quietly;<BR> hwif->ide_dma_host_on
= &ocp_ide_dma_on;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> hwif->ide_dma_check =
&ocp_ide_dma_check;<BR> hwif->ide_dma_off_quietly =
&ocp_ide_dma_off_quietly;<BR> hwif->ide_dma_on
= &ocp_ide_dma_on;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> hwif->dma_setup =
&ocp_ide_dma_setup;<BR> hwif->dma_exec_cmd =
&ocp_dma_exec_cmd;<BR> hwif->dma_start
= &ocp_ide_dma_begin;<BR> hwif->ide_dma_end
= &ocp_ide_dma_end;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> hwif->ide_dma_test_irq =
&ocp_ide_dma_test_irq;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> hwif->ide_dma_lostirq =
&ocp_ide_dma_lostirq;<BR> hwif->ide_dma_timeout =
&ocp_ide_dma_timeout;<BR>}<BR> <BR>static int
__init<BR>stb025xx_ide_probe (struct ocp_device * const
ocp)<BR>{<BR> int
err;<BR> unsigned
int
uicdcr;<BR> volatile unsigned long ide_regs;<BR> unsigned
long
flags,ioaddr;<BR> ide_hwif_t
* const hwif = &ide_hwifs[0];<BR> unsigned
char *
ip;<BR> int
i;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> printk ("IBM STB025xx OCP IDE driver version %s
%x \n", IDEVR,ocp->def->paddr);<BR> if
(!request_region(REDWOOD_IDE_CMD, 0x10, "IDE"))<BR> return
-EBUSY;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> if (!request_region(REDWOOD_IDE_CTRL, 2, "IDE"))
{<BR> release_region(REDWOOD_IDE_CMD, 0x10);<BR> return
-EBUSY;<BR> }</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> ide_regs = ioaddr = (unsigned long)
ioremap(REDWOOD_IDE_CMD, 0x10);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> for (i = IDE_DATA_OFFSET; i <=
IDE_STATUS_OFFSET; i++) {<BR> hwif->io_ports[i] =
ioaddr;<BR> ioaddr +=
2;<BR> }<BR> hwif->io_ports[IDE_CONTROL_OFFSET]
=<BR> (unsigned long) ioremap(REDWOOD_IDE_CTRL,
2);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> ocp_force_power_on (ocp);<BR> <BR> /*
initialize */<BR> hwif->gendev.parent =
&ocp->dev;<BR> ocp_set_drvdata (ocp, hwif);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> /* setup MMIO ops */<BR> default_hwif_mmiops
(hwif);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> /* tell common code _not_ to mess with resources
*/<BR> hwif->mmio = 2;<BR> ide_set_hwifdata (hwif, (void *)
ide_regs);<BR> <BR> hwif->chipset =
ide_generic;<BR> hwif->irq =
IDE0_IRQ;<BR> hwif->noprobe =
0;<BR> hwif->hold = 1;<BR> hwif->udma_four =
0;<BR> hwif->tuneproc =
&ocp_ide_tune_drive;<BR> hwif->speedproc =
&ocp_ide_tune_chipset;<BR> hwif->drives[0].io_32bit =
hwif->drives[1].io_32bit = 0;<BR> hwif->drives[0].unmask
= hwif->drives[1].unmask = 1;<BR> pio_mode[0] = pio_mode[1]
= -1;<BR> <BR> ibm25xx_ide_spinup(0);<BR> ocp_ide_setup_dma
(hwif);<BR> probe_hwif_init (hwif);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> create_proc_ide_interfaces
();<BR> printk("IDE probe finished \n");<BR> return 0;<BR>}<BR>static
int ocp_ide_dma_end(ide_drive_t *drive){<BR>unsigned int tmp =
mfdcr(DCRN_DMASR);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> mtdcr (DCRN_UIC_SR(UIC0),(0x80000000ul >>
IDE_DMA_INT));<BR> mtdcr(DCRN_DMASR,0x22200120);<BR> dmastat =
mfdcr(DCRN_DMASR);<BR> printk("got ocp_ide_dma_end %x
%x\n",dmastat,tmp);<BR> drive->waiting_for_dma = 0;<BR> /* disable
DMA */<BR> //ppc4xx_disable_dma_interrupt(IDE_DMACH);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> return 0;<BR>}<BR>static int
ocp_ide_dma_test_irq(ide_drive_t *drive){</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> printk("got
ocp_ide_dma_test_irq\n");<BR> return 1; /* returns 1 if dma irq
issued, 0 otherwise */<BR>}<BR>static int ocp_ide_dma_verbose(ide_drive_t
*drive){</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> printk("got
ocp_ide_dma_verbose\n");<BR> return 1;<BR>}<BR>static int
ocp_ide_dma_lostirq(ide_drive_t *drive){</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><BR><FONT color=#000080> printk("got
ocp_ide_dma_lostirq\n");<BR> return 1;<BR>}<BR>static int
ocp_ide_dma_timeout(ide_drive_t *drive){</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> printk("got
ocp_ide_dma_timeout\n");<BR> return 1;<BR>}<BR>static
void<BR>ocp_dma_exec_cmd (ide_drive_t * const drive, u8 command){<BR>ide_hwif_t
*hwif = HWIF(drive);</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> //hwif->OUTBSYNC(drive,command,
IDE_COMMAND_REG);<BR> //printk("ide_dma_exec_cmd
%x\n",command);<BR> ide_execute_command (drive, command,&ide_dma_intr,
2*WAIT_CMD, NULL);<BR>}<BR>static int ocp_ide_dma_setup(ide_drive_t * const
drive){<BR> ide_hwif_t * const hwif = HWIF(drive);<BR> struct
request * const rq = HWGROUP(drive)->rq;</FONT></DIV>
<DIV><FONT color=#000080></FONT> </DIV>
<DIV><FONT color=#000080> printk("got ocp_ide_dma_setup
\n");<BR> /*if(rq->current_nr_sectors <
2){<BR> printk("request for less no of sectors
%d\n",rq->current_nr_sectors);<BR> ide_map_sg(drive,rq);drive->waiting_for_dma=0;
<BR> return 1;<BR> }*/<BR> drive->waiting_for_dma =
1;<BR> return 0;<BR>} <BR></FONT></DIV></FONT></DIV></BODY></HTML>