subsys/modem: Add modem modules
This PR adds the following modem modules to the subsys/modem
folder:
- chat: Light implementation of the Linux chat program, used to
send and receive text based commands statically created
scripts.
- cmux: Implementation of the CMUX protocol
- pipe: Thread-safe async data-in/data-out binding layer between
modem modules.
- ppp: Implementation of the PPP protocol, binding the Zephyr PPP
L2 stack with the data-in/data-out pipe.
These modules use the abstract pipes to communicate between each
other. To bind them with the hardware, the following backends
are provided:
- TTY: modem pipe <-> POSIX TTY file
- UART: modem pipe <-> UART, async and ISR APIs supported
The backends are used to abstract away the physical layer, UART,
TTY, IPC, I2C, SPI etc, to a modem modules friendly pipe.
Signed-off-by: Bjarki Arge Andreasen <baa@trackunit.com>
2023-04-10 17:58:39 +02:00
|
|
|
# Copyright (c) 2023 Trackunit Corporation
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
menuconfig MODEM_MODULES
|
|
|
|
bool "Modem modules"
|
2023-10-31 20:38:57 +01:00
|
|
|
select EXPERIMENTAL
|
subsys/modem: Add modem modules
This PR adds the following modem modules to the subsys/modem
folder:
- chat: Light implementation of the Linux chat program, used to
send and receive text based commands statically created
scripts.
- cmux: Implementation of the CMUX protocol
- pipe: Thread-safe async data-in/data-out binding layer between
modem modules.
- ppp: Implementation of the PPP protocol, binding the Zephyr PPP
L2 stack with the data-in/data-out pipe.
These modules use the abstract pipes to communicate between each
other. To bind them with the hardware, the following backends
are provided:
- TTY: modem pipe <-> POSIX TTY file
- UART: modem pipe <-> UART, async and ISR APIs supported
The backends are used to abstract away the physical layer, UART,
TTY, IPC, I2C, SPI etc, to a modem modules friendly pipe.
Signed-off-by: Bjarki Arge Andreasen <baa@trackunit.com>
2023-04-10 17:58:39 +02:00
|
|
|
|
|
|
|
if MODEM_MODULES
|
|
|
|
|
|
|
|
config MODEM_CHAT
|
|
|
|
bool "Modem chat module"
|
|
|
|
select RING_BUFFER
|
|
|
|
select MODEM_PIPE
|
|
|
|
|
|
|
|
if MODEM_CHAT
|
|
|
|
|
2024-03-21 15:00:07 +01:00
|
|
|
config MODEM_CHAT_LOG_BUFFER_SIZE
|
|
|
|
int "Modem chat log buffer size in bytes"
|
subsys/modem: Add modem modules
This PR adds the following modem modules to the subsys/modem
folder:
- chat: Light implementation of the Linux chat program, used to
send and receive text based commands statically created
scripts.
- cmux: Implementation of the CMUX protocol
- pipe: Thread-safe async data-in/data-out binding layer between
modem modules.
- ppp: Implementation of the PPP protocol, binding the Zephyr PPP
L2 stack with the data-in/data-out pipe.
These modules use the abstract pipes to communicate between each
other. To bind them with the hardware, the following backends
are provided:
- TTY: modem pipe <-> POSIX TTY file
- UART: modem pipe <-> UART, async and ISR APIs supported
The backends are used to abstract away the physical layer, UART,
TTY, IPC, I2C, SPI etc, to a modem modules friendly pipe.
Signed-off-by: Bjarki Arge Andreasen <baa@trackunit.com>
2023-04-10 17:58:39 +02:00
|
|
|
default 128
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
config MODEM_CMUX
|
|
|
|
bool "Modem CMUX module"
|
|
|
|
select MODEM_PIPE
|
|
|
|
select RING_BUFFER
|
|
|
|
select EVENTS
|
|
|
|
select CRC
|
|
|
|
|
2023-10-09 13:56:48 +02:00
|
|
|
if MODEM_CMUX
|
|
|
|
|
2024-03-21 15:00:07 +01:00
|
|
|
config MODEM_CMUX_WORK_BUFFER_SIZE
|
|
|
|
int "CMUX module work buffer size in bytes"
|
|
|
|
range 16 1500
|
|
|
|
default 64
|
|
|
|
|
2023-10-09 13:56:48 +02:00
|
|
|
module = MODEM_CMUX
|
|
|
|
module-str = modem_cmux
|
|
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
subsys/modem: Add modem modules
This PR adds the following modem modules to the subsys/modem
folder:
- chat: Light implementation of the Linux chat program, used to
send and receive text based commands statically created
scripts.
- cmux: Implementation of the CMUX protocol
- pipe: Thread-safe async data-in/data-out binding layer between
modem modules.
- ppp: Implementation of the PPP protocol, binding the Zephyr PPP
L2 stack with the data-in/data-out pipe.
These modules use the abstract pipes to communicate between each
other. To bind them with the hardware, the following backends
are provided:
- TTY: modem pipe <-> POSIX TTY file
- UART: modem pipe <-> UART, async and ISR APIs supported
The backends are used to abstract away the physical layer, UART,
TTY, IPC, I2C, SPI etc, to a modem modules friendly pipe.
Signed-off-by: Bjarki Arge Andreasen <baa@trackunit.com>
2023-04-10 17:58:39 +02:00
|
|
|
config MODEM_PIPE
|
|
|
|
bool "Modem pipe module"
|
|
|
|
|
|
|
|
config MODEM_PPP
|
|
|
|
bool "Modem PPP module"
|
|
|
|
depends on NET_L2_PPP
|
|
|
|
select MODEM_PIPE
|
|
|
|
select RING_BUFFER
|
|
|
|
select CRC
|
|
|
|
|
|
|
|
if MODEM_PPP
|
|
|
|
|
|
|
|
config MODEM_PPP_NET_BUF_FRAG_SIZE
|
|
|
|
int "Network buffer fragment size"
|
|
|
|
default NET_BUF_DATA_SIZE if NET_BUF_FIXED_DATA_SIZE
|
|
|
|
default 128
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
2024-01-24 12:22:22 +01:00
|
|
|
config MODEM_UBX
|
|
|
|
bool "Modem U-BLOX module"
|
|
|
|
select RING_BUFFER
|
|
|
|
select MODEM_PIPE
|
|
|
|
help
|
|
|
|
Enable Modem U-BLOX module.
|
|
|
|
|
|
|
|
if MODEM_UBX
|
|
|
|
|
|
|
|
config MODEM_UBX_LOG_BUFFER
|
|
|
|
int "Modem U-BLOX log buffer size"
|
|
|
|
default 128
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
subsys/modem: Add modem modules
This PR adds the following modem modules to the subsys/modem
folder:
- chat: Light implementation of the Linux chat program, used to
send and receive text based commands statically created
scripts.
- cmux: Implementation of the CMUX protocol
- pipe: Thread-safe async data-in/data-out binding layer between
modem modules.
- ppp: Implementation of the PPP protocol, binding the Zephyr PPP
L2 stack with the data-in/data-out pipe.
These modules use the abstract pipes to communicate between each
other. To bind them with the hardware, the following backends
are provided:
- TTY: modem pipe <-> POSIX TTY file
- UART: modem pipe <-> UART, async and ISR APIs supported
The backends are used to abstract away the physical layer, UART,
TTY, IPC, I2C, SPI etc, to a modem modules friendly pipe.
Signed-off-by: Bjarki Arge Andreasen <baa@trackunit.com>
2023-04-10 17:58:39 +02:00
|
|
|
module = MODEM_MODULES
|
|
|
|
module-str = modem_modules
|
|
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
|
|
|
|
rsource "backends/Kconfig"
|
|
|
|
|
|
|
|
endif
|