From owner-freebsd-arch@FreeBSD.ORG Fri Feb 19 16:55:03 2010 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 031F110656B6 for ; Fri, 19 Feb 2010 16:55:02 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from gv-out-0910.google.com (gv-out-0910.google.com [216.239.58.188]) by mx1.freebsd.org (Postfix) with ESMTP id 41A5E8FC0A for ; Fri, 19 Feb 2010 16:55:01 +0000 (UTC) Received: by gv-out-0910.google.com with SMTP id y18so21648gvf.39 for ; Fri, 19 Feb 2010 08:55:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:content-type; bh=DjDGNQcFmSNHhD1XUxAYgzMjcHlVT2MZmmrduXOkNho=; b=fD6TVStTYymSbsNUboy0Xi3AP9pP1hWUBi2P7Q8Hl2k+wQy6y5/CYh5RaLS/NhxL4j zXWqLtU05U5F0ZDlxf/TwV/PIcI6tkxoVo+jkfuTeTKV8qc81eDiD3Vsh5yCS41QQIgT uz+U/BQrh65bBYLVDiTN4Sd+bOSAmUKyuhRVs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type; b=KL6IGNJBdv8JigWj33i3TuXD7zuxuRDlPjyv7www4OrOl3ysinpVlVa9koOP3uTBnP OvcUS3zsNc/JZZ4F/ATr3/ZZG0Lc9AUHes8GLiDwFBCqK5/Qxb2LOREyFqq6rhbOLi1N Hw9486/3srsWhQdnFJn58q/gIEuJu71CKCWWk= Received: by 10.102.207.12 with SMTP id e12mr8311843mug.97.1266598500357; Fri, 19 Feb 2010 08:55:00 -0800 (PST) Received: from mavbook.mavhome.dp.ua (pc.mavhome.dp.ua [212.86.226.226]) by mx.google.com with ESMTPS id b9sm1708173mug.57.2010.02.19.08.54.58 (version=SSLv3 cipher=RC4-MD5); Fri, 19 Feb 2010 08:54:59 -0800 (PST) Sender: Alexander Motin Message-ID: <4B7EC261.5000103@FreeBSD.org> Date: Fri, 19 Feb 2010 18:54:57 +0200 From: Alexander Motin User-Agent: Thunderbird 2.0.0.23 (X11/20091212) MIME-Version: 1.0 To: Alex Samorukov References: <4B79C711.3060907@os2.kiev.ua> In-Reply-To: <4B79C711.3060907@os2.kiev.ua> X-Enigmail-Version: 0.96.0 Content-Type: multipart/mixed; boundary="------------010506020101090202080601" Cc: freebsd-arch@freebsd.org Subject: Re: changes to the IOCATAREQUEST request X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Feb 2010 16:55:03 -0000 This is a multi-part message in MIME format. --------------010506020101090202080601 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi. Alex Samorukov wrote: > The following additions are required for a reasonable pass-through ioctl: > > sys/ata.h: > > struct ata_ioc_request { > ... > int count; > int flags; > #define ATA_CMD_CONTROL 0x01 > #define ATA_CMD_READ 0x02 > #define ATA_CMD_WRITE 0x04 > #define ATA_CMD_ATAPI 0x08 > +#define ATA_CMD_48BIT 0x10 // 48-bit command > +#define ATA_CMD_NO_MULTIPLE 0x20 // one DRQ/sector > int timeout; > int error; > }; The only who really knows command format and meaning are the application and the device. SCSI is more standardized there, but ATA isn't. I think submitting flags from user-level is the only way. I did the same in CAM ATA. > Here a list of 48-bit commands (provided by Christian Franke from > latest ACS 2 draft (T13/2015-D Revision 2). The FreeBSD function > ata_modify_if_48bit() selects commands marked with *** if their 28-bit > variants are requested and 48 bit addressing is actually required. Only > in this case ATA_D_48BIT_ACTIVE is set. The other commands are not > supported, I presume. Alike approach with hardware command decoding is used in SiliconImage SATA controllers. Adding new DSM commands in ACS-2 broke them, requiring right protocol to be specifically enforced for that commands. So compiling this into stack is probably a bad idea also. Small attached patch should handle the issue. PS: Not very understand what do you mean by ATA_CMD_NO_MULTIPLE. -- Alexander Motin --------------010506020101090202080601 Content-Type: text/plain; name="ata.flags.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="ata.flags.patch" KysrIHN5cy9hdGEuaC5wcmV2CTIwMTAtMDItMDMgMTI6MjA6MzYuMDAwMDAwMDAwICswMjAw Ci0tLSBzeXMvYXRhLmgJMjAxMC0wMi0xOSAxODozNzowMS4wMDAwMDAwMDAgKzAyMDAKQEAg LTQ5Niw4ICs0OTYsNiBAQCBzdHJ1Y3QgYXRhX2lvY19yZXF1ZXN0IHsKICNkZWZpbmUgQVRB X0NNRF9SRUFEICAgICAgICAgICAgICAgICAgICAweDAyCiAjZGVmaW5lIEFUQV9DTURfV1JJ VEUgICAgICAgICAgICAgICAgICAgMHgwNAogI2RlZmluZSBBVEFfQ01EX0FUQVBJICAgICAg ICAgICAgICAgICAgIDB4MDgKKyNkZWZpbmUgQVRBX0NNRF9ETUEgICAgICAgICAgICAgICAg ICAgICAweDEwCisjZGVmaW5lIEFUQV9DTURfNDhCSVQgICAgICAgICAgICAgICAgICAgMHgy MAogCiAgICAgaW50ICAgICAgICAgICAgICAgICB0aW1lb3V0OwogICAgIGludCAgICAgICAg ICAgICAgICAgZXJyb3I7Ci0tLSBkZXYvYXRhLnByZXYvYXRhLWFsbC5jCTIwMTAtMDItMDIg MTM6MjA6MTMuMDAwMDAwMDAwICswMjAwCisrKyBkZXYvYXRhL2F0YS1hbGwuYwkyMDEwLTAy LTE5IDE4OjM4OjMzLjAwMDAwMDAwMCArMDIwMApAQCAtNzE4LDYgKzcxOCwxMCBAQCBhdGFf ZGV2aWNlX2lvY3RsKGRldmljZV90IGRldiwgdV9sb25nIGNtCiAJICAgIHJlcXVlc3QtPmZs YWdzIHw9IEFUQV9SX1JFQUQ7CiAJaWYgKGlvY19yZXF1ZXN0LT5mbGFncyAmIEFUQV9DTURf V1JJVEUpCiAJICAgIHJlcXVlc3QtPmZsYWdzIHw9IEFUQV9SX1dSSVRFOworCWlmIChpb2Nf cmVxdWVzdC0+ZmxhZ3MgJiBBVEFfQ01EX0RNQSkKKwkgICAgcmVxdWVzdC0+ZmxhZ3MgfD0g QVRBX1JfRE1BOworCWlmIChpb2NfcmVxdWVzdC0+ZmxhZ3MgJiBBVEFfQ01EXzQ4QklUKQor CSAgICByZXF1ZXN0LT5mbGFncyB8PSBBVEFfUl80OEJJVDsKIAlhdGFfcXVldWVfcmVxdWVz dChyZXF1ZXN0KTsKIAlpZiAocmVxdWVzdC0+ZmxhZ3MgJiBBVEFfUl9BVEFQSSkgewogCSAg ICBiY29weSgmcmVxdWVzdC0+dS5hdGFwaS5zZW5zZSwgJmlvY19yZXF1ZXN0LT51LmF0YXBp LnNlbnNlLAo= --------------010506020101090202080601--