4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * CDDL HEADER START
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * The contents of this file are subject to the terms of the
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Common Development and Distribution License (the "License").
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * You may not use this file except in compliance with the License.
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * See the License for the specific language governing permissions
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * and limitations under the License.
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * When distributing Covered Code, include this CDDL HEADER in each
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * If applicable, add the following below this CDDL HEADER, with the
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * fields enclosed by brackets "[]" replaced with your own identifying
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * information: Portions Copyright [yyyy] [name of copyright owner]
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * CDDL HEADER END
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Use is subject to license terms.
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * ATAPI-7 Definitions (subset) that include Serial ATA
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * ATA/ATAPI-7 V3 (d1532v3r4b-ATA-ATAPI-7)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhextern "C" {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Register - Host to Device FIS
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Register - Device to Host FIS
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dhtypedef struct {
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * FIS Types
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * IDC bits
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * 28-Bit Command Mapping from ACS to FIS
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * ACS Field FIS Field
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * --------------------------------------
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Feature (7:0) -> Feature
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Count (7:0) -> Sector Count
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (7:0) -> LBA Low
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (15:8) -> LBA Mid
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (23:16) -> LBA High
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (27:24) -> Device (3:0)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Device (15:12) -> Device (7:4)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Command -> Command
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * 48- Bit Command Mapping from ACS to FIS
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * ACS Field FIS Field
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * --------------------------------------
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Feature (7:0) -> Feature
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Feature (15:8) -> Feature (exp)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Count (7:0) -> Sector Count
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Count (15:8) -> Sector Count (exp)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (7:0) -> LBA Low
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (15:8) -> LBA Mid
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (23:16) -> LBA High
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (31:24) -> LBA Low (exp)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (39:32) -> LBA Mid (exp)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * LBA (47:40) -> LBA High (exp)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Device (15:12) -> Device (7:4)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Command -> Command
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * FIS (FIS_REG_H2DEV) layout:
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * 31.........24 23...........16 15....................8.7.............0
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * FEATURE | COMMAND | C R R RESERVED | FIS TYPE 0x27
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * DEVICE | LBA HIGH | LBA MID | LBA LOW
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * FEATURE(exp) | LBA HIGH(exp) | LBA MID(exp) | LBA LOW(exp)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * CONTROL | RESERVED | Sector Count(exp) | Sector Count
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * RESERVED | RESERVED | RESERVED | RESERVED
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * FIS (FIS_REG_D2H) layout:
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * 31.........24 23...........16 15....................8.7.............0
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * ERROR | STATUS | R I R RESERVED | FIS TYPE 0x34
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * DEVICE | LBA HIGH | LBA MID | LBA LOW
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * RESERVED | LBA HIGH(exp) | LBA MID(exp) | LBA LOW(exp)
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * RESERVED | RESERVED | Sector Count(exp) | Sector Count
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * RESERVED | RESERVED | RESERVED | RESERVED
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh * Reasonable size to reserve for holding the most common FIS types.
4c06356b0f0fffb4fc1b6eccc8e5d8e2254a84d6dh#endif /* _ATAPI7V3_H */