Logo
UNICENS V2.3.0-4567
User Manual and API Reference
INIC Interface Specification

Introduction

Introduction

Microchip Technology Inc. provides a family of Intelligent Network Interface Controllers (INICs) that combine the physical layer, MAC (Media Access Control), link layer and network layer on a single chip. These characteristics make the INICnet™ technology (network of INICs) to a highly cost-effective all-in-one multimedia network solution, supporting audio, video and IP data over a single cable. A high level of integration and encapsulation of the network functions grant robustness, ease of use and minimum time to market.

 

The INIC family consists of various ICs that support different network speed grades and physical layers. Electrical transmission, for example over unshielded twisted pair (ePHY) or over the coax electrical physical layer (cPHY), is supported as well as transmission over the optical physical layer (oPHY). In addition, ample features and a variety of peripheral ports make the INIC a highly flexible IC that can be implemented in a wide range of applications. However, not every application design needs the entire feature set or all of the peripheral ports. This is why Microchip extended the INIC family with new INICs that only provide a sub-set of features and ports. An overview of different INICs and the functionality they support is given in Section 2.2 .

 

The INICs covered by this specification are:

  • • OS81118
  • • OS81119
  • • OS81210
  • • OS81212
  • • OS81214
  • • OS81216

 

General Information

General Information
FBlock-Syntax Correlation

The table below gives an overview about each FBlock and its corresponding syntax version.

Function Block

Corresponding Syntax Version

FBlock NetBlock

3.0.3

FBlock INIC

3.2.0

FBlock DebugMessages

1.0.5

FBlock ExtendedNetworkControl

1.2.0

 

Chip-Specific Characteristics
General Information
 

 

Variable

INIC

Chip_TransceiverMode

Chip_NetworkSpeedGrade

Chip_ID

OS81118
  • • LVDSUnidirectional
  • • Coax
  • • DefinedByPackage 1

150 Mbit/s

0x18

OS81119
  • • LVDSUnidirectional
  • • Coax
  • • DefinedByPackage = Coax

0x19

OS81210
  • • DefinedByPackage = BalancedMediaUnidirectional

50 Mbit/s

0x30

OS81212

0x32

OS81214

0x34

OS81216

0x33

Note 1: Sets the transceiver mode to Coax for AF devices and to LVDSUnidirectional for BF devices. For information on AF and BF devices, refer to the INIC Hardware Data Sheet [3] .

 

 

Variable

INIC

Chip_Bandwidth_MaxValue

Chip_DataType

OS81118

372

  • • Sync
  • • Packet
  • • Control
  • • AVPacketized
  • • QoSPacket
  • • DiscFramePhase
OS81119
OS81210

116

  • • Sync
  • • Packet
  • • Control
  • • AVPacketized
  • • QoSPacket
  • • DiscFramePhase
  • • IPCPacket
OS81212
  • • Sync
  • • Packet
  • • Control
  • • AVPacketized
  • • QoSPacket
  • • DiscFramePhase
OS81214
  • • Sync
  • • Packet
  • • Control
OS81216
  • • Sync
  • • Control
 

 

Variable

INIC

Chip_StandardRoutingMemory

Chip_AggregationRoutingMemory

Chip_RoutingChannels

OS81118

Sync:

  • • 384 bytes

AVPacketized, QoSPacket, DiscFramePhase:

  • • 4352 bytes
  • • 1024 bytes 1

Sync, AVPacketized, QoSPacket:

  • • 8192 bytes

Sync:

  • • 32

AVPacketized, QoSPacket,
DiscFramePhase:

  • • 16
OS81119
OS81210

Sync:

  • • 128 bytes

AVPacketized, QoSPacket, DiscFramePhase:

  • • 4352 bytes
  • • 1024 bytes 1
OS81212

N/A

OS81214

Sync:

128 bytes

Sync:

32

OS81216

Note 1: Available only after the Reduced Transmission Buffer functionality has been enabled in the configuration string.

 

 

Port Information
Network Port
 

 

Variable

INIC

Chip_NumberOfNetworkPorts

OS81118

One

OS81119

Two

OS81210

One

OS81212
OS81214
OS81216

Note 1: Sets the physical layer to Coax for AF devices and to Optical for BF devices. For information on AF and BF devices, refer to the INIC Hardware Data Sheet [3] .

 

 

MediaLB ® Port
 

 

Variable

INIC

Chip_NumberOfMediaLBPorts

Chip_MediaLBPinModes

Chip_MaxMediaLBInOutAddress

OS81118

One

MediaLB 3-Pin

MediaLB 6-Pin

0x007E

OS81119
OS81210

MediaLB 3-Pin

0x003E

OS81212
OS81214

N/A

OS81216
USB Port
 

 

Variable

INIC

Chip_NumberOfUSBPorts

Chip_USBProductID

Chip_USBProductName

OS81118

One

0xCF18

“OS81118”

OS81119

0xCF19

“OS81119”

OS81210

0xCF30

“OS81210”

OS81212

N/A

OS81214
OS81216

 

 

Variable

INIC

Chip_USBStreamMaxEpCnt

Chip_USBCtrlEpOutAddr

Chip_USBCtrlEpInAddr

OS81118

10

0x0F

0x8F

OS81119
OS81210

7

0x07

0x87

OS81212

N/A

OS81214
OS81216

 

 

Variable

INIC

Chip_USBPktEpOutAddr

Chip_USBPktEpInAddr

Chip_IPCPacket

OS81118

0x0E

0x8E

N/A

OS81119
OS81210

0x06

0x86

Yes

OS81212

N/A

OS81214
OS81216

 

 

SPI Port
 

 

Variable

INIC

Chip_NumberOfSPIPorts

Chip_SPIDataType

Chip_SPINativeDCIAccess

OS81118

One

  • • Packet

N/A

OS81119
OS81210
  • • Packet
  • • Control

Yes

OS81212
OS81214
OS81216

N/A

 

 

 

Streaming Port
 

 

Variable

INIC

Chip_StreamLoopback

OS81118

Yes

OS81119
OS81210

N/A

OS81212
OS81214
OS81216

 

Streaming Port A

 

 

Variable

INIC

Chip_StreamAClockModeShapeSync

OS81118

N/A

OS81119
OS81210
  • • OutputPhaseLocked
  • • Output1SCK 1 , 2
  • • Output1SCKPhaseLocked 1 , 2
OS81212
OS81214
OS81216

Note 1: Only available for ClockDataDelay modes Delayed and BitDelayedOnly .

2: Only supported with TDM formats.

 

Streaming Port B

 

 

Variable

INIC

Chip_StreamBClockMode

Chip_StreamBClockModeShapeSync

Chip_StreamBClockDataDelay

OS81118

Wildcard

N/A

Wildcard

OS81119
OS81210
  • • Output
  • • Input
  • • Wildcard
  • • OutputPhaseLocked
  • • Output1SCK 1 , 2
  • • Output1SCKPhaseLocked 1 , 2
  • • NonDelayed
  • • Delayed
  • • BitDelayedOnly
  • • Wildcard
OS81212
OS81214

Wildcard

N/A

Wildcard

OS81216
 

 

Variable

INIC

Chip_StreamBClockConfig

OS81118

Wildcard

OS81119
OS81210
  • • 64Fs
  • • 128Fs
  • • 256Fs
  • • 512Fs
  • • Wildcard
OS81212
OS81214

Wildcard

OS81216

Note 1: Only available for ClockDataDelay modes Delayed and BitDelayedOnly .

2: Only supported with TDM formats.

 

 

Device Management Information
 

 

Variable

INIC

Chip_MUTEPinConfiguration

Chip_ConfigApplInterface

OS81118
  • • Disabled
  • • Enabled
  • • RSOUT
  • • None
  • • I2C
  • • MediaLB
  • • USB
  • • DI2C
OS81119
OS81210
  • • Disabled
  • • Enabled
  • • None
  • • I2C
  • • MediaLB
  • • USB
  • • SPI
  • • DI2C
OS81212
  • • None
  • • I2C
  • • MediaLB
  • • SPI
  • • DI2C
OS81214
  • • None
  • • I2C
  • • SPI
  • • DI2C
OS81216
  • • None
  • • I2C
  • • DI2C

 

 

Diagnosis- and Test Information
 

 

Variable

INIC

Chip_RBD

Chip_CableLinkDiagnosis

Chip_PhysicalLayerTest

OS81118

Yes

OS81119
OS81210

N/A

OS81212
OS81214
OS81216

Note 1: For details on the physical layer test, refer to MOST150 Limited Physical Layer Compliance Specification [11] .

 

 

Variable

INIC

Chip_NWDiagnosisFD

Chip_NWDiagnosisHD

Chip_NWFallback

OS81118

Yes

N/A

OS81119
OS81210

N/A

Yes

OS81212
OS81214
OS81216

 

 

Memory Information
 

 

Variable

INIC

Chip_SessionType

Chip_ReadMemID

Chip_WriteMemID

OS81118
  • • ProgramCFGS
  • • ProgramIDENTS
  • • ProgramCFGS_IDENTS
  • • EraseEM
  • • ConfigREAD
  • • CFGS
  • • IDENTS
  • • ErrorMemory
  • • IntegrityInfo
  • • CFGS
  • • IDENTS
OS81119
OS81210
  • • ProgramCFGSS
  • • ProgramIDENTS
  • • ConfigREAD
  • • ProgramPATCHS
  • • CFGS
  • • IDENTS
  • • IntegrityInfo
  • • PATCHS
  • • CFGS
  • • IDENTS
  • • CFGSTest
  • • IDENTSTest
  • • PATCHS
  • • PATCHSTest
OS81212
OS81214
OS81216

 

 

Variable

INIC

Chip_WriteAddress

Chip_WriteUnitLen

OS81118
  • • Range: 0x00000000...0xFFFFFFFE
  • • Step: 2
  • • Range: 0x02...0xFE
  • • Step: 2
OS81119
OS81210
  • • Range: 0x00000000...0xFFFFFFFF
  • • Step: 1
  • • Range: 0x01...0xFF
  • • Step: 1
OS81212
OS81214
OS81216

 

 

Feature Information
 

 

Variable

INIC

Chip_PatchString

OS81118

N/A

OS81119
OS81210

Yes

OS81212
OS81214
OS81216
 

 

Device Management

Device Management

Device management handles device-related tasks such as:

  • • Operation of the configuration interface
  • • Operation of the application interface
  • • Control communication through Port Message Protocol (PMP) channels
  • • Setup of message routing

The configuration interface and the application interface are two separate interfaces. This approach allows operation of the application interface without running the configuration interface and vice versa.

Port Message Protocol

To be able to exchange control messages, the INIC provides a set of independent Port Message Protocol (PMP) channels. The communication is handled through the PMP as specified inside the Port Message Protocol V2.0.1 Specification [2] . In PMP terms, the EHC will be referred to as the Primary Device (PD), the INIC as the Secondary Device (SD).

The PMP provides multiple virtual channels, stated as FIFO channels. Each PMP channel is assigned to a unique FIFO channel. This allows running multiple PMP channels through sockets on a single physical port, e.g., MediaLB Port. Flow control and hand-shaking mechanisms of the protocol prevent starvation or deadlocks when PMP channels share a common physical medium. Besides the bi-directional exchange of packet-based data, the protocol is used to communicate the delivery status back to the EHC and allows taking actions on delivery failures.

The PMP is not designed for a specific application and thus its definition must be completed per application. This chapter extends the PMP specification in a way that is necessary to establish INIC-specific PMP channels. Therefore, INIC-specific details of the protocol will be defined hereinafter as part of a higher communication layer. This includes the assigned PMP channel numbers (see Table 3-1 ), the data message content types and format, and the status message failure codes (see Table 3-3 ).

Channels

There are different kinds of PMP channels available:

  • MCM PMP channel
  • ICM PMP channel
  • RCM PMP channel

To address a specific PMP channel, the channel number must be specified in the FPH field of the PMP header when a message is transmitted. Received PMP messages can be matched to a specific PMP channel through the same FPH field. Addressing all PMP channels at once allows to transmit a message that will be received by all PMP channels. Typically, this feature will be used to transmit an UNSYNC command message to all channels. For all other communication, the destination channel should be unique. Table 3-1 contains a list of channel assignments.

 
Table 3-1: PMP Channel Assignment

Channel

PMP Channel Number

MCM

0

ICM

2

RCM

6

MCM, ICM and RCM

3

 

All PMP channels use the same data message format to transport a control message, as described in Section 3.1.2 .

Control Message Format

Figure 3-1 shows the data message format used to transport a control message. The message format consists of two main sections, the PMP header and the PMP payload.

Figure 3-1: Control Message Format
 

The PMP header contains the ExtType field that must be 0x00 (only one format type is supported).

If the INIC receives messages, any number of stuffing bytes is allowed. However, when transmitting messages to the INIC, it is strongly recommended to use 2 stuffing bytes. Control messages sent by the INIC will always use 2 stuffing bytes.

Figure 3-2 depicts the PMP payload fields. For the explanation of the PMP header fields refer to the Port Message Protocol V2.0.1 Specification [2] .

Figure 3-2: PMP Payload
 
 
Table 3-2: PMP Payload Format Field Description

Format Field

Size

Description

SrcDeviceID

16 bit 1

Source Device ID. Indicates the Logical Address of the device that sent the message.

SourceID 0x0001 (LocalID) indicates a message coming from an internal FBlock.
SourceID 0x0002 indicates a message coming from the EHC.

TgtDeviceID

16 bit 1

Target Device ID. Indicates the device address to which the message is sent (DeviceID). The following addresses are reserved: 0x0000, 0x0001, 0xFFFF.

0x0000 and 0xFFFF return format failure (0010) as transmitted message status.

0x0001 (LocalID) is the Local ID. A message using this address is used for internal communication between EHC and INIC.

FBlockID

8 bit

Function Block ID. Determines the function block that is addressed.

InstID

8 bit

Instance ID. Determines the instance of the FBlock to unambiguously address FBlocks of the same type.

FktID

16 bit 1

Function ID. Determines the property or method that is addressed.

TelID

4 bit 2

Telegram ID. Identifies the telegram type. Zero for a single transfer, non-zero (1...4) when transferring segmented messages.

OPType

4 bit 2

Operation Type. Determines the operation on the property or method. Also indicates the direction in which messages are exchanged.

LLRBC

8 bit

Low-Level Retry block count. The maximum block count number is limited to 100. If a higher number is entered, the value will be set to 100 automatically.

TelCnt

8 bit

Telegram Count. Counts the number of messages in the telegram. Starts at 0x00 for the first telegram and increases by 1 for each following telegram. When 0xFF is reached, the counter restarts at 0x00.

TelLen

8 bit

Telegram Length. Number of data bytes that are valid in the telegram. The maximum number is 45 bytes.

TelData

0...45 bytes

Contains the payload of the message.

Note 1: Big-endian

2: TelID and OPType share one byte; TelID is stored in the high-nibble (bits 4-7), OPType information is stored in the low-nibble (bits 0-3).

 

Control Message Transmission Status

If the INIC fails to deliver a control message, the affected PMP channel will enter an error state and block further communication. If a PMP channel is blocked, the EHC is responsible to take action and perform error handling to unblock the channel and continue its operation. Other channels still remain usable, even if they share the same physical port. For more information refer to the Port Message Protocol V2.0.1 Specification [2] .

A channel failure will be reported through the PMP in form of a FIFO Control Message status, see Port Message Protocol V2.0.1 Specification [2] . The reason for the failure will be encoded into the status value with the TX_FAILURE type, see Table 3-3 . The error type categorizes the error values and indicates if a retry of the transmission is reasonable. If it is not reasonable, a retry will probably not solve the issue and instead result in the same error state again.

Table 3-3: Message Transmission Status

Status Type

Error Type

Value

Description

TX_FAILURE

CONFIG 1

0x01

Network is not accessible.
The network is never accessible via the ICM PMP channel.

ERROR 2

0x08

Buffer full

0x09

CRC error

0x0A

Corrupted identifiers

0x0B

Corrupted Preemptive Acknowledgement (PACK) or CRC Acknowledgement (CACK)

0x0C

TX timeout

FATAL 1

0x10

Wrong target

0x11

Own node address

UNAVAIL 1

0x18

Control channel was switched off and a pending transmission has been canceled.

0x19

Control channel not available

Note 1: An application retry isn't reasonable.

2: Application can re-trigger transmission if reasonable.

The value 0x01 is reported only for control messages targeted to INIC internal FBlocks and Shadows. All other values are reported if any transmission error on the network has occurred.

 

Configuration Interface

The configuration interface is used by an EHC to control the INIC and to access the network for management purposes.

Typically, a network device includes an EHC that manages the local INIC via the configuration interface. However, not all network devices must necessarily incorporate an EHC. To cover these different approaches, the configuration interface supports the following cases of application:

  • EHC controlled and
  • Remote controlled.
EHC Controlled

The EHC-controlled configuration interface is shown in Figure 3-3 .

Figure 3-3: Configuration Interface – EHC Controlled
 

A local EHC can utilize the ICM and RCM channels to access the configuration interface. It has to use the internal Device ID 0x0002 as the source address when sending messages.

The address handling of a message forwarded by the INIC to the configuration interface is done as follows:

  • • The source address is always the Local ID 0x0001 if the message was not received from the network.
  • • The target address for a received single cast message is replaced by the EHC’s internal Device ID 0x0002.
  • • The target address for a multi cast message is not replaced.

 

The ICM PMP channel is only used to access the local FBlock INIC.

The usage of the RCM PMP channel is as follows:
Full access to the network for management purposes, which includes the control of remote INICs, NetworkMaster functionality and network diagnosis. Control messages received via the network and/or the application interface (targeted to the Local ID 0x0001) are forwarded to the RCM PMP channel by using the following routing rules:

  • • All FBlock INIC status messages
  • • All FBlock NetBlock status messages
  • • All FBlock NetworkMaster request messages
  • • All FBlock ExtendedNetworkControl status message
Remote Controlled

A remote EHC controls the INIC via the network. For that it is required to set the Configuration Interface to None (Remote Attached Mode).

The remote-controlled configuration interface is shown in Figure 3-4 .

Figure 3-4: Configuration Interface – Remote Controlled
 
Operation Modes

Depending on the application design that requires either an EHC-controlled or a remote-controlled solution, the device needs to pass dedicated operation modes, see Figure 3-5 . Operation modes are:

  • Protected Mode – used by the EHC-controlled and the remote-controlled application
  • Attached Mode – used by the EHC-controlled application
  • Remote Attached Mode – solely used by the remote-controlled application
 
Figure 3-5: Configuration Interface Modes
 
 
Protected Mode

In Protected Mode the INIC autonomously controls all device management functionality including power management. In this mode all Network sockets are destroyed and new sockets cannot be opened.

While in Protected Mode, the network remains Available and all pending diagnostic tasks (e.g., physical layer test) will be completed.

The Protected Mode incorporates the sub states:

  • • Cleanup
  • • Wait for local EHC
  • • Synchronized
  • • Wait for remote EHC

In Protected Mode INIC.DeviceStatus.Status.ConfigInterfaceMode is Protected .

Cleanup

The transition to the cleanup state can be triggered by several indicators:

  • • Synchronization loss, which can occur on ICM and RCM PMP channels under the conditions shown in Figure 3-5 . Loss of synchronization can be based on different criteria, such as:
  • - The INIC receives a PMP SYNC command that addresses the ICM or RCM channel
  • - The PMP watchdog has expired
  • - PMP channel re-synchronization occurred due to an EHC reset
  • • The NetInterface Off state has been entered while in Remote Attached Mode.
  • • The application controlling the INIC remotely has sent an INIC.DeviceSync(Synchronization = Sync) or INIC.DeviceSync(Synchronization = UnSync) message.
  • • The DI2C message channel is unsynchronized.
 

After the cleanup state has been entered, the INIC performs the following actions:

  • • Regains power management control
  • • Broadcasts NWM.Configuration.Status(NotOK) , if FBlock NetworkMaster is local. The message will be forwarded to the application interface if in Attached Mode.
  • • Disables message routing to the ICM and RCM PMP channels
  • • Destroys all resources created during runtime
  • • Removes all FBlock INIC notifications
  • • Drives the MUTE pin low for 10 ms if the pin is configured to signal reset (see MUTE Pin Configuration)
  • • Cancels any pending startup process that was initiated by function INIC.NetworkStartup() or INIC.NetworkStartupExt()
 
Note: The INIC remains in the cleanup state until all actions listed above have been finished. Therefore, all ICM and RCM PMP channel re-synchronization attempts are blocked during this period of time.

 

Wait for local EHC

This state is entered after the cleanup has been finished and the INIC is configured to be EHC controlled.

 

Wait for remote EHC

This state is entered after the cleanup has been finished and the INIC is configured to be remote controlled.

 

Synchronized

The synchronized state is entered as soon as the EHC has finished ICM and RCM PMP channel synchronization. The state is also entered after the EHC has finished DI2C message channel synchronization.

In the synchronized state, the EHC has full access to all API functions.

Before PMP channel synchronization can start, the ICM and RCM PMP channels must have been setup and configured as explained in Section 3.1 . ICM and RCM PMP channels are synchronized by the PMP channel synchronization procedure, which is described in the Port Message Protocol V2.0.1 Specification [2] .

Attached Mode

In Attached Mode, the EHC takes over responsibility for the power management.

When the Attached Mode is entered by calling the API command INIC.DeviceAttach() , see page 137 , the INIC performs the following steps:

  • • Notifications to all API properties are set, except INIC.GPIOPortTriggerEvent()
  • • Enables message routing to the ICM and RCM PMP channels

In Attached Mode INIC.DeviceStatus.Status.ConfigInterfaceMode is Attached .

The following sequence chart shows the required steps to reach Attached Mode.

Figure 3-6: Steps to Reach Attached Mode
 

 

Remote Attached Mode

In general, the Remote Attached Mode is used by devices that have no local microcontroller connected to the Configuration Interface to control local INIC functionality, such as resource management. There can be a local microcontroller connected to the Application Interface though to handle application specific tasks.

In Figure 3-7 this device is called “Remote INIC”. All functionality is remotely controlled and must be handled by a remote application. In Figure 3-7 this device is called “INIC on Root Node”.

To enable remote control, the configuration string property Configuration Interface must be set to None . The synchronization of the remote application to the INIC and entering the Remote Attached Mode is done by sending the command sequence as shown in Figure 3-7 .

Figure 3-7: Remote Control Command Sequence
 
 
Note: To allow a clean synchronization, the command sequence must be executed by the remote application whenever:
- the network transitions from state NotAvailable to Available ,
- the remote application restarts, or
- the remotely controlled INIC restarts.

 

In Remote Attached Mode the FBlock INIC is visible to the network and reported by the INIC's FBlockIDs.Status() message. Hence, a proper InstID for the FBlock INIC should be assigned. This can be done by using the configuration string property Default Instance ID.

Control messages with OPTypes Set, SetGet, Start, and StartResult initiated from network side are only executable in Remote Attached Mode. However, the use of these operations is limited, see Table 3-4 . The following function operations are not accessible and therefore will return a function-specific error if the configuration interface is in Remote Attached Mode.

Table 3-4: Limited Write Operations

Operation

INIC.DevicePowerOff.SetGet()

INIC.DeviceAttach.StartResult()

INIC.NetworkStartup.StartResult()

INIC.NetworkStartupExt.StartResult()

INIC.NetworkShutdown.StartResult()

INIC.NetworkRBD.StartResult()

INIC.NetworkForceNotAvailable.SetGet()

INIC.NetworkDiagnosisFullDuplex.StartResult()

INIC.NetworkDiagnosisFullDuplexEnd.StartResult()

INIC.NetworkDiagnosisHalfDuplex.StartResult()

INIC.NetworkDiagnosisHalfDuplexEnd.StartResult()

INIC.NetworkFallback.StartResult()

INIC.NetworkFallbackEnd.StartResult()

Note 1: For details refer to Section 2.2 .

Application Interface

The application interface is used by a local EHC to send and receive application-specific control messages. This interface can be used independently from the configuration interface. This allows having a local EHC connected to the application interface while the configuration interface can be remotely controlled.

The application interface is shown in Figure 3-8 .

Figure 3-8: Application Interface
 

A local EHC can utilize the MCM PMP channel as the communication interface. It has to use the internal Device ID 0x0003 as the source address when sending messages.

The address handling of a message forwarded by the INIC to the application interface is done as follows:

  • • The source address is always the Local ID 0x0001 if the message was not received from the network.
  • • The target address for a received single cast message is replaced by the EHC’s internal Device ID 0x0003.
  • • The target address for a multi cast message is not replaced.

 

The usage of the MCM PMP channel is as follows:
Full access to the network for application purposes. Control messages received via the network and/or the configuration interface (targeted to the Local ID 0x0001) are forwarded to the MCM PMP channel by using the routing rules as follows:

  • • All FBlock NetBlock request messages
  • • All NetworkMaster status messages
  • • All request or status messages that don’t match the other rules
Operation Modes

The application interface can reside in the following operation modes, see Figure 3-9 :

  • • Protected Mode – no network access
  • • Attached Mode – network access
 
Figure 3-9: Application Interface Modes
 
 
Protected Mode

In Protected Mode the application interface is not connected. The INIC autonomously answers to any NetBlock.FBlockIDs() request message.

The Protected Mode incorporates the following sub states:

• Cleanup

• Wait for local EHC

In Protected Mode INIC.DeviceStatus.Status.AppInterfaceMode is Protected .

 

Cleanup

The transition to the cleanup state can be triggered by synchronization loss, which can occur on the MCM PMP channel under the conditions as shown in Figure 3-9 . Loss of synchronization can be based on different criteria, such as:

  • • The INIC receives a PMP SYNC command that addresses the MCM PMP channel.
  • • The PMP watchdog has expired.
  • • PMP channel re-synchronization occurred due to an EHC reset.
  • • The DI2C message channel has lost synchronization.

 

After the cleanup state has been entered, the INIC performs the following actions:

  • • Regains NetBlock handling
  • • Unregisters all application FBlocks by sending an appropriate FBlock list, if a NetworkMaster is known
  • • Disables message routing to the MCM PMP channel
 
Note: The INIC remains in the cleanup state until all actions listed above have been finished. Therefore, all MCM PMP channel re-synchronization attempts are blocked during this period of time.

 

Wait for local EHC

This state is entered after the cleanup has been finished and the INIC is configured to be EHC controlled.

 

Attached Mode

The Attached Mode is entered as soon as the EHC has finished MCM PMP channel synchronization or after it has finished DI2C message channel synchronization.

In Attached Mode, the local EHC has full access to the network.

When entering the Attached Mode, the INIC performs the following actions:

  • • Sends the latest NWM.Configuration.Status() to the EHC
  • • Stops autonomous NetBlock handling; this means, it stops answering FBlockID list requests and routes all appropriate NetBlock request to the EHC
  • • Enables message routing to the MCM PMP channel

In Attached Mode INIC.DeviceStatus.Status.AppInterfaceMode is Attached.

Configuration

As outlined in Section 24.1 , the configuration string allows the configuration of the peripheral ports used by the Configuration Interface and Application Interface.

The INIC automatically creates appropriate sockets and other resource objects. The chosen configuration will be available after chip startup.

If the configuration interface is set to None , the controlling application can only be a remote application, which excludes the use of an local EHC for configuration purposes. In this case the application interface can still be used.

Remote Administration

Remote administration is used for administrative purposes, such as the programming of the configuration and identification strings, on a dedicated device. During the remote administration phase, the INIC

 

To enter the remote administration phase, the network must be in NetInterface state NetOn. The remote administration phase is started with ExtendedNetworkControl.Welcome.StartResult() by assigning a temporary AdminNodeAddress.

The remote administration phase is left by either a transition to NetOff or by sending an ExtendedNetworkControl.Init.Start() message.

Power Management

Power Management

Note: The functionality described in this chapter is chip-specific.
For details refer to Chip_RBD.

The INIC is able to handle several power states, see Section 23.2.2.1 . For this purpose, it provides a power management interface, which can be either configured in Standard or PowerController mode.

Standard mode:

The power management provides:

  • • Two input pins ( PS0 and PS1 pins) that are used to monitor the power states signaled by an external power controller
  • PS1

    PS0

    Power State

    0

    0

    U Normal

    0

    1

    Switch-To-Power (STP)

    1

    0

    U Critical

    1

    1

    U Low

 
  • • One output pin ( PWROFF pin), which is used to signal a power-off request from INIC (the PWROFF pin is set high).

 

Power controller mode:

  • PS0/PS1/PWROFF pins are turned into an I 2 C interface, which communicates with an external power controller.
  • • The I 2 C interface is used to monitor the power states signaled by an external power controller.
  • • The I 2 C interface is used to signal a power-off request from INIC, which is handled by the external power controller.

 

The power management interface can be used to signal the current power state of a device and to trigger a Ring Break Diagnosis or a network startup by using external glue logic or hardware power management (Microchip’s MPM85000 [10] ). The power management is based on the configuration interface.

Possible states that can be signaled by the power management interface are described in the table below:

Table 4-1: Power States Signaled by Power Management Interface

Power State

Action Set in the Configuration String

Behavior in Configuration Interface Mode

U Normal,
see Figure 4-2

n/a

Protected Mode:

Withdraws the actions done on U Low.

Attached Mode:
Device signals U Normal.

Switch-To-Power (STP),
see Figure 4-4

None

Protected Mode:

No action occurs.

Attached Mode:
Device signals STP.

StartDiagnosisSlave

Protected Mode:
Device triggers a Ring Break Diagnosis, see Section 5.6.2 .

Attached Mode:
Device signals STP.

StartDiagnosisMaster

StartNetwork

Protected Mode:
Device triggers a network startup, see Section 5.2 .

Attached Mode:
Device signals STP.

U Critical,
see Figure 4-5

n/a

Protected Mode:

No action occurs.

Attached Mode:
Device signals U Critical.

U Low,
see Figure 4-3

None

Protected Mode:

No action occurs.

Attached Mode:
Device signals U Low.

PowerOff

Protected Mode:

Device sets a power-off request.

Attached Mode:
Device signals U Low.

ForcedNA

Protected Mode:

Device enters NotAvailable state.

Attached Mode:
Device signals U Low.

PowerOffForcedNA

Protected Mode:

Device sets a power-off request and enters NotAvailable state.

Attached Mode:

Device signals U Low.

 

The INIC provides a timer, Power Off Time, to set a power-off request when the network is in NetInterface Off state (see Figure 5-1 ) and the INIC has entered Protected Mode. The timer starts counting when both conditions are met and stops when one of the conditions has left its state, which means, either the network leaves NetInterface Off state or INIC leaves Protected Mode. Both actions clear the timer and a pending power-off request.

Take into account, if Power Off Time is used to control the power supply of the device via the power management interface, the timer value must be chosen higher, compared to the time a device would require to stay in NetInterface Off state and Protected Mode. This timing requirement must be fulfilled for example when the EHC is flashed, otherwise a power off will interrupt the flash process.

 

Power-off request

A power-off request is set due to the following conditions:

  • • The power management interface signals ULow , INIC is in Protected Mode, and Action On U_Low is PowerOff or PowerOffForcedNA .
  • Power Off Time is expired. The INIC is in Protected Mode and the network is in NetInterface Off state.
  • • By function INIC.DevicePowerOff.SetGet(PowerOff = True)
 

As long as one of the above mentioned conditions is true, a power-off request remains set.

If a power-off request was set because the power management interface signaled ULow in Protected Mode, a power-off request remains set, even when INIC switches to Attached Mode. In order to clear a power-off request, INIC.DevicePowerOff.SetGet(PowerOff = FALSE) must be sent to INIC.

If a power-off request was set due to sending INIC.DevicePowerOff.SetGet(PowerOff = True) and INIC switches to Protected Mode, a power-off request may be cleared if no other condition occurs that forces it to be set.

 

Availability

The network interface is set to NotAvailable and remains in this state based on the following conditions:

  • • The power management interface signals ULow , INIC is in Protected Mode, and Action On U_Low is ForcedNA or PowerOffForcedNA
  • ForcedNA was set by function INIC.NetworkForceNotAvailable.SetGet(Force = True)
 

As long as one of the above mentioned conditions is true, the network interface remains in NotAvailable state, regardless of the network activity state on Rx. If NotAvailable state was set since the power management interface signaled ULow in Protected Mode, the INIC will stay in NotAvailable state, even when INIC switches to Attached Mode. In order to clear NotAvailable , INIC.NetworkForceNotAvailable.SetGet(Force = FALSE) must be sent to INIC.

If ForcedNA was set due to sending INIC.NetworkForceNotAvailable.SetGet(Force = True) and INIC switches to Protected Mode, ForcedNA may be cleared if no other condition occurs that requires ForcedNA to be set.

Configuration

The behavior of the power management can be defined in the configuration string, but it is also possible to interfere in the INIC’s operational behavior during runtime if there is a condition detected that requires such an action. This means, if the INIC is in Attached Mode and an erroneous PowerState is detected, the EHC can send INIC.DevicePowerOff.SetGet(PowerOff = True) , see page 159 , to set a power-off request. Since it could also be required to force the network interface to enter NotAvailable state due to an erroneous PowerState , the EHC can send INIC.NetworkForceNotAvailable.SetGet(Force = True) , see page 180 .

The behavior of a power-off request after detecting an erroneous power condition and thus INIC’s automatic handling of the network interface in Protected Mode can be defined in the configuration string, see properties Action On U_Low and Power Off Time. In addition, if the power management interface indicates the respective power state conditions, property Action On STP can trigger an RBD or network startup, see Table 4-1 .

If the INIC is in Attached Mode, it reports the respective power state in INIC.DeviceStatus(PowerState) to the EHC without initiating any action, see page 155 .

Power States

Figure 4-1 gives an overview of the INIC’s power states, which are UNormal , ULow , STP , and UCritical . Whenever a change occurs, the power management will be updated on any of the following triggers:

  • • A change of the power state signaled by the power management interface
  • • A change in the operation mode (on a transition to Protected Mode or on a transition to Attached Mode)
  • • Timer Power Off Time has expired
  • INIC.DevicePowerOff() message was received
  • INIC.NetworkForceNotAvailable() message was received
  • • Start of Ring Break Diagnosis failed
  • • Start of network startup failed
 
Figure 4-1: Power States
 

Figure 4-2 through Figure 4-5 depict the power states in detail and show environmental conditions that can influence these states.

Figure 4-2: Power State is U Normal
 
 
Figure 4-3: Power State is U Low
 
 
Figure 4-4: Power State is STP
 
 
Figure 4-5: Power State is U Critical
 

 

Network Management

Network Management

Note: The functionality described in this chapter is chip-specific.
For details refer to Chip_RBD.

The network management handles network related tasks, such as:

  • • NetInterface handling including network startup and shutdown, physical layer test and network diagnosis
  • • Addressing for MCMs and MDPs
  • • Provision of FBlock NetBlock, FBlock NetworkMaster Shadow, and FBlock ExtendedNetworkControl functionality

Network management for the EHC is only provided when the configuration interface is in Attached Mode, see Section 3.3.1.2 .

NetInterface

The INIC contains a network supervisor kernel, which implements the NetInterface state diagram and the flow between the states. NetInterface states are abstracted to the general states Available and NotAvailable , see Figure 5-1 . If the network is in NetInterface Normal Operation state, the network is considered available and data communication including packet, control, and streaming data, is possible. In all other NetInterface states it is considered not available; in these states data communication is not possible.

For an external tool that is configured in Static TimingMaster mode, the transition from NetInterface Normal Operation state does not go over NetInterface Off state; t Restart of 300 ms is not taken into account. This affects only devices that are locking to a Static TimingMaster signal.

 
Figure 5-1: NetInterface State Diagram
 
Startup

By command or network activity

Before the network can be available, it must be started by an application request, whereas the application is a device that is configured as TimingMaster. The network can be started by the EHC using either the INIC.NetworkStartup() or the INIC.NetworkStartupExt() function. After function call, the INIC is started as TimingMaster. The function must be called only by the TimingMaster device to avoid a multi-master failure situation.

If the INIC is woken up by network activity, it starts up as TimingSlave, which is the default device mode of the INIC. As long as the INIC detects activity at its Rx, it enables its signal on Tx.

By power management interface

Another way for the TimingMaster to start the network is checking the power states at the power management interface. The feature can be enabled in the configuration string by selecting NetworkStartup in property Action On STP, which allows for additional property settings.

A network startup can be triggered by power state STP, see Table 4-1 . If a network startup should be executed on every INIC reset and no voltage levels need to be handled, STP can be signaled statically. If the network startup should be controlled by an external controller, STP can be applied on demand. If the network should not be started after reset, U Normal must be applied, see Table 4-1 .

Triggering a network startup via the power management interface is only possible after a reset of the INIC and if the configuration interface resides in Protected Mode. Once the configuration interface has changed to Attached Mode or a network startup has been triggered by the power management interface, an additional network startup on STP is no longer possible, until the INIC goes through reset again.

The INIC starts the network on an STP trigger condition until the INIC gains NetInterface Normal Operation (Network Available) state or until the timer Auto Forced Not Available Time has expired. In case the INIC gains Normal Operation state and the configuration interface resides in Protected Mode, the network will be set to ForcedNA state if the Auto Forced Not Available Time timer has expired. To avoid an Auto Forced Not Available Time timer expiration, the EHC has to attach to the INIC within Auto Forced Not Available Time or the Auto Forced Not Available Time timer has to be set to 0xFFFF, which is not recommended.

Failed

If the network startup was initiated by sending either an INIC.NetworkStartup() or INIC.NetworkStartupExt() command to the INIC, the INIC tries to start the network until NetInterface Normal Operation state is gained or until INIC.NetworkShutdown() is called by the EHC. The INIC cancels a pending startup if it enters Protected Mode. If the network startup was canceled, a new startup can be tried immediately again.

Reasons for a failed network startup are as follows:

  • • stable lock cannot be gained (e.g., the network is not closed) or
  • • the network has a multi-master condition (only one TimingMaster is allowed).

In addition, a network startup is not possible if the INIC is in ForcedNA state or in Diagnosis state. If in this situation the network was started up by using either the INIC.NetworkStartup() or the INIC.NetworkStartupExt() function, an immediate error is returned. A new startup is only possible after the error state has been cleared.

 

 

 

Available

If the startup was successful, the network and its port(s) will enter the available state, meaning INIC.NetworkStatus.Availability (see page 164 ) and INIC.NetworkPortStatus.Availability (see page 190 ) change their state to Available , which in turn means that the network is now in NetInterface Normal Operation state, see Figure 5-1 .

AvailabilityTransitionCause indicates one of the initial startup reasons: Command or RxActivity . During the startup period, only the first initiated startup trigger is reported, even if there are several reasons that have been received from INIC.

 

Automatically established network channels

A TimingMaster device can automatically establish the following network channels:

  • • Control channel – This channel has a size that is fixed to 4 bytes. It is reserved in the header of the network frame when the network has become Available . In this state, all devices are granted access to the channel.
  • • Proxy channel – This channel size is defined by parameter ProxyChannelBW of the INIC.Network- StartupExt() function. The channel is established in front of the packet channel within the network frame. Hence, the lowest frame byte index that can be used for mapping connection labels is 0x0C. Only devices that have Network sockets created with a static (mapped) connection label are granted access to this area.
  • • Packet channel – This channel is defined by parameter PacketBW of either the INIC.NetworkStartup() or the INIC.NetworkStartupExt() function. All devices are granted access to this area.

For streaming purposes, the remainder of the network frame is available for dynamic allocation of connection labels. All devices that have Network sockets created for which the INIC is responsible to manage bandwidth reservations are granted access to this area.

 

Network-management related information is reported by the INIC.NetworkStatus() function. Port-specific information, such as streaming data bandwidth, is reported by the INIC.NetworkPortStatus() function.

As soon as the network is available, the last valid NodePosition and MaxPosition are returned within INIC.NetworkStatus() . The MaxPosition is synchronized with the Network Change Event (see Events), which is delayed at least 100 ms after the MaxPosition information has been changed. Also, the valid PacketBW in INIC.NetworkStatus() and the valid FreeStreamingBW in INIC.NetworkPortStatus() are reported.

If a network unlock occurs during the time that the network is available, AvailabilityInfo changes to Unstable indicating that network communication is disturbed. It changes back to Stable as soon as stable lock is re-gained.

 

Shutdown

By command

Similar to the network startup scenario, the network shutdown function call INIC.NetworkShutdown() can also occur at the same time on several nodes, see page 174 . The device triggering the network shutdown can be either the TimingMaster or a TimingSlave. For all network nodes AvailabilityTransitionCause changes to Normal . However, if a TimingSlave shuts down the network, the TimingMaster ignores the Shutdown Flag and reports AvailabilityTransitionCause ErrorSuddenSignalOff .

If the network is already being shut down by another node and the INIC.NetworkShutdown() function is called again, the running shutdown process will not be affected. If the network shutdown is initiated by the INIC.NetworkShutdown() function and the shutdown process has been finished, the status is returned. The result is delayed and sent after t Restart is expired; hence an immediate startup procedure can be initiated.

Network-management related information is reported by the INIC.NetworkStatus() function. Port-specific information, such as streaming data bandwidth, is reported by the INIC.NetworkPortStatus() function.

By error

An error shutdown can have different reasons:

  • ErrorSuddenSignalOff ,
  • ErrorCriticalUnlock , or
  • ErrorSystem .

AvailabilityTransitionCause indicates the reason for the network shutdown trigger.

 

NotAvailable

When the network starts the shutdown process, AvailabilityInfo changes to NotAvailable in INIC.NetworkStatus() (see page 164 ) and in INIC.NetworkPortStatus() (see page 190 ). NotAvailable indicates that the network is in NetInterface Off state.

The NodePosition , MaxPosition , PacketBW, and FreeStreamingBW values are invalid if the network is in NotAvailable state.

 

Network Diagnosis

The network diagnosis can be utilized to detect network disruptions between two network devices. A diagnosis phase must be explicitly started by using dedicated diagnoses functions.

The network diagnosis comprises the following diagnoses modes:

Centralized Diagnosis

Note: This functionality is chip-specific.
For details refer to Chip_NWDiagnosisHD and Chip_NWDiagnosisFD.

Half-duplex and full-duplex diagnoses define a process that is used to collect relevant diagnostic information of all devices present in the network. They can be used to examine the physical connection status between two devices.
Diagnosis processes are controlled by the network diagnosis module, which is part of the application layer. The INIC provides functionality, which is needed to interact with the network diagnosis module; in addition, the INIC completely encapsulates methods required by the diagnosis processes, such as cable link verification.

Since both diagnosis processes need a diagnosis module running on the application layer of the TimingMaster, the TimingMaster node requires an EHC. TimingSlave nodes do not require an EHC. Hence, remote-controlled devices can also run diagnosis. The communication between the TimingMaster and the TimingSlaves is done by use of control messages via the network. Therefore, the diagnosis process can be executed without any additional hardware, such as electrical control lines.

The half duplex diagnosis supports Network Ports that are configured in BalancedMediaUnidirectional transceiver mode.

The full duplex diagnosis supports Network Ports that are configured in CoaxBidirectional transceiver mode.

Preconditions

Half-duplex diagnosis

  • • The network must run in BalancedMediaUnidirectional mode.
  • • In order to start the half-duplex diagnosis, the network needs to reside in NetInterface Off state.

Full-duplex diagnosis

  • • The Network Port that shall be observed must run in CoaxBidirectional mode.
    A Network Port that is not running in CoaxBidirectional mode will be disabled during diagnosis and cannot be enabled. All devices connected afterwards are not considered.
  • • In order to start the full-duplex diagnosis, the network needs to reside in NetInterface Off state.
 

Behavior for INICs that provide two Network Ports in a full-duplex system

  • • A Network Port which is in Used mode is considered as connected to another device.
  • • An unused Network Port is considered as the last node; it cannot be enabled.

 

Diagnosis Mode

The diagnosis mode is signaled on a system wide level by use of a special system bit distributed by the TimingMaster. By using the system bit during the diagnosis, a TimingSlave will always end up in diagnosis mode, even in case of a reset.
When operating in diagnosis mode, the network is in NotAvailable state. Thus, any application communication using the network is not possible.

Whenever the network is started in diagnosis mode, the TimingMaster and a TimingSlave perform the actions as described below:

TimingMaster:

  • • Distributes diagnosis system bit
  • • Enters diagnosis mode
  • • Disables all Network Ports if a full-duplex diagnosis is triggered
  • • Disables the Tx output pin if a half-duplex diagnosis is triggered
  • • Sets network Availability to NotAvailable
  • • Sets node address to an uninitialized value (0x0FFE)

TimingSlave:

  • • Enters diagnosis mode
  • • Disables all Network Ports besides the clock reference port if a full-duplex diagnosis is triggered
  • • Sets network Availability to NotAvailable
  • • Sets node address to uninitialized value (0x0FFE)

 

Above described actions are always executed by a TimingMaster on any successful reception of:

  • INIC.NetworkDiagnosisHalfDuplex.StartResult (in case a half-duplex diagnosis is triggered) or
  • INIC.NetworkDiagnosisFullDuplex.StartResult (in case a full-duplex diagnosis is triggered)

and respectively by a TimingSlave on any transition from NetInterface Off to centralized diagnosis mode.

 

Diagnosis Execution

In order to execute diagnosis, the INIC provides several functions that are used to start, run and complete the diagnosis process.

Half-duplex diagnosis

  • INIC.NetworkDiagnosisHalfDuplex() – to start the diagnosis on the TimingMaster device, see Section 23.2.3.12 .
  • ExtendedNetworkControl.EnableTx() – to enable the Tx output of the TimingMaster, see Section 23.4.11 .
  • ExtendedNetworkControl.ReverseRequest(RequestID = Diagnosis_V1) – to verify a specific connection between the DUT and the tester device. The function is also used to retrieve DUT and tester device positions and to give the tester device a unique and temporary node address during the diagnosis phase, see Section 23.4.10 .
  • INIC.NetworkDiagnosisHalfDuplexEnd() – to finish the diagnosis in the TimingMaster device, see Section 23.2.3.13 .
  • • Either the INIC.NetworkStartup() or the INIC.NetworkStartupExt() function is used to finish diagnosis in TimingSlave devices.
  • • If an ExtendedNetworkControl.ReverseRequest() message is not cyclically received by a device within 60 s, the diagnosis phase will be left.

 

Full-duplex diagnosis

  • INIC.NetworkDiagnosisFullDuplex() – to start the diagnosis on the TimingMaster device, see Section 23.2.3.10 .
  • ExtendedNetworkControl.Hello() – to get diagnosis relevant information of a particular node, see Section 23.4.1 .
  • ExtendedNetworkControl.Welcome() – to give a unique and temporary node address during the diagnosis phase, see Section 23.4.2 .
  • ExtendedNetworkControl.EnablePort() – to enable/disable a Network Port during the diagnosis phase, see Section 23.4.6 .
  • ExtendedNetworkControl.CableLinkDiagnosis() – to start a cable link diagnosis of a full-duplex coax network connection, see Section 23.4.7 .
  • INIC.NetworkDiagnosisFullDuplexEnd() – to finish the diagnosis, see Section 23.2.3.11 .

 

For further information go to: http://www.microchip.com/support .

 

Ring Break Diagnosis

Note: This functionality is chip-specific.
For details refer to Chip_RBD.

The RBD supports Network Ports that are configured in the following transceiver modes:

  • • LVDSUnidirectional or
  • • CoaxUnidirectional

To verify the integrity of the network, the INIC embeds a Ring Break Diagnosis (RBD).

 
Note: Network Port 1 is always disabled when performing Ring Break Diagnosis.
 
Phase 1: Activation

RBD can be triggered either by a INIC.NetworkRBD() command or via the power management interface, signaling STP , see also Table 4-1 . If RBD is triggered via power management interface, the INIC performs RBD as specified.

If the network has been already started up by either the INIC.NetworkStartup() or the INIC.NetworkStartupExt() function or it was woken up due to activity, it is also possible to start RBD.

The RBD must be started in all nodes within the time window t Diag_Start, so that the result of the diagnosis is reliable and interpretable.

During RBD all network and port values are invalid; this includes NodePosition , MaxPosition , FreeStreamingBW and PacketBW .

If INIC enters ForcedNA state during the period that RBD is performed, it leaves RBD.

 

Phase 2: Diagnosis

When RBD is entered, Availability changes to NotAvailable in INIC.NetworkStatus() (see page 164 ) and INIC.NetworkPortStatus() (see page 190 ). In this stage, no network communication is possible. Also AvailabilityInfo changes to Diagnosis .

If a network-related failure is detected, either PosDetected , DiagFailed or Pos0WeakSig can be returned. If RBDResult is PosDetected , the exact position can be read by means of parameter RBDPosition . If the result is DiagFailed , RBD exits and RBD Phase 3 will not be entered. For PosDetected or Pos0WeakSig , RBD is continued with Phase 3.

 

Phase 3: Delivery of Result

The result is sent by the INIC that is directly located after the ring break; in this case the INIC broadcasts the NetBlock.RBDResult.RBDStatus message (see page 151 ) to the network and to the EHC.

RBD is finished after the INIC.NetworkRBD.Result message has been sent to the EHC. The result is presented in function INIC.NetworkRBDResult() , see page 176 . If the value inside INIC.NetworkRBDResult() has not yet been updated or RBD was just started, then the content is Pending . After RBD is finished, the INIC enters NetInterface Off state, even if the ring is closed.

 

Physical Layer Diagnosis
Cable Diagnosis Result

Note: This functionality is chip-specific.
For details refer to Chip_NWDiagnosisHD .

The cable diagnosis result is solely used in combination with an external device. It allows the INIC to read-in external diagnosis information from its PowerController interface over the I 2 C Soft Port. The result is returned in the ExtendedNetworkControl.ReverseRequest(CableDiagnosisResult) function.

 

Cable Link Diagnosis

Note: This functionality is chip-specific.
For details refer to Chip_CableLinkDiagnosis .

The cable link diagnosis is used to verify a full-duplex physical connection between two INIC Network Ports. The cable link diagnosis is started with ExtendedNetworkControl.CableLinkDiagnosis.StartResult() . This is done by an external diagnosis module. The cable link diagnosis can be performed only on a single Network Port of the INIC at the same time. Parameter PortNumber identifies the Network Port on which the cable link diagnosis should be performed.

The Result of the verification process can be either

  • • a not connected or shorted cable,
  • • a physically terminated connection,
  • • a passive connection,
  • • an active connection or
  • • a failure detected during execution.
 
Note: A connected debug tool (e.g., INIC Explorer Interface Box) can affect the cable link diagnosis execution. A failure will be reported by a respective result.

 

All necessary tasks and algorithms of the cable link diagnosis are encapsulated in the INIC firmware. In order to perform a proper cable link diagnosis, the INIC firmware is no longer responsive to the outside, neither via the Network Port interface nor via the configuration interface. Also the I 2 C Port is not serviced during the verification phase which may lead to I 2 C clock stretching. For this reason the application has to take care that the application watchdog is adjusted to a safe timeout value and that the I 2 C Port on EHC side handles clock stretching in a proper way.

Note: The maximum period of time in which all ports are not serviced is 200 ms.

 

Physical Layer Test

Note: This functionality is chip-specific.
For details refer to Chip_PhysicalLayerTest .

The INIC provides integrated functions to support testing of the physical layer.

For executing the test, a Physical Layer Stress Test Tool (PhLSTT) is needed. The tool must be connected via the network to the Device Under Test (DUT). During the test it feeds the DUT with a defined stress test pattern. Both the test tool and the DUT log coding errors and unlocks to evaluate the physical layer for errors.

The PhLSTT uses the FBlock ExtendedNetworkControl (see Section 23.4 ) in the INIC to start the Physical Layer Test and to retrieve the corresponding result.

At the beginning of the test the INIC switches to RetimedBypassTimingMaster or RetimedBypassTimingSlave , depending on the Type selected. After the test is finished, the INIC switches back to its original mode.

The test duration spans the time of LeadIn and Duration and LeadOut . During the test, the network is in NotAvailable state and AvailabilityInfo is Diagnosis .

Figure 5-2: Physical Layer Test Flow
 

 

Fallback Operation

Fallback operation is a functional mode that can be entered for application use cases in which for example the network has been physically interrupted, but still should be able to sustain Synchronous Streaming data communication and limited control communication.

Using this mode implies a change of the communication direction – the standard communication direction is switched to the opposite direction. It also means that the functionality of the TimingMaster will be shifted to another network device. Hence, another network device must take over the role of a TimingMaster to preserve communication.

During Fallback operation, network communication is limited and it is no longer possible to reach all network devices – from now on device communication can only happen in downstream direction in the guarded chain of the network. The guarded chain is that section that contains devices which have been defined as Guard or Monitor via property Fallback Mode in the configuration string.

Guard:

Device that can act as a TimingSlave or TimingMaster.
During the master negotiation phase, the furthermost reachable guard in the guarded chain becomes the TimingMaster.
In case the TimingMaster drops out (e.g., due to malfunction or an interruption of the physical connection) the next guard that is in TimingSlave mode and does not detect network activity at its input takes over the role of a TimingMaster.

Initiator:

The initiator is a Guard that initiates Fallback operation. Per definition, only one initiator is allowed in the system.
In order to start Fallback operation, the initiator becomes an intermediate TimingMaster and sends out a specific system bit along with the network signal in order to trigger the Fallback mode in all guards that are located in the chained area and connected to the initiator. Depending on the master negotiation phase, the initiator may act as a TimingSlave during Fallback mode or stay in TimingMaster mode.

Monitor:

Device that can only act as TimingSlave.
The monitor automatically switches to Fallback mode as soon as it detects the specific system bit that signals the Fallback mode.
If the Monitor does not detect activity any longer, it will switch back to its standard operation mode.

 

The Fallback operation consists of the following phases:

Initiation/trigger phase

In this phase the communication over the network flows in standard direction.

  • • The Fallback mode is initiated via INIC.NetworkFallback.StartResult() function, see Section 23.2.3.14 .
  • • The initiator acts as a TimingMaster. All guards switch to Fallback mode trigger phase.

 

Master negotiation phase

In this phase, the network switches the communication direction from standard direction to opposite direction. This phase is also used to determine the new TimingMaster.

  • • The master negotiation phase is triggered by the ExtendedNetworkControl.ReverseRequest.-
    StartResult()
    message, see Section 23.4.10 . The message is sent as broadcast and received by all network nodes. Only devices that have been configured as Guard will take an action.
    Devices not configured as Guard will ignore this phase.
  • • The new TimingMaster is defined; this is the furthermost guard in the guarded chain that does not see any network activity at its input.

Guarded Fallback operation phase

In this phase, the network communication is still in opposite direction and will never change back.

With entering this phase, the node addresses of all devices are calculated. The node address is derived by 0x0F00 plus the node position. Once the node address has been calculated, it will not change during Fallback operation. The initiator is given a predefined node address, which is 0x0F40.

Any guard that acts as a TimingSlave will immediately take over the role as a TimingMaster in case it does not detect any longer network activity at its input.

Once a guard has switched from TimingSlave to TimingMaster mode, it will remain in TimingMaster mode, even though it may detect network activity at its input again. As a consequence, the guarded chain will shrink with respect to the number of active nodes if additional TimingMaster shifts occur.

  • • This phase cannot be left, except:
  • - Power off or a reset is applied to the device or
  • - an exit timer has been defined. The exit timer, t_Back, must be sent with the ExtendedNetworkControl.ReverseRequest() function.

 

Events

Events are generated on the INIC and reported to the EHC inside an event field of a status function. Events related to changes on the network are reported by the INIC.NetworkStatus() function.

A status function does not only incorporate event fields, but also general network parameters. The handling of event fields and general network parameters is different: An event is only reported once. This means, if the status function incorporates an event, this event will be cleared or reset to its default value after it has been sent to the EHC. General network parameters, also sent within the status function, still keep their values and will remain untouched.

INIC events are always in relation to the notification; therefore, to get an event, the EHC should be notified for the appropriate functions. Once the EHC has set a notification for a status function containing an event field, previous events are not remembered and hence not reported. When a notification is set, the event field is cleared or set to its default value.

 

Addressing

The addresses recognized by the INIC define on which address types distributed over the network the INIC will react. This can be considered as an address matching mechanism. Address types are:

  • NodeAddress
  • NodePositionAddress
  • GroupAddress
  • • MAC Address
Node Address

This is the logical address of the INIC and used for MCMs and MDPs. The NodeAddress and its customizable ranges are as follows:

0xFFFF
(factory default value):

Defines the mechanism of calculating the node address. In general, this value is only valid in the identification string. The final node address is then calculated as described below for dynamic calculated node addresses.

0x0100...0x013F:

This range is used for dynamic calculated node addresses and depends on the device's position in the network (node address = 0x0100 + position). It is calculated on transition to Available state if the value is 0xFFFF. It is also calculated on each reception of command NWM.Configuration.Status(NotOK) . If a value in the dynamic node address range is entered as a default value, it will be used as a valid node address, until the next reception of command NWM.Configuration.Status(NotOK) , which leads to a new calculation of the node address.

0x0010...0x00FF,
0x0140...0x02FF,
0x0500...0x0EFF:

These ranges are used for static node addresses, which are independent of the node position. The reception of command NWM.Configuration.Status(NotOK) does not lead to a new address calculation.

0x0F00...0x0FEF:

This range is used for administrative purposes. The values of this range can only be set by AdminNodeAddress.

0x0FFE:

Node Discovery: Node address of a device that is in initial state (e.g., after reset or transition to NotAvailable state). The node address is changed to a static node address, as programmed in the identification string, after the ExtendedNetworkControl.Welcome.StartResult () message was processed successfully.

 

Centralized Diagnosis: Initial node address used during half- and full-duplex diagnosis modes.

 

Node Position Address

The NodePositionAddress of the INIC is used for MCMs and MDPs. The NodePositionAddress is a combination of 0x0400 (factory default value) plus the node position. Hence, 0x0405 indicates the INIC is on node position five in the network.

Group Address

The GroupAddress of the INIC is used for MCMs and MDPs. Devices of the same type can be assigned the same group address and thus can be administered together. A message sent to this group address controls the entire device group. If message transmission fails the error of the last retry is reported.

The INIC has three group addresses, defined as follows:

Blocking Broadcast
Address:

The value of this group address is fixed to 0x03C8 and is not user-configurable. The broadcast message sent to this address targets all network nodes. The control communication over the network is blocked until every device has acknowledged the broadcast message or all retries are exhausted.
The blocking broadcast message is not supported for MDPs.

Unblocking Broadcast Address:

The value of this group address is fixed to 0x03FF and is not user-configurable. The control and packet communication over the network is not blocked. The broadcast message is used for uncritical data transmissions. Hence, messages sent to this address are not required to reach every network node.

User-configurable Group Address:

The value of the group address is user-configurable in the range of 0x0300 up to 0x03FE. A control or packet message that is sent to a group address targets all network nodes that are part of the group, i.e., all nodes that have the same value for the GroupAddress . This parameter can be customized via the Identification String.

 

MAC Address

For MEPs the INIC uses 48-bit MAC-addressing. The MAC address can be configured by function INIC.NetworkConfiguration() or by using the Driver Control Interface, see Section 20.2.3 and Chapter 22.0 .

Network Administration

Network Administration

This chapter describes the components implemented by the INIC to perform network administration tasks.

NetBlock

The FBlock NetBlock incorporates all functions that are relevant for network management. These functions have been implemented in the FBlock NetBlock according to the definitions prescribed in the FunctionBlock NetBlock, Rev. 3.0.3 [1] specification.

The behavior for some FBlock NetBlock functions is different depending on whether the application interface is in Protected or Attached Mode; for more details refer to Section 23.1 .

All functions that are not supported by the FBlock NetBlock will be answered with error code 0x03, FktID not available, or forwarded to the EHC if it is attached.

 

NetworkMaster

In the following situations the INIC acts as a NetworkMaster substitute to send NetworkMaster.ConfigurationStatus(NotOK) :

  • • On any transition to NetInterface Off state and the NetworkMaster is remote.
  • • After a NetBlock.Shutdown.Start(Execute) message was received and the NetworkMaster is remote. The NetworkMaster configuration status message is only sent to the internal NetworkMaster Shadow.
  • • PMP channel synchronization is lost and the NetworkMaster is local; see page 18 for information on how the INIC handles PMP synchronization loss.

 

NetworkMaster Shadow

The INIC contains a controller for the FBlock NetworkMaster functionality, which is called FBlock NetworkMaster Shadow. The FBlock NetworkMaster Shadow checks status messages that come from the FBlock NetworkMaster and stores its address information (logical address) and system configuration state. Additionally, when the application interface is in Attached Mode, all status messages will be forwarded to the EHC without changing the content of the received message.

Localizing the FBlock NetworkMaster

The INIC stores the address information of the FBlock NetworkMaster whenever the following conditions apply:

  • • A NWM.Configuration.Status(OK , NewExt , or Invalid) message is received.
  • • A NetBlock.FBlockIDs.Get message is received and the current system configuration state is NotOK .

Based on this address information, the INIC is capable to determine the location of the FBlock NetworkMaster, which can be either:

  • • Local – which means that the FBlock NetworkMaster is hosted in the EHC and connected to the configuration interface or
  • • Remote – which means that an external network device incorporates the FBlock NetworkMaster

After reset the address information is uninitialized; as a result the FBlock NetworkMaster location is unknown.

Deriving the System Configuration State

The INIC's internal system configuration state is derived as follows:

  • • A reception of NWM.Configuration.Status(OK , NewExt , or Invalid) leads to the system state OK .
  • • A reception of NWM.Configuration.Status(NotOK) leads to the system state NotOK .

After reset, the system configuration state is initialized to NotOK .

Every time the INIC receives a NWM.Configuration.Status(NotOK) message, a re-calculation of the device's dynamic NodeAddress will be triggered.

 

Resetting Stored Information

The INIC resets its stored address information to an uninitialized value if a INIC.Configuration.Status(NotOK) message was received.

On each configuration state transition from OK to NotOK , resources are invalidated (see Section 7.8 ).

 

ExtendedNetworkControl

Note: This functionality is chip-specific.
For details refer to Section 2.2.4 .

The FBlock ExtendedNetworkControl provides functions which are used to administer the INIC. In contrast to FBlock INIC, FBlock ExtendedNetworkControl is accessible from network side as well as from the configuration interface, regardless of whether the INIC resides in RemoteControl Mode or not.

FBlock ExtendedNetworkControl functions are used to control and support:

Resource Management

Resource Management

The purpose of the INIC’s resource management is to monitor the states of all resource objects, to define the handling of invalid resources and the behavior of the INIC supported muting.

Resource Objects

The INIC allows the customer to configure advanced routing of packet and streaming data in a simple and object-oriented fashion through a concept of on-chip resources, such as ports, sockets, and connections objects.

The INIC supports a limited number of concurrent resources that are administrated in the respective resource tables; therefore a free slot in the resource table is reserved on-demand by the call to the specific resource create function, e.g., INIC.NetworkSocketCreate() . A free slot is required to be able to create a new resource. If no free slot is available, an error code is reported. See Table 7-1 for information on how many tables and resources the INIC supports. After a resource has been created, a handle to the created resource is reported to the caller. For information on handles refer to Section 7.2 .

Table 7-1 shows the assignment between object type, resource identifier and number of resource table elements.

Note: Availability of resource objects is chip-specific, see Section 2.2 .

Table 7-1: Resource Objects

Object Type

Resource Identifier

Number of Resource Table Elements

Description

Ports

MediaLB

0x0A

See Chip_NumberOfMediaLBPorts

Network

0x0D

See Chip_NumberOfNetworkPorts

I 2 C

0x0F

1

I 2 C Software

0x14

1

SPI

0x10

See Chip_NumberOfSPIPorts

USB

0x12

See Chip_NumberOfUSBPorts

RMCK

0x1A

1

GPIO

0x1D

1

Streaming

0x16

2

0 is Port A; 1 is Port B

Socket

MediaLB

0x0B

40

Administered in a shared resource table.

Network

0x0E

SPI

0x11

USB

0x13

Streaming

0x17

Connection

Control

0x00

1

Packet

0x01

1

Synchronous

0x02

20

Administered in a shared resource table.

AVP

0x04

QoS

0x05

DiscFramePhase

0x09

IPCPacket

0x0C

Transceiver

0x19

1

Combiner and Splitter

Combiner

0x07

3

Splitter

0x08

3

PMP channel

PMP channel

0x03

3

0: MCM

1: ICM

2: RCM

 

Port

A port encapsulates a dedicated on-chip hardware interface together with the associated configuration.

Some ports are created by default by INIC, for example a Network Port. Others can be configured to be created either by default or manually, for example the SPI Port. Other ports can only be created manually by using an INIC API function, for example a Streaming Port.

Once a port has been created by using an INIC API function, it may be disabled and possibly re-created with a new configuration. This allows ports to be disabled when not currently in use.

Note: It is not possible to disable a port that was created by default.
 

A port must be created in order to allow sockets to be attached to it.

All created sockets attached to the port must be disabled before the port can be disabled.

 

Socket

A socket encapsulates a data channel of the port it is attached to. This data channel is where data is routed to or from when the socket is connected; a socket can be seen as one of the end points of a data route through the chip.

A socket has a data type classifier, a direction, and a size. The direction specifies if data is received or transmitted on the interface. The size specifies the highest-required bandwidth value that is necessary to ensure a safe data transmission.

A socket cannot be destroyed if it is currently being used in a connection.

 

Connection

In order to enable routing of data between two sockets, the sockets are required to be connected – which is accomplished when creating a connection.

A socket of direction Input can only be connected to another socket of direction Output , where both sockets must be of the same data type.

Depending on the data type, different rules for connecting sockets may apply. The rules are introduced by INIC as a way to ensure safe data transmission when two sockets have been successfully connected.

INIC provides on-chip support for enforcing requirements regarding system connection management and muting, where socket connections may be automatically muted or cleaned up depending on, for example, network-related events.

An overview of resources and the tables that are required to setup a specific connection is given in Resource Overview.

 

Combiner and Splitter

A combiner enables streaming data to be routed from a Network socket to a specified segment of a peripheral socket. A segment is a portion of the routing memory used by the peripheral socket. The combiner may be used in multiple connections, which enables grouping of data streams from multiple Network sockets into the same peripheral socket. For details refer to Chapter 16.0 .

A combiner cannot be destroyed if it is currently being used in a connection.

 

A splitter enables two variants of routing to be set-up. The first variant is a splitter created with a peripheral socket. It enables data routing from a specified segment of the peripheral socket to a Network socket. A segment is a portion of the routing memory used by the peripheral socket.

The second variant is a splitter created with a Network socket. This variant enables data routing in its whole (no segments) from the Network socket to multiple peripheral sockets. For details refer to Chapter 17.0 .

A splitter cannot be destroyed if it is currently being used in a connection.

 

PMP Channel

A PMP channels enables communication between the EHC and the INIC.

For detailed information refer to the Port Message Protocol V2.0.1 Specification [2] .

 

Resource Handles

Resources are referenced by a resource handle, which is used to uniquely identify a resource object. A resource handle is a 16-bit value that is a combination of the resource identifier and an object identifier. The object identifier is either the index pointing to the associated resource table or a user-defined tag.

The resource identifier is stored in the high byte and the object identifier is stored in the low byte.

Figure 7-1: Resource Handles

 

Every resource object has always an associated index handle.

To an index handle a tag handle can be created as an alias. A tag handle can only coexist with an existing index handle. Both handles can be used equivalent as a resource handle within the API. If a resource gets destroyed, both handles will become invalid.

An invalid resource handle has the value 0xFFFF.

 

 

 

Index Handles

Index handles are resource handles, which have the index pointing to the resource table as the object identifier. The range of the object identifier is between 0x00...0x7F.

 

Tag Handles

Tag handles are resource handles, which have a user-defined tag as the object identifier. The range of the object identifier is between 0x80...0xFF. A tag handle is an alias for an index handle. Depending on how a resource is tagged, the range of the object identifier is different:

  • • 0x80...0xCF: Tagged by API function INIC.ResourceTag() .
    The maximum available number of tags is 80.
  • • 0xD0...0xFF: Tag is assigned by the INIC for resources created based on configuration string adjustments. The maximum available number of tags is 48.
    For supported resource handles refer to Table 7-2 .
  • Tag Handles Assigned by INIC Based on Configuration string Adjustments

    Resource Type

    Tag Handle

    Control

    Control connection

    0x00F0

    Control Network socket

    0x0EF1

    Packet

    Packet connection

    0x01F2

    Packet Network socket

    0x0EF3

    Packet Input socket

    0x0BF4 (MediaLB) or

    0x13F4 (USB) or

    0x11F4 (SPI)

    Packet Output socket

    0x0BF5 (MediaLB) or

    0x13F5 (USB) or

    0x11F5 (SPI)

    IPCPacket

    IPCPacket connection (MediaLB to USB)

    0x0CF6

    IPCPacket MediaLB Input socket

    0x0BF7

    IPCPacket USB Output socket

    0x13F8

    IPCPacket connection (USB to MediaLB)

    0x0CF9

    IPCPacket USB Input socket

    0x13FA

    IPCPacket MediaLB Output socket

    0x0BFB

    Transceiver

    Transceiver connection

    0x19FC

    Transceiver Input socket

    0x0BFD (MediaLB) or

    0x13FD (USB) or

    0x11FD (SPI)

    Transceiver Output socket

    0x0BFE (MediaLB) or

    0x13FE (USB) or

    0x11FE (SPI)

    Proxy

    Proxy Network socket

    0x0EFF

    Builder

    See Section 7.3 .

 

Tag handles are useful to assign well known and static handles to all created resources. Once assigned, all resource handling is not based on dynamically assigned index handles any longer. This is helpful for system design and debugging purposes.

 

Examples
  • • A MediaLB Port is created by using the INIC.MediaLBPortCreate() function. The port resource handle has the port resource identifier 0x0A. The port index for this port is 0x00. Hence, the port resource handle is 0x0A00.
    The index of the port resource is always known. Assigning a tag to have a static and user-defined handle is optional.
  • • A MediaLB Socket is created by using the INIC.MediaLBSocketCreate() function. There have been already four sockets created. The socket resource handle has the socket resource identifier 0x0B. The socket index is automatically assigned according to the free slot in the socket resource table - this means the socket resource handle is 0x0B04. The socket can be tagged by using the INIC.ResourceTag() function to get a static and user-defined tag handle, e.g., 0x0B82.
  • • An SPI packet input socket is created via the configuration string. When creating the socket, the resource is automatically tagged by the INIC. Tag handle 0x11F4 can be used to access the resource, see Table 7-2 .
Resource Builder

The INIC provides a resource builder mechanism to assist an EHC in creating resources configured in the INIC’s configuration string. For this purpose, the configuration string enables up to four configurations. Each configuration is a collection of parameters for a Streaming Port socket, a Network socket and a synchronous connection.

The Streaming Port configuration is set independently of the resource builder configurations.

Network sockets only support static connection labels. These labels are located in the proxy area of the network channel.

Configurations can be always triggered to be created by the EHC using the FBlock INIC API function INIC.ResourceBuilder() , see Section 23.2.12.6 .

While using INIC.ResourceBuilder() , a so-called collection handle is returned together with handles for each of the created resources. The collection handle may be used instead of the individual handles with INIC.ResourceDestroy() .

Resources created by the resource builder mechanism are automatically tagged, see Table 7-3 .

Table 7-3: Tagged Resources Used By the Resource Builder Mechanism

Build Configuration Index

Resource Type

Tag

0

Collection Handle

0x15D0

Synchronous Connection

0x02D0

Network Socket

0x0ED1

Streaming Port Socket

0x17D2

1

Collection Handle

0x15D4

Synchronous Connection

0x02D4

Network Socket

0x0ED5

Streaming Port Socket

0x17D6

2

Collection Handle

0x15D8

Synchronous Connection

0x02D8

Network Socket

0x0ED9

Streaming Port Socket

0x17DA

3

Collection Handle

0x15DC

Synchronous Connection

0x02DC

Network Socket

0x0EDD

Streaming Port Socket

0x17DE

 

In addition, resources can be built automatically on an event set in the configuration string, see Auto-Build Trigger.

 

Resource Destruction

The INIC provides a mechanism where multiple resources can be destroyed by a single request.

INIC.ResourceDestroy() , see page 248 , takes a list of resource handles as a parameter. Each resource handle is processed one at a time and an empty result message is returned when all resources have been destroyed. The order in which resources should be destroyed is: connection first, followed by socket and port.

If an error occurs, the handle of the failed resource is included in the error message returned to the EHC. All handles prior to the failed handle in the list should be considered as successfully destroyed, while all resource handles after the failed handle in the list are unprocessed.

 

Resource States

A resource can be in one of the following states:

  • Valid: This is the normal state.
  • TemporaryInvalid: This is a temporary state in which it cannot be guaranteed that the resource is fully functional. This state can be reached for example during a network unlock.
  • Invalid: This is a permanent state in which the resource is unrecoverable.
    This state can be reached due to an event (e.g., the network has entered NetInterface Off state) that makes the resource unrecoverable. For information on events that can make resources invalid, refer to Section 7.8 .

While an Invalid resource state requires the resource to be destroyed (see Section 7.4 ), the TemporaryInvalid resource state can change back to the Valid state after recovering from the temporary condition.

In either case, the EHC must be able to quickly detect invalid resources and mute the output of the routed data, see Section 7.6.1 .

Figure 7-2: State Diagram of a Monitored Connection
 

The INIC sets monitored connections to TemporaryInvalid if an event occurs that either requires verification of the resources or the event is temporary. After the condition has ended or if the resources became Invalid, the EHC is notified.

 

Monitoring

The INIC contains a resource monitor that monitors the states of resources and handles the muting. As long as it does not require attention from the EHC, it is in State OK . In the case there are events that require the EHC to take an action, the resource monitor enters the state ActionRequired , and notifies the EHC. It stays in this state until the EHC requests the resource monitor to reset itself. Resetting the resource monitor means that it will return to the default state and release the MUTE pin, if it was configured as Enabled , see MUTE Pin Configuration. If there are still resources that are Invalid, it will immediately go back to State ActionRequired and notify the EHC; in this case there will be no intermediate notification of State OK .

The handling of resource monitoring is the same for all resources. However, the resource monitoring mechanism shown in Section 7.6.2.1 can be extended by implementing the muting concept, see Section 7.6.2.2 .

Muting

Muting applies only to synchronous streaming sink connections. Apart from the manual muting that is set by API function INIC.SyncMute() , the INIC supports the features described in this section.

Mute Pin

In order to provide a fast indicator to assist devices when muting is required, the INIC’s MUTE pin can be configured as Enabled to signal conditions when an external device (such as an analog-to-digital converter) should mute, see the INIC Hardware Data Sheet [3] . It is enabled by registering streaming sink connections for mute signaling by setting their MuteMode to MuteSignal . If an event occurs that can corrupt the data for any registered connection, the MUTE pin will be asserted. The devices that are receiving the data must be connected to the MUTE pin and mute when it is high. The MUTE pin is released by resetting the resource monitor from state ActionRequired , unless there is still a condition that prevents it. It cannot be released if any registered connection is in a TemporaryInvalid or Invalid state; in either case there will be another ActionRequired notification. The EHC can unmute the devices when receiving State OK from the resource monitor. However, devices must stay muted if the MUTE pin remains asserted; if necessary, the EHC should check the MUTE pin state before attempting unmute to reduce unnecessary glitches.

Setting the MUTE pin is global for all monitored connections.

 

Mute Mode

The MuteMode configures how the resource monitor will handle events that have made a streaming sink connection invalid. The MuteMode can be configured as follows:

Table 7-4: Mute Modes

Mute Mode

Behavior

NoMuting

No mute monitoring

MuteSignal

The MUTE pin is asserted when any registered connection may stream corrupted data .

AutoMute

Routes zeros on a temporarily invalid or invalid registered connection as soon as an event happens that may corrupt the connection, and it stops after it has verified that the connection state has been changed back to valid. These connections do not use the MUTE pin. Manual muting, which is defined by function INIC.SyncMute() , overrides automatic muting and will therefore prevent automatic unmuting as long as it is set.

 

EHC Implementation
Without Muting

When the EHC receives a ResourceMonitor.Status(ActionRequired) , it must check for any invalid resources and destroy all of them, see Figure 7-3 . It does this by first sending ResourceInvalidList.Get() , which will return invalid handles in the order they must be destroyed. The invalid resource handles are returned in ResourceDestroy.StartResult() , see page 248 . When the handles have been successfully destroyed, the EHC reads the list again and continues the process until it has received the END identifier in the list of invalid resource handles. While destroying resources, the resource monitor stays in State ActionRequired until receiving a ResourceMonitor.Set(Reset) from the EHC to request the resource monitor to go back to the default state. The process is then done.

The resource handles reported to the EHC are sorted for immediate processing. The sort order is predefined by INIC. Handles of socket connections are reported first, then all sockets, and last all ports. This is to simplify processing on EHC side such that no special consideration has to be taken to the destruction rules. The sorting is required since a port resource cannot be destroyed if there are still sockets attached to it, and a socket resource cannot be destroyed if it is still being used in a connection.

Figure 7-3 depicts a recommendation for a proper EHC implementation without considering the muting concept. An EHC example implementation with muting is shown in Section 7.6.2.2 .

 
Figure 7-3: EHC Implementation Proposal for Resource Handling without Muting
 

 

With Muting

Figure 7-4 shows an EHC implementation example that supports muting.

If the EHC has sink connections muted by the MUTE pin, it should ensure that the MUTE pin is not asserted when receiving State OK and if so, unmute them. Since the sink connections must mute immediately if the signal is set, it is recommended to do the implementation in a way that avoids short unmuted pulses.

Figure 7-4: EHC Implementation Proposal for Resource Handling with Muting
 
Application Examples
Temporarily Invalid Connections

Figure 7-5 shows an example in which a network unlock temporarily invalidates connections that are registered for MUTE pin changes. When Stable Lock has been acquired, the connections will go back to Valid; this event is notified with ResourceMonitor.Status(ActionRequired) . The EHC reads the list of invalid resources. Since there are no invalid resources, the EHC will get an empty list with the END identifier. It then resets the resource monitor. After the EHC has received the response that the INIC has deasserted the MUTE pin, it unmutes the devices; however, it must mute immediately if the MUTE pin has been asserted high again .

Figure 7-5: Unlock with Temporarily Invalid Connection
 

 

Permanently Invalidated Connections

Figure 7-6 shows an example in which monitored connections become permanently invalid, due to the INIC entering the NetInterface Off state. The EHC reads the list of invalid resources. Since there are more results to be reported than can fit in one message, the END identifier is not included and the EHC detects that it must read again. As destroyed resources are removed, the EHC can read and destroy in sequence; it will get the next handles in the following read. Multiple reads may be required to obtain all invalid handles in the list. The EHC may not be able to pass all the received handles to the destroy function and must then send multiple destroy requests. For simplicity it can request the list again after each completed destruction, the destroyed handles are then removed. In the figure it is assumed that all the handles could be sent in the final destroy.

Figure 7-6: Permanently Invalidated Connection
 

 

 

Events That Make a Resource Invalid

INIC continuously monitors events that render created resources invalid. The following sections give an overview of possible events.

Configuration Interface Enters Protected Mode

When the configuration interface enters Protected Mode, all resources created during runtime are marked invalid and automatically destroyed by the internal cleanup, see Section 3.2.3.1 .

 

Network Port Availability

If the configuration interface is in Attached Mode, a transition from INIC.NetworkPortStatus.Availability = Available to NotAvailable will cause resources associated with the respective Network Port to be marked invalid and reported to the EHC for processing.

Routing will be stopped automatically and any allocated network bandwidth will be released. The Network Port is no longer available for streaming data.
An example of invalidated connections and the handling of them is shown in Figure 7-6 .

Note: A transition from INIC.NetworkStatus.Availability = Available to NotAvailable means that the Network Port is no longer available, see page 164 for more information.

 

The EHC is always in control of destroying resources, even when INIC has automatically marked them as invalid.

In Remote Attached Mode, a transition from INIC.NetworkPortStatus.Availability = Available to NotAvailable will trigger the INIC to enter Protected Mode.

 

Network Configuration Status

The INIC enables on-chip support for aiding an EHC application in fulfilling system connection management requirements for streaming data connections. The following events cause invalid resources:

  • NWM.Configuration.Status(NotOK) triggers a transition from system state OK to system state NotOK.
  • Netblock.ShutDown.Start(Execute) triggers a transition from system state OK to system state NotOK.

 

Source Drop

The INIC continuously verifies the integrity of created streaming resources. If it detects a streaming source device which has stopped sourcing a network channel that is currently in use, it will report the affected network channel streaming resources as invalid.

While using loopback sockets, destroying the socket of direction Output prior to destroying the socket of direction Input will trigger the Input socket and any connection it may be used in to be reported as invalid.

Routing Budget

Routing memories and channels are shared between multiple resource objects. To use these resources in an optimum manner, resource planning is important. The resource budget must be planned during the application definition to prevent resource conflicts and waste of memory space.

Routing Memory

Routing memory is required to ensure a safe routing path (no data loss) for data between two resource objects. INIC manages routing memory internally when creating or destroying resource objects. Allocation and deallocation of routing memory can occur frequently. Although INIC uses a best-fit algorithm when managing routing memory, fragmentation may occur if memory blocks of varying sizes are allocated and deallocated in a highly dynamic fashion.

The INIC provides two types of routing memory:

  • • Standard routing memory, used by all resource objects
  • • Aggregation routing memory, provides additional memory resources to allow optimized data transmissions over USB

 

Routing Channels

A routing channel is required to enable data transfer between two resource objects (uni-directional). INIC manages the routing channels internally when creating or destroying resource objects.

 

For information on routing memory and routing channels refer to Section 2.2.5 .

 

 

Network Port

Network Port

Note: Availability of resource objects is chip-specific, see Section 2.2.2.1 .
For details refer to Chip_NumberOfNetworkPorts .

A Network Port enables support of port-specific network handling. It incorporates a network transceiver that can be configured in the following modes:

  • • LVDSUnidirectional
  • • CoaxUnidirectional
  • • CoaxBidirectional
  • • BalancedMediaUnidirectional

 

The network supports different communication channels for transferring data. There are some channels that support network administration. These channels are located in the network administrative area. Other channels are used to transport packet and streaming data. These channels are located in the source data area.

Channels in the network administrative area are:

  • Allocation channel
  • Control channel
  • Protected system channel
  • Timestamp channel

These channels are automatically established by the INIC (TimingMaster) at network startup.

 

Channels in the source data area are:

  • Packet channel
  • Synchronous channel
  • Isochronous channel
  • QoS packet channel

These channels are dynamically established during runtime on application request. An exception is the packet channel, which is also established at network startup by the INIC (TimingMaster) according to the configuration settings.

More information on network communication channels can be found in the MOST DLL specification [15] .

 

The INIC provides the possibility to reserve a dedicated area at the beginning of the source data area of the network frame for static channel allocation. This area is called the proxy channel. For more information, see Section 8.2 .

 

If a Network Port is available, it provides information on FreeStreamingBW. If a port is not available, the FreeStreamingBW is 0xFFFF. The FreeStreamingBW depends on the configured PacketBW or ProxyChannelBW.

A Network Port can be either Available or NotAvailable . Additional information is given in AvailabilityInfo .

A Network Port becomes Available if the TimingMaster has successfully established the network. It is also required that the Network Port is set to Used in either the configuration string by property Port Mode or during runtime by means of function INIC.NetworkPortUsed() , see Section 23.2.4.2 .

 

Behavior for INICs that provide two Network Ports

Network Port 1 is used as a daisy-chain port. All network communication channels are shared. Thus, Network Port 1 cannot administrate streaming resources; it always reports zero for FreeStreamingBW . If a port is Unused , the port is considered to be in bypass mode and AvailabilityInfo is switched to BypassedDisabled . If a port is Used , but inactive, the port is switched to BypassedRegular . When the port is active, AvailabilityInfo can be either Unstable or Stable , see also Section 23.2.4.2 .

If both ports are Unused , the network is shut down.

Configuration

In contrast to other resources, a Network Port is always created at startup. The port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.

Transceiver Mode

This configuration setting defines the transceiver mode to be used.

Behavior for INICs that provide two Network Ports

A Network Port can be set to Used or Unused either by customization of the Configuration String or via the INIC.NetworkPortUsed() function, see page 192 .

 

Port Mode

This configuration setting defines the initial operation mode of the Network Port.

 

Proxy Channel

A proxy channel is a reserved network frame area that is used for streaming transmission. To configure this area as reserved is up to the system integrator. The reservation is executed by the INIC (TimingMaster) on network startup.

Within this reserved area, connection labels can be mapped to individual frame bytes. The correct frame byte mapping is in the responsibility of the system integrator and must be done according to the following rules:

  • • The frame bytes must be consecutive - a gap in-between the frame bytes is not allowed
  • • The connection label value denotes the highest index of the frame bytes used

 

A mapped connection label is a static connection label; it remains on the network as long as the network is available (it is not deallocated dynamically). A static connection label has the highest bit set to indicate that it is static, once the Network socket is created. The range of valid values goes from 0x800C to 0x817F, for both input- and output sockets.

 

Sockets

A Network Port socket encapsulates the configuration settings that are required to access data streams on specific network channels. The DataType can be specified by function INIC.NetworkSocketCreate() . Packet and control sockets are automatically managed by the INIC, see page 193 .

Each Network socket requires a routing channel according to the data type for which it is created, see Section 2.2.1 .

To establish data routing, the Network socket must connect to a Network Port using the NetworkPortHandle.

The network bandwidth, specified by parameter Bandwidth when creating a socket, must be large enough to allow a safe data transmission. The selection of this value depends on the channel used, see Section 21.4 .

Using dynamic connection labels

Standardly, a Network socket is created with a dynamic connection label. INIC attempts to allocate the required network bandwidth when a Network socket of direction Output is created. For an Input socket, INIC attempts to connect to a provided ConnectionLabel . If the allocation or connection attempt fails, an error message is reported back with failure information. INIC automatically handles cleanup of partially allocated or connected network bandwidth in the event of an error.

If a Network socket is rendered invalid (see Section 7.8 ) while the network is available, INIC automatically releases the used network resources and reports them as invalid to the EHC.

 

Using static connection labels

A Network socket can be created with a static connection label to indicate that it should use a network channel from the reserved proxy channel (see Section 8.2 ). INIC attempts to connect to a provided ConnectionLabel when creating an Output socket or an Input socket. If the connection attempt fails, an error message is reported back with failure information.

If a Network socket is rendered invalid (see Section 7.8 ) while the network is available, the network channel will remain on the network.

 

Behavior for INICs That Provide Two Network Ports

A Network socket cannot be created on Network Port 1.

 

 

 

For general socket information refer to Section 7.1.2 .

 

MediaLB Port

MediaLB Port

Note: Availability of resource objects is chip-specific, see Section 2.2.2.2 .
For details refer to Chip_NumberOfMediaLBPorts .

The MediaLB Port is the interface to the Media Local Bus. It supports the handling of all network data types and is available in two physical layer options: MediaLB 3-Pin (single-ended) and MediaLB 6-Pin (differential). For an INIC that provides both physical layer options, the use of these options is mutually exclusive, i.e., either MediaLB 3-Pin or MediaLB 6-Pin can be used.

The clock speed which the MediaLB Port operates is a multiple of the network frame rate Fs. Thus the maximum frequency for MediaLB 3-Pin is 1024Fs and for MediaLB 6-Pin it is 8192Fs.

Configuration

The MediaLB Port can be created either by customization of the Configuration String or via the INIC.MediaLBPortCreate() function, see page 197 .

If the MediaLB Port is created via the configuration string, the port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.

If it is desired to create the MediaLB Port during runtime, the INIC.MediaLBPortCreate() function must be used. The port will be destroyed when the INIC enters Protected Mode.

Clock Config

The clock configuration setting provides various speed grades which the MediaLB Port should be run. The speed grades can be customized by the configuration string via property Port Speed or during runtime by changing parameter ClockConfig . Based on the chosen speed grade, either the MediaLB 3-Pin Port or the MediaLB 6-Pin Port will be created.

Table 9-1 shows the coherences between the MediaLB clock speed and the supported pin modes. The maximum values for available bandwidth and channel addresses are also dependent on the selected clock speed.

Table 9-1: Clock Configuration and Parameter Dependencies

Clock Speed

MediaLB
Pin Modes

Max. Available Bandwidth in

Max. MediaLB Channel Address

Quadlets

Bytes

256 x Fs

3-Pin mode

7

28

0x003E

512 x Fs

15

60

1024 x Fs

31

124

2048 x Fs

6-Pin mode

57

228

0x007E

3072 x Fs

86

344

4096 x Fs

116

464

6144 x Fs

160

640

8192 x Fs

214

856

 

 

 

 
Sockets

A MediaLB socket encapsulates the configuration settings that are required to access data streams on specific MediaLB channels. The DataType can be specified by function INIC.MediaLBSocketCreate() , see page 199 .

To establish MediaLB-based data routing, the MediaLB socket must connect to the MediaLB Port using the MediaLBPortHandle .

When a MediaLB socket is created, INIC attempts to allocate the required MediaLB bandwidth and assigns the allocated channel to the specified application channel address. If the allocation attempt fails, an error message is reported back with failure information. INIC automatically handles cleanup of partially allocated MediaLB bandwidth in the event of an error.

For general socket information refer to Section 7.1.2 .

Padding

Although bandwidth is allocated in quadlets, INIC is able to handle routing of a lesser number or a number not equally divisible by 4. Parameter Bandwidth specifies the number of bytes that should be routed. For example, a data stream which is 6 bytes wide – two 24-bit channels (stereo) – needs to have parameter Bandwidth set to 6 bytes. The allocated bandwidth on MediaLB will be padded to 8 bytes (2 quadlets). The padding mechanism must be considered when planning the resource budget for an application. The total available MediaLB bandwidth is decided by the configured clock speed.

Note: If a MediaLB Output socket is created with parameter Bandwidth set to a value not evenly divisible by 4, the contents of the padded bytes are not guaranteed.

 

The MediaLB bandwidth required to allow a safe data transmission depends on the selected channel.

 

Packet Multiplexing

MediaLB sockets of type Packet provide a packet multiplexing feature, which allows two MediaLB sockets of opposite direction to share the same physical channel(s). Using this feature requires a socket Bandwidth of at least 12 bytes.

Figure 9-1 depicts the packet multiplexing feature. Two physical channels are reserved: one for Tx and one for Rx direction. The remaining physical channels are used as multiplexed channels (see also Table 9-2 ).

Figure 9-1: Packet Multiplexing
 

The INIC monitors the Command field for activity. If the command is idle (NoData) or when an RxStatus busy has been detected, the controller will switch the ChannelAddress (e.g., from transmit address to receive address). It takes 12 bytes after a ChannelAddress has been transmitted until the MediaLB controller can detect if a channel is idle. Hence, an address switch will only occur every 12 bytes for an idle channel. As soon as the Command field signals Tx (or Rx), the shared physical channels will lock to that direction.

Table 9-2 gives an overview over the allocated MediaLB Bandwidth and the number of physical channels available for multiplexing.

Table 9-2: Packet Multiplexing – Physical Channel Allocation

Bandwidth in Bytes

Physical Channels

Reserved

Multiplexed

Tx

Rx

Tx or Rx

12

1

1

1

16

2

20

3

...

...

 

The packet multiplexing feature can be enabled via Multiplexing in the configuration string. For the MediaLB address and bandwidth settings refer to properties: MediaLB Input Address , MediaLB Input Bandwidth , MediaLB Output Address , and MediaLB Output Bandwidth .

The feature can also be enabled during runtime. Function INIC.MediaLBSocketCreate() is required to create a Packet socket, see Section 23.2.5.2 . The MediaLBSocketHandle returned is then used with the INIC.MediaLBPacketMuxSocketCreate() function to enable the multiplexing mechanism, see Section 23.2.5.3 .

When calling INIC.MediaLBPacketMuxSocketCreate() , the INIC creates a new socket based on the characteristics of the provided socket. It has the

  • • same data type,
  • • same size,
  • • opposite direction, and
  • • MediaLB ChannelAddress of the provided socket address + 2 (e.g., 0x0006 and 0x0008)
 
Note: Due to the dependency established, the socket created by INIC.MediaLBPacketMuxSocketCreate() must be destroyed first if the packet multiplexing feature is no longer used.

 

To enable packet data routing, the handle of both sockets may be used with function INIC.PacketAttach() , see Section 23.2.13.1 .

 

Inter MediaLB Device Communication

MediaLB sockets of type Proxy provide an inter MediaLB device transmission feature, that allows MediaLB devices to communicate without interference by INIC.

While creating a proxy socket, INIC allocates required physical channels for a specified channel address. When the socket is destroyed, physical channels are deallocated.

A socket of type Proxy may not be used in socket connections or with a combiner or splitter, hence INIC will not route data to/from the channel.

This feature can be used for specific use-cases in which the INIC is for example connected to an INIC I/O Companion IC.

USB Port

USB Port

Note: Availability of resource objects is chip-specific, see Section 2.2.2.3 .
For details refer to Chip_NumberOfUSBPorts and Chip_IPCPacket .

The USB Port allows the connection of an INIC as a USB device to any USB 2.0-compliant host. It supports the handling of all network data types (except QoSPacket ) and provides two physical layer options: a USB 2.0 default layer and a USB 2.0 HSIC (High-Speed Inter-Chip) layer, which is a layer variant designed for inter-chip communication. Both options are available on chip, whereas the use of these options is mutually exclusive, i.e., either the default USB 2.0 layer or the HSIC layer can be used.

The INIC implements a high-speed USB device with a data rate of 480 Mbit/s. As with any USB-compliant device, it is capable of falling back to full-speed mode (12 Mbit/s) if connected to a USB 1.x Port. In this mode, the INIC does not provide any endpoint, therefore creation of USB sockets is not possible and the USB Port cannot be used.

USB device communication is based on pipes. A pipe is an association between a device endpoint and the host controller. System software of the host controller establishes a pipe with each endpoint address the host wants to communicate with. This is part of the enumeration process.

Note: USB OUT endpoints represent the communication flow from EHC to INIC and USB IN endpoints represent the communication flow from INIC to EHC, where the EHC is the USB host.

 

The USB Port only supports bulk transfers. The maximum packet size of a bulk transaction is 512 bytes.

An overview of descriptors reported by the INIC can be found in Section 10.5 .

Requirements

The INIC contains a limited number of internal resources. In respect to this, data-type dependent USB endpoint requirements as listed in this section need to be considered to achieve proper operation. If the requirements are not met, data loss can happen.

The requirements define the least required number of bulk transactions per USB microframe used for one USB endpoint. The number of transactions depends on the desired data bandwidth of the connection.

With one bulk transaction per USB microframe, a maximum data bandwidth of 32 Mbit/s is reachable. Whenever a higher data bandwidth is required, the number of bulk transactions per microframe needs to be increased.

A/V Packetized

For A/V Packetized connections the number of required bulk transactions per microframe of a desired data bandwidth depends on the isochronous packet size and the number of frames packed into one bulk transaction. More details can be found in Section 21.4.1 .

Synchronous

For synchronous connections the number of required bulk transactions per microframe is fixed to 1.

Control and Packet

The packet connection has no dedicated requirement to the number of bulk transactions per microframe. In general, the number of bulk transactions needs to be in a range that covers the maximum throughput required.

 

Configuration

The USB Port can be created either by customization of the Configuration String or via the INIC.USBPortCreate() function, see page 209 .

If the USB Port is created via the configuration string, the port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.

If it is desired to create the USB Port during runtime, the INIC.USBPortCreate() function must be used. The port will be destroyed when the INIC enters Protected Mode.

PhysicalLayer

This configuration setting defines the USB Port’s physical layer either as standard USB 2.0 or as HSIC.

DeviceInterfaces

The USB interfaces that the device should support must be defined once the USB Port is created. This configuration is persistent as long as the port exists. The setting affects the content of the USB configuration descriptor returned by the INIC, see Section 10.5.3 . In full-speed mode, e. g. if connected to a USB 1.x Port, the returned device configuration will only contain an empty interface with no endpoints, independent from the configuration. In this mode, the creation of USB sockets is not possible.

The following device interfaces are supported:

This interface provides endpoints that can be used for the communication of control messages. Available OUT and IN endpoints are Chip_USBCtrlEpOutAddr and Chip_USBCtrlEpInAddr .

This interface provides endpoints that can be used for USB socket creation, restricted to the packet data type. Available OUT and IN endpoints are Chip_USBPktEpOutAddr and Chip_USBPktEpInAddr .

This interface provides a configurable amount of maximum 10 (OUT) and 10 (IN) endpoints, see Chip_USBStreamMaxEpCnt . If the configured range of endpoints overlaps the control and/or the packet interface, the amount of available endpoints is reduced. Streaming interface endpoints can be used for USB socket creation, restricted to the Sync and AVPacketized data types.
The USB Port configuration specifies the number of endpoints for each direction. Endpoint allocation starts with the endpoint number 1 (endpoint address 0x01 for the OUT, and endpoint address 0x81 for the IN direction).

Note: If the streaming interface is enabled, it is not allowed to set both endpoint numbers to zero.
Sockets

A USB socket encapsulates the configuration settings that are required to access data streams on specific USB pipes. The DataType can be specified by function INIC.USBSocketCreate() , see page 212 .

To establish USB-based data routing, the USB socket must be connected to a USB Port using the USBPortHandle . This, as well as further socket-related parameter settings, can be accomplished by using the INIC.USBSocketCreate() function, see page 212 . The endpoint address used to create sockets must be made available by the port configuration when the USB Port is created, otherwise the request will fail.

The parameter FramesPerTransaction defines the number of data frames that are transferred within one USB bulk transaction. The value depends on the data type being used, see Chapter 21.0 for details.

For general socket information refer to Section 7.1.2 .

For USB-related information refer to the USB 2.0 Specification [4] .

Padding in Synchronous Bulk Transactions

Since the duration of the network frame is six times shorter than the duration of one USB microframe, the minimum number of FramesPerTransaction must be 7. The maximum number of FramesPerTransaction (‘n’) depends on the Network socket bandwidth. The number of data bytes per transaction must not exceed 512 bytes. Therefore, FramesPerTransaction multiplied with the specified Network socket bandwidth must be less than or equal to 512 bytes, as shown in the example below.

If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC. This means, INIC always sends a packet of 512 bytes to the EHC, whereas the remaining number of bytes will be filled with dummy bytes. If the EHC is sending the packets to the INIC, it can either send shorter packets (without dummy bytes) or the packets with dummy bytes. In the latter case, the INIC discards the dummy bytes.

Example:

The synchronous socket bandwidth is 28 bytes. The value defined in parameter FramesPerTransaction is 0x000F. The calculated number of bytes is 420 bytes; this is a valid number since it is less than 512 bytes. Hence, the 512 byte USB microframe will be composed of 420 data bytes and 92 padded bytes.

Figure 10-1: Synchronous Bulk Transaction with Padding
 

 

Padding in A/V Packetized Bulk Transactions

FramesPerTransaction defines the number of isochronous packets filled-in into one USB transaction. The size of an isochronous packet can either be 188 or 196 bytes.

If FramesPerTransaction is 0x0002, padding is applied if the INIC is the transmitting device. This means, if INIC is sending a packet of 512 bytes to the EHC with two A/V packets filled in, the remaining bytes will be filled with dummy bytes. If the EHC is sending the packets to the INIC, it can either send shorter packets (without dummy bytes) or the packets with dummy bytes. In the latter case, the INIC discards the dummy bytes.

Figure 10-2: A/V Packetized Bulk Transaction with Padding
 

 

If FramesPerTransaction is 0xFFFF, no padding is applied.

Figure 10-3: A/V Packetized Bulk Transaction without Padding
 

The number of bulk transactions per USB microframe depends on the performance of the USB host, which is the EHC and the initiator of USB transactions. Higher speeds require more than one transaction per microframe, therefore it must be ensured that the performance of the EHC is suitable.

The maximum number of bulk transactions per microframe is 13. Therefore, the maximum number of A/V Packetized Isochronous Streaming connections depends on the number of USB bulk transactions required.

 

Vendor-Specific Requests

All parameters of a USB vendor request are transported in little-endian format. This section describes all vendor-specific requests the INIC supports.

Access the Driver Control Interface

The USB Port provides direct access to the DCI. If the USB device driver has no access to the regular INIC API (e.g., through the ICM channel), it can read or write DCI registers by issuing vendor-specific requests over USB. The DCI register set description can be found in Section 22.2 .

There are two vendor-specific device requests for reading and writing DCI registers:

bmRequestType

bRequest

wValue

wIndex

wLength

Description

11000000b

0xA0
(read register)

0x0000

Register index

0x0002, 0x0004,
0x0006, 0x0008

Note 1

01000000b

0xA1
(write register)

Register value

Register index

0x0000,
0x0004...0xFFFC

Note 2

Note 1: Returns the content of the requested registers to the host, starting with the first indexed register. wLength specifies the number of bytes to read and must be a multiple of 2. Not more than 8 bytes (4 consecutive registers) can be read at once.

2: If wLength is zero, no data will be sent to the device. Only one register will be written, as described by the register index and register value inside the setup packet.
If wLength is larger than zero, the data stage will contain further register index and register value pairs. Each of these 4 byte tuples will result in an additional register write. wLength must be a multiple of 4 bytes.

 

Descriptors
Device
 
Table 10-1: Device Descriptor

Name

Value

Hex

bLength

18

0x12

bDescriptorType

DEVICE

0x01

bcdUSB

2.0

0x0200

bDeviceClass

Class defined at interface level

0x00

bDeviceSubClass

Subclass defined at interface level

0x00

bDeviceProtocol

None

0x00

bMaxPacketSize

64

0x40

idVendor

Microchip-SMSC

0x0424

idProduct

Chip_USBProductID

bcdDevice

0.0.1

0x0001

iManufacturer

String descriptor #1

0x01

iProduct

String descriptor #2

0x02

iSerialNumber

String descriptor #3

0x03

bNumConfigurations

1

0x01

 

String
 
Table 10-2: String Descriptor #0

Name

Value

Hex

bLength

4

0x04

bDescriptorType

STRING

0x03

wLANGID[0]

English (US)

0x0409

 

Table 10-3: String Descriptor #1

Name

Value

Hex

bLength

30

0x1E

bDescriptorType

STRING

0x03

Content

“Microchip-SMSC”

 

Table 10-4: String Descriptor #2

Name

Value

Hex

bLength

16

0x10

bDescriptorType

STRING

0x03

Content

Chip_USBProductName

 

Table 10-5: String Descriptor #3

Name

Value

Hex

bLength

28

0x1C

bDescriptorType

STRING

0x03

Content 1

Diag ID-unique firmware built number e.g., “00AB-00000060”

Note 1: The string consists of two values in zero-padded hex notation, concatenated by a hyphen: “XXXX-XXXXXXXX”. The first value is the Diag ID as defined in the configuration string. The second value is a unique firmware built number.

 

Configuration

This descriptor is used in USB high-speed mode.

 
Table 10-6: Configuration Descriptor

Name

Value

Hex

Configuration Descriptor

bLength

9

0x09

bDescriptorType

CONFIGURATION

0x02

wTotalLength

Depends on the USB Port settings

0xXXXX

bNumInterface

Depends on the USB Port settings

0x00…0x04

bConfigurationValue

1

0x01

iConfiguration

0

0x00

bmAttributes

Remote Wakeup = No, Self Powered = Yes

0xC0

bMaxPower

2 mA

0x01

Control Interface Descriptor (Depends on the USB Port Settings)

bLength

9

0x09

bDescriptorType

INTERFACE

0x04

bInterfaceNumber

Depends on the USB Port settings

0x00...0x03

bAlternateSetting

0

0x00

bNumEndpoints

2

0x02

bInterfaceClass

Vendor specific

0xFF

bInterfaceSubClass

Control interface

0x01

bInterfaceProtocol

Reserved

0x00

iInterface

0

0x00

Endpoint Descriptor

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = OUT, Endpoint ID = 7, 15

0x07, 0x0F

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

Endpoint Descriptor

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = IN, Endpoint ID = 7, 15

0x87, 0x8F

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

Packet Interface Descriptor (Depends on the USB Port Settings)

bLength

9

0x09

bDescriptorType

INTERFACE

0x04

bInterfaceNumber

Depends on the USB Port settings

0x00...0x03

bAlternateSetting

0

0x00

bNumEndpoints

2

0x02

bInterfaceClass

Vendor specific

0xFF

bInterfaceSubClass

Packet interface

0x02

bInterfaceProtocol

Reserved

0x00

iInterface

0

0x00

Endpoint Descriptor

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = OUT, Endpoint ID = 6, 14

0x06, 0x0E

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

Endpoint Descriptor

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = IN, Endpoint ID = 6, 14

0x86, 0x8E

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

IPC Packet Interface Descriptor (Depends on the USB Port Settings)

bLength

9

0x09

bDescriptorType

INTERFACE

0x04

bInterfaceNumber

Depends on the USB Port settings

0x00...0x03

bAlternateSetting

0

0x00

bNumEndpoints

2

0x02

bInterfaceClass

Vendor specific

0xFF

bInterfaceSubClass

IPC packet interface

0x03

bInterfaceProtocol

Reserved

0x00

iInterface

0

0x00

Endpoint Descriptor

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = OUT, Endpoint ID = 13

0x0D

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

Endpoint Descriptor

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = IN, Endpoint ID = 13

0x8D

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

Streaming Interface Descriptor (Depends on the USB Port Settings)

bLength

9

0x09

bDescriptorType

INTERFACE

0x04

bInterfaceNumber

Depends on the USB Port settings

0x00...0x03

bAlternateSetting

0

0x00

bNumEndpoints

1...20

0x01…0x14

bInterfaceClass

Vendor specific

0xFF

bInterfaceSubClass

Streaming interface

0x04

bInterfaceProtocol

Reserved

0x00

iInterface

0

0x00

Endpoint Descriptor (One for Each OUT Endpoint)

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = OUT, Endpoint ID = 1…10

0x01…0x0A

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

Endpoint Descriptor (One for Each IN Endpoint)

bLength

7

0x07

bDescriptorType

ENDPOINT

0x05

bEndpointAddress

Direction = IN, Endpoint ID = 1…10

0x81…0x8A

bmAttributes

Transfer Type = Bulk

0x02

wMaxPacketSize

Max. 512 Bytes

0x0200

bInterval

Never NAKs

0x00

 

Other-Speed Configuration

This descriptor is used in USB full-speed mode.

 
Table 10-7: Other-Speed Configuration Descriptor

Name

Value

Hex

Configuration Descriptor

bLength

9

0x09

bDescriptorType

OTHER_SPEED_CONFIGURATION

0x07

wTotalLength

18

0x0012

bNumInterface

1

0x01

bConfigurationValue

1

0x01

iConfiguration

0

0x00

bmAttributes

Remote Wakeup = No, Self Powered = Yes

0xC0

bMaxPower

2 mA

0x01

Interface Descriptor

bLength

9

0x09

bDescriptorType

INTERFACE

0x04

bInterfaceNumber

0

0x00

bAlternateSetting

0

0x00

bNumEndpoints

0

0x00

bInterfaceClass

Vendor specific

0xFF

bInterfaceSubClass

Vendor specific

0x06

bInterfaceProtocol

Vendor specific

0x50

iInterface

0

0x00

 

Device Qualifier
 
Table 10-8: Device Qualifier Descriptor

Name

Value

Hex

bLength

10

0x0A

bDescriptorType

DEVICE_QUALIFIER

0x06

bcdUSB

2.0

0x0200

bDeviceClass

Class defined at interface level

0x00

bDeviceSubClass

Subclass defined at interface level

0x00

bDeviceProtocol

None

0x00

bMaxPacketSize0

64 bytes

0x40

bNumConfigurations

1

0x01

bReserved

0x00

 

SPI Port

SPI Port

Note: Availability of resource objects is chip-specific, see Section 2.2.2.4 .
For details refer to Chip_NumberOfSPIPorts .

The Serial Peripheral Interface (SPI) Port of the INIC allows to directly interface with microcontrollers that provide a standard SPI, see the INIC Hardware Data Sheet [3] .

When the SPI Port is created, the INIC operates as an SPI bus slave.

Configuration

The SPI Port can be created either by customization of the Configuration String or via the INIC.SPIPortCreate() function, see page 204 .

If the SPI Port is created via the configuration string, the port cannot be destroyed during runtime and it also remains persistent when the INIC enters Protected Mode.

If it is desired to create the SPI Port during runtime, the INIC.SPIPortCreate() function must be used. This time, the port will be destroyed when the INIC enters Protected Mode.

ClockMode

This configuration setting provides various SCLK clock modes for the phase and polarity signals used by the SPI bus slave.

 

Sockets

An SPI Port socket encapsulates the configuration settings that are required to access data on the SPI. The DataType can be specified by function INIC.SPISocketCreate() , see page 206 .

When creating an SPI socket, there is a fixed logical channel assignment for combinations of DataType and Direction, see Table 11-1 .

 
Table 11-1: SPI Socket – Logical Channel Assignment

Data Type

Direction

SPI Channel Number

Packet

Input

0

Output

1

Control

Input

2

Output

3

 

To establish SPI-based data routing, the SPI socket must connect to an SPI Port using the SPIPortHandle . This, as well as further socket-related parameter settings, can be accomplished by using the INIC.SPISocketCreate() function.

For general socket information refer to Section 7.1.2 .

 

Access the Driver Control Interface (DCI)

Note: This functionality is chip-specific.
For details refer to Chip_SPINativeDCIAccess .

The SPI Port provides direct access to the DCI. If the SPI device driver has no access to the regular INIC API (e.g., through the ICM channel), it can read or write DCI registers by using dedicated Read and Write commands as described in the INIC Hardware Data Sheet [3] . The DCI register set description can be found in Section 22.3 .

Commands for reading and writing DCI registers are as follows:

bCmdCode

bRegsNum

Data

0xA0
(read register)

1...15

{wRegIndex, wRegValue}[1...15]

 

 

0xA1
(write register)

The command features a header section with two parameters for the command code (bCmdCode) and the number of registers (bRegsNum) to be serviced.

bCmdCode defines a read or write operation which is applied to all register pairs [index and value] listed in the data payload section.

bRegsNum indicates the number of register pair [index and value] to be read or written.

Data is formed by a list of [index and value] pairs.

In case of a Write command the register value (wRegValue) represents the data to be written to a DCI register. For a write command no response data is provided.

When a Read command is executed, the register value parameter is not considered, but it has to be present in the command. For a Read command the response read from the INIC has the same structure as the command with the register values filled in.

Streaming Port

Streaming Port

Note: The functionality described in this chapter is chip-specific.
For details refer to Section 2.2.2.5 .

The INIC provides two Streaming Ports: Streaming Port A and Streaming Port B.

A Streaming Port can be configured to be compatible to one of several industry-standard serial data formats, which support media connections to multimedia source and/or sink devices that handle frame-based data streams. For example, you can use the Sequential data format (see DataAlignment) for Pulse Density Modulation (PDM) mono-microphone applications (see the INIC Hardware Data Sheet [3] for further information).

The Streaming Ports support the Synchronous Streaming transmission type.

Each Streaming Port has a dedicated set of serial data pins: SRXA0 and SRXA1 for Streaming Port A and SRXB0 and SRXB1 for Streaming Port B. In addition to this pin set, each Streaming Port may provide clock ( SCK ) and synchronization ( FSY ) signals. It is also possible to link Streaming Port B to Streaming Port A, in which case the clocking signals of Streaming Port A are shared by all the data pins of the two ports, see Section 12.1.3 .

The Streaming Ports provide a loopback feature in which streaming data received from a network channel can be routed back to the network on a different network channel, see Section 23.2.8.3 . This feature allows for the measurement of network latency.

 

Configuration

Some of the parameters of the Streaming Port configuration are defined within the base configuration. These are static parameters that are set once and not intended to be changed during runtime. Parameters of this type are: OperationMode , PortOption , ClockMode , and ClockDataDelay .

Other parameters of the Streaming Port configuration can be set when the port is created. These settings can be changed by destroying and recreating the Streaming Port resource, hence these are dynamic configuration options. Parameters of this type are: ClockSpeed , ClockConfig and DataAlignment .

All configuration settings can be set either through the Configuration String or by using the FBlock INIC API functions INIC.StreamPortConfiguration() , see page 216 and INIC.StreamPortCreate() , see page 219 .

If the FBlock INIC API functions are used, the base configuration has to be set on EHC attaching to INIC, since it is cleared on a detach event. A base configuration must be defined for both Streaming Port A and Streaming Port B in order to create any port resources.

 

Base Configuration Options

Operation mode

This configuration setting defines the operation mode of the Streaming Port. One option is available: Generic Streaming.

 

Port option

This configuration setting defines the direction of the physical data pins of the port. Various options are available, depending on the selected operation mode. See the INIC Hardware Data Sheet [3] for more information.

Clock mode

Output / Input

While configured as Output , INIC drives the FSY/SCK signals as outputs and is frequency locked to the network clock.

When configured as Input , the FSY/SCK signals must be driven externally. The external device must use the INIC's remote master clock, RMCK, as its reference for clock generation.

 

OutputPhaseLocked

INIC drives the FSY/SCK signals as outputs, phase- and frequency locked to the network clock.

 

Output1SCK 1,2 1

INIC drives a 1-bit FSY signal as output. This feature is typically used with devices that have no edge detection. This format is only used with TDM formats, see DataAlignment.

 

Output1SCKPhaseLocked 1,2

INIC drives a 1-bit FSY signal as output, phase locked to the network clock. This feature is typically used with devices that have no edge detection. This format is only used with TDM formats, see DataAlignment.

 

Wildcard

Used for Linking Ports.

 

Clock data delay

This setting indicates if the falling or the rising edge of the synchronization signal denotes start of frame. It also indicates if there should be a single clock cycle delay between the start of frame and the start of the frame data.
When set to Delayed , start of frame data is required to occur on the falling edge of the synchronization signal. For example, left-channel audio data of a stereo stream should occur on the falling edge; this is required for I 2 S™ compatibility. When set to Delayed , only left-justified, sequential, or Time-Division Multiplexing (TDM) formats are available.
When set to BitDelayedOnly , start of frame data is required to occur on the rising edge of the synchronization signal.
BitDelayedOnly is solely used with TDM formats, see DataAlignment.

 

Dynamic Configuration Options

Clock speed

This setting indicates the clock speed configuration of the SCK signal. Fs is the network sampling frequency.

Data alignment

This configuration setting specifies in which way the data bytes are required to be located within the Streaming Port frame. Multiple industry standard formats are supported, see the INIC Hardware Data Sheet [3] for more information.

 

Linking Ports

To link Streaming Port B to Streaming Port A, both ports must be set to Generic . For Streaming Port B ClockMode, ClockDataDelay and ClockConfig must be set to Wildcard . The Wildcard means that the settings from Streaming Port A are inherited when setting the configuration for Streaming Port B.

If Streaming Port B is linked to Streaming Port A, all data pins share the FSY and SCK signals. The clock signals are enabled when Streaming Port A is created. Creating Streaming Port B is optional. Therefore, the following conditions must be taken into account when creating ports:

  • • The port configurations for both ports must be set before the ports can be created.
  • • Streaming Port A must be created before Streaming Port B can be created.
 

When destroying the ports, the following must be taken into account:

  • • Streaming Port B must be destroyed before Streaming Port A can be destroyed.

 

Sockets

A Streaming Port socket encapsulates the configuration settings required to enable routing of streaming data between a network channel and a serial interface pin. The DataType can be specified by function INIC.StreamSocketCreate() .

Parameter PortOption of the Streaming Port’s base configuration configures the availability and direction of the data pins. The direction of a socket must comply with the direction of the pin to which it is associated.

The size of the socket specifies the number of bytes per Streaming Port frame to be routed. The clock speed configured for the Streaming Port and the chosen routing format limit the compatible sizes.

See Section 12.3.1 for an example where an I 2 S standard compliant routing format is configured. Refer to Section 23.2.8.4 for a reference of the API command used in INIC.StreamSocketCreate() .

For general socket information refer to Section 7.1.2 .

Typical Application Examples
Inter-IC Sound (I²S)

This section gives an example of how to configure the Streaming Port and sockets to setup a use case for 16-bit stereo audio streaming between the INIC and an external audio codec using an I 2 S-compatible format. The INIC generates the clock signals required by the CODEC. The clock signals are frequency locked to the time base of the network (synchronous).

Approach 1: base configuration using the configuration string (see Chapter 24.0 )

Implement the steps as follows to configure Streaming Port A and Streaming Port B:

1. Set Base Configuration Load to LoadedAtStartup .

 
Note: This does not mean that the Streaming Port(s) resources are created per default. Only the base configuration is set.

 

2. Set OperationMode (Port A Operation Mode and Port B Operation Mode) to Generic .

3. Set PortOption (Port A Option and Port B Option) to InOut .

4. Set the clock mode (Port A Clock Mode) to Output and Port B Clock Mode to Wildcard .

5. Set the clock delay for data (Port A Clock Data Delay) to Delayed and Port B Clock Data Delay to Wildcard .
This setting adjusts the start of frame such that it occurs on the falling edge of FSY . It also introduces one clock cycle of delay between start of frame and start of frame data. Enabling this setting is required for I 2 S compatibility.

 

The Wildcard settings are used to link Streaming Port B to Streaming Port A, see Section 12.1.3 .

 

Approach 2: base configuration using the INIC.StreamPortConfiguration.SetGet() command (see Section 23.2.8.1 )

Send the following command to configure Streaming Port A:

INIC.StreamPortConfiguration.SetGet()(Index = StreamPortA,
OperationMode = Generic,
PortOption = InOut,
ClockMode = Output,
ClockDataDelay = Delayed

Send the following command to configure Streaming Port B:

INIC.StreamPortConfiguration.SetGet()(Index = StreamPortB,
OperationMode = Generic,
PortOption = InOut,
ClockMode = Wildcard,
ClockDataDelay = Wildcard)

 

 

Steps to continue, after the base configuration is done

1. Create the Streaming Port resource

INIC.StreamPortCreate.StartResult(Index = StreamPortA ,
ClockConfig = 64Fs ,
DataAlignment = Left16Bit)

INIC.StreamPortCreate.Result (StreamPortHandle = 0x1600 )

2. Create the Network Port socket of direction input (ConnectionLabel 0x0043 already exists on the network)

INIC.NetworkSocketCreate.StartResult(NetworkPortHandle = 0x0D00,
Direction = Input ,
DataType = Sync ,
Bandwidth = 0x0004,
ConnectionLabel = 0x0043 )

INIC.NetworkSocketCreate.Result(NetworkSocketHandle = 0x0E02 )

3. Create a Streaming Port socket of direction output

INIC.StreamSocketCreate.StartResult(StreamPortHandle = 0x1600,
Direction = Output ,
DataType = Sync ,
Bandwidth = 0x0004,
StreamPinID = SRXA1)

INIC.StreamSocketCreate.Result(StreamSocketHandle = 0x1703 )

 

4. Connect the sockets

INIC.SyncCreate.StartResult( SocketHandleIn = NetworkSocketHandle (0x0E02),
SocketHandleOut = StreamSocketHandle (0x1703),
DefaultMute = False)

INIC.SyncCreate.Result(SyncHandle = 0x0200 )

 

By using either approach 1 or 2 for the base configuration and performing the steps required to setup the socket connection, now the 16-bit audio stream is routed to the output pin SRXA1 on Streaming Port A according to the Delayed-Bit Alignment format, see the INIC Hardware Data Sheet [3] .

 

 

 

RMCK Port

RMCK Port

The RMCK Port encapsulates the configuration of the RMCK pin. It can generate a clock signal that is synchronous to the network clock which can be used as a master clock to synchronize external components on the node to the common network clock.

Configuration

The output frequency on the RMCK pin is decided by parameter Divisor , which divides a 3072Fs clock that is phase locked to the network, i.e., the output frequency is synchronous to the network clock.
The RMCK Port can be opened by default by enabling it in the configuration string (see Port Create) and configured by setting the desired divisor (see Divisor).

 

 

I2C Port

I²C Port

The Inter-Integrated Circuit (I 2 C) Port of the INIC allows to directly interface with devices that provide a standard I 2 C interface.

The INIC offers two operation modes:

  • • Slave mode – only used in conjunction with an EHC applying the PMP protocol (see Chapter 3.0 )
  • • Master mode – INIC generates the clock signals and initiates the communication to slave devices
Configuration

The I 2 C Port can be created by customization of the Configuration String or via the INIC.I2CPortCreate() function, see page 229 .

If the I 2 C Port availability is configured via the configuration string, the port cannot be destroyed during runtime and it remains persistent when the INIC enters Protected Mode.

If it is desired to create the I 2 C Port during runtime, the INIC.I2CPortCreate() function must be used. In this case, the port will be destroyed when the INIC enters Protected Mode.

Slave mode

When the I 2 C Port is created at startup (Port Create in the configuration string must be set to CreatedAtStartup ), the INIC operates as an I 2 C-bus slave. This mode is static and therefore cannot be changed during runtime.

Master mode

To use the I 2 C Port as I 2 C-bus master, Port Create in the configuration string must be set to NotCreatedAtStartup . In addition, the interfaces for PMP communication (Configuration Interface and Application Interface) must be set to MediaLB or USB . If the INIC is not connected to an EHC, None must be selected.

Calling the INIC.I2CPortCreate() function during runtime and setting the OperationMode to Master , enables the I 2 C-bus master mode. In this mode, the INIC offers two different settings for the transfer speed ( Speed ): 100 kHz (Standard-mode, default) and 400 kHz (Fast-mode).

Using this mode makes the INT pin available as a GPIO, see the INIC Hardware Data Sheet [3] .

 

Slave Mode

Once the I 2 C Port is created in slave configuration, the port will be available to the EHC as the communication interface. Bidirectional control message exchange is performed over the PMP channels, see Section 3.1.1 . The EHC acts as the I 2 C bus master.

The I 2 C bus master may drive the bus with a clock rate of up to 400 kHz. Clock stretching provides an appropriate handshake mechanism to let the INIC adapt the data transfer rate dynamically. The actual processing time varies, based on the overall load of tasks.

The I 2 C slave address of the INIC is specified in the 7-bit slave addressing scheme. The value defaults to 0x20, however the Port Address can be changed via the configuration string.

For the I 2 C Port pin connection refer to the INIC Hardware Data Sheet [3] .

Master Mode

Once the I 2 C Port is created in master configuration, the read sequence is initiated with one of the I 2 C Port read functions ( INIC.I2CPortRead() or INIC.I2CPortReadExtended() ) and the write sequence is initiated with the INIC.I2CPortWrite() function; examples are shown in Section 14.3.1 . The functions specify the handle of the port, the transfer mode ( Mode ), the slave address, and the length of data.

The I 2 C-bus master driver supports the following message types:

  • • Single message – master writes n data bytes to a slave device ( DefaultMode ), see Figure 14-1 .
  • • Single message – master reads n data bytes from a slave device ( DefaultMode ), see Figure 14-1 .
  • • Single message – master writes n data bytes, divided in m blocks of chunks, to a slave device ( BurstMode ), see Figure 14-2 .
  • • Combined message – master issues multiple reads/writes to one slave device ( RepeatedStartMode ), see Figure 14-3 ; for information on the repeated start format refer to the INIC Hardware Data Sheet [3] .
Application Examples

The following examples depict some standard communication sequences, which can be used for most use cases.

Figure 14-1 shows an example of a single read/write transaction.

Figure 14-1: I²C Read/Write
 

 

Figure 14-2 shows an example of a burst transaction writing multiple data chunks.

Figure 14-2: I²C Write Burst Mode
 

 

Figure 14-3 shows an example of a repeated start transaction. At the beginning a write is initiated with a subsequent read.

Figure 14-3: I²C Repeated Start
 

 

GPIO Port

GPIO Port

The INIC allows certain pins to be reprogrammed from their default functionality to support general purpose input/output (GPIO) functionality. GPIOs are not available as long as they are used in any of the INIC API functions (apart from those that are related to GPIOs configuration) or configured in the configuration string.

Configuration

The GPIO Port can be created via the INIC.GPIOPortCreate() function, see Section 23.2.11.1 . Enabling the GPIO Port leaves the pin configuration untouched. To change a pin into a GPIO pin, it has to be configured via the INIC.GPIOPortPinMode() function, see Section 23.2.11.2 . Depending on the pin configuration, the controlling application (EHC or remote application) can receive a notification via INIC.GPIOPortTriggerEvent() , see Section 23.2.11.4 , when trigger events on the pins are detected.

To allow pin re-configuration during runtime, the pin configuration is separated from the port creation. For detailed information refer to the INIC Hardware Data Sheet [3] .

 

Trigger

To get trigger events, the INIC.GPIOPortTriggerEvent() function must be entered in the notification matrix. For an EHC, notification is not supported when entering Device Attach Mode, instead the command INIC.Notification.Set() must be sent to activate notification on trigger events. The command must also be sent for a remote application.

Note: INIC.Notification.Set() must be called before the first pin is configured with a trigger condition. If this is done later, the INIC.GPIOPortTriggerEvent() received for INIC.Notification.Set() may contain old/unspecified trigger events from already configured pins.

 

The trigger condition is configured via the INIC.GPIOPortPinMode() function and describes the Mode on which the controlling application can react. The status message is sent when:

  • • the GPIO Port is created,
  • • the controlling application registers for notification, and
  • • a trigger event has been detected.

 

The following trigger classes are available:

Edge trigger

Includes rising and falling edge triggers for input, debounced input and output (open-drain) pins. Each time a configured edge event is detected, a notification via INIC.GPIOPortTriggerEvent() is sent by the INIC.

Level trigger

Includes high-level and low-level triggers for input, debounced input, and output (open-drain) pins. Level triggers are implemented as one-shot triggers. Triggers of this type are signaled once only. To receive further trigger events, the trigger must be re-enabled by re-configuring parameter Mode of INIC.GPIOPortPinMode() .

For more information on triggers refer to the INIC Hardware Data Sheet [3] .

Application Examples
Edge Sensitive Input

Figure 15-1 shows an example sequence chart that handles the GP0 pin as an input trigger with an edge sensitive trigger configuration. The GP0 pin is configured to react on the InputTriggerRisingEdge .

Figure 15-1: Edge Sensitive Input
 
 
Level Sensitive Input

Figure 15-2 shows an example sequence chart of how an controlling application can use the GP0 pin with the trigger configuration InputTriggerHighLevel .

Figure 15-2: Level Sensitive Input
 

Due to the fact that the trigger input is a level signal, the detection of any further input events of this signal will be disabled directly after the trigger message INIC.GPIOPortTriggerEvent.Status has been sent. The detection stays disabled until the controlling application calls INIC.GPIOPortPinMode() to tell the INIC that it can react on the next input level.

 

Sticky Input

Figure 15-3 shows an example sequence chart of how a controlling application can use the GP0 pin with the pin configuration InputStickyHighLevel to poll for small high level pulses.

Figure 15-3: Sticky Input
 

The sticky bit can be only reset when the controlling application calls INIC.GPIOPortPinMode() to tell the INIC that it can detect the next sticky level.

Combiner

Combiner

Note: Availability of resource objects is chip-specific, see Section 2.2.2 .
For details refer to Chip_NumberOfMediaLBPorts and Chip_NumberOfUSBPorts.

A combiner can be used for connections based on the synchronous data type ( Sync ). It is created with:

  • • a peripheral socket of direction Output ,
  • • the handle to the Network Port on which the Network sockets will be created, and
  • • a parameter, specifying the total number of network frame bytes that will be routed per network frame (the combined size of all Network sockets that will be connected with the same combiner).

 

All combiner settings are configured through the INIC.CombinerCreate() function, see Section 23.2.15.1 . A combiner is shown in Figure 21-2 .

Routing channel

A routing channel is required to be allocated from the synchronous routing channel table. INIC handles allocation automatically. If there are no free channels, an error will be reported.

Standard routing memory

The number of resource bytes required from the standard routing memory is decided by the peripheral socket type that is used, see Table 16-1 .

Table 16-1: Combiner – Standard Routing Memory Resources

Socket Type

Standard Routing Memory Resource

Note

MediaLB

The number of bytes required is decided by the quadlet-aligned socket Bandwidth of the MediaLB channel, see Chapter 9.0 .

USB

The number of bytes required is the total amount of data bytes to be routed per network frame.

Streaming

The number of bytes required is decided by parameter Bandwidth.

DataAlignment formats: left-/right justified, sequential

The number of bytes required is decided by the total amount of valid data bytes routed per Streaming Port frame, see Table 16-2 .

DataAlignment format: TDM

 

Table 16-2: Socket Size – Streaming Socket Using TDM Formats

Clock Speed

TDM Format

Standard Routing Memory Resource [Bytes]

128Fs

TDM16Bit

8

TDM24Bit

12

256Fs

TDM16Bit

16

TDM24Bit

24

512Fs

TDM16Bit

32

TDM24Bit

48

 

Aggregation routing memory

If the socket used with the combiner is a USB socket, additional resources from the aggregation routing memory are required. The number of resources can be calculated using the following equation:

 

MemorySpace = Number of bytes allocated in the aggregation routing memory

Equation 16-1

 

Combiner with a USB OUT socket

Since the duration of the network frame is six times shorter than the duration of one USB microframe, the minimum number of FramesPerTransaction must be 7. The maximum number of FramesPerTransaction is ‘n’. The value of ‘n’ depends on the parameter BytesPerFrame. The data bytes per one bulk transaction must not exceed 512 bytes. Therefore, the product of FramesPerTransaction multiplied by the specified BytesPerFrame must be less than or equal to 512 bytes, see also the example shown below.

If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC. This means that INIC will always send a packet of 512 bytes to the EHC. The remaining number of bytes will be filled with dummy bytes. If the EHC is sending the packets to the INIC, it can either send shorter packets (without dummy bytes) or the packets with dummy bytes. In the latter case, the INIC discards the dummy bytes.

Example:

There are three Network sockets, Network socket A to Network socket C. Each of them has a size of 12 bytes. Therefore, parameter BytesPerFrame must be set to 36 bytes. The value defined in parameter FramesPerTransaction is 0x000B. The calculated number of bytes results in 396 bytes.

Figure 16-1: Bulk Transaction with a Combiner
 

Splitter

Splitter

Note: Availability of resource objects is chip-specific, see Section 2.2.2 .
For details refer to Chip_NumberOfMediaLBPorts and Chip_NumberOfUSBPorts .

A splitter can be used for connections based on the synchronous data type ( Sync ). It is created with:

  • • either a port or a Network socket of direction Input ,
  • • the handle to the Network Port on which the Network sockets will be created, and
  • • a parameter specifying the total number of network frame bytes that will be routed per network frame (the combined size of all Network sockets that will be used with the same splitter).

 

All settings are configured through the INIC.SplitterCreate() function, see Section 23.2.15.2 . Splitter connections are shown in Figure 21-3 .

Routing channel

A routing channel is required to be allocated from the synchronous routing channel table, but only if it is not created with a Network socket. INIC handles allocation automatically. If there are no free channels, an error will be reported and the connection cannot be created.

Standard routing memory

The number of resource bytes required from the standard routing memory is decided by the peripheral socket type that is used, see Table 17-1 .

Table 17-1: Splitter – Standard Routing Memory Resources

Socket Type

Standard Routing Memory Resource

Note

MediaLB

The number of bytes required is decided by the quadlet-aligned socket Bandwidth of the MediaLB channel, see Chapter 9.0 .

USB

The number of bytes required is decided by the value of parameter BytesPerFrame .

Streaming

The number of bytes required is decided by parameter Bandwidth.

DataAlignment formats: left-/right justified, sequential

The number of bytes required is decided by the total amount of valid data bytes routed per Streaming Port frame, see Table 16-2 .

DataAlignment format: TDM

Network

The number of bytes required is decided by the quadlet-adjusted value of parameter BytesPerFrame .

If a Streaming socket that uses one of the TDM formats is connected to the splitter, the value must be adjusted to the closest higher value given in Table 16-2 .

 

Aggregation routing memory

If the socket used with the splitter is a USB socket, additional bytes from the aggregation routing memory are required. The number of bytes can be calculated using the following equation:

 

MemorySpace = Number of bytes allocated in the aggregation routing memory

Equation 17-1

 

Control Connection

Control Connection

The control connection is used to send/receive MCMs to/from the network. MCMs are then forwarded to internal FBlocks or Shadows and to the MCM PMP channel for delivery to the EHC.

The data flow is shown in Figure 18-1 .

Figure 18-1: Control Connection
 

The Network socket and its appropriate control connection are automatically managed by INIC.

The message transmission status that is reported when sending MCMs to the network is shown in Table 3-3 .

Control Low-Level Retries

Control Low-Level Retries are done block wise. A block consists of the initial transmission attempt and 10 retries (fixed number). The time between the retries is internally pre-defined and varies between 5 and 8 units (1 unit = 16 network frames). For the first block the time is set to 5 units. The number is increased by 1 for every control message transmission, regardless of whether retries are performed or not. If the cycle has passed the 8 th unit, it starts over at 5.

Figure 18-2 exemplarily describes how Control Low-Level Retries are performed. At first, the example shows an initial control message transmission that has set the ControlLLRBlockCount to 0. This means, no retries are done. However, the used time unit is 5. Then, the ControlLLRBlockCount was set to 2. Two retries are done and it can be seen that the number of time units is continuously counted: the first retry starts at 6, the second retry is 7. Finally, the ControlLLRBlockCount was set to 4. The example depicts the start over of the time unit count after the 8 th unit was passed.

Figure 18-2: Control Low-Level Retries
 

Transceiver Connection

Transceiver Connection

The transceiver connection is used by PMP channels to send/receive control messages to/from a connected peripheral port, such as MediaLB, USB or SPI.

The data flow is shown in Figure 19-1 .

Figure 19-1: Transceiver Connection
 

 

Packet Connections

Packet Connections

Note: Availability of resource objects is chip-specific, see Section 2.2.2 .
For details refer to Chip_NumberOfMediaLBPorts, Chip_NumberOfUSBPorts and Chip_IPCPacket .

Packet connections are used to exchange MDPs and/or MEPs between the network and the EHC.

Note: A packet connection only accepts sockets bound to the same peripheral port.
 
Message Formats

Depending on whether the INIC exchanges data with an MDP or MEP sink/source device, the packet message format and the packet message length of the Port Message (PM) is different, see Figure 20-1 to Figure 20-3 and the data fields description below the figures.

Figure 20-1: MDP Message Format
 
 
Figure 20-2: MEP Message Format
 

The Port Message consists of a PML field that is followed by several data fields.

Figure 20-3: IPC Packet Message Format
 
  • • PML – Port Message Length: 16-bit field that indicates the total number of bytes that follow the PML field.
  • • TgtDevType – Target Device Type: 8-bit sub-field that indicates the addressing mode used in the received message. The addressing mode can be:
    0x00: Logical addressing
    0x01: Physical addressing (Node Position)
    0x02: Broadcast addressing
    0x03: Groupcast addressing
  • SrcDevID – Source Device ID: 16-bit sub-field that indicates the Logical Address of the device that sent the message.
    SourceID 0x0001 (LocalID) indicates that the message was sent from an internal FBlock.
  • • Retry/Prio – Retry/Priority: 8-bit sub-field that contains additional Low-Level Retry information, see table below. Values for priority and Low-Level Retries are composed of 4 bits each. Number of Low-Level Retries can be set in a range from 0x00 up to 0x0F, whereas 0x00 indicates the lowest value and 0x0F the highest. Priority is not supported, the value must be set to 0x00.
  • Prio Bits

    Description

    Size (Bits)

    7...4

    Number of Low-Level Retries

    4

    3...0

    Prio

    4

 
  • • TgtDevID – Target Device ID: 16-bit sub-field that indicates the device address to which the message is sent (DeviceID). The following addresses are reserved: 0x0000, 0x0001, 0xFFFF.
  • • Length: 16-bit field that indicates the number of data bytes in the packet message (length of the Data[1:n] field)
  • Data[0:(n-1)]: contains the payload of the MDP message. The maximum message length is 1524 bytes.
  • • Data[0:(m-1)]: contains the payload of the IPC packet. The maximum packet length is 1534 bytes.
  • • DestAddr – Destination Address: 48-bit field that refers to an address of an Ethernet device that is being targeted.
  • • SrcAddr – Source Address: 48-bit field that refers to the source address of an Ethernet device that is sourcing packet data.
  • • Data[0:(k-1)]: contains the payload of the MEP message including VLAN (32 bits, optional), Type (16 bits) and FCS (32 bits). When the message is sent, the maximum message length is 1510 bytes.
  • • QoSRxStatus – Quality of Service Rx Status: 8-bit sub-field that is only appended to the MEP message when QoS packets are transferred. The byte supports a verification mechanism, which helps to identify if the complete MEP reception was successful or erroneous. Bits [2:0] of the byte give information on the reception status that is as follows:
    110: Packet reception was successful and CRC was correct
    001: Packet reception was successful but CRC was incorrect
    010, 100: Packet reception failed due to another reason
    111: Network receive buffer overflow
Packet

The Network socket and the appropriate packet connection is automatically managed by INIC. Peripheral sockets must be created. This can be done in two different ways:

  • • If the socket should be available at INIC startup, the Packet Connection must be set in the configuration string.
    In this case, the INIC automatically creates the required peripheral sockets at startup and attaches them to the packet connection.
    A packet connection of this type cannot be destroyed during runtime and it also remains persistent when the EHC enters Protected Mode.
  • • If the socket is not required to be available at startup, the packet connection can be created during runtime by using the INIC.PacketAttachSockets() function, see page 265 . The function attaches the given peripheral sockets of the INIC to the packet connection. The port-specific sockets that were built during runtime are automatically detached from the packet connection and destroyed when INIC enters Protected Mode.
    The peripheral sockets can be detached by using the INIC.PacketDetachSockets() function.

To allow the exchange of packet data, enough PacketBW must be made available on the network (minimum is 4 bytes per frame).

The data flow of a packet connection is shown in Figure 20-4 .

Figure 20-4: Packet Connection
 
Peripheral to Network

The information given in this section are based for applications that transmit packet data from one of the peripheral sockets to a Network socket.

 

BandwidthSource = Number of data bytes defined by PacketBW

 
 

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

USB socket

Parameter FramesPerTransaction is fixed to 0xFFFF.

No padding is applied by the INIC. Packet synchronization is performed as described in Section 20.5 .

SPI socket

The utilized bandwidth is adjusted dynamically, depending on the traffic throughput.

Network socket

The bi-directional Network socket is automatically managed by the INIC. The bandwidth of this socket corresponds to Bandwidth Source.

 

Network to Peripheral

The information given in this section are based for applications that transmit packet data from a Network socket to one of the peripheral sockets.

 

BandwidthSource = Number of data bytes defined by PacketBW

 
 

Network socket

The bi-directional Network socket is automatically managed by the INIC. The bandwidth of this socket corresponds to Bandwidth Source.

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

Note: Packet loss will occur, if parameter Bandwidth is less than Bandwidth Source.

 

USB socket

Parameter FramesPerTransaction is fixed to 0xFFFF.

No padding is applied by the INIC. Packet synchronization is performed as described in Section 20.5 .

SPI socket

The utilized bandwidth is adjusted dynamically, depending on the traffic throughput.

Driver Control Interface Access

Note: The functionality described in this chapter is chip-specific.
For details refer to Chip_SPINativeDCIAccess.

When Driver Control Interface Access is enabled in the configuration string , the EHC can access an internal register set by using the packet connection with a prescribed message structure.

Note: Driver Control Interface access is only possible via packet connection over a MediaLB Port or an SPI Port and if network is Available .
 

Register status message

Register values are always sent to the EHC device driver via the register status message by using an MDP read message (see Figure 20-1 ) that uses TelID 0x00. This TelID does not allow message segmentation.

A register status message is triggered whenever changes occur regarding

or it is triggered by the read register command as shown in Figure 20-5 .

 

The fields of the MDP read message carry the information as shown in Figure 20-1 and are described in detail below:

PML:

0x0018

 

TgtDevType:

0x00

 

SrcDevID:

0x0001

 

Length:

0x0010

 

Data [0...15]

Data[0]:

FBlockID is NetBlock, 0x01

 

Data[1]:

InstID is the current position in the network (0x00, if undefined, e.g., network is in NotAvailable state or if TimingMaster)

 

Data[2]:

FktID_H is 0x00

 

Data[3]:

FktID_L_OPType is 0x3C

 

Data[4]:

TelID_TelLen_H is 0x00

 

Data[5]:

TelLen_L is 0x0A

 

Data[6]:

d0 is the high byte of the NodeAddress

 

Data[7]:

d1 is the low byte of the NodeAddress

 

Data[8]:

d2 is the status of the NetInterface

 

Data[9]:

d3 is Packet EUI-48™ 47:40

 

Data[10]:

d4 is Packet EUI-48 39:32

 

Data[11]:

d5 is Packet EUI-48 31:24

 

Data[12]:

d6 is Packet EUI-48 23:16

 

Data[13]:

d7 is Packet EUI-48 15:8

 

Data[14]:

d8 is Packet EUI-48 7:0

 

Data[15]:

d9 is 0x01, reports the current system configuration state. It will be ensured that no state change from OK to NotOK gets lost.

Read registers

A read register command is used to initiate a register status message being sent to the EHC device driver. The command has the following message format:

Figure 20-5: Read Register Command
 

 

Write register

A write register command is used by the EHC device driver to update register settings. For the available register set refer to Chapter 22.0 .

Figure 20-6: DCI Trigger Message Format
 

 

 

Quality of Service

A Quality of Service (QoS) packet connection uses the QoS IP Streaming isochronous subclass on the network to transport MEPs over dedicated network Bandwidth . For the data transmission, the QoS packet channel is set up as a uni-directional point-to-point connection. The QoS packet channel on the network does not provide flow control, instead, the QoS Rx Status byte helps to identify if the transmission was successfully received.

QoS packet connections are used for IP-based applications that require a predetermined bandwidth/throughput. In contrast to standard packet connections, the Bandwidth of a QoS packet connection is reserved exclusively for a single source. By reserving the bandwidth, 100% QoS is provided.

A connection between two sockets is created by using the API function INIC.QoSPacketCreate() . This command tells the INIC to set up a routing path through the chip between a Network socket and a MediaLB socket.

Figure 20-7 shows the data flow for QoS packet connections between a Network socket and a MediaLB socket.

Figure 20-7: QoS Connection
 
Resources

Routing channel

A routing channel is required to be allocated for the Network socket, see Chip_RoutingChannels .

Standard routing memory

The number of resources required from the standard routing memory is decided by the allocated Bandwidth on the network, see Table 20-1 .

Figure 20-1: Allocated Bandwidth and Standard Routing Memory

Allocated Bandwidth on the Network [bytes]

Standard Routing Memory [bytes]

1…16

32

17…32

64

33…64

128

65…128

256

129…256

512

257…372

1024

 

MediaLB to Network

As shown in Figure 20-2 , the format of an MEP message that is sent from the EHC to the INIC incorporates 8 bytes of overhead compared to a standard Ethernet frame. Hence, the data rate required on the peripheral interface is higher than the Ethernet data rate (DataRate E ). To take this overhead into account, the Ethernet data rate is considered with the Factor given in the formula below.

 

DataRateE = Maximum burst throughput rate on Ethernet [Mbit/s]

Factor = 2.9297 [(byte) x (s/Mbit)]

Equation 20-1

 

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

Network socket

Parameter Bandwidth corresponds to Bandwidth Source.

 

Network to MediaLB

The information given in this section are based for applications that transmit QoS packets from a Network socket to a MediaLB socket.

 

Bandwidth Source = Number of data bytes allocated on the network

 

 

Network socket

Parameter Bandwidth corresponds to Bandwidth Source.

MediaLB socket

By definition, the INIC appends a QoSRxStatus byte to every Ethernet packet on MediaLB, to verify if the reception of the Ethernet packet was successful. Based on this overhead byte, the MediaLB socket Bandwidth is calculated as follows:

 

Factor = 1.0139

Equation 20-2

Parameter Bandwidth corresponds to Bandwidth MediaLB.

 

 

Inter-Processor Communication

The INIC provides the capability for Inter-Processor Communication (IPC). It allows to set up a uni-directional point-to-point packet connection between a MediaLB socket and a USB socket, see Figure 20-8 .

Figure 20-8: Inter-Processor Communication
 

The configuration of the IPC packet connection can be done in two different ways:

  • • If the connection should be available at INIC startup, the settings of the IPC Packet Connection must be set in the configuration string.
    In this case, the INIC automatically creates the required peripheral sockets at startup and connects them by creating an IPC packet connection.
    An IPC packet connection of this type cannot be destroyed during runtime and it also remains persistent when the EHC enters Protected Mode.
  • • If the IPC packet connection is not required to be available at startup, it can be created during runtime by using the INIC.IPCPacketCreate() function, see page 270 . The sockets and the connection that were built during runtime are automatically destroyed when INIC enters Protected Mode.
Resources

Aggregation routing memory

For each IPC packet connection 1028 bytes additional resources from the aggregation memory are required.

 

MediaLB to USB
 
 

DataRate = Maximum burst throughput rate [Mbit/s]

Factor = 2.6042 [(byte) x (s/Mbit)]

PacketSizeSmall = Size of the smallest IPC packet [bytes]

Equation 20-3

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

USB socket

Parameter FramesPerTransaction is fixed to 0xFFFF.

No padding is applied by the INIC. Packet synchronization is performed as described in Section 20.5 .

 

USB to MediaLB
 
 

DataRate = Maximum burst throughput rate [Mbit/s]

Factor = 2.6042 [(byte) x (s/Mbit)]

PacketSizeSmall = Size of the smallest IPC packet [bytes]

Equation 20-4

 

USB socket

Parameter FramesPerTransaction is fixed to 0xFFFF.

No padding is applied by the INIC. Packet synchronization is performed as described in Section 20.5 .

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

 

Synchronization

Synchronization is required to clean up internal routing resources and to synchronize external driver applications. There are two conditions on which the INIC needs to perform a synchronization process of a packet connection:

  • • Network shutdown
  • • Fatal packet communication errors caused by network disturbances, which can't be automatically recovered by hardware

Depending on the communication characteristics of the peripheral interface involved in the packet connection, there are special synchronization mechanisms available, which are described below.

MediaLB

Packet connection

When the synchronization process is started, the INIC forces any current transmission to terminate. In case of an outgoing transmission, the pending packet is terminated by an AsyncBreak command. In case of a pending packet reception, the INIC responds with a ReceiverBreak status to enforce the transmitter to break.
After the synchronization process has been completed, the next packet starts with an AsyncStart command again.

QoS and IPC packet connection

Any pending transmission is stopped without an AsyncBreak command or a ReceiverBreak status. This behavior can result in a ProtocolError status from the INIC for the next incoming message. For an outgoing transmission the EHC can respond to the next AsyncStart command with a ProtocolError status. Any following AsyncStart command synchronizes the reception or transmission again.

 

USB

The synchronization process required for USB packet connections needs additional communication effort since a USB transfer containing one packet message can be divided into several USB bulk transactions. A packet message with a maximum size of 1536 bytes takes up to three USB bulk transactions to complete.

The data transferred via a one-bulk transaction does not contain any additional information on data fragments. To keep synchronization, the following rules are applied:

  • • The start of a packet message is always located at the beginning of a bulk transaction.
  • • The end of a packet is either signaled by a bulk transaction with less than 512 bytes (short packet) or by a ZLP (zero-length packet).

The INIC automatically discards incoming packet messages on USB upon the following error conditions:

  • • Missing ZLP
  • • Length mismatch between PML and received packet length
  • • Received PML is out of valid range
  • • Received a ZLP unexpectedly

In such cases the synchronization process is not triggered.

In addition to the common synchronization triggers mentioned above, on USB there is a DCI register available for each endpoint that can be used by a driver application to manually trigger the synchronization process. This is needed whenever a host driver is restarted during runtime to ensure packet synchronization. The DCI register is described in Section 22.1 et seqq.

Whenever the synchronization process is triggered, the following sequence is executed by the INIC:

1. Endpoints respond with NACKs

2. IN endpoint will be set to STALL state until the host driver sends ClearFeature(STALL)

 

A host driver has to implement the following rules to behave correctly in case of synchronization:

  • • On the reception of any STALL status an incomplete Rx message has to be discarded and a current transmission has to be canceled.
  • • A STALL state has to be cleared by sending a ClearFeature(STALL) as long as the state is reported.
  • • On every driver start, the STALL packet communication vendor request has to be sent for initial synchronization.

 

SPI

Note: This functionality is only available if Chip_SPINativeDCIAccess is enabled.

For the packet connection, the channel synchronization must be enabled for Input and Output SPI channels by setting the Configuration.SyncEnable bit, see Section 22.3 .

The INIC indicates that synchronization is required for each SPI channel by raising the Events.SyncNeeded flag. The EHC driver needs to clear the Events.SyncNeeded flag in the virtual SPI register, to complete the synchronization process. The EHC driver should cancel pending transmit- or receive operations whenever an Events.SyncNeeded flag has been detected.

On EHC driver start up, synchronization must be triggered manually by setting Configuration.SyncRequest . This ensures that both the INIC and the EHC driver are synchronized from the beginning.

Streaming Connections

Streaming Connections

Note: Availability of resource objects is chip-specific, see Section 2.2.2 .
For details refer to Chip_NumberOfMediaLBPorts and Chip_NumberOfUSBPorts .

Routing of streaming data is typically set-up by creating a connection between sockets that support the same data type, are of opposite directions, and located on different ports. Such a connection can be seen as a point-to-point connection.

A point-to-point streaming connection can be defined for all streaming data types that are supported by INIC.

In order to optimize the data transmission of streaming data, INIC internally uses advanced routing channels and memory resources that are allocated when a connection is created. The number of resources required depends on the routing objects used in the connection. All routing memory resources are shared. See section Routing Budget for more information.

If a streaming connection is rendered invalid (see Section 7.8 ) while the network is available, INIC automatically releases the used routing channels and memory resources internally while reporting the resource as invalid to the EHC.

 

Muting of synchronous connections

For synchronous connections the INIC supports muting-related features provided by function INIC.SyncCreate() . A connection can be kept muted when created or unmuted automatically. This setting is specified by parameter DefaultMute. The INIC's built-in resource monitoring mechanism supports individual handling of connections on detecting that the streamed data may be invalid. The configuration of this handling is done by parameter MuteMode. For more information on muting refer to Section 7.6.1 .

Synchronous

A synchronous connection uses the synchronous channel on the network for streaming data. A connection between two sockets is created by using the API function INIC.SyncCreate() . This command tells the INIC to setup a routing path through the chip between a network channel and a port channel.

A special case for a synchronous connection is the loopback feature. With this feature it is possible to create a Network socket of data type Sync and direction Input with the same ConnectionLabel as an existing Output socket of the same type. This socket type is called a loopback socket. Loopback sockets do not support muting and cannot be connected to or used in combination with a splitter or combiner.

Figure 21-1 shows the data flow for synchronous connections between a Network socket and one of the peripheral sockets. It also shows the loopback feature, in which the data is looped back from the network.

Figure 21-1: Synchronous Connections
 

 

Resources

Routing channel

A routing channel is required to be allocated for the Network socket, see Chip_RoutingChannels .

Standard routing memory

The number of bytes required from the standard routing memory (see Section 7.9.1 ) is decided by the Bandwidth of the sockets that need to be connected; the Bandwidth for both sockets must be equal.

Note: While using a MediaLB socket in the connection, the number of resources is decided by adjusting the value of socket parameter Bandwidth upwards to the next closest quadlet due to the real size of the physical MediaLB channel, which is quadlet aligned, as described in Chapter 9.0 .
While using a Streaming socket that is based on one of the TDM formats, the number of bytes required is decided by the total amount of valid data bytes routed per Streaming Port frame, see Table 16-2 .
 

Aggregation routing memory

If one of the sockets used in the connection is a USB socket, additional resources from the aggregation routing memory are required. The number of resources can be calculated using the following equation:

 

MemorySpace = Number of bytes allocated in the aggregation routing memory

Equation 21-1

The number of required bulk transactions per USB microframe is at least 1.

 

Peripheral to Network

The information given in this section are based for applications that stream data from one of the peripheral sockets to a Network socket.

For this connection type parameter Offset must be written 0.

 

Bandwidth Source = Number of data bytes that should be routed

 

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

USB socket

Parameter FramesPerTransaction defines the number of network frames filled-in into one USB transaction. The size of one network frame is defined by parameter Bandwidth of the Network socket.

If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC, see Section 10.3.1 .

Streaming socket

Parameter Bandwidth corresponds to Bandwidth Source.

Network socket

Parameter Bandwidth corresponds to Bandwidth Source and defines the size of the network channel that should be allocated on the network.

 

Network to Peripheral

The information given in this section are based for applications that stream data from a Network socket to one of the peripheral sockets.

For this connection type parameter Offset must be written 0.

 

Bandwidth Source = Number of data bytes allocated on the network

 

Network socket

Parameter Bandwidth corresponds to Bandwidth Source.

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

USB socket

Parameter FramesPerTransaction defines the number of network frames from which the synchronous data bytes are put and filled-in into one USB transaction. The size of one network frame is defined by parameter Bandwidth of the Network socket.

If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC, see Section 10.3.1 .

Streaming socket

Parameter Bandwidth corresponds to Bandwidth Source.

 

Synchronous with Combiner

The API function INIC.SyncCreate() is used to create a routing path through the chip between a Network socket and a combiner.

Figure 21-2 shows the data flow for synchronous connections with a combiner. The explanation on how to create a combiner is given in Chapter 16.0 .

Figure 21-2: Combiner Connections
 
Resources

Routing channel

A routing channel is required to be allocated for the Network socket, see Chip_RoutingChannels .

 

Network to Combiner

The information given in this section are based for applications that stream data from Network sockets to a combiner.

When using INIC.SyncCreate() the INIC establishes a routing path through the chip between a Network socket and a sub-section inside the peripheral socket that is connected to the combiner. The offset of the sub-section is specified by parameter Offset.

Any event that may render the Network socket invalid will also render the combiner and any associated connections invalid.

 

Bandwidth Source = Number of data bytes allocated on the network

 

Network socket

Parameter Bandwidth corresponds to Bandwidth Source.

Combiner

Bandwidth Source must be considered by parameter BytesPerFrame, when the combiner is created. BytesPerFrame is the size of all Network sockets that are connected to the combiner.

Synchronous with Splitter

The API function INIC.SyncCreate() is used to create a routing path through the chip between a splitter and a Network socket or a splitter and a peripheral socket.

Figure 21-3 shows the data flow for synchronous connections with a splitter. The explanation on how to create a splitter is given in Chapter 17.0 .

Figure 21-3: Splitter Connections
 
Resources

Routing channel

A routing channel is either required to be allocated for the Network socket or for the connection with the peripheral socket, see Chip_RoutingChannels .

Aggregation routing memory

Note: These memory resources are only required for a splitter to USB socket connection.

In this connection variant additional routing memory resources are required. The splitter parameter BytesPerFrame has to be used with the following equation to calculate the number of required bytes from the aggregation routing memory:

 

MemorySpace = Number of bytes allocated in the aggregation routing memory

Equation 21-2

 

Splitter to Network

The information given in this section are based for applications that stream data from a splitter to Network sockets.

When using INIC.SyncCreate() the INIC establishes a routing path through the chip between a sub-section inside the peripheral socket that is connected to the splitter and the Network socket. The offset of the sub-section is specified by parameter Offset.

Any event that may render the Network socket invalid will also render the splitter and any associated connections invalid.

 

Bandwidth Source = Number of data bytes that should be routed

 

Splitter

Bandwidth Source must be considered by parameter BytesPerFrame, when the splitter is created. BytesPerFrame is the size of all Network sockets that are connected to the splitter.

Network socket

Parameter Bandwidth corresponds to Bandwidth Source.

 

Splitter to Peripheral

The information given in this section are based for applications that stream data from a splitter connection to one of the peripheral sockets.

When using INIC.SyncCreate() the INIC establishes a routing path through the chip between the Network socket that is connected to the splitter and the peripheral socket.

Parameter Offset can only be 0. It is only possible to route the complete channel data from a Network socket. The splitter may be used in multiple connections with different peripheral sockets to stream the same network data to multiple peripheral sockets.

Any event that may render the Network socket invalid will also render the splitter and any associated connections invalid.

 

Bandwidth Source = Number of data bytes that should be routed

 

Splitter

Bandwidth Source must be considered by parameter BytesPerFrame, when the splitter is created. BytesPerFrame is the size of all Network sockets that are connected to the splitter.

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

USB socket

Parameter FramesPerTransaction defines the number of network frames received by the splitter and filled-in into one USB transaction. The size of one network frame is defined by Bandwidth Source.

If the data bytes within a bulk transaction are less than 512 bytes, padding is applied by the INIC, see Section 10.3.1 .

Streaming socket

Parameter Bandwidth corresponds to Bandwidth Source.

 

A/V Packetized

An AVPacketized connection uses the isochronous channel on the network for streaming of data that is not synchronized to the network frame rate. The data either contains a time base, which is encoded in the data stream, or it does not require any time base information for transmission and synchronization. The data flow is shown in Figure 21-4 .

Figure 21-4: A/V Packetized Connections
 

A connection between two sockets is created by using the API function INIC.AVPacketizedCreate() . This command tells the INIC to setup a routing path through the chip between the Network socket and the peripheral socket.

The packet sizes supported are specified by parameter IsocPacketSize in the call to INIC.AVPacketizedCreate() .

Resources
 

Routing channel

A routing channel is required to be allocated for the Network socket, see Chip_RoutingChannels .

Standard routing memory

The number of resources required from the standard routing memory is decided by the selected packet size, see Table 21-1 .

Table 21-1: IsocPacketSize and Standard Routing Memory

IsocPacketSize

Standard Routing Memory

Unit

188

564

Bytes

196

588

 

Aggregation routing memory

If one of the sockets used in the connection is a USB socket, additional resources from the aggregation routing memory are required, see Table 21-2 .

Table 21-2: IsocPacketSize and Aggregation Routing Memory

Allocated Bandwidth on the Network [bytes]

Aggregation Routing Memory [bytes]

Number of Required Bulk Transactions Per Microframe

IsocPacketSize = 188

FramesPerTransaction = 0x0002

1-53

752

1

54-107

1504

2

108-161

2256

3

162-214

3008

4

215-268

3760

5

269-322

4512

6

323-372

5264

7

IsocPacketSize = 196

FramesPerTransaction = 0x0002

1-56

784

1

57-112

1568

2

113-168

2352

3

169-224

3136

4

225-280

3920

5

281-336

4704

6

337-372

5488

7

IsocPacketSize = 188 or 196

FramesPerTransaction = 0xFFFF

1-73

1024

1

74-146

2048

2

147-219

3072

3

220-292

4096

4

293-365

5120

5

366-372

6144

6

 

Peripheral to Network

The information given in this section are based for applications that stream data from one of the peripheral sockets to a Network socket.

 

DataRate = Maximum burst throughput rate [Mbit/s]

Factor = 2.6042 [(byte) x (s/Mbit)]

Equation 21-3

 

MediaLB socket

Parameter Bandwidth is calculated as follows:

 

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1.

USB socket

Parameter FramesPerTransaction defines the number of isochronous packets filled-in into one USB transaction. The size of an isochronous packet can either be 188 or 196 bytes.

If FramesPerTransaction is 0x0002, padding is applied. If the value is 0xFFFF, no padding is applied. Refer to Section 10.3.2 for more information.

Network socket

Parameter Bandwidth is calculated as follows:

 

Factor = 1.0053

Equation 21-4

 

Network to Peripheral

The information given in this section are based for applications that stream data from a Network socket to one of the peripheral sockets.

 

Bandwidth Source = Number of data bytes allocated on the network

 

Network socket

Parameter Bandwidth corresponds to Bandwidth Source.

MediaLB socket

For data packets with an IsocPacketSize of 188 or 196 bytes, parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

USB socket

Parameter FramesPerTransaction defines the number of isochronous packets filled-in into one USB transaction. The size of an isochronous packet can either be 188 or 196 bytes.

If FramesPerTransaction is 0x0002, padding is applied. If the value is 0xFFFF, no padding is applied. Refer to Section 10.3.2 for more information.

 

 

 

DiscreteFrame Isochronous Streaming Phase

A DiscreteFrame Isochronous Streaming phase connection uses the isochronous channel on the network for streaming time base information, which is asynchronous to the network frequency. The supported use case is to transport the phase information over MediaLB and regenerate the clock with a Video I/O Companion device connected to MediaLB.

The data flow for the DiscreteFrame Isochronous Streaming phase connections is shown in Figure 21-5 .

Figure 21-5: DiscreteFrame Isochronous Streaming Phase Connections
 

A connection between two sockets is created using the API function INIC.DiscFramePhaseCreate() . This command tells the INIC to setup a routing path through the chip between a Network socket and a MediaLB socket.

Each packet is required to be made up by 8 phase samples where each phase sample is a 16-bit value; hence the packet size supported is 16 bytes. The transmitting MediaLB device is responsible to adopt this requirement.

Resources

Routing channel

A routing channel is required to be allocated for the Network socket, see Chip_RoutingChannels .

Standard routing memory

The number of resources is 64 bytes.

The size of a socket specifies the least required bandwidth to allow a data transmission without data loss during peak conditions.

 

MediaLB to Network

The information given in this section are based for applications that establish a phase connection between a MediaLB socket and a Network socket.

 

Bandwidth Source = 2 [bytes]

 

The bandwidth is fixed to 2 bytes indicating the maximum phase data throughput.

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

Network socket

Parameter Bandwidth corresponds to Bandwidth Source + 1. The additional byte is used to compensate for the isochronous transmission mechanism.

 

Network to MediaLB

The information given in this section are based for applications that establish a phase connection between a Network socket and a MediaLB socket.

 

Bandwidth Source = 3 [bytes]

 

Network socket

Parameter Bandwidth corresponds to Bandwidth Source.

MediaLB socket

Parameter Bandwidth corresponds to Bandwidth Source - 1. On the network side there is one additional byte used to compensate for the isochronous transmission mechanism. This byte is not needed for the MediaLB Output socket.

The real size of the physical MediaLB channel allocated is quadlet aligned, as described in Section 9.2.1 .

Driver Control Interface

Driver Control Interface

Note: Availability of resource objects is chip-specific, see Section 2.2.2 .
For details refer to Chip_NumberOfMediaLBPorts, Chip_NumberOfUSBPorts and Chip_DataType .

The Driver Control Interface (DCI) can be used by EHC device drivers to retrieve status information from the INIC or to control low-level settings, such as the MAC address.

Normally, all settings are handled from the EHC via the Configuration Interface. However, for EHC device drivers that have no direct access to the communication interface, the DCI provides the possibility to directly access status information and low-level settings from the peripheral port to which they are connected. In doing so, the DCI eases the device driver implementation.

The INIC provides a set of virtual registers: common registers and resource-dependent registers. The latter ones consist of common port-related registers and registers associated with port resources, which are:

  • • USB endpoints when using the USB Port or
  • • Logical channels when using the SPI Port. Note, logical channels are bound to resources, see Table 11-1 .

Resource-dependent registers are available independent from created port- or socket resource objects.

DCI communication is accomplished by DCI Read and Write commands. The commands can be initiated at any time by the driver. The INIC is always ready and waiting for driver DCI requests.

DCI access is possible over the SPI Port (see Chip_SPINativeDCIAccess ) and the USB Port. Information on DCI access over the SPI Port is given in Section 11.3 . DCI access over the USB Port and hence details on vendor-specific requests are described in Section 10.4.1 . A description of the respective command formats can be also found in these sections.

For the MediaLB Port and the SPI Port ( Chip_SPINativeDCIAccess is not supported ) DCI access is also possible by using the packet connection. In this case, the INIC will send a register status message to the EHC device driver whenever a change in any parameter of the register status message occurs. To explicitly trigger the reception of the register status message, the command Read registers can be sent. By using the command Write register, any register content can be written.

For information on the packet connection and the register status message refer to Section 20.2.3 .

Figure 22-1: Driver Control Interface
 

 

 

Common Register

Table 22-1 lists all common registers that can be read and/or written by the EHC driver.

Table 22-1: Common Register

Index

R/W

Valid Values

Description

0x0100

R

See Availability

Availability

0x0101

R

See PacketBW

PacketBW

0x0102

R

See NodeAddress

NodeAddress

0x0103

R

See NodePosition

NodePosition

0x0120

R

See LastResetReason

LastResetReason

0x0140

R/W

See PacketFilterMode

PacketFilterMode

0x0141

R/W

See PacketHash_63to48

PacketHash_63to48

0x0142

R/W

See PacketHash_47to32

PacketHash_47to32

0x0143

R/W

See PacketHash_31to16

PacketHash_31to16

0x0144

R/W

See PacketHash_15to0

PacketHash_15to0

0x0145

R/W

See PacketEUI48_47to32

PacketEUI48_47to32

0x0146

R/W

See PacketEUI48_31to16

PacketEUI48_31to16

0x0147

R/W

See PacketEUI48_15to0

PacketEUI48_15to0

0x0148

R/W

See PacketLLRTime

PacketLLRTime

 

USB Register

Table 22-2 lists all USB registers that can be read and/or written by the EHC driver.

Table 22-2: USB Register

Index

Name

R/W

Valid Values

Description

0x1000

CommonEventFlags

R/W

0x0001 = SysCfgStateChanged
0x0002 = NodeAddress-
StateChanged

0x0004 = MEPAddress-
StateChanged

0x0008 = PortResourceChanged

0x8000 = AccessErrorOccurred

Combination of flags to indicate if any events have occurred.

 

When read: Event flags signal what change has occurred.
When written: Clears event flags.

Used by the EHC to clear processed events by writing a ‘1’ to the corresponding event flag.
Writing a ‘0’ is don’t care.

0x1001

System-
ConfigurationState

R

0x0000 = NotOK

0x0001 = OK

Reports the current system configuration state. It will be ensured that no state change from OK to NotOK gets lost.

0x1002

Configuration

R/W

0x0001 = SysCfgStateMask

0x0002 = NodeAddressMask

0x0004 = MEPAddressMask

0x0008 = PortResourceMask

0x8000 = AccessErrorMask

Configuration flags to control if Source.CommonEvents bit is raised. The bit is raised if an event flag in the CommonEventFlags register is set and enabled by the corresponding bit in this register.

0x1003

Source

R

0x0000 = EP 0x01

...

0x4000 = EP 0x0F

0x8000 = CommonEvents

Combination of flags to indicate if any events have occurred.

 

EP 0x01...0x0F: Indicates if an event has occurred in the endpoint register set.

 

CommonEvents:

Indicates if an event flag in the CommonEventFlags register is set and enabled by the corresponding bit in the Configuration register.

0x1004

Source1

R

0x0000 = EP 0x81

...

0x4000 = EP 0x8F

Combination of flags to indicate if any events have occurred.

 

EP 0x81...0x8F: Indicates if an event has occurred in the endpoint register set.

0x1100
+ (EndpointAddress x 16)

Events

R/W

0x0002 = LinkStateChanged

When read: Event flags signal what change has occurred.
When written: Clears event flags.

Used by the EHC to clear processed events by writing a ‘1’ to the corresponding event flag.
Writing a ‘0’ is don’t care.

 

0x0000 is returned if no socket is created using this endpoint.

 

LinkStateChanged:

Indicates if the content of the LinkState register has changed. This bit is set independently from Configuration.LinkStateMask.

0x1101
+ (EndpointAddress x 16)

Error

R/W

0xFFFF = Invalid

0x0001 = BufferError

For DataType = Sync bit 0 signalizes either buffer underflow or buffer overflow. An underflow happens when data is transmitted to the network; it implies a non-continuous audio data stream on the network. An overflow happens when data is received from the network; it implies data loss.

For DataType = AVPacketized bit 0 signalizes buffer overflow.

 

Bits are sticky and need to be written to ‘1’ to be cleared.

 

Invalid: Indicates that a USB socket associated to the EndpointAddress is not available.

0x1102
+ (EndpointAddress x 16)

Configuration

W

0xFFFF = Invalid

0x0001 = SyncRequest

0x0004 = LinkStateMask

SyncRequest: Triggers the synchronization process needed for packet connections. See Section 20.5 for more information.

Writing a ‘0’ is don’t care.

 

LinkStateMask: Used to enable/disable event reporting in the Source register when the LinkState has changed.

 

Invalid: Indicates that a USB socket associated to the EndpointAddress is not available.

0x1103
+ (EndpointAddress x 16)

RouteState

R

0xFFFF = Invalid

0x0000 = Disconnected

0x0001 = Connected

Denotes if the endpoint is in use.
If it is in use, it further indicates if the endpoint is used in a combiner connection, splitter connection or socket connection.
Applies to all data types.

 

Invalid: Indicates that a USB socket associated to the EndpointAddress is not available.

 

Note: This register is deprecated. Use instead register LinkState.

0x1104
+ (EndpointAddress x 16)

DataType

R

0xFFFF = Invalid
0x0000 = Sync
0x0001 = Packet
0x0002 = Control
0x0003 = AVPacketized 0x0007 = IPCPacket

Indicates the data type that is transfered via this endpoint.

 

Invalid: Indicates that a USB socket associated to the EndpointAddress is not available.

0x1105
+ (EndpointAddress x 16)

FramesPerTransaction

R

0x0000 = Invalid

 

For other values see FramesPerTransaction.

Invalid: Indicates that a USB socket associated to the EndpointAddress is not available.

0x1106
+ (EndpointAddress x 16)

FrameSize

R

0xFFFF = Invalid

0x0000 = Unknown

1...372 = Sync

188, 192 = AVPacketized

If DataType = Sync and the endpoint used in a USB socket is connected with a Network socket, the value is the size of the Network socket.

If the endpoint is used in a USB socket that is connected to a splitter based on a Network socket, the value equals the size of the Network socket used with the splitter. If the endpoint is connected to a combiner/splitter that is not based on a Network socket, the value equals parameter BytesPerFrame of the combiner/splitter.

If DataType = AVPacketized , the value is the size of the transport stream packets.

 

Invalid: Indicates that a USB socket associated to the EndpointAddress is not available.

0x1107
+ (EndpointAddress x 16)

LinkState

R

0xFFFF = Invalid

0x0000 = Down

0x0001 = Up

Denotes if the port resource is receiving or transmitting data, see Section 22.5.1 .
Applies to all data types.

 

Up: The endpoint is receiving or transmitting data.

 

Down: The endpoint does not receive/transmit any data.

 

Invalid: Indicates that a USB socket associated to the EndpointAddress is not available.

 

SPI Register

Table 22-3 lists all SPI registers that can be read and/or written by the EHC driver. SPI registers are only available if Chip_SPINativeDCIAccess is supported.

Table 22-3: SPI Register

Index

Name

R/W

Valid Values

Description

0x3000

CommonEventFlags

R/W

0x0001 = SysCfgStateChanged

0x0002 = NodeAddressChanged

0x0004 = MEPAddressChanged

0x0008 = PortResourceChanged

0x8000 = AccessErrorOccurred

Combination of flags to indicate if any events have occurred.

 

When read: Event flags signal what change has occurred.
When written: Clears event flags.

Used by the EHC to clear processed events by writing a ‘1’ to the corresponding event flag.
Writing a ‘0’ is don’t care.

0x3001

System-
ConfigurationState

R

0x0000 = NotOK

0x0001 = OK

Reports the current system configuration state. It will be ensured that no state change from OK to NotOK gets lost.

0x3002

Configuration

R/W

0x0001 = SysCfgStateMask

0x0002 = NodeAddressMask

0x0004 = MEPAddressMask

0x0008 = PortResourceMask

0x8000 = AccessErrorMask

Configuration flags to control if Source.CommonEvents bit is raised. The bit is raised if an event flag in the CommonEventFlags register is set and enabled by the corresponding bit in this register.

0x3003

Source

R

0x0001 = SPIChannel0

0x0002 = SPIChannel1

0x0004 = SPIChannel2

0x0008 = SPIChannel3

0x8000 = CommonEvents

Combination of flags to indicate if any events have occurred.

 

SPIChannel0...3: Indicates if an event has occurred in the SPI channel register set. For details on the SPI channel refer to Table 11-1 .

 

CommonEvents:

Indicates if an event flag in the CommonEventFlags register is set and enabled by the corresponding bit in the Configuration register.

0x3100 +
(channel index
x 16)

Events

R/W

0x0000 = Idle

0x0001 = SyncNeeded

0x0002 = LinkStateChanged

Combination of flags to indicate if any events have occurred.

 

When read: Event flags signal what change has occurred.
When written: Clears event flags.

Used by the EHC to clear processed events by writing a ‘1’ to the corresponding event flag.
Writing a ‘0’ is don’t care.

 

0x0000 is returned if no socket is created using this port resource.

 

SyncNeeded: Indicates if the port resource needs synchronization for packet connections.

 

LinkStateChanged: Indicates if the content of the LinkState register has changed. This bit is set independently from Configuration.LinkStateMask.

0x3102 +
(channel index
x 16)

Configuration

R/W

0xFFFF = Invalid

0x0001 = SyncRequest

0x0002 = SyncEnable

0x0004 = LinkStateMask

SyncRequest: Triggers the synchronization process needed for packet connections. See Section 20.5 for more information. The bit is cleared by INIC, when socket is connected.
‘0’ = don’t care.

 

SyncEnable: Used to enable/disable the synchronization mechanism. If disabled, Events.SyncNeeded is not reported any longer.

 

LinkStateMask: Used to enable/disable NTF notification and the reporting in the Source register when the LinkState has changed.

 

Invalid: Indicates that the SPI socket associated to the channel is not available.

0x3103 +
(channel index
x 16)

RouteState

R

0xFFFF = Invalid

0x0000 = Disconnected

0x0001 = Connected

Denotes if the SPI channel is in use.
If it is in use, it further indicates if the associated socket is used in a combiner connection, splitter connection or socket connection.

Applies to all data types.

 

Invalid: Indicates that the SPI socket associated to the channel is not available.

 

Note: This register is deprecated. Use instead register LinkState.

0x3104 +
(channel index
x 16)

DataType

R

0xFFFF = Invalid
0x0001 = Packet
0x0002 = Control

Indicates the data type that is transfered via this channel.

 

Invalid: Indicates that the SPI socket associated to the channel is not available.

0x3107 +
(channel index
x 16)

LinkState

R

0xFFFF = Invalid

0x0000 = Down

0x0001 = Up

Denotes if the port resource is receiving or transmitting data, see Section 22.5.1 . Applies to all data types.

 

Up: The SPI channel is receiving or transmitting data.

 

Down: The SPI channel does not receive/transmit any data.

 

Invalid: Indicates that the SPI socket associated to the channel is not available.

 

Access Errors

If there is any access to a non-existing register or a register to which the requested operation (Read/Write) is not supported, the error bit CommonEventFlags.AccessErrorOccurred is set for the port from which the access was done. In case of a read access 0xDEAD is returned as an invalid value.

In case of an access to a port resource for which no socket was created yet, a register-specific Invalid value is returned, e.g., 0xFFFF. Those values are described in the respective port register tables.

 

Event Reporting

The DCI supports event reporting per port. Events are available for common registers as well as for resource-dependent registers. Event reporting can be configured selectively/independently to enable or disable driver notification for any particular event state change flag.

The method of event reporting is defined by the capabilities of the peripheral port that is used. For the SPI port interrupts are provided. Since the USB Port does not provide interrupts, it must be polled to detect register changes.

Figure 22-2 describes the guideline on how the EHC can perform DCI event processing for either an SPI or USB Port.

Figure 22-2: Event Processing Loop
 

 

Figure 22-3 shows a sub-flow used by the event processing loop to handle an event register access.

Figure 22-3: Register Read Access
 

 

Link State Notification

The register LinkState denotes if the port resource is receiving or transmitting data depending on the direction that is configured. A change in the LinkState is reported by the Events.LinkStateChanged event flag. LinkState applies to all data types.

For the packet connection, the LinkState can be used to indicate the availability of the packet channel (cable connected/disconnected). The packet channel is available when the link state of the receiver and transmitter resource is “Up”. Otherwise the packet channel can be considered not available.

 

Resource Availability Notification

Resources can be configured during runtime. To indicate to the EHC driver that there was a change in resource availability, CommonEventsFlag.PortResourceChanged is raised. If the flag is raised, a resource was either destroyed or already recreated.

The EHC driver needs to verify port resource related settings by reading the appropriate resource registers.

 

Synchronization Notification

Synchronization notification is only available for packet connections, see Section 20.5.3 .

Command Reference

Command Reference
FBlock NetBlock

FBlock NetBlock functions are implemented according to the definitions prescribed in the FunctionBlock NetBlock, Rev. 3.0.3 [1] specification.

Note: FBlock NetBlock functions that are not processed by the INIC will be forwarded to the EHC. If no EHC is attached, the INIC will respond with error code 0x03, FktID not available.

 

An overview of the NetBlock functions processed by INIC is shown in Table 23-1 .

Table 23-1: NetBlock Functions

Function Name

FktID

Possible to Notify

Page

FBlockIDs()

0x000

No

FBlockIDs (0x000)

NodePositionAddress()

0x002

No

NodePositionAddress (0x002)

NodeAddress()

0x003

No

NodeAddress (0x003)

GroupAddress()

0x004

No

GroupAddress (0x004)

ShutDown()

0x006

No

ShutDown (0x006)

RetryParameters()

0x007

No

RetryParameters (0x007)

EUI48()

0x013

No

EUI48 (0x013)

MOSTVersionInfo()

0x014

No

MOSTVersionInfo (0x014)

RBDResult()

0x405

No

RBDResult (0x405)

 

 

FBlockIDs (0x000)

This function inquires which function blocks are implemented within the device as well as the InstID of that function block. If the EHC is not attached, an empty list is returned from FBlock NetBlock. If the EHC is attached, the request is passed to the EHC.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

FBlockIDs

(0x000)

Get (0x1)

SetGet (0x2)

FBlockID, OldInstID, NewInstID

Status (0xC)

FBlockIDList

Error (0xF)

ErrorCode, ErrorInfo

FBlockID

Functional address of an FBlock

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

OldInstID

Old InstID of the FBlock that is identified by FBlockID

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

NewInstID

New InstID of the FBlock that is identified by FBlockID

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FBlockIDList

List of FBlockID / InstID pairs for the FBlocks that are implemented in the device. When an EHC is attached, it must respond with a list of FBlockIDs with corresponding InstIDs that are available in the device. When no EHC is attached, FBlock NetBlock only responds with an empty list. When no EHC exists (both Configuration Interface and Application Interface are configured None ) , FBlock INIC and its InstID will be reported in the list. For all devices that contain an EHC, FBlocks INIC and NetBlock are generally not reported, since they will not appear in the central registry of the NetworkMaster.

Data Type

Number of Elements

Parameters

Stream

0...n

{ FBlockID, InstID }

InstID

Distinction of identical FBlocks in a system

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

NodePositionAddress (0x002)

This function obtains the node position address of a device. The node position address is determined by the node’s physical location in the network, therefore this function is read only.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

NodePositionAddress

(0x002)

Get (0x1)

Status (0xC)

NodePositionAddress

Error (0xF)

ErrorCode, ErrorInfo

NodePositionAddress

For details on parameter settings and the behavior of this parameter, refer to section Node Position Address. 0x0400 is reported, if network is not available.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0400...0x043F

1

None

NodeAddress (0x003)

This function obtains the logical node address of the device.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

NodeAddress

(0x003)

Get (0x1)

Status (0xC)

NodeAddress

Error (0xF)

ErrorCode, ErrorInfo

NodeAddress

For details on parameter settings and the behavior of this parameter, refer to section Node Address.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0010...0x02FF,

0x0500...0x0FEF

1

None

0x0FFE

0xFFFF

GroupAddress (0x004)

This function obtains the group address of a device.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

GroupAddress

(0x004)

Get (0x1)

Status (0xC)

GroupAddress

Error (0xF)

ErrorCode, ErrorInfo

GroupAddress

For details on parameter settings and the behavior of this parameter, refer to section Group Address.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0300...0x03FF

1

None

ShutDown (0x006)

This function checks if a device is ready to shut down. If the application interface is in Protected Mode, the INIC does not suspend the NetBlock.ShutDown() procedure. If the application interface is in Attached Mode, the request is forwarded to the EHC.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

ShutDown

(0x006)

Start (0x0)

Control

Result (0xC)

Control

Error (0xF)

ErrorCode, ErrorInfo

Control

Used to query, suspend, or shut down the network.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Query

Query for shut down

0x01

Suspend

Suspend for shut down

0x02

Execute

Process will be executed.

0x03

Temperature

Device is shut down as a result of temperature.

0x04

DeviceShutDown

Device is shut down.

0x05

WakeFromDeviceShutDown

Application is woken from DeviceShutDown.

RetryParameters (0x007)

This function returns fixed values for parameters RetryTime and RetryNumbers .

Control Low-Level Retries are used by the INIC when an error occurs during control message transmission over the network. Retries are performed based on an optimized retry mechanism (see Section 18.1 ).

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

RetryParameters

(0x007)

Get (0x1)

Status (0xC)

RetryTime, RetryNumbers

Error (0xF)

ErrorCode, ErrorInfo

RetryTime

 

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0

1

None

RetryNumbers
 

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

11

1

None

EUI48 (0x013)

This function derives the 48-bit MAC address (also referred to as EUI-48) of an Ethernet network device.

EUI (Extended Unique Identifier) is a concatenation of a 24-bit OUI (Organizationally Unique Identifier) value and a 24-bit extension identifier.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

EUI48

(0x013)

Get (0x1)

Status (0xC)

EUI0, EUI1, EUI2, EUI3, EUI4, EUI5

Error (0xF)

ErrorCode, ErrorInfo

EUI0

The first byte of the OUI

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

EUI1

The second byte of the OUI

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

EUI2

The third byte of the OUI

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

EUI3

The first byte of the extension identifier

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

EUI4

The second byte of the extension identifier

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

EUI5

The third byte of the extension identifier

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

MOSTVersionInfo (0x014)

This function identifies the version of the underlying MOST Specification, the NetBlock, and the Network Port transceiver.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

MOSTVersionInfo

(0x014)

Get (0x1)

Status (0xC)

MOSTVersion, FBlockVersion,
MOSTTransceiverVersion

Error (0xF)

ErrorCode, ErrorInfo

MOSTVersion

The version of the underlying MOST Specification

Data Type

Size

Value

String

9

e.g., 03.00 E2

FBlockVersion

The version of the NetBlock

Data Type

Size

Value

String

9

e.g., 03.00.03

MOSTTransceiverVersion

The product identifier of the Network Port transceiver

Data Type

Size

Value

String

8

e.g., ‘OS81118’

RBDResult (0x405)

Note: This functionality is chip-specific.
For details refer to Chip_RBD .

This function returns the result of the RBD test. It reports the status of the test and its diagnosis identifier via broadcast to the network.

FBlockID

FktID

OPType

Parameters

NetBlock

(0x01)

RBDResult

(0x405)

Status (0xC)

RBDStatus, DiagID

Error (0xF)

ErrorCode, ErrorInfo

RBDStatus

Status of the RBD result

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

ActivityButNoLock

Status is activity, but no lock ( Pos0WeakSig ).

0x02

NoActivity

Status is no activity ( PosDetected ).

DiagID

Diagnostic identifier of the device.

Data Type

Number of Elements

Parameters

Stream

1

DiagIDContent

DiagIDContent

Diagnostic identifier content

This parameter can be customized via property Diag ID in the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

FBlock INIC
General Functions
Notification (0x001)

This function administers the notification matrix of the function block INIC.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

Notification

(0x001)

Set (0x0)

Control, DeviceID, [ FktIDList ]

Get (0x1)

FktID

Status (0xC)

FktID, [ DeviceIDList ]

Error (0xF)

ErrorCode, ErrorInfo

Control

Determines where the entry in the notification matrix must be made or where the deletion has to occur.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

SetAll

Enters DeviceID in all properties that support notification

0x01

SetFunction

Enters DeviceID for the functions listed in FktIDList . FktIDList is mandatory, i.e., it must contain at least one FktID .

0x02

ClearAll

Deletes DeviceID from all functions of the notification matrix

0x03

ClearFunction

Deletes DeviceID from the functions listed in FktIDList . FktIDList is mandatory, i.e., in this case it must contain at least one FktID .

DeviceID

Indicates the address of the sending device

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

[ FktIDList ]

List of functions with a maximum of four elements. This parameter is only required if Control is SetFunction or ClearFunction .

Data Type

Number of Elements

Parameters

Stream

1...4

FktID, { FktID }

FktID

Functions to be added to or deleted from the notification matrix. The FktIDs are encoded as 16-bit values.

Data Type

FktIDs

Function

Unsigned Word

0x0220

DeviceStatus()

0x0520

NetworkStatus()

0x0602

NetworkPortStatus()

0x0705

GPIOPortTriggerEvent()

0x0802

ResourceMonitor()

[ DeviceIDList ]

List of devices

Data Type

Number of Elements

Parameters

Stream

0...1

DeviceID

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Notification is only allowed from network side, if in the configuration string the configuration interface is set to None .

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

Besides the listed ErrorCode , ErrorInfo , an application may report specific errors during execution by using OPType Error as well. In this event, ErrorCode 0x20, function specific , is also used.

ErrorInfo

Description

0x10, FktIDList

The corresponding properties of FktIDList were rejected by the Notification.Set() command or the property is not supported in the Notification Service.

0x21

Notification device table is full and does not allow more entries.

Device Management Functions

The functions in this section are used to handle device-relevant tasks, including the request of the revision information on the INIC’s hardware and firmware modules as well as the control of the power management behavior.

An overview of the INIC’s device management functions is shown in Table 23-2 .

Table 23-2: Device Management Functions

Function Name

FktID

Possible to Notify

Page

DeviceStatus()

0x220

Yes

DeviceStatus (0x220)

DeviceVersion()

0x221

No

DeviceVersion (0x221)

DevicePowerOff()

0x222

No

DevicePowerOff (0x222)

DeviceAttach()

0x223

No

DeviceAttach (0x223)

DeviceSync()

0x224

No

DeviceSync (0x224)

DeviceInfo()

0x255

No

DeviceInfo (0x225)

 

DeviceStatus (0x220)

This function reports several device properties. Its Status is sent to the EHC after the device has entered the Attached Mode.

This function supports notification.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

DeviceStatus

(0x220)

Status (0xC)

ConfigInterfaceMode,

AppInterfaceMode, PowerState, BIST,
LastResetReason

Error (0xF)

ErrorCode, ErrorInfo

ConfigInterfaceMode

Indicates the operation mode of the configuration interface. The regular operation mode is the Attached Mode. A mode change from Attached to Protected can happen in case of synchronization loss, see Figure 3-5 .

At startup, the mode is set to Protected .

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Protected

The configuration interface is in Protected Mode.

0x01

Attached

The configuration interface is in Attached Mode.

0x02

RemoteAttached

The configuration interface is in Remote Attached Mode.

AppInterfaceMode

Indicates the operation mode of the application interface. The regular operation mode is the Attached Mode. A mode change from Attached to Protected can happen in case of synchronization loss, see Figure 3-9 .

At startup, the mode is set to Protected .

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Protected

The application interface is in Protected Mode.

0x01

Attached

The application interface is in Attached Mode.

PowerState

Power state signaled by the power management interface. For details see Chapter 4.0 .

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

UNormal

Normal power state

0x01

ULow

Erroneous power state

0x02

STP

Switch-to-Power power state

0x03

UCritical

Critical power state

0xFF

NoMonitoring

No power state monitoring

BIST

Result of the built-in self-test.

At startup, the mode is set to OK .

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Processing

BIST verification is running.

0x01

Error

BIST error due to

- a failure in the RAM,

- an old boot-monitor was found,

- a production string failure,

- cPHY was selected on a BF package,

- a failure in the flash memory or

- an inconsistent patch string detection

0x02

OK

BIST verification has no error.

LastResetReason

Shows the last reset reason of the device

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

PowerOn

Startup reset due to Power-on-Reset (POR)

0x01

HardwareWatchdog

Reset due to hardware watchdog

0x02

StackOverflow

Reset due to stack overflow

0x03

Internal

Reset due to an internal reset request caused by function ExtendedNetworkControl.MemorySessionOpen() .

0x04

External

External RST pin was asserted low (see the INIC Hardware Data Sheet [3] ).

DeviceVersion (0x221)

This function contains information on the hardware and firmware modules of the INIC.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

DeviceVersion

(0x221)

Get (0x1)

Status (0xC)

ProductIdentifier, MajorVersion,

MinorVersion, ReleaseVersion,
BuildVersion, HardwareRevision, DiagID, Extension

Error (0xF)

ErrorCode, ErrorInfo

ProductIdentifier

Unique identifier that represents the product name

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

None

MajorVersion

Major version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

MinorVersion

Minor version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ReleaseVersion

Release version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

BuildVersion

Build version number of the firmware. The number can be either a date code or the release build number.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

1

None

HardwareRevision

Chip revision number

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

DiagID

Unique diagnostic identifier of the device

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

Extension

Contains parameter ExtensionElement

Data Type

Number of Elements

Parameter

Stream

0...n

{ ExtensionElement }

ExtensionElement

Contains version information. Information given within this stream is not used for validation purposes and should be seen only as additional information to the device’s version information.

Data Type

Number of Elements

Parameters

Stream

0...n

{ ExtIdentifier, ExtMajorVersion, ExtMinorVersion, ExtReleaseVersion }

ExtIdentifier

Unique identifier that represents an extension

Note: This parameter is chip-specific.
For details refer to Chip_PatchString.

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

CFGS

Configuration string

0x02

PATCHS

Patch string

ExtMajorVersion

Major version number of the extension

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ExtMinorVersion

Minor version number of the extension

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ExtReleaseVersion

Release version number of the extension

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

DevicePowerOff (0x222)

This function sets or clears a power-off request.
INIC.DevicePowerOff(PowerOff = True) may be triggered for instance when an INIC.DeviceStatus.Status(PowerState = ULow ) message is sent to the EHC, which sets a power-off request. For normal operation, the EHC may call INIC.DevicePowerOff.SetGet(PowerOff = False) , which clears a power-off request.

Note: This function cannot be called in Protected Mode. On a transition to Protected Mode, PowerOff is automatically set to False .
 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

DevicePowerOff

(0x222)

Get (0x1)

SetGet (0x2)

PowerOff

Status (0xC)

PowerOff

Error (0xF)

ErrorCode, ErrorInfo

PowerOff

External power management power-off indicator

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

Power-off request is cleared.

True (1)

Power-off request is set.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF1

Configuration interface is in Protected Mode.

DeviceAttach (0x223)

This function is used by an EHC to attach to the INIC. If an INIC.DeviceAttach() command is sent to the INIC, the INIC’s notification service will be triggered for all properties that support notification, except INIC.GPIOTriggerEvent() . If it is desired to get notifications on INIC.GPIOTriggerEvent() , an INIC.Notification.Set(FktID = GPIOPortTriggerEvent) command must be sent explicitly.

A request will be blocked as long as INIC hasn’t finished a still running internal detach/cleanup.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

DeviceAttach

(0x223)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

A wrong device tries to attach; a device attach can be only performed by EHC.

0x31

ICM and RCM PMP channels must be synchronized before the device can be attached.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

An already attached device tries to attach.

DeviceSync (0x224)

This function allows remote synchronization of devices that do not incorporate an EHC.

INIC.DeviceSync() must be called from network side. In advance to the function call, it must be ensured that the settings in the configuration string support the command: Configuration Interface is None , otherwise an error is returned.

For detailed information on how the command is used refer to Chapter 3.0 .

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

DeviceSync

(0x224)

StartResult (0x2)

Synchronization

Result (0xC)

Synchronization

Error (0xF)

ErrorCode, ErrorInfo

Synchronization

Used by an external device to unsynchronize/synchronize the INIC

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

UnSync

Unsynchronize INIC

0x01

Sync

Synchronize INIC

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last INIC.DeviceSync() call has not yet been finished.

0x03

0x30

INIC.DeviceSync() must not be called from EHC side.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

DeviceInfo (0x225)

This function contains INIC device information.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

DeviceInfo

(0x225)

Get (0x1)

Status (0xC)

InfoID, InfoList

Error (0xF)

ErrorCode, ErrorInfo

InfoID

Indicates the format of the information parameter list

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

v1

Version 1

InfoList

Device information list

Data Type

Number of Elements

InfoID

Parameters

Stream

7

v1

ConfigInterfaceMode, ConfigInterfaceSubState,
AppInterfaceMode, AppInterfaceSubState, PowerState, BIST, LastResetReason

ConfigInterfaceSubState

Indicates the configuration interface sub-states available in Protected Mode, see Figure 3-5 .

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

None

None

0x01

Cleanup

Configuration interface is in sub-state cleanup.

0x02

WaitForLocalEHC

Configuration interface is in sub-state
WaitForLocalEHC.

0x03

Synchronized

Configuration interface is in sub-state
Synchronized.

0x04

WaitForRemoteEHC

Configuration interface is in sub-state
WaitForRemoteEHC.

AppInterfaceSubState

Indicates the application interface sub-states available in Protected Mode, see Figure 3-9 .

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

None

None

0x01

Cleanup

Application interface is in sub-state cleanup.

0x02

WaitForLocalEHC

Application interface is in sub-state
WaitForLocalEHC.

Network Functions

The functions in this section are used to handle network-relevant tasks, including the retrieval of network status and configuration information. It also provides the methods to startup and shutdown the network as well as the capability to run the Ring Break Diagnosis.

An overview of the INIC’s network management functions is summarized in Table 23-3 .

Table 23-3: Network Functions

Function Name

FktID

Possible to Notify

Page

NetworkStatus()

0x520

Yes

NetworkStatus (0x520)

NetworkConfiguration()

0x521

No

NetworkConfiguration (0x521)

NetworkFrameCounter

0x523

No

NetworkFrameCounter (0x523)

NetworkStartup()

0x524

No

NetworkStartup (0x524)

NetworkShutdown()

0x525

No

NetworkShutdown (0x525)

NetworkRBD()

0x526

No

NetworkRBD (0x526)

NetworkRBDResult()

0x527

No

NetworkRBDResult (0x527)

NetworkStartupExt()

0x528

No

NetworkStartupExt (0x528)

NetworkForceNotAvailable()

0x52B

No

NetworkForceNotAvailable (0x52B)

NetworkDiagnosisFullDuplex()

0x52C

No

NetworkDiagnosisFullDuplex (0x52C)

NetworkDiagnosisFullDuplexEnd()

0x52D

No

NetworkDiagnosisFullDuplexEnd (0x52D)

NetworkDiagnosisHalfDuplex()

0x52E

No

NetworkDiagnosisHalfDuplex (0x52E)

NetworkDiagnosisHalfDuplexEnd()

0x52F

No

NetworkDiagnosisHalfDuplexEnd (0x52F)

NetworkFallback()

0x530

No

NetworkFallback (0x530)

NetworkFallbackEnd()

0x531

No

NetworkFallbackEnd (0x531)

NetworkInfo()

0x532

No

NetworkInfo (0x532)

NetworkStatus (0x520)

This function reports information on the whole network, including network supervisor states, system parameters and packet bandwidth.

This function supports notification.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkStatus

(0x520)

Status (0xC)

Events, Availability, AvailabilityInfo,
AvailabilityTransitionCause,
NodeAddress, NodePosition,
MaxPosition, PacketBW

Error (0xF)

ErrorCode, ErrorInfo

Events

The Events bits are related to the network interface functionality. They are cleared once they were sent to all notified devices. A newly attached device gets a cleared Events field.

Data Type

Bit #

Description

Unsigned Word

0

NCE

0: No Network Change Event (NCE) available

1: NCE happened. There was a change in the Maximum Position Information. If the network is available, the event flag will be set after the Maximum Position value is valid and the network is in stable lock. The event is delayed at least 100 ms after the Maximum Position Information change has been detected. It is also reported if the new value is equal to the previous value, but the interim value that caused a change in the Maximum Position information was invalid.

1

WCE

0: No Welcomed Change Event (WCE) available; no transisition from Welcomed to not Welcomed

1: WCE happened. There was a transition from Welcomed to not Welcomed.

Availability

Indicates the availability of the network

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NotAvailable

The network is not available.

In this state the network is not started up or startup is not yet completed ( AvailabilityInfo is Regular ). Furthermore, it is possible that diagnosis mode has been started ( AvailabilityInfo is Diagnosis ).

0x01

Available

The network is available.

AvailabilityInfo

Indicates additional information of parameter Availability

Availability is NotAvailable

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Regular

Network is in NetInterface Off or Init state. It is pending to become available again. If AvailabilityTransitionCause is ErrorSystem , the error condition must be cleared first before the network can be started.

Enum

0x02

Diagnosis

- INIC enters this state when RBD is started. It stays in this state until diagnosis is finished. After RBD is finished, INIC.NetworkRBD.Result() is returned, containing the result of the RBD.
An inquiry of INIC.NetworkRBDResult() also reports the result of the RBD, or

- INIC enters this state after starting the ExtendedNetworkControl.PhysicalLayerTest() , or

- Centralized diagnosis or remote administration have been entered.

0x06

ForcedNA

INIC was forced to enter NotAvailable state.

0x07

Fallback

Network is in Fallback operation.

 

Availability is Available

Data Type

Valid Values

Mnemonic

Description

Enum

0x10

Unstable

Unlocks have been detected.

0x11

Stable

Network is in stable lock.

 

AvailabilityTransitionCause

Indicates the transition cause of the network going from NotAvailable to Available or vice versa. This parameter behaves like an event. Once reported, it is cleared to NoTransition . A new attached device will also see NoTransition , which implies that AvailabilityTransitionCause is not remembered from the past, e.g., after a device went through Protected Mode.

The default value is 0xFF.

Data Type

Transition from

Valid Values

Mnemonic

Description

Enum

NotAvailable to Available

0x00

Command

Startup is initiated by chip e.g., through INIC.NetworkStartup() , see page 172 or INIC.NetworkStartupExt() , see page 178

0x01

RxActivity

Chip is woken up by network activity.

Available to NotAvailable

0x10

Normal

- Network is shutdown standardly by an INIC.NetworkShutdown() command (see page 174 ), initiated locally or by a node positioned upstream (in the latter case, the shutdown flag indicates a Normal Shutdown), or

- Physical layer test, network diagnosis or remote administration has been started. For details see Section 2.2.4 .

0x11

ErrorSuddenSignalOff

Network is shut down due to an error.
In this case the shutdown reason was a sudden signal off. No shutdown flag is present.

Enum

Available to NotAvailable

0x12

ErrorCriticalUnlock

Network is shut down due to an error.
In this case the shutdown reason was a critical unlock. No shutdown flag is present.

0x13

ErrorSystem

Network is shut down due to a chip or system error.
Possible reason is that INIC enters ForcedNA state.

0xFF

NoTransition

No transition

NodeAddress

For details on parameter settings and the behavior of this parameter, refer to section Node Address.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0100...0x013F

1

None

0x0010...0x00FF,

0x0140...0x02FF,

0x0500...0x0FEF

0x0FFE

0xFFFF
(factory default value)

NodePosition

Current valid NodePosition if network is available. Zero is reported for a TimingMaster device. 0xFF is reported if the network is not available.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...63

1

None

0xFF

MaxPosition

Last node (maximum) position in the network if the network is available. This parameter also indicates the number of nodes currently visible in the network (also known as Visible Nodes value, formerly called MPR). The value is updated with the Network Change Event. 0xFF is reported if the network is not available.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...64

1

None

0xFF

PacketBW

Current size of packet bandwidth while the network is available, see the INIC Hardware Data Sheet [3] . 0xFFFF is reported if the network is not available.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0...372

4

Byte

0xFFFF

NetworkConfiguration (0x521)

This function covers general network-related configuration settings as well as packet and control data-related settings. Packet-related parameters can be modified by setting the appropriate bits inside the Mask parameter. Parameter PacketFilterMode enables various options for the destination address match logic for MEPs. The packet hash parameters access the 64-bit hash table to allow reception of multi-cast Ethernet frames.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

Network-
Configuration

(0x521)

Get (0x1)

SetGet (0x2)

Mask, NodeAddress, GroupAddress,

ControlLLRBlockCount, PacketFilterMode,
PacketHash_63to48, PacketHash_47to32,

PacketHash_31to16, PacketHash_15to0,
PacketEUI48_47to32, PacketEUI48_31to16,

PacketEUI48_15to0, PacketLLRTime

Status (0xC)

NodeAddress, GroupAddress, ControlLLRBlockCount, PacketFilterMode, PacketHash_63to48,
PacketHash_47to32, PacketHash_31to16,
PacketHash_15to0, PacketEUI48_47to32,
PacketEUI48_31to16, PacketEUI48_15to0,
PacketLLRTime

Error (0xF)

ErrorCode, ErrorInfo

Mask

Changes a single, multiple or all parameters in one SetGet operation. Parameters which are not being set are transmitted as dummy values; they are not decoded by INIC.
The mask bits can either be set to 0 or 1 and behave as follows:
0: The parameter is not considered in the operation.
1: The parameter is considered in the operation.

Data Type

Bit #

Parameters

Unsigned Word

0

NodeAddress

1

GroupAddress

2

ControlLLRBlockCount

3

PacketFilterMode

4

PacketHash_15to0, PacketHash_31to16, PacketHash_47to32,

PacketHash_63to48

5

PacketEUI48_47to32, PacketEUI48_31to16, PacketEUI48_15to0

6

PacketLLRTime

NodeAddress

NodeAddress of the device. If the NodeAddress is set in the dynamic range (0x0100...0x013F), parameter NodeAddress in the Status message will return 0xFFFF. Values 0x0F00...0x0FEF, 0x0FFE and 0xFFFF cannot be set.
The actual NodeAddress is retrieved by function INIC.NetworkStatus() .
For details on parameter settings and the behavior of this parameter, refer to section Node Address.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0100...0x013F

1

None

0x0010...0x00FF,

0x0140...0x02FF,

0x0500...0x0FEF

0x0FFE

0xFFFF

GroupAddress

For details on parameter settings and the behavior of this parameter, refer to section Group Address.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0300...0x03FF

1

None

ControlLLRBlockCount

Defines the block count for control Low-Level Retries for all messages generated by the INIC itself. For more information refer to Section 18.1 .

The default value is 10.

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...100

1

None

PacketFilterMode

Determines the mode of the address match filter for MEPs

Data Type

Bit #

Description

Unsigned Word

0

PASEL (physical address filter select)

0: Physical address perfect filter enabled ( default)

1: Physical address hash filter

1

PAPAS (physical address pass)

0: Physical address match enabled (default)

1: All physical addresses are received

2

MCSEL (multi-cast address filter select)

0: Multi-cast address perfect filter enabled (default)

1: Multi-cast address hash filter enabled

3

MCPAS (multi-cast address pass)

0: Multi-cast address match enabled (default)

1: All multi-cast addresses are received

Unsigned Word

4

INVFILT (inverse filter)

0: Filter is not inverted (default)

1: Filter is inverted, i.e., all single- and multi-cast addresses that do not match the filter (broadcast addresses are not influenced)

5

BISBCST (broadcast receive disable)

0: Broadcast packets can be received (default)

1: All broadcast frames are ignored

Examples:

Mode (5:0) is 1XXXXX:

All broadcast frames disabled (FF:FF:FF:FF:FF:FF)

Mode (5:0) is 000000:

All addresses that match the perfect filter

Mode (5:0) is 000100:

Physical addresses that match the perfect filter; multi-cast addresses that match the hash filter

Mode (5:0) is 000101:

All addresses that match the hash filter

Mode (5:0) is 010000:

All addresses that do not match the perfect filter

Mode (5:0) is 001010:

All addresses

Mode (5:0) is 001000:

All multi-cast addresses; physical addresses that match the perfect filter

Mode (5:0) is 001001:

All multi-cast addresses; physical addresses that match the hash filter

 

PacketHash_63to48

Defines bits 63:48 of the hash table

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

PacketHash_47to32

Defines bits 47:32 of the hash table

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

PacketHash_31to16

Defines bits 31:16 of the hash table

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

PacketHash_15to0

Defines bits 15:0 of the hash table

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

PacketEUI48_47to32

Defines bits 47:32 of the EUI-48.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

PacketEUI48_31to16

Defines bits 31:16 of the EUI-48.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

PacketEUI48_15to0

Defines bits 15:0 of the EUI-48.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

PacketLLRTime

Wait time between Low-Level Retries for data packets in number of network frames.

The default value is 0.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...255

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

A change of the Node Address is not allowed; either the device

- has Node Discovery support enabled,

- is in centralized diagnosis, or

- remote administration mode.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

NetworkFrameCounter (0x523)

This function is used to synchronize clocks on a network frame basis.

The frame counter is automatically enabled at network startup. The counter cannot be disabled and is always active independent of the NetInterface state or the INIC’s device mode.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkFrameCounter

(0x523)

Get (0x1)

Reference

Status (0xC)

Reference, FrameCounter,

FrameCounterLock

Error (0xF)

ErrorCode, ErrorInfo

Reference

Reference frame counter

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

1

None

FrameCounter

Contains the network frame counter at the moment the request was processed by the INIC

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

1

None

FrameCounterLock

Indicates if the frame counter is locked to the network signal.

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

Frame counter is not locked to the network signal.

True (1)

Frame counter is locked to the network signal.

NetworkStartup (0x524)
 

The use of this function and function INIC.NetworkStartupExt() is mutually exclusive.

 

This function initializes the NetInterface, thus waking up the network. The waking device always operates as TimingMaster.

If Available state is reached, the result is reported.

If INIC.NetworkStartup() is initiated in NET_OFF before either timer t Restart or timers t SSO_ShutDown + t Restart (timers are started in NET_OFF ) have timed out, the startup request will be postponed chip-internal and executed when the timer(s) have timed out. If INIC enters Protected Mode when a startup is pending, the startup process will be canceled automatically by INIC.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkStartup

(0x524)

StartResult (0x2)

AutoForcedNotAvailableTime,
PacketBW

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

AutoForcedNotAvailableTime

Determines the delay for network shut down after the INIC has entered Protected Mode. The INIC does not shut down the Network if this value is set to 65535 ms.

After the timer has expired, state INIC.NetworkForceNotAvailable.Status( Force = True) is entered. The state can be left by calling INIC.NetworkForceNotAvailable.SetGet(Force = False) .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

PacketBW

Packet data bandwidth on the network configured by a TimingMaster device. The applied value is reported with INIC.NetworkStatus() , see page 164 .

Note: This parameter is chip-specific.
For the maximum value refer to Chip_Bandwidth_MaxValue.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0...65535

4

Byte

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

- The last INIC.NetworkStartup() call has not yet been finished, or

- INIC.NetworkShutdown() has not yet been finished.

0x02

0x20

- ForcedNA was set,

- Physical layer test is running,

- network diagnosis is running or

- the device is already in device diagnosis mode.

0x20

0x02

0x21

Available state cannot be reached, since

- INIC.NetworkShutdown() is called,

- RBD is started,

- physical layer test is started,

- ForcedNA is set, or

- full-duplex diagnosis is started.

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

0x04

0x40

Calling INIC.NetworkStartup() is not possible in Available state.

0x41

Packet channel bandwidth or proxy channel bandwidth is out of range.

NetworkShutdown (0x525)

This function shuts down the NetInterface. Once the NetInterface is in NetInterface Off state, the signal at the output turns off causing a chain reaction shutting down all the devices in the network. Typically, only the PowerMaster may switch off the signal, except during special error cases. The result will be sent after t Restart or timers t SSO_ShutDown + t Restart have expired. If the network is already in NetInterface Off state and t Restart has elapsed, the result is returned immediately without an error.

The INIC enters NetInterface Off state automatically when no network signal is present at its input.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkShutdown

(0x525)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last INIC.NetworkShutdown() call has not yet been finished.

0x02

0x20

- Physical layer test is running,

- network diagnosis is running or

- ForcedNA was set.

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

NetworkRBD (0x526)

Note: This functionality is chip-specific.
For details refer to Chip_RBD.

This function starts the Ring Break Diagnosis. The INIC.NetworkStatus() function indicates the network is in NotAvailable state and AvailabilityInfo Diagnosis has been entered. After RBD has finished, the result is reported via function INIC.NetworkRBDResult() and the INIC enters NetInterface Off state.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkRBD

(0x526)

StartResult (0x2)

Type

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

Type

Indicates whether the INIC performs the RBD as TimingMaster or as TimingSlave

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

TimingSlave

INIC performs RBD as TimingSlave.

0x01

TimingMaster

INIC performs RBD as TimingMaster.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last INIC.NetworkRBD() call has not yet been finished.

0x11

RBD is active because it was triggered by the power management interface or it was started previous to DeviceAttach.

0x02

0x20

- Physical layer test is running, or

- ForcedNA was set.

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

0x04

0x41

- The Network Port is configured in full-duplex coax mode, or

- RBD is triggered, but either the Network Port in function INIC.NetworkPortUsed() was set to Used = False or Port Mode in the configuration string was set to Unused .

NetworkRBDResult (0x527)

Note: This functionality is chip-specific.
For details refer to Chip_RBD.

This function contains the result of the Ring Break Diagnosis. The RBD can be triggered by the power management interface or by method INIC.NetworkRBD() , see Section 23.2.3.6 . If the method has been started, the results of the ring break can be inquired by using this function.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkRBDResult

(0x527)

Get (0x1)

Status (0xC)

RBDResult, RBDPosition, RBDStatus, RBDDiagID

Error (0xF)

ErrorCode, ErrorInfo

RBDResult

Describes the result type

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NoError

No error

0x01

PosDetected

Position detected

0x02

DiagFailed

Diagnosis failed

0x03

Pos0WeakSig

PosDetected is 0 and unlockable signal on Rx was detected

0xFE

Pending

RBD is running

0xFF

NoResult

No result

RBDPosition

Relative position to the ring break. This parameter is only used for RBDResult PosDetected ; for all others 0 is returned.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...63

1

None

RBDStatus

Status of the RBD result after the ring break. The status is received via the NetBlock.RBDResult() message, distributed in Phase 3 of the Ring Break Diagnosis. 0xFF is reported when the message was not received.

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

ActivityButNoLock

Status is activity, but no lock ( Pos0WeakSig ).

0x02

NoActivity

Status is no activity ( PosDetected ).

0xFF

NoResult

No result

RBDDiagID

Diagnostic identifier of the device located after the ring break. The identifier is received via the NetBlock.RBDResult() message, distributed in Phase 3 of the Ring Break Diagnosis. 0xFFFF is reported when the message was not received.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

NetworkStartupExt (0x528)
 

The use of this function and function INIC.NetworkStartup() is mutually exclusive.

 

This function initializes the NetInterface, thus waking up the network. The waking device always operates as TimingMaster.

If Available state is reached, the result is reported.

If INIC.NetworkStartupExt() is initiated in NET_OFF before either timer t Restart or timers t SSO_ShutDown + t Restart (timers are started in NET_OFF ) have timed out, the startup request will be postponed chip-internal and executed when the timer(s) have timed out. If INIC enters Protected Mode when a startup is pending, the startup process will be canceled automatically by INIC.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkStartupExt

(0x528)

StartResult (0x2)

AutoForcedNotAvailableTime,
PacketBW, ProxyChannelBW

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

AutoForcedNotAvailableTime

Determines the delay for network shut down after the INIC has entered Protected Mode. The INIC does not shut down the network if this value is set to 65535 ms.

After the timer has expired, state INIC.NetworkForceNotAvailable.Status( Force = True) is entered. The state can be left by calling INIC.NetworkForceNotAvailable.SetGet(Force = False) .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

PacketBW

Packet data bandwidth on the network configured by a TimingMaster device. The applied value is reported with INIC.NetworkStatus() , see page 164 .

Note: This parameter is chip-specific.
For the maximum value refer to Chip_Bandwidth_MaxValue.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0...65535

4

Byte

ProxyChannelBW

Proxy channel bandwidth on the network configured by a TimingMaster device.

Note: This parameter is chip-specific.
For the maximum value refer to Chip_Bandwidth_MaxValue.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0...65535

1

Byte

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

- The last INIC.NetworkStartupExt() call has not yet been finished, or

- INIC.NetworkShutdown() has not yet been finished.

0x02

0x20

- ForcedNA was set,

- Physical layer test is running,

- network diagnosis is running, or

- the device is already in device diagnosis mode.

0x21

Available state cannot be reached, since

- INIC.NetworkShutdown() is called,

- physical layer test is started,

- ForcedNA is set, or

- full-duplex diagnosis is started.

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

0x04

0x40

Calling INIC.NetworkStartupExt() is not possible in Available state.

0x41

Packet channel bandwidth or proxy channel bandwidth is out of range.

NetworkForceNotAvailable (0x52B)

This function controls the behavior of the network interface. INIC.NetworkForceNotAvailable.SetGet(Force = True) may be triggered for instance when an INIC.DeviceStatus.Status(PowerState = ULow ) message is sent to the EHC. If Force is set to True , Availability in INIC.NetworkStatus() is set to NotAvailable , AvailabilityInfo is set to ForcedNA and AvailabilityTransitionCause is set to ErrorSystem . For normal operation, the EHC may call INIC.NetworkForceNotAvailable.SetGet(Force = False) .

Note: This function cannot be called in Protected Mode. On a transition to Protected Mode, Force is automatically set to False .
 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

Network-
ForceNotAvailable

(0x52B)

Get (0x1)

SetGet (0x2)

Force

Status (0xC)

Force

Error (0xF)

ErrorCode, ErrorInfo

Force

Used to force the INIC to enter network NotAvailable state

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

INIC is not forced to network NotAvailable state.

True (1)

INIC is forced to network NotAvailable state (static Tx-Off).

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF1

Configuration interface is in Protected Mode.

NetworkDiagnosisFullDuplex (0x52C)

Note: This functionality is chip-specific.
For details refer to Chip_NWDiagnosisFD.

This function is used to start the full-duplex diagnosis.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkDiagnosis-
FullDuplex

(0x52C)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

- The last INIC.NetworkDiagnosisFullDuplex() call has not yet been finished, or

- INIC.NetworkDiagnosisFullDuplexEnd() has not yet been finished.

0x02

0x22

- Device is not in NET_OFF state, or

- device is already in device diagnosis mode.

0x03

0x3A

Functionality is not available.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

NetworkDiagnosisFullDuplexEnd (0x52D)

Note: This functionality is chip-specific.
For details refer to Chip_NWDiagnosisFD.

This function is used to end the full-duplex diagnosis.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkDiagnosis-
FullDuplexEnd

(0x52D)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last INIC.NetworkDiagnosisFullDuplexEnd() call has not yet been finished

0x02

0x22

Network is not in full-duplex diagnosis mode.

0x03

0x3A

Functionality is not available.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

NetworkDiagnosisHalfDuplex (0x52E)

Note: This functionality is chip-specific.
For details refer to Chip_NWDiagnosisHD.

This function is used to start the half-duplex diagnosis.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkDiagnosis-
HalfDuplex

(0x52E)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x02

0x22

Device is not in NET_OFF state.

0x03

0x3A

Functionality is not available.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

NetworkDiagnosisHalfDuplexEnd (0x52F)

Note: This functionality is chip-specific.
For details refer to Chip_NWDiagnosisHD.

This function is used to end the half-duplex diagnosis.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkDiagnosis-
HalfDuplexEnd

(0x52F)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x02

0x22

Network is not in half-duplex diagnosis mode.

0x23

- INIC.NetworkDiagnosisHalfDuplexEnd() is already called,

- the device is not a TimingMaster or

- the network communication flow is not in standard direction.

0x03

0x3A

Functionality is not available.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF3

Configuration interface is not in Attached Mode.

NetworkFallback (0x530)

Note: This functionality is chip-specific.
For details refer to Chip_NWFallback .

This function is used to initiate Fallback operation.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkFallback

(0x530)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x02

0x22

Network is already in Fallback mode.

0x03

0x30

Fallback operation can be only initiated if Fallback Mode is set to Guard .

0x3A

Functionality is not available.

0xF3

Configuration interface is not in Attached Mode.

NetworkFallbackEnd (0x531)

Note: This functionality is chip-specific.
For details refer to Chip_NWFallback .

This function is used to end Fallback operation in the local INIC.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkFallbackEnd

(0x531)

StartResult (0x2)

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x02

0x22

Network is not in Fallback mode.

0x03

0x3A

Functionality is not available.

0xF3

Configuration interface is not in Attached Mode.

NetworkInfo (0x532)

This function contains information on the network.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkInfo

(0x532)

Get (0x1)

Status (0xC)

InfoID, InfoList

Error (0xF)

ErrorCode, ErrorInfo

InfoID

Indicates the format of the information parameter list

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

v1

Version 1

InfoList

Network information list

Data Type

Number of Elements

Parameters

Stream

8

SystemConfigState, Availability, AvailabilityInfo,
LastAvailabilityTransitionCause, NodeAddress,
NodePosition, MaxPosition, PacketBW

SystemConfigState

Indicates the system state

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NotOK

The system state is not OK.

0x01

OK

The system state is OK.

LastAvailabilityTransitionCause

Indicates the transition cause of the network going from NotAvailable to Available or vice versa.

Data Type

Transition from

Valid Values

Mnemonic

Description

Enum

NotAvailable to Available

0x00

Command

Startup is initiated by chip e.g., through INIC.NetworkStartup() , see page 172 or INIC.NetworkStartupExt() , see page 178 .

0x01

RxActivity

Chip is woken up by network activity.

Available to NotAvailable

0x10

Normal

- Network is shutdown standardly by an INIC.NetworkShutdown() command (see page 174 ), initiated locally or by a node positioned upstream (in the latter case, the shutdown flag indicates a Normal Shutdown), or

- Physical layer test, network diagnosis or remote administration has been started. For details see Section 2.2.4 .

0x11

ErrorSuddenSignalOff

Network is shut down due to an error.
In this case the shutdown reason was a sudden signal off. No shutdown flag is present.

Enum

Available to NotAvailable

0x12

ErrorCriticalUnlock

Network is shut down due to an error.
In this case the shutdown reason was a critical unlock. No shutdown flag is present.

0x13

ErrorSystem

Network is shut down due to a chip or system error.
Possible reason is that INIC enters ForcedNA state.

Network Port Functions

Note: Availability of resource objects is chip-specific, see Section 2.2.2.1 .

The functions in this section are used to handle the behavior of a Network Port, including the return of the port status, and the creation of a Network socket. Furthermore, the functions are used to define all parameters that are required to enable data transfer over a port and its sockets.

A Network Port is in direct relation to the network management.

To get more information on the Network Port, refer to Chapter 8.0 .

An overview of the INIC’s Network Port functions is shown in Table 23-4 .

Table 23-4: Network Port Functions

Function Name

FktID

Possible to Notify

Page

NetworkPortStatus()

0x602

Yes

NetworkPortStatus (0x602)

NetworkPortUsed()

0x603

No

NetworkPortUsed (0x603)

NetworkSocketCreate()

0x611

No

NetworkSocketCreate (0x611)

NetworkPortStatus (0x602)

This function reports streaming-related information for a Network Port, including the state of the port and available streaming bandwidth.

This function supports notification.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkPortStatus

(0x602)

Status (0xC)

NetworkPortHandle, Availability,
AvailabilityInfo, FullStreamingEnabled, FreeStreamingBW

Error (0xF)

ErrorCode, ErrorInfo

NetworkPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0D00...0x0DFF

1

None

Availability

Indicates if the Network Port is available and ready for streaming data connections

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NotAvailable

Network Port is not available for streaming data. FreeStreamingBW is set to 0xFFFF. All created sockets on this port have become invalid.

0x01

Available

Network Port is available and it is possible to have streaming data connections.

AvailabilityInfo

Indicates additional information of parameter Availability

Availability is NotAvailable

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Regular

The Network Port is not available for streaming data. This is for instance the case if the network is shut down or Ring Break Diagnosis is running.

0x01

Disabled

The Network Port and the transmitter output is disabled.

 

Availability is Available

Data Type

Valid Values

Mnemonic

Description

Enum

0x10

Unstable

Unlocks have been detected at the Network Port and streaming is temporarily not available.

0x11

Stable

The Network Port is in stable lock.

0x12

BypassedRegular

The Network Port cannot detect activity on its receiver input.

0x13

BypassedDisabled

The Network Port has been switched off by the application. The transmitter output is constantly disabled, independent from activity detection on the receiver’s input.

FullStreamingEnabled

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

Streaming is disabled.

FreeStreamingBW

Specifies the number of free streaming bandwidth for a Network Port, see also the INIC Hardware Data Sheet [3] . 0xFFFF is reported if the Network Port is not available.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

NetworkPortUsed (0x603)

Note: Availability of resource objects is chip-specific, see Section 2.2.2.1 .
For details refer to Chip_NumberOfNetworkPorts.

This function sets a Network Port to used or unused.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkPortUsed

(0x603)

StartResult (0x2)

NetworkPortHandle, Used

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

NetworkPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0D00...0x0DFF

1

None

Used

Indicates if the Network Port is used or unused

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

Network Port is unused.
If the network is not available, AvailabilityInfo in INIC.NetworkPortStatus() is Disabled .
If the network is available, AvailabilityInfo is BypassedDisabled .

True (1)

Network Port is used.

If the network is not available, AvailabilityInfo in INIC.NetworkPortStatus() is Regular .
If the network is available, but the Network Port is not integrated, AvailabilityInfo is BypassedRegular . If the Network Port is integrated, AvailabilityInfo can be either Unstable or Stable .

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x35

- The Network Port cannot be set to Used = True , since it was set to Unused in the configuration string, or

- INIC.NetworkPortUsed() is called and network diagnosis is running.

0x39

Parameter NetworkPortHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

NetworkSocketCreate (0x611)

This function creates a Network socket bound to the Network Port.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

NetworkSocketCreate

(0x611)

StartResult (0x2)

NetworkPortHandle, Direction,
DataType, Bandwidth,
ConnectionLabel

Result (0xC)

NetworkSocketHandle,
ConnectionLabel

Error (0xF)

ErrorCode, ErrorInfo

NetworkPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0D00...0x0DFF

1

None

Direction

Indicates the direction of the data stream from the INIC’s perspective

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Input

Socket transfers data into INIC.

0x01

Output

Socket transfers data out of INIC.

DataType

Specifies the data type

Note: This parameter is chip-specific.
For details refer to Chip_DataType.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Sync

Specifies the Synchronous Streaming data type

0x03

AVPacketized

Specifies the A/V Packetized Isochronous Streaming data type

0x04

QoSPacket

Specifies the Quality of Service packet data type

0x05

DiscFramePhase

Specifies the DiscreteFrame Isochronous Streaming data type, phase information

Bandwidth

Required socket bandwidth in bytes. Maximum value depends on currently free network resources.

Note: This parameter is chip-specific.
For details refer to Chip_Bandwidth_MaxValue and Chip_DataType.

Data Type

Exp.

Valid Values

Description

Step

Unit

DataType = Sync , AVPacketized , and QoSPacket

Unsigned Word

0

1...65535

For calculating the required bandwidth refer to Equation 21-3 .

1

Byte

DataType = DiscFramePhase

Unsigned Word

0

3

Fixed size of 3 bytes

Byte

ConnectionLabel

Dynamic or static network connection label, see Section 8.3 . When ConnectionLabel is used as Result, it specifies the network connection label.

Dynamic connection label
When used as parameter with direction Input , the connection label is used to connect to the appropriate network frame bytes. When used as parameter with direction Output , the connection label is not used and must be set to 0xFFFF.

Static connection label
Connection label is assigned to a Network socket by using an off-line tool. Labels of this type use the range of valid values from 0x800C to 0x817F, for both input and output sockets, see Section 8.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x000C...0x017F ( Input )

1

None

0xFFFF
( Output )

0x800C...0x817F

1

NetworkSocketHandle

Socket resource handle of the created socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0E00...0x0EFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last INIC.NetworkSocketCreate() call has not yet been finished.

0x02

0x20

A communication error has occurred, for example: the operation was interrupted by network disturbance. The EHC may try to create the socket again. It should wait at least 20 ms before retrying during normal network conditions or otherwise wait until stable network lock has been regained.

0x20

0x03

0x30

A socket of direction Input was requested to be created, and

- there is no network channel available that matches the provided ConnectionLabel,

- there was already an Input socket created with the provided ConnectionLabel ,

- an Output socket was found that is not a loopback socket,

- the provided channel size mismatches with the actual size of the network channel, or

- the Network Port has no streaming resources.

0x31

- A socket of direction Output was requested to be created, but the used ConnectionLabel is not 0xFFFF, or

- a socket of direction Input was requested to be created, but the used ConnectionLabel is 0xFFFF.

0x32

Parameter Bandwidth is invalid for the data type DiscFramePhase , or Bandwidth does not match the loopback socket.

0x39

Parameter NetworkPortHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0xF1

Configuration interface is in Protected Mode.

0x04

0x40

The network is in NotAvailable state.

0x41

A socket of direction Output was requested to be created, and

- there is not enough free bandwidth on the network available to complete the allocation request, or

- the Network Port has no streaming resources.

0x42

The socket cannot be created, since there is no socket entry possible.

MediaLB Port Functions

Note: Availability of resource objects is chip-specific, see Section 2.2.2.2 .

The functions in this section are used to handle the behavior of the MediaLB Port, including the creation of the port and the data sockets bound to it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets.

To get more information on the MediaLB Port, refer to Chapter 9.0 .

An overview of the INIC’s MediaLB Port functions is shown in Table 23-5 .

Table 23-5: MediaLB Port Functions

Function Name

FktID

Possible to Notify

Page

MediaLBPortCreate()

0x621

No

MediaLBPortCreate (0x621)

MediaLBSocketCreate()

0x631

No

MediaLBSocketCreate (0x631)

MediaLBPacketMuxSocketCreate()

0x632

No

MediaLBPacketMuxSocketCreate (0x632)

MediaLBPortCreate (0x621)

This function creates the MediaLB Port with its associated port instance identifier.

If the MediaLB Port has been already created, an error message will be returned.

A MediaLB Port can be created when INIC starts up. In this case, the appropriate settings need to be written to the Configuration String. If the MediaLB Port is created at startup, it cannot be destroyed during runtime. It remains created when EHC reattaches since the port is part of the INIC’s default configuration.

If a MediaLB Port is created during runtime using INIC.MediaLBPortCreate() , it will be automatically destroyed when EHC detaches.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

MediaLBPortCreate

(0x621)

StartResult (0x2)

Index, ClockConfig

Result (0xC)

MediaLBPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

MediaLB Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ClockConfig

Stores the clock speed configuration. The value is a multiple of the network frame rate Fs; this means the MediaLB Port can only be frequency locked to the network’s system clock.

This parameter can be customized via the Configuration String.

Note: This parameter is chip-specific.
For details refer to Chip_MediaLBPinModes and Table 9-1 .

Data Type

Valid Values

Mnemonic

MediaLB Pin Modes

Enum

0x00

256Fs

3-Pin mode

0x01

512Fs

0x02

1024Fs

0x03

2048Fs

6-Pin mode

0x04

3072Fs

0x05

4096Fs

0x06

6144Fs

0x07

8192Fs

MediaLBPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0A00...0x0AFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The wrong ClockConfig parameter is used.

0x38

The MediaLB Port has been already created.

0x39

Parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

The MediaLB Port is not supported by this chip.

MediaLBSocketCreate (0x631)

This function creates a MediaLB socket bound to the MediaLB Port with the associated port instance identifier. If the EHC detaches, the MediaLB socket will be automatically destroyed.

Flow control is always disabled for data type Sync .

For all other data types, flow control is enabled when data is sent from the EHC to the INIC. Consequently, the INIC drives the RxStatus field to signal the EHC if it is ready to receive data (ReceiverReady) or if it is busy (ReceiverBusy). If data is sent from INIC to EHC, flow control is only enabled for Control and Packet data types. The INIC receives the RxStatus from the EHC and if the EHC signals ReceiverBusy, the INIC retransmits the last quadlet until the RxStatus changes.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

MediaLBSocketCreate

(0x631)

StartResult (0x2)

MediaLBPortHandle, Direction,

DataType, Bandwidth,

ChannelAddress

Result (0xC)

MediaLBSocketHandle

Error (0xF)

ErrorCode, ErrorInfo

MediaLBPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0A00...0x0AFF

1

None

Direction

Indicates the direction of the data stream from the INIC’s perspective

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Input

Socket transfers data into INIC.

0x01

Output

Socket transfers data out of INIC.

0x02

InputOutput

Reserved to be used with Proxy sockets. Data on the MediaLB channel is bypassed by INIC.

DataType

Specifies the data type

Note: This parameter is chip-specific.
For details refer to Chip_DataType.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Sync

Specifies the Synchronous Streaming data type

0x01

Packet

Specifies the packet data type

0x02

Control

Specifies the control data type

0x03

AVPacketized

Specifies the A/V Packetized Isochronous Streaming data type

0x04

QoSPacket

Specifies the Quality of Service packet data type

0x05

DiscFramePhase

Specifies the DiscreteFrame Isochronous Streaming data type, phase information

0x07

IPCPacket

Specifies the IPC packet data type

0x08

Proxy

Specifies the proxy data type

Bandwidth

Required socket bandwidth in bytes. As stated in Table 9-1 , the maximum socket bandwidth value is dependent on ClockConfig and ChannelAddress. The value is also dependent on the used DataType , therefore consider the following limitations:

  • Packet : The minimum valid value must be 4. Due to the quadlet requirement for packet data, the step must be 4.
  • Control : Fixed size of 4 bytes.
  • DiscFramePhase : Fixed size of 2 bytes.
  • Data Type

    Exp.

    Valid Values

    Step

    Unit

    Unsigned Word

    0

    1...856

    1

    Byte

ChannelAddress

Indicates the MediaLB ChannelAddress to which the socket is mapped. As stated in Table 9-1 , the maximum channel address value is dependent on the ClockConfig and the ChannelAddress.
If the MediaLB Port is configured by the configuration string property Configuration Interface as default, channel addresses 0x0002 and 0x0004 are reserved and cannot be used.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0002...0x007E

2

None

MediaLBSocketHandle

Socket resource handle of the created socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0B00...0x0BFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter ChannelAddress does not fit the range specified for the used MediaLB pin mode.

0x31

Parameter Bandwidth is invalid for the given data type.

0x32

Parameter Direction or DataType is invalid, when creating a proxy socket.

0x38

Parameter ChannelAddress is already in use.

0x39

- The port associated with the given MediaLBPortHandle was not created, or

- parameter MediaLBPortHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x41

The bandwidth cannot be allocated.

0x42

The MediaLB socket cannot be created, since there is no further socket entry possible.

MediaLBPacketMuxSocketCreate (0x632)

Note: Availability of resource objects is chip-specific, see Section 2.2.2.2 .
For details refer to Chip_NumberOfMediaLBPorts.

This function is used to enable the packet multiplexing feature, see Section 9.2.2 .

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

MediaLBPacketMuxSocketCreate

(0x632)

StartResult (0x2)

MediaLBSocketHandle

Result (0xC)

MediaLBSocketHandle

Error (0xF)

ErrorCode, ErrorInfo

MediaLBSocketHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0B00...0x0BFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The socket is not of data type Packet .

0x31

The bandwidth is less than 12 bytes.

0x38

- The generated multiplex channel address is already in use,

- the socket provided is already used in a multiplex configuration, or

- the socket provided is already attached to the packet connection.

0x39

The socket associated with the given MediaLBSocketHandle was not created or the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x42

The MediaLB socket cannot be created, since there is no further socket entry possible.

SPI Port Functions

Note: Availability of resource objects is chip-specific, see Section 2.2.2.4 .

The functions in this section are used to handle the behavior of the SPI Port, including the creation of the port and the data sockets bound to it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets.

To get more information on the SPI Port, refer to Chapter 11.0 .

An overview of the INIC’s SPI Port functions is shown in Table 23-6 .

Table 23-6: SPI Port Functions

Function Name

FktID

Possible to Notify

Page

SPIPortCreate()

0x641

No

SPIPortCreate (0x641)

SPISocketCreate()

0x651

No

SPISocketCreate (0x651)

SPIPortCreate (0x641)

This function creates the SPI Port with its associated port instance identifier.

If the SPI Port has been already created, an error message will be returned.

An SPI Port can be created when INIC starts up. In this case, the appropriate settings need to be written to the Configuration String. If the port was created at startup, it cannot be destroyed during runtime. It will also remain created when EHC reattaches since the port is part of the INIC’s default configuration.

If an SPI Port is created during runtime using INIC.SPIPortCreate() function, it will be automatically destroyed when EHC reattaches.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

SPIPortCreate

(0x641)

StartResult (0x2)

Index, ClockMode

Result (0xC)

SPIPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

SPI Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ClockMode

Indicates the configuration of the phase and polarity of the SCLK signal.
This parameter can be customized via the Configuration String.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

SCLKLowSFCR

Mode 0: SCLK is low when idle. Data switches on the falling edge, needs to be captured on the rising edge.

0x01

SCLKLowSRCF

Mode 1: SCLK is low when idle. Data switches on the rising edge, needs to be captured on the falling edge.

0x02

SCLKHighSRCF

Mode 2: SCLK is high when idle. Data switches on the rising edge, needs to be captured on the falling edge.

0x03

SCLKHighSFCR

Mode 3: SCLK is high when idle. Data switches on the falling edge, needs to be captured on the rising edge.

SPIPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1000...0x10FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x37

Required GPIO pins are locked.

0x38

The SPI Port has been already created.

0x39

Parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

SPISocketCreate (0x651)

This function creates an SPI socket bound to the SPI Port with its associated port instance identifier. If EHC detaches, the SPI socket will be automatically destroyed.

There is a fixed logical channel assignment for combinations of Direction and DataType, when creating an SPI socket. Details are given in Section 11.2 .

 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

SPISocketCreate

(0x651)

StartResult (0x2)

SPIPortHandle, Direction, DataType

Result (0xC)

SPISocketHandle

Error (0xF)

ErrorCode, ErrorInfo

SPIPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1000...0x10FF

1

None

Direction

Indicates the direction of the data stream from the INIC’s perspective

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Input

Socket transfers data into INIC.

0x01

Output

Socket transfers data out of INIC.

DataType

Specifies the data type

Note: This parameter is chip-specific.
For details refer to Chip_SPIDataType.

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

Packet

Specifies the packet data type

0x02

Control

Specifies the control data type

SPISocketHandle

Socket resource handle of the created socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1100...0x11FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x38

The given SPI channel is already in use.

0x39

The port associated with the given SPISocketHandle was not created.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x42

The SPI socket cannot be created, since there is no socket entry possible.

USB Port Functions

Note: Availability of resource objects is chip-specific, see Section 2.2.2.3 .

The functions in this section are used to handle the behavior of the USB Port, including the creation of the port and the data sockets bound to it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets.

To get more information on the USB Port, refer to Chapter 10.0 .

An overview of the INIC’s USB Port functions is shown in Table 23-7 .

Table 23-7: USB Port Functions

Function Name

FktID

Possible to Notify

Page

USBPortCreate()

0x661

No

USBPortCreate (0x661)

USBSocketCreate()

0x671

No

USBSocketCreate (0x671)

 

USBPortCreate (0x661)

Note: Availability of resource objects is chip-specific, see Section 2.2.2.3 .
For details refer to Chip_NumberOfUSBPorts .

This function creates the USB Port with its associated port instance identifier.

If the USB Port has been already created, an error message will be returned.

Consider that a previously created port is not automatically destroyed by the INIC when doing another call to INIC.USBPortCreate() .

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

USBPortCreate

(0x661)

StartResult (0x2)

Index, PhysicalLayer,

DeviceInterfaces,

StreamingIfEpOutCount,
StreamingIfEpInCount

Result (0xC)

USBPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

USB Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

PhysicalLayer

Selects the interface of the USB Port’s physical layer.

This parameter can be customized via the Configuration String.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Standard

Standard – USB uses the standard USB 2.0 physical layer with analog transceivers for communication.

0x01

HSIC

HSIC – USB uses the High-Speed Inter-Chip physical layer with digital transceivers for on-board communication.

DeviceInterfaces

Activates one or more of the USB device interfaces provided by the INIC.

Note: The deactivation of all device interfaces yields an invalid configuration.
 

Note: This parameter is chip-specific.
For details refer to Chip_IPCPacket.

 

Data Type

Bit #

Description

Unsigned Word

0

EnableControlIf (control interface activate)

0: Deactivates the control interface

1: Activates the control interface with endpoints Chip_USBCtrlEpOutAddr (OUT) and Chip_USBCtrlEpInAddr (IN) (default)

Unsigned Word

1

EnablePacketIf (packet interface activate)

0: Deactivates the packet interface (default)

1: Activates the packet interface with endpoints
Chip_USBPktEpOutAddr (OUT) and Chip_USBPktEpInAddr (IN)

2

EnableIpcPacketIf (IPC packet interface activate)

0: Deactivates the IPC packet interface (default)

1: Activates the IPC packet interface with endpoints 0x0D (OUT) and 0x8D (I N)

3

EnableStreamingIf (streaming interface activate)

0: Deactivates the streaming interface

1: Acitivates the streaming interface (default), count of OUT and IN endpoints depends on parameters StreamingIfEpOutCount and
StreamingIfEpInCount

StreamingIfEpOutCount

Defines the number of OUT endpoints inside the streaming interface, starting with endpoint 0x01. This value must be zero if the streaming interface is disabled.

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...10

1

None

StreamingIfEpInCount

Defines the number of IN endpoints inside the streaming interface, starting with endpoint 0x81. This value must be zero if the streaming interface is disabled.

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...10

1

None

USBPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1200...0x12FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter values for StreamingIfEpOutCount or
StreamingIfEpInCount are invalid.

0x31

EnableStreamingIf is disabled and the parameter values for StreamingIfEpOutCount and StreamingIfEpInCount have not been set to zero.

0x32

EnableStreamingIf is enabled and the parameter values for StreamingIfEpOutCount and StreamingIfEpInCount are set to zero.

0x33

The USB PhysicalLayer interface does not correspond with the initially selected one.

0x20

0x03

0x38

The USB Port has been already created.

0x39

Parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

USBSocketCreate (0x671)

Note: Availability of resource objects is chip-specific, see Section 2.2.2.3 .
For details refer to Chip_NumberOfUSBPorts and Chip_DataType .

This function creates a USB socket bound to the USB Port with its associated port instance identifier. If the EHC detaches, the USB socket will be automatically destroyed.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

USBSocketCreate

(0x671)

StartResult (0x2)

USBPortHandle, Direction, DataType, EndpointAddress,
FramesPerTransaction

Result (0xC)

USBSocketHandle

Error (0xF)

ErrorCode, ErrorInfo

USBPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1200...0x12FF

1

None

Direction

Indicates the direction of the data stream from the INIC’s perspective

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Input

Socket transfers data into INIC.

0x01

Output

Socket transfers data out of INIC.

DataType

Specifies the data type

Note: This parameter is chip-specific.
For details refer to Chip_IPCPacket.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Sync

Specifies the Synchronous Streaming data type

0x01

Packet

Specifies the packet data type

0x02

Control

Specifies the control data type

0x03

AVPacketized

Specifies the A/V Packetized Isochronous Streaming data type

0x07

IPCPacket

Specifies the IPC packet data type

EndpointAddress

Specifies the address of a USB endpoint as per its description in the USB 2.0 Specification [4] .

0x01...0x0F: Indicates the OUT endpoints
0x81...0x8F: Indicates the IN endpoints

Note: A USB socket of direction Input only accepts a USB endpoint address of direction OUT and a USB socket of direction Output only accepts a USB endpoint address of direction IN.
 

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x01...0x0F

1

None

0x81...0x8F

FramesPerTransaction

Indicates the number of network frames/packets per one USB transaction.

Data Type

Exp.

Valid Value

Description

Step

Unit

DataType = Sync

Unsigned Word

0

0x0007...n

Number of network frames from which the synchronous data bytes are put and filled-in into one USB transaction. For more information refer to Section 10.3.1 .
Padding is applied.

1

None

DataType = AVPacketized

Unsigned Word

0

0x0002

Two A/V Packetized Isochronous Streaming data packets per USB transaction. For more information refer to Section 10.3.2 .
Padding is applied.

None

0xFFFF

USB transaction is completely filled with A/V Packetized Isochronous Streaming data.
No padding is applied.
Note: If the EHC sends packets to the INIC, the EHC must make sure that no short packets will be sent before the stream ends.

DataType = Control , Packet and IPCPacket

Unsigned Word

0

0xFFFF

No padding is applied.

None

USBSocketHandle

Socket resource handle of the created socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1300...0x13FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The value in FramesPerTransaction does not match the data type.

0x31

The USB endpoint is already in use or not available.

0x33

The USB endpoint does not match the socket’s direction setting.

0x39

The port associated with the given USBPortHandle was not created.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x42

The USB socket cannot be created, since there is no socket entry possible.

Streaming Port Functions

Note: The functionality described in this chapter is chip-specific.
For details refer to Section 2.2.2.5 .

The functions in this section are used to handle the behavior of the Streaming Port, including the creation of the port and the data sockets bound to it. Furthermore, the functions are used to define all parameters that are required to enable data transfer over the port and its sockets. In addition the configuration of an internal loopback is provided.

To get more information on the Streaming Port, refer to Chapter 12.0 .

An overview of the Streaming Port functions is shown in Table 23-8 .

Table 23-8: Streaming Port Functions

Function Name

FktID

Possible to Notify

Page

StreamPortConfiguration()

0x680

No

StreamPortConfiguration (0x680)

StreamPortCreate()

0x681

No

StreamPortCreate (0x681)

StreamPortLoopback()

0x683

No

StreamPortLoopback (0x683)

StreamSocketCreate()

0x691

No

StreamSocketCreate (0x691)

 

StreamPortConfiguration (0x680)

Streaming Ports can be configured either by using this function or by customizing the Configuration String. When using this function, the configuration is cleared on an EHC detach event. If the configuration is done by the configuration string, the setting will be persistent.

Note: It is required to set the configuration of both Streaming Port instances, A and B, before any of the Streaming Ports can be created.
 

Streaming Port B may be configured as linked to Streaming Port A. When linked, the clocking configuration of Streaming Port A applies to Streaming Port B, enabling the data pins of both ports to share the same clocking signals.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

StreamPortConfiguration

(0x680)

Get (0x1)

Index

SetGet (0x2)

Index, OperationMode, PortOption,
ClockMode, ClockDataDelay

Status (0xC)

Index, OperationMode, PortOption,
ClockMode, ClockDataDelay

Error (0xF)

ErrorCode, ErrorInfo

Index

Streaming Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

OperationMode

Defines the operation mode of the Streaming Port.

This parameter can be customized via the Configuration String.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Generic

PortOption

Configures the direction of the physical pins of the indexed Streaming Port. See the INIC Hardware Data Sheet [3] for more information.

This parameter can be customized via the Configuration String.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

InOut

Two serial interface pins are available: one for direction IN and one for direction OUT.

0x01

DualIn

Two serial interface pins are available for direction IN.

0x02

DualOut

Two serial interface pins are available for direction OUT.

ClockMode

Configures the direction, shape and synchronization mode of the clocking signals ( FSY/SCK ).

Note: This parameter is chip-specific.
For details refer to Chip_StreamAClockModeShapeSync and Chip_StreamBClockModeShapeSync.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Output

FSY/SCK signals are driven as outputs, frequency locked to the network clock.

0x01

Input

FSY/SCK signals are configured as inputs. RMCK , frequency locked to the network clock, must be used for generating a reference clock.

0x02

OutputPhaseLocked

FSY/SCK signals are driven as outputs, phase- and frequency locked to the network clock.

0x03

Output1SCK 1,2

FSY/SCK signals are driven as outputs, frequency locked to the network clock. The FSY signal is asserted for 1 SCK cycle. This feature is typically used with devices that have no edge detection.

0x04

Output1SCKPhaseLocked 1,2

FSY/SCK signals are driven as outputs, phase- and frequency locked to the network clock. The FSY signal is asserted for 1 SCK cycle. This feature is typically used with devices that have no edge detection.

0xFF

Wildcard

Used when configuring Streaming Port B as linked to Streaming Port A. Both ClockMode and ClockDataDelay must be set to Wildcard to
activate linking.

Note 1: Only available for ClockDataDelay modes Delayed and BitDelayedOnly .

2: Only supported with TDM formats.

ClockDataDelay

Configures the Start-of-Frame (SoF) clocking edge and if there is a 1-bit delay between SoF and data on the data pins.

Note: This parameter is chip-specific.
For details refer to Chip_StreamBClockDataDelay.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NonDelayed

Data is not delayed.

0x01

Delayed

There is a 1-bit delay between SoF (falling edge of FSY ) and data on the data pins.

0x02

BitDelayedOnly

There is a 1-bit delay between SoF (rising edge of FSY ) and data on the data pins.

0xFF

Wildcard

Used when configuring Streaming Port B as linked to Streaming Port A. Both ClockMode and ClockDataDelay must be set to Wildcard to activate linking.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x32

The wrong ClockMode parameter is used.

0x33

The wrong ClockDataDelay parameter is used.

0x38

- The port configuration already exists or

- FSY/SCK signals of Streaming Port B cannot be used, since the required GPIO pins are already locked.

0x39

- The port configuration has not yet been set or

- parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

StreamPortCreate (0x681)

This function creates the Streaming Port with its associated port instance identifier.

If a Streaming Port is created during runtime using INIC.StreamPortCreate() , it will be automatically destroyed when EHC detaches.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

StreamPortCreate

(0x681)

StartResult (0x2)

Index, ClockConfig, DataAlignment

Result (0xC)

StreamPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

Streaming Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ClockConfig

Clock speed configuration of the SCK signal.

64Fs is not supported in combination with TDM formats. For TDM formats refer to DataAlignment.

 

Note: This parameter is chip-specific.
For details refer to Chip_StreamBClockConfig.

Data Type

Valid Values

Mnemonic

Description

Enum

0x03

64Fs

64 x Fs

0x04

128Fs

128 x Fs

0x05

256Fs

256 x Fs

0x06

512Fs

512 x Fs

0xFF

Wildcard

Used when configuring Streaming Port B as linked to Streaming Port A. If both ClockMode and ClockDataDelay are set to Wildcard in the base configuration for Streaming Port B, this parameter is required to activate linking when creating Streaming Port B.

DataAlignment

Defines the alignment of the data bytes within the Streaming Port frame. While ClockDataDelay is set to Delayed , only left-justified or sequential formats are available. When set to BitDelayedOnly , Output1SCK or Output1SCKPhaseLocked , only TDM formats are available.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Left16Bit

Left-justified, 16 bit, legacy

0x01

Left24Bit

Left-justified, 24 bit, legacy

0x02

Right16Bit

Right-justified, 16 bit, legacy

0x03

Right24Bit

Right-justified, 24 bit, legacy

0x04

Sequential

Sequential

0x05

TDM16Bit

TDM, 16 bit

0x06

TDM24Bit

TDM, 24 bit

StreamPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1600...0x16FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The wrong ClockConfig parameter is used.

0x31

The wrong DataAlignment parameter is used.

0x37

The port configuration for both ports has not yet been set.

0x38

The Streaming Port has been already created.

0x39

- Streaming Port A and B are configured as linked, however Streaming Port A has not been created, or

- parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

StreamPortLoopback (0x683)

Note: This functionality is chip-specific.
For details refer to Chip_StreamLoopback .

This function enables an internal loopback on a Streaming Port: data of an output pin is internally looped back to an input pin. Loopback is only applicable if the port is configured for Generic streaming.

This function can be used for delay measurements in microphone array applications. When loopback is enabled, the output pin may be disabled so that the delay measurement does not disturb external logic.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

StreamPortLoopback

(0x683)

Get (0x1)

StreamPortHandle, PinPair

SetGet (0x2)

StreamPortHandle, PinPair,
LoopbackMode, OutputMode

Status (0xC)

PinPair, LoopbackMode,
OutputMode

Error (0xF)

ErrorCode, ErrorInfo

StreamPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1600...0x16FF

1

None

PinPair

Selects the pin-pair for which the internal loopback mechanism shall be enabled or disabled

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

SRXA1ToSRXA0

SRXA1 -> SRXA0 , valid for PortA , Generic , InOut

0x10

SRXB1ToSRXB0

SRXB1 -> SRXB0 , valid for PortB , Generic , InOut

LoopbackMode

Enables or disables the internal loopback mechanism

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

LoopbackDisabled

The internal loopback mechanism is disabled.

0x01

LoopbackEnabled

The internal loopback mechanism is enabled.

OutputMode

Enables or disables data on the output pin. This setting is only applicable if LoopbackMode is enabled. It is possible to alter the output mode by using INIC.StreamPortLoopback.SetGet() , with parameter LoopbackMode set to LoopbackEnabled , and providing different values to this parameter.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

OutputDisabled

The data on the serial interface output pin is disabled.

0x01

OutputEnabled

The data on the serial interface output pin is enabled.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x31

The wrong PinPair parameter is used.

0x39

The port associated with the given StreamPortHandle was not created.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

StreamSocketCreate (0x691)

This function creates a Synchronous socket bound to the Streaming Port with the specified port instance identifier. If INIC enters Protected Mode, the socket will be automatically destroyed.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

StreamSocketCreate

(0x691)

StartResult (0x2)

StreamPortHandle, Direction,
DataType, Bandwidth, StreamPinID

Result (0xC)

StreamSocketHandle

Error (0xF)

ErrorCode, ErrorInfo

StreamPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1600...0x16FF

1

None

Direction

Indicates the direction of the data stream from the INIC’s perspective

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Input

Socket transfers data into INIC.

0x01

Output

Socket transfers data out of INIC.

DataType

Specifies the data type

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Sync

Specifies the Synchronous Streaming data type

Bandwidth

Required socket bandwidth in bytes

Data Type

Exp.

Valid Values

Description

Step

Unit

DataType = Sync

Unsigned Word

0

2

When used with 64Fs (0x03) or higher, and Left16Bit or Right16Bit data alignment, this size corresponds to a mono 16-bit channel that will be routed as left channel data.

1

Byte

3

When used with 64Fs (0x03) or higher, and Left24Bit or Right24Bit data alignment, this size corresponds to a mono 24-bit channel that will be routed as left channel data.

4

When used with 64Fs (0x03) or higher, and Left16Bit or Right16Bit data alignment, this size corresponds to a stereo 16-bit channel.

6

When used with 64Fs (0x03) or higher, and Left24Bit or Right24Bit data alignment, this size corresponds to a stereo 24-bit channel.

Unsigned Word

0

1...8

When used with 128Fs (0x04) and TDM16Bit data alignment.

1

Byte

1...12

When used with 128Fs (0x04) and TDM24Bit data alignment.

1...16

When used with 256Fs (0x05) and TDM16Bit data alignment.

1...24

When used with 256Fs (0x05) and TDM24Bit data alignment.

1...32

When used with 512Fs (0x06) and TDM16Bit data alignment, this size corresponds to a stereo 16-bit channel.

1...48

When used with 512Fs (0x06) and TDM24Bit data alignment, this size corresponds to a stereo 24-bit channel.

1...8

Variable size when used with 64Fs (0x03) and sequential data alignment.

1...16

Variable size when used with 128Fs (0x04) and sequential data alignment.

1...32

Variable size when used with 256Fs (0x05) and sequential data alignment.

1...64

Variable size when used with 512Fs (0x06) and sequential data alignment.

StreamPinID

ID of the serial interface pin of the addressed Streaming Port instance to which the socket should be attached

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

SRXA0

PortA , pin 0

0x01

SRXA1

PortA , pin 1

0x10

SRXB0

PortB , pin 0

0x11

SRXB1

PortB , pin 1

StreamSocketHandle

Socket resource handle of the created socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1700...0x17FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The wrong Bandwidth parameter is used.

0x31

The wrong StreamPinID parameter is used for a Sync connection.

0x32

The wrong Direction parameter is used.

0x37

Parameter StreamPinID is already in use by a socket.

0x39

The port associated with the given StreamPortHandle was not created.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x42

The Streaming Port socket cannot be created, since there is no socket entry possible.

RMCK Port Function

The function below is used to create an RMCK Port and to define its settings.
To get more information on the RMCK Port, refer to Chapter 13.0 .

 

RMCKPortCreate (0x6A1)

This function creates an RMCK Port with its associated port instance identifier.

If an RMCK Port is created during runtime using INIC.RMCKPortCreate() , it will be automatically destroyed when the EHC detaches.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

RMCKPortCreate

(0x6A1)

StartResult (0x2)

Index, ClockSource, Divisor

Result (0xC)

RMCKPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

RMCK Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ClockSource

Indicates the source of the RMCK clock

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

NetworkSystem

RMCK is locked to the system clock.

Divisor

Divisor of the clock source. Validity of the divisor depends on parameter ClockSource . The frequency of the clock source is divided by the Divisor to give the output frequency. An even Divisor gives a 50/50 duty cycle; an odd Divisor has a duty cycle of 1/ Divisor high and the rest low (for example a Divisor of 3 will have a duty cycle of 1/3 high and 2/3 low).

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

ClockSource is NetworkSystem (3072Fs)

Unsigned Word

0

0x0002...0x0FFF

1

None

0x1000...0x1FFE

2

RMCKPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1A00...0x1AFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x38

The RMCK Port has been already created.

0x39

Parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

I ² C Port Functions

The functions in this section are used to handle the behavior of the I 2 C Port, including the creation and configuration of the hardware port.

To get more information on the I 2 C Port, refer to Chapter 14.0 .

An overview of the I 2 C Port functions is shown in Table 23-9 .

Table 23-9: I²C Port Functions

Function Name

FktID

Possible to Notify

Page

I2CPortCreate()

0x6C1

No

I2CPortCreate (0x6C1)

I2CSoftPortCreate()

0x6C2

No

I2CSoftPortCreate (0x6C2)

I2CPortRead()

0x6C3

No

I2CPortRead (0x6C3)

I2CPortWrite()

0x6C4

No

I2CPortWrite (0x6C4)

I2CPortReadExtended()

0x6C5

No

I2CPortReadExtended (0x6C5)

I2CPortCreate (0x6C1)

This function is used to configure the I 2 C Port as I 2 C-bus master. The function creates the I 2 C Port with its associated port instance identifier.

If the I 2 C Port has been already created, an error message will be returned.

An I 2 C Port can be created when INIC starts up. In this case, the appropriate settings need to be written to the Configuration String. If the port was created at startup, it cannot be destroyed during runtime. It will also remain created when EHC reattaches, since the port is part of the INIC’s default configuration.

If an I 2 C Port is created during runtime using the INIC.I2CPortCreate() function, it will be automatically destroyed when EHC reattaches.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

I2CPortCreate

(0x6C1)

StartResult (0x2)

Index, Address, OperationMode, Speed

Result (0xC)

I2CPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

I 2 C Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

Address

Specifies the 7-bit I 2 C Port slave address. This parameter is ignored in OperationMode Master .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0x7F

1

None

OperationMode

Defines the operation mode of the I 2 C Port

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

Master

Sets I 2 C operation mode to master.

Speed

Specifies the speed of the I 2 C Port clock in Master mode

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

SlowMode

Port SCL clock operates at 100 kHz.

0x01

FastMode

Port SCL clock operates at 400 kHz.

I2CPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0F00...0x0FFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x38

The I 2 C Port has been already created.

0x39

Parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

I2CSoftPortCreate (0x6C2)

This function utilizes GPIO pins to offer I 2 C master functionality. By utilizing the GPIO pins, this peripheral interface can be connected to an external power controller.

The function creates a software I 2 C Port with its associated port instance identifier.

If the I 2 C Port has been already created, an error message will be returned.

The software I 2 C Port can be created when INIC starts up. In this case, the appropriate settings need to be written to the Configuration String. If the port was created at startup, it cannot be destroyed during runtime. It will also remain created when EHC reattaches, since the port is part of the INIC’s default configuration.

If the software I 2 C Port is created during runtime using the INIC.I2CSoftPortCreate() function, it will be automatically destroyed when EHC reattaches.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

I2CSoftPortCreate

(0x6C2)

StartResult (0x2)

Index, SCLPin, SDAPin

Result (0xC)

I2CSoftPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

Software I 2 C Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

SCLPin

Defines the I 2 C clock pin

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...15

1

None

SDAPin

Defines I 2 C data pin

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...15

1

None

I2CSoftPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1400...0x14FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

SCL and SDA are configured to share the same pin.

0x37

SCL and SDA pins are already in use.

0x38

The software I 2 C Port has been already created.

0x39

Parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

I2CPortRead (0x6C3)

This function reads a block of bytes from an I 2 C device at a specified I 2 C address.

Note: The function can only be used if the I 2 C Port has been configured as Master . If the I 2 C Port was configured as I 2 C-bus slave via the configuration string, an error message will be returned.
 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

I2CPortRead

(0x6C3)

StartResult (0x2)

I2CPortHandle, SlaveAddress, Length,
Timeout

Result (0xC)

I2CPortHandle, SlaveAddress, Length,
DataList

Error (0xF)

ErrorCode, ErrorInfo

I2CPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0F00...0x0FFF

1

None

0x1400...0x14FF

SlaveAddress

Specifies the 7-bit I 2 C slave address of the peripheral to be read.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0x7F

1

None

Length

Number of bytes to be read from the address

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...32

1

Byte

Timeout

Specifies the timeout for the I 2 C Port read

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

DataList

List of data bytes read from the addressed I 2 C peripheral

Data Type

Number of Elements

Parameters

Stream

1...32

{ Data }

Data

Data byte read from the addressed I 2 C peripheral

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The firmware is busy due to a previous request.

0x02

0x21

A NACK signal has been detected on the I 2 C bus.

0x23

A timeout has been detected. Pending transfers will be canceled and terminated by a STOP condition. It should be considered to reset the slave device.

0x24

The I 2 C bus has lost arbitration.

0x03

0x37

The I 2 C Port is not configured in master mode.

0x39

Parameter I2CPortHandle is invalid. The handle indicates a resource that does not exist.

I2CPortWrite (0x6C4)

This function writes a block of bytes to an I 2 C device at a specified I 2 C address. The function supports also a burst write mechanism for optimized transactions.

Note: The function can only be used if the I 2 C Port has been configured as Master . If the I 2 C Port was configured as I 2 C-bus slave via the configuration string, an error message will be returned.
 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

I2CPortWrite

(0x6C4)

StartResult (0x2)

I2CPortHandle, Mode, BlockCount, SlaveAddress, Length, Timeout, DataList

Result (0xC)

I2CPortHandle, SlaveAddress, Length

Error (0xF)

ErrorCode, ErrorInfo

I2CPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0F00...0x0FFF

1

None

0x1400...0x14FF

Mode

Specifies the write transfer mode

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

DefaultMode

Repeated start mode is disabled. After transaction of the DataList a STOP condition is issued and the bus is released. This is the default operation mode.

0x01

RepeatedStartMode

Repeated start mode is enabled. After transaction of the DataList the STOP condition will be suppressed and the controlling application is able to initiate further read or write sequences.

0x02

BurstMode

Burst mode is enabled. This mode supports writing multiple blocks of bytes of the same size to the specified I 2 C address.

BlockCount

Specifies the number of blocks to be written to the I 2 C address. If parameter Mode is not set to BurstMode, the value of BlockCount has to be set to 0. Otherwise the valid range for this parameter is from 1 to 30.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0

None

1...30

1

SlaveAddress

Specifies the 7-bit I 2 C Port slave address of the peripheral to be written.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0x7F

1

None

Length

Number of bytes to be written to the I 2 C address. If parameter Mode is set to BurstMode, the valid range of this parameter goes from 1 to 30, since the maximum overall length for a burst transfer is limited to a size of 30 bytes ( BlockCount x Length ). For all other modes, the full range is applicable.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...32

1

Byte

Timeout

Specifies the timeout for the I 2 C Port write

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

DataList

List of data bytes to be written to the addressed I 2 C peripheral

Data Type

Number of Elements

Parameters

Stream

1...32

{ Data }

Data

Data byte to be written to the addressed I 2 C peripheral

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The firmware is busy due to a previous request.

0x02

0x21

A NACK signal has been detected on the I 2 C bus.

0x23

A timeout has been detected. Pending transfers will be canceled and terminated by a STOP condition. It should be considered to reset the slave device.

0x24

The I 2 C bus has lost arbitration.

0x03

0x31

The wrong Mode or BlockCount value was chosen.

0x32

The maximum burst size value ( Length x BlockCount) was exceeded or the DataList does not match the product of Length and BlockCount .

0x37

The I 2 C Port is not configured in master mode.

0x39

Parameter I2CPortHandle is invalid. The handle indicates a resource that does not exist.

I2CPortReadExtended (0x6C5)

This function reads a block of bytes from an I 2 C device at a specified I 2 C address.

Note: The function can only be used if the I 2 C Port has been configured as Master . If the I 2 C Port was configured as I 2 C-bus slave via the configuration string, an error message will be returned.
 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

I2CPortReadExtended

(0x6C5)

StartResult (0x2)

I2CPortHandle, Mode, SlaveAddress, Length, Timeout

Result (0xC)

I2CPortHandle, SlaveAddress, Length,
DataList

Error (0xF)

ErrorCode, ErrorInfo

I2CPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0F00...0x0FFF

1

None

0x1400...0x14FF

Mode

Specifies the write transfer mode

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

DefaultMode

Repeated start mode is disabled. After transaction of the DataList a STOP condition is issued and the bus is released. This is the default operation mode.

0x01

RepeatedStartMode

Repeated start mode is enabled. After transaction of the DataList the STOP condition will be suppressed and the controlling application is able to initiate further read or write sequences.

SlaveAddress

Specifies the 7-bit I 2 C slave address of the peripheral to be read.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0x7F

1

None

Length

Number of bytes to be read from the address

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...32

1

Byte

Timeout

Specifies the timeout for the I 2 C Port read

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

DataList

List of data bytes read from the addressed I 2 C peripheral

Data Type

Number of Elements

Parameters

Stream

1...32

{ Data }

Data

Data byte read from the addressed I 2 C peripheral

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The firmware is busy due to a previous request.

0x02

0x21

A NACK signal has been detected on the I 2 C bus.

0x23

A timeout has been detected. Pending transfers will be canceled and terminated by a STOP condition. It should be considered to reset the slave device.

0x24

The I 2 C bus has lost arbitration.

0x03

0x37

The I 2 C Port is not configured in master mode.

0x39

Parameter I2CPortHandle is invalid. The handle indicates a resource that does not exist.

 

GPIO Port Functions

The functions in this section are used to handle the behavior of the GPIO Port, including the creation and the configuration of the port.

To get more information on the GPIO Port, refer to Chapter 15.0 .

An overview of the GPIO Port functions is shown in Table 23-10 .

Table 23-10: GPIO Port Functions

Function Name

FktID

Possible to Notify

Page

GPIOPortCreate()

0x701

No

GPIOPortCreate (0x701)

GPIOPortPinMode()

0x703

No

GPIOPortPinMode (0x703)

GPIOPortPinState()

0x704

No

GPIOPortPinState (0x704)

GPIOPortTriggerEvent()

0x705

Yes

GPIOPortTriggerEvent (0x705)

GPIOPortCreate (0x701)

This function creates the GPIO Port with its associated port instance identifier.

If the GPIO Port has been already created, an error message will be returned.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

GPIOPortCreate

(0x701)

StartResult (0x2)

Index, DebounceTime

Result (0xC)

GPIOPortHandle

Error (0xF)

ErrorCode, ErrorInfo

Index

GPIO Port instance. For the index refer to Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

DebounceTime

Specifies the timeout for the GPIO debounce timer (in ms). Each pin is debounced with its own timer that starts to count on every pin event. The pin is debounced when the input signal stays stable for DebounceTime . Since the debounce timer is a software implemented timer, the debounce value may jitter to higher values than the DebounceTime . Note, the INIC needs some additional time to send the notification.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...5000

1

ms

GPIOPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1D00...0x1DFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x38

The GPIO Port has been already created.

0x39

Parameter Index is invalid. The index indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

GPIOPortPinMode (0x703)

This function is used for GPIO pin configuration.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

GPIOPortPinMode

(0x703)

Get (0x1)

GPIOPortHandle

SetGet (0x2)

GPIOPortHandle, PinConfiguration

Status (0xC)

GPIOPortHandle, PinConfiguration

Error (0xF)

ErrorCode, ErrorInfo

GPIOPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1D00...0x1DFF

1

None

PinConfiguration

Contains parameter Configuration

Data Type

Number of Elements

Parameters

Stream

1...n

Configuration, { Configuration }

Configuration

Defines the GPIO pin configuration and clears the trigger conditions on level-sensitive and sticky inputs thereby allowing reporting of further trigger events. Note that trigger conditions are automatically cleared for all edge-sensitive input/output GPIO classes when the INIC.GPIOPortTriggerEvent.Status message is sent.

Data Type

Number of Elements

Parameters

Stream

1...n

{ Pin , Mode }

Pin

Defines the GPIO pin that is to be configured. GPIO pins that can’t be used return an error.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...15

1

None

Mode

Defines the mode of the GPIO pin. Configuring an unused pin as GPIO may preclude the usage of special functions bound to this pin. For example, configuration of GP0 as a GPIO excludes the use of I 2 C Port in slave mode.

The value Unavailable is not allowed to be used in combination with OpType SetGet. OpType Status returns Unavailable for pins that are not configurable as GPIO since the pin is used in its special function, e.g., I 2 C for GP0 .

The value Unused in OpType Status indicates that the pin is neither used as GPIO pin nor in its special function mode. The value can be used in OpType SetGet to reset a GPIO pin, then the pin is without configuration.

When configuring the debounced edge trigger modes, the debounce logic must detect a stable debounced level before the first edge is notified. Debounce level is low for rising edge triggers and high for falling edge triggers. The detection of debounced values starts always with the configuration of the pin.
Sticky pin modes are capable of detecting brief pulses using a dedicated hardware mechanism, see the INIC Hardware Data Sheet [3] . The dedicated hardware mechanism is also used to detect level triggers for input pins.

 

Data Type

Valid Values

Mnemonic

Enum

0x00

Unavailable

0x01

Unused

0x10

Input

0x11

InputStickyHighLevel

0x12

InputStickyLowLevel

0x13

InputTriggerRisingEdge

0x14

InputTriggerFallingEdge

0x15

InputTriggerRisingFallingEdge

0x16

InputTriggerHighLevel

0x17

InputTriggerLowLevel

0x30

InputDebounced

0x33

InputDebouncedTriggerRisingEdge

0x34

InputDebouncedTriggerFallingEdge

0x35

InputDebouncedTriggerRisingFallingEdge

0x36

InputDebouncedTriggerHighLevel

0x37

InputDebouncedTriggerLowLevel

0x40

OutputDefaultLow

0x41

OutputDefaultHigh

0x50

OutputOpenDrain

0x53

OutputOpenDrainTriggerRisingEdge

0x54

OutputOpenDrainTriggerFallingEdge

0x56

OutputOpenDrainTriggerHighLevel

0x57

OutputOpenDrainTriggerLowLevel

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

ErrorParameters

Description of the Error

0x20

0x03

0x30

Pin , Mode

The used Pin or Mode value is out of range.
All preceding PinConfiguration pairs have been configured correctly and can be used. All PinConfiguration pairs after the erroneous one are ignored.

0x31

Pin , Mode

The used pin is not available for GPIO usage.
All preceding PinConfiguration pairs have been configured correctly and can be used. All PinConfiguration pairs after the erroneous one are ignored.

0x39

Parameter GPIOPortHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

GPIOPortPinState (0x704)

This function is used for GPIO pin state configuration.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

GPIOPortPinState

(0x704)

Get (0x1)

GPIOPortHandle

SetGet (0x2)

GPIOPortHandle, Mask, Data

Status (0xC)

GPIOPortHandle, CurrentState, StickyState

Error (0xF)

ErrorCode, ErrorInfo

GPIOPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1D00...0x1DFF

1

None

Mask

Specifies the GPIO pin to be written. For pins not configured as GPIO, the value is ignored. For the configuration of the GPIO pins refer to the INIC Hardware Data Sheet [3] .

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Untouched

True

Change GPIO 00

...

15

False

GPIO 15 Untouched

True

Change GPIO 15

Data

Specifies the state of the GPIO pin to be written. For pins not configured as GPIO, the value is ignored. For the configuration of the GPIO pins refer to the INIC Hardware Data Sheet [3] .

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Low

True

GPIO 00 High

...

15

False

GPIO 15 Low

True

GPIO 15 High

CurrentState

Specifies the current state of the GPIO pin. For pins not configured as GPIO, the value is always set to False.

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Low

True

GPIO 00 High

...

15

False

GPIO 15 Low

True

GPIO 15 High

StickyState

Specifies the sticky state of all GPIO pins configured as sticky inputs. For pins not configured as sticky input, the value is always set to False.

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Low

True

GPIO 00 High

...

15

False

GPIO 15 Low

True

GPIO 15 High

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x39

Parameter GPIOPortHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

GPIOPortTriggerEvent (0x705)

This function notifies controllers of trigger events detected on GPIO pins, on which an event trigger has been configured using INIC.GPIOPortPinMode.Set . In addition, the function is used to re-enable (via
INIC.GPIOPortPinMode.Set ) the reporting of subsequent trigger events for level-sensitive inputs and sticky inputs.

This function supports notification.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

GPIOPortTriggerEvent

(0x705)

Status (0xC)

GPIOPortHandle, RisingEdges,
FallingEdges, Levels

Error (0xF)

ErrorCode, ErrorInfo

GPIOPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .
0xFFFF is returned when notified for this function, but no GPIO Port resource was created.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1D00...0x1DFF

1

None

0xFFFF

RisingEdges

Specifies the GPIO pins on which a rising-edge trigger condition was detected by rising edge or dual edge detection logic. Detection logic is specified by the Mode parameter of INIC.GPIOPortPinMode.SetGet . If a rising edge has been detected for a given pin, the bit is set. A clear bit indicates that no rising edge was detected or that rising edge/dual edge detection logic is not enabled.

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Idle

True

GPIO 00 RisingEdge

...

15

False

GPIO 15 Idle

True

GPIO 15 RisingEdge

FallingEdges

Specifies the GPIO pins on which a falling-edge trigger condition was detected by falling edge or dual edge detection logic. Detection logic is specified by the Mode parameter of INIC.GPIOPortPinMode.SetGet . If a falling edge has been detected for a given pin, the bit is set. A clear bit indicates that no falling edge was detected or that falling edge/dual edge detection logic is not enabled.

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Idle

True

GPIO 00 FallingEdge

...

15

False

GPIO 15 Idle

True

GPIO 15 FallingEdge

Levels

Specifies the GPIO pins on which a logic level condition was detected by level detection logic. The levels apply to high-level as well as to low-level detection. If high-level detection logic is enabled, high levels are indicated by a set bit, if low-level detection logic is enabled, low levels are indicated by a set bit. A clear bit indicates that no level was detected or that level detection logic is not enabled.

Detection logic is specified by the Mode parameter of INIC.GPIOPortPinMode.SetGet .

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Idle

True

GPIO 00 Level

...

15

False

GPIO 15 Idle

True

GPIO 15 Level

Resource Management Functions

The functions in this section are used to handle resource management relevant tasks related to a resource object, e.g., a port, a socket, or a connection.

To get more information on the resource management, refer to Chapter 7.0 .

An overview of the INIC’s resource management functions is shown in Table 23-11 .

Table 23-11: Resource Management Functions

Function Name

FktID

Possible to Notify

Page

ResourceDestroy()

0x800

No

ResourceDestroy (0x800)

ResourceInvalidList()

0x801

No

ResourceInvalidList (0x801)

ResourceMonitor()

0x802

Yes

ResourceMonitor (0x802)

ResourceMonitorConfiguration()

0x803

No

ResourceMonitorConfiguration (0x803)

ResourceTag()

0x804

No

ResourceTag (0x804)

ResourceBuilder()

0x805

No

ResourceBuilder (0x805)

ResourceList()

0x806

No

ResourceList (0x806)

ResourceInfo()

0x807

No

ResourceInfo (0x807)

 

ResourceDestroy (0x800)

This function destroys the resource associated with the given resource handle. A resource is either a port, a socket, or a connection. For more information on destroying resources, refer to Section 7.4 .

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceDestroy

(0x800)

StartResult (0x2)

ResourceHandleList

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ResourceHandleList

Resource handle list

Data Type

Number of Elements

Parameters

Stream

1...10

ResourceHandle , { ResourceHandle }

ResourceHandle

Unique resource handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFE

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

ErrorParameters

Description of the Error

0x20

0x01

0x10

ResourceHandle

The last INIC.ResourceDestroy() call has not yet been finished.

0x03

0x30

The message length is wrong (must be a multiple of two bytes).

0x31

There are too many elements in parameter ResourceHandleList .

0x32

ResourceHandle

The handle currently being processed was not found or cannot be destroyed because it is persistent.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x20

0x04

0x40

ResourceHandle

Resource dependency violation.

There are still resources remaining that have a dependency on the resource that was requested to be destroyed:

- A connection still uses the socket, combiner, or splitter resource,

- a combiner or splitter still uses the socket resource,

- a socket still uses the port resource,

- Streaming Port A and B are configured as linked. Streaming Port A was requested to be destroyed before Streaming Port B was destroyed, or

- a MediaLB packet multiplex socket still uses the socket resource.

ResourceInvalidList (0x801)

This function is used to get resources that were marked as invalid by the INIC.

The returned list always contains the currently invalid handles sorted in the order they must be destroyed. If there are more handles as that can fit into one message, the preceding handles must be destroyed to get the remaining handles and to reach the END identifier.

For more information on how invalid resources are reported, refer to Chapter 7.0 .

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceInvalidList

(0x801)

Get (0x1)

Status (0xC)

ResourceHandleList

Error (0xF)

ErrorCode, ErrorInfo

ResourceHandleList

Unique invalid resource handle list

Data Type

Number of Elements

Parameters

Stream

1...22

ResourceHandle, { ResourceHandle }

ResourceHandle

Unique resource handle. 0xFFFF is the END identifier. Receiving only the END identifier in the result indicates that there are no more invalid resources.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFE

1

None

0xFFFF

ResourceMonitor (0x802)

This function notifies the state of the resource monitor in the INIC. The Status is only sent via notification; it notifies when the EHC must perform some actions and when it has returned to its default state. The Set operation is used to reset the resource monitor back to its default state.

This function supports notification.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceMonitor
(0x802)

Set (0x0)

Control

Status (0xC)

State

Error (0xF)

ErrorCode, ErrorInfo

Control

Used to reset the resource monitor to its default state and release the MUTE pin. This will always trigger a notification.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Reset

Requests the resource monitor to go back to the OK state and release the MUTE pin

State

Specifies the current state of the resource monitor, which can be either OK for the normal state when it requires no attention or ActionRequired when the EHC may have to destroy invalid resources and finally reset the resource monitor.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

OK

Default state. There are no actions required from the EHC.

0x01

ActionRequired

There are actions required from the EHC.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

ResourceMonitorConfiguration (0x803)

This function is used to configure the resource monitor.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceMonitor-
Configuration

(0x803)

Get (0x1)

SetGet (0x2)

Mask, NotificationLevel

Status (0xC)

NotificationLevel

Error (0xF)

ErrorCode, ErrorInfo

Mask

The mask bit can either be set to 0 or 1 and behaves as follows:
0: The parameter is not considered in the operation.
1: The parameter is considered in the operation.

Data Type

Bit #

Parameters

Unsigned Word

0

NotificationLevel

NotificationLevel

Specifies the events in which the resource monitor enters the state ActionRequired and by that notifies the EHC to take an action

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Standard

Monitors resources and handles muting.

0x01

Extended

Monitors resources, handles muting and triggers routing delay calculations.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

ResourceTag (0x804)

This function is used to assign user-defined tags to given resource handles. Details on tag handles can be found in Section 7.2.2 .

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceTag

(0x804)

StartResult (0x2)

ResourceList

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

ResourceList

Contains parameter ResourceTagElement

Data Type

Number of Elements

Parameters

Stream

1...15

ResourceTagElement, { ResourceTagElement }

ResourceTagElement

List of resource handles and their user-defined tags

Data Type

Number of Elements

Parameters

Stream

2

ResourceHandle, ResourceTag

ResourceHandle

Unique resource handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFE

1

None

ResourceTag

User-defined tag that is used to tag the resource, which is referred by the associated resource handle. 0x00 clears the user-defined tag.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00

None

0x80...0xFF

1

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

ErrorParameters

Description of the Error

0x20

0x03

0x30

The message length is wrong (must be a multiple of three bytes).

0x38

ResourceHandle

The ResourceTag is out of range.

0x39

ResourceHandle

The handle currently being processed was not found.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

ResourceHandle

The requested resource is marked invalid.

ResourceBuilder (0x805)

This function is used to manually trigger the resource builder to establish the build configuration with the given Index.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceBuilder

(0x805)

StartResult (0x2)

Index

Result (0xC)

CollectionHandle,
ResourceHandleList

Error (0xF)

ErrorCode, ErrorInfo

Index

Identifier of the build configuration

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

CollectionHandle

Unique build handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x1500...0x15FF

1

None

ResourceHandleList

Contains parameter ResourceHandle

Data Type

Number of Elements

Parameters

Stream

3

ResourceHandle, { ResourceHandle }

ResourceHandle

Unique resource handle that belongs to the collection

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFE

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

ErrorParameters

Description of the Error

0x20

0x03

0x30

The build configuration with the given Index does not exist or is invalid.

0x04

0x40

ResourceHandle , ErrorClass, ErrorID

The build configuration cannot be established, since the resource with the given handle cannot be created. ErrorClass and ErrorID can be used to retrieve the error details that belong to the resource.

ResourceList (0x806)

This function returns a handle list of all created resources.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceList
(0x806)

Get (0x1)

Iterator

Status (0xC)

Iterator, ResourceHandleList

Error (0xF)

ErrorCode, ErrorInfo

Iterator

Resource iterator. An Iterator of 0xFFFF is used to retrieve the list from the beginning.
The Iterator given in the Status can be used to retrieve the next part of the handle list. If the Iterator in the Status is 0xFFFF, no more handles need to be requested.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFF

1

None

ResourceHandleList

Contains parameter ResourceHandle

Data Type

Number of Elements

Parameters

Stream

1...21

ResourceHandle, { ResourceHandle }

ResourceHandle

Unique resource handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFE

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x04

0x40

Wrong Iterator is used.

ResourceInfo (0x807)

This function returns resource information for a specific ResourceHandle.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

ResourceInfo
(0x807)

Get (0x1)

ResourceHandle

Status (0xC)

ResourceHandle, InfoID, InfoList

Error (0xF)

ErrorCode, ErrorInfo

ResourceHandle

Unique resource handle for which resource information is requested

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFE

1

None

InfoID

Indicates the information parameters associated to the requested resource

Data Type

Valid Values

Mnemonic

Description

Enum

0x0D

NetworkPort

Network Port

0x0A

MediaLBPort

MediaLB Port

0x10

SPIPort

SPI Port

0x12

USBPort

USB Port

0x16

StreamPort

Streaming Port

0x1A

RMCKPort

RMCK Port

0x0F

I2CPort

I 2 C Port

0x14

I2CSoftPort

I2C Soft Port

0x1D

GPIOPort

GPIO Port

0x0E

NetworkSocket

Network socket

0x0B

MediaLBSocket

MediaLB Socket

0x11

SPISocket

SPI socket

0x13

USBSocket

USB socket

0x17

StreamSocket

Streaming socket

0x02

SyncConnection

Synchronous connection

0x01

PacketConnection

Packet connection

0x00

ControlConnection

Control connection

0x04

AVPacketizedConnection

A/V Packetized Isochronous Streaming connection

0x05

QoSPacketConnection

Quality of Service packet connection

0x09

DiscFramePhaseConnection

DiscreteFrame Isochronous Streaming, phase connection

0x0C

IPCPacketConnection

IPC Packet connection

0x07

Combiner

Combiner

0x08

Splitter

Splitter

0x03

PMPChannel

PMP channel

0x19

Transceiver

Transceiver

 

InfoList

Unique resource info list

Data Type

Number of Elements

InfoID

Parameters

Stream

1...22

NetworkPort

Flags, Availability, AvailabilityInfo,
FullStreamingEnabled, FreeStreamingBW,
TransceiverMode

MediaLBPort

Flags, MediaLBClockConfig

SPIPort

Flags, SPIPortClockMode

USBPort

Flags, HSICEnabled, CtrlIfState, CtrlIfEpOutAddr,
CtrlIfEpOutCnt, CtrlIfEpInAddr, CtrlIfEpInCnt,
PktIfState, PktIfEpOutAddr, PktIfEpOutCnt,
PktIfEpInAddr, PktIfEpInCnt,
IPCPktIfState, IPCPktIfEpOutAddr, IPCPktIfEpOutCnt, IPCPktIfEpInAddr, IPCPktIfEpInCnt,
StreamIfState, StreamIfEpOutAddr, StreamIfEpOutCnt, StreamIfEpInAddr, StreamIfEpInCnt

StreamPort

Flags, StreamPortClockConfig, DataAlignment,
StreamPortOperationMode, PortOption,
StreamPortClockMode, ClockDataDelay

RMCKPort

Flags, ClockSource, Divisor

I2CPort

Flags, Address, OperationMode, Speed

I2CSoftPort

Flags, Address, OperationMode, Speed

GPIOPort

Flags, DebounceTime

NetworkSocket

Flags, NetworkPortHandle, Direction, DataType,
Bandwidth, ConnectionLabel

MediaLBSocket

Flags, MediaLBPortHandle, Direction, DataType, Bandwidth, ChannelAddress

SPISocket

Flags, SPIPortHandle, Direction, DataType

USBSocket

Flags, USBPortHandle, Direction, DataType,
EndpointAddress, FramesPerTransaction

StreamSocket

Flags, StreamPortHandle, Direction, DataType,
Bandwidth, StreamPinID

SyncConnection

Flags, SocketHandleIn, SocketHandleOut, MuteMode, Offset, CurrentMuteState, BufferStatus,
RoutingDelayInfo0, RoutingDelayInfo1,
RoutingDelayInfo2

PacketConnection

Flags, NetworkSocketHandle, SocketHandleIn, SocketHandleOut

ControlConnection

Flags, NetworkSocketHandle

AVPacketizedConnection

Flags, SocketHandleIn, SocketHandleOut,
IsocPacketSize, BufferStatus

QoSPacketConnection

Flags, SocketHandleIn, SocketHandleOut

DiscFramePhaseConnection

Flags, SocketHandleIn, SocketHandleOut,
IsocPacketSize, BufferStatus

IPCPacketConnection

Flags, SocketHandleIn, SocketHandleOut

Combiner

Flags, SocketHandleOut, NetworkPortHandle,
BytesPerFrame

Splitter

Flags, SocketHandleIn, NetworkPortHandle,
BytesPerFrame

Stream

1...22

PMPChannel

Flags, ChannelNo, RxCredits, TxCredits, BusyLimit, MaxAckTime, MaxWatchdogTime

Transceiver

Flags, SocketHandleIn, SocketHandleOut

Flags

Additional information to the resource

Data Type

Bit #

Description

Unsigned Byte

0

Persistent

0: Resource is not persistent.

1: Resource is persistent.

TransceiverMode

Indicates the TransceiverMode used by the resource

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

LVDSUnidirectional

LVDS unidirectional

0x01

CoaxUnidirectional

Coax unidirectional

0x02

CoaxBidirectional

Coax bidirectional

0x04

BalancedMediaUnidirectional

Balanced media unidirectional

MediaLBClockConfig

Indicates the MediaLB Port clock configuration.
For available parameters refer to ClockConfig.

SPIPortClockMode

Indicates the configuration of the phase and polarity of the SCLK signal.
For available parameters refer to ClockMode.

HSICEnabled

Indicates the state of the HSIC interface

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

The HSIC is not enabled.

True (1)

The HSIC is enabled.

CtrlIfState

Indicates the state of the control interface

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

The control interface is not enabled.

True (1)

The control interface is enabled.

CtrlIfEpOutAddr

Indicates the address of the control interface OUT endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

CtrlIfEpOutCnt

Indicates the amount of control interface OUT endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

CtrlIfEpInAddr

Indicates the address of the control interface IN endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

CtrlIfEpInCnt

Indicates the amount of control interface IN endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

PktIfState

Indicates the state of the packet interface

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

The packet interface is not enabled.

True (1)

The packet interface is enabled.

PktIfEpOutAddr

Indicates the address of the packet interface OUT endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

PktIfEpOutCnt

Indicates the amount of packet interface OUT endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

PktIfEpInAddr

Indicates the address of the packet interface IN endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

PktIfEpInCnt

Indicates the amount of packet interface IN endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

IPCPktIfState

Indicates the state of the IPC packet interface

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

The IPC packet interface is not enabled.

True (1)

The IPC packet interface is enabled.

IPCPktIfEpOutAddr

Indicates the address of the IPC packet interface OUT endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

IPCPktIfEpOutCnt

Indicates the amount of IPC packet interface OUT endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

IPCPktIfEpInAddr

Indicates the address of the IPC packet interface IN endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

IPCPktIfEpInCnt

Indicates the amount of IPC packet interface IN endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

StreamIfState

Indicates the state of the streaming interface

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

The streaming interface is not enabled.

True (1)

The streaming interface is enabled.

StreamIfEpOutAddr

Indicates the address of the streaming interface OUT endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

StreamIfEpOutCnt

Indicates the amount of streaming interface OUT endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

StreamIfEpInAddr

Indicates the address of the streaming interface IN endpoint

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

StreamIfEpInCnt

Indicates the amount of streaming interface OUT endpoints

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

StreamPortClockConfig

Indicates the Streaming Port clock configuration.
For available parameters refer to ClockConfig.

StreamPortOperationMode

Indicates the Streaming Port operation mode.
For available parameters refer to OperationMode.

StreamPortClockMode

Indicates if FSY/SCK signals are configured as outputs or inputs.
For available parameters refer to ClockMode.

CurrentMuteState

Indicates if the resource is muted

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

Resource is not muted.

True (1)

Resource is muted.

IsocPacketSize

Specifies the size of data packets that are to be transported over the isochronous channel for a DiscreteFrame Isochronous phase connection

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

16

Byte

BufferStatus

Indicates the buffer state

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NoError

No error

0x01

DataLoss

Data loss detected (e.g., due to a buffer over- or underflow)

0xFF

NotSupported

Buffer status is not supported

RoutingDelayInfo0

Internal routing delay information

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0000...0xFFFF

1

None

RoutingDelayInfo1

Internal routing delay information

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

RoutingDelayInfo2

Internal routing delay information

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x00...0xFF

1

None

ChannelNo

Indicates the channel number

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

MCM

MCM channel

0x02

ICM

ICM channel

0x06

RCM

RCM channel

RxCredits

Indicates the number of available Rx credits

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...255

1

None

TxCredits

Indicates the number of available Tx credits

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...255

1

None

BusyLimit

Indicates the number of allowed busy responses. 15 means that infinite busy responses are allowed.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0...15

1

None

MaxAckTime

Indicates the maximum acknowledge timeout. 0 means no timeout.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0

ms

1...25500

1

MaxWatchdogTime

Indicates the maximum watchdog timeout. 0 means no timeout.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0

ms

1...25500

1

SocketHandleIn

Input socket handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Streaming socket: 0x1700...0x17FF

1

None

MediaLB socket: 0x0B00...0x0BFF

SPI socket: 0x1100...0x11FF

USB socket: 0x1300...0x13FF

Network socket: 0x0E00...0x0EFF

SocketHandleOut

Output socket handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Streaming socket: 0x1700...0x17FF

1

None

MediaLB socket: 0x0B00...0x0BFF

SPI socket: 0x1100...0x11FF

USB socket: 0x1300...0x13FF

Network socket: 0x0E00...0x0EFF

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x39

Parameter ResourceHandle indicates a resource that does not exist.

0x04

0x40

The requested resource is marked invalid.

Packet Connection Functions

Note: Availability of resource objects is chip-specific, see Section 2.2 .

The functions in this section are used to setup packet connections of various types.

To get more information on packet connections, refer to Chapter 20.0 .

An overview of the packet connection functions is shown in Table 23-12 .

Table 23-12: Packet Connection Functions

Function Name

FktID

Possible to Notify

Page

PacketAttachSockets()

0x843

No

PacketAttachSockets (0x843)

PacketDetachSockets()

0x844

No

PacketDetachSockets (0x844)

QoSPacketCreate()

0x851

No

QoSPacketCreate (0x851)

IPCPacketCreate()

0x891

No

IPCPacketCreate (0x891)

 

PacketAttachSockets (0x843)

This function attaches the given peripheral sockets to the packet data connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

PacketAttachSockets

(0x843)

StartResult (0x2)

PacketHandle, SocketHandleIn,
SocketHandleOut

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

PacketHandle

Packet resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0100...0x01FF

1

None

SocketHandleIn

The resource handle of the Input socket that is attached to the packet connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

SPI socket: 0x1100...0x11FF

USB socket: 0x1300...0x13FF

SocketHandleOut

The resource handle of the Output socket that is attached to the packet connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

SPI socket: 0x1100...0x11FF

USB socket: 0x1300...0x13FF

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleIn is invalid. This error can be returned for several reasons:

- the socket is not of direction Input ,

- the socket is not of data type Packet , or

- the socket is already used in a connection.

0x31

Parameter SocketHandleOut is invalid. This error can be returned for several reasons:

- the socket is not of direction Output ,

- the socket is not of data type Packet , or

- the socket is already used in a connection.

0x32

Resource type of SocketHandleIn and SocketHandleOut is different.

0x20

0x03

0x38

The packet data connection has already sockets attached.

0x39

- Parameter SocketHandleIn or SocketHandleOut indicates a resource that does not exist, or

- parameter PacketHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

PacketDetachSockets (0x844)

This function detaches the given peripheral sockets from the packet data connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

PacketDetachSockets

(0x844)

StartResult (0x2)

PacketHandle

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

PacketHandle

Packet resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0100...0x01FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last INIC.PacketDetachSockets() call has not yet been finished.

0x03

0x30

Sockets cannot be detached since the connection was configured via the configuration string.

0x39

Parameter PacketHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

QoSPacketCreate (0x851)

This function creates a Quality of Service packet connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

QoSPacketCreate

(0x851)

StartResult (0x2)

SocketHandleIn, SocketHandleOut

Result (0xC)

QoSHandle

Error (0xF)

ErrorCode, ErrorInfo

SocketHandleIn

The ID number of the opened socket that is the starting point of the link. Must be a socket of type Input . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

Network socket: 0x0E00...0x0EFF

SocketHandleOut

The ID number of the opened socket that is the ending point of the link. Must be a socket of type Output . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

Network socket: 0x0E00...0x0EFF

QoSHandle

Resource handle of the Quality of Service packet connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0500...0x05FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleIn is invalid. This error can be returned for several reasons:
- the socket is not of direction Input ,

- the socket is already used in a connection, or

- the socket is of the wrong data type.

0x20

0x03

0x31

Parameter SocketHandleOut is invalid. This error can be returned for several reasons:
- the direction of the socket is not Output ,

- the socket is of the wrong data type,

- the socket is already used in a connection, or

- both sockets are Network sockets or peripheral sockets. In this case parameter SocketHandleOut will be in conflict with parameter SocketHandleIn .

0x32

The socket bandwidth is in conflict with the connection type requirements.

0x39

- Parameter SocketHandleIn or SocketHandleOut indicates a resource that does not exist, or

- the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

Parameter SocketHandleIn or SocketHandleOut indicates a resource that has been rendered invalid and may not be used in a new socket connection.

0x42

This error can be returned for several reasons:

- no free slot in the connection table or

- insufficient free routing resources.

IPCPacketCreate (0x891)

Note: Availability of resource objects is chip-specific, see Section 2.2.2.3 .
For details refer to Chip_IPCPacket .

This function creates an IPC (Inter-Processor Communication) packet connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

IPCPacketCreate

(0x891)

StartResult (0x2)

SocketHandleIn, SocketHandleOut

Result (0xC)

IPCHandle

Error (0xF)

ErrorCode, ErrorInfo

SocketHandleIn

The ID number of the opened socket that is the starting point of the link. Must be a socket of type Input . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

USB socket: 0x1300...0x13FF

SocketHandleOut

The ID number of the opened socket that is the ending point of the link. Must be a socket of type Output . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

USB socket: 0x1300...0x13FF

IPCHandle

Resource handle of the IPC packet connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0CFF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleIn is invalid. This error can be returned for several reasons:
- the socket is not of direction Input ,

- the socket is already used in a connection, or

- the socket is of the wrong data type.

0x31

Parameter SocketHandleOut is invalid. This error can be returned for several reasons:
- the direction of the socket is not Output ,

- the socket is of the wrong data type,

- the socket is already used in a connection, or

- both sockets are Network sockets or peripheral sockets. In this case parameter SocketHandleOut will be in conflict with parameter SocketHandleIn .

0x20

0x03

0x39

Parameter SocketHandleIn or SocketHandleOut indicates a resource that does not exist or the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x42

This error can be returned for several reasons:

- no free slot in the connection table or

- insufficient free routing resources.

Streaming Connection Functions

Note: Availability of resource objects is chip-specific, see Section 2.2 .

The functions in this section are used to setup streaming connections of various types.

To get more information on streaming connections, refer to Chapter 21.0 .

An overview of the streaming connection functions is shown in Table 23-13 .

Table 23-13: Streaming Connection Functions

Function Name

FktID

Possible to Notify

Page

Sub-Group is A/V Packetized Connection

AVPacketizedCreate()

0x861

No

AVPacketizedCreate (0x861)

Sub-Group is Synchronous Connection

SyncCreate()

0x871

No

SyncCreate (0x871)

SyncMute()

0x873

No

SyncMute (0x873)

SyncUnmute()

0x874

No

SyncUnmute (0x874)

DiscFramePhaseCreate()

0x881

No

DiscFramePhaseCreate (0x881)

 

AVPacketizedCreate (0x861)

This function creates an A/V Packetized Isochronous Streaming data connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

AVPacketizedCreate

(0x861)

StartResult (0x2)

SocketHandleIn, SocketHandleOut,
IsocPacketSize

Result (0xC)

AVPHandle

Error (0xF)

ErrorCode, ErrorInfo

SocketHandleIn

The ID number of the opened socket that is the starting point of the link. Must be a socket of type Input . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

USB socket: 0x1300...0x13FF

Network socket: 0x0E00...0x0EFF

SocketHandleOut

The ID number of the opened socket that is the ending point of the link. Must be a socket of type Output . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

USB socket: 0x1300...0x13FF

Network socket: 0x0E00...0x0EFF

IsocPacketSize

Specifies the size of data packets that are to be transported over the isochronous channel

Data Type

Exp.

Valid Values

Description

Step

Unit

DataType = AVPacketized

Unsigned Word

0

188

Standard MPEG2 Transport Stream packet size, no encryption

Byte

196

DTCP Supplement B

206

Deprecated

AVPHandle

Resource handle of the A/V Packetized Isochronous Streaming connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0400...0x04FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleIn is invalid. This error can be returned for several reasons:
- the socket is not of direction Input ,

- the socket is already used in a connection, or

- the socket is of the wrong data type.

0x31

Parameter SocketHandleOut is invalid. This error can be returned for several reasons:
- the direction of the socket is not Output ,

- the socket is of the wrong data type,

- the socket is already used in a connection, or

- both sockets are Network sockets or peripheral sockets. In this case parameter SocketHandleOut will be in conflict with parameter SocketHandleIn .

0x32

The socket bandwidth is in conflict with the connection type requirements.

0x39

Parameter SocketHandleIn or SocketHandleOut indicates a resource that does not exist or the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

Parameter SocketHandleIn or SocketHandleOut indicates a resource that has been rendered invalid and may not be used in a new socket connection.

0x42

No free slot in the connection table or insufficient free routing resources.

SyncCreate (0x871)

This function creates a synchronous data connection between sockets, sockets and combiners, as well as sockets and splitters.

Note: Before a new socket connection is created, ensure that the socket is not already used in a socket connection or with a splitter or combiner.
 
Note: It is not possible to connect a splitter with a combiner.

 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

SyncCreate

(0x871)

StartResult (0x2)

SocketHandleIn, SocketHandleOut,
DefaultMute, MuteMode, Offset

Result (0xC)

SyncHandle

Error (0xF)

ErrorCode, ErrorInfo

SocketHandleIn

The ID number of the opened socket or splitter object that is the starting point of the link. Must be a socket of type Input . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Streaming socket: 0x1700...0x17FF

1

None

MediaLB socket: 0x0B00...0x0BFF

USB socket: 0x1300...0x13FF

Network socket: 0x0E00...0x0EFF

Splitter: 0x0800...0x08FF

SocketHandleOut

The ID number of the opened socket or combiner object that is the ending point of the link. Must be a socket of type Output . Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Streaming socket: 0x1700...0x17FF

1

None

MediaLB socket: 0x0B00...0x0BFF

USB socket: 0x1300...0x13FF

Network socket: 0x0E00...0x0EFF

Combiner: 0x0700...0x07FF

DefaultMute

Specifies if the connection is muted by default

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

Connection is not muted by default.

True (1)

Connection is muted by default.

MuteMode

Configures how the resource monitor shall handle events that may make the streamed data invalid.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NoMuting

No mute monitoring

0x01

MuteSignal

The MUTE pin will be asserted if any registered connection may stream corrupted data.

0x02

AutoMute

The INIC will route zeros during conditions that may corrupt the streamed data.

Offset

Specifies the offset from where the socket data should be routed from a splitter; it also specifies the offset to where socket data should be routed to a combiner.
When a standard socket connection is to be created, the offset must be sent as 0. This also applies for connections between a socket and a splitter based on a Network socket.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0...383

1

None

SyncHandle

Resource handle of the synchronous connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0200...0x02FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleIn is invalid. This error can be returned for several reasons:

- the socket is not of direction Input ,

- the socket is not of data type Sync ,

- the socket is a loopback socket,

- the socket is already used in a connection or with a splitter, or

- the socket was requested to be connected with a combiner, but is not a Network socket.

0x20

0x03

0x31

Parameter SocketHandleOut is invalid. This error can be returned for several reasons:

- the socket is not of direction Output ,

- the socket is not of data type Sync ,

- the socket is already used in a connection or with a combiner,

- the socket was requested to be connected with another socket, but both are Network sockets, or both are peripheral sockets, which are invalid combinations,

- the socket is tried to be connected with a splitter and both the socket and the splitter’s socket are created on peripheral ports (either the same or different ports), or

- both the socket and the splitter’s socket are Network sockets.

 

If the resource is a combiner, then the following can also occur:

- a combiner was tried to be connected to a splitter.

0x32

The bandwidth of the resources is in conflict with the connection type requirements. When connecting two sockets, the bandwidth must be equal. When connecting a splitter/combiner, the size of the socket being connected, considering the offset, must fit inside the splitter/combiner.

0x33

The Offset value of the connection variant is invalid, due to several reasons:

- for a standard socket connection, the Offset must be 0, or

- for a connection between a socket and a splitter (based on a Network socket) the Offset must be set to 0.

0x34

Parameter DefaultMute or MuteMode is invalid; the connection does not support muting or parameter MuteMode is MuteSignal , but there is no MuteSignal available, since the MUTE pin has not been enabled.

0x39

Parameter SocketHandleIn or SocketHandleOut indicates a resource that does not exist or the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

Parameter SocketHandleIn or SocketHandleOut indicates a resource that has been rendered invalid and may not be used in a new connection.

0x42

No free slot in the connection table or insufficient free routing resources.
Note: This error code may be returned when creating a Sync connection between a USB socket and a Network socket or a Splitter based on a Network socket. Parameter FramesPerTransaction and the Network socket bandwidth exceeded the allowed value of 512 bytes.

SyncMute (0x873)

This function manually mutes a synchronous data connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

SyncMute

(0x873)

StartResult (0x2)

SyncHandle

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

SyncHandle

Resource handle of the synchronous connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0200...0x02FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x31

The resource indicated by SyncHandle does not support muting.

0x39

Parameter SyncHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

The requested resource is marked invalid.

SyncUnmute (0x874)

This function manually unmutes a synchronous data connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

SyncUnmute

(0x874)

StartResult (0x2)

SyncHandle

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

SyncHandle

Resource handle of the synchronous connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0200...0x02FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x39

Parameter SyncHandle is invalid. The handle indicates a resource that does not exist.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

The requested resource is marked invalid.

DiscFramePhaseCreate (0x881)

This function creates a DiscreteFrame Isochronous Streaming phase connection.

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

DiscFramePhase-
Create

(0x881)

StartResult (0x2)

SocketHandleIn, SocketHandleOut

Result (0xC)

DiscFramePhaseHandle

Error (0xF)

ErrorCode, ErrorInfo

SocketHandleIn

Resource handle of the DiscreteFrame Isochronous Streaming phase socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

Network socket: 0x0E00...0x0EFF

SocketHandleOut

Resource handle of the DiscreteFrame Isochronous Streaming phase socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

MediaLB socket: 0x0B00...0x0BFF

1

None

Network socket: 0x0E00...0x0EFF

DiscFramePhaseHandle

Resource handle of the DiscreteFrame Isochronous Streaming phase connection. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0900...0x09FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleIn is invalid. This error can be returned for several reasons:
- the socket is not of direction Input ,

- the socket is already used in a connection, or

- the socket is of the wrong data type.

0x20

0x03

0x31

Parameter SocketHandleOut is invalid. This error can be returned for several reasons:
- the direction of the socket is not Output ,

- the socket is of the wrong data type,

- the socket is already used in a connection, or

- both sockets are Network sockets or peripheral sockets. In this case parameter SocketHandleOut will be in conflict with parameter SocketHandleIn .

0x39

Parameter SocketHandleIn or SocketHandleOut indicates a resource that does not exist or the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

Parameter SocketHandleIn or SocketHandleOut indicates a resource that has been rendered invalid and may not be used in a new socket connection.

0x42

No free slot in the connection table or insufficient free routing resources.

Combiner and Splitter Functions

Note: Availability of resource objects is chip-specific, see Section 2.2 .

The functions in this section are used to setup streaming connections by using either a combiner or a splitter.

To get more information on a combiner or splitter, refer to Chapter 16.0 or Chapter 17.0 .

An overview of the combiner and splitter functions is shown in Table 23-14 .

Table 23-14: Combiner and Splitter Functions

Function Name

FktID

Possible to Notify

Page

CombinerCreate()

0x901

No

CombinerCreate (0x901)

SplitterCreate()

0x911

No

SplitterCreate (0x911)

 

CombinerCreate (0x901)

This function creates a combiner for synchronous data connections.

Note: Before a combiner is created, ensure that the socket is not already used in a socket connection or with a combiner.
 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

CombinerCreate

(0x901)

StartResult (0x2)

SocketHandleOut,
NetworkPortHandle, BytesPerFrame

Result (0xC)

CombinerHandle

Error (0xF)

ErrorCode, ErrorInfo

SocketHandleOut

Resource handle of the output synchronous socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Streaming socket: 0x1700...0x17FF

1

None

MediaLB socket: 0x0B00...0x0BFF

USB socket: 0x1300...0x13FF

NetworkPortHandle

Port resource handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0D00...0x0DFF

1

None

BytesPerFrame

Specifies the total number of data bytes to be transferred each network frame. Table 23-15 indicates the value to be used for a specific socket type.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...384

1

None

 
Table 23-15: Combiner – BytesPerFrame Parameter Settings

Socket Type

Value of Parameter BytesPerFrame

Note

MediaLB

Set parameter to the same value as Bandwidth .

USB

Set parameter to the total amount of data bytes to be routed per network frame.

Streaming

Set parameter to the same value as Bandwidth.

DataAlignment formats: all

 
 
Note: For the MediaLB use case the contents of the padded bytes are not guaranteed.
 
CombinerHandle

Resource handle of the combiner. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0700...0x07FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleOut is invalid. This error

can be returned for several reasons:

- the socket is not of direction Output ,

- the socket is not of data type Sync , or

- the socket is already used in a connection or with another combiner.

0x32

Parameter BytesPerFrame conflicts with the size of the socket indicated by parameter SocketHandleOut .
Can be only returned if SocketHandleOut indicates a Streaming Port or MediaLB socket.

0x39

Parameter SocketHandleOut indicates a resource that does not exist or the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x42

No free slot in the combiner table or insufficient free routing resources.
Note: This error code may be returned when creating a combiner based on a USB socket. Parameters FramesPerTransaction and BytesPerFrame exceeded the allowed value of 512 bytes. See Padding in Synchronous Bulk Transactions for more information.

SplitterCreate (0x911)

This function creates a splitter for synchronous data connections.

Note: Before a splitter is created, ensure that the socket is not already used in a socket connection or with a splitter.

 

FBlockID

FktID

OPType

Parameters

INIC

(0x00)

SplitterCreate

(0x911)

StartResult (0x2)

SocketHandleIn, NetworkPortHandle,
BytesPerFrame

Result (0xC)

SplitterHandle

Error (0xF)

ErrorCode, ErrorInfo

SocketHandleIn

Resource handle of the input synchronous socket. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Streaming socket: 0x1700...0x17FF

1

None

MediaLB socket: 0x0B00...0x0BFF

USB socket: 0x1300...0x13FF

Network socket: 0x0E00...0x0EFF

NetworkPortHandle

Port resource handle. When the splitter is created with a Network socket, the socket must be created on the same port indicated by this handle. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0D00...0x0DFF

1

None

BytesPerFrame

Specifies the total number of data bytes to be transferred each network frame. Table 23-16 indicates the value to be used for a specific socket type.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...384

1

None

 
Table 23-16: Splitter – BytesPerFrame Parameter Settings

Socket Type

Value of Parameter BytesPerFrame

Note

MediaLB

Set parameter to the same value as Bandwidth .

For the MediaLB use case the contents of the padded bytes are not guaranteed.

 

USB

Set parameter to the total amount of data bytes to be routed per network frame.

Streaming

Set parameter to the same value as Bandwidth.

DataAlignment formats: all

Network

Set parameter at least to the total amount of data bytes to be routed per network frame (Bandwidth).

MediaLB socket:

If a MediaLB socket is to be connected with a Splitter, the value should be adjusted to be quadlet aligned.
Streaming socket using TDM format:
If a Streaming socket of this type is to be connected, the value must be adjusted to the closest higher value given in Table 16-2 .

SplitterHandle

Resource handle of the splitter. Valid value is a combination of resource identifier and index, see Section 7.2 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0800...0x08FF

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Parameter SocketHandleIn is invalid. This error

can be returned for several reasons:

- the socket is not of direction Input ,

- the socket is not of data type Sync ,

- the socket is a loopback socket, or

- the socket is already used in a connection or with another splitter.

0x32

Parameter BytesPerFrame conflicts with the size of the socket indicated by parameter SocketHandleIn .
Can be only returned if SocketHandleIn indicates a Streaming, MediaLB, or Network socket.

0x39

Parameter SocketHandleIn indicates a resource that does not exist or the resource at the index does not match the specified resource type.

0xF0

Configuration interface is not in Remote Control Mode and a request to modify data was received from network side.

0x04

0x40

Parameter SocketHandleIn indicates a resource that has been rendered invalid and may not be used in a new splitter.

0x42

No free slot in the splitter table or insufficient free routing resources.
Note: This error code may be returned when creating a splitter based on a USB socket. Parameters FramesPerTransaction and BytesPerFrame exceeded the allowed value of 512 bytes. See Padding in Synchronous Bulk Transactions for more information.

FBlock DebugMessages
NIC_DebugMessage (0x001)

This function provides debug events which are generated by the INIC and sent to the network. For more information refer to Chapter 25.0 .

FBlockID

FktID

OPType

Parameters

DebugMessages
(0x09)

NIC_DebugMessage
(0x001)

Status (0xC)

DebugLevel, TimeStamp,

CaseIdentifier, CaseSpecificValues

DebugLevel

Determines the debug level of the debug event

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

DebugLevelError

Debug level is Error

0x02

DebugLevelWarning

Debug level is Warning

TimeStamp

TimeStamp always returns 0xFFFFFFFF.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

0xFFFFFFFF

1

ms

CaseIdentifier

16-bit value that identifies the debug event that occurred

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0002, 0x0005... 0x0007

None

CaseSpecificValues

Data Type

Number of Elements

CaseIdentifier

Parameters

Stream

1...2

0x0002

Reset

0x0005

SyncLostICM, SyncLostRCM

0x0006

AutoForcedNATime

0x0007

SyncLostMCM

Reset

Debug message is sent if the NetInterface is in Normal Operation state after reset, caused by specified reason.

Data Type

Valid Values

Mnemonic

Description

Enum

0x02

HWWatchdog

Reset due to hardware watchdog that has snapped
- DebugLevel is Error

0x08

StackOverflow

Reset due to stack overflow
- DebugLevel is Error

SyncLostICM

ICM channel synchronization loss due to one of the following conditions:

Data Type

Valid Values

Mnemonic

Description

Enum

0x02

Internal

Channel was unsynchronized due to a synchronization loss on the RCM channel.

- DebugLevel is Error

0x03

Command

Channel was unsynchronized due to a PMP SYNC or UNSYNC command.
- DebugLevel is Error

0x04

AckTimeOut

Acknowledge time of previously transmitted message has expired.
- DebugLevel is Error

0x05

WDTimeOut

PMP watchdog time has expired (communication got stuck).
- DebugLevel is Error

0x06

TxTimeOut

Transmit time has expired and transmission was canceled.
- DebugLevel is Error

SyncLostRCM

RCM channel synchronization loss due to one of the following conditions:

Data Type

Valid Values

Mnemonic

Description

Enum

0x02

Internal

Channel was unsynchronized due to a synchronization loss on the ICM channel.

- DebugLevel is Error

0x03

Command

Channel was unsynchronized due to a PMP SYNC or UNSYNC command.
- DebugLevel is Error

0x04

AckTimeOut

Acknowledge time of previously transmitted message has expired.
- DebugLevel is Error

0x05

WDTimeOut

PMP watchdog time has expired (communication got stuck).
- DebugLevel is Error

0x06

TxTimeOut

Transmit time has expired and transmission was canceled.
- DebugLevel is Error

AutoForcedNATime

Refer to AutoForcedNotAvailableTime. DebugLevel is Warning.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

SyncLostMCM

MCM channel synchronization loss due to one of the following conditions:

Data Type

Valid Values

Mnemonic

Description

Enum

0x03

Command

Channel was unsynchronized due to a PMP SYNC or UNSYNC command.
- DebugLevel is Error

0x04

AckTimeOut

Acknowledge time of previously transmitted message has expired.
- DebugLevel is Error

0x05

WDTimeOut

PMP watchdog time has expired (communication got stuck).
- DebugLevel is Error

0x06

TxTimeOut

Transmit time has expired and transmission was canceled.
- DebugLevel is Error

FBlock ExtendedNetworkControl

Note: Memory functionality is chip-specific, see Section 2.2.5 .

The functions in this section are used to control a device via the EHC or the network.

An overview of the ExtendedNetworkControl functions is shown in Table 23-17 .

Table 23-17: ExtendedNetworkControl Functions

Function Name

FktID

Possible to Notify

Page

Hello()

0x200

No

Hello (0x200)

Welcome()

0x201

No

Welcome (0x201)

Signature()

0x202

No

Signature (0x202)

Init()

0x203

No

Init (0x203)

AliveMessage()

0x204

No

AliveMessage (0x204)

EnablePort()

0x210

No

EnablePort (0x210)

CableLinkDiagnosis()

0x211

No

CableLinkDiagnosis (0x211)

PhysicalLayerTest()

0x220

No

PhysicalLayerTest (0x220)

PhysicalLayerTestResult()

0x221

No

PhysicalLayerTestResult (0x221)

ReverseRequest()

0x222

No

ReverseRequest (0x222)

EnableTx()

0x223

No

EnableTx (0x223)

MemorySessionOpen()

0x300

No

MemorySessionOpen (0x300)

MemorySessionClose()

0x301

No

MemorySessionClose (0x301)

MemoryRead()

0x302

No

MemoryRead (0x302)

MemoryWrite()

0x303

No

MemoryWrite (0x303)

Hello (0x200)

This function is used to get the unique Signature of an INIC device.

The requesting device sends ExtendedNetworkControl.Hello.Get as a broadcast message to the network. Only those devices that have not successfully sent ExtendedNetworkControl.Welcome.Result will answer with the ExtendedNetworkControl.Hello.Status message. The ExtendedNetworkControl.Hello.Status message is sent by using source address 0x0FFE.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

Hello

(0x200)

Get (0x1)

SignatureVersionLimit

Status (0xC)

SignatureVersion, Signature

Error (0xF)

ErrorCode, ErrorInfo

SignatureVersionLimit

Defines the maximum version of Signature the requesting device can handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...255

1

None

SignatureVersion

Defines the version of the Signature

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

v1

Version 1 of the Signature

NodeAddress

Node Address as entered in the identification string.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0100...0x013F

1

None

0x0010...0x00FF,

0x0140...0x02FF,

0x0500...0x0EFF

0xFFFF

GroupAddress

Group Address as entered in the identification string.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0300...0x03FF

1

None

MACAddress_47to32

Packet EUI-48 Bits 47:32 of the MAC address as entered in the identification string.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

MACAddress_31to16

Packet EUI-48 Bits 31:16 of the MAC address as entered in the identification string.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

MACAddress_15to0

Packet EUI-48 Bits 15:0 of the MAC address as entered in the identification string.

This parameter can be customized via the Identification String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

NodePositionAddress

Current valid NodePositionAddress if network is available. 0x0400 is reported if the network is not available.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0400...0x043F

1

None

DiagID

DiagID as entered in the configuration string.

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

NumberOfPorts

Number of Network Ports available by chip

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x01...0x02

1

None

ChipID

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Major

Major version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Minor

Minor version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Release

Release version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Build

Build version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

1

None

CSVersion_Major

Major version number of the configuration string.

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

CSVersion_Minor

Minor version number of the configuration string.

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

CSVersion_Release

Release version number of the configuration string.

This parameter can be customized via the Configuration String.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Device is already welcomed.

Welcome (0x201)

This function is used to welcome a device in the network.

The function uses the Signature which was returned by the ExtendedNetworkControl.Hello.Status message.
The receiving device compares the signature of the ExtendedNetworkControl.Welcome.StartResult message with its own signature sent by the ExtendedNetworkControl.Hello.Status() message. If the signature matches and the AdminNodeAddress is in the range of 0x0F00...0x0FEF, the NodeAddress is set to the AdminNodeAddress .

The message is always sent to the NodePositionAddress , see Section 5.10.2 .

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

Welcome

(0x201)

StartResult (0x2)

AdminNodeAddress, SignatureVersion, Signature

Result (0xC)

Result, SignatureVersion, Signature

Error (0xF)

ErrorCode, ErrorInfo

AdminNodeAddress

The node address used during the centralized diagnosis and remote administration. If 0xFFFF is applied, the Node Address configured in the identification string is used (only valid if device is not in centralized diagnosis mode and support of Node Discovery has been enabled).

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0F00...0x0FEF

1

None

0xFFFF

SignatureVersion

Defines the version of the Signature

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

v1

Version 1 of the Signature

Signature

Contains the Signature values as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Number of Elements

Parameters

Stream

16

NodeAddress, GroupAddress, MACAddress_47to32, MACAddress_31to16, MACAddress_15to0,
NodePositionAddress, DiagID, NumberOfPorts, ChipID,
FWVersion_Major, FWVersion_Minor,
FWVersion_Release, FWVersion_Build,
CSVersion_Major, CSVersion_Minor, CSVersion_Release

NodeAddress

Contains the NodeAddress as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0100...0x013F

1

None

0x0010...0x00FF,

0x0140...0x02FF,

0x0500...0x0EFF

0xFFFF

GroupAddress

Contains the GroupAddress as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0300...0x03FF

1

None

MACAddress_47to32

Contains bits 47:32 of the MAC address as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

MACAddress_31to16

Contains bits 31:16 of the MAC address as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

MACAddress_15to0

Contains bits 15:0 of the MAC address as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

NodePositionAddress

Contains the NodePositionAddress as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0400...0x043F

1

None

DiagID

Contains the DiagID as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

NumberOfPorts

Contains the NumberOfPorts as returned by parameter ExtendedNetworkControl.Hello.Status.Signature .

Note: This parameter is chip-specific.
For details refer to Chip_NumberOfNetworkPorts.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x01...0x02

1

None

ChipID

Contains the ChipID as returned by parameter ExtendedNetworkControl.Hello.Status.Signature .

Note: This parameter is chip-specific.
For details refer to Chip_ID.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Major

Contains the major firmware version as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Minor

Contains the minor firmware version as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Release

Contains the release firmware version as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

FWVersion_Build

Build version number of the firmware

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

1

None

CSVersion_Major

Contains the major configuration string version as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

CSVersion_Minor

Contains the minor configuration string version as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

CSVersion_Release

Contains the release configuration string version as returned by parameter ExtendedNetworkControl.Hello.Status.Signature

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

Result

Result of the Signature compare

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Success

Compare of the signature was successful.

0x01

NoSuccess

Compare of the signature was not successful.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x02

0x22

Remote administration is not possible since the device is not in NetInterface Normal Operation mode.

0x03

0x31

Device has not yet received an ExtendedNetworkControl.Hello.Get() message.

0x32

Device has already successfully received an ExtendedNetworkControl.Welcome.StartResult() message.

0x33

AdminNodeAddress is 0xFFFF. This value is not supported in full-duplex diagnosis mode.

0x34

AdminNodeAddress is 0xFFFF. This value is not allowed if Node Discovery support has been disabled.

0x35

Value of Node Address in the identification string is not valid. The value is either 0xFFFF or in the dynamic range (see Section 5.10.1 ) while AdminNodeAddress is 0xFFFF.

0x04

0x40

INIC is already in device diagnosis mode.

Signature (0x202)

This function is used to get the unique Signature of an INIC device.

Every network device responds to this message, regardless of whether it was already welcomed or not.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

Signature

(0x202)

Get (0x1)

SignatureVersionLimit

Status (0xC)

SignatureVersion, Signature

Error (0xF)

ErrorCode, ErrorInfo

SignatureVersionLimit

Defines the maximum version of Signature the requesting device can handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...255

1

None

SignatureVersion

Defines the version of the Signature

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

v1

Version 1 of the Signature

Signature

Contains the Signature values as returned by parameter ExtendedNetworkControl.Signature.Status.Signature

Data Type

Number of Elements

Parameters

Stream

16

NodeAddress , GroupAddress , MACAddress_47to32 , MACAddress_31to16 , MACAddress_15to0 ,
NodePositionAddress , DiagID , NumberOfPorts , ChipID ,
FWVersion_Major , FWVersion_Minor ,
FWVersion_Release , FWVersion_Build ,
CSVersion_Major , CSVersion_Minor , CSVersion_Release

NodePositionAddress

Contains the NodePositionAddress as returned by parameter ExtendedNetworkControl.Hello.Status() message. 0x04FF is reported in case no ExtendedNetworkControl.Hello.Get message was seen.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0400...0x043F

1

None

0x04FF

Init (0x203)

This function is used to set back the FBlock ExtendedNetworkControl of a device into its initial state, which means:

  • • Sets the device to not welcomed (no ExtendedNetworkControl.Hello.Get() message was seen)
  • • Sets the NodeAddress to 0x0FFE if
  • - Node Discovery is enabled or
  • - Full-duplex diagnosis is running (see Section 5.6.1 )
  • • Ends the device diagnosis mode
 

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

Init

(0x203)

Start (0x0)

Error (0xF)

ErrorCode, ErrorInfo

AliveMessage (0x204)

This function is used to retrieve the alive status of a device. The alive status consists of the Welcomed status, AliveStatus, SignatureVersion and Signature.
Standardly, the TimingMaster sends out an ExtendedNetworkControl.AliveMessage.Get() broadcast message. Every node that receives the ExtendedNetworkControl.AliveMessage.Get() request, returns the Status message with a pre-defined node-specific time delay. The time delay is calculated by (node position + 1) x 10 ms, in order to avoid collisions with the ExtendedNetworkControl.AliveMessage.Status() message.

During Fallback mode a cyclically ExtendedNetworkControl.AliveMessage.Get() request can be initiated by the Fallback TimingMaster and is send in the timing interval defined by timer t_Send. The ExtendedNetworkControl.AliveMessage.Status() message is sent to node address 0x0F40. Due to limited control communication, only downstream nodes can receive the ExtendedNetworkControl.AliveMessage.Status() message.

For information on the Fallback operation refer to Section 5.8 .

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

AliveMessage

(0x204)

Get (0x1)

AliveVersionLimit,
SignatureVersionLimit

Status (0xC)

AliveVersion, AliveMessage

Error (0xF)

ErrorCode, ErrorInfo

AliveVersionLimit

Defines the maximum version of Alive the requesting device can handle

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...255

1

None

AliveVersion

Defines the version of the Alive

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

v1

Version 1 of the Alive

AliveMessage

Alive message of a device

Data Type

Number of Elements

Parameters

Stream

4

Welcomed, AliveStatus, SignatureVersion, Signature

Welcomed

Indicates if the device is welcomed in the network. By entering the Fallback mode, a device gets automatically welcomed.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NotWelcomed

The device is not welcomed in the network.

0x01

Welcomed

The device is welcomed in the network.

AliveStatus

Indicates the current state of the GPIO pin

Data Type

Bit #

Valid Values

Description

Unsigned Word

0

False

GPIO 00 Low

True

GPIO 00 High

...

15

False

GPIO 15 Low

True

GPIO 15 High

EnablePort (0x210)

This function is used to enable a particular Network Port.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

EnablePort

(0x210)

StartResult (0x2)

PortNumber, Enabled

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

PortNumber

Number of Network Port

Note: This parameter is chip-specific.
For details refer to Chip_NumberOfNetworkPorts .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

Enabled

Indicates if the Network Port is enabled or disabled

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

Network Port is disabled.

True (1)

Network Port is enabled.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

Device is not in full-duplex diagnosis mode and therefore no Network Port can be enabled or disabled.

0x31

Another Network Port has been already enabled.

TimingMaster: Only one Network Port is allowed to be enabled at the same time.

TimingSlave: Only the Network Port and the clock reference Network Port are allowed to be enabled at the same time.

0x32

The slave’s clock reference Network Port cannot be enabled or disabled.

0x33

The Network Port is not used.

0x39

The wrong PortNumber is used.

0x04

0x40

The Network Port is not configured in full-duplex coax mode.

CableLinkDiagnosis (0x211)

Note: This functionality is chip-specific.
For details refer to Chip_CableLinkDiagnosis.

This function is used to start the cable link diagnosis. The cable link diagnosis is used to verify a full-duplex Network Port cable link.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

CableLinkDiagnosis

(0x211)

StartResult (0x2)

PortNumber

Result (0xC)

PortNumber, Result

Error (0xF)

ErrorCode, ErrorInfo

PortNumber

Number of Network Port the diagnosis is running on

Note: This parameter is chip-specific.
For details refer to Chip_NumberOfNetworkPorts .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

Result

Result of the cable link diagnosis.

Cable link diagnosis was run without any test interruption.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NoConnection

The cable is unconnected or has a short between inner and outer conductor.

0x01

TerminatedConnection

The cable end is correctly terminated with an appropriate impedance, but there is no responding signal from the receiving node.

This points towards a properly connected cable with a receiving device that is not powered.

0x02

PassiveConnection

The receiving device is available, but the NetInterface is in passive bypass, e.g., the receiving device is in reset.

0x03

ActiveConnection

The receiving device is available and the NetInterface is fully operational.

 

Cable link diagnosis was run with test interruption.

Data Type

Valid Values

Mnemonic

Description

Enum

0x81

DebugInt0

Test was aborted since the Debug Header was used at the same time.

0x91

DebugInt1

0x80

Failure0

Test was aborted due a common processing failure.

0x82

Failure1

0x83

Failure2

0x87

Failure3

0x90

Failure4

0x92

Failure5

0x95

Failure6

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last INIC.CableLinkDiagnosis() call has not yet been finished.

0x02

0x20

- RBD is active or

- ForcedNA was set.

0x03

0x30

Device is not in full-duplex diagnosis mode and therefore cable link diagnosis cannot be triggered.

0x31

The respective Network Port is not enabled.

0x32

Cable link diagnosis cannot be triggered on the slave’s clock reference Network Port.

0x39

The wrong PortNumber is used.

PhysicalLayerTest (0x220)

Note: This functionality is chip-specific.
For details refer to Chip_PhysicalLayerTest.

This function starts the physical layer test on a Network Port.

Once the physical layer test is started it will force the network to enter NotAvailable state, indicating sub state AvailabilityInfo Diagnosis . After the test has been finished, it changes back to Regular and the chip is ready to start up again.
If the network is Available when starting the test, the AvailabilityTransitionCause will be Normal .

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

PhysicalLayerTest

(0x220)

Start (0x0)

PortNumber, Type, LeadIn, Duration, LeadOut

Error (0xF)

ErrorCode, ErrorInfo

PortNumber

Number of Network Port the test is performed on

Note: This parameter is chip-specific.
For details refer to Chip_NumberOfNetworkPorts .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

Type

Indicates the type of physical layer test. The device is switched back to its original mode after the physical layer test is finished and the network has been started up again.

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

RetimedBypassTimingMaster

Forces the device to enter RetimedBypassTimingMaster mode independent of original mode.

0x02

RetimedBypassTimingSlave

Forces the device to enter RetimedBypassTimingSlave mode independent of original mode.

LeadIn

Lead in time of physical layer test

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

Duration

Duration time of physical layer test

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

50...4294967295

1

ms

LeadOut

Lead out time of physical layer test

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

10...65535

1

ms

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last PhysicalLayerTest() call has not yet been finished.

0x02

0x20

- RBD is active, or

- ForcedNA was set.

0x03

0x39

The wrong PortNumber is used.

0x3A

Functionality is not available.

PhysicalLayerTestResult (0x221)

Note: This functionality is chip-specific.
For details refer to Chip_PhysicalLayerTest.

This function returns the result for the tested Network Port, after the physical layer test has been finished.

As soon as the physical layer test is started by executing function ExtendedNetworkControl.PhysicalLayerTest() , all parameters of ExtendedNetworkControl.PhysicalLayerTestResult() become invalid. This means:

  • • the PortNumber returns 0xFF,
  • • the LockStatus returns False, and
  • • the ErrorCounterValue returns 0.

If the test is erroneous, all values will stay invalid. If the test can be finished successfully, the PortNumber changes to a valid number given during the test and LockStatus and ErrorCounterValue also return with evaluated values.

After INIC reset, all values are invalidated. They are also invalidated after they have been read.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

PhysicalLayerTestResult

(0x221)

Get (0x1)

Status (0xC)

PortNumber, LockStatus,
ErrorCounterValue

Error (0xF)

ErrorCode, ErrorInfo

PortNumber

Number of Network Port the test was performed on. 0xFF is returned, if no physical layer test result is available.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

LockStatus

Indicates if an unlock has occurred during the physical layer test

Data Type

Bit #

Valid Values

Description

Boolean

0

False (0)

No unlock occurred

True (1)

Unlock occurred

ErrorCounterValue

Number of detected coding errors occurred during physical layer test

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x3A

Functionality is not available.

ReverseRequest (0x222)

This function is used to retrieve half-duplex diagnosis results from a dedicated network device or start the Fallback negotiation phase. The request is sent as a broadcast message in the standard communication direction. The Result is returned in the opposite communication direction.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

ReverseRequest

(0x222)

StartResult (0x2)

MasterPosition, t_Switch, t_Send, t_Back, RequestID, RequestList

Result (0xC)

RequestID, ResultList

Error (0xF)

ErrorCode, ErrorInfo

MasterPosition

Indicates the node position of the device that acts as the TimingMaster in opposite communication direction. The value is ignored in case the RequestID is Fallback .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

1...63

1

None

t_Switch

Defines the time in [ms] for switching the message direction, after an ExtendedNetworkControl.ReverseRequest() has been received

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...65535

1

ms

t_Send

Defines the time in [ms] the device has to wait with communication, after the message direction has been switched.
For RequestID Diagnosis , the time specifies when the result is sent back at the earliest.
For RequestID Fallback , the time specifies when an ExtendedNetworkControl.AliveMessage.Get() request is sent out from the Fallback TimingMaster. The ExtendedNetworkControl.AliveMessage.Get() message is sent cyclically with the time given in this parameter. If the TimingMaster shall not send a cyclically ExtendedNetworkControl.AliveMessage.Get() message, this value must be set to 0xFFFF.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...65535

1

ms

t_Back

For RequestID Diagnosis_V1 , this parameter defines the time in [ms] the device resides in opposite communication direction before it switches back to standard communication direction.
For RequestID Fallback, this parameter defines the time in [s] the device resides in Fallback mode. If the timer is set to 0xFFFF, the device will never leave Fallback mode.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

RequestID

Specifies the request type of the ExtendedNetworkControl.ReverseRequest() message

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Diagnosis_V1

Version 1 of the diagnosis

0x01

Fallback

Fallback master negotiation phase request

RequestList

Lists the parameters depending on the RequestID

Data Type

Number of Elements

Condition

Parameters

Stream

1...3

Diagnosis_V1

t_Wait, AdminNodeAddress, SignatureVersionLimit

Fallback

t_NegotiationGuard, t_NegotiationInitiator

t_Wait

Defines the time in [ms] the tester device waits for the network signal from the DUT on its input before switching itself to TimingMaster mode.
For information on the half-duplex diagnosis, refer to Section 5.6.1 .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...65535

1

ms

AdminNodeAddress

The node address used during half-duplex diagnosis.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

0x0F00...0x0FEF

1

None

t_NegotiationGuard

Defines the time in [ms] a Fallback guard, which is not the initiator, resides in master negotiation phase.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...65535

1

ms

t_NegotiationInitiator

Defines the time in [ms] a Fallback initiator resides in master negotiation phase

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

1...65535

1

ms

ResultList

Lists the parameters depending on the RequestID

Data Type

Number of Elements

Condition

Parameters

Stream

1...4

Diagnosis_V1

TesterResult, CableDiagnosisResult, SignatureVersion, Signature

Fallback

Result

TesterResult

Returns the result from the tester device of the half-duplex diagnosis

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

SlaveOK

Tester device is in TimingSlave mode and has seen the network signal at its input. The TimingSlave is located at node position one.

0x01

SlaveWrongNodePosition

Tester device is in TimingSlave mode and has seen the network signal at its input. The TimingSlave is not located at node position one.

0x10

MasterNoRxSignal

Tester device is in TimingMaster mode and has not seen the network signal at its input.

0x11

MasterRxLock

Tester device is in TimingMaster mode and has seen the network signal at its input.

0xFF

NoResult

No diagnosis result

CableDiagnosisResult

Returns the result of the cable diagnosis from the tester device

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

NoResult

Cable test has not run.

0x01

OK

Cable test passed.

0x02

CableShorted

Cable is shorted.

0x03

CableOpen

Cable is open.

0x04

CableCrossWired

Cable is cross-wired.

0x05

PShortedToVBATT

Cable plus is shorted to VBATT.

0x06

NShortedToVBATT

Cable minus is shorted to VBATT.

0x07

PShortedToGND

Cable plus is shorted to GND.

0x08

NShortedToGND

Cable minus is shorted to GND.

0x09

Error

Unknown error

Result

Indicates if the initiator has successfully triggered Fallback mode

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Success

The initiator has successfully triggered Fallback mode.

0x01

NoSuccess

The initiator failed to trigger Fallback mode.

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

The last ExtendedNetworkControl.ReverseRequest() call has not yet been finished.

0x03

0x30

The device is not in

- half-duplex diagnosis mode or

- Fallback mode.

0x31

The device cannot process the request.

0x32

The device has an invalid AdminNodeAddress.

0x20

0x03

0x33

The device is located behind the DUT.

0x34

The device is at the wrong node position.

EnableTx (0x223)

This function is used to switch on the network signal in the TimingMaster during the half-duplex diagnosis.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

EnableTx

(0x223)

StartResult (0x2)

PortNumber

Result (0xC)

Error (0xF)

ErrorCode, ErrorInfo

PortNumber

Number of Network Port

Note: This parameter is chip-specific.
For details refer to Chip_NumberOfNetworkPorts .

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The device is not in half-duplex diagnosis mode.

0x31

The Network Port is not in use.

0x32

The device is not

- a TimingMaster or

- in the correct Network Interface state.

0x39

The wrong PortNumber is used.

0x04

0x40

The transceiver mode of the Network Port is not in
BalancedMediaUnidirectional mode.

MemorySessionOpen (0x300)

This function is used to open a memory session. A memory session is used to control access to the memory resources. Before a memory could be read or written, a session of the appropriate type has to be opened.

Only a single memory session is supported. Once opened, the session must be first closed before a new session of a different type could be used.

Some session types (0x01, 0x02 and 0x04) require a hardware reset after they were closed. If one of these sessions is opened to write the configuration string and/or the identification string, an INIC reset request is placed. Execution of the INIC reset happens when the INIC transitions to NetInterface Off state or after ExtendedNetworkControl.Init() was called, see Section 23.4.4 .

This function also performs some preprocessing, depending on the SessionType . This includes the clearing of the configuration and identification strings in advance to programming or erasing the error memory.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

MemorySessionOpen

(0x300)

StartResult (0x2)

SessionType

Result (0xC)

SessionHandle

Error (0xF)

ErrorCode, ErrorInfo

SessionType

Defines the set of MemIDs and the memory access type(s) (read and/or write).

Note: This parameter is chip-specific.
For details refer to Chip_SessionType.

Data Type

Valid Values

Mnemonic

Description

Enum

0x01

ProgramCFGS

Writes to MemID 0x00, configuration string

0x02

ProgramIDENTS

Writes to MemID 0x01, identification string

0x04

ProgramCFGS_IDENTS

Writes to MemID 0x00 and MemID 0x01

0x08

EraseEM

Erases the error memory

0x10

ConfigREAD

Reads data from all configuration memories

0x40

ProgramPATCHS

Writes MemID 0x0E, patch string

SessionHandle

Unique number used to authorize memory access. Required as a parameter in functions ExtendedNetworkControl.MemoryRead() and ExtendedNetworkControl.MemoryWrite()

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x01

0x10

Before a new session can be opened, a hardware reset must be applied.

0x11

The memory session using the SessionHandle is already active.

0x02

0x20

A configuration string erase error has occurred.

0x21

An error memory erase error has occurred.

MemorySessionClose (0x301)

This function is used to close an active memory session that was previously opened by function ExtendedNetworkControl.MemorySessionOpen() . In addition, the function performs some post-processing on given session types. This includes validation of the newly programmed configuration and identification strings as well as the deactivation of the current configuration and identification strings. In these cases, the new configuration becomes active after a hardware reset.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

MemorySessionClose

(0x301)

StartResult (0x2)

SessionHandle

Result (0xC)

SessionResult

Error (0xF)

ErrorCode, ErrorInfo

SessionHandle

Unique number assigned to the active memory session by function ExtendedNetworkControl.MemorySessionOpen()

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

SessionResult

Reports the memory session state on closing

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

Success

Memory session closed successfully

0x01

CRCErrorNewCFGS

CRC error found in the new configuration string

0x02

CRCErrorNewIDENTS

CRC error found in the new identification string

0x03

CRCErrorOldCFGS

CRC error found in the active configuration string

0x04

CRCErrorOldIDENTS

CRC error found in the active identification string

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The SessionHandle does not match the current memory session.

 

MemoryRead (0x302)

This function provides read access to the memories described by parameter MemID . In addition, the function can be used to retrieve the active Configuration String and Identification String.

Reading the memory can only be done within an active memory session. Parameter SessionHandle authorizes the access to the memory resource defined by parameter MemID. The SessionHandle is provided by function ExtendedNetworkControl.MemorySessionOpen() , which must be called in advance to memory access.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

MemoryRead

(0x302)

StartResult (0x2)

SessionHandle, MemID, Address,
UnitLen

Result (0xC)

SessionHandle, MemID, Address,
UnitLen, UnitData

Error (0xF)

ErrorCode, ErrorInfo

SessionHandle

Identifies the active memory session already opened to authorize the reading operation

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

MemID

Represents the memory resource to be read.

Note: This parameter is chip-specific.
For details refer to Chip_ReadMemID.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

CFGS

Reads the configuration string

0x01

IDENTS

Reads the identification string

0x02

ErrorMemory

Reads the error memory

0x0E

PATCHS

Reads the patch string

0x10

IntegrityInfo

Reads device integrity information

Address

Defines the memory location at which the reading operation starts.

Note: Each memory has its own address range limits, which must not be exceeded for the particular MemID .
 

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

1

None

UnitLen

Sets the number of memory units to be read. Memory units can be unsigned bytes, unsigned words or unsigned masked data depending on the memory type.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x01...0xFF

1

None

UnitData

Contains the data read from the memory resource and formatted as memory units

Data Type

Number of Elements

Condition

Parameters

Stream

1...18

MemID = 0x00

{ ByteData }

MemID = 0x01

{ ByteData }

MemID = 0x02

{ ByteData }

MemID = 0x0E

{ ByteData }

MemID = 0x10

{ ByteData }

ByteData

Defines a stream of unsigned bytes

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x03

0x30

The SessionHandle does not match the current memory session.

0x31

The memory session does not support the requested MemID .

0x34

The sum of parameter values Address + UnitLen is out of range.

0x35

The result does not fit into the ExtendedNetworkControl.MemoryRead.Result message.

MemoryWrite (0x303)

This function provides write access to the memories described by parameter MemID . In addition, the function can be used to program a new Configuration String and Identification String.

Writing the memory can only be done within an active memory session. Parameter SessionHandle authorizes the access to the memory resource defined by parameter MemID. The SessionHandle is provided by function ExtendedNetworkControl.MemorySessionOpen() , which must be called in advance to memory access.

FBlockID

FktID

OPType

Parameters

ExtendedNetworkControl

(0x0A)

MemoryWrite

(0x303)

StartResult (0x2)

SessionHandle, MemID, Address,
UnitLen, UnitData

Result (0xC)

SessionHandle, MemID

Error (0xF)

ErrorCode, ErrorInfo

SessionHandle

Identifies the active memory session already opened to authorize the writing operation

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Word

0

Full range

1

None

MemID

Represents the memory resource to be written.

Note: This parameter is chip-specific.
For details refer to Chip_WriteMemID.

Data Type

Valid Values

Mnemonic

Description

Enum

0x00

CFGS

Writes the configuration string

0x01

IDENTS

Writes the identification string

0x0C

CFGSTest

Writes test configuration string

0x0D

IDENTSTest

Writes test identification string

0x0E

PATCHS

Writes patch string

0x0F

PATCHSTest

Writes test patch string

Address

Defines the memory location at which the writing operation starts.

Note: Each memory has its own address range limits, which must not be exceeded for the particular MemID .
 

Note: This parameter is chip-specific.
For details refer to Chip_WriteAddress.

 

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Long

0

Full range

1

None

UnitLen

Sets the number of memory units to be written. Memory units can be unsigned bytes, unsigned words or unsigned masked data depending on the memory type.

Note: This parameter is chip-specific.
For details refer to Chip_WriteUnitLen.

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

0x01...0xFF

1

None

UnitData

Contains the actual data written to the memory resource and formatted as memory units

Data Type

Number of Elements

Condition

Parameters

Stream

1...18

MemID = 0x00

{ ByteData }

MemID = 0x01

{ ByteData }

MemID = 0x0C

{ ByteData }

MemID = 0x0D

{ ByteData }

MemID = 0x0E

{ ByteData }

MemID = 0x0F

{ ByteData }

ByteData

Defines a stream of unsigned bytes

Data Type

Exp.

Valid Values

Step

Unit

Unsigned Byte

0

Full range

1

None

ErrorCode, ErrorInfo

ErrorCode

ErrorInfo

ErrorClass

ErrorID

Description of the Error

0x20

0x02

0x25

Configuration memory write error.

0x26

Configuration memory is full.

0x03

0x30

The SessionHandle does not match the current memory session.

0x31

The memory session does not support the requested MemID .

0x32

The Address is not even when writing the configuration memory.

0x33

The UnitLen is not even when writing the configuration memory.

0x34

The sum of parameter values Address + UnitLen is out of range.

Error Reporting

The INIC’s error reporting is based on standard error codes. This includes error codes (0x01-0x06) that indicate format failures. A format failure occurs whenever a function or parameter-related setting was done that is not supported by the INIC API. In addition to these error codes, error code 0x0C is reported if a segmentation error occurs. The standard error codes are listed in Table 23-18 , including error code 0x20, which is function-specific. Function-specific error codes are related to errors that can only happen during runtime.

Error code information consists of a code ( ErrorCode ) and a description of it ( ErrorInfo ), see Table 23-18 . A function-specific error code always has the ErrorCode number 0x20; its ErrorInfo contains the ErrorClass and the ErrorID. The ErrorClass describes the classification of the error, and the ErrorID and its description the details. A description of available error classes is given in Table 23-19 ; the ErrorID and its description can be found beneath the appropriate INIC API function in this chapter.

Note: An error is reported only to the device that sent the instruction.
 
Table 23-18: Standard ErrorCodes and ErrorInfo

ErrorCode

Data[0] On ErrorData[2]

Description

ErrorInfo Data[1]...Data[n] OnErrorData[3]...
Data[n]

Description

0x01

FBlockID not available

No info

0x02

InstID not available

No info

0x03

FktID not available

No info

0x04

OPType not available

Return OPType

Invalid OPType

0x05

Invalid length

 

No info

0x06

Parameter wrong/ out of range:

One or more of the parameters were wrong, i.e., not within the boundaries specified for the function.

Return parameter

Number of parameter (byte containing 1,2, …). Value of first incorrect parameter only (optional). Interpretation will be stopped then.

0x0C

Segmentation error:

After this error code, the following ErrorInfo 0x01 up to 0x07 can be sent.

0x01

First segment missing

0x02

Receive buffer overflow. Message is too long.

0x03

Unexpected segment number

0x04

Receive buffer overflow. No free Rx slot available.

0x05

Timeout while waiting for the next segment

0x06

Device is not capable to handle segmented messages.

0x07

Segmented message has not been finished before the arrival of another message set by the same node.

0x20

Function-specific error

ErrorClass and ErrorID

Refer to Table 23-19 . Additional error information can be found beneath the appropriate INIC API function.

 

 
Table 23-19: List of ErrorClasses

ErrorClass Data[1] OnErrorData[3]

Description

0x01

Busy
Process in INIC is currently busy. Retries are possible in a reasonable time.

Example: Returned when a detach request is pending, but the application triggers an attach.

0x02

Processing error

Process could not be finished. Retries are possible.

Example: The network cannot reach Available state.

0x03

Configuration error

Wrong configuration (values are temporarily out of range).
Retries are not useful.

Example: Application has already opened a port that was requested to be opened again with a different, but valid setting.

0x04

System error

Current state of INIC or network prevents a successful execution of the process and retries are not possible.
Retries are only possible when the state changes, but it is not clear when or if this happens (dynamic error).

Example: Occurs if it is requested to create Streaming sockets while there is not enough streaming bandwidth available on the network.

 

Configuration

Configuration

The INIC provides memory images, in which configuration data, e.g., the Configuration String, can be stored. Each memory image is capable to store one string of configuration data. Memory images are due to different characteristics related to a specific image type, see Table 24-1 and Table 24-2 .

Table 24-1: ROM Image Types

Image Type

Available for

Characteristics

CFGS

IDENTS

PATCHS

Test

X

X

X

- Non-persistent

- For test purposes only

- Loses its content at every power cycle

Overlay

X

X

- Persistent

- One-time programmable

- Overlays a previously written standard image

Standard

X

X

X

- Persistent

- One-time programmable for ROM devices. The overlay image can be used to overwrite the standard image. The test image can be used to verify configuration before making it persistent.

- Must be written first for ROM devices

- Multi-programmable for flash devices. Includes factory default values from production if not overwritten by customer.

Default

X

X

- Persistent

- Stores factory default values

Table 24-2: flash Image Types

Image Type

Available for

Characteristics

CFGS

IDENTS

PATCHS

Standard

X

X

X

- Persistent

- One-time programmable for ROM devices. The overlay image can be used to overwrite the standard image. The test image can be used to verify configuration before making it persistent.

- Must be written first for ROM devices

- Multi-programmable for flash devices. Includes factory default values from production if not overwritten by customer.

In case of ROM devices, configuration data is stored in one-time programmable memory images. The image written first is the Standard image. If configuration data needs to be adjusted that was already written into the Standard image, the Overlay image can be used to overwrite the Standard image. By this mechanism it is possible to write configuration data two times.

 

The mechanism of memory image selection and how a string is loaded from it, is described in the respective configuration data sections:

 

Configuration string and identification string settings are persistent. This means, the settings of these resources cannot be destroyed during runtime.

 

For information on how to program the device, refer to the Device Update Process User’s Guide [14] .

 

 

Configuration String

The configuration string includes values to be used as information on the device configuration (e.g., the type of default port that is automatically opened for communication between the INIC and the EHC). Reprogramming the string is done during development or production.

The mechanism of image selection and how the string is loaded from it is described in Figure 24-1 .

Figure 24-1: Mechanism for Loading a CFGS or IDENTS from an Image
 

 

Properties

This section lists the properties of the configuration string. The properties are grouped into sections (e.g., Device Management, Power Management). For each property a general description is given that explains the intended use of the property and its valid values. The default value associated to every property is given in Table 24-3 .

Device Management

Note: The functionality described in this section is chip-specific, see Section 2.2.3 .

Default Instance ID

Sets the default instance identifier of FBlock INIC

Exp.

Valid Values

Step

Unit

0

0x01...0xFE

1

None

Diag ID

Defines the diagnostic identifier of the device

Exp.

Valid Values

Step

Unit

0

Full range

1

None

MUTE Pin Configuration

Determines how the MUTE pin is used.

Note: This property is chip-specific.
For details refer to Chip_MUTEPinConfiguration.

Mnemonic

Description

Disabled

No action. MUTE pin can be used as GPIO GPx pin, depending on INIC used.

Enabled

MUTE pin is used to signal mute.

RSOUT

MUTE pin signals reset. The pin is driven low for 10 ms as soon as INIC enters Protected Mode.

Configuration Interface

Selects the port for the configuration interface.

Note: Configuration Interface and Application Interface property settings do not allow the combination of MediaLB and USB .
 

Note: This property is chip-specific.
For details refer to Chip_ConfigApplInterface.

 

Mnemonic

Description

None

Enables the configuration interface to be remotely controlled.

I2C

I 2 C Port is used for the ICM and RCM PMP channels.

MediaLB

MediaLB Port is used for the ICM and RCM PMP channels.

USB

USB Port is used for the ICM and RCM PMP channels.

SPI

SPI Port is used for the ICM and RCM PMP channels.

DI2C

Debug I 2 C message channel is used as interface.

 
 

The DI2C message channel can be used for test purposes only.

 
Application Interface

Selects the port for the application interface. For limitations refer to Configuration Interface.

Note: This property is chip-specific.
For details refer to Chip_ConfigApplInterface.

 

Mnemonic

Description

None

MCM PMP channel is disabled.

I2C

I 2 C Port is used for the MCM PMP channel.

MediaLB

MediaLB Port is used for the MCM PMP channel.

USB

USB Port is used for the MCM PMP channel.

SPI

SPI Port is used for the MCM PMP channel.

DI2C

Debug I 2 C message channel is used as interface.

 

The DI2C message channel can be used for test purposes only.

 

 

Power Management

Note: The functionality described in this section is chip-specific, see Section 2.2.4 .

By using the properties below, the following actions can be automatically initiated by INIC in Protected Mode.

Interface

Selects the power management interface.

If it is desired to use an external power controller, the I 2 C Soft Port must be CreatedAtStartup first.

 

Mnemonic

Description

Standard

Uses PS0/PS1 pins to monitor the INIC power status

PowerController

Provides an I 2 C interface that uses the PS0/PS1/PWROFF pins to handle the power states signaled by an external power controller and power-off requests from INIC.

Power Controller I2C Address

Sets the 7-bit I 2 C slave address of the power controller chip

Exp.

Valid Values

Step

Unit

0

0x00...0x7F

1

None

Monitoring

Enables or disables the monitoring of the power states

Mnemonic

Description

Disabled

Disables the monitoring of the power states, but allows for limited property settings: configuration of Power Off Time is possible.

If Interface is set to Standard , PS0 and PS1 pins can be used as GPIOs.

Enabled

Enables the monitoring of the power states, with further property settings, see below.

Action On U_Low

Determines the INIC’s behavior when it detects an erroneous power condition (U Low ) signaled by the power management interface, see Table 4-1 .

Mnemonic

Description

None

No action

PowerOff

Sets a power-off request

ForcedNA

Sets ForcedNA

PowerOffForcedNA

Sets a power-off request and ForcedNA

Action On STP

Determines the INIC’s behavior when it detects an STP condition, see Table 4-1 .

Note: This property is chip-specific.
For details refer to Chip_RBD.

Mnemonic

Description

None

No action

StartDiagnosisSlave

INIC starts Ring Break Diagnosis as TimingSlave when the power management interface indicates state STP, see Table 4-1 .

StartDiagnosisMaster

INIC starts Ring Break Diagnosis as TimingMaster the power management interface indicates state STP, see Table 4-1 .

StartNetwork

INIC starts the network as TimingMaster when the power management interface indicates state STP, see Table 4-1 . This action provides the ability for two further property settings, see below.

 

StartNetwork-related settings are as follows:

Auto Forced Not Available Time

Sets the delay for network shut down when INIC resides in Protected Mode and NetInterface Off state has been left (e.g., network startup has been triggered).

Exp.

Valid Values

Step

Unit

0

10...65535

1

ms

Packet Bandwidth

Determines the packet data bandwidth on the network configured by a TimingMaster device.

Note: This property is chip-specific.
For details refer to Chip_Bandwidth_MaxValue.

Exp.

Valid Values

Step

Unit

0

0...65535

4

Byte

Power Off Time

Defines the time after which a power-off request is set. The precondition for timer start is that both conditions must occur: the Network must be in NetInterface Off state (see Figure 5-1 ) and INIC must have entered Protected Mode. If one of the conditions is no longer met, the timer will stop.
If the timer is set to 65535, it will be disabled and the INIC will never set a power-off request, not even if the network is in NetInterface Off state and INIC has entered Protected Mode.
The default value is 65535 s.

Exp.

Valid Values

Step

Unit

0

1...65535

1

s

Proxy Channel Bandwidth

Proxy channel bandwidth on the network, when the INIC has triggered a network start-up via the power management interface.

Note: This property is chip-specific.
For details refer to Chip_Bandwidth_MaxValue.

Exp.

Valid Values

Step

Unit

0

0...65535

4

Byte

 

Network Management
Control Message Low Level Retry Block Count

Defines the block count for control Low-Level Retries for all messages generated by the INIC itself

Exp.

Valid Values

Step

Unit

0

0...100

1

None

Node Discovery

Enables or disables support for Node Discovery

Mnemonic

Description

Disabled

Disables support for node discovery. Legacy network compliant node address handling is used.

Enabled

Enables support for node discovery

Fallback Mode

Defines how the device behaves in Fallback Mode

Mnemonic

Description

None

Device ignores Fallback operation.

Monitor

Device acts as monitor.

Guard

Device acts as guard.

Auto-Tx-Off Time

Defines the time that is used to cyclically check activity at the Tx pin, as long as the device resides in NetInterface Init state. 0 means that no check is performed.

This property is only used for devices that are configured in Fallback Mode Monitor .

Exp.

Valid Values

Step

Unit

0

0...3

1

s

 

Network Port

The configuration settings are per Network Port.

Note: Availability of resource objects is chip-specific, see Section 2.2.2.1 .

Port Mode

Defines the initial operation mode of the Network Port for INICs that provide more than one Network Port.

Note: This property is chip-specific.
For details refer to Chip_NumberOfNetworkPorts .

Mnemonic

Description

Used

Network Port is used.

Unused

Network Port is unused.

Transceiver Mode

Defines the transceiver mode used for network communication

Note: This property is chip-specific.
For details refer to Chip_TransceiverMode.

Mnemonic

Description

LVDSUnidirectional

Transceiver is configured in unidirectional LVDS mode.

Coax

Transceiver is configured in Coax mode.

DefinedByPackage

Chip-specific default

 

I 2 C Port
Port Create

Creates the I 2 C Port of the device

Note: Creation of an I 2 C Port at chip startup is only supported when the property setting of the Configuration Interface or the Application Interface is set to I2C .
 

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below. The INIC operates as I 2 C-bus slave.

Port Address

Sets the 7-bit I 2 C slave address of the device

Exp.

Valid Values

Step

Unit

0

0x00...0x7F

1

None

 

I²C Soft Port
Port Create

Creates the I 2 C Soft Port of the device

Note: Creation of an I 2 C Soft Port at chip startup is only supported when property Interface has been configured as PowerController .
 

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created. The INIC operates as I 2 C-bus slave.

 

MediaLB Port

Note: Availability of resource objects is chip-specific, see Section 2.2.2.2 .

Port Create

Creates the MediaLB Port of the device

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below.

Port Speed

Defines the clock speed configuration

Mnemonic

MediaLB Pin Modes

256Fs

3-Pin mode

512Fs

1024Fs

2048Fs

6-Pin mode

3072Fs

4096Fs

6144Fs

8192Fs

 

USB Port

Note: Availability of resource objects is chip-specific, see Section 2.2.2.3 .

Port Create

Creates the USB Port of the device

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below.

Physical Layer

Selects the interface of the USB Port’s physical layer

Mnemonic

Description

Standard

Standard – USB uses the standard USB 2.0 physical layer with analog transceivers for communication.

HSIC

HSIC – USB uses the High-Speed Inter-Chip physical layer with digital transceivers for on-board communication.

Control Interface

Enables or disables the control interface communication over the USB Port. This interface provides the endpoints Chip_USBCtrlEpOutAddr (OUT) and Chip_USBCtrlEpInAddr (IN).

Mnemonic

Description

Disabled

The control interface is disabled.

Enabled

The control interface is enabled.

Packet Interface

Enables or disables the packet interface communication over the USB Port. This interface provides the endpoints Chip_USBPktEpOutAddr (OUT) and Chip_USBPktEpInAddr (IN).

Mnemonic

Description

Disabled

The packet interface is disabled.

Enabled

The packet interface is enabled.

IPC Packet Interface

Enables or disables the IPC packet interface communication over the USB Port. This interface provides the endpoints 0x0D (OUT) and 0x8D (IN).

Note: This property is chip-specific.
For details refer to Chip_IPCPacket.

Mnemonic

Description

Disabled

The IPC packet interface is disabled.

Enabled

The IPC packet interface is enabled.

Streaming Interface

Enables or disables the streaming interface communication over the USB Port. The interface provides a maximum number of endpoints, see Chip_USBStreamMaxEpCnt , dependent on the configured count of OUT and IN endpoints. The count is configured by parameters OUT Endpoint Count for Streaming Interface and IN Endpoint Count for Streaming Interface .

Mnemonic

Description

Disabled

The streaming interface is disabled.

Enabled

The streaming interface is enabled.

OUT Endpoint Count for Streaming Interface

Defines the number of USB OUT endpoints being provided through the USB streaming interface. The first endpoint starts at address 0x01 and increases by one for each additional endpoint.

Exp.

Valid Values

Step

Unit

0

0... Chip_USBStreamMaxEpCnt

1

None

IN Endpoint Count for Streaming Interface

Defines the number of USB IN endpoints being provided through the streaming interface. The first endpoint starts at address 0x81 and increases by one for each additional endpoint.

Exp.

Valid Values

Step

Unit

0

0... Chip_USBStreamMaxEpCnt

1

None

 

SPI Port

Note: Availability of resource objects is chip-specific, see Section 2.2.2.4 .

Port Create

Creates the SPI Port of the device

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below.

Clock Mode

Sets the phase and polarity of the SCLK signal

Mnemonic

Description

SCLKLowSFCR

Mode 0: SCLK is low when idle. Data switches on the falling edge, needs to be captured on the rising edge.

SCLKLowSRCF

Mode 1: SCLK is low when idle. Data switches on the rising edge, needs to be captured on the falling edge.

SCLKHighSRCF

Mode 2: SCLK is high when idle. Data switches on the rising edge, needs to be captured on the falling edge.

SCLKHighSFCR

Mode 3: SCLK is high when idle. Data switches on the falling edge, needs to be captured on the rising edge.

 

Streaming Port Base Configuration

Note: Availability of resource objects is chip-specific, see Section 2.2.2.5 .

Base Configuration Load

Loads the base configuration. For more information refer to Chapter 12.0 .

Mnemonic

Description

NotLoadedAtStartup

At chip startup the base configuration is not loaded. If the base configuration is required, it can be configured per FBlock INIC command.

LoadedAtStartup

At chip startup the base configuration is loaded with further property settings, see below.

Port A Operation Mode

Defines the operation mode of Streaming Port A

Mnemonic

Description

Generic

If Index is PortB , data pins are linked to PortA clock configuration.

Port A Option

Defines the direction of the physical data pins of Streaming Port A

Mnemonic

Description

InOut

Two serial interface pins are available; one for direction IN (Streaming Port A: SRA0, Streaming Port B: SRB0) and one for direction OUT (Streaming Port A: SXA1, Streaming Port B: SXB1).

DualIn

Two serial interface pins are available for direction IN.

DualOut

Two serial interface pins are available for direction OUT.

Port A Clock Mode

Defines the clock generation mode for Streaming Port A.

Mnemonic

Description

Output

INIC drives the FSY / SCK signals as outputs, frequency locked to the network clock.

Input

FSY / SCK signals are configured as inputs and are driven from outside the INIC. Use RMCK, frequency locked to the network clock, as reference for clock generation.

OutputPhaseLocked

INIC drives the FSY / SCK signals as outputs, phase- and frequency locked to the network clock.

Output1SCK 1,2

INIC drives a 1-bit FSY signal as output. This feature is typically used with devices that have no edge detection.

Output1SCKPhaseLocked 1,2

INIC drives a 1-bit FSY signal as output, phase locked to the network clock. This feature is typically used with devices that have no edge detection.

Note 1: Only available for Port A Clock Data Delay and Port B Clock Data Delay modes Delayed and BitDelayedOnly .

2: Only supported with TDM formats.

Port A Clock Data Delay

Indicates if there should be a single clock cycle delay between the start of frame and the start of the frame data.

Mnemonic

Description

NonDelayed

Data is not delayed by a single SCK clock delay.

Delayed

There is a single SCK clock delay between the start of frame (falling edge of FSY ) and the start of the frame data on the data pins.

BitDelayedOnly

There is a single SCK clock delay between the start of frame (rising edge of FSY ) and the start of the frame data on the data pins.

Port B Operation Mode

Defines the operation mode of Streaming Port B

Mnemonic

Description

Generic

If Index is PortB , data pins are linked to PortA clock configuration.

Port B Option

Defines the direction of the physical data pins of Streaming Port B

Mnemonic

Description

InOut

Two serial interface pins are available; one for direction IN (Streaming Port A: SRA0, Streaming Port B: SRB0) and one for direction OUT (Streaming Port A: SXA1, Streaming Port B: SXB1).

DualIn

Two serial interface pins are available for direction IN.

DualOut

Two serial interface pins are available for direction OUT.

Port B Clock Mode

Defines the clock generation mode for Streaming Port B.

Note: This property is chip-specific.
For details refer to Chip_StreamBClockMode.

Mnemonic

Description

Output

INIC drives the FSY / SCK signals as outputs, frequency locked to the network clock.

Input

FSY / SCK signals are configured as inputs and are driven from outside the INIC. Use RMCK, frequency locked to the network clock, as reference for clock generation.

OutputPhaseLocked

INIC drives the FSY / SCK signals as outputs, phase- and frequency locked to the network clock.

Output1SCK 1,2

INIC drives a 1-bit FSY signal as output. This feature is typically used with devices that have no edge detection.

Output1SCKPhaseLocked 1,2

INIC drives a 1-bit FSY signal as output, phase locked to the network clock. This feature is typically used with devices that have no edge detection.

Wildcard

The FSY / SCK signals of Streaming Port A are linked to Streaming Port B.

Note 1: Only available for Port A Clock Data Delay and Port B Clock Data Delay modes Delayed and BitDelayedOnly .

2: Only supported with TDM formats.

Port B Clock Data Delay

Indicates if there should be a single clock cycle delay between the start of frame and the start of the frame data.

Note: This property is chip-specific.
For details refer to Chip_StreamBClockDataDelay.

Mnemonic

Description

NonDelayed

Data is not delayed by a single SCK clock delay.

Delayed

There is a single SCK clock delay between the start of frame (falling edge of FSY ) and the start of the frame data on the data pins.

BitDelayedOnly

There is a single SCK clock delay between the start of frame (rising edge of FSY ) and the start of the frame data on the data pins.

Wildcard

The FSY / SCK signals of Streaming Port A are linked to Streaming Port B.

 

Streaming Port A
Port A Create

Creates the Streaming Port A of the device

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below.

Port A Clock Config

Defines the clock speed configuration of the SCK signal

Mnemonic

Description

64Fs

64 x Fs

128Fs

128 x Fs

256Fs

256 x Fs

512Fs

512 x Fs

Port A Data Alignment

Defines the alignment of the data bytes within the Streaming Port frame

Mnemonic

Description

Left16Bit

Left-justified, 16 bit, legacy

Left24Bit

Left-justified, 24 bit, legacy

Right16Bit

Right-justified, 16 bit, legacy

Right24Bit

Right-justified, 24 bit, legacy

Sequential

Sequential

TDM16Bit

TDM, 16 bit

TDM24Bit

TDM, 24 bit

 

Streaming Port B
Port B Create

Creates the Streaming Port B of the device

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below.

Port B Clock Config

Defines the clock speed configuration of the SCK signal.

Note: This property is chip-specific.
For details refer to Chip_StreamBClockConfig.

Mnemonic

Description

64Fs

64 x Fs

128Fs

128 x Fs

256Fs

256 x Fs

512Fs

512 x Fs

Wildcard

Streaming Port B is linked to Streaming Port A

Port B Data Alignment

Defines the alignment of the data bytes within the Streaming Port frame

Mnemonic

Description

Left16Bit

Left-justified, 16 bit, legacy

Left24Bit

Left-justified, 24 bit, legacy

Right16Bit

Right-justified, 16 bit, legacy

Right24Bit

Right-justified, 24 bit, legacy

Sequential

Sequential

TDM16Bit

TDM, 16 bit

TDM24Bit

TDM, 24 bit

 

RMCK Port
Port Create

Creates the RMCK Port of the device

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below.

Divisor

Determines the output frequency for the RMCK pin

Exp.

Valid Values

Step

Unit

ClockSource is NetworkSystem (3072Fs)

0

0x0002...0x0FFF

1

None

0x1000...0x1FFE

2

 

 

Packet Connection

Note: Availability of resource objects is chip-specific, see Section 2.2 .

Driver Control Interface Access

Enables or disables the driver control interface access of the packet connection. Driver control interface access is only possible over a MediaLB Port or an SPI Port if Chip_SPINativeDCIAccess is not supported.

Mnemonic

Description

Disabled

Disables driver control interface access

Enabled

Enables driver control interface access

Reduced Transmission Buffer

Enables or disables the functionality for reduction of standard routing memory space used for packet transmission.

Note: This property is chip-specific.
For details refer to Chip_StandardRoutingMemory.

Mnemonic

Description

Disabled

Standard routing memory space for packet transmission is not reduced.

Enabled

Reduces the standard routing memory space needed for packet transmission, to free-up more space for other connections that utilize the standard routing memory, e.g. AVPacketized.

Port Select

Defines the physical port used for the packet connection.

Note: This property is chip-specific.
For details refer to Port Information.

Mnemonic

Description

None

No packet connection activated

MediaLB

Packet connection uses the MediaLB Port and provides the ability for further property settings, see below.

USB

Packet connection uses the USB Port.

SPI

Packet connection uses the SPI Port.

MediaLB-related settings are as follows:

Multiplexing

Enables or disables the MediaLB packet multiplexing feature

Mnemonic

Description

Disabled

Disables packet multiplexing

Enabled

Enables packet multiplexing

 
Note: When packet multiplexing is enabled, the following conditions must be taken into account:

- The values for MediaLB Input Bandwidth and MediaLB Output Bandwidth must be the same.

- The MediaLB Input Bandwidth and the MediaLB Output Bandwidth must be each at least 12 bytes in size.

- The difference between the MediaLB Input Address and the MediaLB Output Address must be 2 (e.g., 0x0006 and 0x0008).

 
MediaLB Input Address

Sets the MediaLB Input address of the packet. The setting of this property is dependent on the selected Port Speed.

Note: Address values must always differ from each other, regardless of the direction ( Input / Output ) and the connection type (packet connection or IPC packet connection).
 

Exp.

Valid Values

Step

Unit

0

0x0006...Chip_MaxMediaLBInOutAddress

2

None

MediaLB Input Bandwidth

Determines the number of bytes reserved for a packet connection of direction Input. The setting of this property is dependent on the selected Port Speed.

Note: The available bandwidth on MediaLB is shared between the number of bytes used for:

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in a packet connection,

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in an IPC packet connection,

- Configuration Interface and Application Interface (each PMP channel requires 4 bytes if MediaLB is selected).

 

Exp.

Valid Values

Step

Unit

0

4...856

4

Byte

MediaLB Output Address

Sets the MediaLB Output address of the packet. The setting of this property is dependent on the selected Port Speed.

Note: Address values must always differ from each other, regardless of the direction ( Input / Output ) and the connection type (packet connection or IPC packet connection).
 

Exp.

Valid Values

Step

Unit

0

0x0006...Chip_MaxMediaLBInOutAddress

2

None

MediaLB Output Bandwidth

Determines the number of bytes reserved for a packet connection of direction Output. The setting of this property is dependent on the selected Port Speed.

Note: The available bandwidth on MediaLB is shared between the number of bytes used for:

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in a packet connection,

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in an IPC packet connection,

- Configuration Interface and Application Interface (each PMP channel requires 4 bytes if MediaLB is selected).

 

Exp.

Valid Values

Step

Unit

0

4...856

4

Byte

 

IPC Packet Connection

Note: This functionality is chip-specific.
For details refer to Chip_IPCPacket .

Port Create

Creates the IPC Port of the device

Mnemonic

Description

NotCreatedAtStartup

At chip startup the port is not created. If the port is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the port is created with further property settings, see below.

MediaLB Input Address

Sets the MediaLB Input address of the IPC packet connection. The setting of this property is dependent on the selected Port Speed.

Note: Address values must always differ from each other, regardless of the direction ( Input / Output ) and the connection type (packet connection or IPC packet connection).
 

Exp.

Valid Values

Step

Unit

0

0x0006...0x003E

2

None

MediaLB Input Bandwidth

Determines the number of bytes reserved for an IPC packet connection of direction Input . The setting of this property is dependent on the selected Port Speed.

Note: The available bandwidth on MediaLB is shared between the number of bytes used for:

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in a packet connection,

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in an IPC packet connection,

- Configuration Interface and Application Interface (each PMP channel requires 4 bytes if MediaLB is selected).

 

Exp.

Valid Values

Step

Unit

0

4...124

4

Byte

MediaLB Output Address

Sets the MediaLB Output address of the IPC packet connection. The setting of this property is dependent on the selected Port Speed.

Note: Address values must always differ from each other, regardless of the direction ( Input / Output ) and the connection type (packet connection or IPC packet connection).
 

Exp.

Valid Values

Step

Unit

0

0x0006...0x003E

2

None

MediaLB Output Bandwidth

Determines the number of bytes reserved for an IPC packet connection of direction Output .The setting of this property is dependent on the selected Port Speed.

Note: The available bandwidth on MediaLB is shared between the number of bytes used for:

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in a packet connection,

- MediaLB Input Bandwidth and MediaLB Output Bandwidth used in an IPC packet connection,

- Configuration Interface and Application Interface (each PMP channel requires 4 bytes if MediaLB is selected).

 

Exp.

Valid Values

Step

Unit

0

4...124

4

Byte

 

User-Defined Version
Major Version

Defines the major version number of the configuration string

Exp.

Valid Values

Step

Unit

0

Full range

1

None

Minor Version

Defines the minor version number of the configuration string

Exp.

Valid Values

Step

Unit

0

Full range

1

None

Release Version

Defines the release version number of the configuration string

Exp.

Valid Values

Step

Unit

0

Full range

1

None

 

Build Configuration 0-3
Create

Builds configuration entry 0-3.

Mnemonic

Description

NotCreatedAtStartup

At chip startup the configuration entry is not created. If the configuration entry is required, it can be created and configured per FBlock INIC API command.

CreatedAtStartup

At chip startup the configuration entry is created with further property settings, see below.

Type

Defines the type of connection for this configuration entry

Mnemonic

Description

StreamPortA_To_Network

Streaming Port A is connected to the Network Port.

Network_To_StreamPortA

The Network Port is connected to Streaming Port A.

StreamPortB_To_Network

Streaming Port B is connected to the Network Port.

Network_To_StreamPortB

The Network Port is connected to Streaming Port B.

Auto-Build Trigger

Defines the event on which the automatic building of the configured resources is triggered. Building of the configuration can always be triggered by FBlock INIC API command, see Section 23.2.12.6 .

Mnemonic

Description

Disabled

Automatic building is disabled.

NetworkAvailable

Building of the configuration is triggered by Network Port availability, signaled through Availability.

NetworkFallback

Building of the configuration is triggered by network fallback.

Bandwidth

Defines the socket bandwidth

Exp.

Valid Values

Description

Step

Unit

DataType = Sync

0

2

When used with 64Fs (0x03) or higher, and Left16Bit or Right16Bit data alignment, this size corresponds to a mono 16-bit channel that will be routed as left channel data.

1

Byte

3

When used with 64Fs (0x03) or higher, and Left24Bit or Right24Bit data alignment, this size corresponds to a mono 24-bit channel that will be routed as left channel data.

4

When used with 64Fs (0x03) or higher, and Left16Bit or Right16Bit data alignment, this size corresponds to a stereo 16-bit channel.

6

When used with 64Fs (0x03) or higher, and Left24Bit or Right24Bit data alignment, this size corresponds to a stereo 24-bit channel.

1...8

When used with 128Fs (0x04) and TDM16Bit data alignment.

1...12

When used with 128Fs (0x04) and TDM24Bit data alignment.

0

1...16

When used with 256Fs (0x05) and TDM16Bit data alignment.

1

Byte

1...24

When used with 256Fs (0x05) and TDM24Bit data alignment.

1...32

When used with 512Fs (0x06) and TDM16Bit data alignment, this size corresponds to a stereo 16-bit channel.

1...48

When used with 512Fs (0x06) and TDM24Bit data alignment, this size corresponds to a stereo 24-bit channel.

1...8

Variable size when used with 64Fs (0x03) and sequential data alignment.

1...16

Variable size when used with 128Fs (0x04) and sequential data alignment.

1...32

Variable size when used with 256Fs (0x05) and sequential data alignment.

1...64

Variable size when used with 512Fs (0x06) and sequential data alignment.

Network Connection Label

LSB of the static network connection label. The connection label is used to connect to the appropriate network frame bytes. 0x0F is the default value.

Exp.

Valid Values

Step

Unit

0

0x0C...0x7F

1

None

0x0F

Stream Port Pin ID

ID of the serial interface pin of the addressed Streaming Port instance to which the socket should be attached

Mnemonic

Description

SRXA0

PortA , pin 0

SRXA1

PortA , pin 1

SRXB0

PortB , pin 0

SRXB1

PortB , pin 1

Default Values

Note: Availability of resource objects is chip-specific, see Section 2.2 .

The properties and their associated default values are as follows:

Table 24-3: Configuration String – Properties and Default Values

Device Management

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Default Instance ID

0x01

Diag ID

0x0000

MUTE Pin Configuration

Disabled

Configuration Interface

I 2 C

USB

None

Application Interface

Power Management

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Interface

Standard

Power Controller I2C Address

N/A

8

Monitoring

Enabled

Disabled

Action On U_Low

None

Action On STP

Auto Forced Not Available Time

65535 ms

Packet Bandwidth

52

Proxy Channel Bandwidth

0

Power Off Time

65535 s

Network Management

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Control Message Low Level Retry Block Count

10

Node Discovery

Disabled

Enabled

Fallback Mode

N/A

None

Auto-Tx-Off Time

N/A

0

Network Port

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port Mode

Used

Transceiver Mode

DefinedByPackage

Network Port 1

Property

Default Values

OS81118/9 1

OS81210

OS81212/4/6

Port Mode

Used

N/A

Transceiver Mode

DefinedByPackage

I2C Port

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port Create

CreatedAtStartup

NotCreatedAtStartup

Port Address

0x20

I2C Soft Port

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port Create

N/A

NotCreatedAtStartup

MediaLB Port

Property

Default Values

OS81118/9

OS81210

OS81212/4/6 3

Port Create

NotCreatedAtStartup

Port Speed

1024Fs

256Fs

USB Port

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port Create

NotCreatedAtStartup

CreatedAtStartup

N/A

Physical Layer

Standard

Control Interface

Enabled

Packet Interface

Disabled

Enabled

IPC Packet Interface

N/A

Disabled

Streaming Interface

Enabled

OUT Endpoint Count for Streaming Interface

2

5

IN Endpoint Count for Streaming Interface

2

5

SPI Port

Property

Default Values

OS81118/9

OS81210

OS81212/4/6 2

Port Create

NotCreatedAtStartup

Clock Mode

SCLKLowSFCR

Streaming Port Base Configuration

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Base Configuration Load

NotLoadedAtStartup

Port A Option

InOut

Port A Operation Mode

Generic

Port A Clock Mode

Output

Port A Clock Data Delay

Delayed

Port B Option

InOut

Port B Operation Mode

Generic

Port B Clock Mode

Wildcard

Port B Clock Data Delay

Streaming Port A

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port A Create

NotCreatedAtStartup

Port A Clock Config

64Fs

Port A Data Alignment

Left16Bit

Streaming Port B

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port B Create

NotCreatedAtStartup

Port B Clock Config

Wildcard 2, 3

Port B Data Alignment

Left16Bit

RMCK Port

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port Create

NotCreatedAtStartup

Divisor

48

Packet Connection

Property

Default Values

OS81118/9

OS81210

OS81212/4/6 2

Driver Control Interface Access

Disabled

Reduced Transmission Buffer

Disabled 3

Port Select

None

USB

None

Multiplexing

Disabled 3

MediaLB Input Address

0x0008 3

MediaLB Input Bandwidth

4 3

MediaLB Output Address

0x0006 3

MediaLB Output Bandwidth

4 3

IPC Packet Connection

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Port Create

N/A

NotCreatedAtStartup

N/A

MediaLB Input Address

0x000C

MediaLB Input Bandwidth

4

MediaLB Output Address

0x000A

MediaLB Output Bandwidth

4

User-Defined Version

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Major Version

0x00

Minor Version

0x00

Release Version

0x00

Build Configuration 0-3

Property

Default Values

OS81118/9

OS81210

OS81212/4/6

Create

NotCreatedAtStartup

Type

StreamPortA_To_Network

Auto-Build Trigger

Disabled

Bandwidth

4

Network Connection Label

0x0F

Stream Port Pin ID

SRXA0

Note 1: For OS81118, the default values are N/A.

2: For OS81216, the default values are N/A.

3: For OS81214, the default values are N/A.

Identification String

The identification string includes values to be used for unambiguous device identification. Reprogramming the string is done during device installation.

The mechanism of image selection and how the string is loaded from it is described in Figure 24-1 .

Properties

This section lists the properties of the identification string. For each property a general description is given that explains the intended use of the property. The default value associated to every property is given in Table 24-4 .

Node Address

Defines the logical address of the device

Exp.

Valid Values

Step

Unit

0

0x0100...0x013F

1

None

0x0010...0x00FF,

0x0140...0x02FF,

0x0500...0x0EFF

0xFFFF

Group Address

Defines the second group address of the device

Exp.

Valid Values

Step

Unit

0

0x0300...0x03FF

1

None

Packet EUI-48 Bits 47:32

Defines bits 47:32 of the EUI-48

Exp.

Valid Values

Step

Unit

0

Full range

1

None

Packet EUI-48 Bits 31:16

Defines bits 31:16 of the EUI-48

Exp.

Valid Values

Step

Unit

0

Full range

1

None

Packet EUI-48 Bits 15:0

Defines bits 15:0 of the EUI-48

Exp.

Valid Values

Step

Unit

0

Full range

1

None

 

Default Values

The properties and their associated default values are as follows:

Table 24-4: Identification String – Properties and Default Values

Property

Default Value

Node Address

0xFFFF

Group Address

0x03C8

Packet EUI-48 Bits 47:32

0x0000

Packet EUI-48 Bits 31:16

0x0000

Packet EUI-48 Bits 15:0

0x0000

 

Patch String

The patch string includes firmware patches and is solely used by ROM devices. This string is only programmed if firmware patches need to be applied.

The mechanism of image selection and how the string is loaded from it is described in Figure 24-3 .

Figure 24-2: Mechanism for Loading a PATCHS from an Image
 

The patch string is structured in a way that it can be overwritten in the standard image without causing a write error. New patch strings always can be applied by writing them to the standard image.

Compared to other configuration data, a patch string incorporates no overall CRC that renders the entire string to be invalid. Each firmware patch that is included in the patch string is protected by its own CRC. If any firmware patch is invalid, the remaining valid firmware patches in the patch string will be loaded. This is why a patch string is loaded from a memory image in any case, although an error was detected. To indicate that the patch string contains erroneous firmware patches, a BIST Error is reported by command INIC.DeviceStatus() .

Diagnosis via Debug Message

Diagnosis via Debug Message

The INIC provides diagnosis functionality via debug message. The message is used to send debug events, generated by the INIC and sent to the network. This allows a standard analysis tool such as the OptoLyzer MOCCA Bundle 150o/c [9] to log on these events.

Debug messages are always sent to debug address 0x0FF0; no retries are performed.

FBlock DebugMessages

The FBlock DebugMessages is not included in the central registry. The InstID of the FBlock is equal to the node position of the device that implements the FBlock.
The function that provides the debug events is called NIC_DebugMessage() , see Section 23.3.1 . Debug events are categorized to signal different debug levels, which are error and warning. The function cannot be adjusted; it always includes errors and warnings. Requests to this function are not supported.

 

Control Message Retry Failed

The INIC provides a mechanism to indicate that the final control message retry has failed. In this case, the control message is sent to debug address 0x0FF0 instead to the original target address.

Note: This mechanism applies to every control message sent to the network.
Resource Overview

Note: Availability of resource objects is chip-specific, see Section 2.2 .

Table A-1 gives an overview on the resources required for control and packet data connections. Apart from the resources taken from the object tables, no additional resources are required.

Resource Overview – Control and Packet data Types

Data Type

Connections

Resource Object Tables

Combiner

Splitter

Socket

Connection

Transceiver

Control Connection

Packet Connection

Control

Network (Remote Controlled)

 

 

1

 

 

1

 

Network <-> I 2 C

 

 

1

 

 

1

 

Network <-> Transceiver <-> MediaLB/USB/SPI

 

 

3

 

1

1

 

Network <-> I 2 C + Network <-> Transceiver <-> MediaLB/USB/SPI

 

 

3

 

1

1

 

Packet

Network <-> MediaLB/USB/SPI

 

 

3

 

 

 

1

Note 1: PMP channel resources used by Control and Packet connections are not listed, since they are statically created.

Table A-2 gives an overview on the resources required for the other data type connections.

Resource Overview – Other Data Types

Data Type

Connections

Resource Object Tables

Routing Channels

Standard Routing Memory

Aggregation Routing Memory

Combiner

Splitter

Socket

Connection

Transceiver

Control Connection

Packet Connection

Synchronous

Isochronous

Synchronous

Isochronous

Synchronous/
Isochronous

QoSPacket

Network <-> MediaLB

 

 

2

1

 

 

 

 

1

 

X

 

Sync

Network <-> MediaLB/Streaming

 

 

2

1

 

 

 

1

 

X

 

 

Network <-> USB

 

 

2

1

 

 

 

1

 

X

 

X

Network -> Combiner (MediaLB/Streaming Port)

1

 

1 + n 1

n 1

 

 

 

1 + n 1

 

X

 

 

Network -> Combiner (USB)

1

 

1 + n 1

n 1

 

 

 

1 + n 1

 

X

 

X

Splitter (MediaLB/Streaming Port) -> Network

 

1

1 + n 1

n 1

 

 

 

1

 

X

 

 

Splitter (USB) -> Network

 

1

1 + n 1

n 1

 

 

 

1

 

X

 

X

Splitter (Network) -> MediaLB/Streaming Port

 

1

1 + n 1

n 1

 

 

 

1 + n 1

 

X

 

 

Splitter (Network) -> USB

 

1

1 + n 1

n 1

 

 

 

1 + n 1

 

X

 

X

AVPacketized

Network <-> MediaLB

 

 

2

1

 

 

 

 

1

 

X

 

Network <-> USB

 

 

2

1

 

 

 

 

1

 

X

X

DiscFramePhase

Network <-> MediaLB

 

 

2

1

 

 

 

 

1

 

X

 

IPCPacket

MediaLB <-> USB

 

 

2

1

 

 

 

 

 

 

 

X

Note 1: Depends on configuration. If for example two network -> combiner connections are created, n must be 2. This applies also to all connections in which a splitter is involved.

 

Document Revision History
Revision D (September, 2018)

 

Revision C (August, 2018)

Removed document’s confidential ranking

 

Revision B (July, 2017)
Revision A (February, 2017)

This is the initial release of this document.

Note, this specification document replaces the previously released INIC User’s Guide versions UG_OS81118_60001292G.pdf and UG_OS81119_60001322D.pdf.

Conventions and Abbreviations
Conventions
 

Examples

Description

 

Boot monitor command

 

Contains UML key word (loop, opt (option))

-

Bits marked with a minus (-) are “don’t care”. They are not interpreted neither by INIC nor by EHC.

[ ]

Array

Bit

Bit name

[ Parameter ]

Optional parameter

{ Parameter }

Omitted or repeated parameter(s) (i.e., zero, one or more parameters repeated)

0xzzz

Hexadecimal number (value zzz)

BITS[m:n]

Groups of bits (or pins) from m to n, inclusive

Chip-specific information

Indicates chip-specific information

Chip_Variable

Reference to a chip-specific variable

Exp.

Exponent

Mnemonic

Name of a Mnemonic

n/a

Not available

opt

Optional (gray, used in graphics to indicate optional communication)

Parameter

Reference to an FBlock parameter

PIN

Pin Name

Property

Reference to a configuration property

R

Read. A register or bit with this attribute can be read.

ref

Reference (used in graphics to indicate referenced communication)

Reserved/rsvd/-

Reserved memory location. Must write 0, read value indeterminate

Rx

Messages received by INIC coming from network or EHC

Tx

Messages sent from INIC to network or EHC

 

VAL

Over-bar indicates active low pin or register bit

W

Write: A register or bit with this attribute can be written.

x

Don’t care

x...y

Range from x to y, inclusive

Abbreviations
 

Abbreviation

Definition

BIST

Built-in self-test

CFGS

Configuration string

DI2C

Debug I 2 C

DCI

Driver Control Interface

DUT

Device Under Test

EHC

External Host Controller

EUI

Extended Unique Identifier

FBlock

Function Block

FPH

FIFO Protocol Header

GPIO

General Purpose Input/Output

HSIC

High-Speed Inter-Chip

ICM

INIC Control Message

IDENTS

Identification string

I 2 C

Inter-Integrated Circuit

INIC

Intelligent Network Interface Controller

IP

Internet Protocol

IPC

Inter-Processor Communication

LLR

Low-Level Retry

LLRBC

Low-Level Retry Block Count

LSB

Least Significant Bit

LVDS

Low Voltage Differential Signaling

MAC

Media Access Control

MCM

MOST Control Message

MDP

MOST Data Packet (16-bit addressing mode)

MediaLB

Media Local Bus

MEP

MOST Ethernet Packet (48-bit addressing mode)

NCE

Network Change Event

NWM

NetworkMaster

ONTF

DCI Outbound Notification Flag

OUI

Organizationally Unique Identifier

PATCHS

Patch string

PD

Primary Device

PDM

Pulse-Density Modulation

PhLSTT

Physical Layer Stress Test Tool

PM

Port Message

PMHL

Port Message Header Length

PML

Port Message Length

PMP

Port Message Protocol

POR

Power-on-Reset

QoS

Quality of Service

RBD

Ring Break Diagnosis

RCM

Remote Control Message

RMCK

Recovered Master Clock

SD

Secondary Device

SoF

Start-of-Frame

SPI

Serial Peripheral Interface

TDM

Time-Division Multiplexing

USB

Universal Serial Bus

UTP

Unshielded twisted pair

ZLP

Zero-length packet

 

Recommended Reading
FunctionBlock NetBlock, Rev. 3.0.3, MOST Cooperation
Go to: http://www.mostcooperation.com.
Port Message Protocol V2.0.1 Specification
INIC Hardware Data Sheet
USB 2.0 Specification
Go to: http://www.usb.org/developers/docs/ .
Function Block Library, MOST Cooperation
NetServices User Manual, Version 3.2.x
INIC Explorer Interface Box
I 2 C-bus specification
OptoLyzer MOCCA Bundle 150o/c
Go to: www .k2l.de .
MPM85000
MOST150 Limited Physical Layer Compliance Specification
FBlock EnhancedTestability, Rev. 3.0.3, MOST Cooperation
Microchip Automotive Target Manager
Device Update Process User’s Guide
MOST Network Data Link Layer Specification
API Functions in Alphabetical Order

FBlock DebugMessages

NIC_DebugMessage, FktID = 0x001 287

FBlock ExtendedNetworkControl

AliveMessage, FktID = 0x204 301

CableLinkDiagnosis, FktID = 0x211 304

EnablePort, FktID = 0x210 303

EnableTx, FktID = 0x223 313

Hello, FktID = 0x200 291

Init, FktID = 0x203 300

MemoryRead, FktID = 0x302 316

MemorySessionClose, FktID = 0x301 315

MemorySessionOpen, FktID = 0x302 314

MemoryWrite, FktID = 0x303 318

PhysicalLayerTest, FktID = 0x220 306

PhysicalLayerTestResult, FktID = 0x221 308

ReverseRequest, FktID = 0x222 309

Signature, FktID = 0x202 299

Welcome, FktID = 0x201 295

FBlock INIC

AVPacketizedCreate, FktID = 0x861 273

CombinerCreate, FktID = 0x901 283

DeviceAttach, FktID = 0x223 160

DeviceInfo, FktID = 0x225 162

DevicePowerOff, FktID = 0x222 159

DeviceStatus, FktID = 0x220 155

DeviceSync, FktID = 0x224 161

DeviceVersion, FktID = 0x221 157

DiscFramePhaseCreate, FktID = 0x881 280

GPIOPortCreate, FktID = 0x701 240

GPIOPortPinMode, FktID = 0x703 241

GPIOPortPinState, FktID = 0x704 243

GPIOPortTriggerEvent, FktID = 0x705 245

I2CPortCreate, FktID = 0x6C1 229

I2CPortRead, FktID = 0x6C3 233

I2CPortReadExtended, FktID = 0x6C5 237

I2CPortWrite, FktID = 0x6C4 235

I2CSoftPortCreate, FktID = 0x6C2 231

IPCPacketCreate, FktID = 0x891 270

MediaLBPacketMuxSocketCreate, FktID = 0x632 202

MediaLBPortCreate, FktID = 0x621 197

MediaLBSocketCreate, FktID = 0x631 199

NetworkConfiguration, FktID = 0x521 167

NetworkDiagnosisFullDuplex, FktID = 0x52C 181

NetworkDiagnosisFullDuplexEnd, FktID = 0x52D 182

NetworkDiagnosisHalfDuplex, FktID = 0x52E 183

NetworkDiagnosisHalfDuplexEnd, FktID = 0x52F 184

NetworkFallback, FktID = 0x530 185

NetworkFallbackEnd, FktID = 0x531 186

NetworkForceNotAvailable, FktID = 0x52B 180

NetworkFrameCounter, FktID = 0x523 171

NetworkInfo, FktID = 0x532 187

NetworkPortStatus, FktID = 0x602 190

NetworkPortUsed, FktID = 0x603 192

NetworkRBD, FktID = 0x526 175

NetworkRBDResult, FktID = 0x527 176

NetworkShutdown, FktID = 0x525 174

NetworkSocketCreate, FktID = 0x611 193

NetworkStartup, FktID = 0x524 172

NetworkStartupExt, FktID = 0x528 178

NetworkStatus, FktID = 0x520 164

Notification, FktID = 0x001 152

PacketAttachSockets, FktID = 0x843 265

PacketDetachSockets, FktID = 0x844 267

QoSPacketCreate, FktID = 0x851 268

ResourceBuilder, FktID = 0x805 254

ResourceDestroy, FktID = 0x800 248

ResourceInfo, FktID = 0x807 256

ResourceInvalidList, FktID = 0x801 250

ResourceList, FktID = 0x806 255

ResourceMonitor, FktID = 0x802 251

ResourceMonitorConfiguration, FktID = 0x803 252

ResourceTag, FktID = 0x804 253

RMCKPortCreate, FktID = 0x6A1 226

SPIPortCreate, FktID = 0x641 204

SPISocketCreate, FktID = 0x651 206

SplitterCreate, FktID = 0x911 285

StreamPortConfiguration, FktID = 0x680 216

StreamPortCreate, FktID = 0x681 219

StreamPortLoopback, FktID = 0x683 221

StreamSocketCreate, FktID = 0x691 223

SyncCreate, FktID = 0x871 275

SyncMute, FktID = 0x873 278

SyncUnmute, FktID = 0x874 279

USBPortCreate, FktID = 0x661 209

USBSocketCreate, FktID = 0x671 212

FBlock NetBlock

EUI48, FktID = 0x013 149

FBlockIDs, FktID = 0x000 143

GroupAddress, FktID = 0x004 146

MOSTVersionInfo, FktID = 0x014 150

NodeAddress, FktID = 0x003 145

NodePositionAddress, FktID = 0x002 144

RBDResult, FktID = 0x405 151

RetryParameters, FktID = 0x007 148

ShutDown, FktID = 0x006 147

API Functions in Numerical Order

FBlock DebugMessages

FktID = 0x001, NIC_DebugMessage 287

FBlock ExtendedNetworkControl

FktID = 0x200, Hello 291

FktID = 0x201, Welcome 295

FktID = 0x202, Signature 299

FktID = 0x203, Init 300

FktID = 0x204, AliveMessage 301

FktID = 0x210, EnablePort 303

FktID = 0x211, CableLinkDiagnosis 304

FktID = 0x220, PhysicalLayerTest 306

FktID = 0x221, PhysicalLayerTestResult 308

FktID = 0x222, ReverseRequest 309

FktID = 0x223, EnableTx 313

FktID = 0x300, MemorySessionOpen 314

FktID = 0x301, MemorySessionClose 315

FktID = 0x302, MemoryRead 316

FktID = 0x303, MemoryWrite 318

FBlock INIC

FktID = 0x001, Notification 152

FktID = 0x220, DeviceStatus 155

FktID = 0x221, DeviceVersion 157

FktID = 0x222, DevicePowerOff 159

FktID = 0x223, DeviceAttach 160

FktID = 0x224, DeviceSync 161

FktID = 0x225, DeviceInfo 162

FktID = 0x520, NetworkStatus 164

FktID = 0x521, NetworkConfiguration 167

FktID = 0x523, NetworkFrameCounter 171

FktID = 0x524, NetworkStartup 172

FktID = 0x525, NetworkShutdown 174

FktID = 0x526, NetworkRBD 175

FktID = 0x527, NetworkRBDResult 176

FktID = 0x528, NetworkStartupExt 178

FktID = 0x52B, NetworkForceNotAvailable 180

FktID = 0x52C, NetworkDiagnosisFullDuplex 181

FktID = 0x52D, NetworkDiagnosisFullDuplexEnd 182

FktID = 0x52E, NetworkDiagnosisHalfDuplex 183

FktID = 0x52F, NetworkDiagnosisHalfDuplexEnd 184

FktID = 0x530, NetworkFallback 185

FktID = 0x531, NetworkFallbackEnd 186

FktID = 0x532, NetworkInfo 187

FktID = 0x602, NetworkPortStatus 190

FktID = 0x603, NetworkPortUsed 192

FktID = 0x611, NetworkSocketCreate 193

FktID = 0x621, MediaLBPortCreate 197

FktID = 0x631, MediaLBSocketCreate 199

FktID = 0x632, MediaLBPacketMuxSocketCreate 202

FktID = 0x641, SPIPortCreate 204

FktID = 0x651, SPISocketCreate 206

FktID = 0x661, USBPortCreate 209

FktID = 0x671, USBSocketCreate 212

FktID = 0x680, StreamPortConfiguration 216

FktID = 0x681, StreamPortCreate 219

FktID = 0x683, StreamPortLoopback 221

FktID = 0x691, StreamSocketCreate 223

FktID = 0x6A1, RMCKPortCreate 226

FktID = 0x6C1, I2CPortCreate 229

FktID = 0x6C2, I2CSoftPortCreate 231

FktID = 0x6C3, I2CPortRead 233

FktID = 0x6C4, I2CPortWrite 235

FktID = 0x6C5, I2CPortReadExtended 237

FktID = 0x701, GPIOPortCreate 240

FktID = 0x703, GPIOPortPinMode 241

FktID = 0x704, GPIOPortPinState 243

FktID = 0x705, GPIOPortTriggerEvent 245

FktID = 0x800, ResourceDestroy 248

FktID = 0x801, ResourceInvalidList 250

FktID = 0x802, ResourceMonitor 251

FktID = 0x803, ResourceMonitorConfiguration 252

FktID = 0x804, ResourceTag 253

FktID = 0x805, ResourceBuilder 254

FktID = 0x806, ResourceList 255

FktID = 0x807, ResourceInfo 256

FktID = 0x843, PacketAttachSockets 265

FktID = 0x844, PacketDetachSockets 267

FktID = 0x851, QoSPacketCreate 268

FktID = 0x861, AVPacketizedCreate 273

FktID = 0x871, SyncCreate 275

FktID = 0x873, SyncMute 278

FktID = 0x874, SyncUnmute 279

FktID = 0x881, DiscFramePhaseCreate 280

FktID = 0x891, IPCPacketCreate 270

FktID = 0x901, CombinerCreate 283

FktID = 0x911, SplitterCreate 285

FBlock NetBlock

FktID = 0x000, FBlockIDs 143

FktID = 0x002, NodePositionAddress 144

FktID = 0x003, NodeAddress 145

FktID = 0x004, GroupAddress 146

FktID = 0x006, ShutDown 147

FktID = 0x007, RetryParameters 148

FktID = 0x013, EUI48 149

FktID = 0x014, MOSTVersionInfo 150

FktID = 0x405, RBDResult 151

List of Figures

Figure 3-1: Control Message Format 11

Figure 3-2: PMP Payload 11

Figure 3-3: Configuration Interface – EHC Controlled 14

Figure 3-4: Configuration Interface – Remote Controlled 16

Figure 3-5: Configuration Interface Modes 17

Figure 3-6: Steps to Reach Attached Mode 19

Figure 3-7: Remote Control Command Sequence 20

Figure 3-8: Application Interface 22

Figure 3-9: Application Interface Modes 24

Figure 4-1: Power States 31

Figure 4-2: Power State is U Normal 32

Figure 4-3: Power State is U Low 33

Figure 4-4: Power State is STP 34

Figure 4-5: Power State is U Critical 35

Figure 5-1: NetInterface State Diagram 36

Figure 5-2: Physical Layer Test Flow 44

Figure 7-1: Resource Handles 53

Figure 7-2: State Diagram of a Monitored Connection 57

Figure 7-3: EHC Implementation Proposal for Resource Handling without Muting 60

Figure 7-4: EHC Implementation Proposal for Resource Handling with Muting 61

Figure 7-5: Unlock with Temporarily Invalid Connection 62

Figure 7-6: Permanently Invalidated Connection 63

Figure 9-1: Packet Multiplexing 71

Figure 10-1: Synchronous Bulk Transaction with Padding 75

Figure 10-2: A/V Packetized Bulk Transaction with Padding 76

Figure 10-3: A/V Packetized Bulk Transaction without Padding 76

Figure 14-1: I²C Read/Write 92

Figure 14-2: I²C Write Burst Mode 93

Figure 14-3: I²C Repeated Start 93

Figure 15-1: Edge Sensitive Input 95

Figure 15-2: Level Sensitive Input 95

Figure 15-3: Sticky Input 96

Figure 16-1: Bulk Transaction with a Combiner 98

Figure 18-1: Control Connection 100

Figure 18-2: Control Low-Level Retries 101

Figure 19-1: Transceiver Connection 102

Figure 20-1: MDP Message Format 103

Figure 20-2: MEP Message Format 103

Figure 20-3: IPC Packet Message Format 103

Figure 20-4: Packet Connection 105

Figure 20-5: Read Register Command 108

Figure 20-6: DCI Trigger Message Format 108

Figure 20-7: QoS Connection 109

Figure 20-8: Inter-Processor Communication 112

Figure 21-1: Synchronous Connections 117

Figure 21-2: Combiner Connections 120

Figure 21-3: Splitter Connections 122

Figure 21-4: A/V Packetized Connections 125

Figure 21-5: DiscreteFrame Isochronous Streaming Phase Connections 129

Figure 22-1: Driver Control Interface 132

Figure 22-2: Event Processing Loop 140

Figure 22-3: Register Read Access 141

Figure 24-1: Mechanism for Loading a CFGS or IDENTS from an Image 324

Figure 24-2: Mechanism for Loading a PATCHS from an Image 349

List of Tables
Index
C

Chip_Bandwidth_MaxValue 3

Chip_CableLinkDiagnosis 8

Chip_ConfigurationInterface 7

Chip_DataType 3

Chip_ID 3

Chip_IPCPacket 5

Chip_MaxMediaLBInOutAddress 4

Chip_MediaLBPinModes 4

Chip_MUTEPinConfiguration 7

Chip_NetworkSpeedGrade 3

Chip_NumberOfMediaLBPorts 4

Chip_NumberOfNetworkPorts 4

Chip_NumberOfSPIPorts 5

Chip_NumberOfUSBPorts 5

Chip_NWDiagnosisFD 8

Chip_NWDiagnosisHD 8

Chip_NWFallback 8

Chip_PatchString 9

Chip_PhysicalLayer 3

Chip_PhysicalLayerTest 8

Chip_RBD 8

Chip_ReadMemID 9

Chip_RoutingChannels 4

Chip_SessionType 9

Chip_SPIDataType 5

Chip_SPINativeDCIAccess 5

Chip_StandardRoutingMemory 4

Chip_StreamAClockModeShapeSync 6

Chip_StreamBClockConfig 7

Chip_StreamBClockDataDelay 6

Chip_StreamBClockMode 6

Chip_StreamBClockModeShapeSync 6

Chip_StreamLoopback 6

Chip_USBCtrlEpInAddr 5

Chip_USBCtrlEpOutAddr 5

Chip_USBPktEpInAddr 5

Chip_USBPktEpOutAddr 5

Chip_USBProductID 5

Chip_USBProductName 5

Chip_USBStreamMaxEpCnt 5

Chip_WriteAddress 9

Chip_WriteMemID 9

Chip_WriteUnitLen 9

Combiner 53

Combiner Connections 120

Common Register 133

Configuration Descriptor 79

Configuration Interface 10, 27

Connection

A/V Packetized 125

Combiner 120

Control 100, 102

DiscreteFrame Isochronous Phase 129

Splitter 122

Synchronous 117

Control Channel 66

Control Connection 100, 102

Control Low-Level Retries 101

Control Message Format 11

AMERICAS
Corporate Office

2355 West Chandler Blvd.

Chandler, AZ 85224-6199

Tel: 480-792-7200

Fax: 480-792-7277

Technical Support:

http://www.microchip.com/support

Web Address:

www.microchip.com

Atlanta

Duluth, GA

Tel: 678-957-9614

Fax: 678-957-1455

Austin, TX

Tel: 512-257-3370

Boston

Westborough, MA

Tel: 774-760-0087

Fax: 774-760-0088

Chicago

Itasca, IL

Tel: 630-285-0071

Fax: 630-285-0075

Dallas

Addison, TX

Tel: 972-818-7423

Fax: 972-818-2924

Detroit

Novi, MI

Tel: 248-848-4000

Houston, TX

Tel: 281-894-5983

Indianapolis

Noblesville, IN

Tel: 317-773-8323

Fax: 317-773-5453

Tel: 317-536-2380

Los Angeles

Mission Viejo, CA

Tel: 949-462-9523

Fax: 949-462-9608

Tel: 951-273-7800

Raleigh, NC

Tel: 919-844-7510

New York, NY

Tel: 631-435-6000

San Jose, CA

Tel: 408-735-9110

Tel: 408-436-4270

Canada - Toronto

Tel: 905-695-1980

Fax: 905-695-2078

ASIA/PACIFIC
Australia - Sydney

Tel: 61-2-9868-6733

China - Beijing

Tel: 86-10-8569-7000

China - Chengdu

Tel: 86-28-8665-5511

China - Chongqing

Tel: 86-23-8980-9588

China - Dongguan

Tel: 86-769-8702-9880

China - Guangzhou

Tel: 86-20-8755-8029

China - Hangzhou

Tel: 86-571-8792-8115

China - Hong Kong SAR

Tel: 852-2943-5100

China - Nanjing

Tel: 86-25-8473-2460

China - Qingdao

Tel: 86-532-8502-7355

China - Shanghai

Tel: 86-21-3326-8000

China - Shenyang

Tel: 86-24-2334-2829

China - Shenzhen

Tel: 86-755-8864-2200

China - Suzhou

Tel: 86-186-6233-1526

China - Wuhan

Tel: 86-27-5980-5300

China - Xian

Tel: 86-29-8833-7252

China - Xiamen

Tel: 86-592-2388138

China - Zhuhai

Tel: 86-756-3210040

ASIA/PACIFIC
India - Bangalore

Tel: 91-80-3090-4444

India - New Delhi

Tel: 91-11-4160-8631

India - Pune

Tel: 91-20-4121-0141

Japan - Osaka

Tel: 81-6-6152-7160

Japan - Tokyo

Tel: 81-3-6880- 3770

Korea - Daegu

Tel: 82-53-744-4301

Korea - Seoul

Tel: 82-2-554-7200

Malaysia - Kuala Lumpur

Tel: 60-3-7651-7906

Malaysia - Penang

Tel: 60-4-227-8870

Philippines - Manila

Tel: 63-2-634-9065

Singapore

Tel: 65-6334-8870

Taiwan - Hsin Chu

Tel: 886-3-577-8366

Taiwan - Kaohsiung

Tel: 886-7-213-7830

Taiwan - Taipei

Tel: 886-2-2508-8600

Thailand - Bangkok

Tel: 66-2-694-1351

Vietnam - Ho Chi Minh

Tel: 84-28-5448-2100

EUROPE
Austria - Wels

Tel: 43-7242-2244-39

Fax: 43-7242-2244-393

Denmark - Copenhagen

Tel: 45-4450-2828

Fax: 45-4485-2829

Finland - Espoo

Tel: 358-9-4520-820

France - Paris

Tel: 33-1-69-53-63-20

Fax: 33-1-69-30-90-79

Germany - Garching

Tel: 49-8931-9700

Germany - Haan

Tel: 49-2129-3766400

Germany - Heilbronn

Tel: 49-7131-67-3636

Germany - Karlsruhe

Tel: 49-721-625370

Germany - Munich

Tel: 49-89-627-144-0

Fax: 49-89-627-144-44

Germany - Rosenheim

Tel: 49-8031-354-560

Israel - Ra’anana

Tel: 972-9-744-7705

Italy - Milan

Tel: 39-0331-742611

Fax: 39-0331-466781

Italy - Padova

Tel: 39-049-7625286

Netherlands - Drunen

Tel: 31-416-690399

Fax: 31-416-690340

Norway - Trondheim

Tel: 47- 7288-4388

Poland - Warsaw

Tel: 48-22-3325737

Romania - Bucharest

Tel: 40-21-407-87-50

Spain - Madrid

Tel: 34-91-708-08-90

Fax: 34-91-708-08-91

Sweden - Gothenberg

Tel: 46-31-704-60-40

Sweden - Stockholm

Tel: 46-8-5090-4654

UK - Wokingham

Tel: 44-118-921-5800

Fax: 44-118-921-5820


1. Only available for ClockDataDelay modes Delayed and BitDelayedOnly .

2. Only supported with TDM formats.