Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 May 2006 16:05:48 +0100
From:      Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
To:        Maxim Sobolev <sobomax@FreeBSD.org>
Cc:        "current@freebsd.org" <current@FreeBSD.org>, sos@FreeBSD.org
Subject:   Re: Support for ICH7 controller in PowerBook Pro
Message-ID:  <1147791948.27776.26.camel@buffy.york.ac.uk>
In-Reply-To: <446935C6.6020900@FreeBSD.org>
References:  <444DD7DF.6010402@FreeBSD.org> <1145956219.2968.31.camel@sos.deepcore.dk> <44681E94.9000702@FreeBSD.org> <1147686547.23488.6.camel@buffy.york.ac.uk> <446935C6.6020900@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2006-05-15 at 19:15 -0700, Maxim Sobolev wrote:
> Gavin Atkinson wrote:
> > On Sun, 2006-05-14 at 23:24 -0700, Maxim Sobolev wrote:
> >> S=F8ren Schmidt wrote:
> >>> On Tir, 2006-04-25 at 01:03 -0700, Maxim Sobolev wrote:
> >>>> Hi S=F8ren,
> >>>>
> >>>> Attached please find small patch which adds support for 82801GBM/GHM=
=20
> >>>> SATA controller found in intel-based Macs, particularly in MacBook P=
ro.
> >>>>
> >>>> Please review & approve.
> >>> I'll look into it, I think Intel has a few other new chips I should a=
dd
> >>> in the same go, give me a few days...
> >> Any progress with this? Few days have turned into few weeks, and I don=
't=20
> >> want them turn into few months. :)
> >=20
> > Be aware that I believe your patch is slightly wrong.  As far as I can
> > tell the chip ID you've added is the non-AHCI version.  I have the same
> > chip in my new Toshiba laptop, and submitted a more complete PR
> > (kern/97228) over the weekend.
>=20
> MacBook doesn't work with your patch - FreeBSD detects controller but=20
> doesn't see any disks attached to it. :( Putting AHCI back solves the=20
> problem.
>=20
> I wonder if Intel has shipped two different controllers with the same=20
> pci ids.

Seems unlikely to me, Intel seem to love burning product IDs.  I wonder
if it has anything to do with which disks are attached.  My laptop
actually works with that set either to "AHCI" or "0", but I assumed that
was more of a by-product of the minimal AHCI support currently.

> Just in the case, attached is appropriate entry from pciconf -lv output:
>=20
> atapci1@pci0:31:2:      class=3D0x01018f card=3D0x72708086 chip=3D0x27c48=
086=20
> rev=3D0x02 hdr=3D0x00
>      vendor   =3D 'Intel Corporation'
>      device   =3D '82801GBM/GHM (ICH7-M Family) Serial ATA Storage Contro=
ller'
>      class    =3D mass storage
>      subclass =3D ATA
>=20
> And dmesg:
>=20
> atapci1: <Intel ICH7 SATA300 controller> port=20
> 0x40d8-0x40df,0x40f4-0x40f7,0x40d0-0x40d7,0x40f0-0x40f3,0x4020-0x402f=20
> mem 0x98405000-0x984053ff irq 19 at device 31.2 on pci0
> ata2: <ATA channel 0> on atapci1
> ata3: <ATA channel 1> on atapci1
> ad5: 95396MB <Seagate ST910021AS 3.07> at ata2-slave SATA150

Mine looks like:

atapci0@pci0:31:2:      class=3D0x010180 card=3D0x00011179 chip=3D0x27c4808=
6 rev=3D0x02 hdr=3D0x00
    vendor   =3D 'Intel Corporation'
    device   =3D '82801GBM/GHM (ICH7-M Family) Serial ATA Storage Controlle=
r'
    class    =3D mass storage
    subclass =3D ATA

Note that the class is different.

dmesg with the cfg1 flag set to 0:
atapci0: <Intel ICH7 SATA300 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177=
,0x376,0x9f10-0x9f1f irq 19 at device 31.2 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x9f10
ata0: <ATA channel 0> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=3D01 ostat0=3D80 ostat1=3D00
ata0: stat0=3D0x50 err=3D0x01 lsb=3D0x00 msb=3D0x00
ata0: reset tp2 stat0=3D50 stat1=3D00 devices=3D0x1<ATA_MASTER>
ioapic0: routing intpin 14 (ISA IRQ 14) to vector 55
ata0: [MPSAFE]
ata1: <ATA channel 1> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=3D01 ostat0=3D50 ostat1=3D00
ata1: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
ata1: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
ioapic0: routing intpin 15 (ISA IRQ 15) to vector 56
ata1: [MPSAFE]
[...]
ata0-master: pio=3DPIO4 wdma=3DWDMA2 udma=3DUDMA100 cable=3D40 wire
ad0: 76319MB <HTS541080G9SA00 MB4OC60D> at ata0-master SATA150
ad0: 156301488 sectors [155061C/16H/63S] 16 sectors/interrupt 1 depth queue
ata1-master: pio=3DPIO4 wdma=3DWDMA2 udma=3DUDMA33 cable=3D40 wire
acd0: <DVD/CDRW UJDA770/1.00> CDRW drive at ata1 as master

dmesg with the cfg1 flag set to AHCI:
atapci0: <Intel ICH7 SATA300 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177=
,0x376,0x9f10-0x9f1f irq 19 at device 31.2 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x9f10
atapci0: failed to enable memory mapping!
ata0: <ATA channel 0> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=3D03 ostat0=3D50 ostat1=3D00
ata0: stat0=3D0x50 err=3D0x01 lsb=3D0x00 msb=3D0x00
ata0: stat1=3D0x00 err=3D0x01 lsb=3D0x00 msb=3D0x00
ata0: reset tp2 stat0=3D50 stat1=3D00 devices=3D0x1<ATA_MASTER>
ioapic0: routing intpin 14 (ISA IRQ 14) to vector 55
ata0: [MPSAFE]
ata1: <ATA channel 1> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=3D03 ostat0=3D50 ostat1=3D00
ata1: stat0=3D0x00 err=3D0x01 lsb=3D0x14 msb=3D0xeb
ata1: stat1=3D0x00 err=3D0x00 lsb=3D0x00 msb=3D0x00
ata1: reset tp2 stat0=3D00 stat1=3D00 devices=3D0x4<ATAPI_MASTER>
ioapic0: routing intpin 15 (ISA IRQ 15) to vector 56
ata1: [MPSAFE]
[...]
ata0-master: pio=3DPIO4 wdma=3DWDMA2 udma=3DUDMA100 cable=3D40 wire
ad0: 76319MB <HTS541080G9SA00 MB4OC60D> at ata0-master SATA150
ad0: 156301488 sectors [155061C/16H/63S] 16 sectors/interrupt 1 depth queue
ata1-master: pio=3DPIO4 wdma=3DWDMA2 udma=3DUDMA33 cable=3D40 wire
acd0: <DVD/CDRW UJDA770/1.00> CDRW drive at ata1 as master

As far as I can tell, the only difference is the "atapci0: failed to
enable memory mapping!" line when I'm using the chipset as an AHCI
chipset.

So, as far as I'm concerned, AHCI works for my laptop, I'm just a little
wary (not really understanding AHCI) as to if this is safe or will
continue to work in the future, especially given the Intel docs seem to
suggest it is a non-AHCI PCI ID.

Gavin



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