beautypg.com

Translate address, Interrupt acknowledge, Goto packet – Cirrus Logic CS1810xx User Manual

Page 29: Goto translation

background image

CobraNet Hardware User’s Manual

Host Management Interface (HMI)

DS651UM23

©

Copyright 2005 Cirrus Logic, Inc.

29

Version 2.3

7.4.1.1. Translate Address

Translate Address does not actually update the address pointers but initiates the
processing required to eventually move them. The host can accomplish other tasks,
including HMI Reads and Writes while the address translation is being processed. A
logical description of

Translate Address is given below. A contextual use of the Translate

Address operation is shown in the reference implementations. Refer also to

"HMI

Definitions" on page 33

and

"HMI Access Code" on page 34

.

void TranslateAddress(

long address )

{

int msgack = MSG_D;
MSG_A = ( address & 0xff0000 ) >> 16;
MSG_B = ( address & 0xff00 ) >> 8;
MSG_C = address & 0xff;
MSG_D = CVR_TRANSLATE_ADDRESS;
while( !( ( msgack ^ MSG_D ) & ( 1 << MSG_TOGGLE_BO ) ) );

}

7.4.1.2. Interrupt Acknowledge

Causes HACK to be de-asserted.

void InterruptAck( void )
{

int msgack = MSG_D;
MSG_D = CVR_INTERRUPT_ACK;
while( !( ( msgack ^ MSG_D ) & ( 1 << MSG_TOGGLE_BO ) ) );

}

7.4.1.3. Goto Packet

Moves HMI pointers to bridgeRxPktBuffer (write = 0) or bridgeTxPktBuffer (write = 1).

void GotoPacket(

bool write )

{

int msgack = MSG_D;
MSG_C = write ? MOP_GOTO_PACKET_TRANSMIT : MOP_GOTO_PACKET_RECEIVE;
MSG_D = CVR_MULTIPLEX_OP;
while( !( ( msgack ^ MSG_D ) & ( 1 << MSG_TOGGLE_BO ) ) );

}

7.4.1.4. Goto Translation

Moves HMI data pointers to the results of the most recently completed translate address
operation. The

write parameter dictates the operation of the HREQ signal and only needs

to be supplied for applications using hardware data handshaking via this signal.

void GotoTranslation(

bool write = 0 )

{

int msgack = MSG_D;
MSG_C = write ? MOP_GOTO_TRANSLATION_WRITE : MOP_GOTO_TRANSLATION_READ;
MSG_D = CVR_MULTIPLEX_OP;
while( !( ( msgack ^ MSG_D ) & ( 1 << MSG_TOGGLE_BO ) ) );

}

This manual is related to the following products: