Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Dec 2008 11:58:12 +0300
From:      "Andrey V. Elsukov" <bu7cher@yandex.ru>
To:        Victor Balada Diaz <victor@bsdes.net>
Cc:        freebsd-stable@freebsd.org, freebsd-amd64@freebsd.org, =?UTF-8?B?U8O4?= =?UTF-8?B?cmVuIFNjaG1pZHQ=?= <sos@FreeBSD.org>
Subject:   Re: [ATA] and re(4) stability issues
Message-ID:  <493F84A4.1080308@yandex.ru>
In-Reply-To: <20081209185236.GA1320@alf.bsdes.net>
References:  <20081209185236.GA1320@alf.bsdes.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Victor Balada Diaz wrote:
> Digging at linux source code i've found that they do some special things
> for this chipset that i've been unable to find on our code. This is
> linux code for my chipset:
> 
> 371                 AHCI_HFLAGS     (AHCI_HFLAG_IGN_SERR_INTERNAL |
> 372                                  AHCI_HFLAG_32BIT_ONLY | AHCI_HFLAG_NO_MSI |
> 373                                  AHCI_HFLAG_SECT255),
> 
> File and the rest of the code in here[3].
> 
> As i saw AHCI_HFLAG_NO_MSI i tried doing the easiest thing i could
> think of, switching MSI and MSI-x off for the whole system, so
> i added to /boot/loader.conf this tunables:

FreeBSD's ata(4) driver doesn't support MSI. This flag in linux's libata used in

     if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev))
                 pci_intx(pdev, 1);

In FreeBSD's code we have the same:

     /* enable PCI interrupt */
     pci_write_config(dev, PCIR_COMMAND,
                      pci_read_config(dev, PCIR_COMMAND, 2) & ~0x0400, 2);

AHCI_HFLAG_IGN_SERR_INTERNAL flag targeted to ignore SERR_INTERNAL errors.
FreeBSD's ata(4) driver ignores they too.

AHCI_HFLAG_32BIT_ONLY flag limits to use 32-bit DMA only.
If AHCI CAP register reports that controller supports 64-bit DMA driver will use 64-bit.
So i think there can be added one quirk for you, but i'm not sure that problem is here..

AHCI_HFLAG_SECT255 flag limits I/O operation to 255 sectors, FreeBSD uses 128-limit
by default.

-- 
WBR, Andrey V. Elsukov




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?493F84A4.1080308>