SEGGER Ozone J-Trace Code Profile identified iterations over daint value
as hot path. The iterations show at the very top of code profile because
full iteration happens whenever there is any activity on endpoint.
Optimize daint handling loops so only set bits are iterated over. While
this optimization depends on find_lsb_set() efficiency, it seems to be
worth it solely on the basis that quite often only few bits are set.
After a bit deeper analysis, I was suprised that on ARM Cortex-M33 the
find_lsb_set() approach is faster than naive iteration even if all bits
are set (which is extreme case because USB applications are unlikely to
use all 16 IN and 16 OUT endpoints simultaneously). This is due to fact
that there is only one conditional jump CBNZ and find_lsb_set() - 1
translates to RBIT + CLZ and then clearing the bit uses LSL.W + BIC.W.
Whereas the naive itation uses ADDS + CMP + BNE for the loop handling
and also has LSR.W + LSLS + BPL (+ ADD.W instruction on each iteration
to add 16 for OUT endpoints) for the continue check. Therefore the
optimized code on ARM Cortex-M33 is never worse than naive iteration.
Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
Some simics dependencies live at its own directory, not application's.
Note we need to change it to its absolute path, because relative paths
for `add_custom_target` are relative to the build directory, while
relative SIMICS_PROJECT are more likely to be relative to ZEPHYR_BASE,
from where west or twister are normally run.
Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
Similar to the pre_dt_board.cmake, this is an optional file for
additional arguments that need to get passed to the devicetree compiler.
Signed-off-by: Paul Schaetzle <paulschaetzle@mailbox.org>
GitHub seems to have issue with workflow state caching that causes the
DNM step to not work properly in few cases and not detecting changes in
the DNM tag, forcing people to mess with tags or close/opening PRs,
which in turns restarts all workflows.
Convert the script to Python so that the tag data is guaranteed to be
fresh.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
- The stm32h573i_dk board uses a ft3267 i2c controller for the touchscreen
connected on i2c4.
- The zephyr driver ft5336 can control it.
- Use the I2C STM32 V2 Timing calculation.
Signed-off-by: Samuel Quiniou <samuel.quiniou@rtone.fr>
The OpenOCD STM32-specific configuration was included into the common
configuration, which was then used in board files. Follow nRF5
convention instead: use manufacturer-specific config in boards.
Also due to the fact that the include of STM32-specific config was
placed *after* board_finalize_runner_args() it didn't really work
anyways.
Signed-off-by: Marek Metelski <marek@metelski.dev>
Add config and overlay to samples for testing stop/standby modes:
- samples/boards/st/power_mgmt/blinky
- samples/boards/st/power_mgmt/wkup_pins
I've measured consumption for each low-power mode:
- stop (regulator in run mode) ~217 uA
- stop (regulator in low-power mode) ~206 uA
- standby mode ~3.5 uA
Low-power mode wakeup timings from the datasheet,
but it barely meets these in reality:
- stop (regulator in run mode) 3.6 us
- stop (regulator in low-power mode) 5.4 us
- standby 50 us
It's possible to use RTC as idle timer to exit from stop mode.
Signed-off-by: Oleh Kravchenko <oleg@kaa.org.ua>
Add a pull down to SPIM GPIO pins on nRF5340DK to ensure the i/o pins
on the nrf7002 device are not floating when SPI is inactive.
Signed-off-by: Bansidhar Mangalwedhekar <bansidhar.mangalwedhekar@nordicsemi.no>
Previously, the interval was only checked for non-zero. Now it is
validated to be within the allowed range (BT_HCI_LE_INTERVAL_MIN
to BT_HCI_LE_INTERVAL_MAX) to avoid invalid values.
Signed-off-by: Babak Arisian <bbaa@demant.com>
Loopback with D4 <-> D5 to avoid a failed test with the error
"physical pull-down does not read low."
It looks like pins D2-D3 couldn't be configured to pull-up
for some reason.
Signed-off-by: Fabrice DJIATSA <fabrice.djiatsa-ext@st.com>
The ogirnal design is using a J-Link script, then the path of image
is saved into the script file during building, it will has issue
when generate twister artifacts and copy it to another path for
testing as path is changed. so refine it to use new parameter of
J-Link runner parameter "--flash-sram" to fix this issue.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Add new parameter "--flash-sram" for J-Link runner to flash the image
to SRAM and modify the PC register to start of SRAM.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
If memory allocation for a dynamic object fails, an attempt is made to free
a null pointer instead of the allocated element of the dynamic object list.
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
The pinctrl register bits need to be restored to GPIO mode
after we exit from certain low power modes. We cannot rely
on the pin function to default to GPIO.
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
Fix assertion observed establishing subsequent Peripheral
ISO connection due to a race between the new CIS context
being acquired into a CIG and LLL getting a CIS sorted by
CIS offset in that CIG. Get only active CISes from the CIG
in the LLL prepare.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix max tx octets value used as given to the Host by the
LE Read Buffer Size command response.
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Fix missing removal of redundant ISO Rx size in ACL Rx PDU
allocation size.
Related to commit 7c89f1fe9f ("Bluetooth: controller:
Support for separate ISO RX data path").
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
Add the PM handler. Reinitialize the DMA block in the
TURN_ON action, this is needed for some SoC's after the system
exits certain power modes.
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
Previously, the TMP1075 driver only used the integer part (val1) of the
sensor_value when setting TLOW and THIGH thresholds. This limited the
precision of temperature threshold configuration and could be insufficient
in applications requiring fine-grained control.
This patch adds proper handling for the fractional part (val2) by encoding
it into bits [7:4] of the 12-bit temperature register according to the
TMP1075 datasheet. The decoding logic in get_threshold_attribute() is also
updated to recover the fractional value accurately.
Signed-off-by: Hank Wang <wanghanchi2000@gmail.com>
Update the HW models module to:
c6296f600a6851bd652f207ab4908d339e1ce705
Including the following:
c6296f6 52/53 CCM: Remove warning on TASK_STOP
cb790ab hw_testcheat_if: Typo fix in comment
38956c4 RADIO: Add cheat interface to disable Tx or Rx
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Select SERIAL_SUPPORT_INTERRUPT for uart_bt, this is required to have
the interrupt API available.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Added the possibility of leaving the gpio-int property empty, in case
the corresponding pin is not connected.
Signed-off-by: Mirko Bottarelli <mirko.bottarelli@gmail.com>
Fix device initialisation, allowing for empty interrupt_gpios in the
dts, as suggested by the documentation.
Signed-off-by: Mirko Bottarelli <mirko.bottarelli@gmail.com>
Update the includes so that only what is actually used is included,
and so that everything is used is includes (IWYU).
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add a new sample specifically for the SHT4X sensor.
Signed-off-by: Jakub Wasilewski <jwasilewski@internships.antmicro.com>
Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
Connection manager enforces non-blocking disconnect() behavior, yet in
case CONN_MGR_IF_NO_AUTO_DOWN flag is not set, it'd put the interface
down right after, disrupting the disconnect process.
As putting the interface down can be handled in the corresponding event
handler as well, when the interface is actually disconnected, remove the
conn_mgr_conn_if_auto_admin_down() call from conn_mgr_if_disconnect().
To make this work with persistence flag, introduce a new internal flag
indicating that the interface is in active disconnect.
Finally, since it isn't really necessary that disconnect() API call is
non-blocking, remove that requirement.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Certain power modes lose state of the GPIO, hence we need to
reconfigure the interrupt GPIO. This is managed using pm_notifiers
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
Allow either programatically from the test/code or from the command
line to chose if this executable exiting should terminate the
whole simulation, or if it should only disconnect the device.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Main changes since v2.5:
* ext_2G4_phy_v1: Now supports DISCONNECTS during abort re-evaluations
* ext_2G4_phy_v1: Also support bitrates multiple of 250Kbps and 333Kbps
Note: Like before, bsim remains fully backwards compatible
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
The ns16550 UART driver has multiple variant Kconfig options. To
successfully run the uart_basic_api test, the correct variant must be
selected. This commit adds the missing Kconfig option.
Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
Make the vbus-limit-microamp property of npm1300-charger required and
change its range to reflect the one actually supported by the device.
Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
This makes SSD1327 use the new L8 display format.
It also fixes all displays that didnt support the undocumented
monochrome mode.
It also adds i2c and revamps the entire driver.
Signed-off-by: Camille BAUD <mail@massdriver.space>
A sample show-casing the core functionalities of the nPM2100 PMIC using
the nPM2100 EK as a shield.
Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>