zephyr/drivers/modem/Kconfig.gsm
Benjamin Lindqvist 28ac1f70bf drivers: modem: gsm_ppp: proper attach retry
In a previous commit, a check was added to ensure modem was properly
attached to packet service before initializing PPP. Failure to perform
this check can lead to the dreaded 'NO CARRIER' issue.

While this is a nice idea, the implementation was lacking because when
the check failed, the entire modem initialization procedure was
restarted from square one. For modems/bearers that were slow to attach,
this is potentially disastrous. The proper solution is to loop only the
'AT+CGATT?' part until it succeeds, or fails N times.

This commit implements this looping behavior (using the work queue).

Signed-off-by: Benjamin Lindqvist <benjamin.lindqvist@endian.se>
2021-04-06 15:37:11 +03:00

90 lines
2.4 KiB
Plaintext

# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
config MODEM_GSM_PPP
bool "Support GSM modems"
select MODEM_CONTEXT
select MODEM_CMD_HANDLER
select MODEM_IFACE_UART
help
Enable GSM modems that support standard AT commands and PPP.
if MODEM_GSM_PPP
choice
prompt "Modem type"
default MODEM_GSM_GENERIC
help
Type/manufacturer of the GSM modem
config MODEM_GSM_GENERIC
bool "Generic GSM modem"
help
The modem does not need any special handling etc.
config MODEM_GSM_SIMCOM
bool "SIMCOM modem"
help
Use this if you have SIMCOM based modem like SIM800 etc.
endchoice
config MODEM_GSM_UART_NAME
string "UART device name the modem is connected to"
config MODEM_GSM_RX_STACK_SIZE
int "Size of the stack allocated for receiving data from modem"
default 512
help
Sets the stack size which will be used by the GSM RX thread.
config MODEM_GSM_INIT_PRIORITY
int "Init priority for the GSM modem driver"
default 42
range 0 99
help
The GSM modem is initialized in POST_KERNEL using priority in
the range 0-99.
config MODEM_GSM_APN
string "Access Point Name"
default "internet"
help
Specify Access Point Name, i.e. the name to identify Internet IP
GPRS cellular data context.
config GSM_PPP_AUTOSTART
bool "Auto-start PPP at boot"
default y
help
This setting lets driver connect to network and initialize PPP at
boot. Unselect this if you want to run application code before
modem connects to network. See contents of "drivers/gsm_ppp.h"
to get an idea of the API.
config MODEM_GSM_ATTACH_TIMEOUT
int "Timeout for attaching to packet service"
default 30
help
Before activating PPP, attachment to packet service is checked
using AT+CGATT. This setting dictates how much time in seconds
we give the modem before giving up.
config MODEM_GSM_MANUAL_MCCMNO
string "MCC/MNO for establishing network connection"
help
This setting is used in the AT+COPS command to set the MCC/MNO
for the network connection context. This value is specific to
the network provider and may need to be changed if auto is not
selected.
config MODEM_GSM_FACTORY_RESET_AT_BOOT
bool "Factory reset modem at boot"
help
If this is enabled, the modem will be reset to factory default
settings first thing in the initialization sequence. This is
helpful if your modem has a tendency to get stuck due to cached
state.
endif