// 1 Aug 2008

// Reference: STE10/100A Test Plan Revision 6

// At-Spex LMO Test Systems

// Co-Authors: James Perry/ Danny ONeill

// Overview of Test:

// 1.Apply power to the DUT.

// 2. Reset DUT.

// 3.Read PCI Configuration Header via PCI port.

// 4.Configure DUT via PCI port.

// 4.Set up receive and transmit descriptors.

// 5.Enable PHY and wrap Ethernet transactions for 10 Mbps.

// 6.Go to 2 and repeat for 100 Mbps.

//------

//Register Initialization

//Operation Register Data Description

//------

//Read CR2 0x0200xxA1

//Read CR32 0x2774104A

//Write CR5 0x80000000 Set up MBA.

//Read CR5 0x80000000

//Write CR1 0x00000147 Turn on PERR#/SERR#.

//Read CR1 0x02800147

//Read CR15 0x00000100

//Write CSR0 0x0000C001 SW Reset.

//Read CSR5 xxxxxxxx x000000x xxxxxxxx xxxxxxxxb

//Read CSR0 0x0000C000 Need to write after reset.

//Write XR0 0x8000 Reset PHY.

//Write CSR25 0xBBAA0000

//Write CSR26 0xXXXXDDCC

//Write CSR3 0x88000000 Receive Descriptor Base Address

//Write CSR4 0x40000000 Transmit Descriptor Base Address

//------

//

//Wait 6 seconds for PHY reset to complete.

//

//------

//Write XR0 0x0100 Full Duplex.

//Read XR2 0x1C04 PHY ID

//Read XR3 0x0010 Model No.

//Read XR8 xxxxxx1x xxxxxxxxb

//Read XR0 0x3000 for 100 Mbps / 0x2000 for 10Mbps

//Read XR10

//Write CSR6 0x000820CA Turn on RX and TX/internal loopback

//------

//STE Reads TX DESCRIPTOR in 4 word burst

//STE Reads RX DESCRIPTOR in 4 word burst

//STE Reads TX BUFFER in 16 word burst

//------

//

//Read CSR5 0xFC365410 TX FIFO fill/RX wait for data/No Fatal bus error

//

//Wait 2000 cycles to give TX time to complete.

//

//Write CSR6 0x000000c8 Shut off RX/TX

//

//------

//STE Reads TX DESCRIPTOR in 4 word burst

//

//Withhold GNT from STE

//

//STE Writes RX BUFFER in 10-11 word burst

//

//Read XR10 xx00xx01 1x010100b

//

//------

//For XCVR loopback:

//STE Reads TX BUFFER

//STE Writes RXDESC0 0x0022AB26

//STE Writes TXDESC0 0x2A1B0000

//

//Read CSR5 0xFC71d550

//

//STE writes TXDESC0 0x1A170000

//------

//For MAC loopback:

//STE Writes RX BUFFER FCS in 2 word burst

// 0xA3396430

// 0x00441008

//STE Reads TX BUFFER

//STE Writes RXDESC0 0x00441300

//STE Writes TXDESC0 0x2A190000

//

//Read CSR5 0xFC71d550

//

//STE writes TXDESC0 0x1A170000

//------

//Descriptor Initialization

//Contents Description

//------

//0x80000000 TXDES0

//0x62000040 TXDES1 64byte message buffer

//0xA0000000 TXDES2

//0x00000000 TXDES3

//------

//0x80000000 RXDES0

//0x02000080 RXDES1

//0xC0000000 RXDES2

//0xD0000000 RXDES3

//------

#include "ste10.def"

vFormat

PCICLK RSTn FRAMEn IRDYn GNTn AD[31:0] CBEB[3:0] TRDYn IDSEL DEVSELn REQn STOPn PERRn SERRn PAR INTAn PMEn BRA[16:0] BRD[4:0] BrCSn BrOEn BrWEn LEDLK LEDC1 LEDSpd Vccdct Vauxdct BD6 BD7 EECS;

// D LLLVV

//P F CCCCE EEECA

//C R I////T IVS PS I B BB B BBBDDDCU

//I R A R G AA A A BBBBR DS R T EEN P R RR R RRRMMMDX E

//C S M D N D D D D EEEED SE EO RR PT M A AA D COW111ED BBE

//L T E Y T 3 2 1 0 nnnnY EL QP RR AA E 1 00 0 SEELFSTE DDC

//K n n n n 1 3 5 7 3210n Ln nn nn Rn n 6 87 4 nnnKDPET 67S

//------

Start:

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Rep.1000

Reset_uut:

K 0 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Rep.101000

K 0 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Originally waited 34 seconds worst case PCI spec

//;ldlc.340

Reset_deassert:

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Rep.100000

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//;Loop.Reset_deassert

// Minimum 5 clocks after Reset# deasserted before Frame# asserted PCI Spec Rev 2.2 Section 4.3.2 Reset

// Maximum 2**25 clocks after Reset# deasserted before first access

//------

Read_Config_Hdr:

//Read CR2 Should be: 0200XXA1h

K 1 0 1 1 0000000000000000 00000000 00001000 1010X 1X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CR2:

K 1 1 0 1 LLLLLLHLLLLLLLLL XXXXXXXX HLHLLLLH 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CR2

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CR2

//Read_CR32

//Should be: 2774104Ah

K 1 1 1 1 0000000000000000 00000000 10000000 0000H 0H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 1010H 1H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CR32:

K 1 1 0 1 LLHLLHHHLHHHLHLL LLLHLLLL LHLLHLHL 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CR32

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CR32

Write_CR5:

//Set MBA Register

K 1 1 1 1 0000000000000000 00000000 00010100 0000X 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 1011H 1H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_1:

K 1 1 0 1 1000000000000000 00000000 00000000 0000L 0L XX HX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_1

K 1 1 0 1 1000000000000000 00000000 00000000 0000X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CR5

//Read_CR5

//Should be: 0x80000000

K 1 1 1 1 0000000000000000 00000000 00010100 0000H 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 1010H 1H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CR5:

K 1 1 0 1 HLLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CR5

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CR5

Write_CR1:

//Set Memory Space Access

K 1 1 1 1 0000000000000000 00000000 00000100 0000X 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 1011H 1H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_2:

K 1 1 0 1 0000000000000000 00000001 01000111 0000L 0L XX HX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_2

K 1 1 0 1 0000000000000000 00000001 01000111 0000X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CR1

//Read_CR1

//Should be: Read-only Bits 25 and 23 should be H, bits 2,1,0 should be H

// K 1 1 1 1 0000000000000000 00000000 00000100 0000H 0H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//K 1 0 1 1 ################ ######## ######## 1010H 1H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;ldlc.15

//Read_CR1:

//K 1 1 0 1 XXXXXXHX HXXXXXXX XXXXXXXH XHXXXHHH 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;Match.Read_CR1

//K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;JmpFail.No_Read_CR1

//Read_CR15

K 1 1 1 1 0000000000000000 00000000 00111100 0000H 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 1010H 1H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CR15:

K 1 1 0 1 LLLLLLLL LLLLLLLL LLLLLLLH LLLLLLLL 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CR15

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CR15

//------

Write_CSR0:

//Reset MAC; MBA offset = 0

K 1 1 1 1 1000000000000000 00000000 00000000 0000X 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_3:

K 1 1 0 1 0000000000000000 11000000 00000001 0000L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_3

K 1 1 0 1 0000000000000000 11000000 00000001 0000X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CSR0

//Read_CSR5--NOTE: Don't read until after sw reset to avoid erroneous error messages

//Check PHY stopped; MBA offset = 28h

K 1 0 1 1 1000000000000000 00000000 00101000 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CSR5:

K 1 1 0 1 XXXXXXXXXLLLLLLX XXLXXXXX XXXXXXXX 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CSR5

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CSR5

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

Wait_Control_reset_done:

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Rep.10

//------

Write_CSR0_1:

//MBA offset = 0

K 1 1 1 1 1000000000000000 00000000 00000000 0000X 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_3a:

K 1 1 0 1 0000000000000000 11000000 00000000 0000L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_3a

K 1 1 0 1 0000000000000000 11000000 00000000 0000X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CSR0

//Read_CSR0

//Check PHY stopped; MBA offset = 00h

K 1 0 1 1 1000000000000000 00000000 00000000 0110X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CSR0:

K 1 1 0 1 XXXXXXXL LXLXXLLX HHLLLLLL LLLLLLLL 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CSR0

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CSR0

Write_XR0:

//Reset PHY; MBA offset = b4h

K 1 1 1 1 1000000000000000 00000000 10110100 0000X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_4:

K 1 1 0 1 0000000000000000 10000000 00000000 1100L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_4

K 1 1 0 1 0000000000000000 10000000 00000000 1100X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_XR0

//Write to CSR25 (PAR0)= BB, AA, 00, 00 and CSR26 (PAR1) = XX, XX, DD, CC

Write_MAC_Addr:

K 1 1 1 1 1000000000000000 00000000 10100100 0000X 0H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX #X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_5:

K 1 1 0 1 1011101110101010 00000000 00000000 0000L 0L XX HX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_5

K 1 1 1 1 1011101110101010 00000000 00000000 0000X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;JmpFail.No_Write_CSR25

@@ . . u u ...... u . u u u u u . u u ......

K 1 1 1 1 1000000000000000 00000000 10101000 0000X 0H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX #X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_6:

K 1 1 0 1 0000000000000000 11011101 11001100 0000L 0L XX HX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_6

K 1 1 1 1 0000000000000000 11011101 11001100 0000X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CSR26

//Write to CSR3; MBA offset = 18h

//RX_Ptr = 88000000h

Write_RX_Ptr:

K 1 1 1 1 1000000000000000 00000000 00011000 0000X 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX #X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_7:

K 1 1 0 1 1000100000000000 00000000 00000000 0000L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_7

K 1 1 1 1 1000100000000000 00000000 00000000 0000X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CSR3

//Write to CSR4; MBA offset = 20h

//TX_Ptr = 40000000h

Write_TX_Ptr:

K 1 1 1 1 1000000000000000 00000000 00100000 0000X 0H XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX #X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_8:

K 1 1 0 1 0100000000000000 00000000 00000000 0000L 0L XX HX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_8

K 1 1 1 1 0100000000000000 00000000 00000000 0000X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CSR4

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

// wait six seconds for PHY reset to complete.

;ldlc.60

Wait_PHY_reset_done:

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Rep.100000

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Loop.Wait_PHY_reset_done

//------

//Write_XR0:

//Loopback_Debug--turn-on internal loopback at XR0 [14] (XLBEN)

//vector 69:

K 1 1 1 1 1000000000000000 00000000 10110100 0000X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_8a:

//K 1 1 0 1 0000000000000000 00110010 00000000 1100L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 1 0 1 0000000000000000 01000001 00000000 1100L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_8a

//K 1 1 1 1 0000000000000000 00110010 00000000 1100X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 1 1 1 0000000000000000 01000001 00000000 1100X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_XR0

//------

//Read XCVR PHYID 1

//Read_XR2

K 1 0 1 1 1000000000000000 00000000 10111100 0110X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_XR2:

K 1 1 0 1 XXXXXXXXXXXXXXXX LLLHHHLL LLLLLHLL 1100L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_XR2

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_XR2

//Read XCVR PHY ID 2 and Model and Revision No.

//Read_XR3

K 1 0 1 1 1000000000000000 00000000 11000000 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_XR3:

K 1 1 0 1 XXXXXXXXXXXXXXXX LLLLLLLL LLLHLLLL 1100L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_XR3

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_XR3

//Test 10MBps

//Read XCVR Configuration and Interrupt Status XR8 [9:8] SPEED/DUPLEX bits to verify speed selection is correctly set to 0 for 10/ 1 for 100

//Read_XR8

K 1 0 1 1 1000000000000000 00000000 11010100 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_XR8:

K 1 1 0 1 XXXXXXXXXXXXXXXX XXXXXXLH XXXXXXXX 1100L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_XR8

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_XR8

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Read XCVR Control Register XR0 [15] XRST to verify PHY reset complete

//Read_XR0

K 1 0 1 1 1000000000000000 00000000 10110100 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_XR0:

K 1 1 0 1 XXXXXXXXXXXXXXXX LHLLLLLH LLLLLLLL 1100L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_XR0

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_XR0

//Read_XR10

//K 1 0 1 1 1000000000000000 00000000 11011100 0110X 0X XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;ldlc.15

//Read_XR10:

//K 1 1 0 1 XXXXXXXXXXXXXXXX XXLLXXLH HXLLLLLL 1100L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;Match.Read_XR10

//K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;JmpFail.No_Read_XR10

//Write Network Access Register

Write_CSR6:

K 1 1 1 1 1000000000000000 00000000 00110000 0000X 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX #X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_9:

//No internal loopback

K 1 1 0 1 0000000000001000 00100000 11001010 0000L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Enable internal loopback

//K 1 1 0 1 0000000000001000 00100100 11001010 0000L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_9

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CSR6

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// ;Rep.1000

//Read_XR10

//K 1 0 1 1 1000000000000000 00000000 11011100 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;ldlc.15

//Read_XR10:

//K 1 1 0 1 XXXXXXXXXXXXXXXX XXLLXXLH HXLLLLLL 1100L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;Match.Read_XR10

//1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//;JmpFail.No_Read_XR10

// K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//------

;ldlc.100

//Wait 100 clocks for a PCI REQ# from UUT after TX turned on

Wait_TX_Desc_REQ:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_TX_Desc_REQ

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_TX_Desc_REQ

//GNT# REQ#

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// ;ldlc.17

//Wait 16 clocks for an access after bus granted to UUT PCI System Architecture p. 61

Wait_Memory_Access_1:

K 1 L H 0 LHLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHL1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_Memory_Access_1

//Delays driving bus one clock--klunk vs. PCI timing

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_TX_Desc_Access

//Read TXDES0--own bit set for STE10

K 1 L L 0 1000000000000000 00000000 00000000 XXXX0 00 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Read TXDES1, 2, 3

//was 32 byte size = 6 bytes x 2 addr + 2 bytes length + 18 data bytes; CSR18 default is 64bytes

K 1 L L 0 0110001000000000 00000000 01000000 LLLL0 00 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Buffer Address

K 1 L L 0 1010000000000000 00000000 00000000 LLLL0 00 XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 0 0000000000000000 00000000 00000000 LLLL0 00 XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Request PCI Access:

;ldlc.100

//Wait for UUT to access RX Descriptor Buffer Address

Wait_RX_Descriptor_REQ:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_RX_Descriptor_REQ

//GNT# REQ#

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_RX_Desc_REQ

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// ;ldlc.17

//Wait 16 clocks for an access after bus granted to UUT PCI System Architecture p. 61

Wait_Memory_Access_2:

K 1 L X 0 HLLLHLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHL1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_Memory_Access_2

//Delays driving bus one clock--klunk vs. PCI timing

//Read RXDES0

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_RX_Desc_Access

K 1 L L 0 1000000000000000 00000000 00000000 XXXX0 00 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Read RXDES1, 2, 3

K 1 L L 0 0000001000000000 00000000 10000000 LLLL0 00 LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1100000000000000 00000000 00000000 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 0 0000000000000000 00000000 00000000 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Wait for UUT to access TX Descriptor Buffer Address

;ldlc.100

Wait_TX_Buffer_REQ:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_TX_Buffer_REQ

//GNT# REQ#

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_TX_Buffer_REQ

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

Wait_BufferMemory_Access_1:

K 1 L X 0 HLHLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHL 1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_BufferMemory_Access

K 1 L L 0 1111111111111111 11111111 11111111 LLLL 0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1111111111111111 00000000 00000000 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1011101110101010 11011101 11001100 LLLL 0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000000000101110 00000000 00000001 LLLL 0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000001000000011 00000100 00000101 LLLL0 00 LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000011000000111 00001000 00001001 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000101000001011 00001100 00001101 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000111000001111 00010000 00010001 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1010101001010101 10101010 01010101 LLLL 0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1010010110100101 10100101 10100101 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0101101001011010 01011010 01011010 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000000011111111 00000000 11111111 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1111111100001111 11110000 00000000 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0101101011110000 00001111 10100101 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0001001000110100 01010110 01111000 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 0 1001101010111100 11011110 11110000 LLLL0 00 LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Read_CSR5

//Check PHY stopped; MBA offset = 28h

K 1 0 1 1 1000000000000000 00000000 00101000 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CSR5_status_3:

K 1 1 0 1 HHHHHHLLLLHHLHHL LHLHLHLL LLLHLLLL 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CSR5_status_3

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CSR5

//------

//Wait longer for message to complete transmission

K 1 H H 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Rep.2000

//------

//Write Network Access Register

Write_CSR6_2:

K 1 1 1 1 1000000000000000 00000000 00110000 0000X 0H XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 0 1 1 ################ ######## ######## 0111H 0H XX XX #X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

target_ready_9a:

//No internal loopback

K 1 1 0 1 0000000000000000 00000000 11001000 0000L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Enable internal loopback

//K 1 1 0 1 0000000000000000 00000100 11001000 0000L 0L XX HX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

;Match.target_ready_9a

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Write_CSR6

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Wait 100 clocks for a PCI REQ# from UUT after TX turned on

;ldlc.100

Wait_Memory_Access_3:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_Memory_Access_3

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_TX_Desc_REQ

//GNT# REQ#

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

Memory_Access_3:

//vector 140:

K 1 L H 0 LHLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHL1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Reread TXDES0--own bit set for STE10

K 1 L L 0 1000000000000000 00000000 00000000 XXXX0 00 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Reread TXDES1, 2, 3

//CSR18 default is 64bytes

K 1 L L 0 0110001000000000 00000000 01000000 LLLL0 00 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Buffer Address

K 1 L L 0 1010000000000000 00000000 00000000 LLLL0 00 XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 0 0000000000000000 00000000 00000000 LLLL0 00 XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Withhold grant from UUT:

K 1 H H 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Rep.10000

K 1 H H 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Wait for UUT to write RX Buffer:

;ldlc.1000

Wait_Write_RX_Buffer_REQ:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_Write_RX_Buffer_REQ

//GNT# REQ#

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_RX_Buffer_REQ

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

RX_Buffer_Access:

K 1 L X 0 HHLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHH 1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 HHHHHHHHHHHHHHHH LLLLLLLL LLLLLLLL LLLL 0 0 0 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 L L 0 LLHLHHLHLLHLHLHL HHLHLHLH LLHLHLHL LLLL 0 0 0 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// should be 0xBBAADDC

// K 1 L L 0 HLHHHLHHHLHLHLHL HHLHHHLH HHLLHHLL LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 L L 0 HHLHLLHLHLHLHHLH LLHLHHLH LLHLHHLH LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 X X 0 LLLLLLLLLLHLHHHL LLLLLLLL LLLLLLLH LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 X X 0 HLLLLLLLLHLHLLHL HHLHLLHL HHLHLLHL LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 X X 0 LLLLLLHLLLLLLLHH LLLLLHLL LLLLLHLH LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 X X 0 HHHHHHHHHHHHHHHH HLLLLLLL LHHHHHHH LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 X X 0 LLLLLHHLLLLLLHHH LLLLHLLL LLLLHLLH LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 X X 0 LLHLHHLHLLLLLLLL LHHHHLLL LLLLLHHH LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 LLLLHLHLLLLLHLHH LLLLHHLL LLLLHHLH LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 L L 0 HHLLLLHHHHLHLLHL HLLLLHHH HHHHHLLL LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 LLLLHHHLLLLLHHHH LLLHLLLL LLLHLLLH LLLL0 00 LX XX LX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 L L 0 HLLLLHHHHHHHLHHL HHHLLHLH HHLHLHLL LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 HLHLHLHLLHLHLHLH HLHLHLHL LHLHLHLH LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 L L 0 LLHLLLHLLLHHLLHL HLHLLLLH HLLHLLLL LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 HLHLLHLHHLHLLHLH HLHLLHLH HLHLLHLH LLLL0 00 LX XX LX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 L L 0 LLHLLLHLLLHHLLHL LHLHHLLL LHHLHHLL LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 LHLHHLHLLHLHHLHL LHLHHLHL LHLHHLHL LLLL0 00 LX XX LX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 H L 0 LLLLLLLLLLHLLLHL HLHLHLLL LLHLHHHL LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 LLLLLLLLHHHHHHHH LLLLLLLL HHHHHHHH XXXX0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

// K 1 H L 0 LLLLLLLLLLHLLHHL HLHLHLLL LLHLHHHL XXXX0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 HHHHHHHHLLLLHHHH HHHHLLLL LLLLLLLL LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 LHLHHLHLHHHHLLLL LLLLHHHH HLHLLHLH LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 LLLHLLHLLLHHLHLL LHLHLHHL LHHHHLLL LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// K 1 L L 0 HLLHHLHLHLHHHHLL HHLHHHHL HHHHLLLL LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// K 1 H L 0 LLLHLLHLLLHHLHLL LHLHLHHL LHHHHLLL LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// K 1 H L 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;ldlc.100

//Wait 100 clocks for a PCI REQ# from UUT after RX data received

Wait_TX_BUF_REQ_2:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_TX_BUF_REQ_2

//GNT# REQ#

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_TX_Desc_REQ

//Wait 16 clocks for an access after bus granted to UUT PCI System Architecture p. 61

//Read TX Buffer Address = 0xA0000000

Wait_Memory_Access_4_2:

K 1 L H 0 HLHLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHL1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// ;JmpFail.No_BufferMemory_Access

K 1 L L 0 1111111111111111 11111111 11111111 LLLL0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1111111111111111 00000000 00000000 LLLL 0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1011101110101010 11011101 11001100 LLLL 0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000000000101110 00000000 00000001 LLLL 0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000001000000011 00000100 00000101 LLLL0 00 LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000011000000111 00001000 00001001 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000101000001011 00001100 00001101 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000111000001111 00010000 00010001 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1010101001010101 10101010 01010101 LLLL 0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1010010110100101 10100101 10100101 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0101101001011010 01011010 01011010 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0000000011111111 00000000 11111111 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 1111111100001111 11110000 00000000 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0101101011110000 00001111 10100101 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 L L 0 0001001000110100 01010110 01111000 LLLL0 00 LX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 0 1001101010111100 11011110 11110000 LLLL0 00 LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Wait for UUT to write RX Descriptor with status:

;ldlc.1000

Wait_UUT:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_UUT

//GNT# REQ#

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_RX_Desc_REQ

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

Wait_Access:

K 1 L X 0 HLLLHLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHH 1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 0 LLLLLLLLLLHLLLHL HLHLHLHH LLHLLHHL LLLL 0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

;ldlc.100

Wait_Memory_Access_6:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_Memory_Access_6

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_TX_Desc_Access

//GNT# REQ#

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

Memory_Access_6:

K 1 L H 0 LHLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHH1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 0 LLHLHLHLLLLHHLHH LLLLLLLL LLLLLLLL LLLL0 00 LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//Read_CSR5

K 1 0 1 1 1000000000000000 00000000 00101000 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CSR5_status_2:

K 1 1 0 1 HHHHHHLLLHHHLLLH HHLHLHLH LHLHLLLL 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CSR5_status_2

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CSR5

K 1 H H 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//Read_XR10

K 1 0 1 1 1000000000000000 00000000 11011100 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_XR10:

K 1 1 0 1 XXXXXXXXXXXXXXXX XXLLXXLH HXLHLHLL 1100L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_XR10

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_XR10

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

;ldlc.100

//Wait 100 clocks for a PCI REQ# from UUT after RX data received

Wait_RX_FCS_WRITE_REQ:

K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Wait_RX_FCS_WRITE_REQ

//GNT# REQ#

K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_TX_Desc_REQ

//Wait 16 clocks for an access after bus granted to UUT PCI System Architecture p. 61

//Write RX Buffer Location 16/17 (17th/18th writes) Address = 0xc0000040

Wait_Memory_Access_4:

K 1 L H 0 LHLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHH1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

K 1 H L 1 LLLHHLHL LLLHLHHH LLLLLLLL LLLLLLLL LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

// K 1 H L 1 LLLLLLLL LHLLLHLL LLLHLLLL LLLLHLLL LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//------

//Read_CSR5

K 1 0 1 1 1000000000000000 00000000 00101000 0110X 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;ldlc.15

Read_CSR5_status:

K 1 1 0 1 HHHHHHLLLHHHLLLH HHLHLHLH LHLHLLLL 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;Match.Read_CSR5_status

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;JmpFail.No_Read_CSR5

K 1 H H 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

//------

//;ldlc.100

//Wait 100 clocks for a PCI REQ# from UUT after TX turned on

//Wait_Memory_Access_5:

// K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// ;Match.Wait_Memory_Access_5

// K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// ;JmpFail.No_RX_Desc_REQ

//GNT# REQ#

//K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//Write to RX Desc0

//Memory_Access_5:

// K 1 L H 0 HLLLHLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHH1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// K 1 H L 0 LLLLLLLLLHLLLHLL LLLHLLHH LLLLLLLL LLLL0 00 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//------

//------

//Wait for UUT to write TX Descriptor with status:

// ;ldlc.1000

//Wait_UUT:

// K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// ;Match.Wait_UUT

//GNT# REQ#

// K 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

// ;JmpFail.No_TX_Desc_REQ

//K 1 X X 0 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

//Wait_Access:

// K 1 L X 0 LHLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHH 1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

//@@ . . u u ...... u . u u u u u . u u ......

Finish:

// K 1 H L 0 LLLHHLHLLLLHLHHH LLLLLLLL LLLLLLLL LLLL 0 00 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

K 1 H H 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX 1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

@@ . . u u ...... u . u u u u u . u u ......

;halt

//------

//Add change to set to high speed on PHY and jump to waiting for descriptor access

//------

// ;jmp.Reset_uut //continuous loop

//------

//vector 207

//Error Detection:

No_Read_CR2:

1 1 1 0 1 LLLLLLHLLLLLLLLL XXXXXXXX HLHLLLLH 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_CR32:

1 1 1 0 1 LLHLLHHHLHHHLHLL LLLHLLLL LHLLHLHL 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CR5:

1 1 1 0 1 1000000000000000 00000000 00000000 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_CR5:

1 1 1 0 1 HLLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CR1:

1 1 1 0 1 0000000000000000 00000000 00000111 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

//No_Read_CR1:

// 1 1 1 0 1 XXXXXXHX HXXXXXXX XXXXXXXH XHXXXHHH 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

// ;halt

No_Read_CR15:

1 1 1 0 1 LLLLLLLL LLLLLLLL LLLLLLLH LLLLLLLL 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_CSR5:

1 1 1 0 1 HHHHHHHHHHHHHHHH HHHHHHHH HHHHHHHH 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_CSR0:

1 1 1 0 1 XXXXXXXX LXLXXLLX HHLLLLLL LLLLLLLL 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CSR0:

1 1 1 0 1 0000000000000000 00000000 00000001 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_XR0:

1 1 1 0 1 0000000000000000 10000000 00000000 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CSR25:

1 1 1 0 1 1011101110101010 00000000 00000000 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CSR26:

1 1 1 0 1 0000000000000000 11011101 11001100 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CSR3:

1 1 1 0 1 1000100000000000 00000000 00000000 0000L 0L XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CSR4:

1 1 1 0 1 0100000000000000 00000000 00000000 0000L 0L XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_XR2:

1 1 1 0 1 XXXXXXXXXXXXXXXX LLLHHHLL LLLLLHLL 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_XR3:

1 1 1 0 1 XXXXXXXXXXXXXXXX LLLLLLLL LLLHLLLL 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_XR8:

1 1 1 0 1 XXXXXXXXXXXXXXXX XXXXXXLX XXXXXXXX 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Read_XR0:

1 1 1 0 1 XXXXXXXXXXXXXXXX LLLLLLLL LLLLLLLL 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_Write_CSR6:

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 XX XX 0X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

//vector 226:

No_Read_XR10:

1 1 1 0 1 XXXXXXXXXXXXXXXX XXLLXXLH HXLHLHLL 0000L 0L XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_TX_Desc_REQ:

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_TX_Desc_Access:

1 1 L H 0 LHLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL LHHH1 01 XX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_RX_Desc_REQ:

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_RX_Desc_Access:

K 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X XX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_BufferMemory_Access:

1 1 1 1 1 LLLLLLLLLLLLLLLL LLLLLLLL LLLLLLLL XXXXX 0X LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_TX_Buffer_REQ:

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_TX_Buffer_REQ_2:

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_TX_Buffer_REQ_3:

1 1 1 1 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXXX 0X LX XX 1X X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

No_RX_Buffer_REQ:

1 1 X X 1 XXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXX XXXX1 01 LX XX XX X XXXXXXXXXXXXXXXXX XXXXX XXXXXX10 XXX

;halt

//------

//Don't add below here!

//compiler likes line feeds after halt microinstruction