SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
ufs.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0+ */
2
3#ifndef __UFS_H__
4#define __UFS_H__
5
6#include <stdarg.h>
7#include <stdbool.h>
8#include <stddef.h>
9#include <stdint.h>
10#include <types.h>
11
12#include "reg/reg-ufs.h"
13
14#include "blk.h"
15#include "scsi.h"
16
17#define UFS_CDB_SIZE 16
18#define RESPONSE_UPIU_SENSE_DATA_LENGTH 18
19#define UFS_MAX_LUNS 0x7F
20#define UFSHCD_QUIRK_BROKEN_LCC 0x1
21
22/* Controller UFSHCI version */
23enum {
24 UFSHCI_VERSION_10 = 0x00010000, /* 1.0 */
25 UFSHCI_VERSION_11 = 0x00010100, /* 1.1 */
26 UFSHCI_VERSION_20 = 0x00000200, /* 2.0 */
27 UFSHCI_VERSION_21 = 0x00000210, /* 2.1 */
28};
29
30/* Interrupt disable masks */
31enum {
32 /* Interrupt disable mask for UFSHCI v1.0 */
35 /* Interrupt disable mask for UFSHCI v1.1 */
37 /* Interrupt disable mask for UFSHCI v2.1 */
39};
40
41enum {
42 PWR_OK = 0x0,
43 PWR_LOCAL = 0x01,
44 PWR_REMOTE = 0x02,
45 PWR_BUSY = 0x03,
48};
49
50enum {
54};
55
56enum {
60};
61
62/* UTP Transfer Request Command Offset */
63#define UPIU_COMMAND_TYPE_OFFSET 28
64
65/* Offset of the response code in the UPIU header */
66#define UPIU_RSP_CODE_OFFSET 8
67
68/* To accommodate UFS2.0 required Command type */
69enum {
71};
72
73enum {
74 UTP_SCSI_COMMAND = 0x00000000,
78};
79
80/* UTP Transfer Request Data Direction (DD) */
81enum {
83 UTP_HOST_TO_DEVICE = 0x02000000,
84 UTP_DEVICE_TO_HOST = 0x04000000,
85};
86
87/* Overall command status values */
88enum {
98 MASK_OCS = 0x0F,
99};
100
101/*
102 * UFS Protocol Information Unit related definitions
103 */
104/* Task management functions */
105enum {
112};
113
114/* UTP UPIU Transaction Codes Initiator to Target */
115enum {
121};
122
123/* UTP UPIU Transaction Codes Target to Initiator */
124enum {
132};
133
134/* UPIU Read/Write flags */
135enum {
139};
140
141/* UPIU Task Attributes */
142enum {
147};
148
149/* UPIU Query request function */
150enum {
153};
154
155/* Offset of the response code in the UPIU header */
156#define UPIU_RSP_CODE_OFFSET 8
157
158enum {
167};
168
169/* UTP QUERY Transaction Specific Fields OpCode */
181
182/* bRefClkFreq attribute values */
190
191/* Query response result code */
192enum {
204};
205
211
216
217enum {
221};
222
223/* Flag idn for Query Requests*/
237
238/* Attribute idn for Query requests */
264
265/* Descriptor idn for Query requests */
279
284
294
295/* Device descriptor parameters offsets in bytes*/
333
334enum {
337};
338
343
344/* Link Status*/
349
350/* UIC Commands */
366
367/* UIC Config result code / Generic error code */
368enum {
381};
382
383#define MASK_UIC_COMMAND_RESULT 0xFF
384
394
399
406
407#define MAX_BUFF (16 * 4)//4M*4
413
427
454
466
489
499
500/*
501 * UTMRD structure.
502 */
520
527//#pragma anon_unions
528typedef struct utp_upiu_req {
530 union {
534 /* use utp_upiu_query to host the 4 dwords of uic command */
536 };
538
552
566
567#define MAX_MODEL_LEN 16
578
597
598
599#define GENERAL_UPIU_REQUEST_SIZE (sizeof(utp_upiu_req_t))
600#define QUERY_DESC_MAX_SIZE 255
601#define QUERY_DESC_MIN_SIZE 2
602#define QUERY_DESC_HDR_SIZE 2
603#define QUERY_OSF_SIZE (GENERAL_UPIU_REQUEST_SIZE - (sizeof(utp_upiu_header_t)))
604#define RESPONSE_UPIU_SENSE_DATA_LENGTH 18
605#define UPIU_HEADER_DWORD(byte3, byte2, byte1, byte0) cpu_to_be32((byte3 << 24) | (byte2 << 16) | (byte1 << 8) | (byte0))
606/* GenSelectorIndex calculation macros for M-PHY attributes */
607#define UIC_ARG_MPHY_TX_GEN_SEL_INDEX(lane) (lane)
608#define UIC_ARG_MPHY_RX_GEN_SEL_INDEX(lane) (PA_MAXDATALANES + (lane))
609
610#define UIC_ARG_MIB_SEL(attr, sel) ((((((uint32_t) attr)) & 0xFFFF) << 16) | ((sel) &0xFFFF))
611#define UIC_ARG_MIB(attr) UIC_ARG_MIB_SEL(((uint32_t) attr), 0)
612#define UIC_ARG_ATTR_TYPE(t) (((t) &0xFF) << 16)
613#define UIC_GET_ATTR_ID(v) (((v) >> 16) & 0xFFFF)
614
615/* Host <-> Device UniPro Link state */
617 UIC_LINK_OFF_STATE = 0, /* Link powered down or disabled */
618 UIC_LINK_ACTIVE_STATE = 1, /* Link is in Fast/Slow/Sleep state */
619 UIC_LINK_HIBERN8_STATE = 2, /* Link is in Hibernate state */
620};
621
622/* UIC command interfaces for DME primitives */
623#define DME_LOCAL 0
624#define DME_PEER 1
625#define ATTR_SET_NOR 0 /* NORMAL */
626#define ATTR_SET_ST 1 /* STATIC */
627
637
647
659
669
679
686
710
716
717#endif// __UFS_H__
u32_t uint32_t
Definition stdint.h:13
u8_t uint8_t
Definition stdint.h:7
u16_t uint16_t
Definition stdint.h:10
struct request_desc_header - Descriptor Header common to both UTRD and UTMRD @dword0: Descriptor Head...
Definition ufs.h:421
uint32_t dword_0
Definition ufs.h:422
uint32_t dword_2
Definition ufs.h:424
uint32_t dword_3
Definition ufs.h:425
uint32_t dword_1
Definition ufs.h:423
struct scsi_plat - stores information about SCSI controller
Definition scsi.h:154
Definition ufs.h:680
uint32_t version
Definition ufs.h:682
uint32_t capabilities
Definition ufs.h:681
uint32_t interrupt_mask
Definition ufs.h:683
uint32_t quirks
Definition ufs.h:684
Definition ufs.h:670
uint32_t pwr_desc
Definition ufs.h:672
uint32_t hlth_desc
Definition ufs.h:677
uint32_t conf_desc
Definition ufs.h:676
uint32_t unit_desc
Definition ufs.h:675
uint32_t interc_desc
Definition ufs.h:674
uint32_t dev_desc
Definition ufs.h:671
uint32_t geom_desc
Definition ufs.h:673
struct ufs_dev_cmd - all assosiated fields with device management commands @type: device management c...
Definition ufs.h:665
enum dev_cmd_type type
Definition ufs.h:666
ufs_query_t query
Definition ufs.h:667
ufs_dev_desc - ufs device details from the device descriptor
Definition ufs.h:574
uint16_t wmanufacturerid
Definition ufs.h:575
char model[MAX_MODEL_LEN+1]
Definition ufs.h:576
Definition ufs.h:711
void * bd
Definition ufs.h:714
ufs_hba_t ufs_hba
Definition ufs.h:712
scsi_plat_t sc_plat
Definition ufs.h:713
Definition ufs.h:687
ufs_pa_layer_attr_t pwr_info
Definition ufs.h:704
utp_transfer_cmd_desc_t * ucdl
Definition ufs.h:692
utp_transfer_req_desc_t * utrdl
Definition ufs.h:693
uint32_t dev_ref_clk_freq
Definition ufs.h:708
uint32_t curr_dev_pwr_mode
Definition ufs.h:703
utp_upiu_rsp_t * ucd_rsp_ptr
Definition ufs.h:699
ufs_dev_cmd_t dev_cmd
Definition ufs.h:707
ufs_desc_size_t desc_size
Definition ufs.h:689
ufshcd_sg_entry_t * ucd_prdt_ptr
Definition ufs.h:700
utp_upiu_req_t * ucd_req_ptr
Definition ufs.h:698
utp_task_req_desc_t * utmrdl
Definition ufs.h:696
ufs_basic_info_t basic_info
Definition ufs.h:688
ufs_pwr_mode_info_t max_pwr_info
Definition ufs.h:705
Definition ufs.h:385
uint32_t pwr_rx
Definition ufs.h:390
uint32_t pwr_tx
Definition ufs.h:391
uint32_t hs_rate
Definition ufs.h:392
uint32_t lane_tx
Definition ufs.h:389
uint32_t gear_rx
Definition ufs.h:386
uint32_t gear_tx
Definition ufs.h:387
uint32_t lane_rx
Definition ufs.h:388
Definition ufs.h:395
ufs_pa_layer_attr_t info
Definition ufs.h:397
bool is_valid
Definition ufs.h:396
struct ufs_query_req - parameters for building a query request @query_func: UPIU header query functio...
Definition ufs.h:633
uint8_t query_func
Definition ufs.h:634
utp_upiu_query_t upiu_req
Definition ufs.h:635
struct ufs_query_resp - UPIU QUERY @response: device response code @upiu_res: query response data
Definition ufs.h:643
uint8_t response
Definition ufs.h:644
utp_upiu_query_t upiu_res
Definition ufs.h:645
struct ufs_query - holds relevant data structures for query request @request: request upiu and functi...
Definition ufs.h:654
uint8_t * descriptor
Definition ufs.h:656
ufs_query_res_t response
Definition ufs.h:657
ufs_query_req_t request
Definition ufs.h:655
Definition ufs.h:400
uint32_t reserved
Definition ufs.h:403
uint32_t base_addr
Definition ufs.h:401
uint32_t upper_addr
Definition ufs.h:402
uint32_t size
Definition ufs.h:404
struct uic_command - UIC command structure @command: UIC command @argument1: UIC command argument 1 @...
Definition ufs.h:589
int result
Definition ufs.h:595
uint32_t command
Definition ufs.h:590
int cmd_active
Definition ufs.h:594
uint32_t argument2
Definition ufs.h:592
uint32_t argument1
Definition ufs.h:591
uint32_t argument3
Definition ufs.h:593
struct utp_cmd_rsp - Response UPIU structure @residual_transfer_count: Residual transfer count DW-3 @...
Definition ufs.h:546
uint16_t sense_data_len
Definition ufs.h:549
uint32_t reserved[4]
Definition ufs.h:548
uint32_t residual_transfer_count
Definition ufs.h:547
uint8_t sense_data[RESPONSE_UPIU_SENSE_DATA_LENGTH]
Definition ufs.h:550
Definition ufs.h:503
uint32_t __reserved2[3]
Definition ufs.h:518
uint32_t input_param3
Definition ufs.h:511
utp_upiu_header_t rsp_header
Definition ufs.h:515
uint32_t input_param2
Definition ufs.h:510
uint32_t input_param1
Definition ufs.h:509
request_desc_header_t header
Definition ufs.h:505
utp_upiu_header_t req_header
Definition ufs.h:508
uint32_t output_param2
Definition ufs.h:517
uint32_t output_param1
Definition ufs.h:516
uint32_t __reserved1[2]
Definition ufs.h:512
Definition ufs.h:408
uint8_t response_upiu[ALIGNED_UPIU_SIZE]
Definition ufs.h:410
ufshcd_sg_entry_t prd_table[MAX_BUFF]
Definition ufs.h:411
uint8_t command_upiu[ALIGNED_UPIU_SIZE]
Definition ufs.h:409
struct utp_transfer_req_desc - UTRD structure @header: UTRD header DW-0 to DW-3 @command_desc_base_ad...
Definition ufs.h:438
uint32_t command_desc_base_addr_hi
Definition ufs.h:444
uint16_t prd_table_offset
Definition ufs.h:452
request_desc_header_t header
Definition ufs.h:440
uint32_t command_desc_base_addr_lo
Definition ufs.h:443
uint16_t prd_table_length
Definition ufs.h:451
uint16_t response_upiu_offset
Definition ufs.h:448
uint16_t response_upiu_length
Definition ufs.h:447
struct utp_upiu_cmd - Command UPIU structure @data_transfer_len: Data Transfer Length DW-3 @cdb: Comm...
Definition ufs.h:495
uint8_t cdb[UFS_CDB_SIZE]
Definition ufs.h:497
uint32_t exp_data_transfer_len
Definition ufs.h:496
struct utp_upiu_header - UPIU header structure @dword_0: UPIU header DW-0 @dword_1: UPIU header DW-1 ...
Definition ufs.h:461
uint32_t dword_0
Definition ufs.h:462
uint32_t dword_1
Definition ufs.h:463
uint32_t dword_2
Definition ufs.h:464
struct utp_upiu_query - upiu request buffer structure for query request.
Definition ufs.h:479
uint16_t length
Definition ufs.h:485
uint8_t selector
Definition ufs.h:483
uint16_t reserved_osf
Definition ufs.h:484
uint8_t index
Definition ufs.h:482
uint32_t reserved[2]
Definition ufs.h:487
uint32_t value
Definition ufs.h:486
uint8_t idn
Definition ufs.h:481
uint8_t opcode
Definition ufs.h:480
struct utp_upiu_req - general upiu request structure @header:UPIU header structure DW-0 to DW-2 @sc: ...
Definition ufs.h:528
utp_upiu_header_t header
Definition ufs.h:529
utp_upiu_query_t qr
Definition ufs.h:532
utp_upiu_query_t tr
Definition ufs.h:533
utp_upiu_query_t uc
Definition ufs.h:535
utp_upiu_cmd_t sc
Definition ufs.h:531
struct utp_upiu_rsp - general upiu response structure @header: UPIU header structure DW-0 to DW-2 @sr...
Definition ufs.h:559
utp_upiu_query_t qr
Definition ufs.h:563
utp_upiu_header_t header
Definition ufs.h:560
utp_cmd_rsp_t sr
Definition ufs.h:562
desc_idn
Definition ufs.h:266
@ QUERY_DESC_IDN_DEVICE
Definition ufs.h:267
@ QUERY_DESC_IDN_HEALTH
Definition ufs.h:276
@ QUERY_DESC_IDN_UNIT
Definition ufs.h:269
@ QUERY_DESC_IDN_RFU_0
Definition ufs.h:270
@ QUERY_DESC_IDN_RFU_1
Definition ufs.h:273
@ QUERY_DESC_IDN_GEOMETRY
Definition ufs.h:274
@ QUERY_DESC_IDN_STRING
Definition ufs.h:272
@ QUERY_DESC_IDN_CONFIGURATION
Definition ufs.h:268
@ QUERY_DESC_IDN_INTERCONNECT
Definition ufs.h:271
@ QUERY_DESC_IDN_POWER
Definition ufs.h:275
@ QUERY_DESC_IDN_MAX
Definition ufs.h:277
struct ufs_hba ufs_hba_t
struct utp_transfer_req_desc utp_transfer_req_desc_t
struct utp_transfer_req_desc - UTRD structure @header: UTRD header DW-0 to DW-3 @command_desc_base_ad...
@ UTP_NO_DATA_TRANSFER
Definition ufs.h:82
@ UTP_DEVICE_TO_HOST
Definition ufs.h:84
@ UTP_HOST_TO_DEVICE
Definition ufs.h:83
ufs_ref_clk_freq
Definition ufs.h:183
@ REF_CLK_FREQ_26_MHZ
Definition ufs.h:185
@ REF_CLK_FREQ_INVAL
Definition ufs.h:188
@ REF_CLK_FREQ_19_2_MHZ
Definition ufs.h:184
@ REF_CLK_FREQ_38_4_MHZ
Definition ufs.h:186
@ REF_CLK_FREQ_52_MHZ
Definition ufs.h:187
@ PWR_OK
Definition ufs.h:42
@ PWR_REMOTE
Definition ufs.h:44
@ PWR_ERROR_CAP
Definition ufs.h:46
@ PWR_FATAL_ERROR
Definition ufs.h:47
@ PWR_BUSY
Definition ufs.h:45
@ PWR_LOCAL
Definition ufs.h:43
@ UFSHCD_MAX_ID
Definition ufs.h:336
@ UFSHCD_MAX_CHANNEL
Definition ufs.h:335
struct utp_upiu_cmd utp_upiu_cmd_t
struct utp_upiu_cmd - Command UPIU structure @data_transfer_len: Data Transfer Length DW-3 @cdb: Comm...
link_status
Definition ufs.h:345
@ UFSHCD_LINK_IS_DOWN
Definition ufs.h:346
@ UFSHCD_LINK_IS_UP
Definition ufs.h:347
struct ufs_query_res ufs_query_res_t
struct ufs_query_resp - UPIU QUERY @response: device response code @upiu_res: query response data
@ UFSHCI_VERSION_20
Definition ufs.h:26
@ UFSHCI_VERSION_21
Definition ufs.h:27
@ UFSHCI_VERSION_10
Definition ufs.h:24
@ UFSHCI_VERSION_11
Definition ufs.h:25
@ OCS_INVALID_COMMAND_STATUS
Definition ufs.h:97
@ MASK_OCS
Definition ufs.h:98
@ OCS_MISMATCH_DATA_BUF_SIZE
Definition ufs.h:92
@ OCS_INVALID_PRDT_ATTR
Definition ufs.h:91
@ OCS_PEER_COMM_FAILURE
Definition ufs.h:94
@ OCS_FATAL_ERROR
Definition ufs.h:96
@ OCS_MISMATCH_RESP_UPIU_SIZE
Definition ufs.h:93
@ OCS_SUCCESS
Definition ufs.h:89
@ OCS_INVALID_CMD_TABLE_ATTR
Definition ufs.h:90
@ OCS_ABORTED
Definition ufs.h:95
@ TASK_RSP_UPIU_SIZE_DWORDS
Definition ufs.h:52
@ ALIGNED_UPIU_SIZE
Definition ufs.h:53
@ TASK_REQ_UPIU_SIZE_DWORDS
Definition ufs.h:51
#define UFS_CDB_SIZE
Definition ufs.h:17
@ UTP_CMD_TYPE_UFS_STORAGE
Definition ufs.h:70
struct ufs_basic_info ufs_basic_info_t
desc_header_offset
Definition ufs.h:280
@ QUERY_DESC_DESC_TYPE_OFFSET
Definition ufs.h:282
@ QUERY_DESC_LENGTH_OFFSET
Definition ufs.h:281
struct utp_upiu_req utp_upiu_req_t
struct utp_upiu_req - general upiu request structure @header:UPIU header structure DW-0 to DW-2 @sc: ...
#define MAX_BUFF
Definition ufs.h:407
struct utp_upiu_rsp utp_upiu_rsp_t
struct utp_upiu_rsp - general upiu response structure @header: UPIU header structure DW-0 to DW-2 @sr...
dev_cmd_type
Definition ufs.h:339
@ DEV_CMD_TYPE_QUERY
Definition ufs.h:341
@ DEV_CMD_TYPE_NOP
Definition ufs.h:340
struct utp_transfer_cmd_desc utp_transfer_cmd_desc_t
struct utp_upiu_header utp_upiu_header_t
struct utp_upiu_header - UPIU header structure @dword_0: UPIU header DW-0 @dword_1: UPIU header DW-1 ...
struct ufs_device ufs_device_t
struct ufs_dev_cmd ufs_dev_cmd_t
struct ufs_dev_cmd - all assosiated fields with device management commands @type: device management c...
ufs_notify_change_status
Definition ufs.h:212
@ POST_CHANGE
Definition ufs.h:214
@ PRE_CHANGE
Definition ufs.h:213
struct ufs_dev_desc ufs_dev_desc_t
ufs_dev_desc - ufs device details from the device descriptor
@ INTERRUPT_MASK_ALL_VER_21
Definition ufs.h:38
@ INTERRUPT_MASK_ALL_VER_11
Definition ufs.h:36
@ INTERRUPT_MASK_ALL_VER_10
Definition ufs.h:33
@ INTERRUPT_MASK_RW_VER_10
Definition ufs.h:34
@ MASK_TASK_RESPONSE
Definition ufs.h:160
@ MASK_QUERY_DATA_SEG_LEN
Definition ufs.h:162
@ MASK_SCSI_STATUS
Definition ufs.h:159
@ MASK_TM_SERVICE_RESP
Definition ufs.h:165
@ MASK_RSP_UPIU_RESULT
Definition ufs.h:161
@ MASK_RSP_EXCEPTION_EVENT
Definition ufs.h:164
@ MASK_TM_FUNC
Definition ufs.h:166
@ MASK_RSP_UPIU_DATA_SEG_LEN
Definition ufs.h:163
struct request_desc_header request_desc_header_t
struct request_desc_header - Descriptor Header common to both UTRD and UTMRD @dword0: Descriptor Head...
struct ufs_query_req ufs_query_req_t
struct ufs_query_req - parameters for building a query request @query_func: UPIU header query functio...
@ UFS_ABORT_TASK
Definition ufs.h:106
@ UFS_QUERY_TASK_SET
Definition ufs.h:111
@ UFS_QUERY_TASK
Definition ufs.h:110
@ UFS_ABORT_TASK_SET
Definition ufs.h:107
@ UFS_CLEAR_TASK_SET
Definition ufs.h:108
@ UFS_LOGICAL_RESET
Definition ufs.h:109
uic_link_state
Definition ufs.h:616
@ UIC_LINK_OFF_STATE
Definition ufs.h:617
@ UIC_LINK_HIBERN8_STATE
Definition ufs.h:619
@ UIC_LINK_ACTIVE_STATE
Definition ufs.h:618
@ UPIU_COMMAND_SET_TYPE_QUERY
Definition ufs.h:220
@ UPIU_COMMAND_SET_TYPE_UFS
Definition ufs.h:219
@ UPIU_COMMAND_SET_TYPE_SCSI
Definition ufs.h:218
struct utp_task_req_desc utp_task_req_desc_t
uic_cmd_dme
Definition ufs.h:351
@ UIC_CMD_DME_RESET
Definition ufs.h:359
@ UIC_CMD_DME_SET
Definition ufs.h:353
@ UIC_CMD_DME_GET
Definition ufs.h:352
@ UIC_CMD_DME_PEER_SET
Definition ufs.h:355
@ UIC_CMD_DME_PEER_GET
Definition ufs.h:354
@ UIC_CMD_DME_POWERON
Definition ufs.h:356
@ UIC_CMD_DME_HIBER_ENTER
Definition ufs.h:362
@ UIC_CMD_DME_ENABLE
Definition ufs.h:358
@ UIC_CMD_DME_END_PT_RST
Definition ufs.h:360
@ UIC_CMD_DME_LINK_STARTUP
Definition ufs.h:361
@ UIC_CMD_DME_POWEROFF
Definition ufs.h:357
@ UIC_CMD_DME_HIBER_EXIT
Definition ufs.h:363
@ UIC_CMD_DME_TEST_MODE
Definition ufs.h:364
struct utp_upiu_query utp_upiu_query_t
struct utp_upiu_query - upiu request buffer structure for query request.
struct ufshcd_sg_entry ufshcd_sg_entry_t
struct ufs_desc_size ufs_desc_size_t
struct uic_command uic_command_t
struct uic_command - UIC command structure @command: UIC command @argument1: UIC command argument 1 @...
#define MAX_MODEL_LEN
Definition ufs.h:567
struct utp_cmd_rsp utp_cmd_rsp_t
struct utp_cmd_rsp - Response UPIU structure @residual_transfer_count: Residual transfer count DW-3 @...
@ UTP_SCSI_COMMAND
Definition ufs.h:74
@ UTP_DEVICE_MANAGEMENT_FUNCTION
Definition ufs.h:76
@ UTP_REQ_DESC_INT_CMD
Definition ufs.h:77
@ UTP_NATIVE_UFS_COMMAND
Definition ufs.h:75
@ UIC_CMD_RESULT_LOCKED_ATTR
Definition ufs.h:376
@ UIC_CMD_RESULT_FAILURE
Definition ufs.h:371
@ UIC_CMD_RESULT_INVALID_ATTR_VALUE
Definition ufs.h:372
@ UIC_CMD_RESULT_DME_FAILURE
Definition ufs.h:380
@ UIC_CMD_RESULT_SUCCESS
Definition ufs.h:369
@ UIC_CMD_RESULT_PEER_COMM_FAILURE
Definition ufs.h:378
@ UIC_CMD_RESULT_BUSY
Definition ufs.h:379
@ UIC_CMD_RESULT_BAD_TEST_FEATURE_INDEX
Definition ufs.h:377
@ UIC_CMD_RESULT_INVALID_ATTR
Definition ufs.h:370
@ UIC_CMD_RESULT_READ_ONLY_ATTR
Definition ufs.h:373
@ UIC_CMD_RESULT_BAD_INDEX
Definition ufs.h:375
@ UIC_CMD_RESULT_WRITE_ONLY_ATTR
Definition ufs.h:374
#define RESPONSE_UPIU_SENSE_DATA_LENGTH
Definition ufs.h:18
struct ufs_pwr_mode_info ufs_pwr_mode_info_t
ufs_dev_pwr_mode
Definition ufs.h:206
@ UFS_SLEEP_PWR_MODE
Definition ufs.h:208
@ UFS_ACTIVE_PWR_MODE
Definition ufs.h:207
@ UFS_POWERDOWN_PWR_MODE
Definition ufs.h:209
flag_idn
Definition ufs.h:224
@ QUERY_FLAG_IDN_BUSY_RTC
Definition ufs.h:233
@ QUERY_FLAG_IDN_PERMANENT_WPE
Definition ufs.h:226
@ QUERY_FLAG_IDN_FPHYRESOURCEREMOVAL
Definition ufs.h:232
@ QUERY_FLAG_IDN_PERMANENTLY_DISABLE_FW_UPDATE
Definition ufs.h:235
@ QUERY_FLAG_IDN_RESERVED3
Definition ufs.h:234
@ QUERY_FLAG_IDN_RESERVED2
Definition ufs.h:231
@ QUERY_FLAG_IDN_FDEVICEINIT
Definition ufs.h:225
@ QUERY_FLAG_IDN_BKOPS_EN
Definition ufs.h:228
@ QUERY_FLAG_IDN_PURGE_ENABLE
Definition ufs.h:230
@ QUERY_FLAG_IDN_LIFE_SPAN_MODE_ENABLE
Definition ufs.h:229
@ QUERY_FLAG_IDN_PWR_ON_WPE
Definition ufs.h:227
ufs_desc_def_size
Definition ufs.h:285
@ QUERY_DESC_DEVICE_DEF_SIZE
Definition ufs.h:286
@ QUERY_DESC_POWER_DEF_SIZE
Definition ufs.h:291
@ QUERY_DESC_INTERCONNECT_DEF_SIZE
Definition ufs.h:289
@ QUERY_DESC_GEOMETRY_DEF_SIZE
Definition ufs.h:290
@ QUERY_DESC_CONFIGURATION_DEF_SIZE
Definition ufs.h:287
@ QUERY_DESC_UNIT_DEF_SIZE
Definition ufs.h:288
@ QUERY_DESC_HEALTH_DEF_SIZE
Definition ufs.h:292
device_desc_param
Definition ufs.h:296
@ DEVICE_DESC_PARAM_DEV_VER
Definition ufs.h:327
@ DEVICE_DESC_PARAM_PSA_MAX_DATA
Definition ufs.h:329
@ DEVICE_DESC_PARAM_RTT_CAP
Definition ufs.h:322
@ DEVICE_DESC_PARAM_UD_LEN
Definition ufs.h:321
@ DEVICE_DESC_PARAM_DEVICE_SUB_CLASS
Definition ufs.h:301
@ DEVICE_DESC_PARAM_OEM_ID
Definition ufs.h:318
@ DEVICE_DESC_PARAM_MANF_DATE
Definition ufs.h:314
@ DEVICE_DESC_PARAM_PSA_TMT
Definition ufs.h:330
@ DEVICE_DESC_PARAM_INIT_PWR_MODE
Definition ufs.h:307
@ DEVICE_DESC_PARAM_NUM_LU
Definition ufs.h:303
@ DEVICE_DESC_PARAM_FFU_TMT
Definition ufs.h:325
@ DEVICE_DESC_PARAM_PRTCL
Definition ufs.h:302
@ DEVICE_DESC_PARAM_DEVICE_TYPE
Definition ufs.h:299
@ DEVICE_DESC_PARAM_DESC_ACCSS_ENBL
Definition ufs.h:306
@ DEVICE_DESC_PARAM_ACTVE_ICC_LVL
Definition ufs.h:312
@ DEVICE_DESC_PARAM_HIGH_PR_LUN
Definition ufs.h:308
@ DEVICE_DESC_PARAM_SEC_RMV_TYPE
Definition ufs.h:309
@ DEVICE_DESC_PARAM_MANF_NAME
Definition ufs.h:315
@ DEVICE_DESC_PARAM_SN
Definition ufs.h:317
@ DEVICE_DESC_PARAM_SEC_LU
Definition ufs.h:310
@ DEVICE_DESC_PARAM_UFS_FEAT
Definition ufs.h:324
@ DEVICE_DESC_PARAM_PRDCT_REV
Definition ufs.h:331
@ DEVICE_DESC_PARAM_SPEC_VER
Definition ufs.h:313
@ DEVICE_DESC_PARAM_FRQ_RTC
Definition ufs.h:323
@ DEVICE_DESC_PARAM_MANF_ID
Definition ufs.h:319
@ DEVICE_DESC_PARAM_LEN
Definition ufs.h:297
@ DEVICE_DESC_PARAM_PRDCT_NAME
Definition ufs.h:316
@ DEVICE_DESC_PARAM_TYPE
Definition ufs.h:298
@ DEVICE_DESC_PARAM_NUM_WLU
Definition ufs.h:304
@ DEVICE_DESC_PARAM_BOOT_ENBL
Definition ufs.h:305
@ DEVICE_DESC_PARAM_NUM_SEC_WPA
Definition ufs.h:328
@ DEVICE_DESC_PARAM_BKOP_TERM_LT
Definition ufs.h:311
@ DEVICE_DESC_PARAM_UD_OFFSET
Definition ufs.h:320
@ DEVICE_DESC_PARAM_Q_DPTH
Definition ufs.h:326
@ DEVICE_DESC_PARAM_DEVICE_CLASS
Definition ufs.h:300
@ UPIU_TRANSACTION_REJECT_UPIU
Definition ufs.h:131
@ UPIU_TRANSACTION_READY_XFER
Definition ufs.h:129
@ UPIU_TRANSACTION_DATA_IN
Definition ufs.h:127
@ UPIU_TRANSACTION_TASK_RSP
Definition ufs.h:128
@ UPIU_TRANSACTION_RESPONSE
Definition ufs.h:126
@ UPIU_TRANSACTION_NOP_IN
Definition ufs.h:125
@ UPIU_TRANSACTION_QUERY_RSP
Definition ufs.h:130
@ QUERY_RESULT_ALREADY_WRITTEN
Definition ufs.h:196
@ QUERY_RESULT_NOT_WRITEABLE
Definition ufs.h:195
@ QUERY_RESULT_INVALID_OPCODE
Definition ufs.h:202
@ QUERY_RESULT_SUCCESS
Definition ufs.h:193
@ QUERY_RESULT_INVALID_LENGTH
Definition ufs.h:197
@ QUERY_RESULT_INVALID_INDEX
Definition ufs.h:200
@ QUERY_RESULT_NOT_READABLE
Definition ufs.h:194
@ QUERY_RESULT_INVALID_IDN
Definition ufs.h:201
@ QUERY_RESULT_GENERAL_FAILURE
Definition ufs.h:203
@ QUERY_RESULT_INVALID_SELECTOR
Definition ufs.h:199
@ QUERY_RESULT_INVALID_VALUE
Definition ufs.h:198
@ UPIU_TRANSACTION_COMMAND
Definition ufs.h:117
@ UPIU_TRANSACTION_TASK_REQ
Definition ufs.h:119
@ UPIU_TRANSACTION_QUERY_REQ
Definition ufs.h:120
@ UPIU_TRANSACTION_NOP_OUT
Definition ufs.h:116
@ UPIU_TRANSACTION_DATA_OUT
Definition ufs.h:118
query_opcode
Definition ufs.h:170
@ UPIU_QUERY_OPCODE_READ_ATTR
Definition ufs.h:174
@ UPIU_QUERY_OPCODE_READ_FLAG
Definition ufs.h:176
@ UPIU_QUERY_OPCODE_SET_FLAG
Definition ufs.h:177
@ UPIU_QUERY_OPCODE_WRITE_ATTR
Definition ufs.h:175
@ UPIU_QUERY_OPCODE_CLEAR_FLAG
Definition ufs.h:178
@ UPIU_QUERY_OPCODE_READ_DESC
Definition ufs.h:172
@ UPIU_QUERY_OPCODE_WRITE_DESC
Definition ufs.h:173
@ UPIU_QUERY_OPCODE_NOP
Definition ufs.h:171
@ UPIU_QUERY_OPCODE_TOGGLE_FLAG
Definition ufs.h:179
@ UPIU_CMD_FLAGS_WRITE
Definition ufs.h:137
@ UPIU_CMD_FLAGS_READ
Definition ufs.h:138
@ UPIU_CMD_FLAGS_NONE
Definition ufs.h:136
struct ufs_query ufs_query_t
struct ufs_query - holds relevant data structures for query request @request: request upiu and functi...
@ UTP_CMD_TYPE_SCSI
Definition ufs.h:57
@ UTP_CMD_TYPE_UFS
Definition ufs.h:58
@ UTP_CMD_TYPE_DEV_MANAGE
Definition ufs.h:59
@ UPIU_TASK_ATTR_SIMPLE
Definition ufs.h:143
@ UPIU_TASK_ATTR_ACA
Definition ufs.h:146
@ UPIU_TASK_ATTR_HEADQ
Definition ufs.h:145
@ UPIU_TASK_ATTR_ORDERED
Definition ufs.h:144
@ UPIU_QUERY_FUNC_STANDARD_WRITE_REQUEST
Definition ufs.h:152
@ UPIU_QUERY_FUNC_STANDARD_READ_REQUEST
Definition ufs.h:151
attr_idn
Definition ufs.h:239
@ QUERY_ATTR_IDN_PSA_STATE
Definition ufs.h:261
@ QUERY_ATTR_IDN_BKOPS_STATUS
Definition ufs.h:245
@ QUERY_ATTR_IDN_REF_CLK_FREQ
Definition ufs.h:250
@ QUERY_ATTR_IDN_EE_CONTROL
Definition ufs.h:253
@ QUERY_ATTR_IDN_CORR_PRG_BLK_NUM
Definition ufs.h:257
@ QUERY_ATTR_IDN_MAX_NUM_OF_RTT
Definition ufs.h:252
@ QUERY_ATTR_IDN_PSA_DATA_SIZE
Definition ufs.h:262
@ QUERY_ATTR_IDN_FFU_STATUS
Definition ufs.h:260
@ QUERY_ATTR_IDN_OOO_DATA_EN
Definition ufs.h:244
@ QUERY_ATTR_IDN_CONF_DESC_LOCK
Definition ufs.h:251
@ QUERY_ATTR_IDN_SECONDS_PASSED
Definition ufs.h:255
@ QUERY_ATTR_IDN_CNTX_CONF
Definition ufs.h:256
@ QUERY_ATTR_IDN_PURGE_STATUS
Definition ufs.h:246
@ QUERY_ATTR_IDN_ACTIVE_ICC_LVL
Definition ufs.h:243
@ QUERY_ATTR_IDN_EE_STATUS
Definition ufs.h:254
@ QUERY_ATTR_IDN_RESERVED
Definition ufs.h:241
@ QUERY_ATTR_IDN_POWER_MODE
Definition ufs.h:242
@ QUERY_ATTR_IDN_RESERVED2
Definition ufs.h:258
@ QUERY_ATTR_IDN_RESERVED3
Definition ufs.h:259
@ QUERY_ATTR_IDN_DYN_CAP_NEEDED
Definition ufs.h:249
@ QUERY_ATTR_IDN_MAX_DATA_OUT
Definition ufs.h:248
@ QUERY_ATTR_IDN_BOOT_LU_EN
Definition ufs.h:240
@ QUERY_ATTR_IDN_MAX_DATA_IN
Definition ufs.h:247
struct ufs_pa_layer_attr ufs_pa_layer_attr_t