Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / obp / obp / dev / usb / packets.fth
CommitLineData
920dae64
AT
1\ ========== Copyright Header Begin ==========================================
2\
3\ Hypervisor Software File: packets.fth
4\
5\ Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
6\
7\ - Do no alter or remove copyright notices
8\
9\ - Redistribution and use of this software in source and binary forms, with
10\ or without modification, are permitted provided that the following
11\ conditions are met:
12\
13\ - Redistribution of source code must retain the above copyright notice,
14\ this list of conditions and the following disclaimer.
15\
16\ - Redistribution in binary form must reproduce the above copyright notice,
17\ this list of conditions and the following disclaimer in the
18\ documentation and/or other materials provided with the distribution.
19\
20\ Neither the name of Sun Microsystems, Inc. or the names of contributors
21\ may be used to endorse or promote products derived from this software
22\ without specific prior written permission.
23\
24\ This software is provided "AS IS," without a warranty of any kind.
25\ ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
26\ INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
27\ PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
28\ MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
29\ ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
30\ DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
31\ OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
32\ FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
33\ DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
34\ ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
35\ SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
36\
37\ You acknowledge that this software is not designed, licensed or
38\ intended for use in the design, construction, operation or maintenance of
39\ any nuclear facility.
40\
41\ ========== Copyright Header End ============================================
42id: @(#)packets.fth 1.6 01/06/27
43purpose:
44copyright: Copyright 1997-2001 Sun Microsystems, Inc. All Rights Reserved
45
46\ packet ids; includes check bits
47
48\ e1 constant out-pid
49\ 69 constant in-pid
50\ a5 constant sof-pid \ done by the chip
51\ 2d constant setup-pid
52\ c3 constant data0-pid \ done by the chip
53\ 4b constant data1-pid \ done by the chip
54\ d2 constant ack-pid \ XXX needed?
55\ 5a constant nak-pid \ XXX needed?
56\ 1e constant stall-pid \ XXX needed?
57\ 3c constant pre-pid \ done by the chip
58
59\ packet offsets for usb device requests
60
61struct
62 1 field request-type
63 1 field request
64 2 field req-value
65 2 field req-index
66 2 field req-len
67( request block size ) constant /request
68
69\ first two bytes of request block -- type and request together:
70
71h# 0001 constant clear-feature-req \ twiddle bits for interface, endpoint
72h# 8008 constant get-config-req
73h# 8006 constant get-descript-req
74h# 810a constant get-interface-req
75h# 8000 constant get-status-req \ twiddle bits for interface, endpoint;
76 \ note dir bit for endpoints
77h# 0005 constant set-address-req
78h# 0009 constant set-config-req
79h# 0003 constant set-feature-req \ twiddle bits for interface, endpoint
80h# 010b constant set-interface-req
81
82\ XXX dir bit for endpoints applies to all requests? E.g., clear-feature &
83\ set-feature? 1.1 implies that it does.
84
85\ descriptor types, used by get-descript-req:
86
871 constant device-descript
882 constant config-descript
893 constant string-descript
904 constant interface-descript
915 constant endpoint-descript
92
93\ Feature selectors:
94
950 constant endpoint-stall
96
97d# 64 instance value max-packet \ get from device descriptor; for child endpt 0
980 instance value child-speed \ used to unstall endpoints
99
100\ device descriptor fields:
101
102struct
103 1 field d-descript-len
104 1 field d-descript-type
105 2 field d-descript-release
106 1 field d-descript-class
107 1 field d-descript-sub
108 1 field d-descript-protocol
109 1 field d-descript-maxpkt
110 2 field d-descript-vendor
111 2 field d-descript-product
112 2 field d-descript-device
113 1 field d-descript-imanufact
114 1 field d-descript-iproduct
115 1 field d-descript-iserial
116 1 field d-descript-#configs
117( device descriptor size ) constant /dev-descriptor
118
119\ configuration descriptor fields:
120
121struct
122 1 field c-descript-len
123 1 field c-descript-type
124 2 field c-descript-total
125 1 field c-descript-#interfaces
126 1 field c-descript-config-id
127 1 field c-descript-iconfig
128 1 field c-descript-attributes
129 1 field c-descript-max-power
130( configuration descriptor size ) constant /config-descriptor
131
132\ interface descriptor fields:
133
134struct
135 1 field i-descript-len
136 1 field i-descript-type
137 1 field i-descript-interface-id
138 1 field i-descript-alt-id
139 1 field i-descript-#endpoints
140 1 field i-descript-class
141 1 field i-descript-sub
142 1 field i-descript-protocol
143 1 field i-descript-itext
144( interface descriptor size ) constant /interface-descriptor
145
146\ endpoint descriptor fields:
147
148struct
149 1 field e-descript-len
150 1 field e-descript-type
151 1 field e-descript-endpoint-id
152 1 field e-descript-attributes
153 2 field e-descript-max-pkt
154 1 field e-descript-interval
155( endpoint descriptor size ) constant /endpoint-descriptor
156
157\ Probably not needed:
158\ string descriptor fields:
159
160\ struct
161\ 1 field s-descript-len
162\ 1 field s-descript-type
163\ 1 field s-descript-string \ actually, s-descript-len minus 2
164\ ( string descriptor size ) constant /string-descriptor
165
166\ XXX not really correct since there can be multiple optional fields tacked
167\ on
168\ Probably not needed:
169\ HID descriptor fields:
170
171\ struct
172\ 1 field h-descript-len
173\ 1 field h-descript-type
174\ 2 field h-descript-release
175\ 1 field h-descript-country
176\ 1 field h-descript-#descriptors
177\ 1 field h-descript-XXX \ XXX eh? 6.2.1 HID document
178\ 2 field h-descript-report-len \ XXX really?
179\ 1 field h-descript-XXX
180\ 2 field h-descript-XXX-len
181\ ( HID descriptor size ) constant /hid-descriptor
182
183\ There must be at least one report descriptor, and possibly also physical
184\ descriptors.
185
186\ We can probably ignore physical descriptors.