zephyr/modules
Florian Grandel a4cd5cee40 drivers: ieee802154: consistent high res timestamps
The IEEE 802.15.4 API and networking subsystem were using several
inconsistent timestamp resolutions and types. This change defines all
timestamps with nanosecond resolution and reduces the number of
available types to represent timestamps to two:
* `struct net_ptp_time` for PTP timestamps
* `net_time_t` for all other high resolution timestamps

All timestamps (including PTP timestamps) are now referred to a
"virtual" local network subsystem clock source based on the well-defined
types above. It is the responsibility of network subsystem L2/driver
implementations (notably Ethernet and IEEE 802.15.4 L2 stacks) to ensure
consistency of all timestamps and radio timer values exposed by the
driver API to such a network subsystem uptime reference clock
independent of internal implementation details.

The "virtual" network clock source may be implemented based on arbitrary
hardware peripherals (e.g. a coarse low power RTC counter during sleep
time plus a high resolution/high precision radio timer while receiving
or sending). Such implementation details must be hidden from API
clients, as if the driver used a single high resolution clock source
instead.

For IEEE 802.15.4, whenever timestamps refer to packet send or receive
times, they are measured when the end of the IEEE 802.15.4 SFD (message
timestamp point) is present at the local antenna (reference plane).

Due to its limited range of ~290 years, net_time_t timestamps (and
therefore net_pkt timestamps and times) must not be used to represent
absolute points in time referred to an external epoch independent of
system uptime (e.g.  UTC, TAI, PTP, NTP, ...).

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-07-28 09:06:35 +00:00
..
acpica build: west: add acpica module into zephyr project 2023-06-30 17:53:01 +03:00
canopennode init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
fatfs modules: fs: Add reentrant zephyr support 2023-03-13 11:58:57 +01:00
hal_ethos_u modules: add an Arm Ethos-U HAL module 2022-11-15 14:47:43 +01:00
hal_gigadevice soc: gd32a50x: introduce gd32a50x soc series 2023-01-12 21:45:38 +01:00
hal_infineon drivers: watchdog: Driver for Infineon watchdog 2023-05-24 19:42:50 -04:00
hal_nordic modules: hal_nordic: nrfx: Make ISO IN ZLP configurable 2023-07-14 09:37:04 +02:00
hal_nxp hal: nxp: Check Kconfig before including HAL 2022-11-01 21:41:55 -05:00
hal_rpi_pico drivers: misc: Add driver for RaspberryPi Pico PIO 2023-04-25 13:12:02 +02:00
liblc3 modules: define few undefined but referenced symbols 2023-07-05 09:11:02 +02:00
littlefs treewide: Use CONFIG_*_ENDIAN instead of __BYTE_ORDER__ 2022-10-28 19:23:46 +09:00
loramac-node lora: compile drivers based on devicetree 2023-03-31 09:20:22 +02:00
lz4
mbedtls mbedtls: add MBEDTLS_AES_FEWER_TABLES control 2023-07-25 16:44:16 +02:00
nanopb
openthread drivers: ieee802154: consistent high res timestamps 2023-07-28 09:06:35 +00:00
segger segger: rtt: disable unsupported shell/log features 2023-06-23 14:42:41 +02:00
tflite-micro treewide: Update deprecated CONFIG_LIB_CPLUSPLUS usages 2023-01-13 17:42:55 -05:00
thrift tests: thrift: check for channel closure before throwing 2023-07-28 08:36:29 +00:00
TraceRecorder
trusted-firmware-a
trusted-firmware-m tfm: Fix help text for crypto key module functionality 2023-07-25 09:15:32 +02:00
uoscore-uedhoc
zcbor
Kconfig modules: define few undefined but referenced symbols 2023-07-05 09:11:02 +02:00
Kconfig.altera
Kconfig.atmel
Kconfig.chre modules: define few undefined but referenced symbols 2023-07-05 09:11:02 +02:00
Kconfig.cmsis modules/cmsis: Change libc requirement to allow picolibc 2023-01-26 10:10:45 +00:00
Kconfig.cmsis_dsp math: Introduce a DSP basicmath subsystem with a cmsis backend 2022-12-02 20:15:55 +01:00
Kconfig.cmsis_nn
Kconfig.cypress
Kconfig.eos_s3
Kconfig.esp32 soc: xtensa,riscv: esp32xx: refactor folder structure 2023-07-25 18:12:33 +02:00
Kconfig.imx
Kconfig.infineon drivers: pwm: Add driver for xmc4xxx using ccu4 module 2023-07-26 15:09:41 +02:00
Kconfig.libmetal
Kconfig.lvgl modules: lvgl: replace LV_Z_DPI with LV_DPI_DEF 2023-06-13 07:26:29 -04:00
Kconfig.mcuboot mcuboot: move the MCUboot kconfig file to modules/ 2023-05-18 14:09:00 -04:00
Kconfig.mcux modules: mcux: allow to build with MCUX for NXP S32 devices 2023-07-06 14:19:23 -05:00
Kconfig.microchip
Kconfig.nuvoton soc: arm: add support for nuvoton numaker m46x series 2023-06-21 09:26:00 +00:00
Kconfig.open-amp open-amp: Fix compilation with cache enabled 2023-04-18 12:12:56 +02:00
Kconfig.picolibc modules: define few undefined but referenced symbols 2023-07-05 09:11:02 +02:00
Kconfig.s32
Kconfig.silabs
Kconfig.simplelink soc: arm: ti_simplelink: Add support for TI CC13X2X7 SoC series 2023-03-21 16:03:43 -04:00
Kconfig.sof
Kconfig.st drivers: sensors: ilps22qs: added item in kconfig 2023-07-18 09:53:40 +00:00
Kconfig.stm32 modules: align Kconfig.stm32 2023-07-19 09:51:03 +00:00
Kconfig.sysbuild sysbuild: support Zephyr modules 2023-03-09 09:25:00 +01:00
Kconfig.syst modules: mipi-syst: support minimal C library 2023-06-17 07:31:26 -04:00
Kconfig.telink
Kconfig.tinycrypt
Kconfig.vega
Kconfig.wurthelektronik
Kconfig.xtensa
modules.cmake