Date: Mon, 28 Sep 2009 21:21:49 +0300 From: Alexander Motin <mav@FreeBSD.org> To: Dennis Chikin <ornoph@gmail.com> Cc: "Andrey V. Elsukov" <bu7cher@yandex.ru>, FreeBSD Mailing List <freebsd-stable@freebsd.org>, Jung-uk Kim <jkim@freebsd.org> Subject: Re: PATA disks/DVD not detected on ATI IXP 700 - cannot boot (dmesg attached) Message-ID: <4AC0FEBD.2020705@FreeBSD.org> In-Reply-To: <dde89ecd0909280247t3f14034cj2f81cb5019ee0264@mail.gmail.com> References: <20090916161327.GB87631@zod.isi.edu> <20090919035214.GA12889@zod.isi.edu> <200909211239.25614.jkim@FreeBSD.org> <4AB9A3CE.4090509@yandex.ru> <dde89ecd0909242239j4ecebc3dsfef5ec265237b5b3@mail.gmail.com> <4ABC5962.80404@yandex.ru> <dde89ecd0909280247t3f14034cj2f81cb5019ee0264@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Dennis Chikin wrote: >> Is it means that all works with this patch? > > No visible ata-specific faults encountered after loading the kernel. > >> Can you show dmesg from patched system? > atapci0: <ATI (ID=43901002) AHCI controller> port > 0xc000-0xc007,0xb000-0xb003,0xa000-0xa007,0x9000-0x9003,0x8000-0x800f > mem 0xfe8ff800-0xfe8ffbff irq 22 at device 17.0 on pci0 > atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x8000 > atapci0: Reserved 0x400 bytes for rid 0x24 type 3 at 0xfe8ff800 > ioapic0: routing intpin 22 (PCI IRQ 22) to vector 50 > atapci0: [MPSAFE] > atapci0: [ITHREAD] > atapci0: AHCI Version 01.10 controller with 4 ports detected > ata2: <ATA channel 0> on atapci0 > ata2: SATA connect time=0ms > ata2: SIGNATURE: 00000101 > ata2: ahci_reset devices=0x1<ATA_MASTER> > ata2: [MPSAFE] > ata2: [ITHREAD] > ata3: <ATA channel 1> on atapci0 > ata3: SATA connect status=00000000 > ata3: ahci_reset devices=0x0 > ata3: [MPSAFE] > ata3: [ITHREAD] > ata4: <ATA channel 2> on atapci0 > ata4: SATA connect status=00000000 > ata4: ahci_reset devices=0x0 > ata4: [MPSAFE] > ata4: [ITHREAD] > ata5: <ATA channel 3> on atapci0 > ata5: SATA connect status=00000000 > ata5: ahci_reset devices=0x0 > ata5: [MPSAFE] > ata5: [ITHREAD] > atapci1: <ATI IXP700 UDMA133 controller> port > 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xff00-0xff0f at device 20.1 on > pci0 > atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0xff00 > ata0: <ATA channel 0> on atapci1 > atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0 > atapci1: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6 > ata0: reset tp1 mask=03 ostat0=7f ostat1=7f > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat0=0x7f err=0xff lsb=0xff msb=0xff > ata0: stat1=0x7f err=0xff lsb=0xff msb=0xff > ata0: reset tp2 stat0=ff stat1=ff devices=0x0 > ioapic0: routing intpin 14 (ISA IRQ 14) to vector 55 > ata0: [MPSAFE] > ata0: [ITHREAD] > ata1: <ATA channel 1> on atapci1 > atapci1: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170 > atapci1: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376 > ata1: reset tp1 mask=03 ostat0=50 ostat1=50 > ata1: stat0=0x50 err=0x01 lsb=0x00 msb=0x00 > ata1: stat1=0x00 err=0x01 lsb=0x14 msb=0xeb > ata1: reset tp2 stat0=50 stat1=00 devices=0x9<ATAPI_SLAVE,ATA_MASTER> Here we can see detected: 4 (not 6!) SATA channels on AHCI controller, one PATA channel and 2 SATA channels in legacy emulation (why?). Actually, the same happens if I comment out all that device class magic. Looks like the only thing really required to fix problem with two lost channels is this part of patch: - /* IXP600 & IXP700 only have 1 PATA channel */ - if ((ctlr->chip->chipid == ATA_ATI_IXP600) || - (ctlr->chip->chipid == ATA_ATI_IXP700)) + /* IXP600 only have 1 PATA channel */ + if (ctlr->chip->chipid == ATA_ATI_IXP600) Looks like part of changing device class just not working. Today I have bought IXP700 based board and can acknowledge that the same situation I can see with recent HEAD. `pciconf -l` reports to me original PATA device class and only 4 channels reported by AHCI. So jkim@, could you please comment, how should it really work and why it doesn't? PS: I have tried to disable all that ATI-specific code and found that both legacy PCI ATA and AHCI drivers looks like working fine with IXP700. Do we really need AHCI forcing for IXP700? -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AC0FEBD.2020705>