kern/80042: FreeBSD 5.4 RC2: Promise PDC20265 on A7V mobo + Maxtor 6B200P0/BAH41BM0 gives only 268435455 instead of 398297088 sectors

Martin Birgmeier nobody at junk.com
Fri May 27 06:00:13 PDT 2005


The following reply was made to PR kern/80042; it has been noted by GNATS.

From: Martin Birgmeier <nobody at junk.com>
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: kern/80042: FreeBSD 5.4 RC2: Promise PDC20265 on A7V mobo + Maxtor
 6B200P0/BAH41BM0 gives only 268435455 instead of 398297088 sectors
Date: Fri, 27 May 2005 14:51:00 +0200

 This is a multi-part message in MIME format.
 --------------090601000102030407080106
 Content-Type: text/plain; charset=us-ascii; format=flowed
 Content-Transfer-Encoding: 7bit
 
 The previous patch was missing the second half...
 
 -- 
 Martin Birgmeier
 
 Vienna
 Austria
 
 --------------090601000102030407080106
 Content-Type: text/plain;
  name="PATCH_sys_dev_ata_ata-chipset.c"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="PATCH_sys_dev_ata_ata-chipset.c"
 
 *** sys/dev/ata/ata-chipset.c.ORIG	Wed Mar 23 06:14:11 2005
 --- sys/dev/ata/ata-chipset.c	Fri May 27 14:46:44 2005
 ***************
 *** 1989,1995 ****
       if (ch->flags & ATA_48BIT_ACTIVE) {
   	ATA_OUTB(ctlr->r_res1, 0x11,
   		 ATA_INB(ctlr->r_res1, 0x11) | (ch->unit ? 0x08 : 0x02));
 ! 	ATA_OUTL(ctlr->r_res1, 0x20,
   		 ((ch->dma->flags & ATA_DMA_READ) ? 0x05000000 : 0x06000000) |
   		 (ch->dma->cur_iosize >> 1));
       }
 --- 1989,1995 ----
       if (ch->flags & ATA_48BIT_ACTIVE) {
   	ATA_OUTB(ctlr->r_res1, 0x11,
   		 ATA_INB(ctlr->r_res1, 0x11) | (ch->unit ? 0x08 : 0x02));
 ! 	ATA_OUTL(ctlr->r_res1, ch->unit ? 0x24 : 0x20,
   		 ((ch->dma->flags & ATA_DMA_READ) ? 0x05000000 : 0x06000000) |
   		 (ch->dma->cur_iosize >> 1));
       }
 ***************
 *** 2013,2019 ****
       if (ch->flags & ATA_48BIT_ACTIVE) {
   	ATA_OUTB(ctlr->r_res1, 0x11,
   		 ATA_INB(ctlr->r_res1, 0x11) & ~(ch->unit ? 0x08 : 0x02));
 ! 	ATA_OUTL(ctlr->r_res1, 0x20, 0);
       }
       error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT);
       ATA_IDX_OUTB(ch, ATA_BMCMD_PORT,
 --- 2013,2019 ----
       if (ch->flags & ATA_48BIT_ACTIVE) {
   	ATA_OUTB(ctlr->r_res1, 0x11,
   		 ATA_INB(ctlr->r_res1, 0x11) & ~(ch->unit ? 0x08 : 0x02));
 ! 	ATA_OUTL(ctlr->r_res1, ch->unit ? 0x24 : 0x20, 0);
       }
       error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT);
       ATA_IDX_OUTB(ch, ATA_BMCMD_PORT,
 
 --------------090601000102030407080106--


More information about the freebsd-bugs mailing list