Skip to content

Conversation

@aescolar
Copy link
Contributor

@aescolar aescolar commented Oct 24, 2024

Switch to released version with all of the Zephyr build fixes

(cherry picked from commit d5b6539)

1.8.8 came just 2 weeks after 1.8.7 but includes several bugfixes, including a fix for a bug that prevented building with gcc9 which is the default in Ubuntu 20.04.
https://github.com/picolibc/picolibc/releases/tag/1.8.8

As requested by @PerMac , due to failures seen in a CI job

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Oct 24, 2024

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
picolibc zephyrproject-rtos/picolibc@06bde1f zephyrproject-rtos/picolibc@e15656f (revert-zephyr-linker-fix) zephyrproject-rtos/[email protected]

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@PerMac
Copy link
Contributor

PerMac commented Oct 24, 2024

@ns-tolu This is responsible for some failures in CI testing bleutooth/mesh using tests from upstream but with softdevice controller. Those test don't work now due to other reasons and probably won't be resolved for 2.8. I don't know if the error seen there is also visible anywhere else. As a release manager, please decide if this should enter the release or not.

@PerMac
Copy link
Contributor

PerMac commented Oct 24, 2024

@aescolar @carlescufi what is your opinion on priority for this?

@aescolar
Copy link
Contributor Author

aescolar commented Oct 24, 2024

Since those test don't work now

A clarification: Not only those tests. Also some others which would pass otherwise.
This particular bug prevents building anything with picolibc from the source module with gcc 9. Which includes also building using just plain native_sim with picolibc with this oldish gcc.
Note gcc 9 is the default in Ubuntu 20.04 LTS (which I'd expect some people will still use, just like we do in some of our CI jobs).

Apart from this, Keith's release notes was not too clear on what else is broken with pico 1.8.7, but given that he made a new release right away to fix those I presume they are worthwhile.

So I would be quite inclined to update pico to 1.8.8.

@carlescufi
Copy link
Contributor

carlescufi commented Oct 24, 2024

Given that we use GCC 12 in our toolchain, that there have been 2 Ubuntu LTS releases since 20.04, and that this only affects if building picolib from source, I suggest we do not include this in 2.8.0.

@aescolar
Copy link
Contributor Author

I suggest we do not include this in 2.8.0.

Ok, I will close this PR then. The update can come in the next upmerge, or if somebody else requests it.

@aescolar aescolar closed this Oct 25, 2024
kapbh and others added 10 commits October 25, 2024 14:23
Create separate offloaded raw tx mode which will work
as stand-alone compile-time mode.

Signed-off-by: Kapil Bhatt <[email protected]>
(cherry picked from commit 5c3cc37)
Add wrapper APIs for the offloaded raw TX feature supported
by nRF70 devices.

Signed-off-by: Kapil Bhatt <[email protected]>
(cherry picked from commit 28b7494)
…RF70 FW file"

This reverts commit fe2288d.

Signed-off-by: Chaitanya Tata <[email protected]>
…nges

Whenever FW blobs are updated manually, we need to tell cmake to
auto-build the source files to use the latest firmware without doing a
pristine build.

This adds a custom target to be run with nRF Wi-Fi driver and updates
timestamp of fw_load.c to rebuild whenevr the blob is updated.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit e2e96ac)
… are changes"

This reverts commit e2e96ac.
This will be properly fixes by adding a target for nRF70.bin and
removing INCBIN approach.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 7f9be54)
…file

Instead of relying on INCBIN macros which do not properly add
dependencies, e.g., modifying FW file doesn't trigger rebuild.

Use the Zephyr cmake tooling to load the FW patch file as a header.

This also improves memory report where the patch target is clearly
visible instead of a hidden section.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit b40cb4c)
During watchdog (or any) interrupt processing, RPU accesses are being
made and they assert the wakeup_now flag this causes RPU recovery to not
trigger.

New false or true recovery detection algo:

 Check the time difference b/w last de-assert and assert, and if it
 exceeds minimum time needed for RPU to enter sleep, then not the
 timestamp. This timestamp will be used to compare when a watchdog
 interrupt is received and see if during the last window if host has
 given a chance for RPU to attempt sleep, if yes, then attempt recovery
 else ignore watchdog.

Also, add a Kconfig for the 10s active time that triggers recovery, this
needs to be passed to the FW (once we have enough patch memory).

Also, add a Kconfig for the minimum time needed for RPU to attempt sleep
in positive case.

Also, add a new _ms API for time stamp fetch, this is to avoid
precision loss when converting to and from ms to us and also makes code
readable by avoiding *1000 and /1000.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 5ad7339)
In case RPU is stuck and need a recovery, the failures in interface down
should be ignored as they are expected and we should proceed with device
removal that in turn removes power to the RPU.

TODO: This works for single VIF, but needs more thought for multi-VIF.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 04ddd6d)
Before proceeding with RPU bringup, do a sanity check by reading a known
signature to make sure the Host-RPU comms are operational.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit a23184c)
… recovery

These are helpful for debugging RPU recovery only.

Signed-off-by: Chaitanya Tata <[email protected]>
(cherry picked from commit 1e5db78)
koalatux and others added 14 commits November 4, 2024 14:57
…rable

Extend the `coap_transmission_parameters` struct with the field
`ack_random_percent`. This was the last remaining CoAP transmission
parameter that was not configurable at runtime.

Signed-off-by: Adrian Friedli <[email protected]>
(cherry picked from commit 98289e5)
Before this patch, any unexpected socket error during poll (caused by
LTE disconnects for instance) would lead to a infinite loop because the
error state was never cleared, handled or even signaled to the user.

Signed-off-by: Benjamin Lindqvist <[email protected]>
(cherry picked from commit f8a7035)
Protect global list of clients with mutex.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 1ea569d)
…ailed to send

When transmission of first request fails, reset the internal request
buffer as there is no ongoing CoAP transaction.

Application can deal with the failure.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 46b7c84)
…etrying CoAP msg

Refactor the CoAP retry handling into the handle_poll() function,
so that we only try to send retries if the socket reports POLLOUT.

Also move the receiving into same loop, so when poll() reports POLLIN
we recv() the message and handle it before proceeding to other sockets.

Also fix tests to handle POLLOUT flag and add support for testing
multiple clients.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 4c6dd4c)
…ng loop

Forward recv() errors to handle_poll(), so there is only one place to
handle error codes.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 6481b0e)
… send() failure

If send() fails, we have not technically send the CoAP retry yet, so
restore the same pending structure, so our timeouts and retry counters
stay the same.

This will trigger a retry next time the poll() return POLLOUT, so we
know that we can send.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 623a1ff)
…stead of flagging

It is error prone to flag separate booleans, so try to use
reset_internal_request() every time we release the internal request
structure.

Also refactor the reset_internal_request() so that we reset the
timeout value so it does not trigger again.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit a14f083)
Fix handling of received CoAP reset.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 1890dbd)
Add helper API to construct CoAP Reset message.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit e96e95b)
Response tokens are already compared in get_request_with_token().

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 1dc2487)
When receiving unknown response, respond with CoAP Reset.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 350d20e)
If we receive poll() error during a request, it must
be forwarded to application.

If instead receive poll() error later, it should not be
forwarded as it might be result of application closing the
socket.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 9c9dc9f)
In receiving thread, continuing the loops is based on
has_ongoing_exchanges() so it does not need atomic
coap_client_recv_active variable.

When idling, it wakes from semaphore. But there was potential
deadlock when coap_client_schedule_poll() would not signal the
semaphore, if atomic variable was already showing that it runs.
Removing the atomic variable removes this deadlock.

Signed-off-by: Seppo Takalo <[email protected]>
(cherry picked from commit 1e5a537)
@PerMac
Copy link
Contributor

PerMac commented Nov 4, 2024

I am reopening the PR. Since we have 2.8 release branch separated, this can go to the main without affecting the release (without backporting)

@PerMac PerMac reopened this Nov 4, 2024
@PerMac
Copy link
Contributor

PerMac commented Nov 4, 2024

@nrfconnect/ncs-co-build-system @carles I think it is worth fixing now since AFAIK there won't be more upmerges this year

@nordicjm
Copy link
Contributor

nordicjm commented Nov 4, 2024

@nrfconnect/ncs-co-build-system @carles I think it is worth fixing now since AFAIK there won't be more upmerges this year

Why would we not do an upmerge post zephyr 4.0 release?

Switch to released version with all of the Zephyr build fixes

Signed-off-by: Keith Packard <[email protected]>
(cherry picked from commit d5b6539)

1.8.8 came just 2 weeks after 1.8.7 but includes several bugfixes,
including a fix to a bug that prevented building with gcc9 which is the
default in Ubuntu 20.04.
https://github.com/picolibc/picolibc/releases/tag/1.8.8

Signed-off-by: Alberto Escolar Piedras <[email protected]>
@aescolar
Copy link
Contributor Author

Closing, as this already made it in thru an upmerge

@aescolar aescolar closed this Mar 11, 2025
@carles
Copy link

carles commented Mar 11, 2025

Hi there, I have nothing to do with this project but I keep getting notifications because you keep tagging my GitHub account (@carles). I suspect you are actually trying to tag some other Carles who is a contributor to this project. Please, make sure to tag the right account, thank you :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.