Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jan 2015 01:21:00 +0000
From:      Steven Hartland <steven@multiplay.co.uk>
To:        Konstantin Belousov <kib@FreeBSD.org>, src-committers@freebsd.org,  svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r277100 - head/sys/dev/ahci
Message-ID:  <54B472FC.4090808@freebsd.org>
In-Reply-To: <201501130011.t0D0BvRD026054@svn.freebsd.org>
References:  <201501130011.t0D0BvRD026054@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Looks like this missed the addition of the new quirk to AHCI_Q_BIT_STRING.

On 13/01/2015 00:11, Konstantin Belousov wrote:
> Author: kib
> Date: Tue Jan 13 00:11:56 2015
> New Revision: 277100
> URL: https://svnweb.freebsd.org/changeset/base/277100
>
> Log:
>    Add quirk to override default BAR(5) rid for AHCI.
>    Use it for Cavium AHCI.
>    
>    Submitted by:	Michaе┌ Stanek
>    Reviewed by:	imp (previous version)
>    MFC after:	1 week
>
> Modified:
>    head/sys/dev/ahci/ahci.h
>    head/sys/dev/ahci/ahci_pci.c
>
> Modified: head/sys/dev/ahci/ahci.h
> ==============================================================================
> --- head/sys/dev/ahci/ahci.h	Tue Jan 13 00:04:22 2015	(r277099)
> +++ head/sys/dev/ahci/ahci.h	Tue Jan 13 00:11:56 2015	(r277100)
> @@ -572,6 +572,7 @@ enum ahci_err_type {
>   #define AHCI_Q_ATI_PMP_BUG	0x2000
>   #define AHCI_Q_MAXIO_64K	0x4000
>   #define AHCI_Q_SATA1_UNIT0	0x8000		/* need better method for this */
> +#define AHCI_Q_ABAR0		0x10000
>   
>   #define AHCI_Q_BIT_STRING	\
>   	"\020"			\
>
> Modified: head/sys/dev/ahci/ahci_pci.c
> ==============================================================================
> --- head/sys/dev/ahci/ahci_pci.c	Tue Jan 13 00:04:22 2015	(r277099)
> +++ head/sys/dev/ahci/ahci_pci.c	Tue Jan 13 00:11:56 2015	(r277100)
> @@ -287,6 +287,7 @@ static const struct {
>   	{0x11841039, 0x00, "SiS 966",		0},
>   	{0x11851039, 0x00, "SiS 968",		0},
>   	{0x01861039, 0x00, "SiS 968",		0},
> +	{0xa01c177d, 0x00, "ThunderX SATA",	AHCI_Q_ABAR0},
>   	{0x00000000, 0x00, NULL,		0}
>   };
>   
> @@ -386,12 +387,16 @@ ahci_pci_attach(device_t dev)
>   	    pci_get_subvendor(dev) == 0x1043 &&
>   	    pci_get_subdevice(dev) == 0x81e4)
>   		ctlr->quirks |= AHCI_Q_SATA1_UNIT0;
> -	/* if we have a memory BAR(5) we are likely on an AHCI part */
>   	ctlr->vendorid = pci_get_vendor(dev);
>   	ctlr->deviceid = pci_get_device(dev);
>   	ctlr->subvendorid = pci_get_subvendor(dev);
>   	ctlr->subdeviceid = pci_get_subdevice(dev);
> -	ctlr->r_rid = PCIR_BAR(5);
> +
> +	/* Default AHCI Base Address is BAR(5), Cavium uses BAR(0) */
> +	if (ctlr->quirks & AHCI_Q_ABAR0)
> +		ctlr->r_rid = PCIR_BAR(0);
> +	else
> +		ctlr->r_rid = PCIR_BAR(5);
>   	if (!(ctlr->r_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
>   	    &ctlr->r_rid, RF_ACTIVE)))
>   		return ENXIO;
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54B472FC.4090808>