<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>The TF-M core throws an exception when adding an e-ink display to the device tree</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/126349/the-tf-m-core-throws-an-exception-when-adding-an-e-ink-display-to-the-device-tree</link><description>I&amp;#39;m planning on using an e-ink display with my custom PCB . But when I add/enable the e-ink display node in my device tree, the TF-M code throws an exception in /ncs/v3.2.1/modules/tee/tf-m/trusted-firmware-m/secure_fw/spm/core/main.c on line 31: I&amp;#39;m</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 06 Jan 2026 15:17:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/126349/the-tf-m-core-throws-an-exception-when-adding-an-e-ink-display-to-the-device-tree" /><item><title>RE: The TF-M core throws an exception when adding an e-ink display to the device tree</title><link>https://devzone.nordicsemi.com/thread/558062?ContentTypeID=1</link><pubDate>Tue, 06 Jan 2026 15:17:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c07b35d0-4e6a-4f68-9e3f-83189593849b</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;I lowered the log level, added uart for logging to run on a DK, and this is the output:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;--- 33 messages dropped ---
[00:00:00.315,673] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.315, +0)	 event_send_core: Sending event 27 to 0x20009cec with 0x20012064 param lv_obj_event.c:353

[00:00:00.315,826] &amp;lt;inf&amp;gt; lvgl: (0.315, +0)	 lv_obj_create: begin lv_obj.c:215

[00:00:00.316,009] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.315, +0)	 lv_obj_class_create_obj: Creating object with 0x4863c class on 0 parent lv_obj_class.c:49

[00:00:00.316,131] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +1)	 lv_malloc_zeroed: allocating 44 bytes lv_mem.c:94

[00:00:00.316,284] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +0)	 lv_malloc_zeroed: allocated at 0x20009d2c lv_mem.c:115

[00:00:00.316,406] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +0)	 lv_obj_class_create_obj: creating a screen lv_obj_class.c:58

[00:00:00.316,558] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +0)	 lv_realloc: reallocating 0x20009d1c with 12 size lv_mem.c:150

[00:00:00.316,711] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +0)	 lv_realloc: reallocated at 0x20009d1c lv_mem.c:166

[00:00:00.316,833] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +0)	 lv_obj_constructor: begin lv_obj.c:481

[00:00:00.316,955] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +0)	 lv_obj_constructor: finished lv_obj.c:510

[00:00:00.317,169] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.316, +0)	 event_send_core: Sending event 50 to 0x20009d2c with 0 param lv_obj_event.c:353

[00:00:00.317,382] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.317, +1)	 event_send_core: Sending event 27 to 0x20009d2c with 0x20012064 param lv_obj_event.c:353

[00:00:00.317,565] &amp;lt;inf&amp;gt; lvgl: (0.317, +0)	 lv_obj_create: begin lv_obj.c:215

[00:00:00.317,749] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.317, +0)	 lv_obj_class_create_obj: Creating object with 0x4863c class on 0 parent lv_obj_class.c:49

[00:00:00.317,871] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.317, +0)	 lv_malloc_zeroed: allocating 44 bytes lv_mem.c:94

[00:00:00.318,023] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.317, +0)	 lv_malloc_zeroed: allocated at 0x20009d5c lv_mem.c:115

[00:00:00.318,176] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.318, +1)	 lv_obj_class_create_obj: creating a screen lv_obj_class.c:58

[00:00:00.318,328] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.318, +0)	 lv_realloc: reallocating 0x20009d1c with 16 size lv_mem.c:150

[00:00:00.318,481] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.318, +0)	 lv_realloc: reallocated at 0x20009d8c lv_mem.c:166

[00:00:00.318,634] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.318, +0)	 lv_obj_constructor: begin lv_obj.c:481

[00:00:00.318,756] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.318, +0)	 lv_obj_constructor: finished lv_obj.c:510

[00:00:00.318,939] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.318, +0)	 event_send_core: Sending event 50 to 0x20009d5c with 0 param lv_obj_event.c:353

[00:00:00.319,183] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.319, +1)	 event_send_core: Sending event 27 to 0x20009d5c with 0x20012064 param lv_obj_event.c:353

[00:00:00.319,366] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.319, +0)	 lv_malloc_zeroed: allocating 52 bytes lv_mem.c:94

[00:00:00.319,519] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.319, +0)	 lv_malloc_zeroed: allocated at 0x20009da4 lv_mem.c:115

[00:00:00.319,702] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.319, +0)	 lv_malloc_zeroed: allocating 52 bytes lv_mem.c:94

[00:00:00.319,854] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.319, +0)	 lv_malloc_zeroed: allocated at 0x20009ddc lv_mem.c:115

[00:00:00.320,007] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.319, +0)	 lv_malloc_zeroed: allocating 52 bytes lv_mem.c:94

[00:00:00.320,159] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.320, +1)	 lv_malloc_zeroed: allocated at 0x20009e14 lv_mem.c:115

[00:00:00.320,343] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.320, +0)	 lv_malloc: allocating 12 bytes lv_mem.c:64

[00:00:00.320,495] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.320, +0)	 lv_malloc: allocated at 0x20009d1c lv_mem.c:88

[00:00:00.320,617] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.320, +0)	 lv_malloc: allocating 4 bytes lv_mem.c:64

[00:00:00.320,770] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.320, +0)	 lv_malloc: allocated at 0x20009ce4 lv_mem.c:88

[00:00:00.320,922] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.320, +0)	 lv_malloc: allocating 12 bytes lv_mem.c:64

[00:00:00.321,044] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.320, +0)	 lv_malloc: allocated at 0x20009e4c lv_mem.c:88

[00:00:00.321,228] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.321, +1)	 lv_realloc: reallocating 0x20009ce4 with 20 size lv_mem.c:150

[00:00:00.321,380] &amp;lt;dbg&amp;gt; lvgl: lvgl_log: (0.321, +0)	 lv_realloc: reallocated at 0x20009e5c lv_mem.c:166

APP: main() entered
[00:00:00.321,441] &amp;lt;dbg&amp;gt; MAIN: main: Booted up
[00:00:00.321,472] &amp;lt;err&amp;gt; MAIN: Error: led device is not ready

uart:~$ 
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Obviously, I do not have the same setup as you, wrt. display/sensors etc, but this shows that it boots as expected. RTT can have a habit of not printing the full log when faulting, so I wanted to run without that.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my diff:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;diff --git a/boards/Gensis/meko_v2/meko_v2-pinctrl.dtsi b/boards/Gensis/meko_v2/meko_v2-pinctrl.dtsi
index 9cac073..015467d 100644
--- a/boards/Gensis/meko_v2/meko_v2-pinctrl.dtsi
+++ b/boards/Gensis/meko_v2/meko_v2-pinctrl.dtsi
@@ -30,4 +30,26 @@
             low-power-enable;
         };
     };
+	uart0_default: uart0_default {
+		group1 {
+			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 20)&amp;gt;,
+				&amp;lt;NRF_PSEL(UART_RTS, 0, 19)&amp;gt;;
+		};
+
+		group2 {
+			psels = &amp;lt;NRF_PSEL(UART_RX, 0, 22)&amp;gt;,
+				&amp;lt;NRF_PSEL(UART_CTS, 0, 21)&amp;gt;;
+			bias-pull-up;
+		};
+	};
+
+	uart0_sleep: uart0_sleep {
+		group1 {
+			psels = &amp;lt;NRF_PSEL(UART_TX, 0, 20)&amp;gt;,
+				&amp;lt;NRF_PSEL(UART_RX, 0, 22)&amp;gt;,
+				&amp;lt;NRF_PSEL(UART_RTS, 0, 19)&amp;gt;,
+				&amp;lt;NRF_PSEL(UART_CTS, 0, 21)&amp;gt;;
+			low-power-enable;
+		};
+	};
 };
diff --git a/boards/Gensis/meko_v2/meko_v2_common.dtsi b/boards/Gensis/meko_v2/meko_v2_common.dtsi
index 198dc53..ade056b 100644
--- a/boards/Gensis/meko_v2/meko_v2_common.dtsi
+++ b/boards/Gensis/meko_v2/meko_v2_common.dtsi
@@ -5,6 +5,8 @@
 
     chosen {
         zephyr,display=&amp;amp;epd;
+		zephyr,console = &amp;amp;uart0;
+		zephyr,shell-uart = &amp;amp;uart0;
     };
 
     motor: zephyr,user {
@@ -76,6 +78,15 @@
     };
 };
 
+&amp;amp;uart0 {
+	status = &amp;quot;okay&amp;quot;;
+	current-speed = &amp;lt;115200&amp;gt;;
+	pinctrl-0 = &amp;lt;&amp;amp;uart0_default&amp;gt;;
+	pinctrl-1 = &amp;lt;&amp;amp;uart0_sleep&amp;gt;;
+	pinctrl-names = &amp;quot;default&amp;quot;, &amp;quot;sleep&amp;quot;;
+};
+
+
 &amp;amp;gpio0 {
     status = &amp;quot;okay&amp;quot;;
 };
@@ -155,4 +166,4 @@
             };
         };
     };
-};
\ No newline at end of file
+};
diff --git a/prj.conf b/prj.conf
index 0506dca..3fff391 100644
--- a/prj.conf
+++ b/prj.conf
@@ -7,15 +7,15 @@ CONFIG_DEBUG_THREAD_INFO=y
 CONFIG_CONSOLE=y
 CONFIG_LOG=y
 CONFIG_LOG_CMDS=y
-CONFIG_LOG_DEFAULT_LEVEL=4
+# CONFIG_LOG_DEFAULT_LEVEL=4
 CONFIG_LOG_BUFFER_SIZE=4096
 
-CONFIG_USE_SEGGER_RTT=y
-CONFIG_LOG_BACKEND_RTT=y
-CONFIG_RTT_CONSOLE=y
-
+# CONFIG_USE_SEGGER_RTT=y
+# CONFIG_LOG_BACKEND_RTT=y
+# CONFIG_RTT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_UART_CONSOLE=y
 CONFIG_TFM_SECURE_UART=n
-CONFIG_UART_CONSOLE=n
 CONFIG_TFM_LOG_LEVEL_SILENCE=y
 
 CONFIG_REGULATOR_LOG_LEVEL_DBG=y
@@ -51,4 +51,4 @@ CONFIG_LV_FONT_MONTSERRAT_12=y
 CONFIG_LV_FONT_MONTSERRAT_14=y
 CONFIG_LV_FONT_MONTSERRAT_16=y
 CONFIG_LV_FONT_MONTSERRAT_18=y
-CONFIG_LV_FONT_MONTSERRAT_24=y
\ No newline at end of file
+CONFIG_LV_FONT_MONTSERRAT_24=y
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you check if you still see a fault condition?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: The TF-M core throws an exception when adding an e-ink display to the device tree</title><link>https://devzone.nordicsemi.com/thread/557959?ContentTypeID=1</link><pubDate>Mon, 05 Jan 2026 17:40:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c39a221b-c6d3-4f98-ba95-69ea635f7bda</guid><dc:creator>koeg</dc:creator><description>&lt;p&gt;Here is my new &lt;a href="https://github.com/KOEGlike/eno-os/tree/display-testing"&gt;code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And here are the logs(I used RTT for this):&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;00&amp;gt; [00:00:00.252,288] &amp;lt;dbg&amp;gt; os: setup_thread_stack: stack 0x20010400 for thread 0x2000d868: obj_size=4096 buf_start=0x20010400  buf_size 4096 stack_ptr=0x20011400
00&amp;gt; [00:00:00.252,319] &amp;lt;dbg&amp;gt; os: setup_thread_stack: stack 0x200102c0 for thread 0x2000d7b0: obj_size=320 buf_start=0x200102c0  buf_size 320 stack_ptr=0x20010400
00&amp;gt; [00:00:00.252,380] &amp;lt;dbg&amp;gt; clock_control: clkstarted_handle: lfclk: Clock started
00&amp;gt; [00:00:00.252,410] &amp;lt;dbg&amp;gt; os: setup_thread_stack: stack 0x2000f7c0 for thread 0x20008698: obj_size=768 buf_start=0x2000f7c0  buf_size 768 stack_ptr=0x2000fac0
00&amp;gt; [00:00:00.252,502] &amp;lt;dbg&amp;gt; ssd16xx: ssd16xx_init: 
00&amp;gt; [00:00:00.252,532] &amp;lt;dbg&amp;gt; ssd16xx: ssd16xx_controller_init: 
00&amp;gt; [00:00:00.252,563] &amp;lt;dbg&amp;gt; os: z_tick_sleep: thread 0x2000d868 for 33 ticks
00&amp;gt; [00:00:00.253,692] &amp;lt;dbg&amp;gt; os: z_tick_sleep: thread 0x2000d868 for 33 ticks
00&amp;gt; [00:00:00.254,821] &amp;lt;dbg&amp;gt; os: z_tick_sleep: thread 0x2000d868 for 33 ticks
00&amp;gt; [00:00:00.255,950] &amp;lt;dbg&amp;gt; os: z_impl_k_mutex_0m&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: The TF-M core throws an exception when adding an e-ink display to the device tree</title><link>https://devzone.nordicsemi.com/thread/557958?ContentTypeID=1</link><pubDate>Mon, 05 Jan 2026 17:36:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f87091db-a1df-4698-9adc-d26317a5e821</guid><dc:creator>koeg</dc:creator><description>&lt;p&gt;I get a different error this time&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1767634550494v1.png" alt=" " /&gt;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1767634556392v2.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: The TF-M core throws an exception when adding an e-ink display to the device tree</title><link>https://devzone.nordicsemi.com/thread/557884?ContentTypeID=1</link><pubDate>Mon, 05 Jan 2026 08:00:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:68eee94f-6bf0-4c3f-90ff-ea995f2fb149</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;TF-M uses uart1 (which is shared with spi1) for logging purposes:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/nrf/security/tfm.html#building"&gt;https://docs.nordicsemi.com/bundle/ncs-2.7.0/page/nrf/security/tfm.html#building&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Try setting `CONFIG_TFM_LOG_LEVEL_SILENCE=y` and see if the issue still appears.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>