| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | What: /sys/class/ata_... |
| 2 | Description: |
| 3 | Provide a place in sysfs for storing the ATA topology of the |
| 4 | system. This allows retrieving various information about ATA |
| 5 | objects. |
| 6 | |
| 7 | Files under /sys/class/ata_port |
| 8 | ------------------------------- |
| 9 | |
| 10 | For each port, a directory ataX is created where X is the ata_port_id of the |
| 11 | port. The device parent is the ata host device. |
| 12 | |
| 13 | |
| 14 | What: /sys/class/ata_port/ataX/nr_pmp_links |
| 15 | What: /sys/class/ata_port/ataX/idle_irq |
| 16 | Date: May, 2010 |
| 17 | KernelVersion: v2.6.37 |
| 18 | Contact: Gwendal Grignou <gwendal@chromium.org> |
| 19 | Description: |
| 20 | nr_pmp_links: (RO) If a SATA Port Multiplier (PM) is |
| 21 | connected, the number of links behind it. |
| 22 | |
| 23 | idle_irq: (RO) Number of IRQ received by the port while |
| 24 | idle [some ata HBA only]. |
| 25 | |
| 26 | |
| 27 | What: /sys/class/ata_port/ataX/port_no |
| 28 | Date: May, 2013 |
| 29 | KernelVersion: v3.11 |
| 30 | Contact: Gwendal Grignou <gwendal@chromium.org> |
| 31 | Description: |
| 32 | (RO) Host local port number. While registering host controller, |
| 33 | port numbers are tracked based upon number of ports available on |
| 34 | the controller. This attribute is needed by udev for composing |
| 35 | persistent links in /dev/disk/by-path. |
| 36 | |
| 37 | Files under /sys/class/ata_link |
| 38 | ------------------------------- |
| 39 | |
| 40 | Behind each port, there is a ata_link. If there is a SATA PM in the topology, 15 |
| 41 | ata_link objects are created. |
| 42 | |
| 43 | If a link is behind a port, the directory name is linkX, where X is ata_port_id |
| 44 | of the port. If a link is behind a PM, its name is linkX.Y where X is |
| 45 | ata_port_id of the parent port and Y the PM port. |
| 46 | |
| 47 | |
| 48 | What: /sys/class/ata_link/linkX[.Y]/hw_sata_spd_limit |
| 49 | What: /sys/class/ata_link/linkX[.Y]/sata_spd_limit |
| 50 | What: /sys/class/ata_link/linkX[.Y]/sata_spd |
| 51 | Date: May, 2010 |
| 52 | KernelVersion: v2.6.37 |
| 53 | Contact: Gwendal Grignou <gwendal@chromium.org> |
| 54 | Description: |
| 55 | hw_sata_spd_limit: (RO) Maximum speed supported by the |
| 56 | connected SATA device. |
| 57 | |
| 58 | sata_spd_limit: (RO) Maximum speed imposed by libata. |
| 59 | |
| 60 | sata_spd: (RO) Current speed of the link |
| 61 | eg. 1.5, 3 Gbps etc. |
| 62 | |
| 63 | |
| 64 | Files under /sys/class/ata_device |
| 65 | --------------------------------- |
| 66 | |
| 67 | Behind each link, up to two ata devices are created. |
| 68 | The name of the directory is devX[.Y].Z where: |
| 69 | - X is ata_port_id of the port where the device is connected, |
| 70 | - Y the port of the PM if any, and |
| 71 | - Z the device id: for PATA, there is usually 2 devices [0,1], only 1 for SATA. |
| 72 | |
| 73 | |
| 74 | What: /sys/class/ata_device/devX[.Y].Z/spdn_cnt |
| 75 | What: /sys/class/ata_device/devX[.Y].Z/gscr |
| 76 | What: /sys/class/ata_device/devX[.Y].Z/ering |
| 77 | What: /sys/class/ata_device/devX[.Y].Z/id |
| 78 | What: /sys/class/ata_device/devX[.Y].Z/pio_mode |
| 79 | What: /sys/class/ata_device/devX[.Y].Z/xfer_mode |
| 80 | What: /sys/class/ata_device/devX[.Y].Z/dma_mode |
| 81 | What: /sys/class/ata_device/devX[.Y].Z/class |
| 82 | Date: May, 2010 |
| 83 | KernelVersion: v2.6.37 |
| 84 | Contact: Gwendal Grignou <gwendal@chromium.org> |
| 85 | Description: |
| 86 | spdn_cnt: (RO) Number of times libata decided to lower the |
| 87 | speed of link due to errors. |
| 88 | |
| 89 | gscr: (RO) Cached result of the dump of PM GSCR |
| 90 | register. Valid registers are: |
| 91 | |
| 92 | 0: SATA_PMP_GSCR_PROD_ID, |
| 93 | 1: SATA_PMP_GSCR_REV, |
| 94 | 2: SATA_PMP_GSCR_PORT_INFO, |
| 95 | 32: SATA_PMP_GSCR_ERROR, |
| 96 | 33: SATA_PMP_GSCR_ERROR_EN, |
| 97 | 64: SATA_PMP_GSCR_FEAT, |
| 98 | 96: SATA_PMP_GSCR_FEAT_EN, |
| 99 | 130: SATA_PMP_GSCR_SII_GPIO |
| 100 | |
| 101 | Only valid if the device is a PM. |
| 102 | |
| 103 | ering: (RO) Formatted output of the error ring of the |
| 104 | device. |
| 105 | |
| 106 | id: (RO) Cached result of IDENTIFY command, as |
| 107 | described in ATA8 7.16 and 7.17. Only valid if |
| 108 | the device is not a PM. |
| 109 | |
| 110 | pio_mode: (RO) Transfer modes supported by the device when |
| 111 | in PIO mode. Mostly used by PATA device. |
| 112 | |
| 113 | xfer_mode: (RO) Current transfer mode |
| 114 | |
| 115 | dma_mode: (RO) Transfer modes supported by the device when |
| 116 | in DMA mode. Mostly used by PATA device. |
| 117 | |
| 118 | class: (RO) Device class. Can be "ata" for disk, |
| 119 | "atapi" for packet device, "pmp" for PM, or |
| 120 | "none" if no device was found behind the link. |
| 121 | |
| 122 | |
| 123 | What: /sys/class/ata_device/devX[.Y].Z/trim |
| 124 | Date: May, 2015 |
| 125 | KernelVersion: v4.10 |
| 126 | Contact: Gwendal Grignou <gwendal@chromium.org> |
| 127 | Description: |
| 128 | (RO) Shows the DSM TRIM mode currently used by the device. Valid |
| 129 | values are: |
| 130 | |
| 131 | unsupported: Drive does not support DSM TRIM |
| 132 | |
| 133 | unqueued: Drive supports unqueued DSM TRIM only |
| 134 | |
| 135 | queued: Drive supports queued DSM TRIM |
| 136 | |
| 137 | forced_unqueued: Drive's queued DSM support is known to |
| 138 | be buggy and only unqueued TRIM commands |
| 139 | are sent |