Date: Sun, 23 Jan 2005 17:55:05 +0300 (MSK) From: Dmitry Morozovsky <marck@rinet.ru> To: Doug Ambrisko <ambrisko@ambrisko.com> Cc: Scott Long <scottl@freebsd.org> Subject: Re: freebsd problem: Cannot detect Hard Disk (SATA) Message-ID: <20050123175109.Y34546@woozle.rinet.ru> In-Reply-To: <20050122130248.W77536@woozle.rinet.ru> References: <200501200417.j0K4Hbhj033697@ambrisko.com> <20050122130248.W77536@woozle.rinet.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On Sat, 22 Jan 2005, Dmitry Morozovsky wrote: DM> DA> There is: DM> DA> http://www.ambrisko.com/doug/ata/ata_stable_sata_7.patch DM> DA> for 4.10. That deals with Intel and Promise SATA stuff and DM> DA> ata-raid fixes/enhancements. It deals with legacy and enhanced modes DM> DA> for Intel SATA. DM> DA> DM> DA> A bunch of people have installed it and are using this. A bunch of DM> DA> our customers use it via our appliance. DM> DM> Wow, thanks! BTW, it seems some sio patches are slipped in by accident? BTW2: here is small patch to support Promise SATA PDC20376 controller found on our Albatron MB Sincerely, D.Marck [DM5020, MCK-RIPE, DM3-RIPN] ------------------------------------------------------------------------ *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru *** ------------------------------------------------------------------------ [-- Attachment #2 --] diff -r -u sys/dev/ata/ata-all.c /FreeBSD/src/sys/dev/ata/ata-all.c --- sys/dev/ata/ata-all.c Sun Jan 23 17:46:00 2005 +++ /FreeBSD/src/sys/dev/ata/ata-all.c Sat Jan 22 15:49:15 2005 @@ -189,6 +189,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ promise_init(ch); break; @@ -282,6 +283,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ { struct ata_pci_controller *ctlr; ctlr = device_get_softc(device_get_parent(ch->dev)); @@ -1002,6 +1004,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ promise_init(ch); if(ch->devices & ATA_ATA_MASTER) ata_dmadone(&ch->device[MASTER]); diff -r -u sys/dev/ata/ata-dma.c /FreeBSD/src/sys/dev/ata/ata-dma.c --- sys/dev/ata/ata-dma.c Sun Jan 23 17:46:00 2005 +++ /FreeBSD/src/sys/dev/ata/ata-dma.c Sat Jan 22 15:53:48 2005 @@ -205,6 +205,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ if ((device == 0 && atadev->channel->sata_master_idx) || (device == 1 && atadev->channel->sata_slave_idx)){ atadev->param->hwres_cblid = 1; @@ -1349,6 +1350,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ error = ata_command(atadev, ATA_C_SETFEATURES, 0, ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY); ata_dmacreate(atadev, apiomode, ATA_UDMA5); @@ -1476,6 +1478,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ s = splbio(); ATA_OUTL(ch->r_bmio, ATA_BMDTP_PORT, ds->mdmatab); ATA_OUTL(ch->r_bmio, ATA_BMCTL_PORT, @@ -1515,6 +1518,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ ch->flags &= ~ATA_DMA_ACTIVE; ds->flags = 0; return 0; diff -r -u sys/dev/ata/ata-pci.c /FreeBSD/src/sys/dev/ata/ata-pci.c --- sys/dev/ata/ata-pci.c Sun Jan 23 17:46:00 2005 +++ /FreeBSD/src/sys/dev/ata/ata-pci.c Sat Jan 22 15:55:01 2005 @@ -340,6 +340,7 @@ case 0x3371105a: case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ return "Promise SATA150 TX2 controller"; case 0x3318105a: @@ -556,6 +557,7 @@ case 0x3319105a: /* Promise SATA150 TX4 */ case 0x3371105a: /* Promise SATA150 TX4 */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ /* is there a valid port range to connect to ? */ rid = 0x1c; controller->bmio[ATA_IDX_DATA].res = bus_alloc_resource(dev, @@ -849,6 +851,7 @@ case 0x3319105a: /* Promise SATA */ case 0x3371105a: /* Promise SATA */ case 0x3373105a: /* Promise SATA */ + case 0x3376105a: /* Promise SATA */ parent = device_get_parent(ch->dev); ctlr = device_get_softc(parent); ata_promise_plug_scan_intr(ch, 1); diff -r -u sys/dev/ata/ata-raid.c /FreeBSD/src/sys/dev/ata/ata-raid.c --- sys/dev/ata/ata-raid.c Sun Jan 23 17:46:00 2005 +++ /FreeBSD/src/sys/dev/ata/ata-raid.c Sat Jan 22 15:55:30 2005 @@ -159,6 +159,7 @@ case 0x4d69105a: case 0x5275105a: case 0x6269105a: case 0x7275105a: case 0x3318105a: case 0x3319105a: case 0x3371105a: case 0x3373105a: + case 0x3376105a: /* test RAID bit in PCI reg XXX */ return (ar_promise_read_conf(adp, ar_table, 0));
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050123175109.Y34546>
