Layer 1 Trace in 10G Mode requires the following command
sudo fnic_test --trace-xgmiiAdding the —help option shows the list of configuration options
fmadio@fmadio200v4-636$ sudo fnic_test --trace-xgmii --help
XGMII 10G Trace Utility
Options:
--trace-xgmii : required uses 10G XGMII trace logic
--port <number> : outputs trace only for the specified capture port
--reset : resets the trigger conditions
--disable-data-zero : disables data compression
--enable-data-zero : converts full word data into zero to maximize compression
--enable-error-halt : halts the trace on error condition
Example usage:
step 1) halt on XGMII error condition on port 4
sudo ./fnic_test --trace-xgmii --port 4 --enable-error-halt --reset
step 2) Dump the tace buffer
sudo ./fnic_test --trace-xgmii --port 4
fmadio@fmadio200v4-636:/mnt/store0/develop/fnic_test$
Tracing on XGMII Error Condition
XGMII Error condition means the follow
SOF received when in a current packet
EOF received when not in a current packet
This enables a small L1 trace of the XGMII data when one of the above conditions is received.
Step 1) Reset tracer
The tracer needs to initialized with compression/zeroing and any halt condition. In the below example it is halting on cap4 XGMII error state (e.g. SOF in packet, or EOF in packet)
sudo fnic_test --trace-xgmii --port 4 --enable-error-halt --resetExample output shown below
fmadio@fmadio200v4-636:$ sudo fnic_test --trace-xgmii --port 4 --enable-error-halt --reset
enable halt on error
reset tracer
fmadio@fmadio200v4-636:$
This primes and enables the tracer, it will then run in the background
Step 2) Dump the trace
Dumping the trace outputs the current enable / trigger / halt state plus the actual XGMII traffic. Below is an example
sudo fnic_test --trace-xgmii --port 4Output
fmadio@fmadio200v4-636:$ fnic_test --trace-xgmii --port 4
BR1_P0: STATUS : 0000000000000003
BR1_P0: enb : 1
BR1_P0: trigger : 1
BR1_P0: zero : 0
BR1_P0: trigger_override: 0
BR1_P0: frame_in : 0
BR1_P0: error : 0
BR1_P0: WritePos : 00000000000003d5
BR1_P0: Cycle Cnt Raw : 16455696169
BR1_P0: Cycle Cnt BRAM : 980
BR1_P0: SOF Cnt : 0
BR1_P0: EOF Cnt : 0
BR1_P0: SOF0 Cnt : 0
BR1_P0: SOF4 Cnt : 0
BR1_P0: EOF0 Cnt : 0
BR1_P0: EOF1 Cnt : 0
BR1_P0: EOF2 Cnt : 0
BR1_P0: EOF3 Cnt : 0
BR1_P0: EOF4 Cnt : 0
BR1_P0: EOF5 Cnt : 0
BR1_P0: EOF6 Cnt : 0
BR1_P0: EOF7 Cnt : 0
BR1_P0 :[00000000:000000d5] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000001:000000d6] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000002:000000d7] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000003:000000d8] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000004:000000d9] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000005:000000da] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000006:000000db] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000007:000000dc] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000008:000000dd] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[00000009:000000de] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[0000000a:000000df] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[0000000b:000000e0] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[0000000c:000000e1] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[0000000d:000000e2] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[0000000e:000000e3] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[0000000f:000000e4] Cnt:16777216 E:0 P:0 ff 0707070707070707
.
.
.
BR1_P0 :[000000f2:000000c7] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000f3:000000c8] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000f4:000000c9] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000f5:000000ca] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000f6:000000cb] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000f7:000000cc] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000f8:000000cd] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000f9:000000ce] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000fa:000000cf] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000fb:000000d0] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000fc:000000d1] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000fd:000000d2] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000fe:000000d3] Cnt:16777216 E:0 P:0 ff 0707070707070707
BR1_P0 :[000000ff:000000d4] Cnt:16777216 E:0 P:0 ff 0707070707070707
0000000000000003
0000000000000003
0000000000000003
0000000000000003
00000000d4000003
0000000000000003
0000000000000003
0000000000000003
fmadio@fmadio200v4-636:$
Using the following to determine
signal | description |
|---|---|
enb | indicates the trace logic is currently enabled (and overwriting the buffer) |
trigger | trigger has been set |
zero | full cycle data words are replaced by 0 to maixmimze compression |
trigger_override | internal usage |
frame_in | XGMII state machine thinks it inside a packet currently |
error | XGMII state machine is in an error state (e.g. SOF when inside a packet) |
error_trigger | halt when XGMII state machine thinks its in an error state |