When you have no idea why it doesn't probe, you may save time editing driver probe() to emit messages where it chokes. This gives idea what may be wrong.
1. imx6sx-cm4{}
Isn't it missing clocks= assignment? Somewhat indeed has to enable M4 root clock.
memory-region should list areas, where your FW ELF file is putting code and initialized constants. Addresses from the Cortex-A perspective. When rproc driver fails to load ELF - it should emit some message to dmesg.
2. reserved-memory
I think it worked like that in older kernels. Newer ones seem being more picky, look for "OF" and "reserved" in dmesg. At least "ranges" must be there, dmesg should warn about missing #xx-cells
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;