lkml.org 
[lkml]   [1998]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Severe IDE BM-DMA problems.
On Sat, 7 Nov 1998, Richard Lyons wrote:

>
> On Fri, 6 Nov 1998, Andre M. Hedrick wrote:
>
> > Does this solve the problem for all cases?
>
> Erik has indicated that it doesn't fix his problem at all, so while the
> symptoms are the same, he's apparently suffering from a different
> problem.

But his is ASUS board correct?

> Arrgh. This would be the problem I'm wrestling with now. I was going to
> wait for a reply from Promise Support before I asked you about it, but
> since you brought it up: I'm trying to set up a fast RAID0 with 8G drives
> as masters on each of the hwif's of two Ultra33 cards. Getting the system
> to boot requires pulling the BIOS of one of the cards. The remaining BIOS
> detects all drives during boot, says that it's enabling BM, and all of the
> drives are detected as UDMA by the kernel. However, the drives on the
> BIOS-less card run much slower than the others - about 3.6Mb/sec vs
> 12Mb/sec. I was able to duplicate this with ZD Winbench 99 on Win95 with
> version 1.36 of the Ultra drivers, so I've pinged (pung?) Promise, but I
> haven't heard back from them yet.
>
> What is it about the BIOS that enables the "go-fast" bits? Can we
> disassemble it to find out the magic? Surely it's not the actual presence
> of the EPROM?

Yes it is all in the ROM.....everyone of the mentioned cards above are
identical except for the BIOS.

Put an Ultra33 into a FastTrak and you get an Ultra33.....
Put a FastTrak into an Ultra33 and you get a FastTrak.....

I have determined that the upper 8 ioports of the 16 beyond the busmaster
are the reporting status of the defined arrays. I am guessing that
the lower eight are used to issuing sync and rebuild commands.

BUSMASTER is 0x7c00

Port 0x7c10 has value 0x0 (00000000).
Port 0x7c11 has value 0x0 (00000000).
Port 0x7c12 has value 0x0 (00000000).
Port 0x7c13 has value 0x0 (00000000).
Port 0x7c14 has value 0x0 (00000000).
Port 0x7c15 has value 0x0 (00000000).
Port 0x7c16 has value 0x0 (00000000).
Port 0x7c17 has value 0x0 (00000000).

Port 0x7c18 has value 0x0 (00000000).
Port 0x7c19 has value 0x0 (00000000).
Port 0x7c1a has value 0x1 (00000001).
Port 0x7c1b has value 0x1 (00000001).
Port 0x7c1c has value 0xf (00001111).
Port 0x7c1d has value 0x11 (00010001). master1 master2
Port 0x7c1e has value 0xbf (10111111). declared arrays
Port 0x7c1f has value 0x1 (00000001). array_status


5 VEN_105A&DEV_4D33\BUS_00&DEV_13 PCI Early VGA Device

00 4d33105a 02000007 01040001 00004000 00006c01 00007001 00007401 00007801
20 00007c01 00000000 00000000 00000000 00000000 00000000 00000000 0000010b
40 00000000 00000000 00000000 00000000 000003ee 00000000 00000000 00000000
60 004123d0 004ff3c4 004ff304 004ff304 00000000 00000000 00000000 00000000
80 4d33105a 02000007 01040001 00004000 00006c01 00007001 00007401 00007801
a0 00007c01 00000000 00000000 00000000 00000000 00000000 00000000 0000010b
c0 00000000 00000000 00000000 00000000 000003ee 00000000 00000000 00000000
e0 004123d0 004ff3c4 004ff304 004ff304 00000000 00000000 00000000 00000000

Note that if the array was funtional with two drive at master in a mirror,
pci-config space e0-e7 and e8-ef would be identical. However,
e8-eb are reporting no drive as is ec-ef and e4-e7 has an error fault
(my best guess to date). Since I broke the array by deleting the second
drive to what happens, both the config space changes and the high
busmaster values change.

This below is a stable functional array.

00 4d33105a 02000007 01040001 00004000 00006c01 00007001 00007401 00007801
20 00007c01 00000000 00000000 00000000 00000000 00000000 00000000 0000010f
40 00000000 00000000 00000000 00000000 000003ee 00000000 00000000 00000000
60 004123f0 004ff3c4 004123f0 004ff3c4 00000000 00000000 00000000 00000000
80 4d33105a 02000007 01040001 00004000 00006c01 00007001 00007401 00007801
a0 00007c01 00000000 00000000 00000000 00000000 00000000 00000000 0000010f
c0 00000000 00000000 00000000 00000000 000003ee 00000000 00000000 00000000
e0 004123f0 004ff3c4 004123f0 004ff3c4 00000000 00000000 00000000 00000000

Note that the example below the array is split because I forgot to call
"pci=reverse"

Linux version 2.1.126 (root@Deneb) (gcc version 2.8.1) #1
Sat Nov 7 01:05:16 CST 1998
Console: colour VGA+ 80x25
Calibrating delay loop... 132.71 BogoMIPS
Memory: 30656k/32768k available
(988k kernel code, 404k reserved, 684k data, 36k init)

PIIX3: IDE controller on PCI bus 00 dev 39
PIIX3: not 100% native mode: will probe irqs later
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
PDC20246: IDE controller on PCI bus 00 dev 98
PDC20246: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x7c00-0x7c07, BIOS settings: hda:pio, hdb:pio
ide2: BM-DMA at 0x7c08-0x7c0f, BIOS settings: hde:pio, hdf:pio
hda: Maxtor 90680D4, ATA DISK drive
hdc: CD-ROM CDU611, ATAPI CDROM drive
hde: Maxtor 90680D4, ATA DISK drive
ide0 at 0x6c00-0x6c07,0x7002 on irq 11
ide1 at 0x170-0x177,0x376 on irq 15
ide2 at 0x7400-0x7407,0x7802 on irq 11
hda: Maxtor 90680D4, 6485MB w/256kB Cache, CHS=13176/16/63, UDMA
hde: Maxtor 90680D4, 6485MB w/256kB Cache, CHS=13176/16/63, UDMA
hdc: ATAPI 10X CDROM drive, 256kB Cache

Partition check:
hda: [PTBL] [826/255/63] hda1 hda2 hda3 hda4
hde: [PTBL] [826/255/63] hde1 hde2 hde3 hde4
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 36k freed

Deneb:~# hdparm -tT /dev/hda ; hdparm -tT /dev/hde

/dev/hda:
Timing buffer-cache reads: 64 MB in 2.37 seconds =27.00 MB/sec
Timing buffered disk reads: 32 MB in 2.68 seconds =11.94 MB/sec

/dev/hde:
Timing buffer-cache reads: 64 MB in 2.36 seconds =27.12 MB/sec
Timing buffered disk reads: 32 MB in 2.62 seconds =12.21 MB/sec

Deneb:~# hdparm -i /dev/hda ; hdparm -i /dev/hde

/dev/hda:

Model=Maxtor 90680D4, FwRev=PAS23B15, SerialNo=V40QBKKA
Config={ Fixed }
RawCHS=13176/16/63, TrkSize=0, SectSize=0, ECCbytes=29
BuffType=3(DualPortCache), BuffSize=256kB, MaxMultSect=16, MultSect=16
DblWordIO=no, maxPIO=2(fast), DMA=yes, maxDMA=2(fast)
CurCHS=13176/16/63, CurSects=13281408
LBA CHS=826/255/63 Remmapping, LBA=yes, LBAsects=13281408
tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2
IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4
UDMA modes: mode0 mode1 *mode2

/dev/hde:

Model=Maxtor 90680D4, FwRev=PAS23B15, SerialNo=V40WB98A
Config={ Fixed }
RawCHS=13176/16/63, TrkSize=0, SectSize=0, ECCbytes=29
BuffType=3(DualPortCache), BuffSize=256kB, MaxMultSect=16, MultSect=16
DblWordIO=no, maxPIO=2(fast), DMA=yes, maxDMA=2(fast)
CurCHS=13176/16/63, CurSects=13281408
LBA CHS=826/255/63 Remmapping, LBA=yes, LBAsects=13281408
tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2
IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4
UDMA modes: mode0 mode1 *mode2

> Cheers,
> Rick.
>

Lastly Promise will not talk to me either.......I got two replies and that
was the end...........thus I built a second machine to put (the 'w' word)
and linux on the same drive array to see how promise configures the pci
space and the contents of the high busmaster area........

Cheers,
Andre Hedrick
The IDE-FNG for Linux
The APC UPS Specialist for Linux

http://www.dyer.vanderbilt.edu/server/udma/
http://www.dyer.vanderbilt.edu/server/apcupsd/apcupsd-3.5.0.bin.tar.gz





-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:45    [W:0.050 / U:0.464 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site