Can' get modem trace from custom board

6175.trace-2025-05-13T14-12-36.978Z.mtrace

Hi,

I have a custom board build with an nrf9151. Right now I'd like to have the possibilty ti get modem trace. But it's look like I got crypted/corrupted data from UART1. So in my project I created an overlay file like this:

/ {
    chosen {
        nordic,modem-trace-uart = &uart1;
    };
};

&i2c1 {
    status = "disabled";
};

&uart1 {
    current-speed = <1000000>;
    pinctrl-0 = <&uart1_default>;
    pinctrl-1 = <&uart1_sleep>;
    pinctrl-names = "default", "sleep";
};

Here is my board comon-pinctrl

&pinctrl {
	uart0_default: uart0_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 6)>,
				<NRF_PSEL(UART_RX, 0, 5)>;
		};
	};

	uart0_sleep: uart0_sleep {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 6)>,
				<NRF_PSEL(UART_RX, 0, 5)>;
			low-power-enable;
		};
	};

	uart1_default: uart1_default {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 23)>,
				<NRF_PSEL(UART_RX, 0, 24)>;
		};
	};

	uart1_sleep: uart1_sleep {
		group1 {
			psels = <NRF_PSEL(UART_TX, 0, 23)>,
				<NRF_PSEL(UART_RX, 0, 24)>;
			low-power-enable;
		};
	};
	
	i2c1_default: i2c1_default {
		group1 {
			psels = <NRF_PSEL(TWIM_SDA, 0, 26)>,
				<NRF_PSEL(TWIM_SCL, 0, 27)>;
		};
	};

	i2c1_sleep: i2c1_sleep {
		group1 {
			psels = <NRF_PSEL(TWIM_SDA, 0, 26)>,
				<NRF_PSEL(TWIM_SCL, 0, 27)>;
			low-power-enable;
		};
	};
}

in my common file

...

&adc {
	status = "okay";
};

&gpiote {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart0_default>;
	pinctrl-1 = <&uart0_sleep>;
	pinctrl-names = "default", "sleep";
};

&i2c1 {
	compatible = "nordic,nrf-twim";
	status = "okay";

	pinctrl-0 = <&i2c1_default>;
	pinctrl-1 = <&i2c1_sleep>;
	pinctrl-names = "default", "sleep";
};

...

So I think my board def and overlay are good...

In my prj.conf

...
CONFIG_GPIO=y
CONFIG_I2C=y
CONFIG_LOG=y
CONFIG_DEBUG=y
CONFIG_ASSERT=y
CONFIG_NRF_MODEM_LOG=y
CONFIG_SERIAL=y

CONFIG_AT_HOST_LIBRARY=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_NRF_MODEM_LIB_TRACE=y

....

Ok so with all this configuration I'm able to send AT command via serial (UART0) example if I send `AT+CGMR` I got mfw_nrf91x1_2.0.2. and when my custom board boot I have serial terminal showing this:

*** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
[00:00:00.308,868] <inf> LOG: Sample started.
[00:00:00.308,990] <inf> nrf_modem: Initializing libmodem 2.6.1-lte-11b6ed4846a8
[00:00:00.556,304] <inf> nrf_modem: RPC ready
[00:00:00.556,671] <inf> nrf_modem_lib_trace: Trace thread ready
[00:00:00.558,258] <inf> nrf_modem_lib_trace: Trace level override: 2
[00:00:00.689,941] <inf> LOG: Waiting for LTE connect event.

So I presume UART0 works well and my firmware also. Right now I want to get modem trace so I plugged an CP2102 to my UART1, when my board boot I can see Rx led on my cp2102 blinking rapidly, so I presume lot of data coming to this UART1.

I open Cellular monitor and I select my cp2102 plug on UART1 and I let modem trace database in autoselect, in this configuration, cellular monitor never checked in green number 1 TRACE step. So after I try to specify my databse (v2.02 like AT+CGMR return mfw_nrf91x1_2.0.2) and now I have a mtrace file but all data inside look corrupted or crypted (I've attached an example with my post). I managed lot of test, always same prblem, even if I try to reset my board during cellular monitor detect phase.

Any thoughts?

Parents Reply Children
  • Ok I think I've found the root issue for my bad/corrupted data coming from uart1, the issue was TF-M. So here is what I have try create new build configuration select my custom board and add 2 snipets:

    nrf91-modem-trace-uart and tfm-enable-share-uart

    If I open serial temrinal (selecting terminal serial port in cellular monitor) when I clicked on start button I can see AT+CGMR send.

    But no return, it's look like my uart1 doesn't receive/transmit anything. Because if I send AT+CGMR to uart0 I got an answer.

    It's look like AT command only works on UART0 and not on UART1, and I pressume cellular monitor use AT command...

    My dts

    /dts-v1/;
    
    / {
    	#address-cells = < 0x1 >;
    	#size-cells = < 0x1 >;
    	model = "Nordic Custom NRF9151";
    	compatible = "nordic,nrf9151-dk-nrf9151";
    	chosen {
    		zephyr,entropy = &psa_rng;
    		zephyr,flash-controller = &flash_controller;
    		zephyr,console = &uart0;
    		zephyr,shell-uart = &uart0;
    		zephyr,uart-mcumgr = &uart0;
    		zephyr,flash = &flash0;
    		zephyr,sram = &sram0_ns;
    		zephyr,code-partition = &slot0_ns_partition;
    		nordic,modem-trace-uart = &uart1;
    	};
    	aliases {
    	};
    	soc {
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x1 >;
    		compatible = "nordic,nrf9151-laca", "nordic,nrf9120", "nordic,nrf91", "simple-bus";
    		interrupt-parent = < &nvic >;
    		ranges;
    		nvic: interrupt-controller@e000e100 {
    			#address-cells = < 0x1 >;
    			compatible = "arm,v8m-nvic";
    			reg = < 0xe000e100 0xc00 >;
    			interrupt-controller;
    			#interrupt-cells = < 0x2 >;
    			arm,num-irq-priority-bits = < 0x3 >;
    			phandle = < 0x1 >;
    		};
    		systick: timer@e000e010 {
    			compatible = "arm,armv8m-systick";
    			reg = < 0xe000e010 0x10 >;
    			status = "disabled";
    		};
    		sram0: memory@20000000 {
    			compatible = "mmio-sram";
    			reg = < 0x20000000 0x40000 >;
    		};
    		peripheral@40000000 {
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x1 >;
    			ranges = < 0x0 0x40000000 0x10000000 >;
    			flash_controller: flash-controller@39000 {
    				compatible = "nordic,nrf91-flash-controller";
    				reg = < 0x39000 0x1000 >;
    				partial-erase;
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x1 >;
    				flash0: flash@0 {
    					compatible = "soc-nv-flash";
    					erase-block-size = < 0x1000 >;
    					write-block-size = < 0x4 >;
    					reg = < 0x0 0x100000 >;
    					partitions {
    						compatible = "fixed-partitions";
    						#address-cells = < 0x1 >;
    						#size-cells = < 0x1 >;
    						boot_partition: partition@0 {
    							label = "mcuboot";
    							reg = < 0x0 0x10000 >;
    						};
    						slot0_partition: partition@10000 {
    							label = "image-0";
    							reg = < 0x10000 0x40000 >;
    						};
    						slot0_ns_partition: partition@50000 {
    							label = "image-0-nonsecure";
    							reg = < 0x50000 0x35000 >;
    						};
    						slot1_partition: partition@85000 {
    							label = "image-1";
    							reg = < 0x85000 0x40000 >;
    						};
    						slot1_ns_partition: partition@c5000 {
    							label = "image-1-nonsecure";
    							reg = < 0xc5000 0x35000 >;
    						};
    						storage_partition: partition@fa000 {
    							label = "storage";
    							reg = < 0xfa000 0x6000 >;
    						};
    					};
    				};
    			};
    			adc: adc@e000 {
    				compatible = "nordic,nrf-saadc";
    				reg = < 0xe000 0x1000 >;
    				interrupts = < 0xe 0x1 >;
    				status = "okay";
    				#io-channel-cells = < 0x1 >;
    			};
    			dppic: dppic@17000 {
    				compatible = "nordic,nrf-dppic";
    				reg = < 0x17000 0x1000 >;
    				status = "okay";
    			};
    			egu0: egu@1b000 {
    				compatible = "nordic,nrf-egu";
    				reg = < 0x1b000 0x1000 >;
    				interrupts = < 0x1b 0x1 >;
    				status = "okay";
    			};
    			egu1: egu@1c000 {
    				compatible = "nordic,nrf-egu";
    				reg = < 0x1c000 0x1000 >;
    				interrupts = < 0x1c 0x1 >;
    				status = "okay";
    			};
    			egu2: egu@1d000 {
    				compatible = "nordic,nrf-egu";
    				reg = < 0x1d000 0x1000 >;
    				interrupts = < 0x1d 0x1 >;
    				status = "okay";
    			};
    			egu3: egu@1e000 {
    				compatible = "nordic,nrf-egu";
    				reg = < 0x1e000 0x1000 >;
    				interrupts = < 0x1e 0x1 >;
    				status = "okay";
    			};
    			egu4: egu@1f000 {
    				compatible = "nordic,nrf-egu";
    				reg = < 0x1f000 0x1000 >;
    				interrupts = < 0x1f 0x1 >;
    				status = "okay";
    			};
    			egu5: egu@20000 {
    				compatible = "nordic,nrf-egu";
    				reg = < 0x20000 0x1000 >;
    				interrupts = < 0x20 0x1 >;
    				status = "okay";
    			};
    			ipc: ipc@2a000 {
    				compatible = "nordic,nrf-ipc";
    				reg = < 0x2a000 0x1000 >;
    				interrupts = < 0x2a 0x1 >;
    				status = "okay";
    			};
    			i2s0: i2s@28000 {
    				compatible = "nordic,nrf-i2s";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0x28000 0x1000 >;
    				interrupts = < 0x28 0x1 >;
    				status = "disabled";
    			};
    			kmu: kmu@39000 {
    				compatible = "nordic,nrf-kmu";
    				reg = < 0x39000 0x1000 >;
    				interrupts = < 0x39 0x1 >;
    				status = "okay";
    			};
    			pdm0: pdm@26000 {
    				compatible = "nordic,nrf-pdm";
    				reg = < 0x26000 0x1000 >;
    				interrupts = < 0x26 0x1 >;
    				status = "disabled";
    			};
    			regulators: regulator@4000 {
    				compatible = "nordic,nrf-regulators";
    				reg = < 0x4000 0x1000 >;
    				status = "okay";
    			};
    			vmc: vmc@3a000 {
    				compatible = "nordic,nrf-vmc";
    				reg = < 0x3a000 0x1000 >;
    				status = "okay";
    			};
    			uart0: uart@8000 {
    				compatible = "nordic,nrf-uarte";
    				reg = < 0x8000 0x1000 >;
    				interrupts = < 0x8 0x1 >;
    				status = "okay";
    				current-speed = < 0x1c200 >;
    				pinctrl-0 = < &uart0_default >;
    				pinctrl-1 = < &uart0_sleep >;
    				pinctrl-names = "default", "sleep";
    			};
    			uart1: uart@9000 {
    				compatible = "nordic,nrf-uarte";
    				reg = < 0x9000 0x1000 >;
    				interrupts = < 0x9 0x1 >;
    				status = "okay";
    				current-speed = < 0xf4240 >;
    				pinctrl-0 = < &uart1_default >;
    				pinctrl-1 = < &uart1_sleep >;
    				pinctrl-names = "default", "sleep";
    			};
    			uart2: uart@a000 {
    				compatible = "nordic,nrf-uarte";
    				reg = < 0xa000 0x1000 >;
    				interrupts = < 0xa 0x1 >;
    				status = "disabled";
    			};
    			uart3: uart@b000 {
    				compatible = "nordic,nrf-uarte";
    				reg = < 0xb000 0x1000 >;
    				interrupts = < 0xb 0x1 >;
    				status = "disabled";
    			};
    			i2c0: i2c@8000 {
    				compatible = "nordic,nrf-twim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0x8000 0x1000 >;
    				clock-frequency = < 0x186a0 >;
    				interrupts = < 0x8 0x1 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "disabled";
    			};
    			i2c1: i2c@9000 {
    				compatible = "nordic,nrf-twim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0x9000 0x1000 >;
    				clock-frequency = < 0x186a0 >;
    				interrupts = < 0x9 0x1 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "disabled";
    				pinctrl-0 = < &i2c1_default >;
    				pinctrl-1 = < &i2c1_sleep >;
    				pinctrl-names = "default", "sleep";
    			};
    			i2c2: i2c@a000 {
    				compatible = "nordic,nrf-twim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0xa000 0x1000 >;
    				clock-frequency = < 0x186a0 >;
    				interrupts = < 0xa 0x1 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "disabled";
    			};
    			i2c3: i2c@b000 {
    				compatible = "nordic,nrf-twim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0xb000 0x1000 >;
    				clock-frequency = < 0x186a0 >;
    				interrupts = < 0xb 0x1 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "disabled";
    			};
    			spi0: spi@8000 {
    				compatible = "nordic,nrf-spim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0x8000 0x1000 >;
    				interrupts = < 0x8 0x1 >;
    				max-frequency = < 0x7a1200 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "disabled";
    			};
    			spi1: spi@9000 {
    				compatible = "nordic,nrf-spim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0x9000 0x1000 >;
    				interrupts = < 0x9 0x1 >;
    				max-frequency = < 0x7a1200 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "disabled";
    			};
    			spi2: spi@a000 {
    				compatible = "nordic,nrf-spim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0xa000 0x1000 >;
    				interrupts = < 0xa 0x1 >;
    				max-frequency = < 0x7a1200 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "disabled";
    			};
    			spi3: spi@b000 {
    				compatible = "nordic,nrf-spim";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x0 >;
    				reg = < 0xb000 0x1000 >;
    				interrupts = < 0xb 0x1 >;
    				max-frequency = < 0x7a1200 >;
    				easydma-maxcnt-bits = < 0xd >;
    				status = "okay";
    				cs-gpios = < &gpio0 0x7 0x1 >;
    				pinctrl-0 = < &spi3_default >;
    				pinctrl-1 = < &spi3_sleep >;
    				pinctrl-names = "default", "sleep";
    				w25q01jv: w25q01jv@0 {
    					compatible = "jedec,spi-nor";
    					reg = < 0x0 >;
    					spi-max-frequency = < 0x2625a00 >;
    					wp-gpios = < &gpio0 0x8 0x1 >;
    					hold-gpios = < &gpio0 0xa 0x1 >;
    					size = < 0x2000000 >;
    					has-dpd;
    					t-enter-dpd = < 0xbb8 >;
    					t-exit-dpd = < 0x7530 >;
    					jedec-id = [ EF 40 21 ];
    					partitions {
    						compatible = "fixed-partitions";
    						#address-cells = < 0x1 >;
    						#size-cells = < 0x1 >;
    						lfs1_part: partition@0 {
    							label = "littlefs_storage";
    							reg = < 0x0 0x2000000 >;
    						};
    					};
    				};
    			};
    			pwm0: pwm@21000 {
    				compatible = "nordic,nrf-pwm";
    				reg = < 0x21000 0x1000 >;
    				interrupts = < 0x21 0x1 >;
    				status = "disabled";
    				#pwm-cells = < 0x3 >;
    			};
    			pwm1: pwm@22000 {
    				compatible = "nordic,nrf-pwm";
    				reg = < 0x22000 0x1000 >;
    				interrupts = < 0x22 0x1 >;
    				status = "disabled";
    				#pwm-cells = < 0x3 >;
    			};
    			pwm2: pwm@23000 {
    				compatible = "nordic,nrf-pwm";
    				reg = < 0x23000 0x1000 >;
    				interrupts = < 0x23 0x1 >;
    				status = "disabled";
    				#pwm-cells = < 0x3 >;
    			};
    			pwm3: pwm@24000 {
    				compatible = "nordic,nrf-pwm";
    				reg = < 0x24000 0x1000 >;
    				interrupts = < 0x24 0x1 >;
    				status = "disabled";
    				#pwm-cells = < 0x3 >;
    			};
    			gpio0: gpio@842500 {
    				compatible = "nordic,nrf-gpio";
    				gpio-controller;
    				reg = < 0x842500 0x300 >;
    				#gpio-cells = < 0x2 >;
    				status = "okay";
    				port = < 0x0 >;
    				gpiote-instance = < &gpiote >;
    				phandle = < 0x8 >;
    			};
    			rtc0: rtc@14000 {
    				compatible = "nordic,nrf-rtc";
    				reg = < 0x14000 0x1000 >;
    				cc-num = < 0x4 >;
    				interrupts = < 0x14 0x1 >;
    				status = "disabled";
    				clock-frequency = < 0x8000 >;
    				prescaler = < 0x1 >;
    			};
    			rtc1: rtc@15000 {
    				compatible = "nordic,nrf-rtc";
    				reg = < 0x15000 0x1000 >;
    				cc-num = < 0x4 >;
    				interrupts = < 0x15 0x1 >;
    				status = "disabled";
    				clock-frequency = < 0x8000 >;
    				prescaler = < 0x1 >;
    			};
    			clock: clock@5000 {
    				compatible = "nordic,nrf-clock";
    				reg = < 0x5000 0x1000 >;
    				interrupts = < 0x5 0x1 >;
    				status = "okay";
    			};
    			power: power@5000 {
    				compatible = "nordic,nrf-power";
    				reg = < 0x5000 0x1000 >;
    				interrupts = < 0x5 0x1 >;
    				status = "okay";
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x1 >;
    				gpregret1: gpregret1@551c {
    					#address-cells = < 0x1 >;
    					#size-cells = < 0x1 >;
    					compatible = "nordic,nrf-gpregret";
    					reg = < 0x551c 0x1 >;
    					status = "okay";
    				};
    				gpregret2: gpregret2@5520 {
    					#address-cells = < 0x1 >;
    					#size-cells = < 0x1 >;
    					compatible = "nordic,nrf-gpregret";
    					reg = < 0x5520 0x1 >;
    					status = "okay";
    				};
    			};
    			wdt: wdt0: watchdog@18000 {
    				compatible = "nordic,nrf-wdt";
    				reg = < 0x18000 0x1000 >;
    				interrupts = < 0x18 0x1 >;
    				status = "okay";
    			};
    			timer0: timer@f000 {
    				compatible = "nordic,nrf-timer";
    				status = "disabled";
    				reg = < 0xf000 0x1000 >;
    				cc-num = < 0x6 >;
    				max-bit-width = < 0x20 >;
    				interrupts = < 0xf 0x1 >;
    				prescaler = < 0x0 >;
    			};
    			timer1: timer@10000 {
    				compatible = "nordic,nrf-timer";
    				status = "disabled";
    				reg = < 0x10000 0x1000 >;
    				cc-num = < 0x6 >;
    				max-bit-width = < 0x20 >;
    				interrupts = < 0x10 0x1 >;
    				prescaler = < 0x0 >;
    				phandle = < 0xc >;
    			};
    			timer2: timer@11000 {
    				compatible = "nordic,nrf-timer";
    				status = "disabled";
    				reg = < 0x11000 0x1000 >;
    				cc-num = < 0x6 >;
    				max-bit-width = < 0x20 >;
    				interrupts = < 0x11 0x1 >;
    				prescaler = < 0x0 >;
    			};
    		};
    		gpiote: gpiote1: gpiote@40031000 {
    			compatible = "nordic,nrf-gpiote";
    			reg = < 0x40031000 0x1000 >;
    			interrupts = < 0x31 0x5 >;
    			status = "okay";
    			instance = < 0x1 >;
    			phandle = < 0xb >;
    		};
    	};
    	pinctrl: pin-controller {
    		compatible = "nordic,nrf-pinctrl";
    		uart0_default: uart0_default {
    			phandle = < 0x2 >;
    			group1 {
    				psels = < 0x6 >, < 0x10005 >;
    			};
    		};
    		uart0_sleep: uart0_sleep {
    			phandle = < 0x3 >;
    			group1 {
    				psels = < 0x6 >, < 0x10005 >;
    				low-power-enable;
    			};
    		};
    		uart1_default: uart1_default {
    			phandle = < 0x4 >;
    			group1 {
    				psels = < 0x17 >, < 0x10018 >;
    			};
    		};
    		uart1_sleep: uart1_sleep {
    			phandle = < 0x5 >;
    			group1 {
    				psels = < 0x17 >, < 0x10018 >;
    				low-power-enable;
    			};
    		};
    		i2c1_default: i2c1_default {
    			phandle = < 0x6 >;
    			group1 {
    				psels = < 0xc001a >, < 0xb001b >;
    			};
    		};
    		i2c1_sleep: i2c1_sleep {
    			phandle = < 0x7 >;
    			group1 {
    				psels = < 0xc001a >, < 0xb001b >;
    				low-power-enable;
    			};
    		};
    		spi3_default: spi3_default {
    			phandle = < 0x9 >;
    			group1 {
    				psels = < 0x4000b >, < 0x50009 >, < 0x6001c >;
    			};
    		};
    		spi3_sleep: spi3_sleep {
    			phandle = < 0xa >;
    			group1 {
    				psels = < 0x4000b >, < 0x50009 >, < 0x6001c >;
    				low-power-enable;
    			};
    		};
    	};
    	rng_hci: entropy_bt_hci {
    		compatible = "zephyr,bt-hci-entropy";
    		status = "okay";
    	};
    	sw_pwm: sw-pwm {
    		compatible = "nordic,nrf-sw-pwm";
    		status = "disabled";
    		generator = < &timer1 >;
    		clock-prescaler = < 0x0 >;
    		#pwm-cells = < 0x3 >;
    	};
    	cpus {
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		cpu@0 {
    			device_type = "cpu";
    			compatible = "arm,cortex-m33f";
    			reg = < 0x0 >;
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x1 >;
    			mpu: mpu@e000ed90 {
    				compatible = "arm,armv8m-mpu";
    				reg = < 0xe000ed90 0x40 >;
    				arm,num-mpu-regions = < 0x10 >;
    			};
    		};
    	};
    	psa_rng: psa-rng {
    		compatible = "zephyr,psa-crypto-rng";
    		status = "okay";
    	};
    	leds {
    		compatible = "gpio-leds";
    		ledr: led_r {
    			label = "LED_R";
    			gpios = < &gpio0 0x0 0x1 >;
    		};
    		ledg: led_g {
    			label = "LED_G";
    			gpios = < &gpio0 0x1 0x1 >;
    		};
    		ledb: led_b {
    			label = "LED_B";
    			gpios = < &gpio0 0x2 0x1 >;
    		};
    	};
    	reserved-memory {
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x1 >;
    		ranges;
    		sram0_s: image_s@20000000 {
    			reg = < 0x20000000 0x16000 >;
    		};
    		sram0_modem: image_modem@20016000 {
    			reg = < 0x20016000 0xa000 >;
    		};
    		sram0_ns: image_ns@20020000 {
    			reg = < 0x20020000 0x20000 >;
    		};
    	};
    };
    

Related