Kconfig changes on master
We have just merged PR #7293 , and this has a few implications for developers and users. With the end goal being removing the dependency to the C implementation of the different Kconfig tools in order to provide native support on all operating systems, including Windows, Ulf has contributed a Python "menuconfig" implementation that is now the only frontend available for browsing the Kconfig tree.
In practice this means:
* The gconfig and xconfig targets have been removed
* The menuconfig target now uses a Python implementation with curses as its backend
* There is a new Python requirement on Windows (windows-curses) that is part of requirements.txt
If anyone in the community wants to look into providing a graphical user interface for Kconfig to replace the ones that have been removed, a good starting point would be to:
* Use Qt and the PyQt  or PySide (recently announced for Qt 5) bindings
* Use scripts/kconfig/menuconfig.py as a reference on how to access the Kconfig tree data from Python
Reminder: Zephyr API discussion weekly call tomorrow
Tomorrow we will have another API discussion call. Details on how to join:
We still need someone to take ownership of the I2C API at this point. The list of issues to address can be found summarized here:
If you think you can help out improving the I2C API please let us know.
As always, more information in the umbrella GitHub issue:
and in the meeting minutes:
toggle quoted messageShow quoted text
Awesome, thanks for the info !!
On Sun, May 6, 2018, 10:55 AM Johan Hedberg <johan.hedberg@...> wrote:
On Thu, May 03, 2018, vikrant8051 wrote:
What will be status of #BluetoothMesh in #LTS v.1.12.0 release?There has been discussion of doing a qualification listing (perhaps two,
one for the core host stack and another for Mesh) for LTS releases under
the name of the Linux Foundation, but as far as I know there's no firm
committment to this yet (e.g. the funding of it). These would be
subsystem qualification listings, so you could combine them together
into a product listing (e.g. the controller qualification that Nordic
did is also a subsystem listing).
That said, both the core host stack (GAP, GATT, SM, L2CAP, etc) and mesh
are periodically run against the PTS, so there shouldn't be any major
surprises if you were to do the qualification process yourself.
As of now, we can't save Provisioning, Configuration & other real time dataIf you follow the master branch, you'll have seen that the Bluetooth
stack has transitioned from the bt_storage API to the newly introduced
settings API (ported from MyNewt, where it's called "conf"). Currently
only pairing credentials (LTK, etc) are covered, but I have some patches
for Mesh that I'm hoping to send next week.
How many Models (for eg. Generic, Lighting) will show case under #LTS ?There's really not much "secret" stuff when it comes to the release,
i.e. something that would only be "revealed" at the last moment (the way
you make it sound). A lot of what you'll get is what you can see already
now in the master branch.
What will be status of Friend & Low Power Nodes implementation ?Both of those are complete and passing the PTS tests for them.
Zephyr news, 4 May 2018
Hello and happy Friday,
This is the 4 May 2018 newsletter tracking the latest Zephyr
development merged into the mainline tree on GitHub.
An HTML version is available here:
Contents are broken down like this:
- Important changes: ABI/API breaks and some features
- New features: non-exhaustive descriptions of new features
- Bug fixes: non-exhaustive list of fixed bugs
- Individual changes
This newsletter covers changes in Zephyr between these two commits
- b742b62b ("kconfiglib: Update to get split_expr() in"), 17 April 2018
- dc97fc2a ("kconfiglib: Update to default to UTF-8 for Python 3"), 2 May 2018
Retpolines on x86:
x86 CPUs affected by Spectre v2 now support retpolines when invoking
interrupt and exception handlers, during thread entry, and when
invoking syscall handlers.
These changes also saw the removal of the (unused) _far_jump() and
LED and Button Definition Moves:
This continues the long-term project to move device configuration from
Kconfig to Device Tree.
LED and button definitions were removed from all STM32 board.h files,
since the corresponding defines now come from device tree. This is a
breaking change, as the old XXX_GPIO_PORT is now
XXX_GPIO_CONTROLLER. Applications which used the old names will need
NXP Kinetis SoCs were also converted to generate this information from
Device Tree. This change preserved names, but did not include updates
for the FXOS8700 or FXAS21002 temperature sensors or the MCR20A
802.15.4 radio. Users of those devices on NXP Kinetis boards should be
advised that support is broken in this Zephyr tree.
Deprecated __stack macro removed:
The __stack macro, which was deprecated in favor of K_STACK_DEFINE
before v1.11 was released, has been removed.
mbedTLS update to fix remote execution holes:
The mbedTLS cryptography library was updated from version 2.7.0 to
version 2.8.0, addressing CVEs 2018-0488 and 2018-0487. These are
remote execution vulnerabilities that could occur when TLS or DTLS is
The k_thread_cancel() API is deprecated. Applications should use
Generic storage partition rename:
The NFFS flash partition available on many boards, which was
previously aliased to nffs_partition, has been renamed to
storage_partition, to reflect its general usefulness for a variety of
storage systems. Its existence is now controlled via a
Out of tree applications using the old alias or configuration option
to access this partition will need updates.
The ARC architecture now supports CONFIG_STACK_SENTINEL, which can help
diagnose stack overflow issues.
SEGGER RTT support is now enabled on all NXP MCUs.
Support was added for Cadence's proprietary XCC compiler toolchain for
the XTensa architecture, along with support for the intel_s1000 SoC.
Judging from these drivers, the SoC is intended for use in speech and
other audio processing. Zephyr SoC-level support is provided for DMA,
I2S, UART, GPIO, USB, and I2C, with board support via intel_s1000_crb.
I2C driver support was enabled for all the official nRF5 boards
provided by Nordic Semiconductor.
The bbc_microbit now supports flash partitions for mcuboot and on-chip
A variety of improvements were merged into the build system.
Notably, the build system now caches information obtained from the
toolchain, optimizing subsequent invocations of cmake using the same
toolchain. Factor of two speedups have been observed when the cache is
used. A few problems have been identified and fixed up since the
initial merge, but hopefully the major issues are resolved.
In another significant addition, the build system now contains an
initial Python-based menuconfig alternative. This can currently be
used by running "ninja pymenuconfig" on all supported targets (though
Windows users will need to install an additional wheel). This is a
significant improvement for Windows users, who previously have not had
a configuration system browser. The pymenuconfig target is
experimental. When it reaches sufficient feature parity with the
existing menuconfig target, it will replace it, and the C-based
Kconfig tools will be removed from Zephyr.
Further improvements include better error feedback when toolchains are
not found, the list of printed boards now respecting BOARD_ROOT, and
silencing of verbose compiler check messages.
There is a new API for LEDs in include/led.h. (Zephyr had an API for
strips of LEDs; this new API is for controlling individual lights.)
The initial API includes support for basic on/off, as well as
brightness and blinking. A driver and sample application for the TI
LP3943 LED controller were also merged.
The ST LSM6DSL inertial module driver saw a cleanup and now supports
sensor hub mode. This allows the LSM6DSL to act as a sensor hub by
connecting additional I2C slave devices through to the driver via the
main communication channel.
STM32L0 and L4 microcontrollers now support the MSI (multi-speed
internal) clock as a system clock source.
The uart_pipe console driver now supports both edge and level
triggering, allowing it to work with CDC ACM.
The MCUX GPIO driver now uses device tree.
A GPIO driver for NXP i.MX SoCs was merged.
Bindings were added for the DesignWare CAVS multilevel interrupt
GPIO nodes are now present on all Kinetis SoCs.
The search results pages for the online Zephyr documentation now have
much cleaner output.
Zephyr's documentation describing its Kconfig usage was re-worked and
improved as part of the transition towards a Python-based menuconfig
The kernel's scheduler interface was significantly refactored and
cleaned up. The scheduler's system interface was decreased to twelve
functions; notably, usage of _Swap() was removed in various places in
favor of a new _reschedule().
Userspace configurations now support dynamic creation of kernel
objects. Previously, kernel objects (such as mutexes, pipes, and
timers) needed to be declared statically. This is because a special
linker pass is used when building the Zephyr image, which creates a
perfect hash table which was used to validate if a memory address
passed from userspace pointed to a valid kernel object, among other
security checks. In addition to this hash table, Zephyr now supports
maintaining metadata for dynamically created kernel objects using the
new red/black tree implementation that was added in the v1.12
development cycle. Dynamic kernel objects are allocated and freed from
the system heap. The new allocate and free routines are respectively
k_object_alloc() and k_object_free(). They are currently only
callable from supervisor mode.
The singly-linked list implementation in include/misc/slist.h is now
implemented in terms of a new macro metaprogramming header,
include/misc/list_gen.h. This new header allows generation of static
inline routines implementing "list-like" behavior (i.e. defining
operations for getting, removing, inserting, etc.) for any compound
data type that implements a base set of operations. The base
operations from which the others are derived are: initialization;
getting the "next" node; setting the next, head, and tail nodes;
and peeking at the head and tail nodes.
The JSON library's internal descriptor type is more tightly packed,
using bitfields to place information formerly found in four integers
into 32 bits worth of bitfields. This results in a net savings of
read-only data at a slight increase in text size.
A sample application demonstrating the BLE broadcaster role by
providing Apple iBeacon functionality was added in
Samples using LEDs and buttons were updated following the device tree
name change from PORT to CONTROLLER described above.
The LWM2M sample was re-worked to add configuration overlay fragments
for enabling Bluetooth networking and DTLS. The README was updated
with new instructions for building the sample.
The effort to prepare Zephyr's tests for inclusion in a test
management system continues.
Various tests were cleaned up with style, tag, and category fixes,
along with numerous tests receiving Doxygen-based documentation.
The sanitycheck script now parses test cases declared by a test suite
from the source code, using regular expressions.
Sanitycheck also now supports a --list-tests flag, which prints
declared test cases. Its output can be further refined by passing the
-T option a relative path to a subdirectory of "tests" (e.g. -T
The test suite core now includes support for skipping tests when they
are not supported.
There was a fair bit of USB-related activity which spanned areas in
The USB DFU class driver was heavily re-worked and moved to
subsys/usb/class. The driver now determines the flash partition layout
for the currently running image and an area to store an update image
via device tree flash partitions, matching Zephyr's MCUboot area
support mechanism. This allows Zephyr applications to add firmware
update support by enabling the USB DFU driver and booting under
MCUboot. Refer to the README and other documentation in
samples/subsys/usb/dfu for more details.
The hci_usb sample application, which allows a Zephyr device which
supports USB and a Bluetooth controller to act as a Bluetooth dongle,
had its core USB operations generalized and migrated into the core USB
subsystem. The sample application is now much smaller; what remains
essentially just enables the driver.
The wpanusb sample, which allows Zephyr applications to expose
802.15.4 radio functionality to a host via USB, saw a major
cleanup. This sample will be more widely useful upon release of
corresponding Linux drivers.
There were several networking-related bug fixes: a fragment
double-free, a build error for HTTP clients, a buffer overflow in the
hostname storage area, an ARP null network packet dereference, and a
miscalculation of ICMPv6 packet payload length and checksum fields.
Calling pthread_cond_signal() from a cooperative thread no longer
The irq_lock() compatibility layer on SMP configurations was fixed,
avoiding potential deadlocks when swapping away from a thread that
holds the lock.
The kernel scheduler's validation of priority levels was fixed.
A bug which allowed user mode code to force the kernel to execute code
at address 0x0 has been fixed by introducing an extra validation step
at every syscall entry point.
A race condition which could potentially allow user space code to
modify memory containing I2C messages before the kernel-level handler
runs was closed.
Issues preventing successful thread context switch during exception
return on ARC were fixed. The fatal error handler on that architecture
also no longer hangs the system after aborting a non-essential thread.
The BusFault Status Register bits on ARMv8-M MCUs are now properly
cleared when that fault occurs.
The Bluetooth Mesh implementation continues to become more robust,
with three bug fixes affecting initialization vectors and node
identity advertising, and two other cleanups.
The boot banner now correctly prints the Zephyr "git describe" output
when the application is outside the Zephyr tree.
A variety of warnings emitted when using dtc version 1.4.6 are now
fixed. These fixes appear to be backwards-compatible.
A variety of USB-related bug fixes went in, including a fix for the
DesignWare driver's excessive generation of zero-length packets, a
missing byte order conversion computation in the common configuration
descriptor, and other fixes and cleanups.
The ST LSM6DSL inertial module driver was converted to use the new SPI
API, following the removal of the old API.
Patches by area (241 patches total):
- Arches: 31
- Bluetooth: 5
- Boards: 11
- Build: 19
- Continuous Integration: 6
- Device Tree: 9
- Documentation: 12
- Drivers: 36
- External: 4
- Kernel: 17
- Libraries: 6
- Maintainers: 1
- Miscellaneous: 6
- Networking: 8
- Samples: 26
- Scripts: 9
- Storage: 4
- Testing: 31
- 3d9ba10b arch: arc: bug fixes and optimization in exception handling
- 24acf2a4 arch: arc: bug fixes in irq_load
- 8da51ee3 arch: arc: optimize the _SysFatalErrorHandler
- adf6f48e arch: arc: add the support of STACK_SENTINEL
- b4696bd7 arch: arm: Fix coding style in file irq_relay.S
- 50b69fbb arm: nxp_kinetis: Remove unused defines from soc.h
- 0b7c964f arch: arm: clear BFSR sticky bits in ARMv8-M Mainline MCUs
- 16472caf arch: x86: Use retpolines in core assembly routines
- ae7911cc arch: x86: segmentation: Remove unused _far_call() and _far_jump()
- adf5b36a lpc54114: Remove unused include in soc.c
- 3e3d1a1c x86: minnowboard: Add support for enabling MMU
- 960e9783 x86: linker: Maintain 4K alignment for application memory.
- 246f03c9 x86: minnowboard: Enable the userspace mode
- ae5e11be arm: soc: NXP: Enable SEGGER RTT on all NXP SoCs
- c7d808f9 arch: arm: improve help text for PROGRAMMABLE_FAULT_PRIOS option
- c36e5ac1 arm: Fix title for SoC configuration in Kconfig
- 42a7c573 arm: soc: Elaborate Kconfig strings for MPU selection
- d9cdf7bf arch/arm/soc/st_stm32: Fix typos in soc.h
- de7f40ac kconfig: fix menuconfig
- f14d1be6 intel_s1000: Add intel_s1000 SoC
- 1fcd39b6 intel_s1000: define memctl_default.S and memerror-vector.S files
- c9ace83c xtensa: reset-vector.S hack for booting intel_s1000 [REVERTME]
- 47ff9659 intel_s1000: uart: configure UART for intel_s1000
- 9ed55af2 arch: xtensa: set __start as entry point for Xtensa.
- 63d50e15 intel_s1000: gpio: enable GPIO handling
- 9cc381c0 intel_s1000: i2c: enable I2C for intel_s1000
- dadf9e7a xtensa: intel_s1000: implement interrupt mechanism
- 08172cdf xtensa: provide XCC compiler support for Xtensa
- 2fd277fc arch/arm/soc/st_stm32/stm32f1: Add I2C1 to dts.fixup
- 6c65ac2b arch: arc: fix the typo of label which caused issue #7249
- e3efbd54 POSIX arch: Fix linker -T warning
- 2a896cc6 Bluetooth: Mesh: Fix IV Update tests when duration is unknown
- c7c5829b Bluetooth: Mesh: Fix missing IVU normal mode timer when provisioning
- aa67a4c5 Bluetooth: Mesh: Remove redundant branch for IV Update
- 92749e7a Bluetooth: Mesh: Remove unnecessary #ifdefs from header file
- 6b111064 Bluetooth: Mesh: Fix enabling Node Identity advertising
- 678a6e02 boards: stm32 remove led and button definitions from board.h
- c627de1f boards: Move led and button definitions to dts for kinetis boards
- 597517c7 boards: dts: Add i2c to nrf5X_pcaX board dts.
- 513488c9 boards: disco_l475_iot1: define 2 default clock configurations
- f496fd2a boards/arm/stm32_min_dev: Fix APB2 prescaler value
- 992070f1 boards: microbit: Add flash partition definitions to dts
- 034a11b7 boards: arm: 96b_neonkey: Fix I2C_3 for LP3943 LED driver
- 0090fd4d intel_s1000: create xt-sim_intel_s1000_defconfig
- 02736e59 intel_s1000: add intel_s1000_crb board
- cea1c75e boards: intel_s1000_crb: enable DMA
- 46d6ba46 boards: intel_s1000: enable I2S
- f10fddeb cmake: toolchain: Improve error feedback when toolchain is not found
- d9ac1d4b warnings: Disable "unused-local-typedefs" compiler warning
- 6779d3f3 cmake: Fix printed list of supported boards.
- 6c3a94c0 cmake: Add function for checking if a directory is write-able
- 709daa20 cmake: Find a directory that could be used to cache files
- c95c6bef cmake: check_compiler_flag: Support empty-string options
- a7c3f4ed cmake: toolchain: Checksum the toolchain to uniquely identify it
- 84475810 cmake: Introduce zephyr_check_compiler_flag()
- 71b849f1 cmake: Port Zephyr to use zephyr_check_compiler_flag
- 8bcf30e2 cmake: posix: Use absolute paths for toolchain paths
- 33d87efd build: simplify git describe call
- f9b2da37 kconfig: Move CPLUSPLUS from root to "Compiler Options"
- 7db4d569 Revert "warnings: Disable "unused-local-typedefs" compiler warning"
- a4381d9e kconfig.cmake: Consistently use ZEPHYR_BASE
- 9fbdab52 build: fix git describe call on older Git versions
- 632fe1d4 cmake: check_compiler_flag: Fix bug where checks were aliased
- 5f08b106 cmake: Suppress messages about compiler checks
- aa90d721 cmake: Introduce a key version to invalidate corrupted caches
- 878f39c1 makefile: Fix dependencies for privileged stacks
Continuous Integration (6):
- 140daa2f sanitycheck: add min_flash option for 32K devices
- aae71d74 sanitycheck: parse test cases from source files
- c0149cc0 sanitycheck: support listing test cases
- de223cce sanitycheck: Updated helptext to -O/--outdir argument.
- 75e2d901 sanitycheck: refinements to --list-tests
- 770178b7 sanitycheck: Stop on linker warnings also in native_posix
Device Tree (9):
- a43ad6d5 dts: arc: quark_se_c1000_ss: Fix worng interrupt number in i2c 0/1
- 22955b83 dts: Add gpio labels to all kinetis socs
- a27c0ede dts/st: dtc v1.4.6 warnings: #address-cells/#size-cells
- acc20e24 dts/st: dtc v1.4.6 warnings: Missing property '#clock-cells' in node
- 986f249f dts/st: dtc v1.4.6 warnings: pin-c... node has a reg ... no unit name
- 398a5a4f dts: dtc v1.4.6 warnings: Fix warning for leading 0s
- 97f721d9 dts: xtensa: Add device tree support for xtensa
- 9ee4929d dts: i2c: Add dts support for i2c
- 7be3236c dts: interrupt_controller: Add dts support for DesignWare controller
- 3a72cc98 doc: genrest: Simplify select logic with split_expr()
- 28724732 doc: fix mgmt sample path
- 55840693 doc: win: Invoke pip3 instead of pip to be safe
- b57ac8a2 doc: improve Sphinx search results output
- a380dce0 doc: fix links to mailing lists
- e618608f doc: Expand info about troubleshooting ModemManager
- 1ae99f02 doc: Improve Kconfig interface description
- 303484aa doc: Clarify application configuration
- 64eb789f doc: Clarify format for CONF_FILE
- b4d67dcc doc: update doc generation instructions
- 63cb2334 doc: Document Zephyr's Kconfig configuration scheme
- 699759a0 doc: brief description on intel_s1000 usage
- 4e8f29f3 gpio: Refactor the mcux gpio driver to use dts
- 8d3b2fa8 usb: usb_dc_dw: Fix incorrect MPS return
- 4f84cf78 usb: Add BOS Descriptors
- 773f3e18 usb: Add sys_cpu_to_le16() conversion for USB field
- 6239341a usb: Add subsys/usb for device descriptor header
- 16532549 usb: mass_storage: Use simpler header include
- 4d703b1e usb: Add Bluetooth USB Device configuration options
- 0322af58 usb: Add Bluetooth device decriptors
- 53410af9 usb: Add Bluetooth device class core functionality
- a09a0b2c sensors/lsm5dsl: Fix SPI API usage
- b7862eb8 hid: core: truncated wLength if it doesn't match report
- 8f7e5bd0 uart_pipe: re-work the RX function to match the API and
work with USB.
- c26fdc1b drivers/spi: Fixed incorrect prompt.
- d8ba007a drivers: clock_control: Add MSI as possible clock source for stm32
- 25fb83c6 drivers: i2c: Fix TOCTOU while transferring I2C messages
- 7e067414 usb: Remove unneeded header include
- c200367b drivers: Perform a runtime check if a driver is capable of
- 185f2be6 netusb: rndis: Add more debugs
- 222aa600 netusb: rndis: Fix RNDIS always disabled state
- 94bba071 drivers: led: Add public API for LED drivers
- bb394bba drivers: led: Add LED driver support for TI LP3943
- f4ad6988 drivers/spi: Remove DW spi slave test left over
- 180b1397 drivers: sensor: lsm6dsl: Adding sensorhub support
- 580a9b3f drivers: sensor: lsm6dsl: Fix typos
- f7f56ccd drivers: sensor: lsm6dsl: add .attr_set callback
- 46700eaa include: usb: add USB DFU class header
- b2ca5ee5 subsys: usb: rework USB DFU class driver
- 74016bb6 drivers: interrupts: introduce CAVS interrupt logic
- e3f2fa4f drivers: interrupts: introduce Designware interrupt controller
- bd0d5133 drivers: dma: introduce Intel CAVS DMA
- 5b6f0244 drivers: i2s: introduce CAVS I2S
- 5060f4bd driver: usb: enable usb2.0 on intel_s1000
- f618af75 driver: ieee802154: cc1200: fix context handling
- 943ca29d usb: dw: Fix Coverity issue with get_mps()
- c6f2b4cc spi: Fix mcux dspi driver to parse lsb transfer mode correctly
- 67ba7d8a gpio: Add imx gpio driver shim
- 2c58de57 ext: lib: crypto: Update mbedTLS to 2.8.0
- 9791597e ext: mcux: Update README to follow template format
- 57e80e53 ext: mcux: Reorganize imported drivers into soc family subfolders
- 4624f132 ext: mcux: Remove clock_config.c/h
- 56c2bc96 kernel: add CODE_UNREACHABLE in _StackCheckHandler
- 541c3cb1 kernel: sched: Fix validation of priority levels
- b481d0a0 kernel: Allow pending w/o wait_q for scheduler API cleanup
- 8606fabf kernel: Scheduler refactoring: use _reschedule_*() always
- e0a572be kernel: Refactor, unifying _pend_current_thread() + _Swap() idiom
- 0447a73f kernel: include cleanup
- 15cb5d72 kernel: Further unify _reschedule APIs
- 3f55dafe kernel: Deprecate k_thread_cancel() API
- 5792ee6d kernel/mutex: Clean up k_mutex_unlock()
- 22642cf3 kernel: Clean up _unpend_thread() API
- 8a4b2e8c kernel, posix: Move ready_one_thread() to scheduler
- f5f95ee3 kernel: sem: Ensure that initial count is lesser or equal than limit
- 31bdfc01 userspace: add support for dynamic kernel objects
- e7ded11a kernel: Prune ksched.h of dead code
- 68040c8d kernel: sem: Modify the way BUILD_ASSERT is used
- eb258706 kernel: Move SMP initialization to start of main thread
- 15c40077 kernel: Rework SMP irq_lock() compatibility layer
- 2a5fb57e lib: posix: mqueue: Do not dereference mqd pointer before null check
- 3af88642 lib: posix: mqueue: Minor formatting cleanups
- d89249db pthread: Respect cooperative thread schedulign in condition variable
- e7648ba3 lib: posix: pthread_common: Fix potential integer overflow issue
- 9faa42f5 slist: abstract node and list implementation
- 0ec79d68 lib: json: Efficiently pack field name, offset, alignment, type
- 517a08ee CODEOWNERS: Add myself as the Codeowner for LED API and drivers
- 81f4b111 include: toolchain: common: Remove deprecated __stack macro
- 666274fa toolchain: gcc: Only use _Static_assert if building with C11
- 05169a02 toolchain: common: Allow multiple uses of BUILD_ASSERT() in
- 83ac3e24 shell: kernel: Add reboot command
- f8c1cc17 toolchain: update xtools config
- b3153d24 intel_s1000: scripts: debug, debugserver and flash scripts
- c0d0a61b net: ipv6: Remove irrelevant error log
- 460a6c77 net: tcp: send_syn_segment: Log packet before it's sent
- bf185f58 net: ipv6: Fix crash from double free of fragment
- 8c561994 net: http: Fix client compilation if HTTPS is enabled
- a12138d4 net: hostname: Fix hostname buffer length
- 2002a4e2 net: arp: Do not access NULL network packet
- 3da4d370 net: Implement VLAN priority to packet priority conversion
- d1715685 net: icmpv6: Fix payload length and checksum
- 162b6e4b samples: Allow use of "CONTROLLER" postfix for LED and GPIO
- d38116cb usb: Use new USB Device interface for Bluetooth over USB sample
- fc5134b0 usb: hci_usb: Fix test name
- d665e128 usb: hci_usb: Correct README
- b35274a4 samples: usb: webusb: Prettify binary object store descriptor
- a9d377e0 usb: wpanusb: Replace char array with structs for descriptor table
- 10ec019a usb: wpanusb: Replace local hexdump() with net_hexdump()
- 9e753f0c usb: wpanusb: Clean up code
- c8e23874 usb: wpanusb: Remove unused headers
- a5e7a8de usb: wpanusb: Remove unused packet handlers
- 74d08efb usb: wpanusb: Correct protocol description
- 7337f4a0 usb: wpanusb: Code cleanup
- acb0f099 samples: echo_server: Update prj_cc2520 configuration
- 2b47d358 usb: wpanusb: Fix regression with putting LQI to wrong place
- 24cc5cc4 usb: wpanusb: Make generic interface to raw 802.15.4 channel
- 190e8d96 usb: wpanusb: Fix setting wrong length
- 30c3461e samples: lwm2m: replace prj_dtls.conf with overlay fragment
- 5df33d67 samples: lwm2m: add overlay conf to support BT networking
- 970b0a99 samples: lwm2m: update README with use of overlay files
- f59a68b6 samples: net: http: Add TLS compilation test
- 6c70aa28 samples: net: Fix CoAP server payload dump function
- 1572594b samples: drivers: Add sample application for LP3943
- b27d9685 samples: bluetooth: Add Apple iBeacon demo application
- 2d1c5241 samples: flash_shell: Use correct flash write block size
- a6eee02c samples: enhance integration sample and document it
- 00c26d24 samples: remove stray config
- b742b62b kconfiglib: Update to get split_expr() in
- f3caef8e scripts: extract_dts_inlcudes: look up compatible field in parents
- 69beec87 scripts: extract_dts_includes: generate controller #define's
- 39dc7d03 scripts: gen_kobject_list: Generate enums and case statements
- d3bfbfeb kconfiglib: Update to get choice.direct_dep in
- 73549ad8 scripts: kconfig: Add a Python menuconfig implementation
- cfb3c925 kconfiglib: Update to add warning for malformed .config lines
- 1799cfdb scripts: kconfig: Turn malformed .config lines into errors
- dc97fc2a kconfiglib: Update to default to UTF-8 for Python 3
- 9fe30535 susbsys: settings: fix coverity issues
- 341b4273 subsys: settings: fix fcb back-end initialization
- 9968cda4 fs: Convert NFFS partition to a generic one
- d67009da subsys: settings: Fix Kconfig dependencies
- 1931f124 tests: fix arc related codes
- edc048e0 tests: socket: udp: Make sure client sockaddr fully initialized
- e8bcc6f1 tests: socket: Free resources with freeaddrinfo
- 1d1db121 tests: socket: udp: Tighten up error checking
- e564d58b tests: socket: udp: Close test sockets
- 1609f251 tests: kernel: style, tag, and category fixes
- 63f21391 tests: use consistent test function names
- 1f2627a6 tests: net: style, tag, and category fixes
- 9312de00 tests: crypto: style, tag, and category fixes
- 89a50932 tests: posix: style, tag, and category fixes
- fa6cce43 tests: ztest: style, tag and category fixes
- 0f5a88b0 tests: posix: mqueue remove extra printk
- 910a569e tests: stackprot: move to ztest
- 20495e89 ztest: support skipping tests
- 7a5ff137 tests: allow unsupported tests to be skipped
- eb6f2031 tests: fix meta data of peripheral tests
- 7753bc50 tests: kernel: mem_protect: tests for userspace mode.
- b4cb1014 tests: mem_prot: skip unsupported tests
- 9a2b5357 tests: settings: Remove references to non-existent Kconfig variable
- 6f1cff73 ztest: fix result checking
- 3298d60f tests: subsys: settings: Add FCB-beckend initialization test
- ff0857df tests: threads: Add test to verify delayed thread abort
- 2182a53f tests: irq_offload: document test functions
- 25e7b27b tests: critical: document test functions
- 67194a40 tests: errno: document test functions
- 2b62f1ab tests: fixed doxygen comments
- 18cc28a9 tests: Fix malformed CONFIG_TEST=y prj.conf entry
- 567482ff intel_s1000: tests: introduce tests to check features enabled
- a2afa6cf test: board: intel_S1000: Add test application for HID
- e57df9a3 tests: boards: intel_s1000_crb: select application based on config
- b3275d65 tests/samples: add hw dependencies
toggle quoted messageShow quoted text
HI Aaron,This PDF may help developers who want to go with Zephyr #BluetoothMesh.
But following links are Silent about #BluetoothMesh
So currently, I'm clueless & unfortunately have to go with stack provided by Silicon manufactures
which are Black Box & inherently complicated. 😥
On Fri, May 4, 2018 at 8:27 AM, Aaron Xu <overheat1984@...> wrote:
Aaron Xu <overheat1984@...>
toggle quoted messageShow quoted text
We all look forward that the zephyr project bluetooth mesh can be used on a real project.
Before that, we want to know those question's answer.
Hi,Will it be released as #Qualified stack ?
What will be status of #BluetoothMesh in #LTS v.1.12.0 release ?
As of now, we can't save Provisioning, Configuration & other real time data (eg. message sequence Nos, states of Models etc. etc) on SoC flash. Will it be possible in #LTS release ?
( For that we need something like " https://github.com/zephyrproject-rtos/zephyr/pull/6391 " to get merge.
I tried to save above mentioned data using NFFS, but it consumes lots of RAM & I don't know exactly what & when to save on SoC flash.
Plus NFFS is not recommended for SoC which has limited write/erase cycles for its flash.)
How many Models (for eg. Generic, Lighting) will show case under #LTS ?
What will be status of Friend & Low Power Nodes implementation ?
When I tried SMP_Server example along with #MCUboot, to do #DFU_OTA, I found that it depends upon NFFS.
Is that means we have to depends upon #NVS (PR6391) & NFFS both?
Please throw some light about overall implementation for developers if he/she want to add #DFU_OTA feature along with #BluetoothMesh.
How to do #DFU_OTA using Android/iOS smartphones App? (as suggestion)
If something has very little chance to get introduced with #LTS release, then till when it get expected to be part of implementation ?
Thank You in advance !!
Re: [Zephyr-devel] [ #BluetoothMesh ] possible Bug .. without assigning subscription address to Model, it is reacting to subscription address assign to other Model #bluetoothmesh
toggle quoted messageShow quoted text
Now everything is working as expected.
Hi,It was bug from my side & I've resolved it.
Excuse me for that !!
On Wed, May 2, 2018 at 2:31 PM, Vikrant More <vikrant8051@...> wrote:
toggle quoted messageShow quoted text
Hi to all,
git fetch origin pull/7283/head:BlueZMeshctlgit checkout BlueZMeshctlI execute above commands & re-build samples/bluetooth/mesh & try to provisionit using BlueZ 5.49 #meshctl. And this time, whole process has completed.Thank You !!
On Tue, May 1, 2018 at 11:01 PM, Johan Hedberg <johan.hedberg@...> wrote:
Zephyr hci_usb nrf52840
I am trying to test an nRF52840 as a USB HCI using the Zephyr hci_usb sample project. I'm running into an issue in which devices I attempt to connect to will disconnect themselves after about 30 seconds, every time I attempt to connect. When I watch btmon, I see this:
< ACL Data TX: Handle 0 flags 0x00 dlen 7 #15 [hci0] 17.698158
ATT: Exchange MTU Request (0x02) len 2
Client RX MTU: 517
< HCI Command: Disconnect (0x01|0x0006) plen 3 #16 [hci0] 49.737234
Reason: Remote User Terminated Connection (0x13)
it appears that the device never receives or never responds to the Exchange MTU Request. I'm using bluetoothctl to establish the connection. I've tried two different device types and both exhibit the problem, and when I attempt to use the internal adapter on my host, I do not have this problem with either device. My host is an x86_64 machine running Ubuntu 16.04.4, kernel version 4.13.0-39, and BlueZ version 5.49. I've attempted it with both a Nordic PCA10056 board and a Rigado BMD-340 dev board. Has anyone seen this before? I'm not entirely sure what steps to take next to debug this. I can provide any additional info necessary.
On Tue, May 01, 2018, Steve Brown wrote:
Thanks for testing. Could you also please add some sort of "tested to beThat's a good catch. I'm sorry for not realizing it earlier. I'veWorks for me.
working" comment in the PR to help it get merged?
It's curious that the SILabs provisioner reportedly worked.It'd indeed be interesting for someone to analyze the difference. E.g.
perhaps it doesn't disconnect the link in between, or maybe it connects
to Network ID advertising (however shouldn't meshctl work then as
On Tue, 2018-05-01 at 16:37 +0100, Johan Hedberg wrote:
Hi Steve,Works for me.
Provisioning completes on samples/bluetooth/mesh and connects for
configuration. The identity connection had previously failed.
It's curious that the SILabs provisioner reportedly worked.
On Tue, May 01, 2018, Steve Brown wrote:
It doesn't appear that bt_mesh_proxy_identity_enable() gets called inThat's a good catch. I'm sorry for not realizing it earlier. I've
uploaded an untested pull request that attempts to fix this. Could you
try it please:
I had a chance to look at this further.
More at the bottom.
On Thu, 2018-04-26 at 15:24 +0300, Johan Hedberg wrote:
Hi,It doesn't appear that bt_mesh_proxy_identity_enable() gets called in
prov.c:proxy_data(). The earlier call to bt_mesh_provision() closes the
connection when it calls bt_mesh_proxy_prov_disable().
Here is a snippet of debug output:
[bt] [DBG] prov_data: (0x20001fc8)
[bt] [DBG] prov_data: (0x20001fc8) SessionKey: 7b7a94f1ca0aa42fdf79219292e28155
[bt] [DBG] prov_data: (0x20001fc8) Nonce: 3a06c3b351f1ab2b4d6462cb60
[bt] [DBG] prov_data: (0x20001fc8) DevKey: b495b3a317a5b18a708a2f41d3685860
[bt] [DBG] prov_data: (0x20001fc8) net_idx 0 iv_index 0x00000005, addr 0x0100
[bt] [DBG] proxy_segment_and_send: (0x20001fc8) conn 0x20000534 type 0x03 len 1: 08
[bt] [DBG] proxy_send: (0x20001fc8) 2 bytes: 0308
[bt] [INF] bt_mesh_provision: Primary Element: 0x0100
[bt] [DBG] bt_mesh_provision: (0x20001fc8) net_idx 0x0000 flags 0x00 iv_index 0x0005
[bt] [DBG] bt_mesh_proxy_prov_disable: (0x20001fc8)
[bt] [DBG] bt_mesh_pb_gatt_close: (0x20001fc8) conn 0x20000534
[bt] [DBG] bt_mesh_proxy_gatt_enable: (0x20001fc8)
[bt] [DBG] bt_mesh_adv_update: (0x20001fc8)
[bt] [DBG] bt_mesh_scan_enable: (0x20001fc8)
[bt] [DBG] prov_data: (0x20001fc8) conn 0x00000000 <<<<< BT_DGB() added just before bt_mesh_proxy_identity_enable() >>>>>>
you need to update boards pinmux.c file to add the I2C pins. You could
check olimexino_stm32 board's pinmux file for reference.
On Mon, Apr 30, 2018 at 10:36 AM Roman Tataurov <firstname.lastname@example.org> wrote:
MCU is thishttps://github.com/zephyrproject-rtos/zephyr/tree/d6e3f22fddccf4b542cb5ec780440cb629c12290/arch/arm/soc/st_stm32/stm32f1
Using this boardhttps://github.com/zephyrproject-rtos/zephyr/tree/d6e3f22fddccf4b542cb5ec780440cb629c12290/boards/arm/stm32_min_dev
Seems it completely off i2c devices so added to board dts
To make it work. Together with bug fixed about DTShttps://github.com/zephyrproject-rtos/zephyr/issues/7248 I have now I2C
device created. So code is work now.
But still no activities on device pins. Checked all the pins with logickanalser and found nothing.
I suspect some GPIO setup required.
MCU is this https://github.com/zephyrproject-rtos/zephyr/tree/d6e3f22fddccf4b542cb5ec780440cb629c12290/arch/arm/soc/st_stm32/stm32f1
Using this board https://github.com/zephyrproject-rtos/zephyr/tree/d6e3f22fddccf4b542cb5ec780440cb629c12290/boards/arm/stm32_min_dev
Seems it completely off i2c devices so added to board dts
To make it work. Together with bug fixed about DTS https://github.com/zephyrproject-rtos/zephyr/issues/7248 I have now I2C device created. So code is work now.
But still no activities on device pins. Checked all the pins with logick analser and found nothing.
I suspect some GPIO setup required.
Rodrigo Peixoto <rodrigopex@...>
Describe better your environment.
Which board (and no MCU) are you using? Based on the http://docs.zephyrproject.org/boards/arm/nucleo_f103rb/doc/nucleof103rb.html it seems that the i2c_1 that it might be the I2C_0 in Zephyr is on the PORTB. I have added the following line #define CONFIG_I2C_0_NAME "PORTB". For the https://github.com/zephyrproject-rtos/zephyr/tree/d6e3f22fddccf4b542cb5ec780440cb629c12290/samples/drivers/i2c_fujitsu_fram example. It compiles but I don't have the board here to test.
Try this and let us know.
Best regards, Rodrigo Peixoto.
Rodrigo Peixoto <rodrigopex@...>
I was taking a look at the list and I've found something that may help you. Go to the link https://lists.zephyrproject.org/g/users/message/371 and check the solution. I think that maybe you can try something similar to that. Remember that the hardware used in the example is a nrf52 and yours is a nrf51, but the device names for this case are the same.
The STM32F103 I don't know the dev name. You can check that directly on the source code (board.h -> https://github.com/zephyrproject-rtos/zephyr/blob/d6e3f22fddccf4b542cb5ec780440cb629c12290/boards/arm/nucleo_f103rb/board.h). Maybe the name for the device is PORTA or PORTC it depends on the which one is the I2C port for your project.
I hope it helps.
Best regards, Rodrigo Peixoto. Ayna Tech +55 (82) 98144-8585.
Today almost whole day frustrating trying to make work I2C on Zephyr.
Tested on 2 different boards with nrf51822 and stm32f103 MCU-s and got no success.
Any options for both MCU-s different than bitbang I2C even return null for device_get_binding so I can't even initialize it.
In case of bitbang I2C implementation device driver exists but does not work. Mean code executed, but I see nothing on MCU pins.
Mapped to different GPIO variants, checked with logick analyzer on all the pins but nothing. It just does not work at all.
So can anobody explain right path to make it finally work.
So for STM32 (not a bitbang) used with:
# CONFIG_I2C_0 is not set <-------- tested with this as well
# CONFIG_I2C_2 is not set
# CONFIG_I2C_3 is not set
# CONFIG_I2C_DW is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_SBCON is not set
For nrf51 dont remember but can try again and put config here.
Any help appreciated.