The chipset 5229 don't work poperly

2070718 (luismiguel.hernandez@campus.uab.es)
Tue, 19 Oct 1999 09:25:38 +0200


Hello
I'm having problems with my hard drive/Bios/ide chipset because i can't get
the DMA working properly in my system especially when booting directly on
linux (if the system is booted from windows the system recognizes the first
bus)
My configuration is
hda: samsung 3.2gigs udma 2
hdb: seagate 203 megs pio 0
hdc: asus 34x max cdrom udma 2
hdd: none

Motherboard is an Asus P5A-B with an M5229 chipset and award bios revision
1003

Evidently I've touch everything in my Award bios (ide modes: auto, 4/2....),
booted from dos with dos drivers... nothing works (only windows?)
I'm more disapointed because somebody says me that his Asus P5A works well
!!?!?! (The ATX version) because of that I've decided to debug the kernel in
the only way i know (i'm new in this kind of enviroments) print some variables
touching a bit the last function of the /drivers/block/ide-dma.c file
(appendix A), the otput of the dmesg command is available at Appendix B , also
here is the result of the dmesg command after booting with loadlin from win 98
(Apendix C)

******************************************************************************
******
Appendix A
******************Modified Version of the function ide-dma.c
:***********************
/*
* Fetch the DMA Bus-Master-I/O-Base-Address (BMIBA) from PCI space:
*/
__initfunc(unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif, int extra,
const char *name))
{
unsigned long dma_base = 0;
struct pci_dev *dev = hwif->pci_dev;
unsigned long ex;

if (hwif->mate && hwif->mate->dma_base) {
dma_base = hwif->mate->dma_base - (hwif->channel ? 0 : 8);
} else {
dma_base = dev->base_address[4] & PCI_BASE_ADDRESS_IO_MASK;
if (!dma_base || dma_base == PCI_BASE_ADDRESS_IO_MASK) {
printk("%s: dma_base is invalid (0x%04lx, BIOS problem), please report to
<mj@ucw.cz>\n", name, dma_base);
dma_base = 0;
}
}

printk ("%s:#1 dma_base= %lu.\n ",name ,dma_base); /*print 1
<<<<<<<<<<<<<<<<<<<<*/
if (dma_base) {
printk ("%s:#2 extra= %lu.\n ",name ,extra);/*print 2
<<<<<<<<<<<<<<<<<<<<*/
if (extra) /* PDC20246 & HPT343 */
request_region(dma_base+16, extra, name);
dma_base += hwif->channel ? 8 : 0;
hwif->dma_extra = extra;

ex=(inb(dma_base+2) & 0x80);
printk ("%s:#3 (inb(dma_base+2) & 0x80)= %lu.\n",name,ex); /*print 3
<<<<*/

if (ex) {
printk("%s: simplex device: DMA disabled\n", name);
dma_base = 0;
}
}
printk ("%s:#4 dma_base= %lu.\n ",name ,dma_base);/*print 4*/
return dma_base;
}

**end*************************************************************************
*************

******************************************************************************
******
Appendix B
******************Dmesg when booting
normal:******************************************

Linux version 2.2.5 (root@Iglú) (gcc version 2.7.2.3) #2 Sat May 22 23:51:08
CEST 1999
Detected 350803619 Hz processor.
ide_setup: ide0=M2559 -- BAD OPTION /*/*/*/*/* as you can see I
test all possibilities ;) */*/*/*/*/
Console: colour dummy device 80x25
Calibrating delay loop... 699.60 BogoMIPS
Memory: 128040k/131072k available (996k kernel code, 412k reserved, 1564k
data, 60k init)
CPU: AMD AMD-K6(tm) 3D processor stepping 00
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xf0560
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
Starting kswapd v 1.5
parport0: PC-style at 0x378 [SPP,ECP,ECPEPP,ECPPS2]
parport0: detected irq 7; use procfs to enable interrupt-driven operation.
vesafb: framebuffer at 0xe6000000, mapped to 0xc8800000, size 16384k
vesafb: mode is 800x600x8, linelength=800, pages=33
vesafb: protected mode interface info at c000:7e55
vesafb: pmi: set display start = c00c7e7e, set palette = c00c7ea8
vesafb: pmi: ports = c8c3 c903 d403 d503 da03 ff03
vesafb: scrolling: ywrap using protected mode interface, yres_virtual=20971
Console: switching to colour frame buffer device 100x37
fb0: VESA VGA frame buffer device
Detected PS/2 Mouse Port.
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
lp0: using parport0 (polling).
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.9)
Sound initialization started
<ESS ES1688 AudioDrive (rev 11) (3.1)> at 0x220 irq 5 dma 1,5
<ESS ES1688> at 0x330 irq 5 dma 0
Sound initialization complete
js: Version 1.2.13 using 350 MHz RDTSC timer.
js: no joysticks found
RAM disk driver initialized: 16 RAM disks of 4096K size
loop: registered device at major 7
PCI_IDE: unknown IDE controller on PCI bus 00 device 78, VID=10b9, DID=5229
PCI_IDE: not 100% native mode: will probe irqs later
PCI_IDE:#1 dma_base= 47104.
PCI_IDE:#2 extra= 0.
PCI_IDE:#3 (inb(dma_base+2) & 0x80)= 128.
PCI_IDE: simplex device: DMA disabled
PCI_IDE:#4 dma_base= 0.
ide0: PCI_IDE Bus-Master DMA disabled (BIOS)
PCI_IDE:#1 dma_base= 47104.
PCI_IDE:#2 extra= 0.
PCI_IDE:#3 (inb(dma_base+2) & 0x80)= 128.
PCI_IDE: simplex device: DMA disabled
PCI_IDE:#4 dma_base= 0.
ide1: PCI_IDE Bus-Master DMA disabled (BIOS)
hda: SAMSUNG WU33205A (3.2GB), ATA DISK drive
hdb: ST3243A, ATA DISK drive
hdc: ASUS CD-S340, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: SAMSUNG WU33205A (3.2GB), 3090MB w/109kB Cache, CHS=785/128/63
hdb: ST3243A, 204MB w/64kB Cache, CHS=1024/12/34
hdc: ATAPI 34X CD-ROM drive, 128kB Cache
Uniform CDROM driver Revision: 2.54
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
Partition check:
hda: hda1 hda2 hda3
hdb: hdb1
.....

**end*************************************************************************
*************

******************************************************************************
******
Appendix C
******************Dmesg when booting from
win98:*************************************

Linux version 2.2.5 (root@Iglú) (gcc version 2.7.2.3) #2 Sat May 22 23:51:08
CEST 1999
Detected 350803619 Hz processor.
ide_setup: ide0=M2559 -- BAD OPTION
Console: colour dummy device 80x25
Calibrating delay loop... 699.60 BogoMIPS
Memory: 128040k/131072k available (996k kernel code, 412k reserved, 1564k
data, 60k init)
CPU: AMD AMD-K6(tm) 3D processor stepping 00
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xf0560
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
Starting kswapd v 1.5
parport0: PC-style at 0x378 [SPP,ECP,ECPEPP,ECPPS2]
parport0: detected irq 7; use procfs to enable interrupt-driven operation.
vesafb: framebuffer at 0x0c000000, mapped to 0xc8800000, size 16384k
vesafb: mode is 800x600x8, linelength=800, pages=33
vesafb: protected mode interface info at c000:7e55
vesafb: pmi: set display start = c00c7e7e, set palette = c00c7ea8
vesafb: pmi: ports = c8c3 c903 d403 d503 da03 ff03
vesafb: scrolling: ywrap using protected mode interface, yres_virtual=20971
Console: switching to colour frame buffer device 100x37
fb0: VESA VGA frame buffer device
Detected PS/2 Mouse Port.
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
lp0: using parport0 (polling).
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.9)
Non-volatile memory driver v1.0
Sound initialization started
<ESS ES1688 AudioDrive (rev 11) (3.1)> at 0x220 irq 5 dma 1,5
<ESS ES1688> at 0x330 irq 5 dma 0
Sound initialization complete
js: Version 1.2.13 using 350 MHz RDTSC timer.
js: no joysticks found
RAM disk driver initialized: 16 RAM disks of 4096K size
loop: registered device at major 7
PCI_IDE: unknown IDE controller on PCI bus 00 device 78, VID=10b9, DID=5229
PCI_IDE: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
hda: SAMSUNG WU33205A (3.2GB), ATA DISK drive
hdb: ST3243A, ATA DISK drive
hdc: ASUS CD-S340, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: SAMSUNG WU33205A (3.2GB), 3090MB w/109kB Cache, CHS=785/128/63, UDMA
hdb: ST3243A, 204MB w/64kB Cache, CHS=1024/12/34
hdc: ATAPI 34X CD-ROM drive, 128kB Cache
Uniform CDROM driver Revision: 2.52
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
Partition check:
hda: hda1 hda2 hda3
hdb: hdb1
......

**end*************************************************************************
*************

Bye Turtle.

-
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/