Date   

STM32: Clock control configuration moved from Kconfig to device tree

Erwan Gouriou
 

Hi,

We've started to transition STM32 clock system configuration from Kconfig to dts.

The main change (that introduces the whole mechanism) has been merged earlier this week,
making it available to L4/F4 and WB series:
It was followed by another change continuing the transition for remaining series 
(F0/F1/F2/F3/F7/G0/G4/L0/L1/L5/WL) and was merged earlier today.
The last change impacts H7 and is currently under review:

This series of changes allows to configure the whole stm32 clock system using
device tree, but for now, no extra modification is done in stm32 clock_control drivers. 

Kconfig style configuration is still functional but will be tagged as deprecated.
For now, only a couple of in tree boards have been converted to the new dts based
method.

I've raised an issue to track the mass conversion of the existing in tree boards
By the way, we're welcoming community contributions for this task!

Once all boards are converted, we'll be able to deprecate the Kconfig part,
which I hope could be done in DV2.6.0 timeframe.

During deprecation period, the stm32 clock_control developments involving 
device tree will be limited in order to keep backward compatibility with Kconfig.
This is done as a convenience for out of tree users. But for instance, code additions
like support of new series or PLLs will be implemented directly using device tree.

After the deprecation period, STM32 Kconfig clock_control part will be removed
and we'll be able to rework STM32 clock_control driver deeper and take advantage
of the benefits provided by device tree.

Don't hesitate to reach me on slack if you have questions.

Cheers
Erwan


Cancelled Event: Zephyr Project: Dev Meeting - Thursday, 29 April 2021 #cal-cancelled

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

Cancelled: Zephyr Project: Dev Meeting

This event has been cancelled.

When:
Thursday, 29 April 2021
3:00pm to 4:00pm
(UTC+00:00) UTC

Where:
Microsoft Teams Meeting

Organizer: devel@...

Description:

________________________________________________________________________________
+1 321-558-6518 United States, Orlando (Toll)
Conference ID: 483 314 739#
Local numbers | Reset PIN | Learn more about Teams | Meeting options
 
 
________________________________________________________________________________


Re: Dev-Review Meeting Agenda Apr 29

Bolivar, Marti
 

Hi; sorry for the short notice, but Dev-review is cancelled for today.

Kumar is on vacation (which is why I sent the agenda) and I've been
informed that today's dev-review conflicts with talk selection for the
Zephyr Developer summit, so our usual suspects from the TSC will be
unable to attend. Let's pick up next week.

Martí

"Bolivar, Marti via lists.zephyrproject.org"
<marti.bolivar=nordicsemi.no@lists.zephyrproject.org> writes:

Here's the agenda topics for this week:

Setup MPU for code relocated to SRAM
-
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fzephyrproject-rtos%2Fzephyr%2Fpull%2F34086&;data=04%7C01%7Cmarti.bolivar%40nordicsemi.no%7C62d7004197454960258b08d90b1214aa%7C28e5afa2bf6f419a8cf6b31c6e9e5e8d%7C0%7C0%7C637552994555348127%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=dQi43BfsOEa2U4SdGKddRsMpRAbu1fhKgK9DmDxAB0I%3D&amp;reserved=0

* Any topics anyone else has.


Zephyr Project: Dev Meeting - Thu, 04/29/2021 3:00pm-4:00pm, Please RSVP #cal-reminder

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

Reminder: Zephyr Project: Dev Meeting

When: Thursday, 29 April 2021, 3:00pm to 4:00pm, (GMT+00:00) UTC

Where:Microsoft Teams Meeting

An RSVP is requested. Click here to RSVP

Organizer: devel@...

Description:

________________________________________________________________________________
+1 321-558-6518 United States, Orlando (Toll)
Conference ID: 483 314 739#
Local numbers | Reset PIN | Learn more about Teams | Meeting options
 
 
________________________________________________________________________________


RFC: API Change: flash_area #34706

Ermel, Dominik
 

Hello,

 

Some time ago I have posted flash_area changes, that have been only changing how device binding is performed, that has not been accepted (enhancement discussion “Use compile time resolved device bindings in flash map, when possible” , https://github.com/zephyrproject-rtos/zephyr/issues/34227) and it has been proposed to change flash_area to actually provide only features that Zephyr requires and limit the internals of flash_ara structure.

 

That has spawned my work on the subject that was intended to keep compatibility with existing solution and work, also with mcuboot, to make the changes and limit impact on the project.

As a result I have created the RFC RPs with preliminary solution that covers mcuboot and most of Zephyr so far:
mcuboot https://github.com/mcu-tools/mcuboot/pull/982
Zephyr https://github.com/zephyrproject-rtos/zephyr/pull/34530

 

And created RFC that summarizes the changes: https://github.com/zephyrproject-rtos/zephyr/issues/34706

 

The idea is to not add additional layer, reduce flash_area object size and code.

 

So far I have been able to successfully test changes with mcuboot, with slightly reduced flash occupancy, and all tests for flash_area that exist have been running successfully, with slight changes.

The proposed change allows to use flash_area API with IDs and by directly accessing the flash_area objets: my intention is to leave access via ID possible for external entities that use flash_area_open function to get access to area and at the same time change internal, within Zephyr repo code base, access to directly use flash_area objects which can now be obtained by FLASH_AREA(…) macro that works similar to existin FLASH_AREA_ID(..) macro, but returns flash_area object pointer instead of ID.

 

There is still work ongoing on documentation needed and additional test cases but due to kept compatibility with existing solution the transition should be quite simple and reliable.

 

Best regards,

Dominik Ermel


Dominik ERMEL | Senior Software Engineer
M +48 505 071 130 | Kraków, Poland
nordicsemi.com | devzone.nordicsemi.com

Nordic_logo_signature

 


Dev-Review Meeting Agenda Apr 29

Bolivar, Marti
 

Here's the agenda topics for this week:

Setup MPU for code relocated to SRAM
-
https://github.com/zephyrproject-rtos/zephyr/pull/34086

* Any topics anyone else has.


Cancelled Event: Zephyr: Toolchain Working Group - Monday, 3 May 2021 #cal-cancelled

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

Cancelled: Zephyr: Toolchain Working Group

This event has been cancelled.

When:
Monday, 3 May 2021
3:00pm to 4:00pm
(UTC+00:00) UTC

Where:
Microsoft Teams Meeting

Organizer: Torsten Rasmussen

Description:

________________________________________________________________________________
+1 321-558-6518 United States, Orlando (Toll)
Conference ID: 682 738 030#
Local numbers | Reset PIN | Learn more about Teams | Meeting options
 
 


Googletest as a Zephyr module for native_posix target #nrf52

tjones@...
 
Edited

[I may have posted this in the wrong group, so I've also raised it in Zephyr Users.]

I'm new to Zephyr and am trying to get a Linux VM hosted native_posix unit test build environment set up for our Zephyr nRF52 embedded project. 

I've set up the Zephyr SDK and west native_posix (& qemu_x86) build environment and can build and run the samples and a simple hello world test under my Ubuntu 20.04 Linux VM.

We'd like to use GoogleTest/Mock for our unit test environment within the Zephyr native_posix environment. Has anyone here got that working? I've got some way following this StackOverflow post unit-testing-c-code-into-zephyr-with-googletest , but unfortunately it does not provide details of the module.yml and Kconfig file contents. I don't yet know enough to fill them in myself and west / cmake reports that my googletest module is "not a valid zephyr module".

Any help or pointers would be appreciated!


Re: Support for Ambiq Apollo chips #bluetooth #ambiq

Michał Ciesielski
 

Hey Keith,

Thanks for the lead. This certainly helps. I still have some
questions, hope that's ok.

Lets say I'm describing the bytes that relate to gpio controller A:

```
gpioa: gpio@40010000 {
compatible = "ambiq,apollo3-gpio";
gpio-controller;
reg = <0x40010000 4 /* PADREG */
0x40010040 2 /* CFGA */
0x400100e0 4 /* ALTPADCFGA */
0x40010080 1 /* RDA (input read) */
0x40010088 1 /* WTA (output write) */
0x40010090 1 /* WTSA (output set) */
0x40010098 1 /* WTCA (clear) */
0x400100a0 1 /* ENA (enable) */
0x400100a8 1 /* ENSA (set) */
0x400100b4 1 /* ENCA (clear) */
>;
ngpios = <4>;
label = "GPIOA";
#gpio-cells = <2>;
};
```

RDA register is an input register to read the input state of the first
32 pins. RDB register holds the input state of the next 18 pins.
How would I describe that in this gpio controller? Do I describe
specific pins at this stage or is that the register I specify,
combined
with its size, should include all the bytes that refer to the
controlled pins? Meaning that this memory description can include more
than just bits referring to the pins connected to the gpio controller
A and more specific pin description happens in another node.
So the aforementioned RDA register is described here with its address
and size of 32bits. That memory range 0x40010080 - 0x40010081
describes a register that is used by 32 pins.

Another example is the ALTPADCFGA. It describes 32 pins using 4 32bits
registers. Should I specify its size as 4 (entire register) or
only 1 as the first byte of that register is the only one that
references gpio controller A.

I guess my problems come from the lack of understanding what exactly
am I describing here.

Thanks again,
Michal



On Mon, Apr 26, 2021 at 10:29 PM Keith Short <keithshort@google.com> wrote:

The GPIO driver for the ITE IT8xxx2 family also interleaves the register space.

You could follow the model used for that driver - create multiple reg phandles for the individual registers.

https://github.com/zephyrproject-rtos/zephyr/blob/a3469a04978540b1d1cf0173bc557aeb9c0453be/dts/riscv/it8xxx2.dtsi#L93

Keith

On Sun, Apr 25, 2021 at 4:19 PM <ciesielskimm@gmail.com> wrote:

Hello,

I'm trying to add support for the Ambiq Apollo series chips. I'm new to the Zephyr and not very experienced with Device Tree format.
Currently I'm working on the zephyr/dts/arm/ambiq/apollo.dtsi. I'm trying to add the GPIO control registers. I'm modyfing
the STM32 dtsi file. STM32's define the GPIO control in a different way. All the Pad A registers are defined in a continous memory block.
In Ambiq SOCs those they are interleaved. The image below shows the memory map.



First its the Pad configuration registers. Then its GPIO configuration register. I'm wondering how should I implement this
memory layout in the dtsi.


Zephyr Project: APIs - Tue, 04/27/2021 4:00pm-5:00pm, Please RSVP #cal-reminder

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

Reminder: Zephyr Project: APIs

When: Tuesday, 27 April 2021, 4:00pm to 5:00pm, (GMT+00:00) UTC

Where:Microsoft Teams Meeting

An RSVP is requested. Click here to RSVP

Organizer: devel@...

Description:

Meeting decisions/discussions in their respective PRs, tracked here: https://github.com/zephyrproject-rtos/zephyr/projects/18


________________________________________________________________________________
+1 321-558-6518 United States, Orlando (Toll)
Conference ID: 317 990 129#
Local numbers | Reset PIN | Learn more about Teams | Meeting options
 
 
________________________________________________________________________________


v2.6.0 merge window closes Friday, May 7th

Kumar Gala
 

Hi,

This is a reminder that the v2.6.0 merge window for new features closes this Friday, 7th of May. After that, only bug fixes and documentation will be merged until the final release is tagged, which is targeted for Friday, May 28th. Exceptions require TSC approval. New feature PRs may still be submitted while the merge window is closed, but please keep in mind that maintainers will have less time to review them during the release stabilization period.

Please add the v2.6.0 milestone to PRs that need to be included in the release, and do not wait until Friday, May 7th to submit them.

https://github.com/zephyrproject-rtos/zephyr/wiki/Program-Management
https://github.com/zephyrproject-rtos/zephyr/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc+milestone%3Av2.6.0

Please try to help fix bugs, test release candidates, and write release notes to minimize the time the merge window is closed so we can all quickly get back to adding fun new things to Zephyr!

Thank you for your contributions!

- k


API meeting: agenda

Carles Cufi
 


Re: Support for Ambiq Apollo chips #bluetooth #ambiq

Keith Short
 

The GPIO driver for the ITE IT8xxx2 family also interleaves the register space.

You could follow the model used for that driver - create multiple reg phandles for the individual registers.


Keith

On Sun, Apr 25, 2021 at 4:19 PM <ciesielskimm@...> wrote:
Hello,

I'm trying to add support for the Ambiq Apollo series chips. I'm new to the Zephyr and not very experienced with Device Tree format.
Currently I'm working on the zephyr/dts/arm/ambiq/apollo.dtsi. I'm trying to add the GPIO control registers. I'm modyfing
the STM32 dtsi file. STM32's define the GPIO control in a different way. All the Pad A registers are defined in a continous memory block.
In Ambiq SOCs those they are interleaved. The image below shows the memory map.



First its the Pad configuration registers. Then its GPIO configuration register. I'm wondering how should I implement this
memory layout in the dtsi.


Zephyr Memory Footprint - biweekly discussion - Mon, 04/26/2021 3:00pm-4:00pm, Please RSVP #cal-reminder

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

Reminder: Zephyr Memory Footprint - biweekly discussion

When: Monday, 26 April 2021, 3:00pm to 4:00pm, (GMT+00:00) UTC

Where:Microsoft Teams Meeting

An RSVP is requested. Click here to RSVP

Organizer: devel@...

Description: Working doc: https://docs.google.com/document/d/1bnQLJKVhgI3zkk3MsSXun8onEsA8z1Rf5ohdbCHASmU/edit#heading=h.x36xe8bnwr9r

________________________________________________________________________________
Microsoft Teams meeting
Join on your computer or mobile app
Click here to join the meeting
Or call in (audio only)
+1 321-558-6518,,546018126# United States, Orlando
Phone Conference ID: 546 018 126#
 
 
________________________________________________________________________________


Support for Ambiq Apollo chips #bluetooth #ambiq

Michał Ciesielski
 

Hello,

I'm trying to add support for the Ambiq Apollo series chips. I'm new to the Zephyr and not very experienced with Device Tree format.
Currently I'm working on the zephyr/dts/arm/ambiq/apollo.dtsi. I'm trying to add the GPIO control registers. I'm modyfing
the STM32 dtsi file. STM32's define the GPIO control in a different way. All the Pad A registers are defined in a continous memory block.
In Ambiq SOCs those they are interleaved. The image below shows the memory map.



First its the Pad configuration registers. Then its GPIO configuration register. I'm wondering how should I implement this
memory layout in the dtsi.


Re: Private: Re: [Zephyr-devel] QSPI for ATSAME51 #flash

Bolivar, Marti
 

Adding the list back in Cc.

"Theo Hussey via Lists.Zephyrproject.Org"
<theo=open-cosmos.com@lists.zephyrproject.org> writes:

Thank you for your detailed response, I tried to use the binding you
suggested but I was not sure where to put it as I developing the
driver out of tree.
I meant that binding as an example, not as something to copy/paste --
for a different IP block you will need your own binding.


I switched to developing the driver in tree instead and was able to
get the driver working after setting up the binding correctly and
fixing some typos with the macros in my driver.

You can put the binding in a dts/bindings subdirectory of anything in
your DTS_ROOT cmake variable or any Zephyr module that declares itself a
dts-root, like modules/hal/nxp/zephyr/module.yml and
modules/hal/stm32/zephyr/module.yml do.



Thanks

Theo


Re: Cancelled Event: Zephyr Project: Dev Meeting - Thursday, 22 April 2021 #cal-cancelled

Kumar Gala
 

Sorry for the late cancelation. Not feeling well and there wasn’t much of an agenda this week.

On Apr 22, 2021, at 8:36 AM, devel@lists.zephyrproject.org Calendar <noreply@lists.zephyrproject.org> wrote:

Cancelled: Zephyr Project: Dev Meeting

This event has been cancelled.

When:
Thursday, 22 April 2021
3:00pm to 4:00pm
(UTC+00:00) UTC

Where:
Microsoft Teams Meeting

Organizer: devel@lists.zephyrproject.org

Description:

________________________________________________________________________________
Join Microsoft Teams Meeting
+1 321-558-6518 United States, Orlando (Toll)
Conference ID: 483 314 739#
Local numbers | Reset PIN | Learn more about Teams | Meeting options


________________________________________________________________________________


<Mail Attachment.ics><invite.ics>


Cancelled Event: Zephyr Project: Dev Meeting - Thursday, 22 April 2021 #cal-cancelled

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

Cancelled: Zephyr Project: Dev Meeting

This event has been cancelled.

When:
Thursday, 22 April 2021
3:00pm to 4:00pm
(UTC+00:00) UTC

Where:
Microsoft Teams Meeting

Organizer: devel@...

Description:

________________________________________________________________________________
+1 321-558-6518 United States, Orlando (Toll)
Conference ID: 483 314 739#
Local numbers | Reset PIN | Learn more about Teams | Meeting options
 
 
________________________________________________________________________________


Re: QSPI for ATSAME51 #flash

Bolivar, Marti
 

Hi Theo,

"Theo Hussey via lists.zephyrproject.org"
<theo=open-cosmos.com@lists.zephyrproject.org> writes:

Hi,

I am trying to develop an out of tree QSPI driver for the ATSAME51 micro controller.

I have added my entries to the device tree:

soc {
qspi0 : qspi@42003400 {
compatible = "atmel,sam0-qspi" ;
reg = < 0x42003400 0x40 >;
interrupts = < 134 0 >;
status = "okay" ;
label = "QSPI_0" ;
clocks = < &mclk 0x10 13 >, < &mclk 0x10 21 >, < &mclk 0x1C 13 >;
clock-names = "QSPI_AHB_Clock" , "QSPI_2X_AHB_Clock" , "QSPI_APB_Clock" ;
#address-cells = < 1 >;
#size-cells = < 0 >;
};
};
};
There is an extra unmatched "};" here. I'm assuming that is just a
copy/paste issue in this email? It looks like a syntax error.


&qspi0 {
gd25q16 : gd25q16c@0 {
compatible = "jedec,spi-nor" ;
label = "GD25Q16C" ;
reg = < 0 >;
spi-max-frequency = < 80000000 >;
size = < 0x200000 >;
has-be32k;
has-dpd;
t-enter-dpd = < 20000 >;
t-exit-dpd = < 100000 >;
jedec-id = [c8 40 15] ;
};
};

But I receive the following errors when trying to build, in comparison if I add the nor flash as an child of a sercom spi peripheral it builds fine. Does anyone have any suggestions on what could be causing this?
[snip]

zephyr/include/generated/devicetree_unfixed.h:4014:35: error: 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_BUS_P_label' undeclared (first use in this function); did you mean 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_label'?
I'm going to explain what this mess means for the sake of the list
archives before getting to what I am guessing the problem is.

'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_BUS_P_label'

The 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0' part is the 'node
identifier' for the gd25q16c@0 node.

'Node identifiers' are introduced here:

https://docs.zephyrproject.org/latest/guides/dts/api-usage.html#node-identifiers

The secret decoder ring for unpacking node identifiers is:

- 'DT_N' -> 'devicetree node'
- '_S_' -> '/'
- all special characters become '_'

So that:

DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_BUS_P_label

becomes:

devicetree node /soc/qspi@42003400/gd25q16c@0 _BUS_P_label

The trailing '_BUS_P_label' is just the devicetree API trying to figure
out what the 'label' property of the bus node for
/soc/qspi@42003400/gd25q16c@0 is.

I also see:

- 'qspi@42003400' does have a label property in your DTS, "QSPI_0"
- its compatible, 'atmel,sam0-qspi', is not upstream

So I'm guessing that the problem is:

- you've got a custom binding for 'atmel,sam0-qspi',
- it is a missing a 'bus: qspi' line

Example binding with a 'bus: qspi' line:

https://github.com/zephyrproject-rtos/zephyr/blob/master/dts/bindings/qspi/st%2Cstm32-qspi.yaml#L23

If that line is missing, please add it and try again.

Otherwise please provide more details on your binding.

Thanks and HTH,
Martí


QSPI for ATSAME51 #flash

Theo Hussey
 

Hi,

I am trying to develop an out of tree QSPI driver for the ATSAME51 micro controller.

I have added my entries to the device tree:

soc {
qspi0: qspi@42003400 {
compatible = "atmel,sam0-qspi";
reg = <0x42003400 0x40>;
interrupts = <134 0>;
status = "okay";
label = "QSPI_0";
clocks = <&mclk 0x10 13>, <&mclk 0x10 21>, <&mclk 0x1C 13>;
clock-names = "QSPI_AHB_Clock", "QSPI_2X_AHB_Clock", "QSPI_APB_Clock";
#address-cells = <1>;
#size-cells = <0>;
};
};
};

&qspi0 {
gd25q16: gd25q16c@0 {
compatible = "jedec,spi-nor";
label = "GD25Q16C";
reg = <0>;
spi-max-frequency = <80000000>;
size = <0x200000>;
has-be32k;
has-dpd;
t-enter-dpd = <20000>;
t-exit-dpd = <100000>;
jedec-id = [c8 40 15];
};
};


But I receive the following errors when trying to build, in comparison if I add the nor flash as an child of a sercom spi peripheral it builds fine. Does anyone have any suggestions on what could be causing this?

92/128] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/spi_nor.c.obj

FAILED: zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/spi_nor.c.obj 

/home/theo/zephyr-sdk-0.11.4/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -DBUILD_VERSION=zephyr-v2.4.0 -DKERNEL -D_FORTIFY_SOURCE=2 -D__PROGRAM_START -D__ZEPHYR_SUPERVISOR__ -D__ZEPHYR__=1 -I/home/theo/source/zephyr/zephyrproject/zephyr/include -Izephyr/include/generated -I/home/theo/source/zephyr/zephyrproject/zephyr/soc/arm/atmel_sam0/same54 -I/home/theo/source/zephyr/zephyrproject/zephyr/drivers -I/home/theo/source/zephyr/zephyrproject/zephyr/soc/arm/atmel_sam0/common/. -I/home/theo/source/zephyr/zephyrproject/modules/hal/cmsis/CMSIS/Core/Include -I/home/theo/source/zephyr/zephyrproject/modules/hal/atmel/asf/sam0/include/same54 -I/home/theo/source/zephyr/zephyrproject/zephyr/drivers/spi -isystem /home/theo/source/zephyr/zephyrproject/zephyr/lib/libc/minimal/include -isystem /home/theo/zephyr-sdk-0.11.4/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/9.2.0/include -isystem /home/theo/zephyr-sdk-0.11.4/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/9.2.0/include-fixed -Os -imacros /home/theo/source/zephyr/obc-watchdog/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -mcpu=cortex-m4 -mthumb -mabi=aapcs -imacros /home/theo/source/zephyr/zephyrproject/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wno-address-of-packed-member -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=/home/theo/source/zephyr/obc-watchdog=CMAKE_SOURCE_DIR -fmacro-prefix-map=/home/theo/source/zephyr/zephyrproject/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/home/theo/source/zephyr/zephyrproject=WEST_TOPDIR -ffunction-sections -fdata-sections -std=c99 -nostdinc -MD -MT zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/spi_nor.c.obj -MF zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/spi_nor.c.obj.d -o zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/spi_nor.c.obj   -c /home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c

In file included from /home/theo/source/zephyr/zephyrproject/zephyr/include/arch/arm/aarch32/arch.h:20,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/arch/cpu.h:19,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/kernel_includes.h:38,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/kernel.h:17,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/init.h:11,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/device.h:22,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/drivers/flash.h:26,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:13:

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c: In function 'spi_nor_configure':

zephyr/include/generated/devicetree_unfixed.h:4014:35: error: 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_BUS_P_label' undeclared (first use in this function); did you mean 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_label'?

 4014 | #define DT_N_INST_0_jedec_spi_nor DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0

      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1911:38: note: in definition of macro 'DT_CAT'

 1911 | #define DT_CAT(node_id, prop_suffix) node_id##prop_suffix

      |                                      ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1382:31: note: in expansion of macro 'DT_PROP'

 1382 | #define DT_BUS_LABEL(node_id) DT_PROP(DT_BUS(node_id), label)

      |                               ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1375:25: note: in expansion of macro 'DT_CAT'

 1375 | #define DT_BUS(node_id) DT_CAT(node_id, _BUS)

      |                         ^~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1382:39: note: in expansion of macro 'DT_BUS'

 1382 | #define DT_BUS_LABEL(node_id) DT_PROP(DT_BUS(node_id), label)

      |                                       ^~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1721:33: note: in expansion of macro 'DT_BUS_LABEL'

 1721 | #define DT_INST_BUS_LABEL(inst) DT_BUS_LABEL(DT_DRV_INST(inst))

      |                                 ^~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:106:36: note: in expansion of macro 'DT_N_INST_0_jedec_spi_nor'

  106 | #define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__

      |                                    ^

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:105:26: note: in expansion of macro 'UTIL_PRIMITIVE_CAT'

  105 | #define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)

      |                          ^~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:297:31: note: in expansion of macro 'UTIL_CAT'

  297 | #define DT_INST(inst, compat) UTIL_CAT(DT_N_INST, DT_DASH(inst, compat))

      |                               ^~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1426:27: note: in expansion of macro 'DT_INST'

 1426 | #define DT_DRV_INST(inst) DT_INST(inst, DT_DRV_COMPAT)

      |                           ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1721:46: note: in expansion of macro 'DT_DRV_INST'

 1721 | #define DT_INST_BUS_LABEL(inst) DT_BUS_LABEL(DT_DRV_INST(inst))

      |                                              ^~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:838:33: note: in expansion of macro 'DT_INST_BUS_LABEL'

  838 |  data->spi = device_get_binding(DT_INST_BUS_LABEL(0));

      |                                 ^~~~~~~~~~~~~~~~~

zephyr/include/generated/devicetree_unfixed.h:4014:35: note: each undeclared identifier is reported only once for each function it appears in

 4014 | #define DT_N_INST_0_jedec_spi_nor DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0

      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1911:38: note: in definition of macro 'DT_CAT'

 1911 | #define DT_CAT(node_id, prop_suffix) node_id##prop_suffix

      |                                      ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1382:31: note: in expansion of macro 'DT_PROP'

 1382 | #define DT_BUS_LABEL(node_id) DT_PROP(DT_BUS(node_id), label)

      |                               ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1375:25: note: in expansion of macro 'DT_CAT'

 1375 | #define DT_BUS(node_id) DT_CAT(node_id, _BUS)

      |                         ^~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1382:39: note: in expansion of macro 'DT_BUS'

 1382 | #define DT_BUS_LABEL(node_id) DT_PROP(DT_BUS(node_id), label)

      |                                       ^~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1721:33: note: in expansion of macro 'DT_BUS_LABEL'

 1721 | #define DT_INST_BUS_LABEL(inst) DT_BUS_LABEL(DT_DRV_INST(inst))

      |                                 ^~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:106:36: note: in expansion of macro 'DT_N_INST_0_jedec_spi_nor'

  106 | #define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__

      |                                    ^

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:105:26: note: in expansion of macro 'UTIL_PRIMITIVE_CAT'

  105 | #define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)

      |                          ^~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:297:31: note: in expansion of macro 'UTIL_CAT'

  297 | #define DT_INST(inst, compat) UTIL_CAT(DT_N_INST, DT_DASH(inst, compat))

      |                               ^~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1426:27: note: in expansion of macro 'DT_INST'

 1426 | #define DT_DRV_INST(inst) DT_INST(inst, DT_DRV_COMPAT)

      |                           ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1721:46: note: in expansion of macro 'DT_DRV_INST'

 1721 | #define DT_INST_BUS_LABEL(inst) DT_BUS_LABEL(DT_DRV_INST(inst))

      |                                              ^~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:838:33: note: in expansion of macro 'DT_INST_BUS_LABEL'

  838 |  data->spi = device_get_binding(DT_INST_BUS_LABEL(0));

      |                                 ^~~~~~~~~~~~~~~~~

zephyr/include/generated/devicetree_unfixed.h:4014:35: error: 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_spi_max_frequency' undeclared (first use in this function); did you mean 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_reg_IDX_0'?

 4014 | #define DT_N_INST_0_jedec_spi_nor DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0

      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1911:38: note: in definition of macro 'DT_CAT'

 1911 | #define DT_CAT(node_id, prop_suffix) node_id##prop_suffix

      |                                      ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1448:34: note: in expansion of macro 'DT_PROP'

 1448 | #define DT_INST_PROP(inst, prop) DT_PROP(DT_DRV_INST(inst), prop)

      |                                  ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:106:36: note: in expansion of macro 'DT_N_INST_0_jedec_spi_nor'

  106 | #define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__

      |                                    ^

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:105:26: note: in expansion of macro 'UTIL_PRIMITIVE_CAT'

  105 | #define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)

      |                          ^~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:297:31: note: in expansion of macro 'UTIL_CAT'

  297 | #define DT_INST(inst, compat) UTIL_CAT(DT_N_INST, DT_DASH(inst, compat))

      |                               ^~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1426:27: note: in expansion of macro 'DT_INST'

 1426 | #define DT_DRV_INST(inst) DT_INST(inst, DT_DRV_COMPAT)

      |                           ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1448:42: note: in expansion of macro 'DT_DRV_INST'

 1448 | #define DT_INST_PROP(inst, prop) DT_PROP(DT_DRV_INST(inst), prop)

      |                                          ^~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:843:28: note: in expansion of macro 'DT_INST_PROP'

  843 |  data->spi_cfg.frequency = DT_INST_PROP(0, spi_max_frequency);

      |                            ^~~~~~~~~~~~

In file included from /home/theo/source/zephyr/zephyrproject/zephyr/include/toolchain.h:41,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/sys/errno_private.h:10,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/lib/libc/minimal/include/errno.h:20,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:12:

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c: At top level:

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:982:1: error: static assertion failed: "jedec,spi-nor jedec-id required for non-runtime SFDP"

  982 | BUILD_ASSERT(DT_INST_NODE_HAS_PROP(0, jedec_id),

      | ^~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:991:1: error: static assertion failed: "jedec,spi-nor size required for non-runtime SFDP page layout"

  991 | BUILD_ASSERT(DT_INST_NODE_HAS_PROP(0, size),

      | ^~~~~~~~~~~~

zephyr/include/generated/devicetree_unfixed.h:4014:35: error: 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_size' undeclared here (not in a function); did you mean 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_reg'?

 4014 | #define DT_N_INST_0_jedec_spi_nor DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0

      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:393:32: note: in expansion of macro 'DT_CAT'

  393 | #define DT_PROP(node_id, prop) DT_CAT(node_id, _P_##prop)

      |                                ^~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1448:34: note: in expansion of macro 'DT_PROP'

 1448 | #define DT_INST_PROP(inst, prop) DT_PROP(DT_DRV_INST(inst), prop)

      |                                  ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:106:36: note: in expansion of macro 'DT_N_INST_0_jedec_spi_nor'

  106 | #define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__

      |                                    ^

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:105:26: note: in expansion of macro 'UTIL_PRIMITIVE_CAT'

  105 | #define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)

      |                          ^~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:297:31: note: in expansion of macro 'UTIL_CAT'

  297 | #define DT_INST(inst, compat) UTIL_CAT(DT_N_INST, DT_DASH(inst, compat))

      |                               ^~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1426:27: note: in expansion of macro 'DT_INST'

 1426 | #define DT_DRV_INST(inst) DT_INST(inst, DT_DRV_COMPAT)

      |                           ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1448:42: note: in expansion of macro 'DT_DRV_INST'

 1448 | #define DT_INST_PROP(inst, prop) DT_PROP(DT_DRV_INST(inst), prop)

      |                                          ^~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:995:23: note: in expansion of macro 'DT_INST_PROP'

  995 | #define INST_0_BYTES (DT_INST_PROP(0, size) / 8)

      |                       ^~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:1001:29: note: in expansion of macro 'INST_0_BYTES'

 1001 | #define LAYOUT_PAGES_COUNT (INST_0_BYTES / CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE)

      |                             ^~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:1003:55: note: in expansion of macro 'LAYOUT_PAGES_COUNT'

 1003 | BUILD_ASSERT((CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE * LAYOUT_PAGES_COUNT)

      |                                                       ^~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:1003:14: error: expression in static assertion is not an integer

 1003 | BUILD_ASSERT((CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE * LAYOUT_PAGES_COUNT)

      |              ^

In file included from /home/theo/source/zephyr/zephyrproject/zephyr/include/arch/arm/aarch32/arch.h:20,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/arch/cpu.h:19,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/kernel_includes.h:38,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/kernel.h:17,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/init.h:11,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/device.h:22,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/include/drivers/flash.h:26,

                 from /home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:13:

zephyr/include/generated/devicetree_unfixed.h:4014:35: error: 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_jedec_id' undeclared here (not in a function); did you mean 'DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0_P_reg'?

 4014 | #define DT_N_INST_0_jedec_spi_nor DT_N_S_soc_S_qspi_42003400_S_gd25q16c_0

      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1911:38: note: in definition of macro 'DT_CAT'

 1911 | #define DT_CAT(node_id, prop_suffix) node_id##prop_suffix

      |                                      ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1448:34: note: in expansion of macro 'DT_PROP'

 1448 | #define DT_INST_PROP(inst, prop) DT_PROP(DT_DRV_INST(inst), prop)

      |                                  ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:106:36: note: in expansion of macro 'DT_N_INST_0_jedec_spi_nor'

  106 | #define UTIL_PRIMITIVE_CAT(a, ...) a##__VA_ARGS__

      |                                    ^

/home/theo/source/zephyr/zephyrproject/zephyr/include/sys/util_internal.h:105:26: note: in expansion of macro 'UTIL_PRIMITIVE_CAT'

  105 | #define UTIL_CAT(a, ...) UTIL_PRIMITIVE_CAT(a, __VA_ARGS__)

      |                          ^~~~~~~~~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:297:31: note: in expansion of macro 'UTIL_CAT'

  297 | #define DT_INST(inst, compat) UTIL_CAT(DT_N_INST, DT_DASH(inst, compat))

      |                               ^~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1426:27: note: in expansion of macro 'DT_INST'

 1426 | #define DT_DRV_INST(inst) DT_INST(inst, DT_DRV_COMPAT)

      |                           ^~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/include/devicetree.h:1448:42: note: in expansion of macro 'DT_DRV_INST'

 1448 | #define DT_INST_PROP(inst, prop) DT_PROP(DT_DRV_INST(inst), prop)

      |                                          ^~~~~~~~~~~

/home/theo/source/zephyr/zephyrproject/zephyr/drivers/flash/spi_nor.c:1030:14: note: in expansion of macro 'DT_INST_PROP'

 1030 |  .jedec_id = DT_INST_PROP(0, jedec_id),

      |              ^~~~~~~~~~~~

[93/128] Building C object modules/qspi/CMakeFiles/..__..__obc-watchdog__drivers__qspi.dir/qspi_sam0.c.obj

../drivers/qspi/qspi_sam0.c:53:12: warning: 'qspi_sam0_configure' defined but not used [-Wunused-function]

   53 | static int qspi_sam0_configure(const struct device *dev, const struct spi_config *config)

      |            ^~~~~~~~~~~~~~~~~~~

[101/128] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mailbox.c.obj

ninja: build stopped: subcommand failed.

321 - 340 of 8033