I have some stock devtree image on Linux side as provided, with only 2 LPUARTs enabled for Linux side, to A cores.
Now, I want 4 to Linux, and I've enabled them in the devtree , compiled, booted. ..But, still only 2 are usable, seems no effect / still cannot use other 2 serial.
Tried to map all 5, still same story, cannot use that extra 5th one.
I'm not starting / using M cores, so they un-used.


# Eg. testing:
stty -F /dev/ttyLP[1-4] 115200 cs8 -cstopb -parenb
while true; do echo HELLO1 > /dev/ttyLP1; echo HELLO2 > /dev/ttyLP2 ; echo HELLO3 > /dev/ttyLP3; echo HELLO4 > /dev/ttyLP4; sleep 1; done
Only LP1 comes through, other ones are silent.
So, does this have to do anything with that "secure" firmware stuff..? How to re-assign at least 2 extra LPUARts to Linux ... ? (away from M4s).
As far as DTS goes, all I did is changed status from disabled to ok:
serial@5a060000 {
compatible = "fsl,imx8qm-lpuart";
reg = <0x00 0x5a060000 0x00 0x1000>;
interrupts = <0x00 0x159 0x04>;
interrupt-parent = <0xae>;
clocks = <0x03 0x72 0x03 0x70>;
clock-names = "per\0ipg";
assigned-clocks = <0x03 0x72>;
assigned-clock-rates = <0x4c4b400>;
power-domains = <0xcd>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0xce>;
};
serial@5a070000 {
compatible = "fsl,imx8qm-lpuart";
reg = <0x00 0x5a070000 0x00 0x1000>;
interrupts = <0x00 0x15a 0x04>;
interrupt-parent = <0xae>;
clocks = <0x03 0x75 0x03 0x73>;
clock-names = "per\0ipg";
assigned-clocks = <0x03 0x75>;
assigned-clock-rates = <0x4c4b400>;
power-domains = <0xcf>;
dma-names = "tx\0rx";
dmas = <0xc2 0x0f 0x00 0x00 0xc2 0x0e 0x00 0x01>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0xd0>;
};
serial@5a080000 {
compatible = "fsl,imx8qm-lpuart";
reg = <0x00 0x5a080000 0x00 0x1000>;
interrupts = <0x00 0x15b 0x04>;
interrupt-parent = <0xae>;
clocks = <0x03 0x78 0x03 0x76>;
clock-names = "per\0ipg";
assigned-clocks = <0x03 0x78>;
assigned-clock-rates = <0x4c4b400>;
power-domains = <0xd1>;
dma-names = "tx\0rx";
dmas = <0xc2 0x11 0x00 0x00 0xc2 0x10 0x00 0x01>;
status = "okay";
};
serial@5a090000 {
compatible = "fsl,imx8qm-lpuart";
reg = <0x00 0x5a090000 0x00 0x1000>;
interrupts = <0x00 0x15c 0x04>;
interrupt-parent = <0xae>;
clocks = <0x03 0x7b 0x03 0x79>;
clock-names = "per\0ipg";
assigned-clocks = <0x03 0x7b>;
assigned-clock-rates = <0x4c4b400>;
power-domains = <0xd2>;
dma-names = "tx\0rx";
dmas = <0xc2 0x13 0x00 0x00 0xc2 0x12 0x00 0x01>;
status = "okay";
};
serial@5a0a0000 {
compatible = "fsl,imx8qm-lpuart";
reg = <0x00 0x5a0a0000 0x00 0x1000>;
interrupts = <0x00 0x15d 0x04>;
interrupt-parent = <0xae>;
clocks = <0x03 0x7f 0x03 0x7c>;
clock-names = "per\0ipg";
assigned-clocks = <0x03 0x7f>;
assigned-clock-rates = <0x4c4b400>;
power-domains = <0xd3>;
dma-names = "tx\0rx";
dmas = <0xc2 0x15 0x00 0x00 0xc2 0x14 0x00 0x01>;
status = "okay";
};
If there is a Proper document / guide that you actually have created describing how to re-assign these , please share the link.
I'll take a forum howto post also happily ...