RPMsg 8mplus device tree failing to boot

Hello all! I’m trying to make RPmsg work on a Verdin 8Mplus module.

I was looking at the file:

arch/arm64/boot/dts/freescale/imx8mp-evk-rpmsg.dts

To try and copy the relevant parts to enable the RPMSG drivers on it.

When I copy this section over to my custom device tree:

reserved-memory {
	#address-cells = <2>;
	#size-cells = <2>;
	ranges;

	m4_reserved: m4@0x80000000 {
		no-map;
		reg = <0 0x80000000 0 0x1000000>;
	};

	vdev0vring0: vdev0vring0@55000000 {
		compatible = "shared-dma-pool";
		reg = <0 0x55000000 0 0x8000>;
		no-map;
	};

	vdev0vring1: vdev0vring1@55008000 {
		compatible = "shared-dma-pool";
		reg = <0 0x55008000 0 0x8000>;
		no-map;
	};
	vdevbuffer: vdevbuffer@55400000 {
		compatible = "shared-dma-pool";
		reg = <0 0x55400000 0 0x100000>;
		no-map;
	};

	rsc-table {
		reg = <0 0x550ff000 0 0x1000>;
		no-map;
	};

	audio_reserved: audio@0x81000000 {
		compatible = "shared-dma-pool";
		no-map;
		reg = <0 0x81000000 0 0x10000000>;
	};
};

The board fails to boot and I see this message in the Uboot log:

Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
ERROR: reserving fdt memory region failed (addr=550ff000 size=1000)
ERROR: Failed to allocate 0x38000 bytes below 0x100000000.
device tree - allocation error
FDT creation failed! hanging...### ERROR ### Please RESET the board ###

I’m not using Torizon at this moment.

I’m curious why the nodes related to the RPMSG on the imx8mplus-evk-rpmsg.dts still have the names as “m4” instead of a m7, since the co-processor on a imx8mplus is a M7 not a M4.

Any help will greatly appreciated, thanks!

Hi @jose_au_zone!

I was able to fix this and submitted a merge request to our kernel repo.

However, to fix this particular issue, make sure to set fdt_high=0xffffffffffffffff in U-Boot.