nvme.h (d7b72f7b52f902da47cc7210a9121f4caabbcb9c) | nvme.h (4f3f3e9a1dee62c031fa67cfe64e11d6dd3fab1b) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (C) 2012-2013 Intel Corporation 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 59 unchanged lines hidden (view full) --- 68#define NVME_MINOR(r) (((r) >> 8) & 0xff) 69 70/* 71 * Use to mark a command to apply to all namespaces, or to retrieve global 72 * log pages. 73 */ 74#define NVME_GLOBAL_NAMESPACE_TAG ((uint32_t)0xFFFFFFFF) 75 | 1/*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (C) 2012-2013 Intel Corporation 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 59 unchanged lines hidden (view full) --- 68#define NVME_MINOR(r) (((r) >> 8) & 0xff) 69 70/* 71 * Use to mark a command to apply to all namespaces, or to retrieve global 72 * log pages. 73 */ 74#define NVME_GLOBAL_NAMESPACE_TAG ((uint32_t)0xFFFFFFFF) 75 |
76/* Cap transfers by the maximum addressable by page-sized PRP (4KB -> 2MB). */ 77#define NVME_MAX_XFER_SIZE MIN(maxphys, (PAGE_SIZE/8*PAGE_SIZE)) | 76/* Host memory buffer sizes are always in 4096 byte chunks */ 77#define NVME_HMB_UNITS 4096 |
78 | 78 |
79/* Many items are expressed in terms of power of two times MPS */ 80#define NVME_MPS_SHIFT 12 81 |
|
79/* Register field definitions */ 80#define NVME_CAP_LO_REG_MQES_SHIFT (0) 81#define NVME_CAP_LO_REG_MQES_MASK (0xFFFF) 82#define NVME_CAP_LO_REG_CQR_SHIFT (16) 83#define NVME_CAP_LO_REG_CQR_MASK (0x1) 84#define NVME_CAP_LO_REG_AMS_SHIFT (17) 85#define NVME_CAP_LO_REG_AMS_MASK (0x3) 86#define NVME_CAP_LO_REG_TO_SHIFT (24) --- 123 unchanged lines hidden (view full) --- 210#define NVME_STATUS_M_SHIFT (14) 211#define NVME_STATUS_M_MASK (0x1) 212#define NVME_STATUS_DNR_SHIFT (15) 213#define NVME_STATUS_DNR_MASK (0x1) 214 215#define NVME_STATUS_GET_P(st) (((st) >> NVME_STATUS_P_SHIFT) & NVME_STATUS_P_MASK) 216#define NVME_STATUS_GET_SC(st) (((st) >> NVME_STATUS_SC_SHIFT) & NVME_STATUS_SC_MASK) 217#define NVME_STATUS_GET_SCT(st) (((st) >> NVME_STATUS_SCT_SHIFT) & NVME_STATUS_SCT_MASK) | 82/* Register field definitions */ 83#define NVME_CAP_LO_REG_MQES_SHIFT (0) 84#define NVME_CAP_LO_REG_MQES_MASK (0xFFFF) 85#define NVME_CAP_LO_REG_CQR_SHIFT (16) 86#define NVME_CAP_LO_REG_CQR_MASK (0x1) 87#define NVME_CAP_LO_REG_AMS_SHIFT (17) 88#define NVME_CAP_LO_REG_AMS_MASK (0x3) 89#define NVME_CAP_LO_REG_TO_SHIFT (24) --- 123 unchanged lines hidden (view full) --- 213#define NVME_STATUS_M_SHIFT (14) 214#define NVME_STATUS_M_MASK (0x1) 215#define NVME_STATUS_DNR_SHIFT (15) 216#define NVME_STATUS_DNR_MASK (0x1) 217 218#define NVME_STATUS_GET_P(st) (((st) >> NVME_STATUS_P_SHIFT) & NVME_STATUS_P_MASK) 219#define NVME_STATUS_GET_SC(st) (((st) >> NVME_STATUS_SC_SHIFT) & NVME_STATUS_SC_MASK) 220#define NVME_STATUS_GET_SCT(st) (((st) >> NVME_STATUS_SCT_SHIFT) & NVME_STATUS_SCT_MASK) |
221#define NVME_STATUS_GET_CRD(st) (((st) >> NVME_STATUS_CRD_SHIFT) & NVME_STATUS_CRD_MASK) |
|
218#define NVME_STATUS_GET_M(st) (((st) >> NVME_STATUS_M_SHIFT) & NVME_STATUS_M_MASK) 219#define NVME_STATUS_GET_DNR(st) (((st) >> NVME_STATUS_DNR_SHIFT) & NVME_STATUS_DNR_MASK) 220 221#define NVME_PWR_ST_MPS_SHIFT (0) 222#define NVME_PWR_ST_MPS_MASK (0x1) 223#define NVME_PWR_ST_NOPS_SHIFT (1) 224#define NVME_PWR_ST_NOPS_MASK (0x1) 225#define NVME_PWR_ST_RRT_SHIFT (0) --- 1882 unchanged lines hidden --- | 222#define NVME_STATUS_GET_M(st) (((st) >> NVME_STATUS_M_SHIFT) & NVME_STATUS_M_MASK) 223#define NVME_STATUS_GET_DNR(st) (((st) >> NVME_STATUS_DNR_SHIFT) & NVME_STATUS_DNR_MASK) 224 225#define NVME_PWR_ST_MPS_SHIFT (0) 226#define NVME_PWR_ST_MPS_MASK (0x1) 227#define NVME_PWR_ST_NOPS_SHIFT (1) 228#define NVME_PWR_ST_NOPS_MASK (0x1) 229#define NVME_PWR_ST_RRT_SHIFT (0) --- 1882 unchanged lines hidden --- |