Intel IXP400 manual

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364

Go to page of

A good user manual

The rules should oblige the seller to give the purchaser an operating instrucion of Intel IXP400, along with an item. The lack of an instruction or false information given to customer shall constitute grounds to apply for a complaint because of nonconformity of goods with the contract. In accordance with the law, a customer can receive an instruction in non-paper form; lately graphic and electronic forms of the manuals, as well as instructional videos have been majorly used. A necessary precondition for this is the unmistakable, legible character of an instruction.

What is an instruction?

The term originates from the Latin word „instructio”, which means organizing. Therefore, in an instruction of Intel IXP400 one could find a process description. An instruction's purpose is to teach, to ease the start-up and an item's use or performance of certain activities. An instruction is a compilation of information about an item/a service, it is a clue.

Unfortunately, only a few customers devote their time to read an instruction of Intel IXP400. A good user manual introduces us to a number of additional functionalities of the purchased item, and also helps us to avoid the formation of most of the defects.

What should a perfect user manual contain?

First and foremost, an user manual of Intel IXP400 should contain:
- informations concerning technical data of Intel IXP400
- name of the manufacturer and a year of construction of the Intel IXP400 item
- rules of operation, control and maintenance of the Intel IXP400 item
- safety signs and mark certificates which confirm compatibility with appropriate standards

Why don't we read the manuals?

Usually it results from the lack of time and certainty about functionalities of purchased items. Unfortunately, networking and start-up of Intel IXP400 alone are not enough. An instruction contains a number of clues concerning respective functionalities, safety rules, maintenance methods (what means should be used), eventual defects of Intel IXP400, and methods of problem resolution. Eventually, when one still can't find the answer to his problems, he will be directed to the Intel service. Lately animated manuals and instructional videos are quite popular among customers. These kinds of user manuals are effective; they assure that a customer will familiarize himself with the whole material, and won't skip complicated, technical information of Intel IXP400.

Why one should read the manuals?

It is mostly in the manuals where we will find the details concerning construction and possibility of the Intel IXP400 item, and its use of respective accessory, as well as information concerning all the functions and facilities.

After a successful purchase of an item one should find a moment and get to know with every part of an instruction. Currently the manuals are carefully prearranged and translated, so they could be fully understood by its users. The manuals will serve as an informational aid.

Table of contents for the manual

  • Page 1

    Document Number: 252539 , Revision: 007 Intel ® IXP400 Software Programmer’s Guide April 2005[...]

  • Page 2

    April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 2 Document Number: 252539 , Revisio n: 007 Intel ® IXP400 Software INFORMA TION IN THIS DOCUMENT IS PROVIDED IN CO NNECTION WITH INTE L ® PRODUCTS. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LI ABILITY WHA TSOEVER, AND INTEL DISCL[...]

  • Page 3

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 Contents 1 Introduction . ................ ............. ................ ............. ................ ............. ................ ............. .......... ... 19 1.1 Versions Supported by this Document ......[...]

  • Page 4

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 4 Document Number: 252539 , Revisio n: 007 4.5.1 Scheduled Transmission ...... ................ ................. ................ ............. ................ ... 58 4.5.1.1 Schedule Table Description ............... .... ... ... ............. ... ...[...]

  • Page 5

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 7 Access-L ayer Componen ts: Security (IxCryptoAcc) API .. ............. ................ ............. ................ ............. ................ ............. ... 87 7.1 What’s New .................. .....[...]

  • Page 6

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 6 Document Number: 252539 , Revisio n: 007 8.6.1 IxDmaAccDescriptorManager ................... ............. ................ ............. ................ . 118 8.7 Parameters Description ........ .... ... ... ... ............. ... .... ... ... ... ...[...]

  • Page 7

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 9.9 Management Information ....... ................ ................ ............. ................ ................ ............. . 152 10 Access-Laye r Co mponents: Ethernet Databa se (IxEthDB) API ..... ........[...]

  • Page 8

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 8 Document Number: 252539 , Revisio n: 007 12 Access-Layer Compone nts: Feature Control ( Ix FeatureCtrl) API ................. ............. ................ ............. ................ ............. . 183 12.1 What’s New........... ...............[...]

  • Page 9

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 15 Access-Laye r Co mponents: NPE Message Handler (Ix NpeMh) API ................... ............. ................ ............. ................ ........ 225 15.1 What’s New ..... ............. ................[...]

  • Page 10

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 10 Document Nu mb e r: 252539 , Revision: 007 17.9 Threading.............. ................ ................ ............. ................. ................ ............. ......... ........ 2 52 17.10 Using the API ............... ... ... ... ..........[...]

  • Page 11

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 20.4 IxTimeSyncAcc API Usage Scenarios ...... ................ ................ ............. ................ ........... 290 20.4.1 Polling for Transmit and Receive Time stamps ............ ................ .....[...]

  • Page 12

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 12 Document Nu mb e r: 252539 , Revision: 007 24.4.1 Backward Compatibility Module ......... ................ ............. ................ ............. ........ 316 24.4.2 Buffer Translation Modu le.. ............. ................ ............. .....[...]

  • Page 13

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 27.4.3 Silicon Endianness Controls ..................... ... ... .... ... ... ... ... .... ... ... ... .... ... ... ... ... .... .... 349 27.4.3.1 Hardware Switches ................... ... ... .... ... ... ... ... [...]

  • Page 14

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 14 Document Nu mb e r: 252539 , Revision: 007 27 Basic IxCryptoAcc API Flow ................ ............. ... ............. ................ ............. ............. ............ .... 90 28 IxCryptoAcc API Call Process Fl ow for CCD Updates .........[...]

  • Page 15

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 77 Data Abort with No Parity Error . ................ ................. ............. ................ ................ ............... .. 243 78 Parity Error with No Data Abort ........... ................ .......[...]

  • Page 16

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 16 Document Nu mb e r: 252539 , Revision: 007 2 IX_MBUF Field Details ........... ............. ................ ................ ............. ................ ................ .... ...... 45 3 IX_MBUF to M_BLK Mapping ...................... ....... ...[...]

  • Page 17

    Intel ® IXP400 Software Content s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 49 Default IEEE 1588 Hardware Assi st Block States upon Hardware /Software Reset ............. .... 287 50 IN, OUT, and SETUP Token Packet Format ....... ... ............. ................ ............. ...........[...]

  • Page 18

    Intel ® IXP400 Software Content s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 18 Document Nu mb e r: 252539 , Revision: 007 Revision History Date Revision Description April 2005 007 Updated guide for IXP400 Software V ersion 2.0. Added: • Chapter 16, “Access-Layer Components: Parity Error Notifier (IxParityENAcc) AP I” • C[...]

  • Page 19

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 19 Introduction 1 This chapter contains important inform ati on to help you learn about and use the Intel ® IX P4 00 Software v2.0 release. 1.1 V ersions Supported by this Document This programmer ’ s guide is intended to[...]

  • Page 20

    Intel ® IXP400 Software Introduction April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 20 Document Nu mb e r: 252539 , Revision: 007 1.4 How to Use this Document This programmer ’ s guide is organized as follows: For the developer int erested in a limi ted number of specific features of the IXP400 soft ware, a recommended reading proc[...]

  • Page 21

    Intel ® IXP400 Software Introduction Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 21 The IXP4XX product line and IXC1 100 control plane processors have a unique distribu ted processing architecture th at features the performance of the Intel XScale ® Core and up to three Network Processor En[...]

  • Page 22

    Intel ® IXP400 Software Introduction April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 22 Document Nu mb e r: 252539 , Revision: 007 1.7 Acronyms IEEE S t andard for a Precision Clock Sy nchronization Protocol for Networked Measurement and Control Systems (IEEE S td. 1588™ - 2002) ARM Ltd., AMBA Specification , Rev . 2.0, May 1999 –[...]

  • Page 23

    Intel ® IXP400 Software Introduction Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 23 CPU Central Processing Unit CRC Cyclic Redundancy Check CSR Customer Software Release CTR Counter Mode DDR Double Data Rate DES Data Encryption S tandard DMT Discrete Multi-T one DOI Domain of Interpretation [...]

  • Page 24

    Intel ® IXP400 Software Introduction April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 24 Document Nu mb e r: 252539 , Revision: 007 HSS High S peed Serial HSSI High S peed Serial Interface HW Hardware IAD Integrated Access Device ICV Integrity Check V alue IKE Internet Key Exchange IMA Inverse Multiplexing over A TM IP Internet Protoco[...]

  • Page 25

    Intel ® IXP400 Software Introduction Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 25 MSB Most Significant Bit MVIP Multi-V endor Integration Protocol MxU Multi-dwelling Unit NAK Not-Acknowledge Packet NAPT Network Address Port Translation NA T Network Address T ra nslation NE Nearly Empty NF [...]

  • Page 26

    Intel ® IXP400 Software Introduction April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 26 Document Nu mb e r: 252539 , Revision: 007 SIP Session Initiation Protocol SNMP Simple Network Management Protocol SOF S tart of Frame SPHY Single PHY SSL Secure Socket Layer SSP Synchronous Serial Port SVC Switched Virtual Connection SWCP Switchin[...]

  • Page 27

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 27 Software Architecture Overview 2 2.1 High-Level Overview The primary design principles of the Intel ® IXP400 Software v2.0 arch itecture are to enable the supported processors’ hardware in a manner whic h allow s maxim[...]

  • Page 28

    Intel ® IXP400 Software Sof tware Architec ture Overview April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 28 Document Nu mb e r: 252539 , Revision: 007 2.2 Deliverable Model Intel ® IXP400 Software v2.0 co nsists of these elements: • Intel ® IXP400 Software v2.0 access-layer components and OSAL layer • Complete documentatio n and[...]

  • Page 29

    Intel ® IXP400 Software Sof tware Architec ture Overview Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 29 2.3 Operating System Support The Intel XScale microarchitecture offers a broad range of tools together with sup port for two widely adopted operating systems. The software release 2.0 supp[...]

  • Page 30

    Intel ® IXP400 Software Sof tware Architec ture Overview April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 30 Document Nu mb e r: 252539 , Revision: 007 2.6 Release Directory S tructure The software release 2.0 includes the following directory structure: ---ixp_osal +---doc (API References in HTML and PDF format) +---include +---os +-[...]

  • Page 31

    Intel ® IXP400 Software Sof tware Architec ture Overview Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 31 +---cryptoAcc (for crypto version only) +---dmaAcc +---ethAcc | ---include +---ethDB | ---include +---ethMii +---featureCtrl +---hssAcc | ---include +---i2c +---include (header location[...]

  • Page 32

    Intel ® IXP400 Software Sof tware Architec ture Overview April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 32 Document Nu mb e r: 252539 , Revision: 007 2.7 Threading and Locking Policy The software release 2.0 access-layer does not impl ement processes or thr eads. The architecture assumes execution w ithin a preempti ve multi-tasking [...]

  • Page 33

    Intel ® IXP400 Software Sof tware Architec ture Overview Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 33 2.10 Global Dependency Chart Figure 2 shows the interdepende ncies for the maj or APIs discu ssed in this document. Figure 2. Global Dependencies EthAcc EthDB EthMi i IxOS AL NpeDl NpeMh F[...]

  • Page 34

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 34 Document Nu mb e r: 252539 , Revision: 007[...]

  • Page 35

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 35 Buf fer Management 3 This chapter describes the data buf fer system used in Intel ® IXP400 Software v2.0, and includes definitions of the IXP400 software internal memory buffers, cache management strategies, and other re[...]

  • Page 36

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 36 Document Nu mb e r: 252539 , Revision: 007 The access-layer component may call a client-registered callback functi on to return the buf fer , or may put the buffer back on a fr ee queue for the client to poll. The access-layer components utili[...]

  • Page 37

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 37 The usual fields to be update d between the user and the IXP_ MBUF fields depends on the access- layer componen t , but mo st of th e In tel ® IXP400 Softw are API requires the use of followin g fields:[...]

  • Page 38

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 38 Document Nu mb e r: 252539 , Revision: 007 3.3 IXP_BUF S tructure As shown in Figure 5 , IXP_BUF is comprised of the follow ing three main structures, and each structure is comprised of eight entries four bytes long. 1. The first structure con[...]

  • Page 39

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 39 Figure 6. OSAL IXP_BUF structure and mac ros Depending upon the usage model, different software components use the stru ctures to update the internal fields of th e IXP_BUF structure. Figure 7 shows a ty[...]

  • Page 40

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 40 Document Nu mb e r: 252539 , Revision: 007 Figure 7. API User Interface to IXP_BUF The Figure 8 shows a typical interface between the Intel ® IXP400 Softw are access- layer components and the IXP_BUF fields. The access-la yer components adapt[...]

  • Page 41

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 41 Figure 9 below shows the interface between the OSAL pool management module and the pool management fields used for pool maintena nce. The pool manag ement field also stores the os_buf_ptr field, which is[...]

  • Page 42

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 42 Document Nu mb e r: 252539 , Revision: 007 Linux utilizes memory structures called skbuf fs. The user allocates IXP_BUF and sets the data payload pointer to the skbuff payload pointer . An os_buf_ptr field inside the ixp_ctrl structure (define[...]

  • Page 43

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 43 Figure 12. I XP_BUF: NPE Sha red Structure 3.4 Mapping of IX_MBUF to Shared St ructure The Figure 13 below shows an example case on how the IX_MBUF headers are in ternal ly mapp ed to the NPE shared stru[...]

  • Page 44

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 44 Document Nu mb e r: 252539 , Revision: 007 Figure 13. Internal Mapping of IX_MBUF to the Shared NPE Structure 3.5 IX_MBUF S tructure Ta b l e 1 and Ta b l e 2 present IX_MBUF structure format and details. i x_next i x_next pkt i x_dat a ix _ l[...]

  • Page 45

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 45 A set of macros are provided for the IXP400 software to access each of the fields in the buf fer structure. Each macro takes a sing le parameter – a pointer to the buffer itself. Each macro returns the[...]

  • Page 46

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 46 Document Nu mb e r: 252539 , Revision: 007 3.6 Mapping to OS Native Buffer T ypes OSAL provides buffer-translation macros for user s to translate OS-speci fic buffer formats to OSAL IXP buffer format and vice versa. The mapping of OS buffer fi[...]

  • Page 47

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 47 Note that the M_BLK structure co ntains many fields that are n ot used by the IXP400 software. These fields are simply ignored and ar e not modified by the IXP400 software. M_BLK buffers support two leve[...]

  • Page 48

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 48 Document Nu mb e r: 252539 , Revision: 007 It works on the following principles: • Each IXP_BUF is mapped to an skbuff (1:1 mapping) • The os_buf_ptr field of the ix_ctrl structure is used to store a pointer to the corresponding skbuff. ?[...]

  • Page 49

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 49 3.7 Caching S trategy The general caching strategy in the IXP400 software architecture is th at the software (include Intel XScale core-based code an d NPE microcode) only concerns itself with the parts [...]

  • Page 50

    Intel ® IXP400 Software Buffer Management April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 50 Document Nu mb e r: 252539 , Revision: 007 Tx Cache Flushing Example In the case of an Ethernet bridging system, only the user can determ ine that it is not necessary to flush any part of the packet payload. In a routing environment , the stac[...]

  • Page 51

    Intel ® IXP400 Software Buffer Management Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 51 After the NPE modifies the memory , ensure that the Intel XScale core MMU cache is up-to-date by invalidating cached copies of any parts of the buf fe r memory that the Intel XScale core will need to rea[...]

  • Page 52

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 52 Document Nu mb e r: 252539 , Revision: 007[...]

  • Page 53

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 53 Access-Layer Components: A TM Driver Access (IxAtmdAcc) API 4 This chapter describes the In tel ® IXP400 Software v2.0’ s “A TM Driver-Access” access-layer component. 4.1 What’ s New There are no changes or enhan[...]

  • Page 54

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 54 Document Nu mb e r: 252539 , Revision: 007 • Support AAL-0-52 PDU transmis sion service, which accepts PDUs containing an integral number of 52-by te cells for transm ission on a parti cular port a[...]

  • Page 55

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 55 These statistics include the number of cells r eceived, the number of cells receive with an incorrect cell size, the number of cells containing parity errors, t[...]

  • Page 56

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 56 Document Nu mb e r: 252539 , Revision: 007 its own identifier known as a scheduler VcId. This cal lback also serves to allow the scheduling entity to ack nowledge the presence of VC. • Function to [...]

  • Page 57

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 57 • Check for A TM VC already in us e in an other Rx connection. • Check if the service type is OAM and, if so , check that the VC is the dedicated OAM-VC. ?[...]

  • Page 58

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 58 Document Nu mb e r: 252539 , Revision: 007 — if the overall user application involves a port con figured with a VC supporting a very d ifferent traffic rate . This tuning is at the client’ s disc[...]

  • Page 59

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 59 this VC. In making this callback, ixAtm dAcc is also pro vid ing the AtmScheduler VC identifier that should be used when calling IxAtmdAcc for this VC. 4. The s[...]

  • Page 60

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 60 Document Nu mb e r: 252539 , Revision: 007 4.5.2 T ransmission T riggers (Tx-Low Notification) In Scheduled Mode, the rate and exact point at which the ixAtmdAccTxP rocess() interface should be calle[...]

  • Page 61

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 61 Processing primarily involves hand ing back ownership of buffers to clients. The rate at which this is done must b e sufficient to ensure that client-b uffer st[...]

  • Page 62

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 62 Document Nu mb e r: 252539 , Revision: 007 T ransmit Done — Based on Polling Mechanism A polling mechanism can be used in stead of the threshold service to trigger the recycling of the transmitted [...]

  • Page 63

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 63 1. The data client send s the last PDUs and the control client wants to disconnect the VC. IxAtmdAccTxVcDisconnect() i nvalidates fu rthe r attem pts to transm [...]

  • Page 64

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 64 Document Nu mb e r: 252539 , Revision: 007 In order to receive a PDU, the c lient layer must allocate IXP_BUFs and pass their ownership to the IxAtmdAcc component. This proces s is known as replenish[...]

  • Page 65

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 65 1. A control client wants to use the threshol d services to process the received PDUs. The ixAtmdAccRxThresholdSet() function is called to register a callback. [...]

  • Page 66

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 66 Document Nu mb e r: 252539 , Revision: 007 Received — Based on a Polling Mech anism A polling mechanism can also be used to collect received buf fers as shown in Figure 20 . 1. Cells are now receiv[...]

  • Page 67

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 67 1,2. The control client wants to disconnect the VC . IxAtmdAccRxVcDisconnect () tell IxAtmdAcc to discard any rx traffic and — if resources are st ill in use [...]

  • Page 68

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 68 Document Nu mb e r: 252539 , Revision: 007 The IXP_BUF fields required for trans mission are desc ribed in Ta b l e 5 . These fields will not be changed during the Tx process. The IXP_BUF fields of a[...]

  • Page 69

    Intel ® IXP400 Software Access-Layer Component s: A TM Driver Access (IxAtmdAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 69 4.5.4.3 Buffer-Size Constraint s Any IXP_BUF size can be transmitted, but a full PDU must be a multiple of a cell size (48/ 52 bytes, depending on AAL type). Si[...]

  • Page 70

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Driver Access (IxAtmdAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 70 Document Nu mb e r: 252539 , Revision: 007 4.5.5.2 Real-T ime Errors Errors may occur duri ng real-time traf fic. Ta b l e 8 shows the different possible errors and the way to resolve them. T able 8.[...]

  • Page 71

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 71 Access-Layer Components: A TM Manager (IxAtmm) API 5 This chapter describes the In tel ® IXP400 Software v2.0’ s “A TM Manager API” access-layer component. IxAtmm is an exampl e IXP400 software co mponent. The phra[...]

  • Page 72

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Manager (IxAtmm) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 72 Document Nu mb e r: 252539 , Revision: 007 IxAtmm assumes that the client will s upply in itial upstream port rates once the capacity of each port is established. • Ensuring traffic shaping is perf ormed fo[...]

  • Page 73

    Intel ® IXP400 Software Access-Layer Component s: A TM Manager (IxAtmm) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 73 5.5 A TM-Port Management Service Model IxAtmm can be considered an “A TM-port management authority .” It does not directly perform data movement, although it do es c[...]

  • Page 74

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Manager (IxAtmm) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 74 Document Nu mb e r: 252539 , Revision: 007 Figure 22 shows the main serv ices prov ided by the IxAtmm component. In this diagram, the three services outlined are: • IXP4XX product line and IXC1100 control p[...]

  • Page 75

    Intel ® IXP400 Software Access-Layer Component s: A TM Manager (IxAtmm) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 75 Further calls to IxAtmDAcc must be made by the client follo win g registration with Ix Atm m to fully enable data traffic on a VC. IxAtmm does not support the registrati[...]

  • Page 76

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Manager (IxAtmm) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 76 Document Nu mb e r: 252539 , Revision: 007 information to the Ix Atm DAcc component, as requir ed to drive the transmit functio n. As a result, all data buffers in the system — once configured — will pass[...]

  • Page 77

    Intel ® IXP400 Software Access-Layer Component s: A TM Manager (IxAtmm) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 77 5.7 Dependencies IxAtmm configures the IXP4XX product li ne and IX C1 100 control plane processors’ UTOPIA Level-2 device through an interface provided by the IxAtmdAc[...]

  • Page 78

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM Manager (IxAtmm) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 78 Document Nu mb e r: 252539 , Revision: 007 5.1 1 Performance The IxAtmm does not operate on the data path of th e IXP4XX product lin e and IXC1 100 control plane processors. Because it is pr imarily concerned[...]

  • Page 79

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 79 Access-Layer Components: A TM T ransmit Scheduler (IxAtmSch) API 6 This chapter describes the In tel ® IXP400 Software v2.0’ s “A TM Transmit Scheduler” (IxAtmSch) access-layer component. 6.1 What’ s New There ar[...]

  • Page 80

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM T ransmit Scheduler (I xAtmSch) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 80 Document Nu mb e r: 252539 , Revision: 007 • Schedule table to the A TM transmit function that will contain informati on fo r A TM cell scheduling and shaping IxAtmSch implements a fully oper[...]

  • Page 81

    Intel ® IXP400 Software Access-Layer Compo nent s: A TM T ransmit Scheduler ( IxAtmSch) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 81 6.4 Connection Admission Control (CAC) Function IxAtmSch makes outbo und virtual conn ection admission decisions based a simple A TM port reference model[...]

  • Page 82

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM T ransmit Scheduler (I xAtmSch) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 82 Document Nu mb e r: 252539 , Revision: 007 6.5 Scheduling and T raffic Shaping 6.5.1 Schedule T able Once an A TM port is modeled and VCs are admitted on it, the client can request IxAtmSch to [...]

  • Page 83

    Intel ® IXP400 Software Access-Layer Compo nent s: A TM T ransmit Scheduler ( IxAtmSch) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 83 The schedule table is composed of an array of table entries, each of which specifies a VC ID and a number of cells to transmit from that VC. The sche dul[...]

  • Page 84

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM T ransmit Scheduler (I xAtmSch) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 84 Document Nu mb e r: 252539 , Revision: 007 The client calls the VC queue update interface wh enever the user of the VC submits cells for transmission. The structure of the VC queue update inter[...]

  • Page 85

    Intel ® IXP400 Software Access-Layer Compo nent s: A TM T ransmit Scheduler ( IxAtmSch) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 85 Some function interfaces supplied by the IXP400 software component adhere to structure requirements specified by the Ix AtmdAcc component. However , no e[...]

  • Page 86

    Intel ® IXP400 Software Access-Layer Co mponent s: A TM T ransmit Scheduler (I xAtmSch) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 86 Document Nu mb e r: 252539 , Revision: 007 6.9.1 Latency The transmit latency introduced by the IxAtm Sch compo nent into the overall transm it path of the processor will be zero under normal o[...]

  • Page 87

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 87 Access-Layer Components: Security (IxCryptoAcc) API 7 This chapter describes the In tel ® IXP400 Software v2.0’ s “Secu rity API” IxCryptoAcc access- layer component. The Security Hardware Accelerator access compon[...]

  • Page 88

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 88 Document Nu mb e r: 252539 , Revision: 007 —E C B — CBC — CTR (for AES algorithm only ) — Single-Pass AES-CCM encryption an d security for 802.1 1i. • Authentication algorithms: — HMAC-SHA1 (512[...]

  • Page 89

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 89 The Intel XScale cor e WEP Engine is a software-based “engine” for performing ARC4 and WEP ICV calculations used by WEP clien ts. While th is differs from the mod[...]

  • Page 90

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 90 Document Nu mb e r: 252539 , Revision: 007 7.3.3 Context Registration an d the Cryptographic Context Dat abase The IxCryptoAcc access component su pports up to 1,000 simultaneo us security association (SA) [...]

  • Page 91

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 91 The context-registration process cr eates the structures within the CCD, but the crypto context for each connection must be p reviously defined in an IxCrypt oAccCtx [...]

  • Page 92

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 92 Document Nu mb e r: 252539 , Revision: 007 1. The proper NPE microcode images must be downloaded to the NPEs and initialized, if applicable. 2. IxCryptoAcc must be configured appropriately according to the [...]

  • Page 93

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 93 8. IxCryptoAcc will return a context Id to the clien t ap plication upon successful context registration, and will call the Register Com plet e callback function. 7.3[...]

  • Page 94

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 94 Document Nu mb e r: 252539 , Revision: 007 7.3.6 Dependencies Figure 29 shows the compon ent depende ncie s of the IxCryptoAcc component. Figure 29 can be summarized as follows: • Client component will ca[...]

  • Page 95

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 95 • IxCryptoAcc depends on th e IxQMgr component to configure and use the hardware queues to access the NPE. • OS Abstraction Layer access-co mponent is used for er[...]

  • Page 96

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 96 Document Nu mb e r: 252539 , Revision: 007 ixCryptoAccCtxCi pherKeyUp date() This function is called to change the key value of a previously registered context . Key change for a registered context is only [...]

  • Page 97

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 97 The IPSec protocol stack provid es security for the transpor ted packets by encrypting and authenticating the IP paylo ad. Before an IP packet is sent out to the publ[...]

  • Page 98

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 98 Document Nu mb e r: 252539 , Revision: 007 7.4.2 IPSec Packet Format s IPSec standards have defined packet formats. The authentication header (AH) provides data integrity and the encapsulating security pa y[...]

  • Page 99

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 99 In AH mode, the ICV value is part of the authenticat ion header . AH is embedded in the data to be protected. This results in AH being included fo r ICV calculation, [...]

  • Page 100

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 100 Docume nt Numb e r: 252539 , Revision: 007 7.4.2.2 Reference AH Dat aflow Figure 35 shows the example data flow for IP Security environment. T ransport mode AH is used in this example. IPSec client handl e[...]

  • Page 101

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 101 7.4.3 Hardware Accelerati on for IPSec Services The IxCryptoAcc API is d ependant upon hardw are resources within NPE C (also known as Ethernet NPE B) in order to pe[...]

  • Page 102

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 102 Docume nt Numb e r: 252539 , Revision: 007 1. The proper NPE microcode images must have been downloaded to the NPE and initialized. Additionally , the IxCryptoAcc API must be properly configured, initializ[...]

  • Page 103

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 103 4. The NPE will read the descriptor on the Crypto Ready Queue and performs the encrypti on/ decryption/authentication operations, as defi ned in the CCD for th e sub[...]

  • Page 104

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 104 Docume nt Numb e r: 252539 , Revision: 007 2. Use AES-CTR mode to encrypt the payload with counter values 1, 2, 3, … 3. Use AES-CTR mode to encrypt the MIC with co unter value 0 (First key stream (S0) fr[...]

  • Page 105

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 105 2. Register another crypto context for AES-CT R encryption (cipher cont ext). A crypto context ID (B) will also be obtained in this operatio n. This crypto context i[...]

  • Page 106

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 106 Docume nt Numb e r: 252539 , Revision: 007 AES-CBC operation into the packet , between header and payload. The payload needs to be moved in order to hold MIC in the packet . An efficient method of do ing t[...]

  • Page 107

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 107 • *pSrcMbuf — a pointer to IX_MBUF , which contains data to be processed. This IX_M BUF structure is allocated by client. Result of this request will be stored i[...]

  • Page 108

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 108 Docume nt Numb e r: 252539 , Revision: 007 These acceleration components provide th e following services to IxCryptoAcc: • ARC4 (Alleged RC4) encryption / decryption • WEP ICV generation and verificati[...]

  • Page 109

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 109 1. The proper NPE microcode images must have been downloaded to th e NPE and initialized. Additionally , t he IxCryptoAcc API must b e properly confi gured, initiali[...]

  • Page 110

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 110 Docume nt Numb e r: 252539 , Revision: 007 4. The NPE will read the descriptor on the Cryp to Request Queue and pe rforms the encryption/ decryption/authentication operatio ns, as defined in the CCD for th[...]

  • Page 111

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 111 The ixCryptoAccAuthCryptPerform( ) functionality descri bed in “IPSec Services” on page 96 offers capabilities to perform en crypt /decrypt AND auth entication c[...]

  • Page 112

    Intel ® IXP400 Software Access-Layer Co mponent s: Secur ity (IxCryptoAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 112 Docume nt Numb e r: 252539 , Revision: 007 SSL client applications can make use of the ARC4 pr o cessi ng featur es by regis tering an encryption-only or decryption-o nly crypto cont ext and the IxCryptoAc[...]

  • Page 113

    Intel ® IXP400 Software Access-Layer Co mponent s: Security (Ix CryptoAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 113 The hardware accelerator component provides an interface for performing a single pass CCMP- MIC computation and verification with CTR mode encryption /decryption. No[...]

  • Page 114

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 114 Docume nt Numb e r: 252539 , Revision: 007[...]

  • Page 115

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 115 Access-Layer Components: DMA Access Driver (IxDmaAcc) API 8 This chapter describes the In tel ® IXP400 Software v2.0’ s “DMA Access Driver” access-layer component. 8.1 What’ s New There are no changes or enhance[...]

  • Page 116

    Intel ® IXP400 Software Access-Layer Co mponent s: DMA Access Driver (IxDmaAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 116 Docume nt Numb e r: 252539 , Revision: 007 • IxDmaAcc has no knowledge on the devices that involve in the DMA transfer . The client is responsible for ensuring the devices are ini tialized and confi[...]

  • Page 117

    Intel ® IXP400 Software Access-Layer Compo nent s: DMA Acce ss Driver (IxDma Acc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 117 Note: IxDmaAcc components are in white. Figure 44 shows the dependency between IxDmaAcc co mponent and other ex ternal components (in grey). IxDmaAcc depends [...]

  • Page 118

    Intel ® IXP400 Software Access-Layer Co mponent s: DMA Access Driver (IxDmaAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 118 Docume nt Numb e r: 252539 , Revision: 007 The ixDmaAcc component co nsists of three APIs: • PUBLIC IX_ST A TUS ixDmaAccInit (IxNpeDlNpeId npeId) This function initializes the DMA Access component i[...]

  • Page 119

    Intel ® IXP400 Software Access-Layer Compo nent s: DMA Acce ss Driver (IxDma Acc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 119 8.7.1 Source Address Source address is a valid IXP4XX product line an d IXC1 100 cont rol plane processo rs mem ory map address that points to the first word [...]

  • Page 120

    Intel ® IXP400 Software Access-Layer Co mponent s: DMA Access Driver (IxDmaAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 120 Docume nt Numb e r: 252539 , Revision: 007 8.7.5 Addressing Modes Addressing mode describes the types of source and destination addresses to be accessed. T wo addressing modes are supported: • Incre[...]

  • Page 121

    Intel ® IXP400 Software Access-Layer Compo nent s: DMA Acce ss Driver (IxDma Acc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 121 8.7.7 Supported Modes This section summarizes the transfer modes su pported by the IxDmaAcc. Some of the supported modes have restrictions. F or details on re[...]

  • Page 122

    Intel ® IXP400 Software Access-Layer Co mponent s: DMA Access Driver (IxDmaAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 122 Docume nt Numb e r: 252539 , Revision: 007 T able 15. DMA Modes Supported for Addressing Mo de of Increment al Source Ad dress and Fixed Destination Address Increment Source Address Increment Destinat[...]

  • Page 123

    Intel ® IXP400 Software Access-Layer Compo nent s: DMA Acce ss Driver (IxDma Acc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 123 8.8 Dat a Flow The purpose of the DMA access layer is to transfer DMA configuration inform ation from its clients to the NPEs. It is a control component where[...]

  • Page 124

    Intel ® IXP400 Software Access-Layer Co mponent s: DMA Access Driver (IxDmaAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 124 Docume nt Numb e r: 252539 , Revision: 007 Upon completion of the DMA transfer , the NPE writes a message to the AQM-done queue. The AQM dispatcher then calls the ixDmaAcc callback and the access laye[...]

  • Page 125

    Intel ® IXP400 Software Access-Layer Compo nent s: DMA Acce ss Driver (IxDma Acc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 125 1. Client calls ixDmaAccInit to initialize the IxDm aAcc component with an NPE ID as a parameter . The NPE ID indicates which NPE is been used to provide the [...]

  • Page 126

    Intel ® IXP400 Software Access-Layer Co mponent s: DMA Access Driver (IxDmaAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 126 Docume nt Numb e r: 252539 , Revision: 007 0. Client needs to initialize and configure the hardware for the DM A transfer to ensure that the devices are set up properly and ready for DMA transfer . 1.[...]

  • Page 127

    Intel ® IXP400 Software Access-Layer Compo nent s: DMA Acce ss Driver (IxDma Acc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 127 8. The descriptor pool needs to be guarded by mutual exclus ion because there are two contexts that access the pool descri ptor buf fer (see S tep 3 ). 9. IxD[...]

  • Page 128

    Intel ® IXP400 Software Access-Layer Co mponent s: DMA Access Driver (IxDmaAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 128 Docume nt Numb e r: 252539 , Revision: 007 • Burst mode is not supported for DM A targets at AHB South Bus. This is due to hard ware restriction. Therefore, all DM A transactions originated or desig[...]

  • Page 129

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 129 Access-Layer Components: Ethernet Access (IxEthAcc) API 9 This chapter describes the In tel ® IXP400 Software v2.0’ s “Ethernet Access API” access-layer component. 9.1 What’ s New The following changes and enhan[...]

  • Page 130

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 130 Docume nt Numb e r: 252539 , Revision: 007 The data path for each of these devices is acce ssible via dedicated NPEs. One Ethernet MAC is provided on each NPE. The NP Es are connected to the Nort h AH[...]

  • Page 131

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 131 9.3.2 Queue Manage r The AHB Queue Manager i s a hardware block that communicates buffer pointers between the NPE cores and the Intel XScale core. The IxQMgr API[...]

  • Page 132

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 132 Docume nt Numb e r: 252539 , Revision: 007 9.4 Ethernet Access Layers: Component Features The Ethernet access component features may be divided into three areas: • Data Path — Responsible for the [...]

  • Page 133

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 133 9.5 Dat a Plane The data plane is responsibl e for the transmission and r eception of Ethernet frames. Figure 48. Ethernet Ac cess Layers Block Diag ram MA C Fi [...]

  • Page 134

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 134 Docume nt Numb e r: 252539 , Revision: 007 9.5.1 Port Initialization Prior to any oper ati o n being performed on a port, the appropr iat e mi cro code must be downloa ded to the NPE using the IxNpeDl[...]

  • Page 135

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 135 3. Register a callback function for the port. This function will be called when the transmission buffer is placed in the TxDone queue. 4. After configuring the p[...]

  • Page 136

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 136 Docume nt Numb e r: 252539 , Revision: 007 There are two scheduling disciplines selectable via the IxEthAccTxSchedulerDiscipline (). The frame submit behavior will be diff erent for each case. A vaila[...]

  • Page 137

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 137 Tx FIFO No Priority If the selected discipline is FIFO _NO_PRIORITY , then all frames may be directly submitted to the IxQMgr queue for that port if there is roo[...]

  • Page 138

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 138 Docume nt Numb e r: 252539 , Revision: 007 9.5.3.1 Receive Flow 1. Proper NPE images must be downlo aded to the NPEs and initialized. 2. The receiving port must be initialized. 3. Register a callback [...]

  • Page 139

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 139 9.5.3.2 Receive Buffer Management and Priority The key interface from the NPEs to the receive da ta path (IxEthAcc) is a selection of queues residing in the queu[...]

  • Page 140

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 140 Docume nt Numb e r: 252539 , Revision: 007 C ode le t or c lie nt a pplic a t ion Ix E t hA c c Ix QM gr 1. In it ia lizat io n s , Ca llb a ck Regi s tr ation ... 2. PortR x F r eeRepleni s h (Port 0[...]

  • Page 141

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 141 This is configured using the ixEthAccR xSchedulingDiscipl ineSet() function. Rx FIFO Priority (QoS Mode) IxEthAcc can support the ability to prioritize frames ba[...]

  • Page 142

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 142 Docume nt Numb e r: 252539 , Revision: 007 9.5.3.3 Additional Recei ve Path Information No Receive Polling An Rx polling interface is not provided for the serv ice. This can easily be extended via que[...]

  • Page 143

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 143 IPv4 Payload Detection For every received frame delivered to the Intel XScale core, the NPE microcode reports whether the payload of the frame is an IPv4 packet [...]

  • Page 144

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 144 Docume nt Numb e r: 252539 , Revision: 007 The relationship between IxEt hAcc, IxEthDB, and IxEthMii is shown in Fig ure 53 . The control path component rem a ini ng fo r IxEthAcc is the provision of [...]

  • Page 145

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 145 9.6.1 Ethernet MAC Control The role and responsib ility of this module i s to enable clients to configure the Et hernet coprocessor MACs for both NPEs. This API [...]

  • Page 146

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 146 Docume nt Numb e r: 252539 , Revision: 007 This feature is available on a per-port basis and should be set before a port is enabled. 9.6.1.5 MAC Filtering The MAC subcomponent within the Ethernet NPEs[...]

  • Page 147

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 147 9.6.1.7 NPE Loopback T wo functions are provided that enable or disabl e NPE-level Ethernet loop back fo r the NPE ports. This is useful for troubleshooting the [...]

  • Page 148

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 148 Docume nt Numb e r: 252539 , Revision: 007 IX_OSAL_MBUFs The buffer descriptor format supported is the IX_OSAL_MBUF , which is defined in Chapter 3 . The Ethernet NPE firmware expects that all such st[...]

  • Page 149

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 149 T able 19. IX_OSAL_MBUF Header Definition s for the Ethernet Subsystem ( Sheet 1 of 3) Field Description Queue Eth Rx Free Eth Rx Eth Tx Eth Tx Done ixp_ne_next [...]

  • Page 150

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 150 Docume nt Numb e r: 252539 , Revision: 007 ixp_ne_flags.new_src New source address flag. A value of 0 ind icates that a matching entry for the frame's source MAC ad dress exists in the filtering [...]

  • Page 151

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 151 ixp_ne_flags.vlan_en T ransmit path VLAN functionality enabl e flag. A value of 0 indicates that all transmit path VLAN se rvices, including VLAN ID-based filter[...]

  • Page 152

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 152 Docume nt Numb e r: 252539 , Revision: 007 9.9 Management Information The IxEthAcc component provides MI B II EtherObj statistics for each interface. The statistics are collected from Ethernet compone[...]

  • Page 153

    Intel ® IXP400 Software Access-Layer Compo nent s: Ethernet Acc ess (IxEthAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 153 • IxEthAccMibIIStatsGet() — Returns th e statistics maintained for a port • IxEthAccMibIIStatsGetClear() — Returns and clears the statistics maintained f[...]

  • Page 154

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet Access (IxEthAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 154 Docume nt Numb e r: 252539 , Revision: 007 T able 24. Managed Object s for Ethe rnet T ransmit Object Increment Criteria dot3S tat sSingleCollisionFrames RFC-2665 definition dot3S tatsMultipleCollisio[...]

  • Page 155

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 155 Access-Layer Components: Ethernet Database (IxEthDB) API 10 This chapter describes the In tel ® IXP400 Software v2.0 “Eth ernet Database API” access-layer component. 10.1 Overview T o minimize the unnecessary forwar[...]

  • Page 156

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 156 Docume nt Numb e r: 252539 , Revision: 007 • 802.1p QoS • 802.3 / 802 .1 1 frame conversion • Spanning T ree Protocol port settings IxEthDB also has several more generalized features that relat[...]

  • Page 157

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 157 Filtering can also be done according to some char acteristics of a frame recei ved on a port, such as frames exceeding a maximum frame size or frames th at do n[...]

  • Page 158

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 158 Docume nt Numb e r: 252539 , Revision: 007 — Port 0 searches for the destination address ( 00:00:00:00:0 0:0 1) in its learning tree, it is found therefore Port 0 knows t hat both Node 1 and N ode [...]

  • Page 159

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 159 Wa r n i n g : The id value assigned to NPE ports in IxEthDbPortD efs.h may not be the same as the value used to identify ports i n the IXP_BUF fields wr itten [...]

  • Page 160

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 160 Docume nt Numb e r: 252539 , Revision: 007 address entries and can expire ol der entries as appropriate. This is tied into the database maintenance functionali ty , further documented in “Database [...]

  • Page 161

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 161 FCS, for example) that causes the frame to ex ceed the maximum frame si ze, the frame will not be transmitted. The TxLargeFramesDiscar d counter will be increme[...]

  • Page 162

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 162 Docume nt Numb e r: 252539 , Revision: 007 • allow / white list state – only incoming packet s with a source MAC addresses found in the firewall list are al lowed • deny / black list state – [...]

  • Page 163

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 163 10.3.4.1 B ackground – VLAN Da ta in Ethernet Frames According to IEEE802.3, an untagged or norm al Ethernet frame has the fields listed in Ta b l e 2 5 . The[...]

  • Page 164

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 164 Docume nt Numb e r: 252539 , Revision: 007 The VLAN tagged Ethernet frame format, as specified in IEEE802.3, is as listed in T abl e 26 . A received frame is considered to be VLAN-tagged if the two b[...]

  • Page 165

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 165 ACCEP T_ALL_FRAMES or VLAN_T AGGED_FRAMES. Failure to do so will fi lter all VLAN traffic except those frames tagged with VLAN ID 0. The acceptable frame type f[...]

  • Page 166

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 166 Docume nt Numb e r: 252539 , Revision: 007 For example, Port 1 is configured with a PVID set to 12 and VLAN membersh ip group of {1, 2, 10, 12, 20 to 40, 100, 102, 3000 to 3010}. If VLAN membership f[...]

  • Page 167

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 167 • The frame IX_OSAL_ MBUF header can contain override information (flags – see above) explicitly statin g whether the frame is to be tagged or not. • T ag[...]

  • Page 168

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 168 Docume nt Numb e r: 252539 , Revision: 007 An overview of the Eg ress tagging process is shown in Figure 55 . The figure shows the decision tree for an untagged frame. The proce ss is identical for a[...]

  • Page 169

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 169 10.3.4.7 P ort ID Extraction A device connected to an MII interface can be a single one-port Ethern et PHY or a multi-port device (such as a switch). Some popul[...]

  • Page 170

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 170 Docume nt Numb e r: 252539 , Revision: 007 10.3.5.2 R eceive Priority Queuing Incoming frames will be classified into an internal traffic class, either by mapping the 802.1Q priority field (if availa[...]

  • Page 171

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 171 T raf fic class for untagged frames (unexpedited traf fic) is automatically selected from the default traffic class associated with the port. The default port t[...]

  • Page 172

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 172 Docume nt Numb e r: 252539 , Revision: 007 At initialization, a default t raffic class mapping is provided, as shown T able 29 . These values apply to NPE images that include four default traf fic cl[...]

  • Page 173

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 173 Abbreviations: • FC - Frame Control • DID - Duration / ID • SC - Sequence Control The usage of the 802.1 1 frame format depends heavily on the source and [...]

  • Page 174

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 174 Docume nt Numb e r: 252539 , Revision: 007 In 802.3 frames, there is a 2-byte Length/T ype field, the interpretation of whic h depend s on whether its value is smaller than 0x0600. When the value of [...]

  • Page 175

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 175 It is important to no te that the IX_OSAL_MBUF s extracted from the EthR xFree queue by the NPE may be used to del iver both IEEE802.3 and IEEE8 02.1 1 frames t[...]

  • Page 176

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 176 Docume nt Numb e r: 252539 , Revision: 007 state so that the converted frame is treated as an untagged fo r the purpose of VLAN egress tagging. T o simplify its processing, the NPE Eth ernet firmware[...]

  • Page 177

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 177 10.3.7 Sp anning T ree Protocol Port Settings The IxEthDB component pr ovides an interface that can conf igure each NPE port to act in a “Spanning Tree Port B[...]

  • Page 178

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 178 Docume nt Numb e r: 252539 , Revision: 007 10.4.3 Feature Set IxEthDB is structured in a feature set, which can be enabled, disabled and configured at run time. Since IxEthDB provides support for NPE[...]

  • Page 179

    Intel ® IXP400 Software Access-Layer Compon ent s: Ethernet Data base (IxEthDB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 179 done using ixEthDBUserFieldG et(). Note that neit her IxEthDB, n or the NPE microcode, ever uses the user-defined field for any in ternal operation and it is no[...]

  • Page 180

    Intel ® IXP400 Software Access-Layer Co mponent s: Et hernet Dat abase (IxEthDB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 180 Docume nt Numb e r: 252539 , Revision: 007 T ransmit T raffic For transmission services, the NPE calculates a valid FCS as its final step prior to transmitting the frame to the P HY . FCS appendi ng [...]

  • Page 181

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 181 Access-Layer Components: Ethernet PHY (IxEthMii) API 11 This chapter describes the In tel ® IXP400 Software v2.0’ s “Ethernet PHY API” access-layer component. 1 1.1 What’ s New The following changes or enhancem [...]

  • Page 182

    Intel ® IXP400 Software Access-Layer Co mponent s: Ethe rnet PHY (IxEthMii) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 182 Docume nt Numb e r: 252539 , Revision: 007 ixp400_xscale_sw/src/ethMii/IxEthMii_p.h 1 1.5 Dependencies IxEthMii is used by the EthAcc codelet and is dependant upon the IxEthAcc access-layer component and [...]

  • Page 183

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 183 Access-Layer Components: Feature Control (IxFeatureCtrl) API 12 This chapter describes the In tel ® IXP400 Software v2.0’ s “Feat ure Control API” access-layer component. IxFeatureCtrl is a component that de tects[...]

  • Page 184

    Intel ® IXP400 Software Access-Layer Co mponent s: Feature Control (IxFea tureCtrl) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 184 Docume nt Numb e r: 252539 , Revision: 007 stepping. For th e IXP42X product lin e, this register is used to determine t he maximum core clock speed. Note: CP15, Register 0 is read-only . • EXP_[...]

  • Page 185

    Intel ® IXP400 Software Access-Layer Component s: Feature Control (IxFeatureCtrl) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 185 12.3.2 Using the Feature Control Register Functions The ixFeatureCtrlHwCapabilityRead( ) function utilizes the EXP_UNIT_FUSE_R ESET register for detecting hos[...]

  • Page 186

    Intel ® IXP400 Software Access-Layer Co mponent s: Feature Control (IxFea tureCtrl) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 186 Docume nt Numb e r: 252539 , Revision: 007 12.4 Component Check by Other APIs The ixFeatureCtrlCompone ntCheck( ) function checks for the ava ilability of th e specified hardware component. The ot[...]

  • Page 187

    Intel ® IXP400 Software Access-Layer Component s: Feature Control (IxFeatureCtrl) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 187 processors, and all versions of the IXP46 X product line will use the standard ixQMgrDispatcherLoopRunB0 dispat cher . T o indication that the ixQMgrDispatche[...]

  • Page 188

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 188 Docume nt Numb e r: 252539 , Revision: 007[...]

  • Page 189

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 189 Access-Layer Components: HSS-Access (IxHssAcc) API 13 This chapter describes the In tel ® IXP400 Software v2.0’ s “H SS-Access API” access-layer component. 13.1 What’ s New There are no changes or enhancements t[...]

  • Page 190

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 190 Docume nt Numb e r: 252539 , Revision: 007 Features The HSS access component is used by a client ap plication to configure both the HSS and HDLC coprocessors and to obtain services from the coprocessors. It[...]

  • Page 191

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 191 IxHssAcc presents two “services” to the client application. The Channelized Service presents the client with raw serial data streams retrieved from the HSS port, [...]

  • Page 192

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 192 Docume nt Numb e r: 252539 , Revision: 007 13.3.3 HSS and HDLC Theory an d Coprocessor Operation The HSS coprocessor enables the processor to communicate externally , in a serial-bit fashion, using TDM data[...]

  • Page 193

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 193 The HSS coprocessor communicates with an external de vice using three signals per directi on: a frame pulse, clock, and data bit. The data stream consists of frames ?[...]

  • Page 194

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 194 Docume nt Numb e r: 252539 , Revision: 007 Note: PPM frame length error is calcula ted from ideal frame frequency . Figure 60 illustrates a typical T1 frame with active-hi gh frame sync (level) an d a posed[...]

  • Page 195

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 195 The time slots within a stream can be configur ed as packetized (raw or HDLC, 64 Kbps, and 56 Kbps), channelized voice64K, or channelized voice56K or le ft unassigned[...]

  • Page 196

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 196 Docume nt Numb e r: 252539 , Revision: 007 7. Finally , when the HSS comp onen t is no longer needed, ixHssAccPktPortDisable() an d/or ixHssAccPktPortDisconnect() — or ixHssAccChanDisconnect() and/or ixHs[...]

  • Page 197

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 197 • Packetized (HDLC) service is coupled with the HSS port. Packets transmitted using the packetized service access interface will be sent through the HDLC coprocesso[...]

  • Page 198

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 198 Docume nt Numb e r: 252539 , Revision: 007 • IxHssAccTdmSlotUsage *tdmMap — A pointer to an array defin ing the HSS time-slot assignment types. • IxHssAccLastErrorCallback lastHs sErrorCallback — Cl[...]

  • Page 199

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 199 IxHssAccTdmSlotUsage is an array that take the following values to assi gn service types to each time slot in a HSS frame: IxHssAccTdmSlotUsage has a size equal to th[...]

  • Page 200

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 200 Docume nt Numb e r: 252539 , Revision: 007 • UINT8 *rxCircular — A pointer to the Rx data pool allocated by the client as described in previous section. It poin ts to a set of circular buffers to be fil[...]

  • Page 201

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 201 1. The client issues a channeli zed connect request to IxHssAcc. 2. If an rxCallback is conf igured, the client expects to be tri ggered by events to drive the Tx and[...]

  • Page 202

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 202 Docume nt Numb e r: 252539 , Revision: 007 13.5.2.1 CallBack If the pointer to the rxCallback () is not NULL when ixHssAccChanConnect () is called, an ISR will call rxCallback () to handle Tx/Rx data. It is[...]

  • Page 203

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 203 1. After reading a configurable amount of data from the HSS port and writing th e same amount of data to the HSSport, the NP E writes to the hssSync queue. There are [...]

  • Page 204

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 204 Docume nt Numb e r: 252539 , Revision: 007 13.5.3 Channelized Disconnect When the channelized service is not need ed any more on a particular HSS port, ixHssAccChanPortDisable() is called to stop the channe[...]

  • Page 205

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 205 • unsigned blockSizeInW ords — The max tx/rx block size. • UINT32 rawIdleBlockPattern — Tx idle pattern in raw mode. • IxHssAccHdlcFraming hdlcTxFramin g ?[...]

  • Page 206

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 206 Docume nt Numb e r: 252539 , Revision: 007 1. The client issues a packet service connect request to IxHssAcc. 2. IxHssAcc instructs IxQMgr to configure th e necessary queues and register callbacks . 3. IxHs[...]

  • Page 207

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 207 When the transmission is don e, the TxDone call back fu nction, registered with ixHssAccPktPortConnect (), is called, and the buffer can be returned to IXP_BUF pool u[...]

  • Page 208

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 208 Docume nt Numb e r: 252539 , Revision: 007 1. The client presents an IXP_BU F to IxHssAcc for transmissi on. 2. IxHssAcc gets a transmit descriptor from its transmit descriptor pool, fills in the descriptor[...]

  • Page 209

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 209 Here is an example: Usually , an Rx thread is created to handle the HS S packetized service, namely , to handle all the callback functions registered with ixHssAccPkt[...]

  • Page 210

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 210 Docume nt Numb e r: 252539 , Revision: 007 Alternatively , the client can use its own timer for suppling IXP_BUFs to the queue. This is the case if the pointer for rxFr eeLowC allback () passed to ixHssAccP[...]

  • Page 211

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 211 13.6.4 Packetized Disconnect When packetized service channe l is not needed any more, the function ixHssAccPktPortDisable() is called to stop the packetized service o[...]

  • Page 212

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 212 Docume nt Numb e r: 252539 , Revision: 007 An IXP_BUF pool should be created for p acketized service by calling function IX_OSAL_MBUF_POOL_INIT () of the IxOsBuffMgt API with the IXP_BUF size and number of [...]

  • Page 213

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 213 For Tx, buffers are allocated fr om the IXP_BUF pool by calling IX_OSAL_MB UF_POOL_G ET (). Data for transmitting can be put int o the IX P_BUF by using IX_OSAL_MBUF [...]

  • Page 214

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 214 Docume nt Numb e r: 252539 , Revision: 007 13.7.2 Dat a Flow in Channelized Service Data in the time slots config ured as V oice64K /V oice56K types wi ll be provided to the cl ient via the IxHssAcc channel[...]

  • Page 215

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 215 All the buffers have the same length. When the channelized service is initialized by ixHssAccChanConnect (), the pointer to the pool, t he length of the circular buff[...]

  • Page 216

    Intel ® IXP400 Software Access-Layer Co mponent s: HSS-Ac cess (IxHssAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 216 Docume nt Numb e r: 252539 , Revision: 007 For transmission, ixOsServCacheDmaMalloc () is used to allocated two pools: a data buffer pool and a pointer list pool. The data buffer pool has N buf fers — one[...]

  • Page 217

    Intel ® IXP400 Software Access-Layer Comp onen t s: HSS-Access (IxHssAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 217 Figure 70. HSS Channelized T ransmit Operation ... Chann el : F0- TSa F0- TSb F0- TSc ... F0- TSz Frame 0 01 2 N F1- TSa F1- TSb F1- TSc ... F1- TSz Fr ame 1 01 2 N .[...]

  • Page 218

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 218 Docume nt Numb e r: 252539 , Revision: 007[...]

  • Page 219

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 219 Access-Layer Components: NPE-Downloader (IxNpeDl) API 14 This chapter describes the In tel ® IXP400 Software v2.0’ s “NPE-D own loader API” access-layer component. 14.1 What’ s New The following changes and enha[...]

  • Page 220

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE-Download er (IxNpe Dl) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 220 Docume nt Numb e r: 252539 , Revision: 007 The “Microcode from File” feature is only avai lable for Linux. All other supported operating systems use obtain th e NPE microc ode from the compiled obje[...]

  • Page 221

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE-Downloa der ( IxNpeDl) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 221 T able 42. NPE-A Images Image Name Description IX_NPEDL_NPEIMAGE_NPEA_HSS0 NPE Image ID for NPE-A with HSS-0 Only feature. It supports 32 channelized and 4 packet[...]

  • Page 222

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE-Download er (IxNpe Dl) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 222 Docume nt Numb e r: 252539 , Revision: 007 T able 43. NPE-B Images Image Name Description IX_NPEDL_NPEIMAGE_NPEB_DMA NPE Image ID for NPE-B with DMA-Only feature. IX_NPEDL_NPEIMAGE_NPEB_ETH NPE Image ID[...]

  • Page 223

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE-Downloa der ( IxNpeDl) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 223 14.5 Custom Usage Example Using a custom image is the second option for starting an NPE. This feature is only useful to those parties that have NPE microcode deve[...]

  • Page 224

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE-Download er (IxNpe Dl) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 224 Docume nt Numb e r: 252539 , Revision: 007 The IxNpeDl should be uninitial ized prior to unloading an application module or dri ver . (This will unmap all memory that has been mapped by IxN peDl.) If po[...]

  • Page 225

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 225 Access-Layer Components: NPE Message Handler (IxNpeMh) API 15 This chapter describes the In tel ® IXP400 Software v2.0’ s “NPE Message Handler API” access- layer component. 15.1 What’ s New There are no changes [...]

  • Page 226

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE Mes sage Handler (IxNpeMh ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 226 Docume nt Numb e r: 252539 , Revision: 007 The solicited callback list contains the list of callbacks corresponding to solicited messages not yet received from the NPE. The solicited messages for a[...]

  • Page 227

    Intel ® IXP400 Software Access-Layer Compo nent s: NPE Message Ha ndler (IxNpeMh) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 227 15.4 Uninitializing IxNpeMh The IxNpeMh should be unin itialized prior to unl oading a kernel modu le (this will un map all memory that has been mapped by IxN[...]

  • Page 228

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE Mes sage Handler (IxNpeMh ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 228 Docume nt Numb e r: 252539 , Revision: 007 15.5.2 Sending an NPE Messag e with Response In this case, the client’ s message requires a re sponse from the NPE. Th e scenario (as shown in Figure 72[...]

  • Page 229

    Intel ® IXP400 Software Access-Layer Compo nent s: NPE Message Ha ndler (IxNpeMh) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 229 7. Because this is a solicited message, the fi rst ID-matching callback is removed from the solicited callback list and invoked to pass the message back to th[...]

  • Page 230

    Intel ® IXP400 Software Access-Layer Co mponent s: NPE Mes sage Handler (IxNpeMh ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 230 Docume nt Numb e r: 252539 , Revision: 007 5. Since this is an unsolicited message, the IxNpeMh component inv okes the correspo ndin g unsolicited callback to pass the message back to the client. T[...]

  • Page 231

    Intel ® IXP400 Software Access-Layer Compo nent s: NPE Message Ha ndler (IxNpeMh) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 231 15.7 Dependencies The IxNpeMh component ’ s depend encies (as shown in Figure 74 ) are: • Client software components must use the IxNpeMh compo nent for m[...]

  • Page 232

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 232 Docume nt Numb e r: 252539 , Revision: 007[...]

  • Page 233

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 233 Access-Layer Components: Parity Error Notifier (IxParityENAcc) API 16 This chapter describes Intel ® IXP400 Softw are v2.0’ s “Parity Error Notifier (IxParityENAcc) API” access-layer component. 16.1 What’ s New [...]

  • Page 234

    Intel ® IXP400 Software Access-Layer Co mponent s: Pa rity Er ror Notifier ( IxParityENAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 234 Docume nt Numb e r: 252539 , Revision: 007 For the purposes of this document, the following terms will be used as defined below . Error Correction Logic/Error Correction Code The Error Co [...]

  • Page 235

    Intel ® IXP400 Software Access-Layer Component s: Parity Error Notifier (IxParityENAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 235 16.2.2.2 S witching Copr ocessor in NPE B (SWCP) The Switching Coprocessor generates 8-bit parity – 1 bit per each byte of the 64 bit (8-byte) entries[...]

  • Page 236

    Intel ® IXP400 Software Access-Layer Co mponent s: Pa rity Er ror Notifier ( IxParityENAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 236 Docume nt Numb e r: 252539 , Revision: 007 16.2.2.7 S econdary Effects of Parity Interrupt s If the Intel XScale core detects an error on th e AHB bus or on its private DDR memory interfac[...]

  • Page 237

    Intel ® IXP400 Software Access-Layer Component s: Parity Error Notifier (IxParityENAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 237 16.3 IxParityENAcc API Det ails 16.3.1 Features The parity error access component provides the following features: • Interface to the client applicati[...]

  • Page 238

    Intel ® IXP400 Software Access-Layer Co mponent s: Pa rity Er ror Notifier ( IxParityENAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 238 Docume nt Numb e r: 252539 , Revision: 007 IxParityENAcc depends on various hardware regist ers to fetch the parity error information upo n receiving an interrupt due to parity error . It [...]

  • Page 239

    Intel ® IXP400 Software Access-Layer Component s: Parity Error Notifier (IxParityENAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 239 • Parity Error Recovery • Parity Error Prevention This section summarizes the high-level activities inv olved with these high-level tasks, and th en[...]

  • Page 240

    Intel ® IXP400 Software Access-Layer Co mponent s: Pa rity Er ror Notifier ( IxParityENAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 240 Docume nt Numb e r: 252539 , Revision: 007 3. When a parity error occurs, the interrupt w ill fire and invoke the ISR of the IxParityENAcc component. 4. IxParityENAcc, in turn, invokes the[...]

  • Page 241

    Intel ® IXP400 Software Access-Layer Component s: Parity Error Notifier (IxParityENAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 241 16.4.2 Summary Parity Error Recovery Scenario IxParityENAcc does no t perform pa rity error recovery tasks. This should be done by the client applicatio[...]

  • Page 242

    Intel ® IXP400 Software Access-Layer Co mponent s: Pa rity Er ror Notifier ( IxParityENAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 242 Docume nt Numb e r: 252539 , Revision: 007 For multi-bi t parity error s, no error correction is po ssible and the Intel XScale core will be notified. The client application should handl e[...]

  • Page 243

    Intel ® IXP400 Software Access-Layer Component s: Parity Error Notifier (IxParityENAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 243 It is important to note that if an inte rrupt con diti on is not cleared then it wi ll result in the parity interrupt being triggered again. Figure 77 ?[...]

  • Page 244

    Intel ® IXP400 Software Access-Layer Co mponent s: Pa rity Er ror Notifier ( IxParityENAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 244 Docume nt Numb e r: 252539 , Revision: 007 In order to avoid a race condition between the da ta abort handler and th e parity er ror callback, delay has been introduced in the MCU parity e[...]

  • Page 245

    Intel ® IXP400 Software Access-Layer Component s: Parity Error Notifier (IxParityENAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 245 This scenario shown in Figure 83 can occur because the order in wh ich the interrupts are triggered for a parity error and a related data abort are not [...]

  • Page 246

    Intel ® IXP400 Software Access-Layer Co mponent s: Pa rity Er ror Notifier ( IxParityENAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 246 Docume nt Numb e r: 252539 , Revision: 007 Figure 83. Dat a Abort with both Related and Unrelated Parity Error s B4379 -01 Data Ab or t IxPar ityENAcc Cli ent Call back IxP a r ityE N A cc[...]

  • Page 247

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 247 Access-Layer Components: Performance Profiling (IxPerfProfAcc) API 17 This chapter describes the In tel ® IXP400 Software v2.0’ s “Per formance Profiling API” access- layer component. 17.1 What’ s New There are [...]

  • Page 248

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 248 Docume nt Numb e r: 252539 , Revision: 007 17.3 Intel XScale ® Core PMU The purpose of the Intel XScale core PMU is to en able performance measurement and to allow the client to identify [...]

  • Page 249

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 249 Event-based sampling will allow the cli en t to id entify the “ho t spots” of the program for further optimization. In this method, the samplin g r[...]

  • Page 250

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 250 Docume nt Numb e r: 252539 , Revision: 007 • SDRAM controller usage — Usage monitored in al l eight pages of the SDRAM, i.e., the pages used and how often they are used. This also incl[...]

  • Page 251

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 251 The client will call IxPerfProfA cc to access specific performance st atistics of the Intel XScale core’ s PMU and internal bus PMU. IxPerfProfAcc de[...]

  • Page 252

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 252 Docume nt Numb e r: 252539 , Revision: 007 17.9 Threading The Xcycle component spawns a ne w task to work in the background. This task is spawned with the lowest priority . This is to avoi[...]

  • Page 253

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 253 17.10.1 API Usage for Intel XScale ® Core PMU The Intel XScale core’ s PMU utili ty provides three different capab ilities, namely , event/clock cou[...]

  • Page 254

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 254 Docume nt Numb e r: 252539 , Revision: 007 The number of events that can be monitored simultaneously range from zero to four at a tim e. When the number o f event to monitor is set to 0, o[...]

  • Page 255

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 255 If the user has declared a variable IxPerfProfAccXscalePmuResults eventCountStopResults , the user may then print out the result for all the counters a[...]

  • Page 256

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 256 Docume nt Numb e r: 252539 , Revision: 007 2. T o end the time sampling, call the stop function, with param e ters: This function can only be called once ixPerfProfAccXscalePmuT imeSampS t[...]

  • Page 257

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 257 iii. Print out the first five elements: These profile results show the places in the us er ’ s code that are most frequently being executed and that [...]

  • Page 258

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 258 Docume nt Numb e r: 252539 , Revision: 007 The steps needed to run this utility are: 1. T o begin the event sampling , call the start function with param eters: This function starts the ev[...]

  • Page 259

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 259 As this file system is temporary , the user is required t o copy the o utput file into a permanent location or else the results will be lost when a new[...]

  • Page 260

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 260 Docume nt Numb e r: 252539 , Revision: 007 17.10.1.4 Using Intel XScale ® Core PMU to Determ ine Cache Efficiency In this example, the user would like to monitor the instruction cache eff[...]

  • Page 261

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 261 17.10.2 Internal Bus PMU The Internal Bus PMU utility enables performance monitori ng of components access ing or utilizing the north and south bus, pr[...]

  • Page 262

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 262 Docume nt Numb e r: 252539 , Revision: 007 For example: — If the user has declared a variable “IxP erfProfAccBusPmuResults busPmuResults,” the user may then prin t out the value of a[...]

  • Page 263

    Intel ® IXP400 Software Access-Layer Compon ent s: Performance Profiling (IxPerfProfAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 263 4. Obtain the results by calling: 5. Print the value of al l the PECs: 6. Print the total value of PECs 1-3, and PEC 7. The upper 32 bits reflect the n[...]

  • Page 264

    Intel ® IXP400 Software Access-Layer Co mponent s: Perf ormance Profiling (IxPerfPr ofAcc ) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 264 Docume nt Numb e r: 252539 , Revision: 007 This pointe r is interpr eted as “the n umber of 66-MHz clock ticks for one measurement.” It is stored within the tool while it is being run [...]

  • Page 265

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 265 Access-Layer Components: Queue Manager (IxQMgr) API 18 This chapter describes the In tel ® IXP400 Software v2.0’ s “Queue Manager API” access-layer component. 18.1 What’ s New There are no changes or enhancement[...]

  • Page 266

    Intel ® IXP400 Software Access-Layer Co mponent s: Queue Man ager (IxQMgr) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 266 Docume nt Numb e r: 252539 , Revision: 007 18.3 Features and Hardware Interface The IxQMgr provides a low-level interface for co nfiguring the AQM, which contains the physical block of static RAM where all[...]

  • Page 267

    Intel ® IXP400 Software Access-Layer Component s: Queue Manager (IxQMgr) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 267 — For queues 32-63, the notificatio n source is the assertion or de-assertion of the Nearly Empty flag and cannot be changed. • Performs queue-status query . — F[...]

  • Page 268

    Intel ® IXP400 Software Access-Layer Co mponent s: Queue Man ager (IxQMgr) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 268 Docume nt Numb e r: 252539 , Revision: 007 18.7 Configuration V alues Ta b l e 4 8 details the attributes of a queue that can be configured and the possible values that these attributes can have (word = 32[...]

  • Page 269

    Intel ® IXP400 Software Access-Layer Component s: Queue Manager (IxQMgr) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 269 may be called from a client polling mechani sm, whic h calls the dispatcher to read the queues status at regular intervals. In the first example, the dispatcher is cal[...]

  • Page 270

    Intel ® IXP400 Software Access-Layer Co mponent s: Queue Man ager (IxQMgr) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 270 Docume nt Numb e r: 252539 , Revision: 007 mechanism, although the cho ice of implementation woul d depend upon the OS, the application, and the nature of the traf fic. Th e following includes factors to b[...]

  • Page 271

    Intel ® IXP400 Software Access-Layer Component s: Queue Manager (IxQMgr) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 271 5. The ISR invokes the dispatcher . Note: In the context of an inte rrupt, the dispatcher can also be i nvoked through a timer -based mecha nism. 6. The IxQMgr reads t[...]

  • Page 272

    Intel ® IXP400 Software Access-Layer Co mponent s: Queue Man ager (IxQMgr) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 272 Docume nt Numb e r: 252539 , Revision: 007 2. When the NPE receives a packet, it update s the Rx queue with location of the buffer . 3. When the watermark is crossed the status fl ag gets updated correspon[...]

  • Page 273

    Intel ® IXP400 Software Access-Layer Component s: Queue Manager (IxQMgr) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 273 T o use livelock prevention, only one queue can be se t as type periodic. One or more queues may be set as type sporadic using the ixQMgrCallbackT yp eSe t() functi on[...]

  • Page 274

    Intel ® IXP400 Software Access-Layer Co mponent s: Queue Man ager (IxQMgr) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 274 Docume nt Numb e r: 252539 , Revision: 007 • Set the callback type for the H SS queue to periodic and th e Eth Rx queue to sporadic usi ng the ixQMgrCallbackT ypeSet() function. Note: All other queues (T[...]

  • Page 275

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 275 Access-Layer Components: Synchronous Serial Port (IxSspAcc) API 19 This chapter describes the In tel ® IXP400 Software v2.0’ s “SSP Serial Port (IxSspAcc) API” access-layer component. 19.1 What’ s New This is a [...]

  • Page 276

    Intel ® IXP400 Software Access-Layer Co mponent s: Synch ronous Serial Port (IxSspAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 276 Docume nt Numb e r: 252539 , Revision: 007 • select SPI SCLK phase – phase of SCLK starts with one inactive cycle and ends with ½ inactive cycle or SCLK starts with ½ inactive cycle and e[...]

  • Page 277

    Intel ® IXP400 Software Access-Layer Compon ent s: Synchronous Serial Port (IxSs pAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 277 19.4 IxSspAcc API Usage Models 19.4.1 Initialization and General Dat a Model This description assum es a single cl ient model wh ere there is a single ap[...]

  • Page 278

    Intel ® IXP400 Software Access-Layer Co mponent s: Synch ronous Serial Port (IxSspAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 278 Docume nt Numb e r: 252539 , Revision: 007 4. For an overrun: a. Interrup t is triggered due to an overru n of the Rx FIFO. b. Rx FIFO Overrun handl er/callback is called. c. Rx FIFO Overrun ha[...]

  • Page 279

    Intel ® IXP400 Software Access-Layer Compon ent s: Synchronous Serial Port (IxSs pAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 279 Figure 93. Inter rupt Scenario B4389 -01 Clie n t SspAcc ix S s pA cc Ini t : retur n ha rdwa re ixSsp AccI n it i n t e rru p t : Rx FI F O Hi tO rA b o[...]

  • Page 280

    Intel ® IXP400 Software Access-Layer Co mponent s: Synch ronous Serial Port (IxSspAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 280 Docume nt Numb e r: 252539 , Revision: 007 19.4.3 Polling Mode The sequence flow for a client applicat ion usi ng thi s compo nent in polling mode is described below . Refer to Figure 94 . 1. I[...]

  • Page 281

    Intel ® IXP400 Software Access-Layer Compon ent s: Synchronous Serial Port (IxSs pAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 281 Figure 94. Polling Scenario B439 0 - 01 Cl i en t SspAcc i xS s pA c c Init : r etur n i xS s pA c c Init i x S s pA c cFIFO Data Rec eiv e ix Ssp A c c [...]

  • Page 282

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 282 Docume nt Numb e r: 252539 , Revision: 007[...]

  • Page 283

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 283 Access-Layer Components: T ime Sync (IxT imeSyncAcc) API 20 This chapter describes the In tel ® IXP400 Software v2.0’ s “T ime Sy nc (IxTimeSyncAcc) API” access-layer component. The IxT imeSyncAcc access-layer com[...]

  • Page 284

    Intel ® IXP400 Software Access-Layer Co mponent s: T ime Sync (IxT imeSyncAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 284 Docume nt Numb e r: 252539 , Revision: 007 20.2.1 IEEE 1588 PTP Protocol Overview As mentioned at the beginning of this chapter , the IEEE 1588 Precision Time Protocol (P TP) is used to synchronize ind[...]

  • Page 285

    Intel ® IXP400 Software Access-Layer Component s: Time Sync (IxT imeSyncAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 285 synchronization, and in tern al processing delays . The slave element/node, after detecting the Sync or Follow_Up message, will begin the process to synchronize it[...]

  • Page 286

    Intel ® IXP400 Software Access-Layer Co mponent s: T ime Sync (IxT imeSyncAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 286 Docume nt Numb e r: 252539 , Revision: 007 Figure 96 shows the lo cation of the IEEE 1588 Hard ware Assist block an d its main interconnects to other components in th e IXP46X network processo rs. Deta[...]

  • Page 287

    Intel ® IXP400 Software Access-Layer Component s: Time Sync (IxT imeSyncAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 287 The IEEE 1588 Hardware Assist block can also be set explicitly to handle timestampin g for all messages detected on a channel, as determined by the detection of an[...]

  • Page 288

    Intel ® IXP400 Software Access-Layer Co mponent s: T ime Sync (IxT imeSyncAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 288 Docume nt Numb e r: 252539 , Revision: 007 VLAN-tagged Ethernet frames include an addi tio nal four bytes prior to the beginn ing of the original Ethernet T ype/Len gth field. The IP header immediatel [...]

  • Page 289

    Intel ® IXP400 Software Access-Layer Component s: Time Sync (IxT imeSyncAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 289 • Configure the P TP Ports (NPE channels) to operate in master or slave mode • Poll for Sent Ti mestamp of the Sync and Delay_Req messages in both master and s[...]

  • Page 290

    Intel ® IXP400 Software Access-Layer Co mponent s: T ime Sync (IxT imeSyncAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 290 Docume nt Numb e r: 252539 , Revision: 007 • Internal errors IxT imeSyncAcc returns IX _SUCCESS when errors are not observed. The cl ient application is expected to handle these errors/values appropr[...]

  • Page 291

    Intel ® IXP400 Software Access-Layer Component s: Time Sync (IxT imeSyncAcc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 291 2. Auxiliary Master T imestamp 3. Auxiliary Slave T imestamp In order to avoid repeated invocation of the Inte rrupt Service Routing for the “tar get time reache[...]

  • Page 292

    Intel ® IXP400 Software Access-Layer Co mponent s: T ime Sync (IxT imeSyncAcc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 292 Docume nt Numb e r: 252539 , Revision: 007 Figure 99. Polling for Auxiliary Snap shot V alues B4391 -01 C lie n t A p p lica t io n IEE E 1588 Hardwar e As si st IxTimeSyncAc c ixT ime Syn cA ccSyste m[...]

  • Page 293

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 293 Access-Layer Components: UAR T -Access (IxUAR T Acc) API 21 This chapter describes the In tel ® IXP400 Software v2.0’ s “UAR T -Access API” access-layer component. 21.1 What’ s New There are no changes or enhanc[...]

  • Page 294

    Intel ® IXP400 Software Access-Layer Co mponent s: UART -Access (IxUART Acc) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 294 Docume nt Numb e r: 252539 , Revision: 007 • UAR T IOCTL • Baud rate set/get • Parity • Number of stop bits • Character length 5, 6, 7, 8 • Enable/disable hardware fl ow con trol for Clear to[...]

  • Page 295

    Intel ® IXP400 Software Access-Layer Component s: UART -Access (IxUART Acc) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 295 21.5 Dependencies Figure 100. UART Services Models Standard RTOS UART Services Ix UartAcc Service Model UART Registers / FIFOs UART Registers / FIFOs OS I/O Service[...]

  • Page 296

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 296 Docume nt Numb e r: 252539 , Revision: 007[...]

  • Page 297

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 297 Access-Layer Components: USB Access (ixUSB) API 22 This chapter describes the In tel ® IXP400 Software v2.0’ s “USB Access API” access-layer component. 22.1 What’ s New There are no changes or enhancements to th[...]

  • Page 298

    Intel ® IXP400 Software Access-Layer Co mponent s: USB Acces s (ixUSB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 298 Docume nt Numb e r: 252539 , Revision: 007 Endpoint 0, by default, is used only to comm unicate control transactio ns to configure the UDC after it is reset or hooked up (physically connected to an active USB [...]

  • Page 299

    Intel ® IXP400 Software Access-Layer Compon ent s: USB Access (ixUSB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 299 Data packets follow token packets, and are used to transmit data between the host and UDC. There are two types of data packets as specified by the PID: DA T A0 and DA T A[...]

  • Page 300

    Intel ® IXP400 Software Access-Layer Co mponent s: USB Acces s (ixUSB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 300 Docume nt Numb e r: 252539 , Revision: 007 The eight possible types of bulk transactions base d on data direction, error, and stall conditions are shown in T able 54 . (Packets sent by the UDC to the host are [...]

  • Page 301

    Intel ® IXP400 Software Access-Layer Compon ent s: USB Access (ixUSB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 301 Control transfers are assembled by the host by sendi ng a control transaction to tell the UDC what type of control transfer is taking place (control read or control write[...]

  • Page 302

    Intel ® IXP400 Software Access-Layer Co mponent s: USB Acces s (ixUSB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 302 Docume nt Numb e r: 252539 , Revision: 007 22.4 ixUSB API Interfaces The ixUSB API components operate within a ca llback architecture. In itial device setup and configurati on is controlled thr ough the callba[...]

  • Page 303

    Intel ® IXP400 Software Access-Layer Compon ent s: USB Access (ixUSB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 303 • Data transfer type —S t a n d a r d —C l a s s — V en dor • Data recipient —D e v i c e — Interface — Endpoint —O t h e r • Number of bytes to trans[...]

  • Page 304

    Intel ® IXP400 Software Access-Layer Co mponent s: USB Acces s (ixUSB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 304 Docume nt Numb e r: 252539 , Revision: 007 V ia control endpoin t 0, the user must decode and respo nd to the GET_DESCRIP TOR command. Refer to the Universal Serial Bus Specifica tion Revision 1.1 fo r a full [...]

  • Page 305

    Intel ® IXP400 Software Access-Layer Compon ent s: USB Access (ixUSB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 305 22.4.1.2 Frame Synchronization The SYNCH_FRAME request is used by isochronou s end poin ts that use implicit-pattern synchronization. The i sochronous endpo ints may need[...]

  • Page 306

    Intel ® IXP400 Software Access-Layer Co mponent s: USB Acces s (ixUSB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 306 Docume nt Numb e r: 252539 , Revision: 007 The second case of a ST ALL han dshake is known as a “protocol stall” and is unique to con tro l pipes. Protocol stall differs from functional stall in meaning an[...]

  • Page 307

    Intel ® IXP400 Software Access-Layer Compon ent s: USB Access (ixUSB) API Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 307 T able 61. Det ailed Error Codes #ifndef IX_USB_ERROR_BASE #define IX_USB_ERROR_BASE 4096 #endif /* IX_USB_ERROR_BASE */ /* error due to unknown reasons */ #define IX_USB[...]

  • Page 308

    Intel ® IXP400 Software Access-Layer Co mponent s: USB Acces s (ixUSB) API April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 308 Docume nt Numb e r: 252539 , Revision: 007 22.5 USB Dat a Flow The USB device is a memory mapped device on the pro cessor ’ s peripheral bus. It will not interact directly with the NPEs. Any dat a path betwe[...]

  • Page 309

    Intel ® IXP400 Software Codelet s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 309 Codelets 23 This chapter describes the In tel ® IXP400 Software v2.0 codelets. 23.1 What’ s New The following changes and enhan cements were made to the code lets in software release 2.0: • T wo new codele[...]

  • Page 310

    Intel ® IXP400 Software Codelet s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 310 Docume nt Numb e r: 252539 , Revision: 007 23.4 Crypto Access Codelet (IxCryptoAccCodelet) This codelet demonstrates how to use the IxCr ypto access-layer componen t and the underlying security features in the Intel ® IXP4XX pro duct line and IXC1 1[...]

  • Page 311

    Intel ® IXP400 Software Codelet s Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 311 — Configuring Port-1 to automati cally transmit frames and Port -2 to receive frames. Frames generated and transmitted i n Port-1 are looped back into Port-2 b y using cross-over cable. — Configuring and pe[...]

  • Page 312

    Intel ® IXP400 Software Codelet s April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 312 Docume nt Numb e r: 252539 , Revision: 007 23.10 Performance Profiling Codelet (IxPerfProfAccCodelet) IxPerfProfAccCodelet is a useful utility that dem onstrates how to access performance related data provided by IxPerfProfA cc. The codelet provides [...]

  • Page 313

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 313 Operating System Abstraction Layer (OSAL) 24 24.1 What’ s New There are no changes or enhancements to this component in software release 2.0. 24.2 Overview An Operating System Services Abstraction Laye r (OSAL) is prov[...]

  • Page 314

    Intel ® IXP400 Software Operating System Ab st rac tion La yer (OSA L ) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 314 Docume nt Numb e r: 252539 , Revision: 007 Figure 105. OSAL Architecture B3808-001 OS-Independent Component Buffer Management Core I/O Memory & Endianness Platform-Specific Extensions OS-Dependent Component T[...]

  • Page 315

    Intel ® IXP400 Software Operating System Abst raction La yer (OSAL) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 315 24.3 OS-Independent Core Module As shown in Figure 105 , the OS-independent component include s all the core functionality such as buffer management, platform- and module-speci[...]

  • Page 316

    Intel ® IXP400 Software Operating System Ab st rac tion La yer (OSA L ) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 316 Docume nt Numb e r: 252539 , Revision: 007 24.4.1 Backward Comp atibility Module The OSAL layer was develo ped during IXP400 softw are v1.5 development and provi des backward compatibility to IXP40 0 software rel[...]

  • Page 317

    Intel ® IXP400 Software Operating System Abst raction La yer (OSAL) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 317 configuration header file. The OS AL configurat ion head er file (IxOsalConfig.h) contains user- editable fields for modu le inclusion, and it automa tically incl udes the modu[...]

  • Page 318

    Intel ® IXP400 Software Operating System Ab st rac tion La yer (OSA L ) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 318 Docume nt Numb e r: 252539 , Revision: 007 Figure 106. OSAL Direc tory St ructure os l i n u x (s i m i l a r s u b - d i r s tru c t u re a s v x w o rk s ) i nc l ude I x O s a l . h ( t op O S A L i nc l ude f[...]

  • Page 319

    Intel ® IXP400 Software Operating System Abst raction La yer (OSAL) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 319 24.6 OSAL Modules and Related Interfaces This section contains a summary of the types, symbols, and public func tions declared by each OSAL module. Note: The items shaded in li[...]

  • Page 320

    Intel ® IXP400 Software Operating System Ab st rac tion La yer (OSA L ) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 320 Docume nt Numb e r: 252539 , Revision: 007 T able 62. OSAL Core Interface (Sheet 1 of 2) I xO salVoidFnPtr alias f or void ( void) f unctions I xO salVoidFnVoidPtr alias for voi d (void *) functions I xO salSemap[...]

  • Page 321

    Intel ® IXP400 Software Operating System Abst raction La yer (OSAL) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 321 T able 62. OSAL Core Interface (Sheet 2 of 2) ixOsa lM ut exI nit init ia lizes a m ut ex ixOsa lM ut exLock lock s a m ut ex ixOsa lM ut exUnl o ck unlock s a m u t ex ix Os a[...]

  • Page 322

    Intel ® IXP400 Software Operating System Ab st rac tion La yer (OSA L ) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 322 Docume nt Numb e r: 252539 , Revision: 007 24.6.2 Buffer Management Module This module defines a memory buffer structure and functions for creating and managing buffer pools. Ta b l e 6 3 provides an overview of [...]

  • Page 323

    Intel ® IXP400 Software Operating System Abst raction La yer (OSAL) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 323 The OSAL layer also provides APIs for dealin g with the following situatio ns: • T ransparently accessing I/O-memory-mappe d hardware in dif ferent endian modes • T ranspar[...]

  • Page 324

    Intel ® IXP400 Software Operating System Ab st rac tion La yer (OSA L ) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 324 Docume nt Numb e r: 252539 , Revision: 007 24.7 Supporting a New OS Support for a new operating system can be added separately by creating a new OS-specific folder under the “os” directory , with necessary mo[...]

  • Page 325

    Intel ® IXP400 Software Operating System Abst raction La yer (OSAL) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 325 • IX_OSAL_IO_ENDIANESS This selects the I/O endianness type re quired by the component. This can be: — Big endian (IX_OSAL_BE) — Little endian (IX_OSAL_LE). In this mode [...]

  • Page 326

    Intel ® IXP400 Software Operating System Ab st rac tion La yer (OSA L ) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 326 Docume nt Numb e r: 252539 , Revision: 007 { IX_STATIC_MAP, /* type */ IXP123_PCI_CFG_BASE_PHYS, /* physicalAddress */ IXP123_PCI_CFG_REGION_SIZE, /* size */ IXP123_PCI_CFG_BASE_VIRT, /* virtualAddress */ NULL, /[...]

  • Page 327

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 327 ADSL Driver 25 This chapter describes the ADSL driver for the Intel ® IXDP425 / IXCDP1100 Development Platform and Intel ® IXDP465 Development Platform that supports the STMicroelectronics* (formally Alcatel*) MTK-2 01[...]

  • Page 328

    Intel ® IXP400 Software ADSL Driver April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 328 Docume nt Numb e r: 252539 , Revision: 007 25.3.1 Controlling STMicroelect ronics* ADSL Modem Chip set Through CTRL-E The STMicroelectronics ADSL chipset CTRL-E interface is me mory-mapped into the processor ’ s expansion bus address space. Figur[...]

  • Page 329

    Intel ® IXP400 Software ADSL Driver Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 329 Step 1 of Figure 108 is only required if the cl ient appli cation wants to be notifi ed when a line state changes occurs. S t ep 2 of Figure 108 is called by the client application to establish an A TU-R ADSL[...]

  • Page 330

    Intel ® IXP400 Software ADSL Driver April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 330 Docume nt Numb e r: 252539 , Revision: 007 25.6 Limit ations and Constraint s • The driver only supports the A T U-R mod e of operation. • The driver can operate in single PHY mode only .[...]

  • Page 331

    Intel ® IXP400 Software Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 331 I 2 C Driver (IxI2cDrv) 26 This chapter describes the I 2 C Driver provided w ith Intel ® IXP400 Software v2.0, which is for use with the Intel ® IXP46X Product Line of Network Processors. 26.1 What’ s New This is a [...]

  • Page 332

    Intel ® IXP400 Software I 2 C Driver (IxI2cDrv) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 332 Docume nt Numb e r: 252539 , Revision: 007 • Enable/disable the driving of the SCL line • I 2 C slave address of the processor The I 2 C driver features the following hardware and bus status items: • Master transfer error • Bus [...]

  • Page 333

    Intel ® IXP400 Software I 2 C Driver (IxI 2cDrv) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 333 26.3.3 Error Handling The I 2 C driver is capable of det ecting all errors that the I 2 C hardware is able to provid e as listed below: • Arbitration loss error • Bus error Any errors that oc[...]

  • Page 334

    Intel ® IXP400 Software I 2 C Driver (IxI2cDrv) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 334 Docume nt Numb e r: 252539 , Revision: 007 Once an arbitration loss error is det ected, the unit will stop transmitti ng. The client will need to call the transfer again and the I 2 C status register will be checked to determine the bus[...]

  • Page 335

    Intel ® IXP400 Software I 2 C Driver (IxI 2cDrv) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 335 Slave-Interrupt Mode When the processor is acting in I 2 C slave mode or responding to general calls in interrupt mode, the client callbacks for tr ansmit and receive are responsible for providin[...]

  • Page 336

    Intel ® IXP400 Software I 2 C Driver (IxI2cDrv) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 336 Docume nt Numb e r: 252539 , Revision: 007 26.4.2 Example Sequence Flo ws for Slave Mode Figure 1 10. Sequence Flow Diagram for Slav e Receiv e / General Call in Interrupt Mode B43 7 5 - 01 I2c Dr v h a rd wa re i nterr upt : sl av e re[...]

  • Page 337

    Intel ® IXP400 Software I 2 C Driver (IxI 2cDrv) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 337 Figure 1 1 1. Sequence Flow Diagram for Slave T ransmit in Interrupt Mode B437 6 - 01 I2c Dr v har dw ar e in terr upt : sl av e write clie n t tr ans mi t data from buffer No buffer buffer empty[...]

  • Page 338

    Intel ® IXP400 Software I 2 C Driver (IxI2cDrv) April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 338 Docume nt Numb e r: 252539 , Revision: 007 Figure 1 12. Sequence Flow Diagram for Slave Receive in Polling Mode B4377 -0 1 c li ent i2cDr v ix I 2c Dr vS l av eAddrAndG enC all Detec tedChec k Check Sl av e A d dr Detected IX_I2C_SLA V [...]

  • Page 339

    Intel ® IXP400 Software I 2 C Driver (IxI 2cDrv) Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 339 26.4.3 I 2 C Using GPIO V ersus Dedicated I 2 C Hardware Some supported operating systems in clude support for emulatin g the I 2 C bus using GPIO lin es on the processor . The I 2 C driver using[...]

  • Page 340

    This p age is intentionally lef t blank. Intel ® IXP400 Software April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 340 Docume nt Numb e r: 252539 , Revision: 007[...]

  • Page 341

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 341 Endianness in Intel ® IXP400 Software 27 27.1 Overview The Intel ® IXP4XX Product Line of Network Processors and IXC1 100 Control Pl ane Processor support Little-Endian (LE) and[...]

  • Page 342

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 342 Docume nt Numb e r: 252539 , Revision: 007 It should also be noted that en dianness only applies when byte and half-word accesses are made to memory . If a 32-bi t word is read or written to m emory , the bit pattern in [...]

  • Page 343

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 343 Unfortunately , the answer is NO even with help fro m the most sophisticated hardw are. 27.3 Sof tware Considerations and Implications Much literature is available e xplaining the[...]

  • Page 344

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 344 Docume nt Numb e r: 252539 , Revision: 007 Little:0x8 Big:0x0 The following provides another exam ple of endi anness causing the code to be interpreted differently on BE versus LE machines: int myString[2] = { 0x61626364[...]

  • Page 345

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 345 W e always assume that the byte order value will be set to either Big -Endi an or Litt le-Endian in a define value. 27.3.2 Best Practices in Coding of Endian-Independence Av o i d[...]

  • Page 346

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 346 Docume nt Numb e r: 252539 , Revision: 007 #define htonl(A) (A) #define ntohs(A) (A) #define ntohl(A) (A) #elif defined(LITTLE_ENDIAN) /* the value of A will be byte swapped */ #define htons(A) ((((A) & 0xff00) >&[...]

  • Page 347

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 347 This chapter will provide an overview of the IXP4XX product line and IX C1100 control plane processors capabilities related to endi nness. For specific detail on the various capab[...]

  • Page 348

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 348 Docume nt Numb e r: 252539 , Revision: 007 27.4.1 Supporting Little-Endian Mode The following hardware item s can be config ured by so ftware: • Intel XScale core running un der Little- or Big-Endian mode. • The byte[...]

  • Page 349

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 349 When the Intel XScale core is in Little-Endian Address Cohere nt mode, words written by the Intel XScale core are in the same format when read by the NPE as words. However , byte [...]

  • Page 350

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 350 Docume nt Numb e r: 252539 , Revision: 007 27.4.3.2 I ntel XScale ® Core Endianness Mode The Big- and Little-Endian modes are controlled by the B-bit, located in the “Intel StrongARM Control Register”, coprocessor 1[...]

  • Page 351

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 351 MCR p15,0,a1,c1,c0,0 ENDM The application code built to run on the system must be compiled to match the endianness. Some compilers generate cod e in Little-Endian m ode by de faul[...]

  • Page 352

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 352 Docume nt Numb e r: 252539 , Revision: 007 27.4.3.5 P CI Bus Swap The PCI controller has a byte lane swapping f eature. The “swap” is co ntro lled via th e PCI_CSR register ’ s PDS and ADS bits within the PCI contr[...]

  • Page 353

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 353 IXP42X product line B-0 st epping and IXC1 100 control plane processor B- 0 Ste p pi n g These processor versions support: • Big-Endian • Little-Endian Address Coherency • L[...]

  • Page 354

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 354 Docume nt Numb e r: 252539 , Revision: 007 When adding support for Little-Endian, there we re two factors taken into account in decidin g where to use Address Coherency and Data Coherency Little-En dian modes. 1. The ini[...]

  • Page 355

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 355 — Performance Monitoring Unit — Interrupt Controller — GPIO Controller — T imer Block —S S P , I 2 C and IEEE 1588 units on the IXP46X product line. • Blocks controlle[...]

  • Page 356

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 356 Docume nt Numb e r: 252539 , Revision: 007 27.5.3.2 N PE Downloader — IxNpeDl This component utilizes the NPEs’ Message Handle r and Execution Control re gisters. All registers are word-wide (32 bits). Such registers[...]

  • Page 357

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 357 27.5.3.4. 1 Dat a Plane The data plane interface for IxEthAcc uses th e IxQMgr component to send/receive messages between the Ethernet access and the Ethernet NPEs . All messages [...]

  • Page 358

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 358 Docume nt Numb e r: 252539 , Revision: 007 The IP stack typically has an alignm ent restriction on the IP packet. The start of the IP packet must be word-aligned, that is, the ver/hlen field shown above must start on a 3[...]

  • Page 359

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 359 The code below provi des the read-out formation after the application of a conversion macro. Effectively , the header comes in as Big-Endian and is then output as Little-Endian. T[...]

  • Page 360

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 360 Docume nt Numb e r: 252539 , Revision: 007 Figure 1 19 shows that the IP protocol st ack operates correctly with th e payload of fered to the s tack for half-word-aligned ix_d ata using Data Co herent Little-Endian mo de[...]

  • Page 361

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 361 • IX_OSAL_MBUF word pointers must be swapped prior to subm ission to the NPE. ( ixEthAccPortTxF rameSubmit() ) Note: The IX_OSAL_MBUF ch ain is walked and all IX_OSAL_MBUFs in a[...]

  • Page 362

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 362 Docume nt Numb e r: 252539 , Revision: 007 vxworksincludep latformsixp400 Ix OsalOsIxp400CustomizedMappings.h. Further info rmation on the VxW orks memory map is available in the VxW orks BSP documentation for the s[...]

  • Page 363

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof twar e Programmer’s Guide IXP400 Soft ware Version 2.0 April 2005 Document Number: 252539 , Revision: 007 363 Control is transferred from the bootrom into VxW o rks once it is downloaded via FTP . The MMU is disabled during th is transition and, as su ch, all SDRAM is in Address Coherent [...]

  • Page 364

    Intel ® IXP400 Software Endianness in Intel ® IXP400 Sof tware April 2005 IXP400 Software Versio n 2.0 Programmer’s Guide 364 Docume nt Numb e r: 252539 , Revision: 007 Enable Instr & Data cache. Enable Branch Target buffer. return A similar implementation was requ ired for execution in the VxW orks bootrom. The only caveat is that the SDRA[...]