Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled

This commit is contained in:
domenico
2025-06-24 12:51:15 +02:00
commit 27c9d80f51
10493 changed files with 1885777 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
--- a/src/dsl_cpe_init_cfg.c
+++ b/src/dsl_cpe_init_cfg.c
@@ -38,7 +38,7 @@ DSL_InitData_t gInitCfgData =
DSL_DEV_HS_TONE_GROUP_CLEANED, \
DSL_DEV_HS_TONE_GROUP_CLEANED, \
DSL_DEV_HS_TONE_GROUP_CLEANED, \
- 0x1E116000, 0x37, -1),
+ 0x1E116000, 0x3f, -1),
DSL_CPE_SIC_SET(DSL_TC_ATM, DSL_EMF_TC_CLEANED, DSL_EMF_TC_CLEANED, DSL_SYSTEMIF_MII, \
DSL_TC_EFM, DSL_EMF_TC_CLEANED, DSL_EMF_TC_CLEANED, DSL_SYSTEMIF_MII),
DSL_CPE_MAC_CFG_SET(DSL_EFM_SPEED_100, DSL_EFM_DUPLEX_FULL, DSL_EFM_FLOWCTRL_ON, DSL_EFM_AUTONEG_OFF, \

View File

@@ -0,0 +1,87 @@
--- a/src/dsl_cpe_control.h
+++ b/src/dsl_cpe_control.h
@@ -13,6 +13,8 @@
#ifndef _DSL_CPE_CONTROL_H
#define _DSL_CPE_CONTROL_H
+#include <string.h>
+
/** \defgroup DSL_CPE_CONTROL Lantiq DSL CPE API Control Application
Lists the entire modules to the DSL CPE_API Control Application.
@{ */
--- a/src/dsl_cpe_safec_wrapper.h
+++ b/src/dsl_cpe_safec_wrapper.h
@@ -23,7 +23,7 @@
#define cpe_control_vsnprintf_s vsnprintf_s
/* snprintf_s symbol is not exported in SafeC lib */
-static int cpe_control_snprintf_s(char *dest,
+static inline int cpe_control_snprintf_s(char *dest,
size_t dmax,
const char *fmt,
...)
@@ -40,7 +40,7 @@ static int cpe_control_snprintf_s(char *
#else
-#warning "Safe C library is not available!"
+//#warning "Safe C library is not available!"
#include <stddef.h> /* size_t */
#include <stdarg.h> /* va_list */
@@ -55,7 +55,7 @@ static __inline__ size_t safec_wrapper_m
#define cpe_control_memset_s(dest, destsz, src, srcsz) memset(dest, src, safec_wrapper_min(destsz,srcsz))
#define cpe_control_strncpy_s(dest, destsz, src, srcsz) strncpy(dest, src, safec_wrapper_min(destsz,srcsz))
-static size_t cpe_control_strnlen_s(const char *str,
+static inline size_t cpe_control_strnlen_s(const char *str,
size_t smax)
{
/* preconditions */
@@ -74,7 +74,7 @@ static size_t cpe_control_strnlen_s(cons
return size;
}
-static char *cpe_control_strtok_s(char *dest,
+static inline char *cpe_control_strtok_s(char *dest,
size_t *dmax,
const char *delim,
char **ptr)
@@ -123,7 +123,7 @@ static char *cpe_control_strtok_s(char *
return pTmp;
}
-static int cpe_control_pipe_strcat_s(char *dest,
+static inline int cpe_control_pipe_strcat_s(char *dest,
size_t destsz,
char *src)
{
@@ -157,7 +157,7 @@ static int cpe_control_pipe_strcat_s(cha
return 0;
}
-static int cpe_control_snprintf_s(char *dest,
+static inline int cpe_control_snprintf_s(char *dest,
size_t dmax,
const char *fmt,
...)
@@ -181,7 +181,7 @@ static int cpe_control_snprintf_s(char *
return retVal;
}
-static int cpe_control_vsnprintf_s(char *dest,
+static inline int cpe_control_vsnprintf_s(char *dest,
size_t dmax,
const char *fmt,
va_list vlist)
--- a/tools/pipe/dsl_cpe_safec_wrapper.h
+++ b/tools/pipe/dsl_cpe_safec_wrapper.h
@@ -27,7 +27,7 @@
#else
-#warning "Safe C library is not available!"
+//#warning "Safe C library is not available!"
#include <stddef.h> /* size_t */
static __inline__ size_t safec_wrapper_min(size_t a, size_t b)

View File

@@ -0,0 +1,85 @@
This enables automatic connection after the control daemon is started,
and also changes the way the connection is stopped on termination.
Using the autoboot restart command is necessary because the stop command
would stop the autoboot thread, and the driver offers no working way to
start it again later, short of unloading and reloading the module.
--- a/src/dsl_cpe_init_cfg.c
+++ b/src/dsl_cpe_init_cfg.c
@@ -27,7 +27,7 @@ DSL_InitData_t gInitCfgData =
DSL_CPE_FW2_SET(DSL_NULL, 0x0),
DSL_CPE_XTU_SET(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7),
DSL_CPE_LINE_INV_NE_SET(DSL_NULL),
- DSL_CPE_AUTOBOOT_CTRL_SET(DSL_AUTOBOOT_CTRL_STOP),
+ DSL_CPE_AUTOBOOT_CTRL_SET(DSL_AUTOBOOT_CTRL_START),
DSL_CPE_AUTOBOOT_CFG_SET(DSL_FALSE, DSL_FALSE, DSL_FALSE),
DSL_CPE_TEST_MODE_CTRL_SET(DSL_TESTMODE_DISABLE),
DSL_CPE_LINE_ACTIVATE_CTRL_SET(DSL_G997_INHIBIT_LDSF, DSL_G997_INHIBIT_ACSF, DSL_G997_NORMAL_STARTUP),
--- a/src/dsl_cpe_control.c
+++ b/src/dsl_cpe_control.c
@@ -7338,6 +7338,7 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi
{
DSL_Error_t nRet = DSL_SUCCESS;
DSL_int_t nDevice = 0;
+ DSL_AutobootConfig_t sAutobootCfg;
DSL_AutobootControl_t sAutobootCtl;
DSL_CPE_Control_Context_t *pCtrlCtx = DSL_NULL;
@@ -7349,8 +7350,32 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi
for (nDevice = 0; nDevice < DSL_CPE_DSL_ENTITIES; ++nDevice)
{
+ g_bWaitBeforeConfigWrite[nDevice] = DSL_TRUE;
+ g_bWaitBeforeLinkActivation[nDevice] = DSL_TRUE;
+ g_bWaitBeforeRestart[nDevice] = DSL_TRUE;
+
+ g_bAutoContinueWaitBeforeConfigWrite[nDevice] = DSL_FALSE;
+ g_bAutoContinueWaitBeforeLinkActivation[nDevice] = DSL_FALSE;
+ g_bAutoContinueWaitBeforeRestart[nDevice] = DSL_FALSE;
+
+ memset(&sAutobootCfg, 0x0, sizeof(DSL_AutobootConfig_t));
+ sAutobootCfg.data.nStateMachineOptions.bWaitBeforeConfigWrite = DSL_TRUE;
+ sAutobootCfg.data.nStateMachineOptions.bWaitBeforeLinkActivation = DSL_TRUE;
+ sAutobootCfg.data.nStateMachineOptions.bWaitBeforeRestart = DSL_TRUE;
+
+ nRet = (DSL_Error_t)DSL_CPE_Ioctl(
+ DSL_CPE_GetGlobalContext()->fd[nDevice],
+ DSL_FIO_AUTOBOOT_CONFIG_SET, (DSL_int_t)&sAutobootCfg);
+
+ if (nRet < DSL_SUCCESS)
+ {
+ DSL_CCA_DEBUG(DSL_CCA_DBG_ERR, (DSL_CPE_PREFIX
+ "Autoboot configuration for device (%d) failed!, nRet = %d!"
+ DSL_CPE_CRLF, nDevice, sAutobootCtl.accessCtl.nReturn));
+ }
+
memset(&sAutobootCtl, 0, sizeof(DSL_AutobootControl_t));
- sAutobootCtl.data.nCommand = DSL_AUTOBOOT_CTRL_STOP;
+ sAutobootCtl.data.nCommand = DSL_AUTOBOOT_CTRL_RESTART;
nRet = (DSL_Error_t)DSL_CPE_Ioctl(
DSL_CPE_GetGlobalContext()->fd[nDevice],
@@ -7359,13 +7384,13 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi
if (nRet < DSL_SUCCESS)
{
DSL_CCA_DEBUG(DSL_CCA_DBG_ERR, (DSL_CPE_PREFIX
- "Autoboot stop for device (%d) failed!, nRet = %d!"
+ "Autoboot restart for device (%d) failed!, nRet = %d!"
DSL_CPE_CRLF, nDevice, sAutobootCtl.accessCtl.nReturn));
}
}
DSL_CCA_DEBUG(DSL_CCA_DBG_MSG, (DSL_CPE_PREFIX
- "Autoboot stop executed" DSL_CPE_CRLF));
+ "Autoboot restart executed" DSL_CPE_CRLF));
DSL_CPE_DaemonExit();
@@ -8798,4 +8823,4 @@ DSL_CPE_STATIC DSL_Error_t DSL_CPE_Firmw
pDecimal));
return nErrCode;
-}
\ No newline at end of file
+}

View File

@@ -0,0 +1,50 @@
--- a/src/dsl_cpe_control.c
+++ b/src/dsl_cpe_control.c
@@ -221,6 +221,9 @@ extern DSL_Error_t DSL_CPE_Pipe_StaticRe
#endif /* INCLUDE_DSL_RESOURCE_STATISTICS*/
#endif
+extern void ubus_init();
+extern void ubus_deinit();
+
DSL_char_t *g_sFirmwareName1 = DSL_NULL;
DSL_FirmwareFeatures_t g_nFwFeatures1 = {DSL_FW_XDSLMODE_CLEANED, DSL_FW_XDSLFEATURE_CLEANED,
DSL_FW_XDSLFEATURE_CLEANED};
@@ -7831,6 +7834,8 @@ DSL_int_t dsl_cpe_daemon (
#endif /* defined(INCLUDE_DSL_JSON_PARSING) && (INCLUDE_DSL_JSON_PARSING == 1) */
#endif /* RTEMS*/
+ ubus_init();
+
/* Open DSL_CPE_MAX_DSL_ENTITIES devices*/
for (nDevice = 0; nDevice < DSL_CPE_DSL_ENTITIES; nDevice++)
{
@@ -8367,6 +8372,7 @@ DSL_int_t dsl_cpe_daemon (
#endif /* INCLUDE_DSL_CPE_CLI_SUPPORT */
DSL_CPE_CONTROL_EXIT:
+ ubus_deinit();
if (INCLUDE_DSL_BONDING)
{
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -17,7 +17,7 @@ else
dsl_cpe_control_common_ldflags =
endif
-dsl_cpe_control_LDADD = -lpthread -lrt
+dsl_cpe_control_LDADD = -lpthread -lrt -lubox -lubus
if INCLUDE_DSL_CPE_DTI_SUPPORT
dsl_cpe_control_LDADD += -ldti_agent
@@ -118,7 +118,8 @@ dsl_cpe_control_SOURCES = \
dsl_cpe_control.c \
dsl_cpe_init_cfg.c \
dsl_cpe_linux.c \
- dsl_cpe_debug.c
+ dsl_cpe_debug.c \
+ dsl_cpe_ubus.c
dsl_cpe_control_SOURCES += \
$(dsl_cpe_control_dti_sources)