Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
FLXNET drivers
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
atlas-tdaq-felix
felix-versal-tools
FLXNET drivers
Compare revisions
b4e7d77aad5ea9a4099099f08c89023b9b8093c9 to 5a93e5d0293c1658d8f0014ce8a8b13b71bb5458
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
atlas-tdaq-felix/felix-versal-tools/flxnet-drivers
Select target project
No results found
5a93e5d0293c1658d8f0014ce8a8b13b71bb5458
Select Git revision
Swap
Target
atlas-tdaq-felix/felix-versal-tools/flxnet-drivers
Select target project
atlas-tdaq-felix/felix-versal-tools/flxnet-drivers
1 result
b4e7d77aad5ea9a4099099f08c89023b9b8093c9
Select Git revision
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (2)
added enters to readme
· f548eef3
Laura Marilena Rientsma
authored
3 months ago
f548eef3
changed send receive thread to add peer and remove peer
· 5a93e5d0
Laura Marilena Rientsma
authored
3 months ago
5a93e5d0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Readme.md
+2
-2
2 additions, 2 deletions
Readme.md
network_device/flxnet/flxnet.h
+0
-1
0 additions, 1 deletion
network_device/flxnet/flxnet.h
network_device/flxnet_dev.c
+22
-20
22 additions, 20 deletions
network_device/flxnet_dev.c
with
24 additions
and
23 deletions
Readme.md
View file @
5a93e5d0
...
...
@@ -50,8 +50,8 @@ These modules creates a network device on Versal card and host PC. Each FLX-182
## Update
Readme updated on 13-11-2024 by Laura Rientsma
<l.rientsma@nikhef.nl>
Original author of the driver is Elena Zhivun, last edited on 05-07-2022
Readme updated on 13-11-2024 by Laura Rientsma
<l.rientsma@nikhef.nl>
\
Original author of the driver is Elena Zhivun, last edited on 05-07-2022
\
For questions, please contact Frans Schreuder
<f.schreuder@nikhef.nl>
Biggest changes:
...
...
This diff is collapsed.
Click to expand it.
network_device/flxnet/flxnet.h
View file @
5a93e5d0
...
...
@@ -16,7 +16,6 @@ struct flxnet_peer {
unsigned
int
reg_recv
;
unsigned
int
reg_status
;
unsigned
char
mac_addr
[
ETH_ALEN
];
unsigned
int
role
;
struct
net_device
*
flxnet
;
struct
tx_queue
tx_queue
;
};
...
...
This diff is collapsed.
Click to expand it.
network_device/flxnet_dev.c
View file @
5a93e5d0
...
...
@@ -226,6 +226,15 @@ void flxnet_remove_peer(struct flxnet_peer *peer) {
list_del
(
&
peer
->
peer_entry
);
kfree
(
peer
);
mutex_unlock
(
&
peer_mutex
);
if
(
list_empty
(
&
peer_list
))
{
// disable RX side when all peers are removed
if
(
message_level
&
NETIF_MSG_IFDOWN
)
pr_info
(
"flxnet_dev: stop RX thread
\n
"
);
wake_up_interruptible
(
&
recv_queue
);
kthread_stop
(
recv_task
);
del_timer_sync
(
&
recv_timer
);
}
}
static
bool
tx_queue_is_full
(
struct
flxnet_peer
*
peer
)
{
...
...
@@ -971,6 +980,19 @@ struct flxnet_peer * flxnet_add_peer(void* __iomem base_address) {
struct
flxnet_peer
*
peer
;
pr_info
(
"flxnet_dev: flxnet_add_peer %lX
\n
"
,
(
long
unsigned
int
)
base_address
);
if
(
list_empty
(
&
peer_list
))
{
// enable RX side when the first peer is added
if
(
message_level
&
NETIF_MSG_IFUP
)
pr_info
(
"flxnet_dev: initialize RX thread and timer
\n
"
);
recv_task
=
kthread_create
(
send_recv_thread
,
NULL
,
"flxnet RX thread"
);
if
(
IS_ERR
(
recv_task
))
{
pr_err
(
"flxnet_dev: failed to create RX thread in %s
\n
"
,
__FUNCTION__
);
return
-
1
;
}
wake_up_process
(
recv_task
);
mod_timer
(
&
recv_timer
,
jiffies
+
msecs_to_jiffies
(
POLL_PERIOD_MS
));
}
mutex_lock
(
&
peer_mutex
);
peer
=
kzalloc
(
sizeof
(
struct
flxnet_peer
),
GFP_KERNEL
);
if
(
IS_ERR
(
peer
))
{
...
...
@@ -1015,32 +1037,12 @@ int __init flxnet_dev_init(void) {
init_waitqueue_head
(
&
recv_queue
);
timer_setup
(
&
recv_timer
,
recv_timer_function
,
0
);
INIT_LIST_HEAD
(
&
peer_list
);
// enable RX side
if
(
message_level
&
NETIF_MSG_IFUP
)
pr_info
(
"flxnet_dev: initialize RX thread and timer
\n
"
);
recv_task
=
kthread_create
(
send_recv_thread
,
NULL
,
"flxnet RX thread"
);
if
(
IS_ERR
(
recv_task
))
{
pr_err
(
"flxnet_dev: failed to create RX thread in %s
\n
"
,
__FUNCTION__
);
return
-
1
;
}
wake_up_process
(
recv_task
);
mod_timer
(
&
recv_timer
,
jiffies
+
msecs_to_jiffies
(
POLL_PERIOD_MS
));
return
0
;
}
void
__exit
flxnet_dev_exit
(
void
)
{
pr_info
(
"flxnet_dev: removing %s driver
\n
"
,
DRV_NAME
);
// disable RX side
if
(
message_level
&
NETIF_MSG_IFDOWN
)
pr_info
(
"flxnet_dev: stop RX thread
\n
"
);
wake_up_interruptible
(
&
recv_queue
);
kthread_stop
(
recv_task
);
del_timer_sync
(
&
recv_timer
);
mutex_destroy
(
&
peer_mutex
);
mutex_destroy
(
&
flxnet_mutex
);
}
...
...
This diff is collapsed.
Click to expand it.