Custom board build with Zephyr cannot find Zephyr Label clk_hsi48

Following on from my previous issue " [“Enabling PlatformIO and Zephyr on custom hardware” doesn’t work with my custom board] ("Enabling PlatformIO and Zephyr on custom hardware" doesn't work with my custom board)

Following the answers provided there by Max Gerhardt, the board builds when pre existing board definitions that are in the main zephyrproject/zephyr/boards/arm/ronoth_lodev are referenced, but as soon as I reference a copy of those files created in the zephyr/arm/ronoth_lodev folder in the root of my local project folder by adding set (BOARD_ROOT “${CMAKE_CURRENT_SOURCE_DIR}”)
to the CMakeLists.txt file, as suggested in the custom zephyr board blog article, then try to build the following errors are thrown:

Error: ronoth_lodev.dts.pre.tmp:1084.1-11 Label or path clk_hsi48 not found
Error: ronoth_lodev.dts.pre.tmp:1135.10-11 syntax error
FATAL ERROR: Unable to parse input tree
CMake Error at /home/ron/.platformio/packages/framework-zephyr/cmake/dts.cmake:225 (message):

clk_hsi48 is one of the labels in ronoth_lodev.dts as follows:

&clk_lsi {
status = “okay”;
};

&clk_hsi48 {
status = “okay”;
};

&clk_hsi {
status = “okay”;
};

Suggestions on what could be the issue and how to fix would be appreciated. With that understanding it should be possible to go on to create a new custom board based on this existing one (which uses an AcSIP s76s SIP, which incorporates an STM32L073 mcu and Semtech Sx1276 radio).

Thanks

What version of Zephyr did that copy of that folder come from? Keep in mind that in your last post, it’s correctly seen that the ststm32 platform currently uses Zephyr 2.7.1. If you just grabbed the ronoth_lodev folder from the Zephyr main Github branch (last stable release is 3.4.0), I’d imagine that that blows up pretty badly.

If you want to make sure to work from a known-good copy, copy it from the previously working platform packages instead: /home/ron/.platformio/packages/framework-zephyr/boards/arm/ronoth_lodev

Thanks Max, that was it. Several changes to ronoth_lodev_defconfig, ronoth_lodev.yaml, and ronoth_lowdev.dts between the two versions. That there were two hadn’t dawned on me at all. So will mark that as the solution.

However that does raise another issue. That 3.4 has marched on quite a bit from 2.7.1, including that ronoth_lodev under 3.4 includes a provision for using the lora radio (indicated in the 3.4 version of ronoth_lodev.yaml), which is essential to our requirements. In any case creating a new board and its firmware applications using a significantly older Zephyr version doesn’t seem like such a good idea.

Is there a straightforward way to upgrade platformio ststm32 to use the latest Zephyr?

Most interestingly, the framework-zephyr PlatformIO package has recieved an update 24 days ago with it being updated to Zephyr 3.4.0 (i.e, latest stable), with the repo being here. But I don’t yet see changes in the platform-ststm32 repository to pull in that newer change (in builder script or platform.json). Issues like

Are still open too.

While I have not yet tested it, you can try to just the newer package on good-luck basis anyways. Like the documentation says, you can do that by adding

platform_packages =
   framework-zephyr@~2.30400.0

in the platformio.ini.

Thanks Max, will try adding the newer package, see what happens. Guess part of the issue is the speed with which Zephyr is still developing. From previous experiences even their own support staff sometimes have trouble keeping up.