Commit graph

17,121 commits

Author SHA1 Message Date
Declan Snyder
8fdacb5e45 drivers: clock_control_mcux_syscon: Add ENET QOS
Add code for ENET QOS clocking in clock control driver

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-02 21:02:25 -04:00
Chris Friedt
5ab984a834 posix: convert static inline functions to library functions
With CONFIG_NET_POSIX_NAMES being deprecated, convert static
inlines in headers to prototypes, and move implementations
to lib/posix/options/net.c .

Since select and poll should technically also operate on
non-socket file descriptors, these may be relocated in the
future.

Below are some reasons for this change.
1. So posix calls are regular symbols and not directly inlined
   as syscalls. This is also the most portable linkage type.
2. Many posix calls are cancellation points and additional
   checks are necessary within the implementation.
3. The more we add to an inline call, the less sense it makes
   for that call to be inline.
4. When the implementation of a posix function changes, the
   interface for it should still remain consistent.

Note: the same principles have been applied in Zephyr's
posix implementation already, e.g. clock_gettime(), so this
is nothing new.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-04-02 21:01:33 -04:00
Chris Friedt
f010f40c8c posix: sys: socket: move defines outside of extern C
preprocessor symbols do not need to be externed.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-04-02 21:01:33 -04:00
Laurentiu Mihalcea
01a6fd5f4a boards: nxp: imx8qm_mek: add pinctrl for SAI1 node
Add pinctrl for SAI1 node. This means:
	1) Adding definitions for the pads used by SAI1.
	2) Creating a pin group and referencing it in
	the SAI1 node via the `pinctrl-0` property.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-02 14:31:15 +01:00
Laurentiu Mihalcea
34410d5366 boards: nxp: imx8qxp_mek: add pinctrl for SAI1 node
Add pinctrl for SAI1 node. This means:
	1) Adding definitions for the pads used by SAI1.
	2) Creating a pin group and referencing it in the
	SAI1 node via the `pinctrl-0` property.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-02 14:31:15 +01:00
Laurentiu Mihalcea
02f18bc5f5 nxp: imx8ulp: enable clock control
Enable clock control for i.MX8ULP. This consists of:
	1) Adding a PCC node in the DTS
	2) Adding a header file containing the definitions
	of the clocks used by the peripherals to be enabled.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-02 14:30:27 +01:00
Luis Ubieda
92e0d0bbfc bluetooth: nus: Change Kconfigs prefix to BT_ZEPHYR_NUS
To prevent future conflicts with NCS's NUS implementation, whose
Kconfig's are prefixed with BT_NUS.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2024-04-02 10:36:01 +03:00
Jeppe Odgaard
17b1912bc3 drivers: ad559x: add i2c bus support
Rename ad5592 files in dts, driver and include to ad559x and add support
for I2C bus which is required for AD5593.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2024-04-01 12:18:47 -05:00
Fin Maaß
90a58099f5 net: dhcpv4: remove conditions in header
Remove conditional compile function declarations

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2024-04-01 12:08:55 -05:00
Gaetan Perrot
d61a7b2777 posix: Implement set and get inheritsched APIs for pthread attr
Implement `pthread_attr_setinheritsched()` and
`pthread_attr_getinheritsched()`are required
as part of _POSIX_THREAD_PRIORITY_SCHEDULING Option Group.

signed-off-by: Gaetan Perrot <gaetanperrotpro@gmail.com>
2024-04-01 11:04:35 +01:00
Reto Schneider
da676d2e01 net: buf: Include user data when cloning
net_buf_user_data() is supposed to copy any data, which includes the
user data.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-03-29 16:00:39 -05:00
Kapil Bhatt
10d9099356 net: wifi: Add reasons for 4 way handshake failure
When there is 4 way handshake timeout, it can be because of
incorrect credential or some times when AP's signal strength
is weak. It can cause 4 way handshake fail. Adding comment
where WIFI_STATUS_CONN_WRONG_PASSWORD is defined.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-03-29 15:08:22 +00:00
Kapil Bhatt
6a0e6e4737 net: wifi: Replace numeric values with defines
There should be a particular defines which clarify the
use of that number. So, replacing numbers with defines
in wifi shell.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-03-29 15:08:00 +00:00
Luca Burelli
eef91d4078 llext: rework LL_EXTENSION_SYMBOL to generate const structs
The LL_EXTENSION_SYMBOL macro is used to export symbols defined in
extensions to the base image. This patch reworks the macro to use
`static const struct llext_const_symbol`, since:
- the associated values are semantically not modifiable;
- this exported symbol table is parsed by llext like section iterables,
  ignoring associated symbol information.

This is mostly a cosmetic change because, unlike the base image, these
symbols cannot be placed (and left) in ROM as they will most certainly
require runtime relocation. However, it makes this macro more consistent
with EXPORT_SYMBOL, which is the base image equivalent.

Also clarify some comments in the same header file.

Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
2024-03-28 16:03:07 -05:00
Seppo Takalo
c62dd778cd net: lwm2m: Fix socket hints for block transfer
Outgoing block-transfers now set the socket hint
to ONGOING as long as the BLOCK1/BLOCK2 header has
MORE flag set to true.
This means as only the last packet in the block-transfer
set the socket hint to LAST or ONE_RESPONSE.

Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
2024-03-28 16:02:34 -05:00
Hou Zhiqiang
04e8183165 imx-rdc: add domain ID for Cortex-A53 core
Add domain ID definition for Cortex-A53 core on i.MX8M SoCs.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
2024-03-28 16:01:30 -05:00
Chaitanya Tata
cb331c2371 net: wifi: Add an build assert for checking states order
This helps us sanity check the enumerations order isn't changed.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-03-28 14:47:50 +00:00
Flavio Ceolin
d68db182b9 random: Remove duplicated code
All implementations of random number generator where duplicating logic
for sys_rand32_get. Since this subsystem already has a logic to
generate random values of arbitrary size, we can generically implement
sys_rand32_get on top of that.

Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
2024-03-28 09:44:44 +00:00
Henrik Brix Andersen
a3631264d1 drivers: can: add utility macro for calculating TDC offset
Add a utility macro for calculating the Transmitter Delay Compensation
(TDC) Offset using the sample point and CAN core clock prescaler specified
by a set of data phase timing parameters.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-03-28 09:41:53 +00:00
Henrik Brix Andersen
ec75dc2232 drivers: can: mcan: remove broken transmitter delay compensation support
Remove broken support for Transmitter Delay Compensation from the Bosch
M_CAN backend driver.

Even if this was enabled via Kconfig, the TDC bit in the DBTP register set
during driver initialization is overwritten in can_mcan_set_timing_data(),
turning TDC off.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-03-28 09:41:53 +00:00
Jukka Rissanen
a96a2f8d09 net: if: Start IPv6 DAD when interface comes up
Start any pending IPv6 DAD timers when interface comes up.
If IPv6 addresses have been added to the network interface when
it was down, the addresses would never work properly if the DAD
is not done.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-28 09:41:38 +00:00
Jukka Rissanen
2058d8f139 net: ethernet: VLAN overhaul and refactoring
Re-implement the VLAN support inside the network stack.
All the user facing APIs stay as is but internally the VLANs
are implemented using the L2 virtual interfaces.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-28 09:41:38 +00:00
Chris Friedt
2abce42f80 posix: create a typedef for in_addr_t
A recent change made it so that in_addr_t was no longer defined.

Define in_addr_t in arpa/inet.h

Signed-off-by: Chris Friedt <chrisfriedt@gmail.com>
2024-03-28 10:57:38 +09:00
Daniel Leung
d34351d994 kernel: align thread stack size declaration
When thread stack is defined as an array, K_THREAD_STACK_LEN()
is used to calculate the size for each stack in the array.
However, standalone thread stack has its size calculated by
Z_THREAD_STACK_SIZE_ADJUST() instead. Depending on the arch
alignment requirement, they may not be the same... which
could cause some confusions. So align them both to use
K_THREAD_STACK_LEN().

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-03-27 19:27:10 -04:00
Daniel Leung
6cd7936f57 kernel: align kernel stack size declaration
When kernel stack is defined as an array, K_KERNEL_STACK_LEN()
is used to calculate the size for each stack in the array.
However, standalone kernel stack has its size calculated by
Z_KERNEL_STACK_SIZE_ADJUST() instead. Depending on the arch
alignment requirement, they may not be the same... which
could cause some confusions. So align them both to use
K_KERNEL_STACK_LEN().

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-03-27 19:27:10 -04:00
Daniel Leung
afb41a1e40 kernel: correct thread_stack.h include guard
The include guard for thread_stack.h was using the scheme
when it was under include/sys. Since it has been moved to
include/zephyr/kernel, name the guard accordingly.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-03-27 19:27:10 -04:00
Daniel Leung
efe30749de kernel: rename Z_THREAD_STACK_BUFFER to K_THREAD_STACK_BUFFER
Simple rename to align the kernel naming scheme. This is being
used throughout the tree, especially in the architecture code.
As this is not a private API internal to kernel, prefix it
appropriately with K_.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-03-27 19:27:10 -04:00
Daniel Leung
b69d2486fe kernel: rename Z_KERNEL_STACK_BUFFER to K_KERNEL_STACK_BUFFER
Simple rename to align the kernel naming scheme. This is being
used throughout the tree, especially in the architecture code.
As this is not a private API internal to kernel, prefix it
appropriately with K_.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-03-27 19:27:10 -04:00
Daniel Leung
f05111dea0 kernel: rename Z_KERNEL_STACK_LEN to K_KERNEL_STACK_LEN
Since there is a K_THREAD_STACK_LEN, its kernel counterpart
should also be prefixed with K_ for consistency.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2024-03-27 19:27:10 -04:00
Jukka Rissanen
4a128c0d2a net: sockets: Fix the documentation to use POSIX_API
Fix the documentation and promote POSIX_API instead of
NET_SOCKET_POSIX_NAMES

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-27 13:40:13 -05:00
Jukka Rissanen
e6e6bb4242 net: socket: Create zsock_fcntl and fsock_ioctl functions
Have special wrappers for zsock_fcntl and zsock_ioctl functions
so that gcc warning can be avoided.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-27 13:40:13 -05:00
Jukka Rissanen
dc203f0d75 net: socket: Rework the zephyr/net/socket.h header
Avoid circular inclusion of socket related header files.
This way applications can still continue to include
zephyr/net/socket.h and not need to separately include
POSIX socket headers.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-27 13:40:13 -05:00
Angelo Dureghello
2cebc0f307 drivers: ethernet: eth_adin2111: extend api support
Extend api support with new functionalities.

Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
2024-03-27 14:31:21 +00:00
Angelo Dureghello
9eef10d436 net: ethernet: add definition for mac address length
Add a define for the mac address length, to be used as needed
in place of hardcoded 6.

Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
2024-03-27 14:31:21 +00:00
Chris Friedt
494493a3b8 posix: net: add a trivial implementation of sockatmark()
Add a trivial implementation of sockatmark().

Signed-off-by: Chris Friedt <chrisfriedt@gmail.com>
2024-03-27 07:36:18 -04:00
Chris Friedt
62031f5daa posix: net: add trivial netdb function implementations
Add trivial function implementations for those declared in
netdb.h .

Signed-off-by: Chris Friedt <chrisfriedt@gmail.com>
2024-03-27 07:36:18 -04:00
Chris Friedt
a00eeb638a posix: net: implement if_nameindex() et al
Implement if_indextoname(), if_freenameindex(), if_nameindex(),
and if_nametoindex() by wrapping around networking subystem
calls.

Signed-off-by: Chris Friedt <chrisfriedt@gmail.com>
2024-03-27 07:36:18 -04:00
Chris Friedt
4edb9017c2 posix: net: add kconfig option and inet_addr()
Add a Kconfig option for POSIX_NETWORKING and implement
inet_addr().

Signed-off-by: Chris Friedt <chrisfriedt@gmail.com>
2024-03-27 07:36:18 -04:00
Reto Schneider
ddb075c398 net: buf: Add support for 40 bit data type
This enables pulling and pushing values in 40 bit format.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-03-26 19:32:27 -04:00
Reto Schneider
8918247f37 net: buf_simple: Add support for 40 bit data type
This enables pulling and pushing values in 40 bit format.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-03-26 19:32:27 -04:00
Reto Schneider
f45b48fc51 sys: byteorder: Add 40 bit variants
This adds sys_*_*40 functions that operation on a 40 bits values.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-03-26 19:32:27 -04:00
Dominik Ermel
d52a7ef31a tests: subsys: settings: Increase stack size
Fixes #62324

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2024-03-26 17:34:25 -04:00
Kapil Bhatt
6e6f53dc8e net: wifi: Fix disconnect reason codes
The shell is printing "connected" while passing
the wrong password to connect command. If the status
value is 0, then only shell will print "connected."
The wrong password will disconnect the connection
with an unspecified reason code.

If the default value of the unspecified disconnect
reason code is 0, then status will print "connected."
By changing the default value to WIFI_STATUS_CONN_LAST_STATUS,
it will print the correct reason, like a failed request
with reason code.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-03-26 17:24:34 -04:00
Chauncy Liu
58733f4682 include: Avoid compiler warning about unused variables
Use ARG_UNUSED on unused variable.

Signed-off-by: Chauncy Liu <chauncy@beechwoods.com>
2024-03-26 16:39:39 -04:00
Aleksander Wasaznik
171363501a Bluetooth: Move bt_hci_evt_get_flags out of hci_driver.h
This commit removes `bt_hci_evt_get_flags`, and the associated flag
symbols. These symbols no longer serve a purpose in the driver interface
after the removal of `bt_recv_prio` from the interface.

The implementation of `bt_hci_evt_get_flags` is distributed to its
still-existing use sites, `hci_core` and the `hci_driver` in the
controller.

The duplication of code is intentional. This is no longer part of any
interface, and the host-developers expect the host copy of the function
to change or dissapear entierly. This will allow the host implementation
to progress without fear of breaking the controller implementation.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-03-26 11:17:29 -05:00
Aleksander Wasaznik
3d3b5b5a48 Bluetooth: hci_driver.h: Remove bt_recv_prio
Remove `bt_recv_prio` from the HCI driver interface. It's primary
purpose was to be used in conjunction with `CONFIG_BT_RECV_BLOCKING`,
which has been removed.

`hci_raw.c` provided a adapter implementation to make drivers
implementing the `CONFIG_BT_RECV_BLOCKING` interface useable with
`CONFIG_BT_HCI_RAW`. But since `bt_recv_prio` is being removed from the
HCI driver interface, drivers needing the adapter should copy the
adapter implementation as private internals.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-03-26 11:17:29 -05:00
Aleksander Wasaznik
b91728619c Bluetooth: host: remove CONFIG_BT_RECV_BLOCKING
This config selects a variant of the HCI driver interface that spills
out host internals unto the drivers and even the Zephyr controller. It
will now be removed in favor of driver interfaces that hide the
internals of the host.

The new default is `CONFIG_BT_RECV_WORKQ_BT`.

Any references to the removed kconfig are refactored out.

Any out-of-tree driver using the removed interface can be easily adapted
by copying the following implementations into the driver as private
functions:

 - `hci_driver.h:BT_HCI_EVT_FLAG_RECV_PRIO`
 - `hci_driver.h:BT_HCI_EVT_FLAG_RECV`
 - `hci_driver.h:bt_hci_evt_get_flags`
 - `hci_raw.c:bt_recv_prio`

In combination these symbols function as a interface adapter. These
symbols will be removed in this PR in subsequent commits.

Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-03-26 11:17:29 -05:00
Ravi Dondaputi
73ed81ccce net: wifi: shell: Support BSSID configuration
Add support for BSSID configuration in connect call.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
2024-03-26 11:13:21 -05:00
Fabio Baltieri
55c14e6fa6 input: analog_axis: rework deadzone calibration code
Rework the data scaling algorithm for the "deadzone" mode so that the
deadzone is subtracted from the input rather than from the output. This
makes the whole output range usable rather than making the output jump
from the center value to the minimum deadzone range.

This changes the calibration data structure as well so now all values
refer to the input data, which is more coherent.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-03-26 11:10:10 -04:00
Marco Widmer
2ebb8fad7e pm: only define slots if CONFIG_PM is enabled
The pm_device_slots section is only used by subsys/pm/pm.c. This file is
only compiled if CONFIG_PM=y. pm_device_slots is unused otherwise.

Don't populate pm_device_slots when CONFIG_PM=n, CONFIG_PM_DEVICE=y.

Signed-off-by: Marco Widmer <marco.widmer@bytesatwork.ch>
2024-03-26 10:51:23 -04:00