Hello @slou26,
Sorry for the confusion.
I could have checked your previous threads.
For the Verdin iMX8M Mini DualLite 1GB, the changes to the commands in u-boot are that we need to use 0x77000000 as the base address.
setenv load_cm_image "${load_cmd} ${loadaddr} ${cm_image}"
setenv cm_boot "${load_cm_image}; cp.b ${loadaddr} 0x77000000 \${filesize}; dcache flush; bootaux 0x77000000"
Please also note the addition of a \ before ${filesize} to make sure it is resolved at runtime.
In addition to these changes, you can use the following patch to change the linker script and board.h file:
imx8mm-1gb-m4-memory.patch (1.7 KB)
With the two changes above, the firmware should work from u-boot.
However, to allow the Linux system to start, additional changes are needed.
These changes are to the device tree overlay, which needs to reserve a different area of memory and also setup the rpmsg areas in a different place:
&{/} {
imx8mm-cm4 {
compatible = "fsl,imx8mm-cm4";
rsc-da = <0x780ff000>; /* Updated to match new rsc_table */
clocks = <&clk IMX8MM_CLK_M4_DIV>;
mbox-names = "tx", "rx", "rxdb";
mboxes = <&mu 0 1
&mu 1 1
&mu 3 1>;
memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>, <&m4_reserved>;
syscon = <&src>;
fsl,startup-delay-ms = <500>;
};
};
&uart4 {
status = "disabled";
};
&resmem {
#address-cells = <2>;
#size-cells = <2>;
m4_reserved: m4@77000000 {
no-map;
reg = <0 0x77000000 0 0x01000000>; /* 16MB total */
};
vdev0vring0: vdev0vring0@78000000 {
reg = <0 0x78000000 0 0x00008000>; /* 32KB */
no-map;
};
vdev0vring1: vdev0vring1@78008000 {
reg = <0 0x78008000 0 0x00008000>; /* 32KB */
no-map;
};
rsc_table: rsc-table@780ff000 {
reg = <0 0x780ff000 0 0x00001000>; /* 4KB */
no-map;
};
vdevbuffer: vdevbuffer@78100000 {
compatible = "shared-dma-pool";
reg = <0 0x78100000 0 0x01000000>; /* 16MB */
no-map;
};
};
Best Regards,
Bruno