lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 20 Dec 2006 11:13:02 +0800
From:	"Conke Hu" <conke.hu@...il.com>
To:	"Jeff Garzik" <jeff@...zik.org>, Alan <alan@...rguk.ukuu.org.uk>,
	"Andrew Morton" <akpm@...l.org>
Cc:	"Linux kernel mailing list" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] Add pci class code for SATA

On 12/20/06, Jeff Garzik <jeff@...zik.org> wrote:
> Conke Hu wrote:
> > Add pci class code 0x0106 for SATA to pci_ids.h
> >
> > signed-off-by: conke.hu@...il.com
> > --------------------
> > --- linux-2.6.20-rc1/include/linux/pci_ids.h.orig     2006-12-20
> > 01:58:30.000000000 +0800
> > +++ linux-2.6.20-rc1/include/linux/pci_ids.h  2006-12-20
> > 01:59:07.000000000 +0800
> > @@ -15,6 +15,7 @@
> >  #define PCI_CLASS_STORAGE_FLOPPY     0x0102
> >  #define PCI_CLASS_STORAGE_IPI                0x0103
> >  #define PCI_CLASS_STORAGE_RAID               0x0104
> > +#define PCI_CLASS_STORAGE_SATA               0x0106
> >  #define PCI_CLASS_STORAGE_SAS                0x0107
> >  #define PCI_CLASS_STORAGE_OTHER              0x0180
>
> Two comments:
>
> 1) I think "_SATA" is an inaccurate description.  It should be _AHCI AFAICS.
>
> 2) Typically we don't add constants unless they are used somewhere...
>
>         Jeff
>

Hi Jeff,
    According to PCI spec 3.0, 0x0106 means SATA controller, 0x010601
means AHCI and 0x010600 means vendor specific SATA controller. Pls see
the following table (PCI spec 3.0 P296):

Base Class 	Sub-Class 	Interface 	Meaning
--------------------------------------------------------
 		00h		00h 		SCSI bus controller
		------------------------------------------------
		01h 		xxh 		IDE controller
		-----------------------------------------------
		02h 		00h 		Floppy disk controller
		-----------------------------------------------------
		03h 		00h 		IPI bus controller
		--------------------------------------------------
		04h 		00h 		RAID controller
01h		------------------------------------------------
				20h 		ATA controller with ADMA interface
		05h		---------------------------------------------------
				30h 		ATA controller with ADMA interface
		-------------------------------------------------------------------
				00h 		Serial ATA controller–vendor specific interface
		06h		-----------------------------------------------------------------
		 		01h 		Serial ATA controller–AHCI 1.0 interface
		-------------------------------------------------------------------------
		07h 		00h 		Serial Attached SCSI (SAS) controller
		---------------------------------------------------------------------
		80h 		00h 		Other mass storage controller
------------------------------------------------------------------------------


So, I think, the following macro is correct:
#define PCI_CLASS_STORAGE_SATA               0x0106
If you would define AHCI class code, it should be 0x010601, not 0x0106:
#define PCI_CLASS_STORAGE_SATA_AHCI               0x010601

And, I think that PCI_CLASS_STORAGE_SATA had better be added to
pci_ids.h since the class code 0x0106 is used more than once. e.g.
ahci.c uses the magic number 0x0106 twice, and it might be used more
in future.

Best regards,
Conke
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists