Skip to content

Import Wiseconnect 3.5-rc3 #97

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
May 13, 2025

Conversation

jerome-pouiller
Copy link
Collaborator

@jerome-pouiller jerome-pouiller commented Apr 23, 2025

Import the last version of Wiseconnect. Note 3.5-fc (for Feature Complete) is not yet considered as the final version of Wiseconnect 3.5.

@Martinhoff-maker
Copy link
Collaborator

might want to take care about the fact that I currently (#99) import RTC and calendar files with wiseconnect 3.4.0-fc to have consistency with actually code. We don't have to forget to rerun the import script before opening this PR. Just a reminder for me too.

Despite the code suggests, import_wiseconnect.py was not able to raise
warning when the source file was not found.

Signed-off-by: Jérôme Pouiller <[email protected]>
rsi_time_period.c was present in the HAL but not listed in
import_wiseconnect.py.

rsi_rtc.h was listed twice.

Signed-off-by: Jérôme Pouiller <[email protected]>
@jerome-pouiller jerome-pouiller marked this pull request as ready for review May 12, 2025 14:45
@jerome-pouiller jerome-pouiller force-pushed the wiseconnect-3.5 branch 2 times, most recently from 089b79b to bce756c Compare May 12, 2025 15:08
@Martinhoff-maker
Copy link
Collaborator

Martinhoff-maker commented May 12, 2025

As I understand and considering the licenses for crypto stuff (and commit name), this PR should be renamed "Import Wiseconnect 3.5-rc3". (just for the git history).
Note: There is a simplicity_sdk removed file in the PR, I don't know if this is voluntary but it seems weird since it's a Wiseconnect import.

@jerome-pouiller jerome-pouiller changed the title Import Wiseconnect 3.5-fc Import Wiseconnect 3.5-rc3 May 13, 2025
jerome-pouiller and others added 14 commits May 13, 2025 14:00
license.md is present in HAL but was not listed in the import script.

Signed-off-by: Jérôme Pouiller <[email protected]>
Maintenance will be easier if the files are sorted.

Signed-off-by: Jérôme Pouiller <[email protected]>
Wiseconnect 3.5 brings small changes in the architecture. Update
import_wiseconnect.py to reflect these changes.

Signed-off-by: Jérôme Pouiller <[email protected]>
These files are required to enable hardware accelerated crypto on
SiWx91x.

Signed-off-by: Jérôme Pouiller <[email protected]>
Origin: Silicon Labs WiSeConnect SDK
License: Zlib and Apache-2.0
URL: https://github.com/siliconlabs/wiseconnect
Commit: 05ef77e82bb473fdf157d33fb9cbf6e1d9a11a9e
Version: v3.5.0-rc3
Purpose: Update HAL layer

Signed-off-by: Jérôme Pouiller <[email protected]>
Zephyr CI raise errors for misspelled words. So, the Zephyr code uses
"EXTENSION" while HAL still use "EXTENTION".

Note, the upstream tried to fix the issue by adding a bunch of #ifdef
__ZEPHYR__. Unfortunately, it produce these kind of errors:

    .../sl_net.c: In function 'sl_net_init':
    .../sl_net.c:57:40: error: 'sl_wifi_default_client_configuration' undeclared (first use in this function); did you mean 'sl_wifi_advanced_client_configuration_t'?
       57 |         configuration = (const void *)&sl_wifi_default_client_configuration;
          |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                        sl_wifi_advanced_client_configuration_t
    .../sl_net.c:57:40: note: each undeclared identifier is reported only once for each function it appears in
    .../sl_net.c:100:40: error: 'sl_wifi_default_ap_configuration' undeclared (first use in this function); did you mean 'sl_wifi_advanced_ap_configuration_t'?
      100 |         configuration = (const void *)&sl_wifi_default_ap_configuration;
          |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                        sl_wifi_advanced_ap_configuration_t

... so this patch also undoes this change.

Upstream-status: Pending
Signed-off-by: Jérôme Pouiller <[email protected]>
Wiseconnect allows to use an alternative clock if the temperature during
the start up is too high. However:
  - this feature relies on ADC and we don't want to import it for now
  - this kind of magic feature should be exposed to the user rather than
    hidden in the HAL (especially since use can also use ADC hardware)

Upstream-status: Inappropriate [Upstream wants to keep high temperature security]
Signed-off-by: Jérôme Pouiller <[email protected]>
configTICK_RATE_HZ is specific to Wiseconnect. Equivalent in Zephyr is
CONFIG_SYS_CLOCK_TICKS_PER_SEC.

Note usually, configTICK_RATE_HZ == 1000 while
CONFIG_SYS_CLOCK_TICKS_PER_SEC == 1024.

Note This code is mostly the same than sys_clock_driver_init() in Zephyr
(executed automatically with priority PRE_KERNEL_2 /
SYSTEM_CLOCK_INIT_PRIORITY). So, we could probably drop this code at
all.

Upstream-status: Pending
Signed-off-by: Jérôme Pouiller <[email protected]>
Wiseconnect has been original developed for FreeRTOS.
sl_si91x_trigger_sleep() directly relies of FreeRTOS services. This
function does not compile. However, it is never called and can be safely
removed.

Upstream-status: Pending
Signed-off-by: Jérôme Pouiller <[email protected]>
Zephyr linker script does not define .common_ipmu_ram section. This
reverts the change introduced on Wiseconnect 3.4

Upstream-status: Pending
Signed-off-by: Jérôme Pouiller <[email protected]>
Section .common_tcm_code is orphan in Wiseconnect (and also in Zephyr).

Just drop the section.

Upstream-status: Pending
Signed-off-by: Jérôme Pouiller <[email protected]>
sl_strlen() and sl_strnlen() can be safely replaced by Posix
equivalents.

Signed-off-by: Jérôme Pouiller <[email protected]>
Zephyr CMSIS implementation has some limitations with dynamically allocated
resources[1].

This patch allocates the CMSIS resources statically. Thus:
  - this allows to workaround the limitation of the current CMSIS implementation
    until we fix them properly
  - it is possible to get rid of the dependencies to
    CMSIS_V2_THREAD_DYNAMIC_MAX_COUNT and CMSIS_V2_THREAD_MAX_COUNT.

[1]: zephyrproject-rtos/zephyr#85557

Upstream-status: Inappropriate [Zephyr specific workaround for stack allocation]
Signed-off-by: Arunmani Alagarsamy <[email protected]>
Signed-off-by: Jérôme Pouiller <[email protected]>
The Zephyr osEventFlags API has a bug when an osEventFlags is watched
from two different threads.

For WiseConnect, it means the events are not received by the thread
"si91x_bus".

WiseConnect 3.3 was not impacted because there there were a specific
osEventFlags for "si91x_bus" ("si91x_bus_events").

This patch restore use of "si91x_bus_events" to workaround the
osEventFlags bug.

Co-authored-by: Swami Das Nampalli <[email protected]>
Signed-off-by: Jérôme Pouiller <[email protected]>
Signed-off-by: Swami Das Nampalli <[email protected]>
@jerome-pouiller
Copy link
Collaborator Author

v3:

  • restore sli_cmsis_os2_ext_task_register.h
  • restore license.md

@jhedberg jhedberg merged commit 15994d7 into zephyrproject-rtos:main May 13, 2025
@jerome-pouiller jerome-pouiller deleted the wiseconnect-3.5 branch May 16, 2025 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants