This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5728: Kernel panic after disabling HDMI device tree nodes

Part Number: AM5728
Other Parts Discussed in Thread: TPD12S015

Tool/software: Linux

I'm working with yocto (rocko) linux-ti-staging 4.9.69 on a beagle x15 rev C board.

I have been attempting to disable the device tree nodes of x15 features I do not use (and are not present in a custom AM572x board).  In the am57xx-beagle-x15-common.dtsi I have attempted to disable the nodes labeled hdmi0, tpd12s015, sound0, and hdmi.

However when I do this and install boot & rootfs to the x15's EMMC (/dev/mmcblk1) I get the following error on boot:

VFS: Cannot open root device "mmcblk1p2" or unknown-block(0,0): error -6
<snip>
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

I do not get a kernel panic when I use an SD Card (/dev/mmcblk0) with the same boot & rootfs. I also do not get a kernel panic when I enable (status = "okay";) hdmi0, tpd12s015, sound0, and hdmi.

Can anyone provide an explanation for what I'm doing wrong with the device tree that would result in this behavior?

Device tree changes below:

/* delete aliases for hdmi0, sound0, hdmi */

/* SNIP */

        hdmi0: connector {
                status = "disabled";
                compatible = "hdmi-connector";
                label = "hdmi";

                type = "a";

                port {
                        status = "disabled";
                        hdmi_connector_in: endpoint {
                                remote-endpoint = <&tpd12s015_out>;
                        };
                };
        };
        tpd12s015: encoder {
                status = "disabled";
                compatible = "ti,tpd12s015";

                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;

                        port@0 {
                                reg = <0>;

                                tpd12s015_in: endpoint {
                                        remote-endpoint = <&hdmi_out>;
                                };
                        };

                        port@1 {
                                reg = <1>;

                                tpd12s015_out: endpoint {
                                        remote-endpoint = <&hdmi_connector_in>;
                                };
                        };
                };
        };

        sound0: sound0 {
                status = "disabled";
                compatible = "simple-audio-card";
                simple-audio-card,name = "BeagleBoard-X15";
                simple-audio-card,widgets =
                        "Line", "Line Out",
                        "Line", "Line In";
                simple-audio-card,routing =
                        "Line Out",     "LLOUT",
                        "Line Out",     "RLOUT",
                        "MIC2L",        "Line In",
                        "MIC2R",        "Line In";
                simple-audio-card,format = "dsp_b";
                simple-audio-card,bitclock-master = <&sound0_master>;
                simple-audio-card,frame-master = <&sound0_master>;
                simple-audio-card,bitclock-inversion;

                simple-audio-card,cpu {
                        sound-dai = <&mcasp3>;
                };

                sound0_master: simple-audio-card,codec {
                        sound-dai = <&tlv320aic3104>;
                        clocks = <&clkout2_clk>;
                };
        };

/* SNIP */

&hdmi {
        status = "disabled";
        vdda-supply = <&ldo4_reg>;

        port {
                hdmi_out: endpoint {
                        remote-endpoint = <&tpd12s015_in>;
                };
        };
};