Changeset 904b1bc in mainline for uspace/drv/bus/usb/ehci
- Timestamp:
- 2018-05-22T10:36:58Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a4eb3ba2
- Parents:
- 4f8772d4
- git-author:
- Jiri Svoboda <jiri@…> (2018-05-21 17:36:30)
- git-committer:
- Jiri Svoboda <jiri@…> (2018-05-22 10:36:58)
- Location:
- uspace/drv/bus/usb/ehci/hw_struct
- Files:
-
- 4 edited
-
iso_transfer_descriptor.h (modified) (3 diffs)
-
queue_head.h (modified) (6 diffs)
-
split_iso_transfer_descriptor.h (modified) (5 diffs)
-
transfer_descriptor.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/hw_struct/iso_transfer_descriptor.h
r4f8772d4 r904b1bc 43 43 44 44 volatile uint32_t transaction[8]; 45 volatile uint32_t buffer_pointer[7]; 46 47 /* 64 bit struct only */ 48 volatile uint32_t extended_bp[7]; 49 } __attribute__((packed, aligned(32))) itd_t; 50 51 /* 52 * itd_t.transaction 53 */ 45 54 #define ITD_TRANSACTION_STATUS_ACTIVE_FLAG (1 << 31) 46 55 #define ITD_TRANSACTION_STATUS_BUFFER_ERROR_FLAG (1 << 30) … … 55 64 #define ITD_TRANSACTION_OFFSET_SHIFT 0 56 65 57 volatile uint32_t buffer_pointer[7]; 66 /* 67 * itd_t.buffer_pointer 68 */ 58 69 #define ITD_BUFFER_POINTER_MASK 0xfffff000 59 70 /* First buffer pointer */ … … 70 81 #define ITD_BUFFER_POINTER_MULTI_SHIFT 0 71 82 72 /* 64 bit struct only */73 volatile uint32_t extended_bp[7];74 } __attribute__((packed, aligned(32))) itd_t;75 83 #endif 84 76 85 /** 77 86 * @} -
uspace/drv/bus/usb/ehci/hw_struct/queue_head.h
r4f8772d4 r904b1bc 49 49 50 50 volatile uint32_t ep_char; 51 volatile uint32_t ep_cap; 52 53 link_pointer_t current; 54 /* Transfer overlay starts here */ 55 link_pointer_t next; 56 link_pointer_t alternate; 57 volatile uint32_t status; 58 volatile uint32_t buffer_pointer[5]; 59 60 /* 64 bit struct only */ 61 volatile uint32_t extended_bp[5]; 62 } __attribute__((packed, aligned(32))) qh_t; 63 64 /* 65 * qh_t.ep_char 66 */ 51 67 #define QH_EP_CHAR_RL_MASK 0xf 52 68 #define QH_EP_CHAR_RL_SHIFT 28 … … 78 94 (((val) >> QH_EP_CHAR_ADDR_SHIFT) & QH_EP_CHAR_ADDR_MASK) 79 95 80 volatile uint32_t ep_cap; 96 /* 97 * qh_t.ep_cap 98 */ 81 99 #define QH_EP_CAP_MULTI_MASK 0x3 82 100 #define QH_EP_CAP_MULTI_SHIFT 30 … … 100 118 (((val) & QH_EP_CAP_S_MASK_MASK) << QH_EP_CAP_S_MASK_SHIFT) 101 119 102 link_pointer_t current; 103 /* Transfer overlay starts here */ 104 link_pointer_t next; 105 link_pointer_t alternate; 120 /* 121 * qh_t.alternate 122 */ 106 123 #define QH_ALTERNATE_NACK_CNT_MASK 0x7 107 124 #define QH_ALTERNATE_NACK_CNT_SHIFT 1 108 125 109 volatile uint32_t status; 126 /* 127 * qh_t.status 128 */ 110 129 #define QH_STATUS_TOGGLE_FLAG (1 << 31) 111 130 #define QH_STATUS_TOTAL_MASK 0x7fff … … 127 146 #define QH_STATUS_PING_FLAG (1 << 0) 128 147 129 volatile uint32_t buffer_pointer[5]; 148 /* 149 * qh_t.buffer_pointer 150 */ 130 151 #define QH_BUFFER_POINTER_MASK 0xfffff000 131 152 /* Only the first buffer pointer */ … … 141 162 #define QH_BUFFER_POINTER_FTAG_SHIFT 0 142 163 143 /* 64 bit struct only */144 volatile uint32_t extended_bp[5];145 } __attribute__((packed, aligned(32))) qh_t;146 164 147 165 static inline void qh_append_qh(qh_t *qh, const qh_t *next) … … 212 230 } 213 231 214 215 void qh_init(qh_t *instance, const endpoint_t *ep); 232 extern void qh_init(qh_t *instance, const endpoint_t *ep); 233 216 234 #endif 217 235 /** -
uspace/drv/bus/usb/ehci/hw_struct/split_iso_transfer_descriptor.h
r4f8772d4 r904b1bc 43 43 44 44 volatile uint32_t ep; 45 volatile uint32_t uframe; 46 volatile uint32_t status; 47 volatile uint32_t buffer_pointer[2]; 48 link_pointer_t back; 49 50 /* 64 bit struct only */ 51 volatile uint32_t extended_bp[2]; 52 } __attribute__((packed, aligned(32))) sitd_t; 53 54 /* 55 * sitd_t.ep 56 */ 45 57 #define SITD_EP_IN_FLAG (1 << 31) 46 58 #define SITD_EP_PORT_MASK 0x3f … … 53 65 #define SITD_EP_ADDR_SHIFT 0 54 66 55 volatile uint32_t uframe; 67 /* 68 * sitd_t.uframe 69 */ 56 70 #define SITD_uFRAME_CMASK_MASK 0xff 57 71 #define SITD_uFRAME_CMASK_SHIFT 8 … … 59 73 #define SITD_uFRAME_SMASK_SHIFT 0 60 74 61 volatile uint32_t status; 75 /* 76 * sitd_t.status 77 */ 62 78 #define SITD_STATUS_IOC_FLAG (1 << 31) 63 79 #define SITD_STATUS_PAGE_FLAG (1 << 30) … … 74 90 #define SITD_STATUS_SPLIT_COMPLETE_FLAG (1 << 1) 75 91 76 volatile uint32_t buffer_pointer[2]; 92 /* 93 * sitd_t.buffer_pointer 94 */ 77 95 #define SITD_BUFFER_POINTER_MASK 0xfffff000 78 96 /* Only the first page pointer */ … … 85 103 #define SITD_BUFFER_POINTER_COUNT_SHIFT 0 86 104 87 link_pointer_t back; 105 #endif 88 106 89 /* 64 bit struct only */90 volatile uint32_t extended_bp[2];91 } __attribute__((packed, aligned(32))) sitd_t;92 #endif93 107 /** 94 108 * @} -
uspace/drv/bus/usb/ehci/hw_struct/transfer_descriptor.h
r4f8772d4 r904b1bc 47 47 48 48 volatile uint32_t status; 49 50 volatile uint32_t buffer_pointer[5]; 51 52 /* 64 bit struct only */ 53 volatile uint32_t extended_bp[5]; 54 55 } __attribute__((packed, aligned(32))) td_t; 56 57 /* 58 * td_t.status 59 */ 49 60 #define TD_STATUS_TOGGLE_FLAG (1 << 31) 50 61 #define TD_STATUS_TOTAL_MASK 0x7fff … … 69 80 #define TD_STATUS_PING_FLAG (1 << 0) 70 81 71 volatile uint32_t buffer_pointer[5]; 82 /* 83 * td_t.buffer_pointer 84 */ 85 72 86 #define TD_BUFFER_POINTER_MASK 0xfffff000 73 87 /* Only the first page pointer */ 74 88 #define TD_BUFFER_POINTER_OFFSET_MASK 0xfff 75 76 /* 64 bit struct only */77 volatile uint32_t extended_bp[5];78 79 } __attribute__((packed, aligned(32))) td_t;80 89 81 90 static_assert(sizeof(td_t) % 32 == 0);
Note:
See TracChangeset
for help on using the changeset viewer.
