Joe Marcus Clarke wrote: > On Tue, 2009-03-03 at 00:31 +0200, Alexander Motin wrote: >> Joe Marcus Clarke wrote: >>> On Mon, 2009-03-02 at 23:20 +0200, Alexander Motin wrote: >>>> Joe Marcus Clarke wrote: >>>>> I started this thread on May 31 of last year: >>>>> >>>>> http://lists.freebsd.org/pipermail/freebsd-current/2008-May/085923.html >>>>> >>>>> The problem remains as of: >>>>> >>>>> FreeBSD fugu.marcuscom.com 8.0-CURRENT FreeBSD 8.0-CURRENT #12: Sun Mar >>>>> 1 16:10:52 EST 2009 >>>>> gnome_at_fugu.marcuscom.com:/space/obj/usr/src/sys/FUGU i386 >>>>> >>>>> The only way I can boot this system is to hack in the ATA code from >>>>> April 9, 2008. I would love just to be able to boot this guy on a >>>>> default -CURRENT. >>>> 1) If I understand right, you had working system on April 9, 2008 and >>>> not working on May 31, 2008 and now. Have you tried to narrow down that >>>> interval between working and not working system to find exact point of >>>> breakage? I see no documented changes in Promise support there in CVS >>>> log, but for example, on Apr 10 2008 I see some related changes >>>> unmentioned in commit message. >>> The April 9 date is the documented date of last working. It was the >>> commit on April 10 13:05:05 that broken things: >>> >>> "Add experimental support for SATA Port Multipliers >>> >>> Support is working on the Silicon Image SiI3124/3132. >>> Support is working on some AHCI chips but far from all. >>> >>> Remember this is WIP, so test reports and (constructive) suggestions are welcome!" >> You can try to comment out >> /* set portmultiplier port */ >> ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), port & 0x0f); >> inside ata_promise_mio_command(). Don't know if there is some problem >> with it, but it was added at that time and looks like it is at least not >> applicable for this type of controller. > > That did it! Thanks! I can now easily post the full verbose dmesg on > HEAD code if you'd like. Apply this patch first. It should be good as far as I can tell without having that chips datasheets. -- Alexander Motin --- ata-promise.c.prev 2009-03-02 00:30:41.000000000 +0200 +++ ata-promise.c 2009-03-03 01:12:18.000000000 +0200 _at__at_ -690,8 +690,11 _at__at_ ata_promise_mio_command(struct ata_reque ATA_OUTL(ctlr->r_res2, (ch->unit + 1) << 2, 0x00000001); - /* set portmultiplier port */ - ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), atadev->unit & 0x0f); + if ((ctlr->chip->cfg2 == PR_SATA2) || + ((ctlr->chip->cfg2 == PR_CMBO2) && (ch->unit < 2))) { + /* set portmultiplier port */ + ATA_OUTB(ctlr->r_res2, 0x4e8 + (ch->unit << 8), atadev->unit & 0x0f); + } /* XXX SOS add ATAPI commands support later */ switch (request->u.ata.command) {Received on Mon Mar 02 2009 - 22:15:51 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:43 UTC