Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC TDC 1ns 5cha
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
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
FMC TDC 1ns 5cha
Commits
04cdff5d
Commit
04cdff5d
authored
Jul 29, 2021
by
Federico Vaga
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release/v8.0.0.rc2'
parents
f620300d
b0ea96b5
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
40 additions
and
21 deletions
+40
-21
CHANGELOG.rst
CHANGELOG.rst
+12
-0
Makefile
software/Makefile
+1
-1
Kbuild
software/kernel/Kbuild
+0
-1
calibration.c
software/kernel/calibration.c
+2
-10
fmc-tdc-spec-core.c
software/kernel/fmc-tdc-spec-core.c
+1
-0
fmc-tdc-svec-core.c
software/kernel/fmc-tdc-svec-core.c
+1
-0
ft-core.c
software/kernel/ft-core.c
+13
-2
ft-zio.c
software/kernel/ft-zio.c
+5
-1
fmc-tdc.h
software/kernel/platform_data/fmc-tdc.h
+1
-0
Makefile
software/lib/Makefile
+1
-1
fmctdc-lib.c
software/lib/fmctdc-lib.c
+1
-1
fmctdc-lib.h
software/lib/fmctdc-lib.h
+1
-3
Makefile
software/tools/Makefile
+1
-1
No files found.
CHANGELOG.rst
View file @
04cdff5d
...
@@ -6,6 +6,18 @@
...
@@ -6,6 +6,18 @@
Changelog
Changelog
=========
=========
8.0.0.rc2 - 2021-07-29
======================
Changed
-------
- sw: better naming in `/dev`
- sw: better hierarchy in `/sys`
Removed
-------
- sw: module parameter to se offset. This is not handled with platform_data from
the top level driver.
8.0.0.rc1 - 2020-11-17
8.0.0.rc1 - 2020-11-17
======================
======================
Added
Added
...
...
software/Makefile
View file @
04cdff5d
# include parent_common.mk for buildsystem's defines
# include parent_common.mk for buildsystem's defines
# use absolute path for REPO_PARENT
# use absolute path for REPO_PARENT
REPO_PARENT
?=
$(
shell
/bin/pwd
)
/..
REPO_PARENT
?=
$(
shell
/bin/pwd
)
/..
/../
-include
$(REPO_PARENT)/parent_common.mk
-include
$(REPO_PARENT)/parent_common.mk
all
:
kernel lib tools
all
:
kernel lib tools
...
...
software/kernel/Kbuild
View file @
04cdff5d
...
@@ -11,7 +11,6 @@ ccflags-y = -DVERSION=\"$(VERSION)\"
...
@@ -11,7 +11,6 @@ ccflags-y = -DVERSION=\"$(VERSION)\"
ccflags-y += -I$(src)
ccflags-y += -I$(src)
ccflags-y += -I$(ZIO_ABS)/include
ccflags-y += -I$(ZIO_ABS)/include
ccflags-y += -I$(FMC_ABS)/include
ccflags-y += -I$(FMC_ABS)/include
ccflags-y += -I$(FMC_ABS)/include/uapi
ccflags-$(CONFIG_FMC_TDC_DEBUG) += -DDEBUG
ccflags-$(CONFIG_FMC_TDC_DEBUG) += -DDEBUG
...
...
software/kernel/calibration.c
View file @
04cdff5d
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
#include <linux/jhash.h>
#include <linux/jhash.h>
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/fmc.h>
#include <linux/fmc.h>
#include <linux/ipmi/fru.h>
#include <
uapi/
linux/ipmi/fru.h>
#include <linux/zio.h>
#include <linux/zio.h>
#include "fmc-tdc.h"
#include "fmc-tdc.h"
...
@@ -25,12 +25,6 @@ module_param_named(wr_offset_fix, wr_calibration_offset, int, 0444);
...
@@ -25,12 +25,6 @@ module_param_named(wr_offset_fix, wr_calibration_offset, int, 0444);
MODULE_PARM_DESC
(
wr_offset_fix
,
MODULE_PARM_DESC
(
wr_offset_fix
,
"Overwrite the White-Rabbit calibration offset for calibration value computer before 2018. (Default: 229460 [ps])"
);
"Overwrite the White-Rabbit calibration offset for calibration value computer before 2018. (Default: 229460 [ps])"
);
static
u32
wr_calibration_offset_carrier
=
0
;
module_param_named
(
wr_offset_carrier
,
wr_calibration_offset_carrier
,
int
,
0444
);
MODULE_PARM_DESC
(
wr_offset_carrier
,
"White-Rabbit carrier calibration offset. (Default SPEC: 0 [ps])"
);
/* dummy calibration data - used in case of empty/corrupted EEPROM */
/* dummy calibration data - used in case of empty/corrupted EEPROM */
static
struct
ft_calibration
default_calibration
=
{
static
struct
ft_calibration
default_calibration
=
{
{
0
,
86
,
609
,
572
,
335
},
/* zero_offset */
{
0
,
86
,
609
,
572
,
335
},
/* zero_offset */
...
@@ -124,7 +118,6 @@ static void ft_calib_cpy_from_raw(struct ft_calibration *calib,
...
@@ -124,7 +118,6 @@ static void ft_calib_cpy_from_raw(struct ft_calibration *calib,
calib
->
vcxo_default_tune
=
calib_raw
->
vcxo_default_tune
/
100
;
calib
->
vcxo_default_tune
=
calib_raw
->
vcxo_default_tune
/
100
;
calib
->
calibration_temp
=
calib_raw
->
calibration_temp
;
calib
->
calibration_temp
=
calib_raw
->
calibration_temp
;
calib
->
wr_offset
=
calib_raw
->
wr_offset
/
100
;
calib
->
wr_offset
=
calib_raw
->
wr_offset
/
100
;
calib
->
wr_offset
+=
wr_calibration_offset_carrier
;
}
}
static
void
ft_calib_cpy_to_raw
(
struct
ft_calibration_raw
*
calib_raw
,
static
void
ft_calib_cpy_to_raw
(
struct
ft_calibration_raw
*
calib_raw
,
...
@@ -136,7 +129,7 @@ static void ft_calib_cpy_to_raw(struct ft_calibration_raw *calib_raw,
...
@@ -136,7 +129,7 @@ static void ft_calib_cpy_to_raw(struct ft_calibration_raw *calib_raw,
calib_raw
->
zero_offset
[
i
-
1
]
=
calib
->
zero_offset
[
i
]
*
100
;
calib_raw
->
zero_offset
[
i
-
1
]
=
calib
->
zero_offset
[
i
]
*
100
;
calib_raw
->
vcxo_default_tune
=
calib
->
vcxo_default_tune
*
100
;
calib_raw
->
vcxo_default_tune
=
calib
->
vcxo_default_tune
*
100
;
calib_raw
->
calibration_temp
=
calib
->
calibration_temp
;
calib_raw
->
calibration_temp
=
calib
->
calibration_temp
;
calib_raw
->
wr_offset
=
(
calib
->
wr_offset
-
wr_calibration_offset_carrier
)
*
100
;
calib_raw
->
wr_offset
=
calib
->
wr_offset
*
100
;
ft_calib_cpu_to_le32s
(
calib_raw
);
ft_calib_cpu_to_le32s
(
calib_raw
);
}
}
...
@@ -206,7 +199,6 @@ int ft_calib_init(struct fmctdc_dev *ft)
...
@@ -206,7 +199,6 @@ int ft_calib_init(struct fmctdc_dev *ft)
ft
->
calib
.
wr_offset
=
wr_calibration_offset
;
ft
->
calib
.
wr_offset
=
wr_calibration_offset
;
out:
out:
ft
->
calib
.
wr_offset
+=
wr_calibration_offset_carrier
;
return
0
;
return
0
;
}
}
...
...
software/kernel/fmc-tdc-spec-core.c
View file @
04cdff5d
...
@@ -18,6 +18,7 @@ enum ft_spec_dev_offsets {
...
@@ -18,6 +18,7 @@ enum ft_spec_dev_offsets {
static
const
struct
fmc_tdc_platform_data
fmc_tdc_pdata
=
{
static
const
struct
fmc_tdc_platform_data
fmc_tdc_pdata
=
{
.
flags
=
0
,
.
flags
=
0
,
.
wr_calibration_offset_carrier
=
0
,
};
};
static
int
ft_spec_probe
(
struct
platform_device
*
pdev
)
static
int
ft_spec_probe
(
struct
platform_device
*
pdev
)
...
...
software/kernel/fmc-tdc-svec-core.c
View file @
04cdff5d
...
@@ -21,6 +21,7 @@ enum ft_svec_dev_offsets {
...
@@ -21,6 +21,7 @@ enum ft_svec_dev_offsets {
static
struct
fmc_tdc_platform_data
fmc_tdc_pdata
=
{
static
struct
fmc_tdc_platform_data
fmc_tdc_pdata
=
{
.
flags
=
FMC_TDC_BIG_ENDIAN
,
.
flags
=
FMC_TDC_BIG_ENDIAN
,
.
wr_calibration_offset_carrier
=
3000
,
};
};
/* MFD devices */
/* MFD devices */
...
...
software/kernel/ft-core.c
View file @
04cdff5d
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
#include <linux/list.h>
#include <linux/list.h>
#include <linux/io.h>
#include <linux/io.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/ipmi/fru.h>
#include <
uapi/
linux/ipmi/fru.h>
#include <linux/fmc.h>
#include <linux/fmc.h>
#include <linux/zio.h>
#include <linux/zio.h>
...
@@ -453,7 +453,15 @@ int ft_probe(struct platform_device *pdev)
...
@@ -453,7 +453,15 @@ int ft_probe(struct platform_device *pdev)
if
(
!
ft_fmc_slot_is_valid
(
ft
))
if
(
!
ft_fmc_slot_is_valid
(
ft
))
goto
out_fmc_err
;
goto
out_fmc_err
;
ret
=
ft_calib_init
(
ft
);
err
=
sysfs_create_link
(
&
ft
->
pdev
->
dev
.
kobj
,
&
ft
->
slot
->
dev
.
kobj
,
dev_name
(
&
ft
->
slot
->
dev
));
if
(
err
)
{
dev_err
(
&
ft
->
pdev
->
dev
,
"Failed to create FMC symlink to %s
\n
"
,
dev_name
(
&
ft
->
slot
->
dev
));
goto
err_fmc_link
;
}
ret
=
ft_calib_init
(
ft
);
if
(
ret
<
0
)
if
(
ret
<
0
)
goto
err_calib
;
goto
err_calib
;
...
@@ -491,6 +499,8 @@ err:
...
@@ -491,6 +499,8 @@ err:
m
->
exit
(
ft
);
m
->
exit
(
ft
);
ft_calib_exit
(
ft
);
ft_calib_exit
(
ft
);
err_calib:
err_calib:
sysfs_remove_link
(
&
ft
->
pdev
->
dev
.
kobj
,
dev_name
(
&
ft
->
slot
->
dev
));
err_fmc_link:
out_fmc_err:
out_fmc_err:
out_fmc_eeprom:
out_fmc_eeprom:
out_fmc_pre:
out_fmc_pre:
...
@@ -533,6 +543,7 @@ int ft_remove(struct platform_device *pdev)
...
@@ -533,6 +543,7 @@ int ft_remove(struct platform_device *pdev)
m
->
exit
(
ft
);
m
->
exit
(
ft
);
}
}
ft_calib_exit
(
ft
);
ft_calib_exit
(
ft
);
sysfs_remove_link
(
&
ft
->
pdev
->
dev
.
kobj
,
dev_name
(
&
ft
->
slot
->
dev
));
fmc_slot_put
(
ft
->
slot
);
fmc_slot_put
(
ft
->
slot
);
iounmap
(
ft
->
ft_base
);
iounmap
(
ft
->
ft_base
);
kfree
(
ft
);
kfree
(
ft
);
...
...
software/kernel/ft-zio.c
View file @
04cdff5d
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
#include <linux/zio-trigger.h>
#include <linux/zio-trigger.h>
#include "fmc-tdc.h"
#include "fmc-tdc.h"
#include "platform_data/fmc-tdc.h"
#include "hw/channel_regs.h"
#include "hw/channel_regs.h"
#include "hw/timestamp_fifo_regs.h"
#include "hw/timestamp_fifo_regs.h"
#include "hw/tdc_onewire_regs.h"
#include "hw/tdc_onewire_regs.h"
...
@@ -68,14 +69,17 @@ enum ft_devtype {
...
@@ -68,14 +69,17 @@ enum ft_devtype {
*/
*/
static
void
ft_update_offsets
(
struct
fmctdc_dev
*
ft
,
int
channel
)
static
void
ft_update_offsets
(
struct
fmctdc_dev
*
ft
,
int
channel
)
{
{
struct
fmc_tdc_platform_data
*
pdata
=
ft
->
pdev
->
dev
.
platform_data
;
struct
ft_channel_state
*
st
=
&
ft
->
channels
[
channel
];
struct
ft_channel_state
*
st
=
&
ft
->
channels
[
channel
];
struct
ft_hw_timestamp
hw_offset
=
{
0
,
0
,
0
,
0
};
struct
ft_hw_timestamp
hw_offset
=
{
0
,
0
,
0
,
0
};
int32_t
wr_offset
=
0
;
void
*
fifo_addr
;
void
*
fifo_addr
;
fifo_addr
=
ft
->
ft_fifo_base
+
TDC_FIFO_OFFSET
*
channel
;
fifo_addr
=
ft
->
ft_fifo_base
+
TDC_FIFO_OFFSET
*
channel
;
ft_ts_apply_offset
(
&
hw_offset
,
ft
->
calib
.
zero_offset
[
channel
]);
ft_ts_apply_offset
(
&
hw_offset
,
ft
->
calib
.
zero_offset
[
channel
]);
ft_ts_apply_offset
(
&
hw_offset
,
-
ft
->
calib
.
wr_offset
);
wr_offset
=
ft
->
calib
.
wr_offset
+
pdata
->
wr_calibration_offset_carrier
;
ft_ts_apply_offset
(
&
hw_offset
,
-
wr_offset
);
if
(
st
->
user_offset
)
if
(
st
->
user_offset
)
ft_ts_apply_offset
(
&
hw_offset
,
st
->
user_offset
);
ft_ts_apply_offset
(
&
hw_offset
,
st
->
user_offset
);
...
...
software/kernel/platform_data/fmc-tdc.h
View file @
04cdff5d
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
struct
fmc_tdc_platform_data
{
struct
fmc_tdc_platform_data
{
unsigned
long
flags
;
unsigned
long
flags
;
uint32_t
wr_calibration_offset_carrier
;
};
};
#endif
#endif
software/lib/Makefile
View file @
04cdff5d
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
# include parent_common.mk for buildsystem's defines
# include parent_common.mk for buildsystem's defines
IGNORE_CPU_SUFFIX
:=
y
IGNORE_CPU_SUFFIX
:=
y
REPO_PARENT
?=
REPO_PARENT
?=
$(
shell
pwd
)
/../../../
-include
$(REPO_PARENT)/parent_common.mk
-include
$(REPO_PARENT)/parent_common.mk
ZIO
?=
../zio
ZIO
?=
../zio
...
...
software/lib/fmctdc-lib.c
View file @
04cdff5d
...
@@ -213,7 +213,7 @@ struct fmctdc_board *fmctdc_open_by_lun(int lun)
...
@@ -213,7 +213,7 @@ struct fmctdc_board *fmctdc_open_by_lun(int lun)
{
{
ssize_t
ret
;
ssize_t
ret
;
char
dev_id_str
[
4
];
char
dev_id_str
[
4
];
char
path_pattern
[]
=
"/dev/
fmc-td
c.%d"
;
char
path_pattern
[]
=
"/dev/
tdc-1n5
c.%d"
;
char
path
[
sizeof
(
path_pattern
)
+
1
];
char
path
[
sizeof
(
path_pattern
)
+
1
];
uint32_t
dev_id
;
uint32_t
dev_id
;
...
...
software/lib/fmctdc-lib.h
View file @
04cdff5d
...
@@ -17,6 +17,7 @@ extern "C" {
...
@@ -17,6 +17,7 @@ extern "C" {
#include <inttypes.h>
#include <inttypes.h>
#include <stdint.h>
#include <stdint.h>
#include <fmc-tdc.h>
/**
/**
* printf format for timestamps with pico-second resolution
* printf format for timestamps with pico-second resolution
...
@@ -210,9 +211,6 @@ extern int fmctdc_ts_mode_get(struct fmctdc_board *userb,
...
@@ -210,9 +211,6 @@ extern int fmctdc_ts_mode_get(struct fmctdc_board *userb,
/**@}*/
/**@}*/
#include "fmctdc-lib-private.h"
/**
/**
* @defgroup libacq Time-stamps Acquisition
* @defgroup libacq Time-stamps Acquisition
* Set of functions to read time-stamps from the board
* Set of functions to read time-stamps from the board
...
...
software/tools/Makefile
View file @
04cdff5d
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
# include parent_common.mk for buildsystem's defines
# include parent_common.mk for buildsystem's defines
IGNORE_CPU_SUFFIX
:=
y
IGNORE_CPU_SUFFIX
:=
y
REPO_PARENT
?=
REPO_PARENT
?=
$(
shell
pwd
)
/../../../
-include
$(REPO_PARENT)/parent_common.mk
-include
$(REPO_PARENT)/parent_common.mk
DESTDIR
?=
/usr/local/
DESTDIR
?=
/usr/local/
...
...
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