Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
Software for White Rabbit PTP Core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
32
Issues
32
List
Board
Labels
Milestones
Merge Requests
6
Merge Requests
6
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Software for White Rabbit PTP Core
Commits
1b75e61c
Commit
1b75e61c
authored
May 05, 2017
by
Michel Arruat
Committed by
Adam Wujek
Jun 20, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tools:wr-streamer implements a couple of commands:latency, reset,..
Signed-off-by:
Michel Arruat
<
michel.arruat@cern.ch
>
parent
e5bd7e86
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
65 additions
and
0 deletions
+65
-0
wr-streamer.c
tools/wr-streamer.c
+65
-0
No files found.
tools/wr-streamer.c
View file @
1b75e61c
...
@@ -103,46 +103,111 @@ int read_reset_time(struct cmd_desc *cmdd, struct atom *atoms)
...
@@ -103,46 +103,111 @@ int read_reset_time(struct cmd_desc *cmdd, struct atom *atoms)
int
reset_counters
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
reset_counters
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
volatile
struct
WR_TRANSMISSION_WB
*
ptr
=
(
volatile
struct
WR_TRANSMISSION_WB
*
)
wrstm
->
base
;
if
(
atoms
==
(
struct
atom
*
)
VERBOSE_HELP
)
{
printf
(
"%s - %s
\n
"
,
cmdd
->
name
,
cmdd
->
help
);
return
1
;
}
ptr
->
SSCR1
=
WR_TRANSMISSION_SSCR1_RST_STATS
;
fprintf
(
stderr
,
"Reseted statistics counters
\n
"
);
return
1
;
return
1
;
}
}
int
reset_seqid
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
reset_seqid
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
volatile
struct
WR_TRANSMISSION_WB
*
ptr
=
(
volatile
struct
WR_TRANSMISSION_WB
*
)
wrstm
->
base
;
if
(
atoms
==
(
struct
atom
*
)
VERBOSE_HELP
)
{
printf
(
"%s - %s
\n
"
,
cmdd
->
name
,
cmdd
->
help
);
return
1
;
}
ptr
->
SSCR1
=
WR_TRANSMISSION_SSCR1_RST_SEQ_ID
;
return
1
;
return
1
;
}
}
int
set_tx_ethertype
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
set_tx_ethertype
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
fprintf
(
stderr
,
"Not impleented
\n
"
);
return
1
;
return
1
;
}
}
int
set_tx_local_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
set_tx_local_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
fprintf
(
stderr
,
"Not impleented
\n
"
);
return
1
;
return
1
;
}
}
int
set_tx_remote_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
set_tx_remote_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
fprintf
(
stderr
,
"Not impleented
\n
"
);
return
1
;
return
1
;
}
}
int
set_rx_ethertype
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
set_rx_ethertype
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
fprintf
(
stderr
,
"Not impleented
\n
"
);
return
1
;
return
1
;
}
}
int
set_rx_local_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
set_rx_local_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
fprintf
(
stderr
,
"Not impleented
\n
"
);
return
1
;
return
1
;
}
}
int
set_rx_remote_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
set_rx_remote_mac
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
fprintf
(
stderr
,
"Not impleented
\n
"
);
return
1
;
return
1
;
}
}
int
get_set_latency
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
int
get_set_latency
(
struct
cmd_desc
*
cmdd
,
struct
atom
*
atoms
)
{
{
volatile
struct
WR_TRANSMISSION_WB
*
ptr
=
(
volatile
struct
WR_TRANSMISSION_WB
*
)
wrstm
->
base
;
int
lat
;
uint32_t
val
;
if
(
atoms
==
(
struct
atom
*
)
VERBOSE_HELP
)
{
printf
(
"%s - %s
\n
"
,
cmdd
->
name
,
cmdd
->
help
);
return
1
;
}
++
atoms
;
if
(
atoms
->
type
==
Terminator
)
{
// Get Latency
fprintf
(
stderr
,
"Fixed latency configured: %d [us]
\n
"
,
ptr
->
RX_CFG5
);
}
else
{
if
(
atoms
->
type
!=
Numeric
)
return
-
TST_ERR_WRONG_ARG
;
lat
=
atoms
->
val
;
if
(
lat
<
0
)
{
val
=
~
WR_TRANSMISSION_CFG_OR_RX_FIX_LAT
&
ptr
->
CFG
;
ptr
->
CFG
=
val
;
fprintf
(
stderr
,
"Disabled overriding of default fixed "
"latency value (it is now the default/set "
"by application)
\n
"
);
}
else
{
val
=
(
lat
*
1000
)
/
8
;
ptr
->
RX_CFG5
=
WR_TRANSMISSION_RX_CFG5_FIXED_LATENCY_W
(
val
);
val
=
ptr
->
CFG
;
val
|=
WR_TRANSMISSION_CFG_OR_RX_FIX_LAT
;
ptr
->
CFG
=
val
;
val
=
WR_TRANSMISSION_RX_CFG5_FIXED_LATENCY_R
(
ptr
->
RX_CFG5
);
fprintf
(
stderr
,
"Fixed latency set: %d [us] "
"(set %d | read : %d [cycles])
\n
"
,
lat
,
((
lat
*
1000
)
/
8
),
val
);
}
}
return
1
;
return
1
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment