Skip to content
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

os: Precise data bus error with updatehub #24853

Closed
mtahirbutt opened this issue Apr 30, 2020 · 8 comments · Fixed by #25603
Closed

os: Precise data bus error with updatehub #24853

mtahirbutt opened this issue Apr 30, 2020 · 8 comments · Fixed by #25603
Assignees
Labels
bug The issue is a bug, or the PR is fixing a bug priority: low Low impact/importance bug
Milestone

Comments

@mtahirbutt
Copy link
Contributor

mtahirbutt commented Apr 30, 2020

Describe the bug
A clear and concise description of what the bug is.

When I run the updatehub app without DNS and without DHCP, it generates error right after probing. In other words, this error is generated after 1-2 minute right now but varies when updatehub lib is a bit played with.

updatehub: Probe metadata received
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: * BUS FAULT *[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: Precise data bus error[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: BFAR Address: 0x6f2e065[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: r0/a1: 0x06f2e065 r1/a2: 0x08039309 r2/a3: 0x00000031[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: r3/a4: 0x06f2e065 r12/ip: 0x20002c0e r14/lr: 0x08027e21[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: xpsr: 0x61000000[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: Faulting instruction address (r15/pc): 0x0802073e[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: Current thread: 0x20004f04 (unknown)[1B][0m
[1B][8D[1B][J[00:04:33.023,000] [1B][1;31m os: Halting system[1B][0m

What have you tried to diagnose or workaround this issue?

I removed the the recent enhancements (probe security, cleaning the code warnings etc.) made to updatehub lib and the app works fine at the moment. It is related to memory leak. So I tried to play around memory allocations in the updatehub lib and finally the code runs well.
Please see my branch
https://github.com/mtahirbutt/zephyr/tree/disco_l475_iot1

To Reproduce
Steps to reproduce the behavior:

  1. mkdir build; cd build
  2. cmake -DBOARD=disco_l475_iot1
  3. make
  4. See error

Expected behavior

The updatehub client should successfully download the image for updatehub-CE

Impact
What impact does this issue have on your progress (e.g., annoyance, showstopper)

Right now, I am successful in downloading the image and the framework works fine with older version of updatehub lib with some changings.

Screenshots or console output
If applicable, add a screenshot (drag-and-drop an image), or console logs
(cut-and-paste text and put a code fence (```) before and after, to help
explain the issue.

[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: * BUS FAULT *[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: Precise data bus error[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: BFAR Address: 0x6f2e065[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: r0/a1: 0x06f2e065 r1/a2: 0x08039309 r2/a3: 0x00000031[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: r3/a4: 0x06f2e065 r12/ip: 0x20002c0e r14/lr: 0x08027e21[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: xpsr: 0x61000000[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: Faulting instruction address (r15/pc): 0x0802073e[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0[1B][0m
[1B][8D[1B][J[00:04:32.948,000] [1B][1;31m os: Current thread: 0x20004f04 (unknown)[1B][0m
[1B][8D[1B][J[00:04:33.023,000] [1B][1;31m os: Halting system[1B][0m

Environment (please complete the following information):

  • OS: (e.g. Ubuntu 18.04.4 LTS)
  • Toolchain (e.g Zephyr 2.2.99 SDK-0.11.2, ...)
  • Commit SHA: 3223c43

Additional context
I did not use DHCP and DNS.

@mtahirbutt mtahirbutt added the bug The issue is a bug, or the PR is fixing a bug label Apr 30, 2020
@nandojve nandojve self-assigned this Apr 30, 2020
@nandojve
Copy link
Member

CC @otavio

@carlescufi
Copy link
Member

@nandojve or @otavio any chance you can take a look at the branch and logs?
@mtahirbutt if you haven't tried that yet, please enable CONFIG_HW_STACK_PROTECTION and retry, in case it's a stack overflow.

@carlescufi carlescufi added the priority: low Low impact/importance bug label May 5, 2020
@mtahirbutt
Copy link
Contributor Author

mtahirbutt commented May 5, 2020

I also reduced k_malloc (inside probe and install functions) assignments in the most recent updatehub lib code and used array variables, the issue also vanishes. will update but still facing some more issues. i can also try CONFIG_HW_STACK_PROTECTION by the way.

@nandojve
Copy link
Member

nandojve commented May 5, 2020

Hi @carlescufi, we are looking at. I already self assigned myself the issue.
Thank you for reach us.

@nandojve
Copy link
Member

nandojve commented May 8, 2020

@mtahirbutt We need that #25010 fixed to continue testing.

@mtahirbutt
Copy link
Contributor Author

mtahirbutt commented May 8, 2020

@nandojve I am experiencing some other error for zephyr master also "SHA256 size not valid etc." during Probe metadata also "could not parse jason etc." to the most recent zephyr so stopped at that and now working with my branch I mentioned. I have to make that work to another network interface. will look into zephyr master later. and as a general remark I am getting good results also with zephyr 2.2.99 regarding mcuboot stuff.

@otavio
Copy link
Contributor

otavio commented May 8, 2020

@mtahirbutt we apologize for the delay but we are on a dead-end as this is not reproducible here, so we foresee two possible scenarios:

  1. we are missing something
  2. your code/settings are different and it causes the side effect

On top of that, we found multiple issues with the ST MCUs and we've been reporting and fixing those issues as we can. Last is #25010 as @nandojve mentioned.

So, the bottom line is, we need to be using very same code/settings and reproduce the issue to be capable of debugging it.

@mtahirbutt
Copy link
Contributor Author

mtahirbutt commented May 9, 2020

@otavio thanks for your note. Yes there are still some side effects (retransmissions and in appropriate memory usage or something else) with my branch that I will take care later. right now I want to updatehub work quickly with another interface, will see zephyr master (about probe security and other enhancements made by you) later. Additionally, at first instance, I do not use DHCP and DNS, I am not sure about your setting.

mtahirbutt added a commit to mtahirbutt/zephyr that referenced this issue May 14, 2020
mtahirbutt added a commit to mtahirbutt/zephyr that referenced this issue May 21, 2020
mtahirbutt pushed a commit to mtahirbutt/zephyr that referenced this issue May 21, 2020
On x86_64, the arch_timing_* variables are not set which
results in incorrect values being used in the timing_info
benchmarks. So instrument the code for those values.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

lib: updatehub: Adding support for modem and fixing zephyrproject-rtos#24853 for STM32l475 with iot board

Revert "cmake: introduction of ZephyrExtension package"

This reverts commit ac898bc.

This commit was merged by mistake, but in a way that was against the
decision of the TSC on May 20, 2020, which was to wait a week to let
people digest befor merging.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

boards: fix the sys ticks per second for emsk

As a slow FPGA platform with max. freq < 25 Mhz,
the default CON_SYS_CLOCK_TICKS_PER_SEC=10000 is
not suitable. CON_SYS_CLOCK_TICKS_PER_SEC=100 is
a better value.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

soc: fix the int numbers of emsdp

emsdp is a FPGA based platform, can be loaded with different
configurations. Different configuration have different
interrupts:

* em5d, em7d and em11d have 111 interrupts
* em4 and em6 have 113 interrupts
* em7d_esp has 112 interrupts

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

tests: add a workaround for arc emsdp

arc emsdp's console will use irq 108/107 which will
conflict with irqs used in tests (emsdp has 112 irqs),
so add a workaround for emsdp.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

dts: arm: Add missing adc property for kinetis k8x and kv5x socs

Adds the required #io-channel-cells property to kinetis k8x and kv5x
socs. We are now consistently defining this property for all
nxp,kinetis-adc16 compatible nodes.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

boards: frdm_k82f: Enable adc instance and pinmux

Enables the adc instance and pinmux associated with arduino header pin
A2 on the frdm_k82 board. Adds adc to the board yaml to ensure we build
adc samples/tests for this board in CI.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

tests: adc: Configure adc_api test for frdm_k82f board

Configures the adc api test to use the arduino header A2 pin on the
frdm_k82f board. This follows frdm_k64f and frdm_kw41z boards, which
also use the arduino header A2 pin for the test.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

tracing: cpu_stats: add missing macro

add missing macro K_MSEC() for CONFIG_TRACING_CPU_STATS_INTERVAL

Signed-off-by: Joel Westerberg <joel@teenage.engineering>

usb: driver: nordic: Unlock mutex in case of error.

Mutex that was previously locked must be unlocked in case
of an error.

Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>

drivers: arcv2_timer0: rename overflow_cyc to overflow_cycles

* rename overflow_cyc to overflow_cycles for better understanding
* use MIN macro to replace if .. else ..
* typo fix in comments

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

drivers: arcv2_timer0: back to use level triggered irq

the pulse triggered timer irq doesn't work for all targets. In
iotdk, we found the clear of IP bit will clear int request
when elapsed called in thread context. So come back to level
triggered way which is supported in all targets, and use the sw
triggered irq to remember the irq request which may be cleared
in non timer int handler.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

drivers: arcv2_timer0: minor fix and optimization for SMP case

* still need to clear IP bit in timer irq handler

* last_time should be aligned to ticks, old code will miss some
cycles which are about (curret_time - last_time) % CYC_PER_TICK

* in timeout set, shorten the delay needed when tick is 0, this
 will improve the response of timer irq

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

dts: arm: Fix incorrect interrupt cells order

In aarch64 DTs, priority and flags cells have been swapped,
fix the same.

Correct interrupt property per the GIC binding document
looks like:
interrupts = <irq_type irq_num irq_flags irq_priority>;

Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>

x86: gen_idt.py: typo fix

Fix "consule" as "consult"

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

scripts: net: Fix incorrect error messages

If environment variables ZEPHYR_BASE or NET_TOOLS_BASE are unset, an
incorrect message is printed saying that "it is set, but it is not a
directory":

$ZEPHYR_BASE is unset
$ZEPHYR_BASE is set, but it is not a directory
$NET_TOOLS_BASE is unset, no net-tools found
$NET_TOOLS_BASE set, but it is not a directory

This patch fixes that issue.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

scripts: gen_offset_header: add argument help text

Help text is set to documentation string of the script.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

samples: usb: audio: Fix building off sample with sanitycheck

The USB audio samples when added didn't have any tests: sections in the
sample.yaml so they would never get build on any platform as part of
sanitycheck.  Add the tests: section and limit the samples to build on
nrf52840dk_nrf52840 as that was the intended platform these samples
where initially developed for.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

drivers: flash: nrf_qspi_nor: support read of sub-word lengths

mcuboot and possibly other tools read single byte values to determine
the state of objects.  Rather than fail to do the read of values too
short for this peripheral detect the situation and read into a stack
buffer that meets the length criteria, and on success copy the data
into the provided buffer.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>

settings_fcb: Fix storing the data

Change fixes storing the data by adding missing write retry after
the last compression. Without the change error was returned instead
of retrying.

Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>

drivers: timer: nrf: Fix premature timeouts

If timeout is being overwrite exactly when previous one is expiring
then hardware event was cleared correctly but interrupt was already
triggered. Interrupt routine was assuming that compare event is set
and proceed with that assumption. However, in that corner case when
compare event was overwritten and event was cleared, that was not the
case.

As the outcome, timeout could be triggered prematurely. Fixed by
clearing pending interrupt after handling previous compare value.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

drivers: timer: nrf: Remove RTC1 dependency

Removed RTC1 dependencies in the code. Single define picks the instance.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
mtahirbutt added a commit to mtahirbutt/zephyr that referenced this issue May 21, 2020
…4853

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>

In this PR, an implementation has been proposed and tested with
DIGI XBC-M5-UT-001 XBee Cellular 3G modem with STM32L475 MCU BSP.

Revert "cmake: introduction of ZephyrExtension package"

This reverts commit ac898bc.

This commit was merged by mistake, but in a way that was against the
decision of the TSC on May 20, 2020, which was to wait a week to let
people digest befor merging.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

boards: fix the sys ticks per second for emsk

As a slow FPGA platform with max. freq < 25 Mhz,
the default CON_SYS_CLOCK_TICKS_PER_SEC=10000 is
not suitable. CON_SYS_CLOCK_TICKS_PER_SEC=100 is
a better value.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

soc: fix the int numbers of emsdp

emsdp is a FPGA based platform, can be loaded with different
configurations. Different configuration have different
interrupts:

* em5d, em7d and em11d have 111 interrupts
* em4 and em6 have 113 interrupts
* em7d_esp has 112 interrupts

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

tests: add a workaround for arc emsdp

arc emsdp's console will use irq 108/107 which will
conflict with irqs used in tests (emsdp has 112 irqs),
so add a workaround for emsdp.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

dts: arm: Add missing adc property for kinetis k8x and kv5x socs

Adds the required #io-channel-cells property to kinetis k8x and kv5x
socs. We are now consistently defining this property for all
nxp,kinetis-adc16 compatible nodes.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

boards: frdm_k82f: Enable adc instance and pinmux

Enables the adc instance and pinmux associated with arduino header pin
A2 on the frdm_k82 board. Adds adc to the board yaml to ensure we build
adc samples/tests for this board in CI.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

tests: adc: Configure adc_api test for frdm_k82f board

Configures the adc api test to use the arduino header A2 pin on the
frdm_k82f board. This follows frdm_k64f and frdm_kw41z boards, which
also use the arduino header A2 pin for the test.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

tracing: cpu_stats: add missing macro

add missing macro K_MSEC() for CONFIG_TRACING_CPU_STATS_INTERVAL

Signed-off-by: Joel Westerberg <joel@teenage.engineering>

usb: driver: nordic: Unlock mutex in case of error.

Mutex that was previously locked must be unlocked in case
of an error.

Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>

drivers: arcv2_timer0: rename overflow_cyc to overflow_cycles

* rename overflow_cyc to overflow_cycles for better understanding
* use MIN macro to replace if .. else ..
* typo fix in comments

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

drivers: arcv2_timer0: back to use level triggered irq

the pulse triggered timer irq doesn't work for all targets. In
iotdk, we found the clear of IP bit will clear int request
when elapsed called in thread context. So come back to level
triggered way which is supported in all targets, and use the sw
triggered irq to remember the irq request which may be cleared
in non timer int handler.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

drivers: arcv2_timer0: minor fix and optimization for SMP case

* still need to clear IP bit in timer irq handler

* last_time should be aligned to ticks, old code will miss some
cycles which are about (curret_time - last_time) % CYC_PER_TICK

* in timeout set, shorten the delay needed when tick is 0, this
 will improve the response of timer irq

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

dts: arm: Fix incorrect interrupt cells order

In aarch64 DTs, priority and flags cells have been swapped,
fix the same.

Correct interrupt property per the GIC binding document
looks like:
interrupts = <irq_type irq_num irq_flags irq_priority>;

Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>

x86: gen_idt.py: typo fix

Fix "consule" as "consult"

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

scripts: net: Fix incorrect error messages

If environment variables ZEPHYR_BASE or NET_TOOLS_BASE are unset, an
incorrect message is printed saying that "it is set, but it is not a
directory":

$ZEPHYR_BASE is unset
$ZEPHYR_BASE is set, but it is not a directory
$NET_TOOLS_BASE is unset, no net-tools found
$NET_TOOLS_BASE set, but it is not a directory

This patch fixes that issue.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

scripts: gen_offset_header: add argument help text

Help text is set to documentation string of the script.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

samples: usb: audio: Fix building off sample with sanitycheck

The USB audio samples when added didn't have any tests: sections in the
sample.yaml so they would never get build on any platform as part of
sanitycheck.  Add the tests: section and limit the samples to build on
nrf52840dk_nrf52840 as that was the intended platform these samples
where initially developed for.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

drivers: flash: nrf_qspi_nor: support read of sub-word lengths

mcuboot and possibly other tools read single byte values to determine
the state of objects.  Rather than fail to do the read of values too
short for this peripheral detect the situation and read into a stack
buffer that meets the length criteria, and on success copy the data
into the provided buffer.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>

settings_fcb: Fix storing the data

Change fixes storing the data by adding missing write retry after
the last compression. Without the change error was returned instead
of retrying.

Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>

drivers: timer: nrf: Fix premature timeouts

If timeout is being overwrite exactly when previous one is expiring
then hardware event was cleared correctly but interrupt was already
triggered. Interrupt routine was assuming that compare event is set
and proceed with that assumption. However, in that corner case when
compare event was overwritten and event was cleared, that was not the
case.

As the outcome, timeout could be triggered prematurely. Fixed by
clearing pending interrupt after handling previous compare value.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

drivers: timer: nrf: Remove RTC1 dependency

Removed RTC1 dependencies in the code. Single define picks the instance.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

lib:updatehub support for the modem and fix for zephyrproject-rtos#24853

testing

lib: updatehub support for the modem and fix for zephyrproject-rtos#24853

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>

This pull request adds support for slower air interfaces
(modem for example) to updatehub lib. Originally updatehub
was designed for high speed fixed LAN interfaces.
Therefore, in this PR, an implementation has been proposed
and tested with DIGI XBC-M5-UT-001 XBee Cellular 3G modem
with STM32L475 MCU BSP. A feedbakc is expected for
evaluation with other interfaces.

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>
mtahirbutt pushed a commit to mtahirbutt/zephyr that referenced this issue May 21, 2020
On x86_64, the arch_timing_* variables are not set which
results in incorrect values being used in the timing_info
benchmarks. So instrument the code for those values.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>

lib: updatehub: Adding support for modem and fixing zephyrproject-rtos#24853 for STM32l475 with iot board

Revert "cmake: introduction of ZephyrExtension package"

This reverts commit ac898bc.

This commit was merged by mistake, but in a way that was against the
decision of the TSC on May 20, 2020, which was to wait a week to let
people digest befor merging.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>

boards: fix the sys ticks per second for emsk

As a slow FPGA platform with max. freq < 25 Mhz,
the default CON_SYS_CLOCK_TICKS_PER_SEC=10000 is
not suitable. CON_SYS_CLOCK_TICKS_PER_SEC=100 is
a better value.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

soc: fix the int numbers of emsdp

emsdp is a FPGA based platform, can be loaded with different
configurations. Different configuration have different
interrupts:

* em5d, em7d and em11d have 111 interrupts
* em4 and em6 have 113 interrupts
* em7d_esp has 112 interrupts

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

tests: add a workaround for arc emsdp

arc emsdp's console will use irq 108/107 which will
conflict with irqs used in tests (emsdp has 112 irqs),
so add a workaround for emsdp.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

dts: arm: Add missing adc property for kinetis k8x and kv5x socs

Adds the required #io-channel-cells property to kinetis k8x and kv5x
socs. We are now consistently defining this property for all
nxp,kinetis-adc16 compatible nodes.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

boards: frdm_k82f: Enable adc instance and pinmux

Enables the adc instance and pinmux associated with arduino header pin
A2 on the frdm_k82 board. Adds adc to the board yaml to ensure we build
adc samples/tests for this board in CI.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

tests: adc: Configure adc_api test for frdm_k82f board

Configures the adc api test to use the arduino header A2 pin on the
frdm_k82f board. This follows frdm_k64f and frdm_kw41z boards, which
also use the arduino header A2 pin for the test.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>

tracing: cpu_stats: add missing macro

add missing macro K_MSEC() for CONFIG_TRACING_CPU_STATS_INTERVAL

Signed-off-by: Joel Westerberg <joel@teenage.engineering>

usb: driver: nordic: Unlock mutex in case of error.

Mutex that was previously locked must be unlocked in case
of an error.

Signed-off-by: Emil Obalski <emil.obalski@nordicsemi.no>

drivers: arcv2_timer0: rename overflow_cyc to overflow_cycles

* rename overflow_cyc to overflow_cycles for better understanding
* use MIN macro to replace if .. else ..
* typo fix in comments

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

drivers: arcv2_timer0: back to use level triggered irq

the pulse triggered timer irq doesn't work for all targets. In
iotdk, we found the clear of IP bit will clear int request
when elapsed called in thread context. So come back to level
triggered way which is supported in all targets, and use the sw
triggered irq to remember the irq request which may be cleared
in non timer int handler.

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

drivers: arcv2_timer0: minor fix and optimization for SMP case

* still need to clear IP bit in timer irq handler

* last_time should be aligned to ticks, old code will miss some
cycles which are about (curret_time - last_time) % CYC_PER_TICK

* in timeout set, shorten the delay needed when tick is 0, this
 will improve the response of timer irq

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>

dts: arm: Fix incorrect interrupt cells order

In aarch64 DTs, priority and flags cells have been swapped,
fix the same.

Correct interrupt property per the GIC binding document
looks like:
interrupts = <irq_type irq_num irq_flags irq_priority>;

Signed-off-by: Abhishek Shah <abhishek.shah@broadcom.com>

x86: gen_idt.py: typo fix

Fix "consule" as "consult"

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

scripts: net: Fix incorrect error messages

If environment variables ZEPHYR_BASE or NET_TOOLS_BASE are unset, an
incorrect message is printed saying that "it is set, but it is not a
directory":

$ZEPHYR_BASE is unset
$ZEPHYR_BASE is set, but it is not a directory
$NET_TOOLS_BASE is unset, no net-tools found
$NET_TOOLS_BASE set, but it is not a directory

This patch fixes that issue.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

scripts: gen_offset_header: add argument help text

Help text is set to documentation string of the script.

Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>

samples: usb: audio: Fix building off sample with sanitycheck

The USB audio samples when added didn't have any tests: sections in the
sample.yaml so they would never get build on any platform as part of
sanitycheck.  Add the tests: section and limit the samples to build on
nrf52840dk_nrf52840 as that was the intended platform these samples
where initially developed for.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>

drivers: flash: nrf_qspi_nor: support read of sub-word lengths

mcuboot and possibly other tools read single byte values to determine
the state of objects.  Rather than fail to do the read of values too
short for this peripheral detect the situation and read into a stack
buffer that meets the length criteria, and on success copy the data
into the provided buffer.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>

settings_fcb: Fix storing the data

Change fixes storing the data by adding missing write retry after
the last compression. Without the change error was returned instead
of retrying.

Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>

drivers: timer: nrf: Fix premature timeouts

If timeout is being overwrite exactly when previous one is expiring
then hardware event was cleared correctly but interrupt was already
triggered. Interrupt routine was assuming that compare event is set
and proceed with that assumption. However, in that corner case when
compare event was overwritten and event was cleared, that was not the
case.

As the outcome, timeout could be triggered prematurely. Fixed by
clearing pending interrupt after handling previous compare value.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>

drivers: timer: nrf: Remove RTC1 dependency

Removed RTC1 dependencies in the code. Single define picks the instance.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
@nandojve nandojve added this to the v2.3.0 milestone May 26, 2020
nandojve pushed a commit to UpdateHub/zephyr that referenced this issue May 26, 2020
Fix variable-size string copy patch that introduced a runtime bug that
causes a bus fault.

Fixes zephyrproject-rtos#24853.

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>
Signed-off-by: Gerson Fernando Budke <gerson.budke@ossystems.com.br>
carlescufi pushed a commit that referenced this issue May 26, 2020
Fix variable-size string copy patch that introduced a runtime bug that
causes a bus fault.

Fixes #24853.

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>
Signed-off-by: Gerson Fernando Budke <gerson.budke@ossystems.com.br>
krip-tip pushed a commit to krip-tip/zephyr-local that referenced this issue May 30, 2020
Fix variable-size string copy patch that introduced a runtime bug that
causes a bus fault.

Fixes zephyrproject-rtos#24853.

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>
Signed-off-by: Gerson Fernando Budke <gerson.budke@ossystems.com.br>
nandojve pushed a commit to UpdateHub/zephyr that referenced this issue Aug 30, 2020
Fix variable-size string copy patch that introduced a runtime bug that
causes a bus fault.

Fixes zephyrproject-rtos#24853.

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>
Signed-off-by: Gerson Fernando Budke <gerson.budke@ossystems.com.br>
nandojve pushed a commit to UpdateHub/zephyr that referenced this issue Aug 30, 2020
Fix variable-size string copy patch that introduced a runtime bug that
causes a bus fault.

Fixes zephyrproject-rtos#24853.

Signed-off-by: Tahir Akram <mtahirbutt@hotmail.com>
Signed-off-by: Gerson Fernando Budke <gerson.budke@ossystems.com.br>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug The issue is a bug, or the PR is fixing a bug priority: low Low impact/importance bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants