Date   

Re: Is the devicetree in zephyr sdk supports the dynamic running time flow control ?

Kumar Gala
 

On Nov 20, 2019, at 5:11 AM, "曹子龙 <caozilong@allwinnertech.com> wrote:

Hi folks:

I know the device three mechanism is also applied in zephyr sdk, but it seems something diffferent compare with in linux.

in linux, the dtsi script file would be compiled to a binary blob which would be pared in running time, so, the driver would do some dynamically decision in running time to different branch.

but in zephyr sdk, the dts are commpiled to a intermidate dts script file, which would be parsed by tools before building process are held.
finally, the dts configuration would convert to header files,and just used in compile time, so cant used to do the branch control like linux.

is this right? and is there anyway to get the configuration in runtime in zephyr?

thnks for your help.
Your understanding is correct. Because of the space constrained systems Zephyr has targeted the size of both the DTB and code to parse the DTB is seen as too large, and thus we went the way of using DTS for code generation.

Can you explain a bit further what kinda of config you’d like to do at run time? This might help us understand what solution would make sense.

- k


Problem with running Zephyr from external flash on STM32xx

Jan Pohanka
 

Hello,
I'm trying to run zephyr using external QSPI flash on custom board with stm32h750vb cpu. I thought that it should be as easy as just changing FLASH_BASE_ADDRESS to correct value (0x90000000 for stm32x) but unfortunately that is not the case.
I have very simple bootloader sitting in internal flash that just sets up the QSPI peripheral to memory mapped mode, correct stack pointer and jumps to starting address of zephyr in external flash. There is just hello world application with shell and logging enabled. Zephyr unfortunately ends in arch_system_halt very soon - immediately when k_sleep is called from main function. I was not able yet to find the source of the problem. When the same application is linked to internal flash, everything works fine.
Can someone give me any hint, please?
 
best regards
Jan


Re: about the difference of device tree use method compare with linux?

pawel.dunaj@...
 

Hi,

Your comment is correct - there is such a difference.
It is not dynamic because of performance reasons. All drivers would simply be bigger - thing not welcome in uC world.

Personally I am not convinced DTS should be used in Zephyr due to this limitation. Since it is not a separate system component you cannot embed HW configuration that would stay on the board regardless of the FW. Anyway somebody thought it would be nice to separate things related to HW into DTS. I think however that this splits configuration into two (HW vs FW) without any good use case.

If you want to keep configuration in runtime you should use settings. Otherwise you can create your own dedicated partition and store things there in any way you prefer.

Thanks,
Pawel


about the difference of device tree use method compare with linux?

"曹子龙
 

Hi folks:

  I know the device tree mechanism is also applied in zephyr sdk, but it seems something diffferent  compare with in linux.

 in linux, the dtsi script file would be compiled to a binary blob which would be pared in running time, so, the driver would do some dynamically decision in running time to different branch.

but in zephyr sdk, the dts are commpiled to a intermidate dts script file, which would be parsed by tools before building process are held.
finally, the dts configuration would convert to header files,and just used in compile time, so cant  used to do the branch control like linux.

is this right?  and is there anyway to get the configuration in runtime in zephyr?

thnks for your help.

曹子龙

珠海全志科技股份有限公司      BU1-PSW

地址:广东省珠海市高新区唐家湾镇科技2路9号

TEL:13824125580

Email:caozilong@...

网址: http://www.allwinnertech.com

 



Re: Delayed vs non-delayed Workqueues usage

Marc Herbert
 

On 21 Nov 2019, at 09:55, Andy Ross <andrew.j.ross@intel.com> wrote:


It's your (i.e. the code author's) struct. You allocated it, you know
where it lives in its wrapper struct. And that callback is likewise
your function, you registered it at submit time and you know what kind
of work items will be passed as arguments. If you put your struct
k_work inside of a "struct my_doodad", and submit it, then you know
how to get back to the doodad pointer from the work item when the
callback fires.

This nested struct trick is a fairly common pattern in Zephyr, as it
doesn't require a heap or other way to allocate items like struct
k_work in the kernel. The idea is that you (the author) allocate that
k_work (or k_delayed_work) item on the kernel's behalf, and then when
something happens on it (e.g. it's time to run it) you get it as an
argument to the callback you registered.
I think it's the same object-oriented pattern than the Linux one
described in more detail at:

https://lwn.net/Articles/446317/


Re: Delayed vs non-delayed Workqueues usage

Andy Ross
 

On 11/21/19 8:58 AM, todd_mullanix via Lists.Zephyrproject.Org wrote:
Can you intermix k_work and k_delayed_work structures on the same
Workqueue?
Yes, you can. The work queue is the same. The k_delayed_work API is
really just a convenience wrapper for "a work queue item plus a
timeout for when to submit it".

How do you know which structure type to use in the CONTAINER_OF? Do
you have a "type" field before the k_work or k_delayed_work
structure that the handler can query to determine what the real
structure definition is?
It's your (i.e. the code author's) struct. You allocated it, you know
where it lives in its wrapper struct. And that callback is likewise
your function, you registered it at submit time and you know what kind
of work items will be passed as arguments. If you put your struct
k_work inside of a "struct my_doodad", and submit it, then you know
how to get back to the doodad pointer from the work item when the
callback fires.

This nested struct trick is a fairly common pattern in Zephyr, as it
doesn't require a heap or other way to allocate items like struct
k_work in the kernel. The idea is that you (the author) allocate that
k_work (or k_delayed_work) item on the kernel's behalf, and then when
something happens on it (e.g. it's time to run it) you get it as an
argument to the callback you registered.

Andy


Delayed vs non-delayed Workqueues usage

todd_mullanix@...
 

Hi,

It's not clear to me what's the recommended usage of delayed vs non-delayed Workqueues. I see one of the example on https://docs.zephyrproject.org/1.9.0/kernel/threads/workqueues.html
struct device_info {
    struct k_work work;
    char name[16]
} my_device;

void my_isr(void *arg)
{
    ...
    if (error detected) {
        k_work_submit(&my_device.work);
    }
    ...
}

void print_error(struct k_work *item) { struct device_info *the_device = CONTAINER_OF(item, struct device_info, work); printk("Got error on device %s\n", the_device->name); }
So if there is "extra" application content (name), it is placed after the struct k_work and the handler function will reference it accordingly. What if I wanted to send a k_delayed_work element to the same Workqueue. Can you intermix k_work and k_delayed_work structures on the same Workqueue? How do you know which structure type to use in the CONTAINER_OF? Do you have a "type" field before the k_work or k_delayed_work structure that the handler can query to determine what the real structure definition is?


Re: Zephyr Release 2.1: Status Nov 11, 2019

David Leach
 

Let me add a bit of emphasis. If you are working on a bug fix for a bug marked as “low priority” you should stop and move to one marked “medium” or “high” priority. We can pick up the low priority bugs at the beginning of the next release cycle.

 

From: devel@... <devel@...> On Behalf Of David Leach via Lists.Zephyrproject.Org
Sent: Tuesday, November 19, 2019 5:29 PM
To: devel@...
Cc: devel@...
Subject: [Zephyr-devel] Zephyr Release 2.1: Status Nov 11, 2019

 

The v2.1.0-rc1 is under test. The release schedule was to have a RC3 tagged by this weekend but we have not achieved RC2 level of quality yet. Current tradition is to have zero high priority bugs before tagging RC2 and we are at 4 right now. For this and due to US holiday crunch, we are shifting out the 2.1.0 release dates by a week.

 

Note, to allow sufficient test cycle before final release, the RC3 candidate tag will be applied when we reach 0 high priority bugs and 20 medium priority bugs.

 

https://github.com/zephyrproject-rtos/zephyr/wiki/Program-Management

 

If there are outstanding bugfix PRs that need to get into the 2.1 release than tag them with the “v2.1.0” milestone and work with the maintainers to approve and merge the PR.

 

Issues statistics:

 

Priority

Count

Change from last report

High

4

+2

Medium

41

+3

Low

198

+37

No priority

2

-1

 

Over the last 4 weeks we have opened 149 new issues and closed 154 with 245 active issues. A burst of new issues have come in from Coverity scans which had been blocked for some period of time.

 

David Leach

 

NXP Semiconductors

phone: +1.210.241.6761

Email: david.leach@...

 

 


Cancelled Event: Zephyr Project: Dev Meeting - Thursday, 21 November 2019 #cal-cancelled

devel@lists.zephyrproject.org Calendar <devel@...>
 

Cancelled: Zephyr Project: Dev Meeting

This event has been cancelled.

When:
Thursday, 21 November 2019
8:00am to 9:00am
(UTC-08:00) America/Los Angeles

Where:
https://zoom.us/j/993312203

Organizer: devel@...

Description:
Join Zoom Meeting
https://zoom.us/j/993312203

One tap mobile
+16699006833,,993312203# US (San Jose)
+16465588656,,993312203# US (New York)

Dial by your location
        +1 669 900 6833 US (San Jose)
        +1 646 558 8656 US (New York)
        +1 877 369 0926 US Toll-free
        +1 855 880 1246 US Toll-free
Meeting ID: 993 312 203
Find your local number: https://zoom.us/u/ankEMRagf


回复: [Zephyr-devel] How to add support for Silabs EFM32JG12B?

nie ninesun
 

I had added boards stk-3700 of EFM32GG for zephyr .I take the efm32hg as reference. the address is https://github.com/niexuzhong/STK3700-for-zephyr   you have to add boards and socs file.
EFM32 STK3700 starter kit porting on zephyr . Contribute to niexuzhong/STK3700-for-zephyr development by creating an account on GitHub.
github.com


发件人: devel@... <devel@...> 代表 Christian Taedcke <hacking@...>
发送时间: 2019年11月19日 20:02
收件人: devel@... <devel@...>
主题: [Zephyr-devel] How to add support for Silabs EFM32JG12B?
 
Hello,

i want to add support for the Silabs EFM32JG12B soc. It is nearly the same as the already supported EFM32PG12B. It has the exact same peripherals, memory etc, only a different core. The EFM32JG12B has a Cortex-M3, the EFM32PG12B a Cortex-M4.
Because of this Silabs does not provide an extra development board, since binaries built for the EFM32JG12B can run on the EFM32PG12B. So the recommended development board for the EFM32JG12B is efm32pg_stk3402a

Questions:

1. How to deal with a soc that only differs in the core? I would like to reuse (without copying) a lot of stuff from the efm32pg12b (i.e. the folder soc/arm/silabs_exx32/efm32pg12b and the device tree stuff). Any hints on how to do that?
2. Since there is no development board for the EFM32JG12B soc, i would like to add the possibility to the board efm32pg_stk3402a to compile for the EFM32JG12B instead of the EFM32PG12B. Is that possible or are there other recommendations?

Regards,
Christian


Is the devicetree in zephyr sdk supports the dynamic running time flow control ?

"曹子龙
 

Hi folks:

   I know the device three mechanism is also applied in zephyr sdk, but it seems something diffferent  compare with in linux.

 in linux, the dtsi script file would be compiled to a binary blob which would be pared in running time, so, the driver would do some dynamically decision in running time to different branch.

but in zephyr sdk, the dts are commpiled to a intermidate dts script file, which would be parsed by tools before building process are held.
finally, the dts configuration would convert to header files,and just used in compile time, so cant  used to do the branch control like linux.

is this right?  and is there anyway to get the configuration in runtime in zephyr?

thnks for your help.


曹子龙

珠海全志科技股份有限公司      BU1-PSW

地址:广东省珠海市高新区唐家湾镇科技2路9号

TEL:13824125580

Email:caozilong@...

网址: http://www.allwinnertech.com

 



Zephyr Release 2.1: Status Nov 11, 2019

David Leach
 

The v2.1.0-rc1 is under test. The release schedule was to have a RC3 tagged by this weekend but we have not achieved RC2 level of quality yet. Current tradition is to have zero high priority bugs before tagging RC2 and we are at 4 right now. For this and due to US holiday crunch, we are shifting out the 2.1.0 release dates by a week.

 

Note, to allow sufficient test cycle before final release, the RC3 candidate tag will be applied when we reach 0 high priority bugs and 20 medium priority bugs.

 

https://github.com/zephyrproject-rtos/zephyr/wiki/Program-Management

 

If there are outstanding bugfix PRs that need to get into the 2.1 release than tag them with the “v2.1.0” milestone and work with the maintainers to approve and merge the PR.

 

Issues statistics:

 

Priority

Count

Change from last report

High

4

+2

Medium

41

+3

Low

198

+37

No priority

2

-1

 

Over the last 4 weeks we have opened 149 new issues and closed 154 with 245 active issues. A burst of new issues have come in from Coverity scans which had been blocked for some period of time.

 

David Leach

 

NXP Semiconductors

phone: +1.210.241.6761

Email: david.leach@...

 

 


Upcoming Event: Zephyr Project: APIs - Tue, 11/19/2019 9:00am-10:00am, Please RSVP #cal-reminder

devel@lists.zephyrproject.org Calendar <devel@...>
 

Reminder: Zephyr Project: APIs

When: Tuesday, 19 November 2019, 9:00am to 10:00am, (GMT-08:00) America/Los Angeles

Where:https://zoom.us/j/177647878

An RSVP is requested. Click here to RSVP

Organizer: devel@...

Description: Join from PC, Mac, Linux, iOS or Android: https://zoom.us/j/177647878

Or iPhone one-tap :
    US: +16465588656,,177647878# or +16699006833,,177647878# 
Or Telephone:
    Dial(for higher quality, dial a number based on your current location): 
        US: +1 646 558 8656 or +1 669 900 6833 or +1 855 880 1246 (Toll Free) or +1 877 369 0926 (Toll Free)
    Meeting ID: 177 647 878
    International numbers available: https://zoom.us/zoomconference?m=ioAR9GK1OE5LkN1ojt-heTCl7yPcJrhY


 Live meeting minutes: https://docs.google.com/document/d/1lv-8B5QE2m4FjBcvfqAXFIgQfW5oz6306zJ7GIZIWCk/edit?usp=sharing


Release notes 2.1 prep

David Leach
 

Folks,

 

As we get closer to completing release v2.1.0 we need the release notes updated with the major accomplishes and changes made to the various subsystems. Please start providing updates for us to merge in the following sections:

 

  • Kernel
  • Architectures
  • Boards & SoC Support
  • Drivers and Sensors
  • Networking
  • Bluetooth
  • Build and infrastructure
  • Libraries/Subsystems
  • HALs
  • Documentation
  • Tests and Samples

 

David

David Leach

 

NXP Semiconductors

phone: +1.210.241.6761

Email: david.leach@...

 

 


API meeting: agenda

Carles Cufi
 

Hi all,

This week we will look at:

- PWM: Add support for inverted PWM signals
- PR: https://github.com/zephyrproject-rtos/zephyr/pull/20657

- GPIO: Update on progress
- Look at the PRs with driver conversion (https://github.com/zephyrproject-rtos/zephyr/issues/18530)
- Check users of GPIO APIs: https://github.com/zephyrproject-rtos/zephyr/issues/20017
- Tips for converting users can be found here: https://github.com/zephyrproject-rtos/zephyr/issues/20017#issuecomment-549315497 (thanks Peter!)
- Any additional outstanding PRs to topic-gpio

Additional items in the "Triage" column in the GitHub project may be discussed if time permits.
If you want an item included in the meeting, please add it to the GitHub project.

https://github.com/zephyrproject-rtos/zephyr/wiki/Zephyr-Committee-and-Working-Group-Meetings#zephyr-api-discussion
https://github.com/zephyrproject-rtos/zephyr/projects/18
https://docs.google.com/document/d/1lv-8B5QE2m4FjBcvfqAXFIgQfW5oz6306zJ7GIZIWCk/edit

Regards,

Carles


How to add support for Silabs EFM32JG12B?

Christian Taedcke
 

Hello,

i want to add support for the Silabs EFM32JG12B soc. It is nearly the same as the already supported EFM32PG12B. It has the exact same peripherals, memory etc, only a different core. The EFM32JG12B has a Cortex-M3, the EFM32PG12B a Cortex-M4.
Because of this Silabs does not provide an extra development board, since binaries built for the EFM32JG12B can run on the EFM32PG12B. So the recommended development board for the EFM32JG12B is efm32pg_stk3402a

Questions:

1. How to deal with a soc that only differs in the core? I would like to reuse (without copying) a lot of stuff from the efm32pg12b (i.e. the folder soc/arm/silabs_exx32/efm32pg12b and the device tree stuff). Any hints on how to do that?
2. Since there is no development board for the EFM32JG12B soc, i would like to add the possibility to the board efm32pg_stk3402a to compile for the EFM32JG12B instead of the EFM32PG12B. Is that possible or are there other recommendations?

Regards,
Christian


回复: [EXT] [Zephyr-devel] about Dual Mac application for zephyr

nie ninesun
 

Thank for your suggestion. about the handling many network interface. Can zephyr handler the multi network card like switch or I have to add extra code to handle it? or Is there any document about such function?  

发件人: devel@... <devel@...> 代表 Tomasz Bursztyka <tomasz.bursztyka@...>
发送时间: 2019年11月18日 17:19
收件人: Andrei Gansari <andrei.gansari@...>; xz_nie@... <xz_nie@...>; devel@... <devel@...>
主题: Re: [EXT] [Zephyr-devel] about Dual Mac application for zephyr
 
Hi,

Indeed the driver requires another instance to be added. Hopefully it's
trivial, basically a copy-paste of the existing one minor tiny
modifications. The annoying part will be modifying Kconfig as ethernet
drivers do not take fully advantage of device-tree yet.

Zephyr supports as many network interface as you can provide. I guess
about MAC you talk about MAC addresses and not MAC stack.
You will have to select the unique mac address option, this one will
pick up the hardware one.

Tomasz

> Hello Nie,

> First you have a limitation in the fact the ethernet driver
> (eth_mcux) for this board is implemented as single instance, you need
> 2 instances (new feature implementation).
> I’m also not sure the OS supports multiple eth stacks.

> Regards,
> Andrei Gansari

> From: devel@... <devel@...>
> On Behalf Of nie ninesun via Lists.Zephyrproject.Org
> Sent: Monday, November 18, 2019 8:03 AM
> To: devel@...
> Cc: devel@...
> Subject: [EXT] [Zephyr-devel] about Dual Mac application for zephyr

> Caution: EXT Email
>
> Hi Guys:
>         I get an i.mxRT106x development kit board recently. It is
> developed by third party . This boards have two Ethernet port.The
> processor is i.mxRT1061, I hope to link several boards as an network.
> but I don't find any example about two Mac in zephyr application. Can
> anyone give some suggestions about it? Thank you!
> best regards
>





Re: Simultaneous BLE connection with different PHY speeds

Chettimada, Vinayak Kariappa
 

Hi Jos,
 
Currently, by default all BLE connections default to 2Mbps if supported by both local and peer device. If you have mixed peers with support for 2 Mbps absent in some of them, then you will notice that simultaneous connections are at different PHY speeds (1 and 2 Mbps).
 
There is no public API yet in Zephyr to switch PHY by application code at runtime, you are welcome to open a GH issue detailing your intended API use cases to switch PHY, or even better contribute by pushing a PR to get the feature started.
 
Regards,
Vinayak
 

From: devel@... <devel@...> On Behalf Of josef via Lists.Zephyrproject.Org
Sent: 14 November 2019 17:31
To: devel@...
Cc: devel@...
Subject: [Zephyr-devel] Simultaneous BLE connection with different PHY speeds
 
Hi everyone,

I am building a Zephyr based USB-BLE dongle, which works already quite good for multiple simultaneous 1Mbps connections connections.

Does anyone know if it is possible to have simultaneous connections at different PHY speeds (coded PHY and 1Mbps) or is the PHY speed set once and needs to be the same for all simultaneous connections?

Best regards,
Jos
 


Re: [EXT] [Zephyr-devel] about Dual Mac application for zephyr

Tomasz Bursztyka
 

Hi,

Indeed the driver requires another instance to be added. Hopefully it's
trivial, basically a copy-paste of the existing one minor tiny
modifications. The annoying part will be modifying Kconfig as ethernet
drivers do not take fully advantage of device-tree yet.

Zephyr supports as many network interface as you can provide. I guess
about MAC you talk about MAC addresses and not MAC stack.
You will have to select the unique mac address option, this one will
pick up the hardware one.

Tomasz

Hello Nie,

First you have a limitation in the fact the ethernet driver
(eth_mcux) for this board is implemented as single instance, you need
2 instances (new feature implementation).
I’m also not sure the OS supports multiple eth stacks.

Regards,
Andrei Gansari

From: devel@lists.zephyrproject.org <devel@lists.zephyrproject.org>
On Behalf Of nie ninesun via Lists.Zephyrproject.Org
Sent: Monday, November 18, 2019 8:03 AM
To: devel@lists.zephyrproject.org
Cc: devel@lists.zephyrproject.org
Subject: [EXT] [Zephyr-devel] about Dual Mac application for zephyr

Caution: EXT Email

Hi Guys:
I get an i.mxRT106x development kit board recently. It is
developed by third party . This boards have two Ethernet port.The
processor is i.mxRT1061, I hope to link several boards as an network.
but I don't find any example about two Mac in zephyr application. Can
anyone give some suggestions about it? Thank you!
best regards


Re: [EXT] [Zephyr-devel] about Dual Mac application for zephyr

Loic Poulain
 



On Mon, 18 Nov 2019 at 10:11, Andrei Gansari <andrei.gansari@...> wrote:

Hello Nie,

 

First you have a limitation in the fact the ethernet driver (eth_mcux) for this board is implemented as single instance, you need 2 instances (new feature implementation).

I’m also not sure the OS supports multiple eth stacks.


Multiple network interfaces can be supported.
It should be relatively easy to add multiple-instance support to eth_mcux driver since it already works with context.

Regards,
Loic

1541 - 1560 of 8033